From 958a8a20ede121fa12e20b988b48df51f0cafe60 Mon Sep 17 00:00:00 2001 From: Gutenberg Repository Automation Date: Thu, 19 Sep 2024 01:57:31 +0000 Subject: [PATCH 001/214] Bump plugin version to 19.3.0-rc.1 --- gutenberg.php | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/gutenberg.php b/gutenberg.php index 342c61fb56cd1..8dddcfeccd528 100644 --- a/gutenberg.php +++ b/gutenberg.php @@ -5,7 +5,7 @@ * Description: Printing since 1440. This is the development plugin for the block editor, site editor, and other future WordPress core functionality. * Requires at least: 6.5 * Requires PHP: 7.2 - * Version: 19.2.0 + * Version: 19.3.0-rc.1 * Author: Gutenberg Team * Text Domain: gutenberg * diff --git a/package-lock.json b/package-lock.json index dcdc5043ac6d8..421f1418cd5f2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "gutenberg", - "version": "19.2.0", + "version": "19.3.0-rc.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "gutenberg", - "version": "19.2.0", + "version": "19.3.0-rc.1", "hasInstallScript": true, "license": "GPL-2.0-or-later", "dependencies": { diff --git a/package.json b/package.json index 46d2b42f267ab..a4cc002adbf8e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "gutenberg", - "version": "19.2.0", + "version": "19.3.0-rc.1", "private": true, "description": "A new WordPress editor experience.", "author": "The WordPress Contributors", From 637a745bea45cf45c7ef0190da962e36e97a9a4e Mon Sep 17 00:00:00 2001 From: Gutenberg Repository Automation Date: Thu, 19 Sep 2024 02:13:28 +0000 Subject: [PATCH 002/214] Update Changelog for 19.3.0-rc.1 --- changelog.txt | 271 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 271 insertions(+) diff --git a/changelog.txt b/changelog.txt index b0e6c8e907582..dca31f9afc622 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,5 +1,276 @@ == Changelog == += 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 From 320f84a3e109c5480badf8df2276105facb787e5 Mon Sep 17 00:00:00 2001 From: Gutenberg Repository Automation Date: Thu, 19 Sep 2024 02:29:11 +0000 Subject: [PATCH 003/214] Update changelog files --- packages/a11y/CHANGELOG.md | 2 ++ packages/a11y/package.json | 2 +- packages/annotations/CHANGELOG.md | 2 ++ packages/annotations/package.json | 2 +- packages/api-fetch/CHANGELOG.md | 2 ++ packages/api-fetch/package.json | 2 +- packages/autop/CHANGELOG.md | 2 ++ packages/autop/package.json | 2 +- packages/babel-plugin-import-jsx-pragma/CHANGELOG.md | 2 ++ packages/babel-plugin-import-jsx-pragma/package.json | 2 +- packages/babel-plugin-makepot/CHANGELOG.md | 2 ++ packages/babel-plugin-makepot/package.json | 2 +- packages/babel-preset-default/package.json | 2 +- packages/base-styles/CHANGELOG.md | 2 ++ packages/base-styles/package.json | 2 +- packages/blob/CHANGELOG.md | 2 ++ packages/blob/package.json | 2 +- packages/block-directory/CHANGELOG.md | 2 ++ packages/block-directory/package.json | 2 +- packages/block-editor/CHANGELOG.md | 2 ++ packages/block-editor/package.json | 2 +- packages/block-library/CHANGELOG.md | 2 ++ packages/block-library/package.json | 2 +- packages/block-serialization-default-parser/CHANGELOG.md | 2 ++ packages/block-serialization-default-parser/package.json | 2 +- packages/block-serialization-spec-parser/CHANGELOG.md | 2 ++ packages/block-serialization-spec-parser/package.json | 2 +- packages/blocks/CHANGELOG.md | 2 ++ packages/blocks/package.json | 2 +- packages/browserslist-config/CHANGELOG.md | 2 ++ packages/browserslist-config/package.json | 2 +- packages/commands/CHANGELOG.md | 2 ++ packages/commands/package.json | 2 +- packages/components/CHANGELOG.md | 2 ++ packages/components/package.json | 2 +- packages/compose/CHANGELOG.md | 2 ++ packages/compose/package.json | 2 +- packages/core-commands/CHANGELOG.md | 2 ++ packages/core-commands/package.json | 2 +- packages/core-data/CHANGELOG.md | 2 ++ packages/core-data/package.json | 2 +- packages/create-block-interactive-template/CHANGELOG.md | 2 ++ packages/create-block-interactive-template/package.json | 2 +- packages/create-block-tutorial-template/CHANGELOG.md | 2 ++ packages/create-block-tutorial-template/package.json | 2 +- packages/create-block/CHANGELOG.md | 2 ++ packages/create-block/package.json | 2 +- packages/customize-widgets/CHANGELOG.md | 2 ++ packages/customize-widgets/package.json | 2 +- packages/data-controls/CHANGELOG.md | 2 ++ packages/data-controls/package.json | 2 +- packages/data/CHANGELOG.md | 2 ++ packages/data/package.json | 2 +- packages/dataviews/CHANGELOG.md | 2 ++ packages/dataviews/package.json | 2 +- packages/date/CHANGELOG.md | 2 ++ packages/date/package.json | 2 +- packages/dependency-extraction-webpack-plugin/CHANGELOG.md | 2 ++ packages/dependency-extraction-webpack-plugin/package.json | 2 +- packages/deprecated/CHANGELOG.md | 2 ++ packages/deprecated/package.json | 2 +- packages/docgen/CHANGELOG.md | 2 ++ packages/docgen/package.json | 2 +- packages/dom-ready/CHANGELOG.md | 2 ++ packages/dom-ready/package.json | 2 +- packages/dom/CHANGELOG.md | 2 ++ packages/dom/package.json | 2 +- packages/e2e-test-utils-playwright/CHANGELOG.md | 2 ++ packages/e2e-test-utils-playwright/package.json | 2 +- packages/e2e-test-utils/CHANGELOG.md | 2 ++ packages/e2e-test-utils/package.json | 2 +- packages/e2e-tests/CHANGELOG.md | 2 ++ packages/e2e-tests/package.json | 2 +- packages/edit-post/CHANGELOG.md | 2 ++ packages/edit-post/package.json | 2 +- packages/edit-site/CHANGELOG.md | 2 ++ packages/edit-site/package.json | 2 +- packages/edit-widgets/CHANGELOG.md | 2 ++ packages/edit-widgets/package.json | 2 +- packages/editor/CHANGELOG.md | 2 ++ packages/editor/package.json | 2 +- packages/element/CHANGELOG.md | 2 ++ packages/element/package.json | 2 +- packages/env/CHANGELOG.md | 2 ++ packages/env/package.json | 2 +- packages/escape-html/CHANGELOG.md | 2 ++ packages/escape-html/package.json | 2 +- packages/eslint-plugin/CHANGELOG.md | 2 ++ packages/eslint-plugin/package.json | 2 +- packages/format-library/CHANGELOG.md | 2 ++ packages/format-library/package.json | 2 +- packages/hooks/CHANGELOG.md | 2 ++ packages/hooks/package.json | 2 +- packages/html-entities/CHANGELOG.md | 2 ++ packages/html-entities/package.json | 2 +- packages/i18n/CHANGELOG.md | 2 ++ packages/i18n/package.json | 2 +- packages/icons/CHANGELOG.md | 2 ++ packages/icons/package.json | 2 +- packages/interactivity-router/CHANGELOG.md | 2 ++ packages/interactivity-router/package.json | 2 +- packages/interactivity/CHANGELOG.md | 2 ++ packages/interactivity/package.json | 2 +- packages/interface/CHANGELOG.md | 2 ++ packages/interface/package.json | 2 +- packages/is-shallow-equal/CHANGELOG.md | 2 ++ packages/is-shallow-equal/package.json | 2 +- packages/jest-console/CHANGELOG.md | 2 ++ packages/jest-console/package.json | 2 +- packages/jest-preset-default/CHANGELOG.md | 2 ++ packages/jest-preset-default/package.json | 2 +- packages/jest-puppeteer-axe/CHANGELOG.md | 2 ++ packages/jest-puppeteer-axe/package.json | 2 +- packages/keyboard-shortcuts/CHANGELOG.md | 2 ++ packages/keyboard-shortcuts/package.json | 2 +- packages/keycodes/CHANGELOG.md | 2 ++ packages/keycodes/package.json | 2 +- packages/lazy-import/CHANGELOG.md | 2 ++ packages/lazy-import/package.json | 2 +- packages/list-reusable-blocks/CHANGELOG.md | 2 ++ packages/list-reusable-blocks/package.json | 2 +- packages/media-utils/CHANGELOG.md | 2 ++ packages/media-utils/package.json | 2 +- packages/notices/CHANGELOG.md | 2 ++ packages/notices/package.json | 2 +- packages/npm-package-json-lint-config/CHANGELOG.md | 2 ++ packages/npm-package-json-lint-config/package.json | 2 +- packages/nux/CHANGELOG.md | 2 ++ packages/nux/package.json | 2 +- packages/patterns/CHANGELOG.md | 2 ++ packages/patterns/package.json | 2 +- packages/plugins/CHANGELOG.md | 2 ++ packages/plugins/package.json | 2 +- packages/postcss-plugins-preset/CHANGELOG.md | 2 ++ packages/postcss-plugins-preset/package.json | 2 +- packages/postcss-themes/CHANGELOG.md | 2 ++ packages/postcss-themes/package.json | 2 +- packages/preferences-persistence/CHANGELOG.md | 2 ++ packages/preferences-persistence/package.json | 2 +- packages/preferences/CHANGELOG.md | 2 ++ packages/preferences/package.json | 2 +- packages/prettier-config/CHANGELOG.md | 2 ++ packages/prettier-config/package.json | 2 +- packages/primitives/CHANGELOG.md | 2 ++ packages/primitives/package.json | 2 +- packages/priority-queue/CHANGELOG.md | 2 ++ packages/priority-queue/package.json | 2 +- packages/private-apis/CHANGELOG.md | 2 ++ packages/private-apis/package.json | 2 +- packages/project-management-automation/CHANGELOG.md | 2 ++ packages/project-management-automation/package.json | 2 +- packages/react-i18n/CHANGELOG.md | 2 ++ packages/react-i18n/package.json | 2 +- packages/readable-js-assets-webpack-plugin/CHANGELOG.md | 2 ++ packages/readable-js-assets-webpack-plugin/package.json | 2 +- packages/redux-routine/CHANGELOG.md | 2 ++ packages/redux-routine/package.json | 2 +- packages/reusable-blocks/CHANGELOG.md | 2 ++ packages/reusable-blocks/package.json | 2 +- packages/rich-text/CHANGELOG.md | 2 ++ packages/rich-text/package.json | 2 +- packages/router/CHANGELOG.md | 2 ++ packages/router/package.json | 2 +- packages/scripts/CHANGELOG.md | 2 ++ packages/scripts/package.json | 2 +- packages/server-side-render/CHANGELOG.md | 2 ++ packages/server-side-render/package.json | 2 +- packages/shortcode/CHANGELOG.md | 2 ++ packages/shortcode/package.json | 2 +- packages/style-engine/CHANGELOG.md | 2 ++ packages/style-engine/package.json | 2 +- packages/stylelint-config/CHANGELOG.md | 2 ++ packages/stylelint-config/package.json | 2 +- packages/sync/CHANGELOG.md | 2 ++ packages/sync/package.json | 2 +- packages/token-list/CHANGELOG.md | 2 ++ packages/token-list/package.json | 2 +- packages/undo-manager/CHANGELOG.md | 2 ++ packages/undo-manager/package.json | 2 +- packages/url/CHANGELOG.md | 2 ++ packages/url/package.json | 2 +- packages/viewport/CHANGELOG.md | 2 ++ packages/viewport/package.json | 2 +- packages/warning/CHANGELOG.md | 2 ++ packages/warning/package.json | 2 +- packages/widgets/CHANGELOG.md | 2 ++ packages/widgets/package.json | 2 +- packages/wordcount/CHANGELOG.md | 2 ++ packages/wordcount/package.json | 2 +- 189 files changed, 283 insertions(+), 95 deletions(-) diff --git a/packages/a11y/CHANGELOG.md b/packages/a11y/CHANGELOG.md index 36973cce020f3..626488313977d 100644 --- a/packages/a11y/CHANGELOG.md +++ b/packages/a11y/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 4.8.0 (2024-09-19) + ## 4.7.0 (2024-09-05) ## 4.6.0 (2024-08-21) diff --git a/packages/a11y/package.json b/packages/a11y/package.json index 327d6b9ff0716..b1faa8dc0b260 100644 --- a/packages/a11y/package.json +++ b/packages/a11y/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/a11y", - "version": "4.7.0", + "version": "4.8.0-prerelease", "description": "Accessibility (a11y) utilities for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/annotations/CHANGELOG.md b/packages/annotations/CHANGELOG.md index 6211cf30688e5..7ac3e50c3fd8b 100644 --- a/packages/annotations/CHANGELOG.md +++ b/packages/annotations/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 3.8.0 (2024-09-19) + ## 3.7.0 (2024-09-05) ## 3.6.0 (2024-08-21) diff --git a/packages/annotations/package.json b/packages/annotations/package.json index c189dcc11fd09..3d3f60867cc92 100644 --- a/packages/annotations/package.json +++ b/packages/annotations/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/annotations", - "version": "3.7.0", + "version": "3.8.0-prerelease", "description": "Annotate content in the Gutenberg editor.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/api-fetch/CHANGELOG.md b/packages/api-fetch/CHANGELOG.md index 01b37d4e14a7d..7c333170b6cc1 100644 --- a/packages/api-fetch/CHANGELOG.md +++ b/packages/api-fetch/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 7.8.0 (2024-09-19) + ## 7.7.0 (2024-09-05) ## 7.6.0 (2024-08-21) diff --git a/packages/api-fetch/package.json b/packages/api-fetch/package.json index 76d797f4ddfa5..96657c57402c8 100644 --- a/packages/api-fetch/package.json +++ b/packages/api-fetch/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/api-fetch", - "version": "7.7.0", + "version": "7.8.0-prerelease", "description": "Utility to make WordPress REST API requests.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/autop/CHANGELOG.md b/packages/autop/CHANGELOG.md index ed19f1ceafbc5..4bb494dcfff5c 100644 --- a/packages/autop/CHANGELOG.md +++ b/packages/autop/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 4.8.0 (2024-09-19) + ## 4.7.0 (2024-09-05) ## 4.6.0 (2024-08-21) diff --git a/packages/autop/package.json b/packages/autop/package.json index 4e1cf577ebd09..ca0fd3f00d062 100644 --- a/packages/autop/package.json +++ b/packages/autop/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/autop", - "version": "4.7.0", + "version": "4.8.0-prerelease", "description": "WordPress's automatic paragraph functions `autop` and `removep`.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/babel-plugin-import-jsx-pragma/CHANGELOG.md b/packages/babel-plugin-import-jsx-pragma/CHANGELOG.md index c916b788243a0..5a68cf8eb4040 100644 --- a/packages/babel-plugin-import-jsx-pragma/CHANGELOG.md +++ b/packages/babel-plugin-import-jsx-pragma/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 5.8.0 (2024-09-19) + ## 5.7.0 (2024-09-05) ## 5.6.0 (2024-08-21) diff --git a/packages/babel-plugin-import-jsx-pragma/package.json b/packages/babel-plugin-import-jsx-pragma/package.json index 1af6bdf93cb04..788cebe10ddf0 100644 --- a/packages/babel-plugin-import-jsx-pragma/package.json +++ b/packages/babel-plugin-import-jsx-pragma/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/babel-plugin-import-jsx-pragma", - "version": "5.7.0", + "version": "5.8.0-prerelease", "description": "Babel transform plugin for automatically injecting an import to be used as the pragma for the React JSX Transform plugin.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/babel-plugin-makepot/CHANGELOG.md b/packages/babel-plugin-makepot/CHANGELOG.md index e7345f314d578..d878e1fb6b020 100644 --- a/packages/babel-plugin-makepot/CHANGELOG.md +++ b/packages/babel-plugin-makepot/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 6.8.0 (2024-09-19) + ## 6.7.0 (2024-09-05) ## 6.6.0 (2024-08-21) diff --git a/packages/babel-plugin-makepot/package.json b/packages/babel-plugin-makepot/package.json index a7c18d891538d..1e3e950fb9fc7 100644 --- a/packages/babel-plugin-makepot/package.json +++ b/packages/babel-plugin-makepot/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/babel-plugin-makepot", - "version": "6.7.0", + "version": "6.8.0-prerelease", "description": "WordPress Babel internationalization (i18n) plugin.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/babel-preset-default/package.json b/packages/babel-preset-default/package.json index be5b3786346eb..5ee37cfb105c2 100644 --- a/packages/babel-preset-default/package.json +++ b/packages/babel-preset-default/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/babel-preset-default", - "version": "8.7.0", + "version": "8.8.0-prerelease", "description": "Default Babel preset for WordPress development.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/base-styles/CHANGELOG.md b/packages/base-styles/CHANGELOG.md index cad2f94c98da7..ea6b765aea3f1 100644 --- a/packages/base-styles/CHANGELOG.md +++ b/packages/base-styles/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 5.8.0 (2024-09-19) + ## 5.7.0 (2024-09-05) ## 5.6.0 (2024-08-21) diff --git a/packages/base-styles/package.json b/packages/base-styles/package.json index 6839a8081e04a..c6a873e94191a 100644 --- a/packages/base-styles/package.json +++ b/packages/base-styles/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/base-styles", - "version": "5.7.0", + "version": "5.8.0-prerelease", "description": "Base SCSS utilities and variables for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/blob/CHANGELOG.md b/packages/blob/CHANGELOG.md index f95598025a8b6..c13c6e6faf6ac 100644 --- a/packages/blob/CHANGELOG.md +++ b/packages/blob/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 4.8.0 (2024-09-19) + ## 4.7.0 (2024-09-05) ## 4.6.0 (2024-08-21) diff --git a/packages/blob/package.json b/packages/blob/package.json index 3dea70c977197..cffd5985680ec 100644 --- a/packages/blob/package.json +++ b/packages/blob/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/blob", - "version": "4.7.0", + "version": "4.8.0-prerelease", "description": "Blob utilities for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/block-directory/CHANGELOG.md b/packages/block-directory/CHANGELOG.md index 70914f293ca99..8c25431f1b5b5 100644 --- a/packages/block-directory/CHANGELOG.md +++ b/packages/block-directory/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 5.8.0 (2024-09-19) + ## 5.7.0 (2024-09-05) ## 5.6.0 (2024-08-21) diff --git a/packages/block-directory/package.json b/packages/block-directory/package.json index 39f239edfcb44..fdc69ffefcebb 100644 --- a/packages/block-directory/package.json +++ b/packages/block-directory/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/block-directory", - "version": "5.7.0", + "version": "5.8.0-prerelease", "description": "Extend editor with block directory features to search, download and install blocks.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/block-editor/CHANGELOG.md b/packages/block-editor/CHANGELOG.md index da44ebc4149f5..db61ff05e3c1a 100644 --- a/packages/block-editor/CHANGELOG.md +++ b/packages/block-editor/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 14.3.0 (2024-09-19) + ## 14.2.0 (2024-09-05) ## 14.1.0 (2024-08-21) diff --git a/packages/block-editor/package.json b/packages/block-editor/package.json index d3064c78dbe65..fb0f3423b483f 100644 --- a/packages/block-editor/package.json +++ b/packages/block-editor/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/block-editor", - "version": "14.2.0", + "version": "14.3.0-prerelease", "description": "Generic block editor.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/block-library/CHANGELOG.md b/packages/block-library/CHANGELOG.md index 4ee3ebc7564b5..08accf8c36d9e 100644 --- a/packages/block-library/CHANGELOG.md +++ b/packages/block-library/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 9.8.0 (2024-09-19) + ## 9.7.0 (2024-09-05) ## 9.6.0 (2024-08-21) diff --git a/packages/block-library/package.json b/packages/block-library/package.json index 1353ef24c77d8..afe4dd960f7c6 100644 --- a/packages/block-library/package.json +++ b/packages/block-library/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/block-library", - "version": "9.7.0", + "version": "9.8.0-prerelease", "description": "Block library for the WordPress editor.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/block-serialization-default-parser/CHANGELOG.md b/packages/block-serialization-default-parser/CHANGELOG.md index 9dd0bd7030976..47e1db147942f 100644 --- a/packages/block-serialization-default-parser/CHANGELOG.md +++ b/packages/block-serialization-default-parser/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 5.8.0 (2024-09-19) + ## 5.7.0 (2024-09-05) ## 5.6.0 (2024-08-21) diff --git a/packages/block-serialization-default-parser/package.json b/packages/block-serialization-default-parser/package.json index cac606bd7bd1e..b4317c163474b 100644 --- a/packages/block-serialization-default-parser/package.json +++ b/packages/block-serialization-default-parser/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/block-serialization-default-parser", - "version": "5.7.0", + "version": "5.8.0-prerelease", "description": "Block serialization specification parser for WordPress posts.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/block-serialization-spec-parser/CHANGELOG.md b/packages/block-serialization-spec-parser/CHANGELOG.md index b8d02b5348e1b..173ce09db51e2 100644 --- a/packages/block-serialization-spec-parser/CHANGELOG.md +++ b/packages/block-serialization-spec-parser/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 5.8.0 (2024-09-19) + ## 5.7.0 (2024-09-05) ## 5.6.0 (2024-08-21) diff --git a/packages/block-serialization-spec-parser/package.json b/packages/block-serialization-spec-parser/package.json index d48d1846e7909..0640578fb5cc4 100644 --- a/packages/block-serialization-spec-parser/package.json +++ b/packages/block-serialization-spec-parser/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/block-serialization-spec-parser", - "version": "5.7.0", + "version": "5.8.0-prerelease", "description": "Block serialization specification parser for WordPress posts.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/blocks/CHANGELOG.md b/packages/blocks/CHANGELOG.md index 0755d5170d1b3..838983c17233e 100644 --- a/packages/blocks/CHANGELOG.md +++ b/packages/blocks/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 13.8.0 (2024-09-19) + ## 13.7.0 (2024-09-05) ## 13.6.0 (2024-08-21) diff --git a/packages/blocks/package.json b/packages/blocks/package.json index f371ecc087af4..45b31db7cea66 100644 --- a/packages/blocks/package.json +++ b/packages/blocks/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/blocks", - "version": "13.7.0", + "version": "13.8.0-prerelease", "description": "Block API for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/browserslist-config/CHANGELOG.md b/packages/browserslist-config/CHANGELOG.md index b8ee58633b7ef..cbe4763ea3270 100644 --- a/packages/browserslist-config/CHANGELOG.md +++ b/packages/browserslist-config/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 6.8.0 (2024-09-19) + ## 6.7.0 (2024-09-05) ## 6.6.0 (2024-08-21) diff --git a/packages/browserslist-config/package.json b/packages/browserslist-config/package.json index c51d7318170c4..26d5a6820b728 100644 --- a/packages/browserslist-config/package.json +++ b/packages/browserslist-config/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/browserslist-config", - "version": "6.7.0", + "version": "6.8.0-prerelease", "description": "WordPress Browserslist shared configuration.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/commands/CHANGELOG.md b/packages/commands/CHANGELOG.md index bde7767a0f61f..b8f45c7947004 100644 --- a/packages/commands/CHANGELOG.md +++ b/packages/commands/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 1.8.0 (2024-09-19) + ## 1.7.0 (2024-09-05) ## 1.6.0 (2024-08-21) diff --git a/packages/commands/package.json b/packages/commands/package.json index 88b9b86f4b3ae..ea3139bc0d0bc 100644 --- a/packages/commands/package.json +++ b/packages/commands/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/commands", - "version": "1.7.0", + "version": "1.8.0-prerelease", "description": "Handles the commands menu.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/components/CHANGELOG.md b/packages/components/CHANGELOG.md index 4dd18914a7acb..d7e8b19122989 100644 --- a/packages/components/CHANGELOG.md +++ b/packages/components/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 28.8.0 (2024-09-19) + ### Bug Fixes - `Tabs`: restore vertical indicator ([#65385](https://github.com/WordPress/gutenberg/pull/65385)). diff --git a/packages/components/package.json b/packages/components/package.json index 8337d6dd8857f..2457629777639 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/components", - "version": "28.7.0", + "version": "28.8.0-prerelease", "description": "UI components for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/compose/CHANGELOG.md b/packages/compose/CHANGELOG.md index cc0d7ef333f0d..18c21a65b9b12 100644 --- a/packages/compose/CHANGELOG.md +++ b/packages/compose/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 7.8.0 (2024-09-19) + ### New Features - `useEvent`: a new utility that creates a stable callback function that has access to the latest state and can be used within event handlers and effect callbacks ([#64943](https://github.com/WordPress/gutenberg/pull/64943)). diff --git a/packages/compose/package.json b/packages/compose/package.json index 4b68841d1777e..30f9eacbea191 100644 --- a/packages/compose/package.json +++ b/packages/compose/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/compose", - "version": "7.7.0", + "version": "7.8.0-prerelease", "description": "WordPress higher-order components (HOCs).", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/core-commands/CHANGELOG.md b/packages/core-commands/CHANGELOG.md index 02871d4f31e13..2d8d93373f4c5 100644 --- a/packages/core-commands/CHANGELOG.md +++ b/packages/core-commands/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 1.8.0 (2024-09-19) + ## 1.7.0 (2024-09-05) ## 1.6.0 (2024-08-21) diff --git a/packages/core-commands/package.json b/packages/core-commands/package.json index bae1e4c211cf0..944feaa3425fa 100644 --- a/packages/core-commands/package.json +++ b/packages/core-commands/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/core-commands", - "version": "1.7.0", + "version": "1.8.0-prerelease", "description": "WordPress core reusable commands.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/core-data/CHANGELOG.md b/packages/core-data/CHANGELOG.md index 6286a55291a54..fcedd5d110066 100644 --- a/packages/core-data/CHANGELOG.md +++ b/packages/core-data/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 7.8.0 (2024-09-19) + ## 7.7.0 (2024-09-05) ## 7.6.0 (2024-08-21) diff --git a/packages/core-data/package.json b/packages/core-data/package.json index ddb2d2ef09177..ae1a5a5928d24 100644 --- a/packages/core-data/package.json +++ b/packages/core-data/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/core-data", - "version": "7.7.0", + "version": "7.8.0-prerelease", "description": "Access to and manipulation of core WordPress entities.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/create-block-interactive-template/CHANGELOG.md b/packages/create-block-interactive-template/CHANGELOG.md index c044dfff15e3a..348c8466836c6 100644 --- a/packages/create-block-interactive-template/CHANGELOG.md +++ b/packages/create-block-interactive-template/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 2.8.0 (2024-09-19) + ## 2.7.0 (2024-09-05) ### Enhancements diff --git a/packages/create-block-interactive-template/package.json b/packages/create-block-interactive-template/package.json index 667d3998ba820..2e8b50d852143 100644 --- a/packages/create-block-interactive-template/package.json +++ b/packages/create-block-interactive-template/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/create-block-interactive-template", - "version": "2.7.0", + "version": "2.8.0-prerelease", "description": "Template for @wordpress/create-block to create interactive blocks with the Interactivity API.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/create-block-tutorial-template/CHANGELOG.md b/packages/create-block-tutorial-template/CHANGELOG.md index 0fe0f748b8804..e93bc0270ba95 100644 --- a/packages/create-block-tutorial-template/CHANGELOG.md +++ b/packages/create-block-tutorial-template/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 4.8.0 (2024-09-19) + ## 4.7.0 (2024-09-05) ### Enhancements diff --git a/packages/create-block-tutorial-template/package.json b/packages/create-block-tutorial-template/package.json index 64a8a90bc167c..a55a328c51842 100644 --- a/packages/create-block-tutorial-template/package.json +++ b/packages/create-block-tutorial-template/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/create-block-tutorial-template", - "version": "4.7.0", + "version": "4.8.0-prerelease", "description": "This is a template for @wordpress/create-block that creates an example 'Copyright Date' block. This block is used in the official WordPress block development Quick Start Guide.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/create-block/CHANGELOG.md b/packages/create-block/CHANGELOG.md index 99e7b1fd37a33..d3a8c1c75dd3f 100644 --- a/packages/create-block/CHANGELOG.md +++ b/packages/create-block/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 4.51.0 (2024-09-19) + ## 4.50.0 (2024-09-05) ### Enhancements diff --git a/packages/create-block/package.json b/packages/create-block/package.json index 2103a85c5894f..ffed77a5db0f0 100644 --- a/packages/create-block/package.json +++ b/packages/create-block/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/create-block", - "version": "4.50.0", + "version": "4.51.0-prerelease", "description": "Generates PHP, JS and CSS code for registering a block for a WordPress plugin.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/customize-widgets/CHANGELOG.md b/packages/customize-widgets/CHANGELOG.md index 4e0d5a3755357..061b656c892c7 100644 --- a/packages/customize-widgets/CHANGELOG.md +++ b/packages/customize-widgets/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 5.8.0 (2024-09-19) + ## 5.7.0 (2024-09-05) ## 5.6.0 (2024-08-21) diff --git a/packages/customize-widgets/package.json b/packages/customize-widgets/package.json index a8b50cf9cb318..35a3c438f2886 100644 --- a/packages/customize-widgets/package.json +++ b/packages/customize-widgets/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/customize-widgets", - "version": "5.7.0", + "version": "5.8.0-prerelease", "description": "Widgets blocks in Customizer Module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/data-controls/CHANGELOG.md b/packages/data-controls/CHANGELOG.md index e6af7fdcb6e24..3d16450a7825b 100644 --- a/packages/data-controls/CHANGELOG.md +++ b/packages/data-controls/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 4.8.0 (2024-09-19) + ## 4.7.0 (2024-09-05) ## 4.6.0 (2024-08-21) diff --git a/packages/data-controls/package.json b/packages/data-controls/package.json index e97e59b74700c..38c74b42e9f8d 100644 --- a/packages/data-controls/package.json +++ b/packages/data-controls/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/data-controls", - "version": "4.7.0", + "version": "4.8.0-prerelease", "description": "A set of common controls for the @wordpress/data api.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/data/CHANGELOG.md b/packages/data/CHANGELOG.md index 4ba90611c2a78..f9ebf9eb17a68 100644 --- a/packages/data/CHANGELOG.md +++ b/packages/data/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 10.8.0 (2024-09-19) + ## 10.7.0 (2024-09-05) ## 10.6.0 (2024-08-21) diff --git a/packages/data/package.json b/packages/data/package.json index 84ad7a7973bc4..0cc2495a5dc74 100644 --- a/packages/data/package.json +++ b/packages/data/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/data", - "version": "10.7.0", + "version": "10.8.0-prerelease", "description": "Data module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/dataviews/CHANGELOG.md b/packages/dataviews/CHANGELOG.md index 1e323714c4d5f..6ce337d726e08 100644 --- a/packages/dataviews/CHANGELOG.md +++ b/packages/dataviews/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 4.4.0 (2024-09-19) + ## 4.3.0 (2024-09-05) ## 4.2.0 (2024-08-21) diff --git a/packages/dataviews/package.json b/packages/dataviews/package.json index e327a217435c5..a9e5f5be7ebf7 100644 --- a/packages/dataviews/package.json +++ b/packages/dataviews/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/dataviews", - "version": "4.3.0", + "version": "4.4.0-prerelease", "description": "DataViews is a component that provides an API to render datasets using different types of layouts (table, grid, list, etc.).", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/date/CHANGELOG.md b/packages/date/CHANGELOG.md index e19aa08ab6fe5..8c28ff83d53ed 100644 --- a/packages/date/CHANGELOG.md +++ b/packages/date/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 5.8.0 (2024-09-19) + ## 5.7.0 (2024-09-05) ## 5.6.0 (2024-08-21) diff --git a/packages/date/package.json b/packages/date/package.json index 488db71cfd693..51e1da0e94229 100644 --- a/packages/date/package.json +++ b/packages/date/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/date", - "version": "5.7.0", + "version": "5.8.0-prerelease", "description": "Date module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/dependency-extraction-webpack-plugin/CHANGELOG.md b/packages/dependency-extraction-webpack-plugin/CHANGELOG.md index 1da5f074301fd..85498d539317f 100644 --- a/packages/dependency-extraction-webpack-plugin/CHANGELOG.md +++ b/packages/dependency-extraction-webpack-plugin/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 6.8.0 (2024-09-19) + ## 6.7.0 (2024-09-05) ## 6.6.0 (2024-08-21) diff --git a/packages/dependency-extraction-webpack-plugin/package.json b/packages/dependency-extraction-webpack-plugin/package.json index f720a1df826e8..237e0d1c475cf 100644 --- a/packages/dependency-extraction-webpack-plugin/package.json +++ b/packages/dependency-extraction-webpack-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/dependency-extraction-webpack-plugin", - "version": "6.7.0", + "version": "6.8.0-prerelease", "description": "Extract WordPress script dependencies from webpack bundles.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/deprecated/CHANGELOG.md b/packages/deprecated/CHANGELOG.md index 673567a2a3e49..945bf44ad6a65 100644 --- a/packages/deprecated/CHANGELOG.md +++ b/packages/deprecated/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 4.8.0 (2024-09-19) + ## 4.7.0 (2024-09-05) ## 4.6.0 (2024-08-21) diff --git a/packages/deprecated/package.json b/packages/deprecated/package.json index ed2f9434539ef..c892ed6e269d4 100644 --- a/packages/deprecated/package.json +++ b/packages/deprecated/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/deprecated", - "version": "4.7.0", + "version": "4.8.0-prerelease", "description": "Deprecation utility for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/docgen/CHANGELOG.md b/packages/docgen/CHANGELOG.md index 3aefc7cae99ae..3e966fc4518d7 100644 --- a/packages/docgen/CHANGELOG.md +++ b/packages/docgen/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 2.8.0 (2024-09-19) + ## 2.7.0 (2024-09-05) ## 2.6.0 (2024-08-21) diff --git a/packages/docgen/package.json b/packages/docgen/package.json index 38a228d50a8e0..43a582b0819ef 100644 --- a/packages/docgen/package.json +++ b/packages/docgen/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/docgen", - "version": "2.7.0", + "version": "2.8.0-prerelease", "description": "Autogenerate public API documentation from exports and JSDoc comments.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/dom-ready/CHANGELOG.md b/packages/dom-ready/CHANGELOG.md index f3290182dff5c..265e7b5947061 100644 --- a/packages/dom-ready/CHANGELOG.md +++ b/packages/dom-ready/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 4.8.0 (2024-09-19) + ## 4.7.0 (2024-09-05) ## 4.6.0 (2024-08-21) diff --git a/packages/dom-ready/package.json b/packages/dom-ready/package.json index 89acde8f2b124..d07d86d1d5e06 100644 --- a/packages/dom-ready/package.json +++ b/packages/dom-ready/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/dom-ready", - "version": "4.7.0", + "version": "4.8.0-prerelease", "description": "Execute callback after the DOM is loaded.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/dom/CHANGELOG.md b/packages/dom/CHANGELOG.md index 1857e3d51cb70..77f85a59cada8 100644 --- a/packages/dom/CHANGELOG.md +++ b/packages/dom/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 4.8.0 (2024-09-19) + ## 4.7.0 (2024-09-05) ## 4.6.0 (2024-08-21) diff --git a/packages/dom/package.json b/packages/dom/package.json index dd05677fcb930..c28e756972b35 100644 --- a/packages/dom/package.json +++ b/packages/dom/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/dom", - "version": "4.7.0", + "version": "4.8.0-prerelease", "description": "DOM utilities module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/e2e-test-utils-playwright/CHANGELOG.md b/packages/e2e-test-utils-playwright/CHANGELOG.md index eb3cbd95fe3ad..b53821f46eefe 100644 --- a/packages/e2e-test-utils-playwright/CHANGELOG.md +++ b/packages/e2e-test-utils-playwright/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 1.8.0 (2024-09-19) + ## 1.7.0 (2024-09-05) ## 1.6.0 (2024-08-21) diff --git a/packages/e2e-test-utils-playwright/package.json b/packages/e2e-test-utils-playwright/package.json index 1bb80bc4cc764..da1df3d4b2144 100644 --- a/packages/e2e-test-utils-playwright/package.json +++ b/packages/e2e-test-utils-playwright/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/e2e-test-utils-playwright", - "version": "1.7.0", + "version": "1.8.0-prerelease", "description": "End-To-End (E2E) test utils for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/e2e-test-utils/CHANGELOG.md b/packages/e2e-test-utils/CHANGELOG.md index b22c016a799bc..98c17f5b6ecb0 100644 --- a/packages/e2e-test-utils/CHANGELOG.md +++ b/packages/e2e-test-utils/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 11.8.0 (2024-09-19) + ## 11.7.0 (2024-09-05) ## 11.6.0 (2024-08-21) diff --git a/packages/e2e-test-utils/package.json b/packages/e2e-test-utils/package.json index 02cee410f33d6..cfa2c8e7120da 100644 --- a/packages/e2e-test-utils/package.json +++ b/packages/e2e-test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/e2e-test-utils", - "version": "11.7.0", + "version": "11.8.0-prerelease", "description": "End-To-End (E2E) test utils for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/e2e-tests/CHANGELOG.md b/packages/e2e-tests/CHANGELOG.md index a7ba03f05f466..3fe696deaabb5 100644 --- a/packages/e2e-tests/CHANGELOG.md +++ b/packages/e2e-tests/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 8.8.0 (2024-09-19) + ## 8.7.0 (2024-09-05) ## 8.6.0 (2024-08-21) diff --git a/packages/e2e-tests/package.json b/packages/e2e-tests/package.json index 81e7fa1802c65..f4960e156bd8f 100644 --- a/packages/e2e-tests/package.json +++ b/packages/e2e-tests/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/e2e-tests", - "version": "8.7.0", + "version": "8.8.0-prerelease", "description": "End-To-End (E2E) tests for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/edit-post/CHANGELOG.md b/packages/edit-post/CHANGELOG.md index cd4b4a36295f0..3eb52f26e6501 100644 --- a/packages/edit-post/CHANGELOG.md +++ b/packages/edit-post/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 8.8.0 (2024-09-19) + ## 8.7.0 (2024-09-05) ## 8.6.0 (2024-08-21) diff --git a/packages/edit-post/package.json b/packages/edit-post/package.json index 0d8e0b28f7c7c..55abf9cb8d235 100644 --- a/packages/edit-post/package.json +++ b/packages/edit-post/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/edit-post", - "version": "8.7.0", + "version": "8.8.0-prerelease", "description": "Edit Post module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/edit-site/CHANGELOG.md b/packages/edit-site/CHANGELOG.md index 025d2389e4b01..b14fb6dcd6d3e 100644 --- a/packages/edit-site/CHANGELOG.md +++ b/packages/edit-site/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 6.8.0 (2024-09-19) + ## 6.7.0 (2024-09-05) ## 6.6.0 (2024-08-21) diff --git a/packages/edit-site/package.json b/packages/edit-site/package.json index 43bcf68aa68e6..2284aae3a0e23 100644 --- a/packages/edit-site/package.json +++ b/packages/edit-site/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/edit-site", - "version": "6.7.0", + "version": "6.8.0-prerelease", "description": "Edit Site Page module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/edit-widgets/CHANGELOG.md b/packages/edit-widgets/CHANGELOG.md index f1cbcef0667d7..6115fc42560f8 100644 --- a/packages/edit-widgets/CHANGELOG.md +++ b/packages/edit-widgets/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 6.8.0 (2024-09-19) + ## 6.7.0 (2024-09-05) ## 6.6.0 (2024-08-21) diff --git a/packages/edit-widgets/package.json b/packages/edit-widgets/package.json index d24857f0f8a0c..d5f58474f5c16 100644 --- a/packages/edit-widgets/package.json +++ b/packages/edit-widgets/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/edit-widgets", - "version": "6.7.0", + "version": "6.8.0-prerelease", "description": "Widgets Page module for WordPress..", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/editor/CHANGELOG.md b/packages/editor/CHANGELOG.md index b380c2fd296d5..6f31c1735021f 100644 --- a/packages/editor/CHANGELOG.md +++ b/packages/editor/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 14.8.0 (2024-09-19) + ## 14.7.0 (2024-09-05) ## 14.6.0 (2024-08-21) diff --git a/packages/editor/package.json b/packages/editor/package.json index 2e01aff3a0aa5..c2b35baee86d3 100644 --- a/packages/editor/package.json +++ b/packages/editor/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/editor", - "version": "14.7.0", + "version": "14.8.0-prerelease", "description": "Enhanced block editor for WordPress posts.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/element/CHANGELOG.md b/packages/element/CHANGELOG.md index ccfa6a6021d71..ee63e4b5e70fa 100644 --- a/packages/element/CHANGELOG.md +++ b/packages/element/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 6.8.0 (2024-09-19) + ## 6.7.0 (2024-09-05) ## 6.6.0 (2024-08-21) diff --git a/packages/element/package.json b/packages/element/package.json index d6062abe6ecf6..32cdfd3eb1b24 100644 --- a/packages/element/package.json +++ b/packages/element/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/element", - "version": "6.7.0", + "version": "6.8.0-prerelease", "description": "Element React module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/env/CHANGELOG.md b/packages/env/CHANGELOG.md index b3dcf350596a0..0b32fd808d960 100644 --- a/packages/env/CHANGELOG.md +++ b/packages/env/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 10.8.0 (2024-09-19) + ## 10.7.0 (2024-09-05) ## 10.6.0 (2024-08-21) diff --git a/packages/env/package.json b/packages/env/package.json index 7f3b15b1e1562..c25fa43d5f392 100644 --- a/packages/env/package.json +++ b/packages/env/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/env", - "version": "10.7.0", + "version": "10.8.0-prerelease", "description": "A zero-config, self contained local WordPress environment for development and testing.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/escape-html/CHANGELOG.md b/packages/escape-html/CHANGELOG.md index 490cbdb184f5b..c13edebda4480 100644 --- a/packages/escape-html/CHANGELOG.md +++ b/packages/escape-html/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 3.8.0 (2024-09-19) + ## 3.7.0 (2024-09-05) ## 3.6.0 (2024-08-21) diff --git a/packages/escape-html/package.json b/packages/escape-html/package.json index 8dd1a66cf2d5e..4f577fe4dbdd8 100644 --- a/packages/escape-html/package.json +++ b/packages/escape-html/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/escape-html", - "version": "3.7.0", + "version": "3.8.0-prerelease", "description": "Escape HTML utils.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/eslint-plugin/CHANGELOG.md b/packages/eslint-plugin/CHANGELOG.md index 14d44d21acda9..725872f8bf101 100644 --- a/packages/eslint-plugin/CHANGELOG.md +++ b/packages/eslint-plugin/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 21.1.0 (2024-09-19) + ## 21.0.0 (2024-09-05) ### Breaking Changes diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json index 73996275c9154..64203cbf4ced8 100644 --- a/packages/eslint-plugin/package.json +++ b/packages/eslint-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/eslint-plugin", - "version": "21.0.0", + "version": "21.1.0-prerelease", "description": "ESLint plugin for WordPress development.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/format-library/CHANGELOG.md b/packages/format-library/CHANGELOG.md index c003ac587fcdf..11a32094cffea 100644 --- a/packages/format-library/CHANGELOG.md +++ b/packages/format-library/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 5.8.0 (2024-09-19) + ## 5.7.0 (2024-09-05) ## 5.6.0 (2024-08-21) diff --git a/packages/format-library/package.json b/packages/format-library/package.json index 780f513bdb037..a12fa54977a06 100644 --- a/packages/format-library/package.json +++ b/packages/format-library/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/format-library", - "version": "5.7.0", + "version": "5.8.0-prerelease", "description": "Format library for the WordPress editor.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/hooks/CHANGELOG.md b/packages/hooks/CHANGELOG.md index de9e11c38fe90..0e162b64513d2 100644 --- a/packages/hooks/CHANGELOG.md +++ b/packages/hooks/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 4.8.0 (2024-09-19) + ## 4.7.0 (2024-09-05) ## 4.6.0 (2024-08-21) diff --git a/packages/hooks/package.json b/packages/hooks/package.json index 51074af0d239b..1e148a6dd88bb 100644 --- a/packages/hooks/package.json +++ b/packages/hooks/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/hooks", - "version": "4.7.0", + "version": "4.8.0-prerelease", "description": "WordPress hooks library.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/html-entities/CHANGELOG.md b/packages/html-entities/CHANGELOG.md index 6887a70b391f9..e49251a865362 100644 --- a/packages/html-entities/CHANGELOG.md +++ b/packages/html-entities/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 4.8.0 (2024-09-19) + ## 4.7.0 (2024-09-05) ## 4.6.0 (2024-08-21) diff --git a/packages/html-entities/package.json b/packages/html-entities/package.json index 30e3c1728307d..b13077930659b 100644 --- a/packages/html-entities/package.json +++ b/packages/html-entities/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/html-entities", - "version": "4.7.0", + "version": "4.8.0-prerelease", "description": "HTML entity utilities for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/i18n/CHANGELOG.md b/packages/i18n/CHANGELOG.md index d2bf7ad7ea7eb..928a0d6d0ef74 100644 --- a/packages/i18n/CHANGELOG.md +++ b/packages/i18n/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 5.8.0 (2024-09-19) + ## 5.7.0 (2024-09-05) ## 5.6.0 (2024-08-21) diff --git a/packages/i18n/package.json b/packages/i18n/package.json index fb3c488c1a4de..4a1c56ed38d38 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/i18n", - "version": "5.7.0", + "version": "5.8.0-prerelease", "description": "WordPress internationalization (i18n) library.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/icons/CHANGELOG.md b/packages/icons/CHANGELOG.md index a59229e1b0eba..be047e2181d4a 100644 --- a/packages/icons/CHANGELOG.md +++ b/packages/icons/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 10.8.0 (2024-09-19) + ### New Features - Add new `bell` and `bell-unread` icons. diff --git a/packages/icons/package.json b/packages/icons/package.json index ab23fef8eff66..672a0382e96f8 100644 --- a/packages/icons/package.json +++ b/packages/icons/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/icons", - "version": "10.7.0", + "version": "10.8.0-prerelease", "description": "WordPress Icons package, based on dashicon.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/interactivity-router/CHANGELOG.md b/packages/interactivity-router/CHANGELOG.md index 00c47f3ed074b..1f8e91dec0547 100644 --- a/packages/interactivity-router/CHANGELOG.md +++ b/packages/interactivity-router/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 2.8.0 (2024-09-19) + ## 2.7.0 (2024-09-05) ## 2.6.0 (2024-08-21) diff --git a/packages/interactivity-router/package.json b/packages/interactivity-router/package.json index 7282ee0b00f9c..4b76c4492e2dc 100644 --- a/packages/interactivity-router/package.json +++ b/packages/interactivity-router/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/interactivity-router", - "version": "2.7.0", + "version": "2.8.0-prerelease", "description": "Package that exposes state and actions from the `core/router` store, part of the Interactivity API.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/interactivity/CHANGELOG.md b/packages/interactivity/CHANGELOG.md index 6e8fbc6b74e08..6989bcdc0c802 100644 --- a/packages/interactivity/CHANGELOG.md +++ b/packages/interactivity/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 6.8.0 (2024-09-19) + ### Enhancements - Refactor internal context proxies implementation ([#64713](https://github.com/WordPress/gutenberg/pull/64713)). diff --git a/packages/interactivity/package.json b/packages/interactivity/package.json index 6be9f3c4a0d7d..7b7ef3fa5f9de 100644 --- a/packages/interactivity/package.json +++ b/packages/interactivity/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/interactivity", - "version": "6.7.0", + "version": "6.8.0-prerelease", "description": "Package that provides a standard and simple way to handle the frontend interactivity of Gutenberg blocks.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/interface/CHANGELOG.md b/packages/interface/CHANGELOG.md index 64f8c370bb6ec..f5e0d5e74762a 100644 --- a/packages/interface/CHANGELOG.md +++ b/packages/interface/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 6.8.0 (2024-09-19) + ## 6.7.0 (2024-09-05) ## 6.6.0 (2024-08-21) diff --git a/packages/interface/package.json b/packages/interface/package.json index d15d648eaef44..be14bb394694c 100644 --- a/packages/interface/package.json +++ b/packages/interface/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/interface", - "version": "6.7.0", + "version": "6.8.0-prerelease", "description": "Interface module for WordPress. The package contains shared functionality across the modern JavaScript-based WordPress screens.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/is-shallow-equal/CHANGELOG.md b/packages/is-shallow-equal/CHANGELOG.md index 81f2c4b164a3a..ef424aaeebf22 100644 --- a/packages/is-shallow-equal/CHANGELOG.md +++ b/packages/is-shallow-equal/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 5.8.0 (2024-09-19) + ## 5.7.0 (2024-09-05) ## 5.6.0 (2024-08-21) diff --git a/packages/is-shallow-equal/package.json b/packages/is-shallow-equal/package.json index 553c3182bb566..72ee0392f9a2e 100644 --- a/packages/is-shallow-equal/package.json +++ b/packages/is-shallow-equal/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/is-shallow-equal", - "version": "5.7.0", + "version": "5.8.0-prerelease", "description": "Test for shallow equality between two objects or arrays.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/jest-console/CHANGELOG.md b/packages/jest-console/CHANGELOG.md index 7f7f80b815a85..2ed1dc24299f4 100644 --- a/packages/jest-console/CHANGELOG.md +++ b/packages/jest-console/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 8.8.0 (2024-09-19) + ## 8.7.0 (2024-09-05) ## 8.6.0 (2024-08-21) diff --git a/packages/jest-console/package.json b/packages/jest-console/package.json index 4381a0f287235..6c93d48d31877 100644 --- a/packages/jest-console/package.json +++ b/packages/jest-console/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/jest-console", - "version": "8.7.0", + "version": "8.8.0-prerelease", "description": "Custom Jest matchers for the Console object.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/jest-preset-default/CHANGELOG.md b/packages/jest-preset-default/CHANGELOG.md index e48d25dc1e642..a3ecded683cd1 100644 --- a/packages/jest-preset-default/CHANGELOG.md +++ b/packages/jest-preset-default/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 12.8.0 (2024-09-19) + ## 12.7.0 (2024-09-05) ## 12.6.0 (2024-08-21) diff --git a/packages/jest-preset-default/package.json b/packages/jest-preset-default/package.json index 27638c711d4d1..f5a853ff924d9 100644 --- a/packages/jest-preset-default/package.json +++ b/packages/jest-preset-default/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/jest-preset-default", - "version": "12.7.0", + "version": "12.8.0-prerelease", "description": "Default Jest preset for WordPress development.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/jest-puppeteer-axe/CHANGELOG.md b/packages/jest-puppeteer-axe/CHANGELOG.md index 572b4aa137a14..3e61ea09412d6 100644 --- a/packages/jest-puppeteer-axe/CHANGELOG.md +++ b/packages/jest-puppeteer-axe/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 7.8.0 (2024-09-19) + ## 7.7.0 (2024-09-05) ## 7.6.0 (2024-08-21) diff --git a/packages/jest-puppeteer-axe/package.json b/packages/jest-puppeteer-axe/package.json index b8ccbfcd36bef..2bdefd24ce73f 100644 --- a/packages/jest-puppeteer-axe/package.json +++ b/packages/jest-puppeteer-axe/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/jest-puppeteer-axe", - "version": "7.7.0", + "version": "7.8.0-prerelease", "description": "Axe API integration with Jest and Puppeteer.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/keyboard-shortcuts/CHANGELOG.md b/packages/keyboard-shortcuts/CHANGELOG.md index fe3506ea4a5f1..356e850692af4 100644 --- a/packages/keyboard-shortcuts/CHANGELOG.md +++ b/packages/keyboard-shortcuts/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 5.8.0 (2024-09-19) + ## 5.7.0 (2024-09-05) ## 5.6.0 (2024-08-21) diff --git a/packages/keyboard-shortcuts/package.json b/packages/keyboard-shortcuts/package.json index dd560424b66ff..d9e168b2310ef 100644 --- a/packages/keyboard-shortcuts/package.json +++ b/packages/keyboard-shortcuts/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/keyboard-shortcuts", - "version": "5.7.0", + "version": "5.8.0-prerelease", "description": "Handling keyboard shortcuts.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/keycodes/CHANGELOG.md b/packages/keycodes/CHANGELOG.md index 51050728f2f5a..a578adb34bd3d 100644 --- a/packages/keycodes/CHANGELOG.md +++ b/packages/keycodes/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 4.8.0 (2024-09-19) + ## 4.7.0 (2024-09-05) ## 4.6.0 (2024-08-21) diff --git a/packages/keycodes/package.json b/packages/keycodes/package.json index 5d8ec0545d7e3..d8702f985b1b2 100644 --- a/packages/keycodes/package.json +++ b/packages/keycodes/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/keycodes", - "version": "4.7.0", + "version": "4.8.0-prerelease", "description": "Keycodes utilities for WordPress. Used to check for keyboard events across browsers/operating systems.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/lazy-import/CHANGELOG.md b/packages/lazy-import/CHANGELOG.md index daea6da3404d3..6853a036fdaa5 100644 --- a/packages/lazy-import/CHANGELOG.md +++ b/packages/lazy-import/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 2.8.0 (2024-09-19) + ## 2.7.0 (2024-09-05) ## 2.6.0 (2024-08-21) diff --git a/packages/lazy-import/package.json b/packages/lazy-import/package.json index 62aab79635e9c..00bad5d72d9e8 100644 --- a/packages/lazy-import/package.json +++ b/packages/lazy-import/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/lazy-import", - "version": "2.7.0", + "version": "2.8.0-prerelease", "description": "Lazily import a module, installing it automatically if missing.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/list-reusable-blocks/CHANGELOG.md b/packages/list-reusable-blocks/CHANGELOG.md index 9f62523fd94e1..852f30a299917 100644 --- a/packages/list-reusable-blocks/CHANGELOG.md +++ b/packages/list-reusable-blocks/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 5.8.0 (2024-09-19) + ## 5.7.0 (2024-09-05) ## 5.6.0 (2024-08-21) diff --git a/packages/list-reusable-blocks/package.json b/packages/list-reusable-blocks/package.json index 839532327faa2..11e0496cfeade 100644 --- a/packages/list-reusable-blocks/package.json +++ b/packages/list-reusable-blocks/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/list-reusable-blocks", - "version": "5.7.0", + "version": "5.8.0-prerelease", "description": "Adding Export/Import support to the reusable blocks listing.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/media-utils/CHANGELOG.md b/packages/media-utils/CHANGELOG.md index 26282b6b2bda2..a25bdf05596f8 100644 --- a/packages/media-utils/CHANGELOG.md +++ b/packages/media-utils/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 5.8.0 (2024-09-19) + ### New Features - Rewrite in TypeScript, exporting all the individual utility functions. diff --git a/packages/media-utils/package.json b/packages/media-utils/package.json index 1cfe019e89d0a..8a7c0e9e994b5 100644 --- a/packages/media-utils/package.json +++ b/packages/media-utils/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/media-utils", - "version": "5.7.0", + "version": "5.8.0-prerelease", "description": "WordPress Media Upload Utils.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/notices/CHANGELOG.md b/packages/notices/CHANGELOG.md index f32648df69728..dbff0c69b7449 100644 --- a/packages/notices/CHANGELOG.md +++ b/packages/notices/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 5.8.0 (2024-09-19) + ## 5.7.0 (2024-09-05) ## 5.6.0 (2024-08-21) diff --git a/packages/notices/package.json b/packages/notices/package.json index a4e2c5ea8d98c..f0cd3743007c4 100644 --- a/packages/notices/package.json +++ b/packages/notices/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/notices", - "version": "5.7.0", + "version": "5.8.0-prerelease", "description": "State management for notices.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/npm-package-json-lint-config/CHANGELOG.md b/packages/npm-package-json-lint-config/CHANGELOG.md index 24dfd09fff55a..ecf89f4df6471 100644 --- a/packages/npm-package-json-lint-config/CHANGELOG.md +++ b/packages/npm-package-json-lint-config/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 5.8.0 (2024-09-19) + ## 5.7.0 (2024-09-05) ## 5.6.0 (2024-08-21) diff --git a/packages/npm-package-json-lint-config/package.json b/packages/npm-package-json-lint-config/package.json index ad88e3fd442a1..6c662b9030e79 100644 --- a/packages/npm-package-json-lint-config/package.json +++ b/packages/npm-package-json-lint-config/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/npm-package-json-lint-config", - "version": "5.7.0", + "version": "5.8.0-prerelease", "description": "WordPress npm-package-json-lint shareable configuration.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/nux/CHANGELOG.md b/packages/nux/CHANGELOG.md index 85feaa73dbc23..51a49b1bf9314 100644 --- a/packages/nux/CHANGELOG.md +++ b/packages/nux/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 9.8.0 (2024-09-19) + ## 9.7.0 (2024-09-05) ## 9.6.0 (2024-08-21) diff --git a/packages/nux/package.json b/packages/nux/package.json index 7a8e565d163aa..650206a94921f 100644 --- a/packages/nux/package.json +++ b/packages/nux/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/nux", - "version": "9.7.0", + "version": "9.8.0-prerelease", "description": "NUX (New User eXperience) module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/patterns/CHANGELOG.md b/packages/patterns/CHANGELOG.md index eaef3c431d668..1579dd646228f 100644 --- a/packages/patterns/CHANGELOG.md +++ b/packages/patterns/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 2.8.0 (2024-09-19) + ## 2.7.0 (2024-09-05) ## 2.6.0 (2024-08-21) diff --git a/packages/patterns/package.json b/packages/patterns/package.json index 6d67aa7ef3ac9..f90dae85a8dbc 100644 --- a/packages/patterns/package.json +++ b/packages/patterns/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/patterns", - "version": "2.7.0", + "version": "2.8.0-prerelease", "description": "Management of user pattern editing.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/plugins/CHANGELOG.md b/packages/plugins/CHANGELOG.md index c2c010c888115..18d5e1a38567d 100644 --- a/packages/plugins/CHANGELOG.md +++ b/packages/plugins/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 7.8.0 (2024-09-19) + ## 7.7.0 (2024-09-05) ## 7.6.0 (2024-08-21) diff --git a/packages/plugins/package.json b/packages/plugins/package.json index 9cc58fc5096be..b4dd77907862b 100644 --- a/packages/plugins/package.json +++ b/packages/plugins/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/plugins", - "version": "7.7.0", + "version": "7.8.0-prerelease", "description": "Plugins module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/postcss-plugins-preset/CHANGELOG.md b/packages/postcss-plugins-preset/CHANGELOG.md index b16c9284417a3..e4441308f0fe4 100644 --- a/packages/postcss-plugins-preset/CHANGELOG.md +++ b/packages/postcss-plugins-preset/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 5.8.0 (2024-09-19) + ## 5.7.0 (2024-09-05) ## 5.6.0 (2024-08-21) diff --git a/packages/postcss-plugins-preset/package.json b/packages/postcss-plugins-preset/package.json index d012dde494958..74ff1d8ba0fba 100644 --- a/packages/postcss-plugins-preset/package.json +++ b/packages/postcss-plugins-preset/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/postcss-plugins-preset", - "version": "5.7.0", + "version": "5.8.0-prerelease", "description": "PostCSS sharable plugins preset for WordPress development.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/postcss-themes/CHANGELOG.md b/packages/postcss-themes/CHANGELOG.md index 774c2edf77e0c..c7d61b14eadf1 100644 --- a/packages/postcss-themes/CHANGELOG.md +++ b/packages/postcss-themes/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 6.8.0 (2024-09-19) + ## 6.7.0 (2024-09-05) ## 6.6.0 (2024-08-21) diff --git a/packages/postcss-themes/package.json b/packages/postcss-themes/package.json index 29e617382161e..ea91b90bf3c4d 100644 --- a/packages/postcss-themes/package.json +++ b/packages/postcss-themes/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/postcss-themes", - "version": "6.7.0", + "version": "6.8.0-prerelease", "description": "PostCSS plugin to generate theme colors.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/preferences-persistence/CHANGELOG.md b/packages/preferences-persistence/CHANGELOG.md index a4a3081901bf5..79a755f40bfd5 100644 --- a/packages/preferences-persistence/CHANGELOG.md +++ b/packages/preferences-persistence/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 2.8.0 (2024-09-19) + ## 2.7.0 (2024-09-05) ## 2.6.0 (2024-08-21) diff --git a/packages/preferences-persistence/package.json b/packages/preferences-persistence/package.json index a318979abed2a..f22e18b5742a6 100644 --- a/packages/preferences-persistence/package.json +++ b/packages/preferences-persistence/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/preferences-persistence", - "version": "2.7.0", + "version": "2.8.0-prerelease", "description": "Persistence utilities for `wordpress/preferences`.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/preferences/CHANGELOG.md b/packages/preferences/CHANGELOG.md index 7d87ce9386875..840c476e8ece8 100644 --- a/packages/preferences/CHANGELOG.md +++ b/packages/preferences/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 4.8.0 (2024-09-19) + ## 4.7.0 (2024-09-05) ## 4.6.0 (2024-08-21) diff --git a/packages/preferences/package.json b/packages/preferences/package.json index 5b12d274af30a..045170b81a9f6 100644 --- a/packages/preferences/package.json +++ b/packages/preferences/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/preferences", - "version": "4.7.0", + "version": "4.8.0-prerelease", "description": "Utilities for managing WordPress preferences.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/prettier-config/CHANGELOG.md b/packages/prettier-config/CHANGELOG.md index e0e01d2b7f3ac..28d178a87f980 100644 --- a/packages/prettier-config/CHANGELOG.md +++ b/packages/prettier-config/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 4.8.0 (2024-09-19) + ## 4.7.0 (2024-09-05) ## 4.6.0 (2024-08-21) diff --git a/packages/prettier-config/package.json b/packages/prettier-config/package.json index f6c7797f2b6e7..fc074bec70526 100644 --- a/packages/prettier-config/package.json +++ b/packages/prettier-config/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/prettier-config", - "version": "4.7.0", + "version": "4.8.0-prerelease", "description": "WordPress Prettier shared configuration.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/primitives/CHANGELOG.md b/packages/primitives/CHANGELOG.md index 48db582f65e10..f0bd389bb08b7 100644 --- a/packages/primitives/CHANGELOG.md +++ b/packages/primitives/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 4.8.0 (2024-09-19) + ## 4.7.0 (2024-09-05) ## 4.6.0 (2024-08-21) diff --git a/packages/primitives/package.json b/packages/primitives/package.json index 8296c6348e9be..74795ab64ae5e 100644 --- a/packages/primitives/package.json +++ b/packages/primitives/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/primitives", - "version": "4.7.0", + "version": "4.8.0-prerelease", "description": "WordPress cross-platform primitives.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/priority-queue/CHANGELOG.md b/packages/priority-queue/CHANGELOG.md index a7f1257b8f6b4..1c343e2cd0e81 100644 --- a/packages/priority-queue/CHANGELOG.md +++ b/packages/priority-queue/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 3.8.0 (2024-09-19) + ## 3.7.0 (2024-09-05) ## 3.6.0 (2024-08-21) diff --git a/packages/priority-queue/package.json b/packages/priority-queue/package.json index c8d7cbe1cebb9..74c1330cb85c1 100644 --- a/packages/priority-queue/package.json +++ b/packages/priority-queue/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/priority-queue", - "version": "3.7.0", + "version": "3.8.0-prerelease", "description": "Generic browser priority queue.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/private-apis/CHANGELOG.md b/packages/private-apis/CHANGELOG.md index cd6449dc774ce..f7807d3667b8a 100644 --- a/packages/private-apis/CHANGELOG.md +++ b/packages/private-apis/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 1.8.0 (2024-09-19) + ## 1.7.0 (2024-09-05) ## 1.6.0 (2024-08-21) diff --git a/packages/private-apis/package.json b/packages/private-apis/package.json index 3a3dd1aeab570..7445a8b4a9a49 100644 --- a/packages/private-apis/package.json +++ b/packages/private-apis/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/private-apis", - "version": "1.7.0", + "version": "1.8.0-prerelease", "description": "Internal experimental APIs for WordPress core.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/project-management-automation/CHANGELOG.md b/packages/project-management-automation/CHANGELOG.md index 167e68512b3df..797d6e3a9cfe2 100644 --- a/packages/project-management-automation/CHANGELOG.md +++ b/packages/project-management-automation/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 2.8.0 (2024-09-19) + ## 2.7.0 (2024-09-05) ## 2.6.0 (2024-08-21) diff --git a/packages/project-management-automation/package.json b/packages/project-management-automation/package.json index 2e33d7c44d6cf..295869594f432 100644 --- a/packages/project-management-automation/package.json +++ b/packages/project-management-automation/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/project-management-automation", - "version": "2.7.0", + "version": "2.8.0-prerelease", "description": "GitHub Action that implements various automation to assist with managing the Gutenberg GitHub repository.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/react-i18n/CHANGELOG.md b/packages/react-i18n/CHANGELOG.md index d0c0dbe7079f4..cdab707f520dc 100644 --- a/packages/react-i18n/CHANGELOG.md +++ b/packages/react-i18n/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 4.8.0 (2024-09-19) + ## 4.7.0 (2024-09-05) ## 4.6.0 (2024-08-21) diff --git a/packages/react-i18n/package.json b/packages/react-i18n/package.json index d39fc7bba4ba5..4bc44c0849914 100644 --- a/packages/react-i18n/package.json +++ b/packages/react-i18n/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/react-i18n", - "version": "4.7.0", + "version": "4.8.0-prerelease", "description": "React bindings for @wordpress/i18n.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/readable-js-assets-webpack-plugin/CHANGELOG.md b/packages/readable-js-assets-webpack-plugin/CHANGELOG.md index 8147d5c3b3475..5f28f282f760f 100644 --- a/packages/readable-js-assets-webpack-plugin/CHANGELOG.md +++ b/packages/readable-js-assets-webpack-plugin/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 3.8.0 (2024-09-19) + ## 3.7.0 (2024-09-05) ## 3.6.0 (2024-08-21) diff --git a/packages/readable-js-assets-webpack-plugin/package.json b/packages/readable-js-assets-webpack-plugin/package.json index 285bcc27ba0a6..845f6abd1e834 100644 --- a/packages/readable-js-assets-webpack-plugin/package.json +++ b/packages/readable-js-assets-webpack-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/readable-js-assets-webpack-plugin", - "version": "3.7.0", + "version": "3.8.0-prerelease", "description": "Generate a readable JS file for each JS asset.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/redux-routine/CHANGELOG.md b/packages/redux-routine/CHANGELOG.md index bd03c25219ddb..82c3b1b4c2e92 100644 --- a/packages/redux-routine/CHANGELOG.md +++ b/packages/redux-routine/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 5.8.0 (2024-09-19) + ## 5.7.0 (2024-09-05) ## 5.6.0 (2024-08-21) diff --git a/packages/redux-routine/package.json b/packages/redux-routine/package.json index 1efebcb92de7f..fdb06030a0f91 100644 --- a/packages/redux-routine/package.json +++ b/packages/redux-routine/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/redux-routine", - "version": "5.7.0", + "version": "5.8.0-prerelease", "description": "Redux middleware for generator coroutines.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/reusable-blocks/CHANGELOG.md b/packages/reusable-blocks/CHANGELOG.md index 33f4ef529587f..9ea28faa2e6c9 100644 --- a/packages/reusable-blocks/CHANGELOG.md +++ b/packages/reusable-blocks/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 5.8.0 (2024-09-19) + ## 5.7.0 (2024-09-05) ## 5.6.0 (2024-08-21) diff --git a/packages/reusable-blocks/package.json b/packages/reusable-blocks/package.json index 8c15057189dc9..2b402b86a1ea8 100644 --- a/packages/reusable-blocks/package.json +++ b/packages/reusable-blocks/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/reusable-blocks", - "version": "5.7.0", + "version": "5.8.0-prerelease", "description": "Reusable blocks utilities.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/rich-text/CHANGELOG.md b/packages/rich-text/CHANGELOG.md index cee6ada55f7b6..e456968e24875 100644 --- a/packages/rich-text/CHANGELOG.md +++ b/packages/rich-text/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 7.8.0 (2024-09-19) + ## 7.7.0 (2024-09-05) ## 7.6.0 (2024-08-21) diff --git a/packages/rich-text/package.json b/packages/rich-text/package.json index a5a96c77175c1..7388f2b61dcb3 100644 --- a/packages/rich-text/package.json +++ b/packages/rich-text/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/rich-text", - "version": "7.7.0", + "version": "7.8.0-prerelease", "description": "Rich text value and manipulation API.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/router/CHANGELOG.md b/packages/router/CHANGELOG.md index 02871d4f31e13..2d8d93373f4c5 100644 --- a/packages/router/CHANGELOG.md +++ b/packages/router/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 1.8.0 (2024-09-19) + ## 1.7.0 (2024-09-05) ## 1.6.0 (2024-08-21) diff --git a/packages/router/package.json b/packages/router/package.json index bcc709bbac5d3..e3eed8e3389fe 100644 --- a/packages/router/package.json +++ b/packages/router/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/router", - "version": "1.7.0", + "version": "1.8.0-prerelease", "description": "Router API for WordPress pages.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/scripts/CHANGELOG.md b/packages/scripts/CHANGELOG.md index 43fe001351bc2..d24f9dfc7c02a 100644 --- a/packages/scripts/CHANGELOG.md +++ b/packages/scripts/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 30.0.0 (2024-09-19) + ### Breaking Changes diff --git a/packages/scripts/package.json b/packages/scripts/package.json index d9e74d0c71826..2c5e4a0c0e156 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/scripts", - "version": "29.0.0", + "version": "30.0.0-prerelease", "description": "Collection of reusable scripts for WordPress development.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/server-side-render/CHANGELOG.md b/packages/server-side-render/CHANGELOG.md index d576f09c8e34b..5acfc6a5cacae 100644 --- a/packages/server-side-render/CHANGELOG.md +++ b/packages/server-side-render/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 5.8.0 (2024-09-19) + ## 5.7.0 (2024-09-05) ## 5.6.0 (2024-08-21) diff --git a/packages/server-side-render/package.json b/packages/server-side-render/package.json index 9ace449e3fe96..cecd82927b10c 100644 --- a/packages/server-side-render/package.json +++ b/packages/server-side-render/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/server-side-render", - "version": "5.7.0", + "version": "5.8.0-prerelease", "description": "The component used with WordPress to server-side render a preview of dynamic blocks to display in the editor.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/shortcode/CHANGELOG.md b/packages/shortcode/CHANGELOG.md index 6abdd3c52f6d7..cc11e7806f00f 100644 --- a/packages/shortcode/CHANGELOG.md +++ b/packages/shortcode/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 4.8.0 (2024-09-19) + ## 4.7.0 (2024-09-05) ## 4.6.0 (2024-08-21) diff --git a/packages/shortcode/package.json b/packages/shortcode/package.json index 10e368d06c995..6d63c0d459b2d 100644 --- a/packages/shortcode/package.json +++ b/packages/shortcode/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/shortcode", - "version": "4.7.0", + "version": "4.8.0-prerelease", "description": "Shortcode module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/style-engine/CHANGELOG.md b/packages/style-engine/CHANGELOG.md index a5292bfdd6c19..43598ca011863 100644 --- a/packages/style-engine/CHANGELOG.md +++ b/packages/style-engine/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 2.8.0 (2024-09-19) + ## 2.7.0 (2024-09-05) ## 2.6.0 (2024-08-21) diff --git a/packages/style-engine/package.json b/packages/style-engine/package.json index 982ac1c1fa89d..5c5d4258092d7 100644 --- a/packages/style-engine/package.json +++ b/packages/style-engine/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/style-engine", - "version": "2.7.0", + "version": "2.8.0-prerelease", "description": "A suite of parsers and compilers for WordPress styles.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/stylelint-config/CHANGELOG.md b/packages/stylelint-config/CHANGELOG.md index 4cc05e02105ff..7ba3f7fd28dd7 100644 --- a/packages/stylelint-config/CHANGELOG.md +++ b/packages/stylelint-config/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 23.0.0 (2024-09-19) + ### Breaking Changes - Updated `stylelint` peer dependency requirement to `^16.8.2` ([#64828](https://github.com/WordPress/gutenberg/pull/64828)). diff --git a/packages/stylelint-config/package.json b/packages/stylelint-config/package.json index 874ec2af0c664..0ca05a84d0e59 100644 --- a/packages/stylelint-config/package.json +++ b/packages/stylelint-config/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/stylelint-config", - "version": "22.7.0", + "version": "23.0.0-prerelease", "description": "stylelint config for WordPress development.", "author": "The WordPress Contributors", "license": "MIT", diff --git a/packages/sync/CHANGELOG.md b/packages/sync/CHANGELOG.md index 071974be2a3a8..4b4978c4eab1b 100644 --- a/packages/sync/CHANGELOG.md +++ b/packages/sync/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 1.8.0 (2024-09-19) + ## 1.7.0 (2024-09-05) ## 1.6.0 (2024-08-21) diff --git a/packages/sync/package.json b/packages/sync/package.json index ba8c433e880c3..3b3cba875c1d4 100644 --- a/packages/sync/package.json +++ b/packages/sync/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/sync", - "version": "1.7.0", + "version": "1.8.0-prerelease", "description": "Sync Data.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/token-list/CHANGELOG.md b/packages/token-list/CHANGELOG.md index 7258699a5322a..068047bb7f8a5 100644 --- a/packages/token-list/CHANGELOG.md +++ b/packages/token-list/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 3.8.0 (2024-09-19) + ## 3.7.0 (2024-09-05) ## 3.6.0 (2024-08-21) diff --git a/packages/token-list/package.json b/packages/token-list/package.json index 1a06b76ccb111..4c3e1e50ecc07 100644 --- a/packages/token-list/package.json +++ b/packages/token-list/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/token-list", - "version": "3.7.0", + "version": "3.8.0-prerelease", "description": "Constructable, plain JavaScript DOMTokenList implementation, supporting non-browser runtimes.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/undo-manager/CHANGELOG.md b/packages/undo-manager/CHANGELOG.md index cbe86921a489d..a8ad0c1d7fbf0 100644 --- a/packages/undo-manager/CHANGELOG.md +++ b/packages/undo-manager/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 1.8.0 (2024-09-19) + ## 1.7.0 (2024-09-05) ## 1.6.0 (2024-08-21) diff --git a/packages/undo-manager/package.json b/packages/undo-manager/package.json index 4574d94f46d7e..0f48b9f06d796 100644 --- a/packages/undo-manager/package.json +++ b/packages/undo-manager/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/undo-manager", - "version": "1.7.0", + "version": "1.8.0-prerelease", "description": "A small package to manage undo/redo.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/url/CHANGELOG.md b/packages/url/CHANGELOG.md index fc3082dd1bd0c..491eaf2e7b8ad 100644 --- a/packages/url/CHANGELOG.md +++ b/packages/url/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 4.8.0 (2024-09-19) + ## 4.7.0 (2024-09-05) ## 4.6.0 (2024-08-21) diff --git a/packages/url/package.json b/packages/url/package.json index c8360c81008fa..2a743f6349c22 100644 --- a/packages/url/package.json +++ b/packages/url/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/url", - "version": "4.7.0", + "version": "4.8.0-prerelease", "description": "WordPress URL utilities.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/viewport/CHANGELOG.md b/packages/viewport/CHANGELOG.md index 1bc96013d724b..58850208f348c 100644 --- a/packages/viewport/CHANGELOG.md +++ b/packages/viewport/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 6.8.0 (2024-09-19) + ## 6.7.0 (2024-09-05) ## 6.6.0 (2024-08-21) diff --git a/packages/viewport/package.json b/packages/viewport/package.json index 69fe9c8695c6c..4b733228dcdee 100644 --- a/packages/viewport/package.json +++ b/packages/viewport/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/viewport", - "version": "6.7.0", + "version": "6.8.0-prerelease", "description": "Viewport module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/warning/CHANGELOG.md b/packages/warning/CHANGELOG.md index bb7df7b633062..248b318d7b576 100644 --- a/packages/warning/CHANGELOG.md +++ b/packages/warning/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 3.8.0 (2024-09-19) + ## 3.7.0 (2024-09-05) ## 3.6.0 (2024-08-21) diff --git a/packages/warning/package.json b/packages/warning/package.json index 1095d2efd7562..f00b92304dba9 100644 --- a/packages/warning/package.json +++ b/packages/warning/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/warning", - "version": "3.7.0", + "version": "3.8.0-prerelease", "description": "Warning utility for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/widgets/CHANGELOG.md b/packages/widgets/CHANGELOG.md index be1af83931495..cf3d8c8eac0c2 100644 --- a/packages/widgets/CHANGELOG.md +++ b/packages/widgets/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 4.8.0 (2024-09-19) + ## 4.7.0 (2024-09-05) ## 4.6.0 (2024-08-21) diff --git a/packages/widgets/package.json b/packages/widgets/package.json index 595bad0f73365..79e4fefb28e21 100644 --- a/packages/widgets/package.json +++ b/packages/widgets/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/widgets", - "version": "4.7.0", + "version": "4.8.0-prerelease", "description": "Functionality used by the widgets block editor in the Widgets screen and the Customizer.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/wordcount/CHANGELOG.md b/packages/wordcount/CHANGELOG.md index 0a5e3ae4d3b20..79a5a75b3ef83 100644 --- a/packages/wordcount/CHANGELOG.md +++ b/packages/wordcount/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +## 4.8.0 (2024-09-19) + ## 4.7.0 (2024-09-05) ## 4.6.0 (2024-08-21) diff --git a/packages/wordcount/package.json b/packages/wordcount/package.json index 4f6fe750e3fad..af49ecd5cee6e 100644 --- a/packages/wordcount/package.json +++ b/packages/wordcount/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/wordcount", - "version": "4.7.0", + "version": "4.8.0-prerelease", "description": "WordPress word count utility.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", From 7a86c1b8c1b3147e7ac633a04019945a9884f4a7 Mon Sep 17 00:00:00 2001 From: Gutenberg Repository Automation Date: Thu, 19 Sep 2024 02:31:04 +0000 Subject: [PATCH 004/214] chore(release): publish - @wordpress/a11y@4.8.0 - @wordpress/annotations@3.8.0 - @wordpress/api-fetch@7.8.0 - @wordpress/autop@4.8.0 - @wordpress/babel-plugin-import-jsx-pragma@5.8.0 - @wordpress/babel-plugin-makepot@6.8.0 - @wordpress/babel-preset-default@8.8.0 - @wordpress/base-styles@5.8.0 - @wordpress/blob@4.8.0 - @wordpress/block-directory@5.8.0 - @wordpress/block-editor@14.3.0 - @wordpress/block-library@9.8.0 - @wordpress/block-serialization-default-parser@5.8.0 - @wordpress/block-serialization-spec-parser@5.8.0 - @wordpress/blocks@13.8.0 - @wordpress/browserslist-config@6.8.0 - @wordpress/commands@1.8.0 - @wordpress/components@28.8.0 - @wordpress/compose@7.8.0 - @wordpress/core-commands@1.8.0 - @wordpress/core-data@7.8.0 - @wordpress/create-block@4.51.0 - @wordpress/create-block-interactive-template@2.8.0 - @wordpress/create-block-tutorial-template@4.8.0 - @wordpress/customize-widgets@5.8.0 - @wordpress/data@10.8.0 - @wordpress/data-controls@4.8.0 - @wordpress/dataviews@4.4.0 - @wordpress/date@5.8.0 - @wordpress/dependency-extraction-webpack-plugin@6.8.0 - @wordpress/deprecated@4.8.0 - @wordpress/docgen@2.8.0 - @wordpress/dom@4.8.0 - @wordpress/dom-ready@4.8.0 - @wordpress/e2e-test-utils@11.8.0 - @wordpress/e2e-test-utils-playwright@1.8.0 - @wordpress/e2e-tests@8.8.0 - @wordpress/edit-post@8.8.0 - @wordpress/edit-site@6.8.0 - @wordpress/edit-widgets@6.8.0 - @wordpress/editor@14.8.0 - @wordpress/element@6.8.0 - @wordpress/env@10.8.0 - @wordpress/escape-html@3.8.0 - @wordpress/eslint-plugin@21.1.0 - @wordpress/format-library@5.8.0 - @wordpress/hooks@4.8.0 - @wordpress/html-entities@4.8.0 - @wordpress/i18n@5.8.0 - @wordpress/icons@10.8.0 - @wordpress/interactivity@6.8.0 - @wordpress/interactivity-router@2.8.0 - @wordpress/interface@6.8.0 - @wordpress/is-shallow-equal@5.8.0 - @wordpress/jest-console@8.8.0 - @wordpress/jest-preset-default@12.8.0 - @wordpress/jest-puppeteer-axe@7.8.0 - @wordpress/keyboard-shortcuts@5.8.0 - @wordpress/keycodes@4.8.0 - @wordpress/lazy-import@2.8.0 - @wordpress/list-reusable-blocks@5.8.0 - @wordpress/media-utils@5.8.0 - @wordpress/notices@5.8.0 - @wordpress/npm-package-json-lint-config@5.8.0 - @wordpress/nux@9.8.0 - @wordpress/patterns@2.8.0 - @wordpress/plugins@7.8.0 - @wordpress/postcss-plugins-preset@5.8.0 - @wordpress/postcss-themes@6.8.0 - @wordpress/preferences@4.8.0 - @wordpress/preferences-persistence@2.8.0 - @wordpress/prettier-config@4.8.0 - @wordpress/primitives@4.8.0 - @wordpress/priority-queue@3.8.0 - @wordpress/private-apis@1.8.0 - @wordpress/project-management-automation@2.8.0 - @wordpress/react-i18n@4.8.0 - @wordpress/readable-js-assets-webpack-plugin@3.8.0 - @wordpress/redux-routine@5.8.0 - @wordpress/reusable-blocks@5.8.0 - @wordpress/rich-text@7.8.0 - @wordpress/router@1.8.0 - @wordpress/scripts@30.0.0 - @wordpress/server-side-render@5.8.0 - @wordpress/shortcode@4.8.0 - @wordpress/style-engine@2.8.0 - @wordpress/stylelint-config@23.0.0 - @wordpress/sync@1.8.0 - @wordpress/token-list@3.8.0 - @wordpress/undo-manager@1.8.0 - @wordpress/url@4.8.0 - @wordpress/viewport@6.8.0 - @wordpress/warning@3.8.0 - @wordpress/widgets@4.8.0 - @wordpress/wordcount@4.8.0 --- package-lock.json | 188 +++++++++--------- packages/a11y/package.json | 2 +- packages/annotations/package.json | 2 +- packages/api-fetch/package.json | 2 +- packages/autop/package.json | 2 +- .../package.json | 2 +- packages/babel-plugin-makepot/package.json | 2 +- packages/babel-preset-default/package.json | 2 +- packages/base-styles/package.json | 2 +- packages/blob/package.json | 2 +- packages/block-directory/package.json | 2 +- packages/block-editor/package.json | 2 +- packages/block-library/package.json | 2 +- .../package.json | 2 +- .../package.json | 2 +- packages/blocks/package.json | 2 +- packages/browserslist-config/package.json | 2 +- packages/commands/package.json | 2 +- packages/components/package.json | 2 +- packages/compose/package.json | 2 +- packages/core-commands/package.json | 2 +- packages/core-data/package.json | 2 +- .../package.json | 2 +- .../package.json | 2 +- packages/create-block/package.json | 2 +- packages/customize-widgets/package.json | 2 +- packages/data-controls/package.json | 2 +- packages/data/package.json | 2 +- packages/dataviews/package.json | 2 +- packages/date/package.json | 2 +- .../package.json | 2 +- packages/deprecated/package.json | 2 +- packages/docgen/package.json | 2 +- packages/dom-ready/package.json | 2 +- packages/dom/package.json | 2 +- .../e2e-test-utils-playwright/package.json | 2 +- packages/e2e-test-utils/package.json | 2 +- packages/e2e-tests/package.json | 2 +- packages/edit-post/package.json | 2 +- packages/edit-site/package.json | 2 +- packages/edit-widgets/package.json | 2 +- packages/editor/package.json | 2 +- packages/element/package.json | 2 +- packages/env/package.json | 2 +- packages/escape-html/package.json | 2 +- packages/eslint-plugin/package.json | 2 +- packages/format-library/package.json | 2 +- packages/hooks/package.json | 2 +- packages/html-entities/package.json | 2 +- packages/i18n/package.json | 2 +- packages/icons/package.json | 2 +- packages/interactivity-router/package.json | 2 +- packages/interactivity/package.json | 2 +- packages/interface/package.json | 2 +- packages/is-shallow-equal/package.json | 2 +- packages/jest-console/package.json | 2 +- packages/jest-preset-default/package.json | 2 +- packages/jest-puppeteer-axe/package.json | 2 +- packages/keyboard-shortcuts/package.json | 2 +- packages/keycodes/package.json | 2 +- packages/lazy-import/package.json | 2 +- packages/list-reusable-blocks/package.json | 2 +- packages/media-utils/package.json | 2 +- packages/notices/package.json | 2 +- .../npm-package-json-lint-config/package.json | 2 +- packages/nux/package.json | 2 +- packages/patterns/package.json | 2 +- packages/plugins/package.json | 2 +- packages/postcss-plugins-preset/package.json | 2 +- packages/postcss-themes/package.json | 2 +- packages/preferences-persistence/package.json | 2 +- packages/preferences/package.json | 2 +- packages/prettier-config/package.json | 2 +- packages/primitives/package.json | 2 +- packages/priority-queue/package.json | 2 +- packages/private-apis/package.json | 2 +- .../package.json | 2 +- packages/react-i18n/package.json | 2 +- .../package.json | 2 +- packages/redux-routine/package.json | 2 +- packages/reusable-blocks/package.json | 2 +- packages/rich-text/package.json | 2 +- packages/router/package.json | 2 +- packages/scripts/package.json | 2 +- packages/server-side-render/package.json | 2 +- packages/shortcode/package.json | 2 +- packages/style-engine/package.json | 2 +- packages/stylelint-config/package.json | 2 +- packages/sync/package.json | 2 +- packages/token-list/package.json | 2 +- packages/undo-manager/package.json | 2 +- packages/url/package.json | 2 +- packages/viewport/package.json | 2 +- packages/warning/package.json | 2 +- packages/widgets/package.json | 2 +- packages/wordcount/package.json | 2 +- 96 files changed, 189 insertions(+), 189 deletions(-) diff --git a/package-lock.json b/package-lock.json index 421f1418cd5f2..f61d8acd98274 100644 --- a/package-lock.json +++ b/package-lock.json @@ -52564,7 +52564,7 @@ }, "packages/a11y": { "name": "@wordpress/a11y", - "version": "4.7.0", + "version": "4.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -52578,7 +52578,7 @@ }, "packages/annotations": { "name": "@wordpress/annotations", - "version": "3.7.0", + "version": "3.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -52606,7 +52606,7 @@ }, "packages/api-fetch": { "name": "@wordpress/api-fetch", - "version": "7.7.0", + "version": "7.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -52620,7 +52620,7 @@ }, "packages/autop": { "name": "@wordpress/autop", - "version": "4.7.0", + "version": "4.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0" @@ -52632,7 +52632,7 @@ }, "packages/babel-plugin-import-jsx-pragma": { "name": "@wordpress/babel-plugin-import-jsx-pragma", - "version": "5.7.0", + "version": "5.8.0", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -52645,7 +52645,7 @@ }, "packages/babel-plugin-makepot": { "name": "@wordpress/babel-plugin-makepot", - "version": "6.7.0", + "version": "6.8.0", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -52663,7 +52663,7 @@ }, "packages/babel-preset-default": { "name": "@wordpress/babel-preset-default", - "version": "8.7.0", + "version": "8.8.0", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -52686,7 +52686,7 @@ }, "packages/base-styles": { "name": "@wordpress/base-styles", - "version": "5.7.0", + "version": "5.8.0", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -52696,7 +52696,7 @@ }, "packages/blob": { "name": "@wordpress/blob", - "version": "4.7.0", + "version": "4.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0" @@ -52708,7 +52708,7 @@ }, "packages/block-directory": { "name": "@wordpress/block-directory", - "version": "5.7.0", + "version": "5.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -52743,7 +52743,7 @@ }, "packages/block-editor": { "name": "@wordpress/block-editor", - "version": "14.2.0", + "version": "14.3.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -52842,7 +52842,7 @@ }, "packages/block-library": { "name": "@wordpress/block-library", - "version": "9.7.0", + "version": "9.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -52908,7 +52908,7 @@ }, "packages/block-serialization-default-parser": { "name": "@wordpress/block-serialization-default-parser", - "version": "5.7.0", + "version": "5.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0" @@ -52920,7 +52920,7 @@ }, "packages/block-serialization-spec-parser": { "name": "@wordpress/block-serialization-spec-parser", - "version": "5.7.0", + "version": "5.8.0", "license": "GPL-2.0-or-later", "dependencies": { "pegjs": "^0.10.0", @@ -52933,7 +52933,7 @@ }, "packages/blocks": { "name": "@wordpress/blocks", - "version": "13.7.0", + "version": "13.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -52987,7 +52987,7 @@ }, "packages/browserslist-config": { "name": "@wordpress/browserslist-config", - "version": "6.7.0", + "version": "6.8.0", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -52997,7 +52997,7 @@ }, "packages/commands": { "name": "@wordpress/commands", - "version": "1.7.0", + "version": "1.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53170,7 +53170,7 @@ }, "packages/components": { "name": "@wordpress/components", - "version": "28.7.0", + "version": "28.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@ariakit/react": "^0.4.10", @@ -53290,7 +53290,7 @@ }, "packages/compose": { "name": "@wordpress/compose", - "version": "7.7.0", + "version": "7.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53327,7 +53327,7 @@ }, "packages/core-commands": { "name": "@wordpress/core-commands", - "version": "1.7.0", + "version": "1.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53355,7 +53355,7 @@ }, "packages/core-data": { "name": "@wordpress/core-data", - "version": "7.7.0", + "version": "7.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53400,7 +53400,7 @@ }, "packages/create-block": { "name": "@wordpress/create-block", - "version": "4.50.0", + "version": "4.51.0", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -53428,7 +53428,7 @@ }, "packages/create-block-tutorial-template": { "name": "@wordpress/create-block-tutorial-template", - "version": "4.7.0", + "version": "4.8.0", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -53438,7 +53438,7 @@ }, "packages/customize-widgets": { "name": "@wordpress/customize-widgets", - "version": "5.7.0", + "version": "5.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53476,7 +53476,7 @@ }, "packages/data": { "name": "@wordpress/data", - "version": "10.7.0", + "version": "10.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53505,7 +53505,7 @@ }, "packages/data-controls": { "name": "@wordpress/data-controls", - "version": "4.7.0", + "version": "4.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53523,7 +53523,7 @@ }, "packages/dataviews": { "name": "@wordpress/dataviews", - "version": "4.3.0", + "version": "4.4.0", "license": "GPL-2.0-or-later", "dependencies": { "@ariakit/react": "^0.4.10", @@ -53580,7 +53580,7 @@ }, "packages/date": { "name": "@wordpress/date", - "version": "5.7.0", + "version": "5.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53595,7 +53595,7 @@ }, "packages/dependency-extraction-webpack-plugin": { "name": "@wordpress/dependency-extraction-webpack-plugin", - "version": "6.7.0", + "version": "6.8.0", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -53611,7 +53611,7 @@ }, "packages/deprecated": { "name": "@wordpress/deprecated", - "version": "4.7.0", + "version": "4.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53624,7 +53624,7 @@ }, "packages/docgen": { "name": "@wordpress/docgen", - "version": "2.7.0", + "version": "2.8.0", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -53646,7 +53646,7 @@ }, "packages/dom": { "name": "@wordpress/dom", - "version": "4.7.0", + "version": "4.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53659,7 +53659,7 @@ }, "packages/dom-ready": { "name": "@wordpress/dom-ready", - "version": "4.7.0", + "version": "4.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0" @@ -53671,7 +53671,7 @@ }, "packages/e2e-test-utils": { "name": "@wordpress/e2e-test-utils", - "version": "11.7.0", + "version": "11.8.0", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -53694,7 +53694,7 @@ }, "packages/e2e-test-utils-playwright": { "name": "@wordpress/e2e-test-utils-playwright", - "version": "1.7.0", + "version": "1.8.0", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -53722,7 +53722,7 @@ }, "packages/e2e-tests": { "name": "@wordpress/e2e-tests", - "version": "8.7.0", + "version": "8.8.0", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -53762,7 +53762,7 @@ }, "packages/edit-post": { "name": "@wordpress/edit-post", - "version": "8.7.0", + "version": "8.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53809,7 +53809,7 @@ }, "packages/edit-site": { "name": "@wordpress/edit-site", - "version": "6.7.0", + "version": "6.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53871,7 +53871,7 @@ }, "packages/edit-widgets": { "name": "@wordpress/edit-widgets", - "version": "6.7.0", + "version": "6.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53914,7 +53914,7 @@ }, "packages/editor": { "name": "@wordpress/editor", - "version": "14.7.0", + "version": "14.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53976,7 +53976,7 @@ }, "packages/element": { "name": "@wordpress/element", - "version": "6.7.0", + "version": "6.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53995,7 +53995,7 @@ }, "packages/env": { "name": "@wordpress/env", - "version": "10.7.0", + "version": "10.8.0", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -54137,7 +54137,7 @@ }, "packages/escape-html": { "name": "@wordpress/escape-html", - "version": "3.7.0", + "version": "3.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0" @@ -54149,7 +54149,7 @@ }, "packages/eslint-plugin": { "name": "@wordpress/eslint-plugin", - "version": "21.0.0", + "version": "21.1.0", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -54227,7 +54227,7 @@ }, "packages/format-library": { "name": "@wordpress/format-library", - "version": "5.7.0", + "version": "5.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54255,7 +54255,7 @@ }, "packages/hooks": { "name": "@wordpress/hooks", - "version": "4.7.0", + "version": "4.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0" @@ -54267,7 +54267,7 @@ }, "packages/html-entities": { "name": "@wordpress/html-entities", - "version": "4.7.0", + "version": "4.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0" @@ -54279,7 +54279,7 @@ }, "packages/i18n": { "name": "@wordpress/i18n", - "version": "5.7.0", + "version": "5.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54299,7 +54299,7 @@ }, "packages/icons": { "name": "@wordpress/icons", - "version": "10.7.0", + "version": "10.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54313,7 +54313,7 @@ }, "packages/interactivity": { "name": "@wordpress/interactivity", - "version": "6.7.0", + "version": "6.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@preact/signals": "^1.2.2", @@ -54326,7 +54326,7 @@ }, "packages/interactivity-router": { "name": "@wordpress/interactivity-router", - "version": "2.7.0", + "version": "2.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@wordpress/a11y": "file:../a11y", @@ -54363,7 +54363,7 @@ }, "packages/interface": { "name": "@wordpress/interface", - "version": "6.7.0", + "version": "6.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54392,7 +54392,7 @@ }, "packages/is-shallow-equal": { "name": "@wordpress/is-shallow-equal", - "version": "5.7.0", + "version": "5.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0" @@ -54404,7 +54404,7 @@ }, "packages/jest-console": { "name": "@wordpress/jest-console", - "version": "8.7.0", + "version": "8.8.0", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -54421,7 +54421,7 @@ }, "packages/jest-preset-default": { "name": "@wordpress/jest-preset-default", - "version": "12.7.0", + "version": "12.8.0", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -54439,7 +54439,7 @@ }, "packages/jest-puppeteer-axe": { "name": "@wordpress/jest-puppeteer-axe", - "version": "7.7.0", + "version": "7.8.0", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -54462,7 +54462,7 @@ }, "packages/keyboard-shortcuts": { "name": "@wordpress/keyboard-shortcuts", - "version": "5.7.0", + "version": "5.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54480,7 +54480,7 @@ }, "packages/keycodes": { "name": "@wordpress/keycodes", - "version": "4.7.0", + "version": "4.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54493,7 +54493,7 @@ }, "packages/lazy-import": { "name": "@wordpress/lazy-import", - "version": "2.7.0", + "version": "2.8.0", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -54508,7 +54508,7 @@ }, "packages/list-reusable-blocks": { "name": "@wordpress/list-reusable-blocks", - "version": "5.7.0", + "version": "5.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54531,7 +54531,7 @@ }, "packages/media-utils": { "name": "@wordpress/media-utils", - "version": "5.7.0", + "version": "5.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54547,7 +54547,7 @@ }, "packages/notices": { "name": "@wordpress/notices", - "version": "5.7.0", + "version": "5.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54564,7 +54564,7 @@ }, "packages/npm-package-json-lint-config": { "name": "@wordpress/npm-package-json-lint-config", - "version": "5.7.0", + "version": "5.8.0", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -54577,7 +54577,7 @@ }, "packages/nux": { "name": "@wordpress/nux", - "version": "9.7.0", + "version": "9.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54600,7 +54600,7 @@ }, "packages/patterns": { "name": "@wordpress/patterns", - "version": "2.7.0", + "version": "2.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54630,7 +54630,7 @@ }, "packages/plugins": { "name": "@wordpress/plugins", - "version": "7.7.0", + "version": "7.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54653,7 +54653,7 @@ }, "packages/postcss-plugins-preset": { "name": "@wordpress/postcss-plugins-preset", - "version": "5.7.0", + "version": "5.8.0", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -54670,7 +54670,7 @@ }, "packages/postcss-themes": { "name": "@wordpress/postcss-themes", - "version": "6.7.0", + "version": "6.8.0", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -54683,7 +54683,7 @@ }, "packages/preferences": { "name": "@wordpress/preferences", - "version": "4.7.0", + "version": "4.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54709,7 +54709,7 @@ }, "packages/preferences-persistence": { "name": "@wordpress/preferences-persistence", - "version": "2.7.0", + "version": "2.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54722,7 +54722,7 @@ }, "packages/prettier-config": { "name": "@wordpress/prettier-config", - "version": "4.7.0", + "version": "4.8.0", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -54735,7 +54735,7 @@ }, "packages/primitives": { "name": "@wordpress/primitives", - "version": "4.7.0", + "version": "4.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54752,7 +54752,7 @@ }, "packages/priority-queue": { "name": "@wordpress/priority-queue", - "version": "3.7.0", + "version": "3.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54765,7 +54765,7 @@ }, "packages/private-apis": { "name": "@wordpress/private-apis", - "version": "1.7.0", + "version": "1.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0" @@ -54777,7 +54777,7 @@ }, "packages/project-management-automation": { "name": "@wordpress/project-management-automation", - "version": "2.7.0", + "version": "2.8.0", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -54807,7 +54807,7 @@ }, "packages/react-i18n": { "name": "@wordpress/react-i18n", - "version": "4.7.0", + "version": "4.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54963,7 +54963,7 @@ }, "packages/readable-js-assets-webpack-plugin": { "name": "@wordpress/readable-js-assets-webpack-plugin", - "version": "3.7.0", + "version": "3.8.0", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -54976,7 +54976,7 @@ }, "packages/redux-routine": { "name": "@wordpress/redux-routine", - "version": "5.7.0", + "version": "5.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -55021,7 +55021,7 @@ }, "packages/reusable-blocks": { "name": "@wordpress/reusable-blocks", - "version": "5.7.0", + "version": "5.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -55048,7 +55048,7 @@ }, "packages/rich-text": { "name": "@wordpress/rich-text", - "version": "7.7.0", + "version": "7.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -55072,7 +55072,7 @@ }, "packages/router": { "name": "@wordpress/router", - "version": "1.7.0", + "version": "1.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -55091,7 +55091,7 @@ }, "packages/scripts": { "name": "@wordpress/scripts", - "version": "29.0.0", + "version": "30.0.0", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -55546,7 +55546,7 @@ }, "packages/server-side-render": { "name": "@wordpress/server-side-render", - "version": "5.7.0", + "version": "5.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -55572,7 +55572,7 @@ }, "packages/shortcode": { "name": "@wordpress/shortcode", - "version": "4.7.0", + "version": "4.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -55585,7 +55585,7 @@ }, "packages/style-engine": { "name": "@wordpress/style-engine", - "version": "2.7.0", + "version": "2.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -55598,7 +55598,7 @@ }, "packages/stylelint-config": { "name": "@wordpress/stylelint-config", - "version": "22.7.0", + "version": "23.0.0", "dev": true, "license": "MIT", "dependencies": { @@ -55716,7 +55716,7 @@ }, "packages/sync": { "name": "@wordpress/sync", - "version": "1.7.0", + "version": "1.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -55737,7 +55737,7 @@ }, "packages/token-list": { "name": "@wordpress/token-list", - "version": "3.7.0", + "version": "3.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0" @@ -55749,7 +55749,7 @@ }, "packages/undo-manager": { "name": "@wordpress/undo-manager", - "version": "1.7.0", + "version": "1.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -55762,7 +55762,7 @@ }, "packages/url": { "name": "@wordpress/url", - "version": "4.7.0", + "version": "4.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -55775,7 +55775,7 @@ }, "packages/viewport": { "name": "@wordpress/viewport", - "version": "6.7.0", + "version": "6.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -55793,7 +55793,7 @@ }, "packages/warning": { "name": "@wordpress/warning", - "version": "3.7.0", + "version": "3.8.0", "license": "GPL-2.0-or-later", "engines": { "node": ">=18.12.0", @@ -55802,7 +55802,7 @@ }, "packages/widgets": { "name": "@wordpress/widgets", - "version": "4.7.0", + "version": "4.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -55830,7 +55830,7 @@ }, "packages/wordcount": { "name": "@wordpress/wordcount", - "version": "4.7.0", + "version": "4.8.0", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0" diff --git a/packages/a11y/package.json b/packages/a11y/package.json index b1faa8dc0b260..d3337485a1828 100644 --- a/packages/a11y/package.json +++ b/packages/a11y/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/a11y", - "version": "4.8.0-prerelease", + "version": "4.8.0", "description": "Accessibility (a11y) utilities for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/annotations/package.json b/packages/annotations/package.json index 3d3f60867cc92..edaae0ca7617b 100644 --- a/packages/annotations/package.json +++ b/packages/annotations/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/annotations", - "version": "3.8.0-prerelease", + "version": "3.8.0", "description": "Annotate content in the Gutenberg editor.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/api-fetch/package.json b/packages/api-fetch/package.json index 96657c57402c8..54fb852a75402 100644 --- a/packages/api-fetch/package.json +++ b/packages/api-fetch/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/api-fetch", - "version": "7.8.0-prerelease", + "version": "7.8.0", "description": "Utility to make WordPress REST API requests.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/autop/package.json b/packages/autop/package.json index ca0fd3f00d062..49ddffcf79f9c 100644 --- a/packages/autop/package.json +++ b/packages/autop/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/autop", - "version": "4.8.0-prerelease", + "version": "4.8.0", "description": "WordPress's automatic paragraph functions `autop` and `removep`.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/babel-plugin-import-jsx-pragma/package.json b/packages/babel-plugin-import-jsx-pragma/package.json index 788cebe10ddf0..d06a750eb0d91 100644 --- a/packages/babel-plugin-import-jsx-pragma/package.json +++ b/packages/babel-plugin-import-jsx-pragma/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/babel-plugin-import-jsx-pragma", - "version": "5.8.0-prerelease", + "version": "5.8.0", "description": "Babel transform plugin for automatically injecting an import to be used as the pragma for the React JSX Transform plugin.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/babel-plugin-makepot/package.json b/packages/babel-plugin-makepot/package.json index 1e3e950fb9fc7..5c9cbb1384796 100644 --- a/packages/babel-plugin-makepot/package.json +++ b/packages/babel-plugin-makepot/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/babel-plugin-makepot", - "version": "6.8.0-prerelease", + "version": "6.8.0", "description": "WordPress Babel internationalization (i18n) plugin.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/babel-preset-default/package.json b/packages/babel-preset-default/package.json index 5ee37cfb105c2..f0f015cb2203f 100644 --- a/packages/babel-preset-default/package.json +++ b/packages/babel-preset-default/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/babel-preset-default", - "version": "8.8.0-prerelease", + "version": "8.8.0", "description": "Default Babel preset for WordPress development.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/base-styles/package.json b/packages/base-styles/package.json index c6a873e94191a..c6ab374e1f5dd 100644 --- a/packages/base-styles/package.json +++ b/packages/base-styles/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/base-styles", - "version": "5.8.0-prerelease", + "version": "5.8.0", "description": "Base SCSS utilities and variables for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/blob/package.json b/packages/blob/package.json index cffd5985680ec..cbcf04ecf6488 100644 --- a/packages/blob/package.json +++ b/packages/blob/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/blob", - "version": "4.8.0-prerelease", + "version": "4.8.0", "description": "Blob utilities for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/block-directory/package.json b/packages/block-directory/package.json index fdc69ffefcebb..beef057bf05f0 100644 --- a/packages/block-directory/package.json +++ b/packages/block-directory/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/block-directory", - "version": "5.8.0-prerelease", + "version": "5.8.0", "description": "Extend editor with block directory features to search, download and install blocks.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/block-editor/package.json b/packages/block-editor/package.json index fb0f3423b483f..a135f126d7eb3 100644 --- a/packages/block-editor/package.json +++ b/packages/block-editor/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/block-editor", - "version": "14.3.0-prerelease", + "version": "14.3.0", "description": "Generic block editor.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/block-library/package.json b/packages/block-library/package.json index afe4dd960f7c6..aa9daf62dda63 100644 --- a/packages/block-library/package.json +++ b/packages/block-library/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/block-library", - "version": "9.8.0-prerelease", + "version": "9.8.0", "description": "Block library for the WordPress editor.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/block-serialization-default-parser/package.json b/packages/block-serialization-default-parser/package.json index b4317c163474b..60e638120952d 100644 --- a/packages/block-serialization-default-parser/package.json +++ b/packages/block-serialization-default-parser/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/block-serialization-default-parser", - "version": "5.8.0-prerelease", + "version": "5.8.0", "description": "Block serialization specification parser for WordPress posts.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/block-serialization-spec-parser/package.json b/packages/block-serialization-spec-parser/package.json index 0640578fb5cc4..ab73fa1689ad6 100644 --- a/packages/block-serialization-spec-parser/package.json +++ b/packages/block-serialization-spec-parser/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/block-serialization-spec-parser", - "version": "5.8.0-prerelease", + "version": "5.8.0", "description": "Block serialization specification parser for WordPress posts.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/blocks/package.json b/packages/blocks/package.json index 45b31db7cea66..b2c24928b7c34 100644 --- a/packages/blocks/package.json +++ b/packages/blocks/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/blocks", - "version": "13.8.0-prerelease", + "version": "13.8.0", "description": "Block API for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/browserslist-config/package.json b/packages/browserslist-config/package.json index 26d5a6820b728..cae627c406e81 100644 --- a/packages/browserslist-config/package.json +++ b/packages/browserslist-config/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/browserslist-config", - "version": "6.8.0-prerelease", + "version": "6.8.0", "description": "WordPress Browserslist shared configuration.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/commands/package.json b/packages/commands/package.json index ea3139bc0d0bc..769931293bd2f 100644 --- a/packages/commands/package.json +++ b/packages/commands/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/commands", - "version": "1.8.0-prerelease", + "version": "1.8.0", "description": "Handles the commands menu.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/components/package.json b/packages/components/package.json index 2457629777639..98eb4c5de0430 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/components", - "version": "28.8.0-prerelease", + "version": "28.8.0", "description": "UI components for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/compose/package.json b/packages/compose/package.json index 30f9eacbea191..f52ac9956a75c 100644 --- a/packages/compose/package.json +++ b/packages/compose/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/compose", - "version": "7.8.0-prerelease", + "version": "7.8.0", "description": "WordPress higher-order components (HOCs).", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/core-commands/package.json b/packages/core-commands/package.json index 944feaa3425fa..8334ef97c9244 100644 --- a/packages/core-commands/package.json +++ b/packages/core-commands/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/core-commands", - "version": "1.8.0-prerelease", + "version": "1.8.0", "description": "WordPress core reusable commands.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/core-data/package.json b/packages/core-data/package.json index ae1a5a5928d24..b0eadbcea2603 100644 --- a/packages/core-data/package.json +++ b/packages/core-data/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/core-data", - "version": "7.8.0-prerelease", + "version": "7.8.0", "description": "Access to and manipulation of core WordPress entities.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/create-block-interactive-template/package.json b/packages/create-block-interactive-template/package.json index 2e8b50d852143..ad30a4b7e0195 100644 --- a/packages/create-block-interactive-template/package.json +++ b/packages/create-block-interactive-template/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/create-block-interactive-template", - "version": "2.8.0-prerelease", + "version": "2.8.0", "description": "Template for @wordpress/create-block to create interactive blocks with the Interactivity API.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/create-block-tutorial-template/package.json b/packages/create-block-tutorial-template/package.json index a55a328c51842..67b0c9554ed98 100644 --- a/packages/create-block-tutorial-template/package.json +++ b/packages/create-block-tutorial-template/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/create-block-tutorial-template", - "version": "4.8.0-prerelease", + "version": "4.8.0", "description": "This is a template for @wordpress/create-block that creates an example 'Copyright Date' block. This block is used in the official WordPress block development Quick Start Guide.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/create-block/package.json b/packages/create-block/package.json index ffed77a5db0f0..e1522c887deef 100644 --- a/packages/create-block/package.json +++ b/packages/create-block/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/create-block", - "version": "4.51.0-prerelease", + "version": "4.51.0", "description": "Generates PHP, JS and CSS code for registering a block for a WordPress plugin.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/customize-widgets/package.json b/packages/customize-widgets/package.json index 35a3c438f2886..05edab039844b 100644 --- a/packages/customize-widgets/package.json +++ b/packages/customize-widgets/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/customize-widgets", - "version": "5.8.0-prerelease", + "version": "5.8.0", "description": "Widgets blocks in Customizer Module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/data-controls/package.json b/packages/data-controls/package.json index 38c74b42e9f8d..5d4d06d3c13cd 100644 --- a/packages/data-controls/package.json +++ b/packages/data-controls/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/data-controls", - "version": "4.8.0-prerelease", + "version": "4.8.0", "description": "A set of common controls for the @wordpress/data api.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/data/package.json b/packages/data/package.json index 0cc2495a5dc74..11396fe33e087 100644 --- a/packages/data/package.json +++ b/packages/data/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/data", - "version": "10.8.0-prerelease", + "version": "10.8.0", "description": "Data module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/dataviews/package.json b/packages/dataviews/package.json index a9e5f5be7ebf7..6265d88a4ad82 100644 --- a/packages/dataviews/package.json +++ b/packages/dataviews/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/dataviews", - "version": "4.4.0-prerelease", + "version": "4.4.0", "description": "DataViews is a component that provides an API to render datasets using different types of layouts (table, grid, list, etc.).", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/date/package.json b/packages/date/package.json index 51e1da0e94229..ad957a6393e1c 100644 --- a/packages/date/package.json +++ b/packages/date/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/date", - "version": "5.8.0-prerelease", + "version": "5.8.0", "description": "Date module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/dependency-extraction-webpack-plugin/package.json b/packages/dependency-extraction-webpack-plugin/package.json index 237e0d1c475cf..a9368e1eb1825 100644 --- a/packages/dependency-extraction-webpack-plugin/package.json +++ b/packages/dependency-extraction-webpack-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/dependency-extraction-webpack-plugin", - "version": "6.8.0-prerelease", + "version": "6.8.0", "description": "Extract WordPress script dependencies from webpack bundles.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/deprecated/package.json b/packages/deprecated/package.json index c892ed6e269d4..245d459fb842e 100644 --- a/packages/deprecated/package.json +++ b/packages/deprecated/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/deprecated", - "version": "4.8.0-prerelease", + "version": "4.8.0", "description": "Deprecation utility for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/docgen/package.json b/packages/docgen/package.json index 43a582b0819ef..9bd4581859193 100644 --- a/packages/docgen/package.json +++ b/packages/docgen/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/docgen", - "version": "2.8.0-prerelease", + "version": "2.8.0", "description": "Autogenerate public API documentation from exports and JSDoc comments.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/dom-ready/package.json b/packages/dom-ready/package.json index d07d86d1d5e06..9f4ffbcf61e41 100644 --- a/packages/dom-ready/package.json +++ b/packages/dom-ready/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/dom-ready", - "version": "4.8.0-prerelease", + "version": "4.8.0", "description": "Execute callback after the DOM is loaded.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/dom/package.json b/packages/dom/package.json index c28e756972b35..6707de0599269 100644 --- a/packages/dom/package.json +++ b/packages/dom/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/dom", - "version": "4.8.0-prerelease", + "version": "4.8.0", "description": "DOM utilities module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/e2e-test-utils-playwright/package.json b/packages/e2e-test-utils-playwright/package.json index da1df3d4b2144..f8e31ddc3c359 100644 --- a/packages/e2e-test-utils-playwright/package.json +++ b/packages/e2e-test-utils-playwright/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/e2e-test-utils-playwright", - "version": "1.8.0-prerelease", + "version": "1.8.0", "description": "End-To-End (E2E) test utils for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/e2e-test-utils/package.json b/packages/e2e-test-utils/package.json index cfa2c8e7120da..eeb0e66cb62a7 100644 --- a/packages/e2e-test-utils/package.json +++ b/packages/e2e-test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/e2e-test-utils", - "version": "11.8.0-prerelease", + "version": "11.8.0", "description": "End-To-End (E2E) test utils for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/e2e-tests/package.json b/packages/e2e-tests/package.json index f4960e156bd8f..2ce38150c96a0 100644 --- a/packages/e2e-tests/package.json +++ b/packages/e2e-tests/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/e2e-tests", - "version": "8.8.0-prerelease", + "version": "8.8.0", "description": "End-To-End (E2E) tests for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/edit-post/package.json b/packages/edit-post/package.json index 55abf9cb8d235..1e5cbb13892a1 100644 --- a/packages/edit-post/package.json +++ b/packages/edit-post/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/edit-post", - "version": "8.8.0-prerelease", + "version": "8.8.0", "description": "Edit Post module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/edit-site/package.json b/packages/edit-site/package.json index 2284aae3a0e23..ef1cdaaa6a5c7 100644 --- a/packages/edit-site/package.json +++ b/packages/edit-site/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/edit-site", - "version": "6.8.0-prerelease", + "version": "6.8.0", "description": "Edit Site Page module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/edit-widgets/package.json b/packages/edit-widgets/package.json index d5f58474f5c16..f0cc613aa40fc 100644 --- a/packages/edit-widgets/package.json +++ b/packages/edit-widgets/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/edit-widgets", - "version": "6.8.0-prerelease", + "version": "6.8.0", "description": "Widgets Page module for WordPress..", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/editor/package.json b/packages/editor/package.json index c2b35baee86d3..29cbffcfb7222 100644 --- a/packages/editor/package.json +++ b/packages/editor/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/editor", - "version": "14.8.0-prerelease", + "version": "14.8.0", "description": "Enhanced block editor for WordPress posts.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/element/package.json b/packages/element/package.json index 32cdfd3eb1b24..56759cdc23d91 100644 --- a/packages/element/package.json +++ b/packages/element/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/element", - "version": "6.8.0-prerelease", + "version": "6.8.0", "description": "Element React module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/env/package.json b/packages/env/package.json index c25fa43d5f392..b1ea172a4303d 100644 --- a/packages/env/package.json +++ b/packages/env/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/env", - "version": "10.8.0-prerelease", + "version": "10.8.0", "description": "A zero-config, self contained local WordPress environment for development and testing.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/escape-html/package.json b/packages/escape-html/package.json index 4f577fe4dbdd8..8f68366006ce7 100644 --- a/packages/escape-html/package.json +++ b/packages/escape-html/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/escape-html", - "version": "3.8.0-prerelease", + "version": "3.8.0", "description": "Escape HTML utils.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json index 64203cbf4ced8..4902acd2bcd0a 100644 --- a/packages/eslint-plugin/package.json +++ b/packages/eslint-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/eslint-plugin", - "version": "21.1.0-prerelease", + "version": "21.1.0", "description": "ESLint plugin for WordPress development.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/format-library/package.json b/packages/format-library/package.json index a12fa54977a06..03b1047d3fb9d 100644 --- a/packages/format-library/package.json +++ b/packages/format-library/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/format-library", - "version": "5.8.0-prerelease", + "version": "5.8.0", "description": "Format library for the WordPress editor.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/hooks/package.json b/packages/hooks/package.json index 1e148a6dd88bb..cf8e0a791a747 100644 --- a/packages/hooks/package.json +++ b/packages/hooks/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/hooks", - "version": "4.8.0-prerelease", + "version": "4.8.0", "description": "WordPress hooks library.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/html-entities/package.json b/packages/html-entities/package.json index b13077930659b..7196df00a8cd6 100644 --- a/packages/html-entities/package.json +++ b/packages/html-entities/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/html-entities", - "version": "4.8.0-prerelease", + "version": "4.8.0", "description": "HTML entity utilities for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/i18n/package.json b/packages/i18n/package.json index 4a1c56ed38d38..2e92335914271 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/i18n", - "version": "5.8.0-prerelease", + "version": "5.8.0", "description": "WordPress internationalization (i18n) library.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/icons/package.json b/packages/icons/package.json index 672a0382e96f8..c1c1682ed6750 100644 --- a/packages/icons/package.json +++ b/packages/icons/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/icons", - "version": "10.8.0-prerelease", + "version": "10.8.0", "description": "WordPress Icons package, based on dashicon.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/interactivity-router/package.json b/packages/interactivity-router/package.json index 4b76c4492e2dc..8314d7b1b70d5 100644 --- a/packages/interactivity-router/package.json +++ b/packages/interactivity-router/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/interactivity-router", - "version": "2.8.0-prerelease", + "version": "2.8.0", "description": "Package that exposes state and actions from the `core/router` store, part of the Interactivity API.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/interactivity/package.json b/packages/interactivity/package.json index 7b7ef3fa5f9de..5b6ce90fc5184 100644 --- a/packages/interactivity/package.json +++ b/packages/interactivity/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/interactivity", - "version": "6.8.0-prerelease", + "version": "6.8.0", "description": "Package that provides a standard and simple way to handle the frontend interactivity of Gutenberg blocks.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/interface/package.json b/packages/interface/package.json index be14bb394694c..932c3fde03de4 100644 --- a/packages/interface/package.json +++ b/packages/interface/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/interface", - "version": "6.8.0-prerelease", + "version": "6.8.0", "description": "Interface module for WordPress. The package contains shared functionality across the modern JavaScript-based WordPress screens.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/is-shallow-equal/package.json b/packages/is-shallow-equal/package.json index 72ee0392f9a2e..462b97bda1721 100644 --- a/packages/is-shallow-equal/package.json +++ b/packages/is-shallow-equal/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/is-shallow-equal", - "version": "5.8.0-prerelease", + "version": "5.8.0", "description": "Test for shallow equality between two objects or arrays.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/jest-console/package.json b/packages/jest-console/package.json index 6c93d48d31877..d55ce881a0956 100644 --- a/packages/jest-console/package.json +++ b/packages/jest-console/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/jest-console", - "version": "8.8.0-prerelease", + "version": "8.8.0", "description": "Custom Jest matchers for the Console object.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/jest-preset-default/package.json b/packages/jest-preset-default/package.json index f5a853ff924d9..72be60b0f3376 100644 --- a/packages/jest-preset-default/package.json +++ b/packages/jest-preset-default/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/jest-preset-default", - "version": "12.8.0-prerelease", + "version": "12.8.0", "description": "Default Jest preset for WordPress development.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/jest-puppeteer-axe/package.json b/packages/jest-puppeteer-axe/package.json index 2bdefd24ce73f..69fb9cfa181f4 100644 --- a/packages/jest-puppeteer-axe/package.json +++ b/packages/jest-puppeteer-axe/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/jest-puppeteer-axe", - "version": "7.8.0-prerelease", + "version": "7.8.0", "description": "Axe API integration with Jest and Puppeteer.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/keyboard-shortcuts/package.json b/packages/keyboard-shortcuts/package.json index d9e168b2310ef..038e15ebc1532 100644 --- a/packages/keyboard-shortcuts/package.json +++ b/packages/keyboard-shortcuts/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/keyboard-shortcuts", - "version": "5.8.0-prerelease", + "version": "5.8.0", "description": "Handling keyboard shortcuts.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/keycodes/package.json b/packages/keycodes/package.json index d8702f985b1b2..d63d5757dcbf3 100644 --- a/packages/keycodes/package.json +++ b/packages/keycodes/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/keycodes", - "version": "4.8.0-prerelease", + "version": "4.8.0", "description": "Keycodes utilities for WordPress. Used to check for keyboard events across browsers/operating systems.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/lazy-import/package.json b/packages/lazy-import/package.json index 00bad5d72d9e8..758c1b5934a95 100644 --- a/packages/lazy-import/package.json +++ b/packages/lazy-import/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/lazy-import", - "version": "2.8.0-prerelease", + "version": "2.8.0", "description": "Lazily import a module, installing it automatically if missing.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/list-reusable-blocks/package.json b/packages/list-reusable-blocks/package.json index 11e0496cfeade..03c1c11af9e49 100644 --- a/packages/list-reusable-blocks/package.json +++ b/packages/list-reusable-blocks/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/list-reusable-blocks", - "version": "5.8.0-prerelease", + "version": "5.8.0", "description": "Adding Export/Import support to the reusable blocks listing.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/media-utils/package.json b/packages/media-utils/package.json index 8a7c0e9e994b5..e90ab5a98e87d 100644 --- a/packages/media-utils/package.json +++ b/packages/media-utils/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/media-utils", - "version": "5.8.0-prerelease", + "version": "5.8.0", "description": "WordPress Media Upload Utils.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/notices/package.json b/packages/notices/package.json index f0cd3743007c4..09056f5fe6818 100644 --- a/packages/notices/package.json +++ b/packages/notices/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/notices", - "version": "5.8.0-prerelease", + "version": "5.8.0", "description": "State management for notices.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/npm-package-json-lint-config/package.json b/packages/npm-package-json-lint-config/package.json index 6c662b9030e79..38080c1e09d83 100644 --- a/packages/npm-package-json-lint-config/package.json +++ b/packages/npm-package-json-lint-config/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/npm-package-json-lint-config", - "version": "5.8.0-prerelease", + "version": "5.8.0", "description": "WordPress npm-package-json-lint shareable configuration.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/nux/package.json b/packages/nux/package.json index 650206a94921f..8bc5bfea622f0 100644 --- a/packages/nux/package.json +++ b/packages/nux/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/nux", - "version": "9.8.0-prerelease", + "version": "9.8.0", "description": "NUX (New User eXperience) module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/patterns/package.json b/packages/patterns/package.json index f90dae85a8dbc..e3563325f95fa 100644 --- a/packages/patterns/package.json +++ b/packages/patterns/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/patterns", - "version": "2.8.0-prerelease", + "version": "2.8.0", "description": "Management of user pattern editing.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/plugins/package.json b/packages/plugins/package.json index b4dd77907862b..e9e9bc0667f9a 100644 --- a/packages/plugins/package.json +++ b/packages/plugins/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/plugins", - "version": "7.8.0-prerelease", + "version": "7.8.0", "description": "Plugins module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/postcss-plugins-preset/package.json b/packages/postcss-plugins-preset/package.json index 74ff1d8ba0fba..67c030b3a1070 100644 --- a/packages/postcss-plugins-preset/package.json +++ b/packages/postcss-plugins-preset/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/postcss-plugins-preset", - "version": "5.8.0-prerelease", + "version": "5.8.0", "description": "PostCSS sharable plugins preset for WordPress development.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/postcss-themes/package.json b/packages/postcss-themes/package.json index ea91b90bf3c4d..864056ee0d61e 100644 --- a/packages/postcss-themes/package.json +++ b/packages/postcss-themes/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/postcss-themes", - "version": "6.8.0-prerelease", + "version": "6.8.0", "description": "PostCSS plugin to generate theme colors.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/preferences-persistence/package.json b/packages/preferences-persistence/package.json index f22e18b5742a6..a82a883e2b574 100644 --- a/packages/preferences-persistence/package.json +++ b/packages/preferences-persistence/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/preferences-persistence", - "version": "2.8.0-prerelease", + "version": "2.8.0", "description": "Persistence utilities for `wordpress/preferences`.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/preferences/package.json b/packages/preferences/package.json index 045170b81a9f6..fbd2cc46033ee 100644 --- a/packages/preferences/package.json +++ b/packages/preferences/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/preferences", - "version": "4.8.0-prerelease", + "version": "4.8.0", "description": "Utilities for managing WordPress preferences.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/prettier-config/package.json b/packages/prettier-config/package.json index fc074bec70526..27a72866e6126 100644 --- a/packages/prettier-config/package.json +++ b/packages/prettier-config/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/prettier-config", - "version": "4.8.0-prerelease", + "version": "4.8.0", "description": "WordPress Prettier shared configuration.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/primitives/package.json b/packages/primitives/package.json index 74795ab64ae5e..2119fc70b11d1 100644 --- a/packages/primitives/package.json +++ b/packages/primitives/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/primitives", - "version": "4.8.0-prerelease", + "version": "4.8.0", "description": "WordPress cross-platform primitives.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/priority-queue/package.json b/packages/priority-queue/package.json index 74c1330cb85c1..a60c61528bd5e 100644 --- a/packages/priority-queue/package.json +++ b/packages/priority-queue/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/priority-queue", - "version": "3.8.0-prerelease", + "version": "3.8.0", "description": "Generic browser priority queue.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/private-apis/package.json b/packages/private-apis/package.json index 7445a8b4a9a49..957eec5e34b49 100644 --- a/packages/private-apis/package.json +++ b/packages/private-apis/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/private-apis", - "version": "1.8.0-prerelease", + "version": "1.8.0", "description": "Internal experimental APIs for WordPress core.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/project-management-automation/package.json b/packages/project-management-automation/package.json index 295869594f432..e4e1a345f0556 100644 --- a/packages/project-management-automation/package.json +++ b/packages/project-management-automation/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/project-management-automation", - "version": "2.8.0-prerelease", + "version": "2.8.0", "description": "GitHub Action that implements various automation to assist with managing the Gutenberg GitHub repository.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/react-i18n/package.json b/packages/react-i18n/package.json index 4bc44c0849914..dd4e513e33383 100644 --- a/packages/react-i18n/package.json +++ b/packages/react-i18n/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/react-i18n", - "version": "4.8.0-prerelease", + "version": "4.8.0", "description": "React bindings for @wordpress/i18n.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/readable-js-assets-webpack-plugin/package.json b/packages/readable-js-assets-webpack-plugin/package.json index 845f6abd1e834..7901045e659b2 100644 --- a/packages/readable-js-assets-webpack-plugin/package.json +++ b/packages/readable-js-assets-webpack-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/readable-js-assets-webpack-plugin", - "version": "3.8.0-prerelease", + "version": "3.8.0", "description": "Generate a readable JS file for each JS asset.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/redux-routine/package.json b/packages/redux-routine/package.json index fdb06030a0f91..8e151e7d6bbfa 100644 --- a/packages/redux-routine/package.json +++ b/packages/redux-routine/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/redux-routine", - "version": "5.8.0-prerelease", + "version": "5.8.0", "description": "Redux middleware for generator coroutines.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/reusable-blocks/package.json b/packages/reusable-blocks/package.json index 2b402b86a1ea8..3e5e9cfb0ca77 100644 --- a/packages/reusable-blocks/package.json +++ b/packages/reusable-blocks/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/reusable-blocks", - "version": "5.8.0-prerelease", + "version": "5.8.0", "description": "Reusable blocks utilities.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/rich-text/package.json b/packages/rich-text/package.json index 7388f2b61dcb3..a7e8e4b173c15 100644 --- a/packages/rich-text/package.json +++ b/packages/rich-text/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/rich-text", - "version": "7.8.0-prerelease", + "version": "7.8.0", "description": "Rich text value and manipulation API.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/router/package.json b/packages/router/package.json index e3eed8e3389fe..5efc014ee221c 100644 --- a/packages/router/package.json +++ b/packages/router/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/router", - "version": "1.8.0-prerelease", + "version": "1.8.0", "description": "Router API for WordPress pages.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/scripts/package.json b/packages/scripts/package.json index 2c5e4a0c0e156..f1546a9ff7b7e 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/scripts", - "version": "30.0.0-prerelease", + "version": "30.0.0", "description": "Collection of reusable scripts for WordPress development.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/server-side-render/package.json b/packages/server-side-render/package.json index cecd82927b10c..6b6be2fb7e88d 100644 --- a/packages/server-side-render/package.json +++ b/packages/server-side-render/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/server-side-render", - "version": "5.8.0-prerelease", + "version": "5.8.0", "description": "The component used with WordPress to server-side render a preview of dynamic blocks to display in the editor.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/shortcode/package.json b/packages/shortcode/package.json index 6d63c0d459b2d..c16f22d5023cf 100644 --- a/packages/shortcode/package.json +++ b/packages/shortcode/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/shortcode", - "version": "4.8.0-prerelease", + "version": "4.8.0", "description": "Shortcode module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/style-engine/package.json b/packages/style-engine/package.json index 5c5d4258092d7..49327c487b232 100644 --- a/packages/style-engine/package.json +++ b/packages/style-engine/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/style-engine", - "version": "2.8.0-prerelease", + "version": "2.8.0", "description": "A suite of parsers and compilers for WordPress styles.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/stylelint-config/package.json b/packages/stylelint-config/package.json index 0ca05a84d0e59..8aa35643b3d7e 100644 --- a/packages/stylelint-config/package.json +++ b/packages/stylelint-config/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/stylelint-config", - "version": "23.0.0-prerelease", + "version": "23.0.0", "description": "stylelint config for WordPress development.", "author": "The WordPress Contributors", "license": "MIT", diff --git a/packages/sync/package.json b/packages/sync/package.json index 3b3cba875c1d4..b96133c749ad3 100644 --- a/packages/sync/package.json +++ b/packages/sync/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/sync", - "version": "1.8.0-prerelease", + "version": "1.8.0", "description": "Sync Data.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/token-list/package.json b/packages/token-list/package.json index 4c3e1e50ecc07..346623f3df173 100644 --- a/packages/token-list/package.json +++ b/packages/token-list/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/token-list", - "version": "3.8.0-prerelease", + "version": "3.8.0", "description": "Constructable, plain JavaScript DOMTokenList implementation, supporting non-browser runtimes.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/undo-manager/package.json b/packages/undo-manager/package.json index 0f48b9f06d796..1147efbb72a59 100644 --- a/packages/undo-manager/package.json +++ b/packages/undo-manager/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/undo-manager", - "version": "1.8.0-prerelease", + "version": "1.8.0", "description": "A small package to manage undo/redo.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/url/package.json b/packages/url/package.json index 2a743f6349c22..d04b42a2e19fb 100644 --- a/packages/url/package.json +++ b/packages/url/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/url", - "version": "4.8.0-prerelease", + "version": "4.8.0", "description": "WordPress URL utilities.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/viewport/package.json b/packages/viewport/package.json index 4b733228dcdee..1a5d1a1c7f5b4 100644 --- a/packages/viewport/package.json +++ b/packages/viewport/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/viewport", - "version": "6.8.0-prerelease", + "version": "6.8.0", "description": "Viewport module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/warning/package.json b/packages/warning/package.json index f00b92304dba9..ded853e825cb0 100644 --- a/packages/warning/package.json +++ b/packages/warning/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/warning", - "version": "3.8.0-prerelease", + "version": "3.8.0", "description": "Warning utility for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/widgets/package.json b/packages/widgets/package.json index 79e4fefb28e21..ccc2995650d81 100644 --- a/packages/widgets/package.json +++ b/packages/widgets/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/widgets", - "version": "4.8.0-prerelease", + "version": "4.8.0", "description": "Functionality used by the widgets block editor in the Widgets screen and the Customizer.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/wordcount/package.json b/packages/wordcount/package.json index af49ecd5cee6e..c8b610c9ccffe 100644 --- a/packages/wordcount/package.json +++ b/packages/wordcount/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/wordcount", - "version": "4.8.0-prerelease", + "version": "4.8.0", "description": "WordPress word count utility.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", From cf707c1f25a2716e310cc8f9afcc8554405c79ac Mon Sep 17 00:00:00 2001 From: Gutenberg Repository Automation Date: Thu, 19 Sep 2024 03:04:31 +0000 Subject: [PATCH 005/214] chore(release): publish - @wordpress/a11y@4.8.1 - @wordpress/annotations@3.8.1 - @wordpress/api-fetch@7.8.1 - @wordpress/autop@4.8.1 - @wordpress/babel-plugin-import-jsx-pragma@5.8.1 - @wordpress/babel-plugin-makepot@6.8.1 - @wordpress/babel-preset-default@8.8.1 - @wordpress/base-styles@5.8.1 - @wordpress/blob@4.8.1 - @wordpress/block-directory@5.8.1 - @wordpress/block-editor@14.3.1 - @wordpress/block-library@9.8.1 - @wordpress/block-serialization-default-parser@5.8.1 - @wordpress/block-serialization-spec-parser@5.8.1 - @wordpress/blocks@13.8.1 - @wordpress/browserslist-config@6.8.1 - @wordpress/commands@1.8.1 - @wordpress/components@28.8.1 - @wordpress/compose@7.8.1 - @wordpress/core-commands@1.8.1 - @wordpress/core-data@7.8.1 - @wordpress/create-block@4.51.1 - @wordpress/create-block-interactive-template@2.8.1 - @wordpress/create-block-tutorial-template@4.8.1 - @wordpress/customize-widgets@5.8.1 - @wordpress/data@10.8.1 - @wordpress/data-controls@4.8.1 - @wordpress/dataviews@4.4.1 - @wordpress/date@5.8.1 - @wordpress/dependency-extraction-webpack-plugin@6.8.1 - @wordpress/deprecated@4.8.1 - @wordpress/docgen@2.8.1 - @wordpress/dom@4.8.1 - @wordpress/dom-ready@4.8.1 - @wordpress/e2e-test-utils@11.8.1 - @wordpress/e2e-test-utils-playwright@1.8.1 - @wordpress/e2e-tests@8.8.1 - @wordpress/edit-post@8.8.1 - @wordpress/edit-site@6.8.1 - @wordpress/edit-widgets@6.8.1 - @wordpress/editor@14.8.1 - @wordpress/element@6.8.1 - @wordpress/env@10.8.1 - @wordpress/escape-html@3.8.1 - @wordpress/eslint-plugin@21.1.1 - @wordpress/format-library@5.8.1 - @wordpress/hooks@4.8.1 - @wordpress/html-entities@4.8.1 - @wordpress/i18n@5.8.1 - @wordpress/icons@10.8.1 - @wordpress/interactivity@6.8.1 - @wordpress/interactivity-router@2.8.1 - @wordpress/interface@6.8.1 - @wordpress/is-shallow-equal@5.8.1 - @wordpress/jest-console@8.8.1 - @wordpress/jest-preset-default@12.8.1 - @wordpress/jest-puppeteer-axe@7.8.1 - @wordpress/keyboard-shortcuts@5.8.1 - @wordpress/keycodes@4.8.1 - @wordpress/lazy-import@2.8.1 - @wordpress/list-reusable-blocks@5.8.1 - @wordpress/media-utils@5.8.1 - @wordpress/notices@5.8.1 - @wordpress/npm-package-json-lint-config@5.8.1 - @wordpress/nux@9.8.1 - @wordpress/patterns@2.8.1 - @wordpress/plugins@7.8.1 - @wordpress/postcss-plugins-preset@5.8.1 - @wordpress/postcss-themes@6.8.1 - @wordpress/preferences@4.8.1 - @wordpress/preferences-persistence@2.8.1 - @wordpress/prettier-config@4.8.1 - @wordpress/primitives@4.8.1 - @wordpress/priority-queue@3.8.1 - @wordpress/private-apis@1.8.1 - @wordpress/project-management-automation@2.8.1 - @wordpress/react-i18n@4.8.1 - @wordpress/readable-js-assets-webpack-plugin@3.8.1 - @wordpress/redux-routine@5.8.1 - @wordpress/reusable-blocks@5.8.1 - @wordpress/rich-text@7.8.1 - @wordpress/router@1.8.1 - @wordpress/scripts@30.0.1 - @wordpress/server-side-render@5.8.1 - @wordpress/shortcode@4.8.1 - @wordpress/style-engine@2.8.1 - @wordpress/stylelint-config@23.0.1 - @wordpress/sync@1.8.1 - @wordpress/token-list@3.8.1 - @wordpress/undo-manager@1.8.1 - @wordpress/url@4.8.1 - @wordpress/viewport@6.8.1 - @wordpress/warning@3.8.1 - @wordpress/widgets@4.8.1 - @wordpress/wordcount@4.8.1 --- package-lock.json | 188 +++++++++--------- packages/a11y/package.json | 2 +- packages/annotations/package.json | 2 +- packages/api-fetch/package.json | 2 +- packages/autop/package.json | 2 +- .../package.json | 2 +- packages/babel-plugin-makepot/package.json | 2 +- packages/babel-preset-default/package.json | 2 +- packages/base-styles/package.json | 2 +- packages/blob/package.json | 2 +- packages/block-directory/package.json | 2 +- packages/block-editor/package.json | 2 +- packages/block-library/package.json | 2 +- .../package.json | 2 +- .../package.json | 2 +- packages/blocks/package.json | 2 +- packages/browserslist-config/package.json | 2 +- packages/commands/package.json | 2 +- packages/components/package.json | 2 +- packages/compose/package.json | 2 +- packages/core-commands/package.json | 2 +- packages/core-data/package.json | 2 +- .../package.json | 2 +- .../package.json | 2 +- packages/create-block/package.json | 2 +- packages/customize-widgets/package.json | 2 +- packages/data-controls/package.json | 2 +- packages/data/package.json | 2 +- packages/dataviews/package.json | 2 +- packages/date/package.json | 2 +- .../package.json | 2 +- packages/deprecated/package.json | 2 +- packages/docgen/package.json | 2 +- packages/dom-ready/package.json | 2 +- packages/dom/package.json | 2 +- .../e2e-test-utils-playwright/package.json | 2 +- packages/e2e-test-utils/package.json | 2 +- packages/e2e-tests/package.json | 2 +- packages/edit-post/package.json | 2 +- packages/edit-site/package.json | 2 +- packages/edit-widgets/package.json | 2 +- packages/editor/package.json | 2 +- packages/element/package.json | 2 +- packages/env/package.json | 2 +- packages/escape-html/package.json | 2 +- packages/eslint-plugin/package.json | 2 +- packages/format-library/package.json | 2 +- packages/hooks/package.json | 2 +- packages/html-entities/package.json | 2 +- packages/i18n/package.json | 2 +- packages/icons/package.json | 2 +- packages/interactivity-router/package.json | 2 +- packages/interactivity/package.json | 2 +- packages/interface/package.json | 2 +- packages/is-shallow-equal/package.json | 2 +- packages/jest-console/package.json | 2 +- packages/jest-preset-default/package.json | 2 +- packages/jest-puppeteer-axe/package.json | 2 +- packages/keyboard-shortcuts/package.json | 2 +- packages/keycodes/package.json | 2 +- packages/lazy-import/package.json | 2 +- packages/list-reusable-blocks/package.json | 2 +- packages/media-utils/package.json | 2 +- packages/notices/package.json | 2 +- .../npm-package-json-lint-config/package.json | 2 +- packages/nux/package.json | 2 +- packages/patterns/package.json | 2 +- packages/plugins/package.json | 2 +- packages/postcss-plugins-preset/package.json | 2 +- packages/postcss-themes/package.json | 2 +- packages/preferences-persistence/package.json | 2 +- packages/preferences/package.json | 2 +- packages/prettier-config/package.json | 2 +- packages/primitives/package.json | 2 +- packages/priority-queue/package.json | 2 +- packages/private-apis/package.json | 2 +- .../package.json | 2 +- packages/react-i18n/package.json | 2 +- .../package.json | 2 +- packages/redux-routine/package.json | 2 +- packages/reusable-blocks/package.json | 2 +- packages/rich-text/package.json | 2 +- packages/router/package.json | 2 +- packages/scripts/package.json | 2 +- packages/server-side-render/package.json | 2 +- packages/shortcode/package.json | 2 +- packages/style-engine/package.json | 2 +- packages/stylelint-config/package.json | 2 +- packages/sync/package.json | 2 +- packages/token-list/package.json | 2 +- packages/undo-manager/package.json | 2 +- packages/url/package.json | 2 +- packages/viewport/package.json | 2 +- packages/warning/package.json | 2 +- packages/widgets/package.json | 2 +- packages/wordcount/package.json | 2 +- 96 files changed, 189 insertions(+), 189 deletions(-) diff --git a/package-lock.json b/package-lock.json index f61d8acd98274..a6887cd60c9ef 100644 --- a/package-lock.json +++ b/package-lock.json @@ -52564,7 +52564,7 @@ }, "packages/a11y": { "name": "@wordpress/a11y", - "version": "4.8.0", + "version": "4.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -52578,7 +52578,7 @@ }, "packages/annotations": { "name": "@wordpress/annotations", - "version": "3.8.0", + "version": "3.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -52606,7 +52606,7 @@ }, "packages/api-fetch": { "name": "@wordpress/api-fetch", - "version": "7.8.0", + "version": "7.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -52620,7 +52620,7 @@ }, "packages/autop": { "name": "@wordpress/autop", - "version": "4.8.0", + "version": "4.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0" @@ -52632,7 +52632,7 @@ }, "packages/babel-plugin-import-jsx-pragma": { "name": "@wordpress/babel-plugin-import-jsx-pragma", - "version": "5.8.0", + "version": "5.8.1", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -52645,7 +52645,7 @@ }, "packages/babel-plugin-makepot": { "name": "@wordpress/babel-plugin-makepot", - "version": "6.8.0", + "version": "6.8.1", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -52663,7 +52663,7 @@ }, "packages/babel-preset-default": { "name": "@wordpress/babel-preset-default", - "version": "8.8.0", + "version": "8.8.1", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -52686,7 +52686,7 @@ }, "packages/base-styles": { "name": "@wordpress/base-styles", - "version": "5.8.0", + "version": "5.8.1", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -52696,7 +52696,7 @@ }, "packages/blob": { "name": "@wordpress/blob", - "version": "4.8.0", + "version": "4.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0" @@ -52708,7 +52708,7 @@ }, "packages/block-directory": { "name": "@wordpress/block-directory", - "version": "5.8.0", + "version": "5.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -52743,7 +52743,7 @@ }, "packages/block-editor": { "name": "@wordpress/block-editor", - "version": "14.3.0", + "version": "14.3.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -52842,7 +52842,7 @@ }, "packages/block-library": { "name": "@wordpress/block-library", - "version": "9.8.0", + "version": "9.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -52908,7 +52908,7 @@ }, "packages/block-serialization-default-parser": { "name": "@wordpress/block-serialization-default-parser", - "version": "5.8.0", + "version": "5.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0" @@ -52920,7 +52920,7 @@ }, "packages/block-serialization-spec-parser": { "name": "@wordpress/block-serialization-spec-parser", - "version": "5.8.0", + "version": "5.8.1", "license": "GPL-2.0-or-later", "dependencies": { "pegjs": "^0.10.0", @@ -52933,7 +52933,7 @@ }, "packages/blocks": { "name": "@wordpress/blocks", - "version": "13.8.0", + "version": "13.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -52987,7 +52987,7 @@ }, "packages/browserslist-config": { "name": "@wordpress/browserslist-config", - "version": "6.8.0", + "version": "6.8.1", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -52997,7 +52997,7 @@ }, "packages/commands": { "name": "@wordpress/commands", - "version": "1.8.0", + "version": "1.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53170,7 +53170,7 @@ }, "packages/components": { "name": "@wordpress/components", - "version": "28.8.0", + "version": "28.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@ariakit/react": "^0.4.10", @@ -53290,7 +53290,7 @@ }, "packages/compose": { "name": "@wordpress/compose", - "version": "7.8.0", + "version": "7.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53327,7 +53327,7 @@ }, "packages/core-commands": { "name": "@wordpress/core-commands", - "version": "1.8.0", + "version": "1.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53355,7 +53355,7 @@ }, "packages/core-data": { "name": "@wordpress/core-data", - "version": "7.8.0", + "version": "7.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53400,7 +53400,7 @@ }, "packages/create-block": { "name": "@wordpress/create-block", - "version": "4.51.0", + "version": "4.51.1", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -53428,7 +53428,7 @@ }, "packages/create-block-tutorial-template": { "name": "@wordpress/create-block-tutorial-template", - "version": "4.8.0", + "version": "4.8.1", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -53438,7 +53438,7 @@ }, "packages/customize-widgets": { "name": "@wordpress/customize-widgets", - "version": "5.8.0", + "version": "5.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53476,7 +53476,7 @@ }, "packages/data": { "name": "@wordpress/data", - "version": "10.8.0", + "version": "10.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53505,7 +53505,7 @@ }, "packages/data-controls": { "name": "@wordpress/data-controls", - "version": "4.8.0", + "version": "4.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53523,7 +53523,7 @@ }, "packages/dataviews": { "name": "@wordpress/dataviews", - "version": "4.4.0", + "version": "4.4.1", "license": "GPL-2.0-or-later", "dependencies": { "@ariakit/react": "^0.4.10", @@ -53580,7 +53580,7 @@ }, "packages/date": { "name": "@wordpress/date", - "version": "5.8.0", + "version": "5.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53595,7 +53595,7 @@ }, "packages/dependency-extraction-webpack-plugin": { "name": "@wordpress/dependency-extraction-webpack-plugin", - "version": "6.8.0", + "version": "6.8.1", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -53611,7 +53611,7 @@ }, "packages/deprecated": { "name": "@wordpress/deprecated", - "version": "4.8.0", + "version": "4.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53624,7 +53624,7 @@ }, "packages/docgen": { "name": "@wordpress/docgen", - "version": "2.8.0", + "version": "2.8.1", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -53646,7 +53646,7 @@ }, "packages/dom": { "name": "@wordpress/dom", - "version": "4.8.0", + "version": "4.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53659,7 +53659,7 @@ }, "packages/dom-ready": { "name": "@wordpress/dom-ready", - "version": "4.8.0", + "version": "4.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0" @@ -53671,7 +53671,7 @@ }, "packages/e2e-test-utils": { "name": "@wordpress/e2e-test-utils", - "version": "11.8.0", + "version": "11.8.1", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -53694,7 +53694,7 @@ }, "packages/e2e-test-utils-playwright": { "name": "@wordpress/e2e-test-utils-playwright", - "version": "1.8.0", + "version": "1.8.1", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -53722,7 +53722,7 @@ }, "packages/e2e-tests": { "name": "@wordpress/e2e-tests", - "version": "8.8.0", + "version": "8.8.1", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -53762,7 +53762,7 @@ }, "packages/edit-post": { "name": "@wordpress/edit-post", - "version": "8.8.0", + "version": "8.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53809,7 +53809,7 @@ }, "packages/edit-site": { "name": "@wordpress/edit-site", - "version": "6.8.0", + "version": "6.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53871,7 +53871,7 @@ }, "packages/edit-widgets": { "name": "@wordpress/edit-widgets", - "version": "6.8.0", + "version": "6.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53914,7 +53914,7 @@ }, "packages/editor": { "name": "@wordpress/editor", - "version": "14.8.0", + "version": "14.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53976,7 +53976,7 @@ }, "packages/element": { "name": "@wordpress/element", - "version": "6.8.0", + "version": "6.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53995,7 +53995,7 @@ }, "packages/env": { "name": "@wordpress/env", - "version": "10.8.0", + "version": "10.8.1", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -54137,7 +54137,7 @@ }, "packages/escape-html": { "name": "@wordpress/escape-html", - "version": "3.8.0", + "version": "3.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0" @@ -54149,7 +54149,7 @@ }, "packages/eslint-plugin": { "name": "@wordpress/eslint-plugin", - "version": "21.1.0", + "version": "21.1.1", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -54227,7 +54227,7 @@ }, "packages/format-library": { "name": "@wordpress/format-library", - "version": "5.8.0", + "version": "5.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54255,7 +54255,7 @@ }, "packages/hooks": { "name": "@wordpress/hooks", - "version": "4.8.0", + "version": "4.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0" @@ -54267,7 +54267,7 @@ }, "packages/html-entities": { "name": "@wordpress/html-entities", - "version": "4.8.0", + "version": "4.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0" @@ -54279,7 +54279,7 @@ }, "packages/i18n": { "name": "@wordpress/i18n", - "version": "5.8.0", + "version": "5.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54299,7 +54299,7 @@ }, "packages/icons": { "name": "@wordpress/icons", - "version": "10.8.0", + "version": "10.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54313,7 +54313,7 @@ }, "packages/interactivity": { "name": "@wordpress/interactivity", - "version": "6.8.0", + "version": "6.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@preact/signals": "^1.2.2", @@ -54326,7 +54326,7 @@ }, "packages/interactivity-router": { "name": "@wordpress/interactivity-router", - "version": "2.8.0", + "version": "2.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@wordpress/a11y": "file:../a11y", @@ -54363,7 +54363,7 @@ }, "packages/interface": { "name": "@wordpress/interface", - "version": "6.8.0", + "version": "6.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54392,7 +54392,7 @@ }, "packages/is-shallow-equal": { "name": "@wordpress/is-shallow-equal", - "version": "5.8.0", + "version": "5.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0" @@ -54404,7 +54404,7 @@ }, "packages/jest-console": { "name": "@wordpress/jest-console", - "version": "8.8.0", + "version": "8.8.1", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -54421,7 +54421,7 @@ }, "packages/jest-preset-default": { "name": "@wordpress/jest-preset-default", - "version": "12.8.0", + "version": "12.8.1", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -54439,7 +54439,7 @@ }, "packages/jest-puppeteer-axe": { "name": "@wordpress/jest-puppeteer-axe", - "version": "7.8.0", + "version": "7.8.1", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -54462,7 +54462,7 @@ }, "packages/keyboard-shortcuts": { "name": "@wordpress/keyboard-shortcuts", - "version": "5.8.0", + "version": "5.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54480,7 +54480,7 @@ }, "packages/keycodes": { "name": "@wordpress/keycodes", - "version": "4.8.0", + "version": "4.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54493,7 +54493,7 @@ }, "packages/lazy-import": { "name": "@wordpress/lazy-import", - "version": "2.8.0", + "version": "2.8.1", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -54508,7 +54508,7 @@ }, "packages/list-reusable-blocks": { "name": "@wordpress/list-reusable-blocks", - "version": "5.8.0", + "version": "5.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54531,7 +54531,7 @@ }, "packages/media-utils": { "name": "@wordpress/media-utils", - "version": "5.8.0", + "version": "5.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54547,7 +54547,7 @@ }, "packages/notices": { "name": "@wordpress/notices", - "version": "5.8.0", + "version": "5.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54564,7 +54564,7 @@ }, "packages/npm-package-json-lint-config": { "name": "@wordpress/npm-package-json-lint-config", - "version": "5.8.0", + "version": "5.8.1", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -54577,7 +54577,7 @@ }, "packages/nux": { "name": "@wordpress/nux", - "version": "9.8.0", + "version": "9.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54600,7 +54600,7 @@ }, "packages/patterns": { "name": "@wordpress/patterns", - "version": "2.8.0", + "version": "2.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54630,7 +54630,7 @@ }, "packages/plugins": { "name": "@wordpress/plugins", - "version": "7.8.0", + "version": "7.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54653,7 +54653,7 @@ }, "packages/postcss-plugins-preset": { "name": "@wordpress/postcss-plugins-preset", - "version": "5.8.0", + "version": "5.8.1", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -54670,7 +54670,7 @@ }, "packages/postcss-themes": { "name": "@wordpress/postcss-themes", - "version": "6.8.0", + "version": "6.8.1", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -54683,7 +54683,7 @@ }, "packages/preferences": { "name": "@wordpress/preferences", - "version": "4.8.0", + "version": "4.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54709,7 +54709,7 @@ }, "packages/preferences-persistence": { "name": "@wordpress/preferences-persistence", - "version": "2.8.0", + "version": "2.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54722,7 +54722,7 @@ }, "packages/prettier-config": { "name": "@wordpress/prettier-config", - "version": "4.8.0", + "version": "4.8.1", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -54735,7 +54735,7 @@ }, "packages/primitives": { "name": "@wordpress/primitives", - "version": "4.8.0", + "version": "4.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54752,7 +54752,7 @@ }, "packages/priority-queue": { "name": "@wordpress/priority-queue", - "version": "3.8.0", + "version": "3.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54765,7 +54765,7 @@ }, "packages/private-apis": { "name": "@wordpress/private-apis", - "version": "1.8.0", + "version": "1.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0" @@ -54777,7 +54777,7 @@ }, "packages/project-management-automation": { "name": "@wordpress/project-management-automation", - "version": "2.8.0", + "version": "2.8.1", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -54807,7 +54807,7 @@ }, "packages/react-i18n": { "name": "@wordpress/react-i18n", - "version": "4.8.0", + "version": "4.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54963,7 +54963,7 @@ }, "packages/readable-js-assets-webpack-plugin": { "name": "@wordpress/readable-js-assets-webpack-plugin", - "version": "3.8.0", + "version": "3.8.1", "dev": true, "license": "GPL-2.0-or-later", "engines": { @@ -54976,7 +54976,7 @@ }, "packages/redux-routine": { "name": "@wordpress/redux-routine", - "version": "5.8.0", + "version": "5.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -55021,7 +55021,7 @@ }, "packages/reusable-blocks": { "name": "@wordpress/reusable-blocks", - "version": "5.8.0", + "version": "5.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -55048,7 +55048,7 @@ }, "packages/rich-text": { "name": "@wordpress/rich-text", - "version": "7.8.0", + "version": "7.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -55072,7 +55072,7 @@ }, "packages/router": { "name": "@wordpress/router", - "version": "1.8.0", + "version": "1.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -55091,7 +55091,7 @@ }, "packages/scripts": { "name": "@wordpress/scripts", - "version": "30.0.0", + "version": "30.0.1", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -55546,7 +55546,7 @@ }, "packages/server-side-render": { "name": "@wordpress/server-side-render", - "version": "5.8.0", + "version": "5.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -55572,7 +55572,7 @@ }, "packages/shortcode": { "name": "@wordpress/shortcode", - "version": "4.8.0", + "version": "4.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -55585,7 +55585,7 @@ }, "packages/style-engine": { "name": "@wordpress/style-engine", - "version": "2.8.0", + "version": "2.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -55598,7 +55598,7 @@ }, "packages/stylelint-config": { "name": "@wordpress/stylelint-config", - "version": "23.0.0", + "version": "23.0.1", "dev": true, "license": "MIT", "dependencies": { @@ -55716,7 +55716,7 @@ }, "packages/sync": { "name": "@wordpress/sync", - "version": "1.8.0", + "version": "1.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -55737,7 +55737,7 @@ }, "packages/token-list": { "name": "@wordpress/token-list", - "version": "3.8.0", + "version": "3.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0" @@ -55749,7 +55749,7 @@ }, "packages/undo-manager": { "name": "@wordpress/undo-manager", - "version": "1.8.0", + "version": "1.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -55762,7 +55762,7 @@ }, "packages/url": { "name": "@wordpress/url", - "version": "4.8.0", + "version": "4.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -55775,7 +55775,7 @@ }, "packages/viewport": { "name": "@wordpress/viewport", - "version": "6.8.0", + "version": "6.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -55793,7 +55793,7 @@ }, "packages/warning": { "name": "@wordpress/warning", - "version": "3.8.0", + "version": "3.8.1", "license": "GPL-2.0-or-later", "engines": { "node": ">=18.12.0", @@ -55802,7 +55802,7 @@ }, "packages/widgets": { "name": "@wordpress/widgets", - "version": "4.8.0", + "version": "4.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -55830,7 +55830,7 @@ }, "packages/wordcount": { "name": "@wordpress/wordcount", - "version": "4.8.0", + "version": "4.8.1", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0" diff --git a/packages/a11y/package.json b/packages/a11y/package.json index d3337485a1828..352030028e12f 100644 --- a/packages/a11y/package.json +++ b/packages/a11y/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/a11y", - "version": "4.8.0", + "version": "4.8.1", "description": "Accessibility (a11y) utilities for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/annotations/package.json b/packages/annotations/package.json index edaae0ca7617b..7e40e0844f474 100644 --- a/packages/annotations/package.json +++ b/packages/annotations/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/annotations", - "version": "3.8.0", + "version": "3.8.1", "description": "Annotate content in the Gutenberg editor.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/api-fetch/package.json b/packages/api-fetch/package.json index 54fb852a75402..6a5d83bf6bd95 100644 --- a/packages/api-fetch/package.json +++ b/packages/api-fetch/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/api-fetch", - "version": "7.8.0", + "version": "7.8.1", "description": "Utility to make WordPress REST API requests.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/autop/package.json b/packages/autop/package.json index 49ddffcf79f9c..ca4233a7289fe 100644 --- a/packages/autop/package.json +++ b/packages/autop/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/autop", - "version": "4.8.0", + "version": "4.8.1", "description": "WordPress's automatic paragraph functions `autop` and `removep`.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/babel-plugin-import-jsx-pragma/package.json b/packages/babel-plugin-import-jsx-pragma/package.json index d06a750eb0d91..479fd198deba9 100644 --- a/packages/babel-plugin-import-jsx-pragma/package.json +++ b/packages/babel-plugin-import-jsx-pragma/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/babel-plugin-import-jsx-pragma", - "version": "5.8.0", + "version": "5.8.1", "description": "Babel transform plugin for automatically injecting an import to be used as the pragma for the React JSX Transform plugin.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/babel-plugin-makepot/package.json b/packages/babel-plugin-makepot/package.json index 5c9cbb1384796..ff26038808541 100644 --- a/packages/babel-plugin-makepot/package.json +++ b/packages/babel-plugin-makepot/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/babel-plugin-makepot", - "version": "6.8.0", + "version": "6.8.1", "description": "WordPress Babel internationalization (i18n) plugin.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/babel-preset-default/package.json b/packages/babel-preset-default/package.json index f0f015cb2203f..3640110ff697d 100644 --- a/packages/babel-preset-default/package.json +++ b/packages/babel-preset-default/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/babel-preset-default", - "version": "8.8.0", + "version": "8.8.1", "description": "Default Babel preset for WordPress development.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/base-styles/package.json b/packages/base-styles/package.json index c6ab374e1f5dd..e64e6fe29cb08 100644 --- a/packages/base-styles/package.json +++ b/packages/base-styles/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/base-styles", - "version": "5.8.0", + "version": "5.8.1", "description": "Base SCSS utilities and variables for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/blob/package.json b/packages/blob/package.json index cbcf04ecf6488..c2408ea8a12a0 100644 --- a/packages/blob/package.json +++ b/packages/blob/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/blob", - "version": "4.8.0", + "version": "4.8.1", "description": "Blob utilities for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/block-directory/package.json b/packages/block-directory/package.json index beef057bf05f0..8a3d1598d9eeb 100644 --- a/packages/block-directory/package.json +++ b/packages/block-directory/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/block-directory", - "version": "5.8.0", + "version": "5.8.1", "description": "Extend editor with block directory features to search, download and install blocks.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/block-editor/package.json b/packages/block-editor/package.json index a135f126d7eb3..bfb0ec0a47760 100644 --- a/packages/block-editor/package.json +++ b/packages/block-editor/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/block-editor", - "version": "14.3.0", + "version": "14.3.1", "description": "Generic block editor.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/block-library/package.json b/packages/block-library/package.json index aa9daf62dda63..1b4facaac066b 100644 --- a/packages/block-library/package.json +++ b/packages/block-library/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/block-library", - "version": "9.8.0", + "version": "9.8.1", "description": "Block library for the WordPress editor.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/block-serialization-default-parser/package.json b/packages/block-serialization-default-parser/package.json index 60e638120952d..db2ddd7eecf40 100644 --- a/packages/block-serialization-default-parser/package.json +++ b/packages/block-serialization-default-parser/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/block-serialization-default-parser", - "version": "5.8.0", + "version": "5.8.1", "description": "Block serialization specification parser for WordPress posts.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/block-serialization-spec-parser/package.json b/packages/block-serialization-spec-parser/package.json index ab73fa1689ad6..2c6bc7c4e21e5 100644 --- a/packages/block-serialization-spec-parser/package.json +++ b/packages/block-serialization-spec-parser/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/block-serialization-spec-parser", - "version": "5.8.0", + "version": "5.8.1", "description": "Block serialization specification parser for WordPress posts.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/blocks/package.json b/packages/blocks/package.json index b2c24928b7c34..3d87700cd9146 100644 --- a/packages/blocks/package.json +++ b/packages/blocks/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/blocks", - "version": "13.8.0", + "version": "13.8.1", "description": "Block API for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/browserslist-config/package.json b/packages/browserslist-config/package.json index cae627c406e81..0ddacd1a3f0dc 100644 --- a/packages/browserslist-config/package.json +++ b/packages/browserslist-config/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/browserslist-config", - "version": "6.8.0", + "version": "6.8.1", "description": "WordPress Browserslist shared configuration.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/commands/package.json b/packages/commands/package.json index 769931293bd2f..2b73c5057f47c 100644 --- a/packages/commands/package.json +++ b/packages/commands/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/commands", - "version": "1.8.0", + "version": "1.8.1", "description": "Handles the commands menu.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/components/package.json b/packages/components/package.json index 98eb4c5de0430..3402460a847df 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/components", - "version": "28.8.0", + "version": "28.8.1", "description": "UI components for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/compose/package.json b/packages/compose/package.json index f52ac9956a75c..db77ce7fb5b04 100644 --- a/packages/compose/package.json +++ b/packages/compose/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/compose", - "version": "7.8.0", + "version": "7.8.1", "description": "WordPress higher-order components (HOCs).", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/core-commands/package.json b/packages/core-commands/package.json index 8334ef97c9244..2f1f7735dd12b 100644 --- a/packages/core-commands/package.json +++ b/packages/core-commands/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/core-commands", - "version": "1.8.0", + "version": "1.8.1", "description": "WordPress core reusable commands.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/core-data/package.json b/packages/core-data/package.json index b0eadbcea2603..ebd3b63d94d2d 100644 --- a/packages/core-data/package.json +++ b/packages/core-data/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/core-data", - "version": "7.8.0", + "version": "7.8.1", "description": "Access to and manipulation of core WordPress entities.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/create-block-interactive-template/package.json b/packages/create-block-interactive-template/package.json index ad30a4b7e0195..162a3705afcce 100644 --- a/packages/create-block-interactive-template/package.json +++ b/packages/create-block-interactive-template/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/create-block-interactive-template", - "version": "2.8.0", + "version": "2.8.1", "description": "Template for @wordpress/create-block to create interactive blocks with the Interactivity API.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/create-block-tutorial-template/package.json b/packages/create-block-tutorial-template/package.json index 67b0c9554ed98..e9a6b61cf74a9 100644 --- a/packages/create-block-tutorial-template/package.json +++ b/packages/create-block-tutorial-template/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/create-block-tutorial-template", - "version": "4.8.0", + "version": "4.8.1", "description": "This is a template for @wordpress/create-block that creates an example 'Copyright Date' block. This block is used in the official WordPress block development Quick Start Guide.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/create-block/package.json b/packages/create-block/package.json index e1522c887deef..4b2b33c39f4d5 100644 --- a/packages/create-block/package.json +++ b/packages/create-block/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/create-block", - "version": "4.51.0", + "version": "4.51.1", "description": "Generates PHP, JS and CSS code for registering a block for a WordPress plugin.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/customize-widgets/package.json b/packages/customize-widgets/package.json index 05edab039844b..ae3baba239ed9 100644 --- a/packages/customize-widgets/package.json +++ b/packages/customize-widgets/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/customize-widgets", - "version": "5.8.0", + "version": "5.8.1", "description": "Widgets blocks in Customizer Module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/data-controls/package.json b/packages/data-controls/package.json index 5d4d06d3c13cd..b2b842d736826 100644 --- a/packages/data-controls/package.json +++ b/packages/data-controls/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/data-controls", - "version": "4.8.0", + "version": "4.8.1", "description": "A set of common controls for the @wordpress/data api.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/data/package.json b/packages/data/package.json index 11396fe33e087..ea343c3f53e35 100644 --- a/packages/data/package.json +++ b/packages/data/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/data", - "version": "10.8.0", + "version": "10.8.1", "description": "Data module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/dataviews/package.json b/packages/dataviews/package.json index 6265d88a4ad82..87136010eab74 100644 --- a/packages/dataviews/package.json +++ b/packages/dataviews/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/dataviews", - "version": "4.4.0", + "version": "4.4.1", "description": "DataViews is a component that provides an API to render datasets using different types of layouts (table, grid, list, etc.).", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/date/package.json b/packages/date/package.json index ad957a6393e1c..fd21f45cfb5cb 100644 --- a/packages/date/package.json +++ b/packages/date/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/date", - "version": "5.8.0", + "version": "5.8.1", "description": "Date module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/dependency-extraction-webpack-plugin/package.json b/packages/dependency-extraction-webpack-plugin/package.json index a9368e1eb1825..68de09c93021b 100644 --- a/packages/dependency-extraction-webpack-plugin/package.json +++ b/packages/dependency-extraction-webpack-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/dependency-extraction-webpack-plugin", - "version": "6.8.0", + "version": "6.8.1", "description": "Extract WordPress script dependencies from webpack bundles.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/deprecated/package.json b/packages/deprecated/package.json index 245d459fb842e..9f86697b7c4ec 100644 --- a/packages/deprecated/package.json +++ b/packages/deprecated/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/deprecated", - "version": "4.8.0", + "version": "4.8.1", "description": "Deprecation utility for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/docgen/package.json b/packages/docgen/package.json index 9bd4581859193..c089028428992 100644 --- a/packages/docgen/package.json +++ b/packages/docgen/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/docgen", - "version": "2.8.0", + "version": "2.8.1", "description": "Autogenerate public API documentation from exports and JSDoc comments.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/dom-ready/package.json b/packages/dom-ready/package.json index 9f4ffbcf61e41..da49d66b82cdf 100644 --- a/packages/dom-ready/package.json +++ b/packages/dom-ready/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/dom-ready", - "version": "4.8.0", + "version": "4.8.1", "description": "Execute callback after the DOM is loaded.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/dom/package.json b/packages/dom/package.json index 6707de0599269..a88e660ce7af7 100644 --- a/packages/dom/package.json +++ b/packages/dom/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/dom", - "version": "4.8.0", + "version": "4.8.1", "description": "DOM utilities module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/e2e-test-utils-playwright/package.json b/packages/e2e-test-utils-playwright/package.json index f8e31ddc3c359..e55d0695b2e6b 100644 --- a/packages/e2e-test-utils-playwright/package.json +++ b/packages/e2e-test-utils-playwright/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/e2e-test-utils-playwright", - "version": "1.8.0", + "version": "1.8.1", "description": "End-To-End (E2E) test utils for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/e2e-test-utils/package.json b/packages/e2e-test-utils/package.json index eeb0e66cb62a7..705597b966d7e 100644 --- a/packages/e2e-test-utils/package.json +++ b/packages/e2e-test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/e2e-test-utils", - "version": "11.8.0", + "version": "11.8.1", "description": "End-To-End (E2E) test utils for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/e2e-tests/package.json b/packages/e2e-tests/package.json index 2ce38150c96a0..abf17b7f29e3f 100644 --- a/packages/e2e-tests/package.json +++ b/packages/e2e-tests/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/e2e-tests", - "version": "8.8.0", + "version": "8.8.1", "description": "End-To-End (E2E) tests for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/edit-post/package.json b/packages/edit-post/package.json index 1e5cbb13892a1..8ac87ac5fb7cb 100644 --- a/packages/edit-post/package.json +++ b/packages/edit-post/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/edit-post", - "version": "8.8.0", + "version": "8.8.1", "description": "Edit Post module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/edit-site/package.json b/packages/edit-site/package.json index ef1cdaaa6a5c7..b4e522b7ed49f 100644 --- a/packages/edit-site/package.json +++ b/packages/edit-site/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/edit-site", - "version": "6.8.0", + "version": "6.8.1", "description": "Edit Site Page module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/edit-widgets/package.json b/packages/edit-widgets/package.json index f0cc613aa40fc..709e20500cce8 100644 --- a/packages/edit-widgets/package.json +++ b/packages/edit-widgets/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/edit-widgets", - "version": "6.8.0", + "version": "6.8.1", "description": "Widgets Page module for WordPress..", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/editor/package.json b/packages/editor/package.json index 29cbffcfb7222..b5ac7472c2362 100644 --- a/packages/editor/package.json +++ b/packages/editor/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/editor", - "version": "14.8.0", + "version": "14.8.1", "description": "Enhanced block editor for WordPress posts.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/element/package.json b/packages/element/package.json index 56759cdc23d91..5696a8e00f896 100644 --- a/packages/element/package.json +++ b/packages/element/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/element", - "version": "6.8.0", + "version": "6.8.1", "description": "Element React module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/env/package.json b/packages/env/package.json index b1ea172a4303d..a1a96996d97d5 100644 --- a/packages/env/package.json +++ b/packages/env/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/env", - "version": "10.8.0", + "version": "10.8.1", "description": "A zero-config, self contained local WordPress environment for development and testing.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/escape-html/package.json b/packages/escape-html/package.json index 8f68366006ce7..947530549391e 100644 --- a/packages/escape-html/package.json +++ b/packages/escape-html/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/escape-html", - "version": "3.8.0", + "version": "3.8.1", "description": "Escape HTML utils.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json index 4902acd2bcd0a..6a3e9e02081d9 100644 --- a/packages/eslint-plugin/package.json +++ b/packages/eslint-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/eslint-plugin", - "version": "21.1.0", + "version": "21.1.1", "description": "ESLint plugin for WordPress development.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/format-library/package.json b/packages/format-library/package.json index 03b1047d3fb9d..112049a6f4309 100644 --- a/packages/format-library/package.json +++ b/packages/format-library/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/format-library", - "version": "5.8.0", + "version": "5.8.1", "description": "Format library for the WordPress editor.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/hooks/package.json b/packages/hooks/package.json index cf8e0a791a747..10a0778fd4445 100644 --- a/packages/hooks/package.json +++ b/packages/hooks/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/hooks", - "version": "4.8.0", + "version": "4.8.1", "description": "WordPress hooks library.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/html-entities/package.json b/packages/html-entities/package.json index 7196df00a8cd6..62b10d4eb79c5 100644 --- a/packages/html-entities/package.json +++ b/packages/html-entities/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/html-entities", - "version": "4.8.0", + "version": "4.8.1", "description": "HTML entity utilities for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/i18n/package.json b/packages/i18n/package.json index 2e92335914271..cbe5d5d43366a 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/i18n", - "version": "5.8.0", + "version": "5.8.1", "description": "WordPress internationalization (i18n) library.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/icons/package.json b/packages/icons/package.json index c1c1682ed6750..fb7a1c35aa8b4 100644 --- a/packages/icons/package.json +++ b/packages/icons/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/icons", - "version": "10.8.0", + "version": "10.8.1", "description": "WordPress Icons package, based on dashicon.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/interactivity-router/package.json b/packages/interactivity-router/package.json index 8314d7b1b70d5..7999bd11b7f98 100644 --- a/packages/interactivity-router/package.json +++ b/packages/interactivity-router/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/interactivity-router", - "version": "2.8.0", + "version": "2.8.1", "description": "Package that exposes state and actions from the `core/router` store, part of the Interactivity API.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/interactivity/package.json b/packages/interactivity/package.json index 5b6ce90fc5184..0c9be475ca320 100644 --- a/packages/interactivity/package.json +++ b/packages/interactivity/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/interactivity", - "version": "6.8.0", + "version": "6.8.1", "description": "Package that provides a standard and simple way to handle the frontend interactivity of Gutenberg blocks.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/interface/package.json b/packages/interface/package.json index 932c3fde03de4..a0ae527731fa6 100644 --- a/packages/interface/package.json +++ b/packages/interface/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/interface", - "version": "6.8.0", + "version": "6.8.1", "description": "Interface module for WordPress. The package contains shared functionality across the modern JavaScript-based WordPress screens.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/is-shallow-equal/package.json b/packages/is-shallow-equal/package.json index 462b97bda1721..cc8093ae14d55 100644 --- a/packages/is-shallow-equal/package.json +++ b/packages/is-shallow-equal/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/is-shallow-equal", - "version": "5.8.0", + "version": "5.8.1", "description": "Test for shallow equality between two objects or arrays.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/jest-console/package.json b/packages/jest-console/package.json index d55ce881a0956..1cbb8d68dc223 100644 --- a/packages/jest-console/package.json +++ b/packages/jest-console/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/jest-console", - "version": "8.8.0", + "version": "8.8.1", "description": "Custom Jest matchers for the Console object.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/jest-preset-default/package.json b/packages/jest-preset-default/package.json index 72be60b0f3376..af599dfce0949 100644 --- a/packages/jest-preset-default/package.json +++ b/packages/jest-preset-default/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/jest-preset-default", - "version": "12.8.0", + "version": "12.8.1", "description": "Default Jest preset for WordPress development.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/jest-puppeteer-axe/package.json b/packages/jest-puppeteer-axe/package.json index 69fb9cfa181f4..7f0ff64ed7744 100644 --- a/packages/jest-puppeteer-axe/package.json +++ b/packages/jest-puppeteer-axe/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/jest-puppeteer-axe", - "version": "7.8.0", + "version": "7.8.1", "description": "Axe API integration with Jest and Puppeteer.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/keyboard-shortcuts/package.json b/packages/keyboard-shortcuts/package.json index 038e15ebc1532..9f66c00e44ec7 100644 --- a/packages/keyboard-shortcuts/package.json +++ b/packages/keyboard-shortcuts/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/keyboard-shortcuts", - "version": "5.8.0", + "version": "5.8.1", "description": "Handling keyboard shortcuts.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/keycodes/package.json b/packages/keycodes/package.json index d63d5757dcbf3..381124a3f9547 100644 --- a/packages/keycodes/package.json +++ b/packages/keycodes/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/keycodes", - "version": "4.8.0", + "version": "4.8.1", "description": "Keycodes utilities for WordPress. Used to check for keyboard events across browsers/operating systems.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/lazy-import/package.json b/packages/lazy-import/package.json index 758c1b5934a95..3fbc99c1e9dba 100644 --- a/packages/lazy-import/package.json +++ b/packages/lazy-import/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/lazy-import", - "version": "2.8.0", + "version": "2.8.1", "description": "Lazily import a module, installing it automatically if missing.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/list-reusable-blocks/package.json b/packages/list-reusable-blocks/package.json index 03c1c11af9e49..379f6dc27139c 100644 --- a/packages/list-reusable-blocks/package.json +++ b/packages/list-reusable-blocks/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/list-reusable-blocks", - "version": "5.8.0", + "version": "5.8.1", "description": "Adding Export/Import support to the reusable blocks listing.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/media-utils/package.json b/packages/media-utils/package.json index e90ab5a98e87d..130f418bd2194 100644 --- a/packages/media-utils/package.json +++ b/packages/media-utils/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/media-utils", - "version": "5.8.0", + "version": "5.8.1", "description": "WordPress Media Upload Utils.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/notices/package.json b/packages/notices/package.json index 09056f5fe6818..19fe9c3139b2d 100644 --- a/packages/notices/package.json +++ b/packages/notices/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/notices", - "version": "5.8.0", + "version": "5.8.1", "description": "State management for notices.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/npm-package-json-lint-config/package.json b/packages/npm-package-json-lint-config/package.json index 38080c1e09d83..a293b688c9532 100644 --- a/packages/npm-package-json-lint-config/package.json +++ b/packages/npm-package-json-lint-config/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/npm-package-json-lint-config", - "version": "5.8.0", + "version": "5.8.1", "description": "WordPress npm-package-json-lint shareable configuration.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/nux/package.json b/packages/nux/package.json index 8bc5bfea622f0..006f28b304408 100644 --- a/packages/nux/package.json +++ b/packages/nux/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/nux", - "version": "9.8.0", + "version": "9.8.1", "description": "NUX (New User eXperience) module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/patterns/package.json b/packages/patterns/package.json index e3563325f95fa..3250ca8b6ad38 100644 --- a/packages/patterns/package.json +++ b/packages/patterns/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/patterns", - "version": "2.8.0", + "version": "2.8.1", "description": "Management of user pattern editing.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/plugins/package.json b/packages/plugins/package.json index e9e9bc0667f9a..cfd18763f3abd 100644 --- a/packages/plugins/package.json +++ b/packages/plugins/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/plugins", - "version": "7.8.0", + "version": "7.8.1", "description": "Plugins module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/postcss-plugins-preset/package.json b/packages/postcss-plugins-preset/package.json index 67c030b3a1070..a20b8a200a6b0 100644 --- a/packages/postcss-plugins-preset/package.json +++ b/packages/postcss-plugins-preset/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/postcss-plugins-preset", - "version": "5.8.0", + "version": "5.8.1", "description": "PostCSS sharable plugins preset for WordPress development.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/postcss-themes/package.json b/packages/postcss-themes/package.json index 864056ee0d61e..fcc3b20c8f55a 100644 --- a/packages/postcss-themes/package.json +++ b/packages/postcss-themes/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/postcss-themes", - "version": "6.8.0", + "version": "6.8.1", "description": "PostCSS plugin to generate theme colors.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/preferences-persistence/package.json b/packages/preferences-persistence/package.json index a82a883e2b574..0fb3fd383f420 100644 --- a/packages/preferences-persistence/package.json +++ b/packages/preferences-persistence/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/preferences-persistence", - "version": "2.8.0", + "version": "2.8.1", "description": "Persistence utilities for `wordpress/preferences`.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/preferences/package.json b/packages/preferences/package.json index fbd2cc46033ee..efd64599b797d 100644 --- a/packages/preferences/package.json +++ b/packages/preferences/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/preferences", - "version": "4.8.0", + "version": "4.8.1", "description": "Utilities for managing WordPress preferences.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/prettier-config/package.json b/packages/prettier-config/package.json index 27a72866e6126..2ca9fee939134 100644 --- a/packages/prettier-config/package.json +++ b/packages/prettier-config/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/prettier-config", - "version": "4.8.0", + "version": "4.8.1", "description": "WordPress Prettier shared configuration.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/primitives/package.json b/packages/primitives/package.json index 2119fc70b11d1..59d24a528628c 100644 --- a/packages/primitives/package.json +++ b/packages/primitives/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/primitives", - "version": "4.8.0", + "version": "4.8.1", "description": "WordPress cross-platform primitives.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/priority-queue/package.json b/packages/priority-queue/package.json index a60c61528bd5e..abd1834715c60 100644 --- a/packages/priority-queue/package.json +++ b/packages/priority-queue/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/priority-queue", - "version": "3.8.0", + "version": "3.8.1", "description": "Generic browser priority queue.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/private-apis/package.json b/packages/private-apis/package.json index 957eec5e34b49..c8900fc34e30e 100644 --- a/packages/private-apis/package.json +++ b/packages/private-apis/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/private-apis", - "version": "1.8.0", + "version": "1.8.1", "description": "Internal experimental APIs for WordPress core.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/project-management-automation/package.json b/packages/project-management-automation/package.json index e4e1a345f0556..a5a129e28317e 100644 --- a/packages/project-management-automation/package.json +++ b/packages/project-management-automation/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/project-management-automation", - "version": "2.8.0", + "version": "2.8.1", "description": "GitHub Action that implements various automation to assist with managing the Gutenberg GitHub repository.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/react-i18n/package.json b/packages/react-i18n/package.json index dd4e513e33383..72443491210a0 100644 --- a/packages/react-i18n/package.json +++ b/packages/react-i18n/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/react-i18n", - "version": "4.8.0", + "version": "4.8.1", "description": "React bindings for @wordpress/i18n.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/readable-js-assets-webpack-plugin/package.json b/packages/readable-js-assets-webpack-plugin/package.json index 7901045e659b2..4a3fe555caf07 100644 --- a/packages/readable-js-assets-webpack-plugin/package.json +++ b/packages/readable-js-assets-webpack-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/readable-js-assets-webpack-plugin", - "version": "3.8.0", + "version": "3.8.1", "description": "Generate a readable JS file for each JS asset.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/redux-routine/package.json b/packages/redux-routine/package.json index 8e151e7d6bbfa..34e734c790582 100644 --- a/packages/redux-routine/package.json +++ b/packages/redux-routine/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/redux-routine", - "version": "5.8.0", + "version": "5.8.1", "description": "Redux middleware for generator coroutines.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/reusable-blocks/package.json b/packages/reusable-blocks/package.json index 3e5e9cfb0ca77..c505ac3094da2 100644 --- a/packages/reusable-blocks/package.json +++ b/packages/reusable-blocks/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/reusable-blocks", - "version": "5.8.0", + "version": "5.8.1", "description": "Reusable blocks utilities.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/rich-text/package.json b/packages/rich-text/package.json index a7e8e4b173c15..5bc00f007dff7 100644 --- a/packages/rich-text/package.json +++ b/packages/rich-text/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/rich-text", - "version": "7.8.0", + "version": "7.8.1", "description": "Rich text value and manipulation API.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/router/package.json b/packages/router/package.json index 5efc014ee221c..859bd791d9073 100644 --- a/packages/router/package.json +++ b/packages/router/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/router", - "version": "1.8.0", + "version": "1.8.1", "description": "Router API for WordPress pages.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/scripts/package.json b/packages/scripts/package.json index f1546a9ff7b7e..1a2458af26fc5 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/scripts", - "version": "30.0.0", + "version": "30.0.1", "description": "Collection of reusable scripts for WordPress development.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/server-side-render/package.json b/packages/server-side-render/package.json index 6b6be2fb7e88d..f07ddae052c19 100644 --- a/packages/server-side-render/package.json +++ b/packages/server-side-render/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/server-side-render", - "version": "5.8.0", + "version": "5.8.1", "description": "The component used with WordPress to server-side render a preview of dynamic blocks to display in the editor.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/shortcode/package.json b/packages/shortcode/package.json index c16f22d5023cf..40366c77f3de2 100644 --- a/packages/shortcode/package.json +++ b/packages/shortcode/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/shortcode", - "version": "4.8.0", + "version": "4.8.1", "description": "Shortcode module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/style-engine/package.json b/packages/style-engine/package.json index 49327c487b232..fad1e940b9ca8 100644 --- a/packages/style-engine/package.json +++ b/packages/style-engine/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/style-engine", - "version": "2.8.0", + "version": "2.8.1", "description": "A suite of parsers and compilers for WordPress styles.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/stylelint-config/package.json b/packages/stylelint-config/package.json index 8aa35643b3d7e..ee8b5a0c51337 100644 --- a/packages/stylelint-config/package.json +++ b/packages/stylelint-config/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/stylelint-config", - "version": "23.0.0", + "version": "23.0.1", "description": "stylelint config for WordPress development.", "author": "The WordPress Contributors", "license": "MIT", diff --git a/packages/sync/package.json b/packages/sync/package.json index b96133c749ad3..1431b28da7a55 100644 --- a/packages/sync/package.json +++ b/packages/sync/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/sync", - "version": "1.8.0", + "version": "1.8.1", "description": "Sync Data.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/token-list/package.json b/packages/token-list/package.json index 346623f3df173..97b1ee6c04585 100644 --- a/packages/token-list/package.json +++ b/packages/token-list/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/token-list", - "version": "3.8.0", + "version": "3.8.1", "description": "Constructable, plain JavaScript DOMTokenList implementation, supporting non-browser runtimes.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/undo-manager/package.json b/packages/undo-manager/package.json index 1147efbb72a59..d5dd52d49d7d3 100644 --- a/packages/undo-manager/package.json +++ b/packages/undo-manager/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/undo-manager", - "version": "1.8.0", + "version": "1.8.1", "description": "A small package to manage undo/redo.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/url/package.json b/packages/url/package.json index d04b42a2e19fb..cb33d9bd5fbf2 100644 --- a/packages/url/package.json +++ b/packages/url/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/url", - "version": "4.8.0", + "version": "4.8.1", "description": "WordPress URL utilities.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/viewport/package.json b/packages/viewport/package.json index 1a5d1a1c7f5b4..cd470075b2cac 100644 --- a/packages/viewport/package.json +++ b/packages/viewport/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/viewport", - "version": "6.8.0", + "version": "6.8.1", "description": "Viewport module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/warning/package.json b/packages/warning/package.json index ded853e825cb0..cb296af5131f9 100644 --- a/packages/warning/package.json +++ b/packages/warning/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/warning", - "version": "3.8.0", + "version": "3.8.1", "description": "Warning utility for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/widgets/package.json b/packages/widgets/package.json index ccc2995650d81..6596885328cc7 100644 --- a/packages/widgets/package.json +++ b/packages/widgets/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/widgets", - "version": "4.8.0", + "version": "4.8.1", "description": "Functionality used by the widgets block editor in the Widgets screen and the Customizer.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/wordcount/package.json b/packages/wordcount/package.json index c8b610c9ccffe..dd4904eb78dc0 100644 --- a/packages/wordcount/package.json +++ b/packages/wordcount/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/wordcount", - "version": "4.8.0", + "version": "4.8.1", "description": "WordPress word count utility.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", From 76af44fb55fc98fd4a6fdd88509d35e204959d48 Mon Sep 17 00:00:00 2001 From: Robert Anderson Date: Thu, 19 Sep 2024 17:17:15 +1000 Subject: [PATCH 006/214] Revert "Make `wordpress/fields` a private package (#65269)" (#65477) This reverts commit 1a60dff84c2effe1a3461d582de8238a7cd0d81f. Co-authored-by: noisysocks Co-authored-by: gziolo Co-authored-by: oandregal --- docs/manifest.json | 6 ++++++ packages/fields/package.json | 1 - 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/manifest.json b/docs/manifest.json index e4eba19d99fa2..d7f74d47995b6 100644 --- a/docs/manifest.json +++ b/docs/manifest.json @@ -1697,6 +1697,12 @@ "markdown_source": "../packages/eslint-plugin/README.md", "parent": "packages" }, + { + "title": "@wordpress/fields", + "slug": "packages-fields", + "markdown_source": "../packages/fields/README.md", + "parent": "packages" + }, { "title": "@wordpress/format-library", "slug": "packages-format-library", diff --git a/packages/fields/package.json b/packages/fields/package.json index 2e417c9f4de57..ba687e6db1bc8 100644 --- a/packages/fields/package.json +++ b/packages/fields/package.json @@ -9,7 +9,6 @@ "gutenberg", "dataviews" ], - "private": true, "homepage": "https://github.com/WordPress/gutenberg/tree/HEAD/packages/fields/README.md", "repository": { "type": "git", From 41c3dae7f55523427acd45044ec0e4813c86449b Mon Sep 17 00:00:00 2001 From: Gutenberg Repository Automation Date: Thu, 19 Sep 2024 07:34:40 +0000 Subject: [PATCH 007/214] chore(release): publish - @wordpress/block-directory@5.8.2 - @wordpress/edit-post@8.8.2 - @wordpress/edit-site@6.8.2 - @wordpress/editor@14.8.2 - @wordpress/fields@0.0.2 --- package-lock.json | 10 +++++----- packages/block-directory/package.json | 2 +- packages/edit-post/package.json | 2 +- packages/edit-site/package.json | 2 +- packages/editor/package.json | 2 +- packages/fields/package.json | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index a6887cd60c9ef..42c63b6a50a9d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -52708,7 +52708,7 @@ }, "packages/block-directory": { "name": "@wordpress/block-directory", - "version": "5.8.1", + "version": "5.8.2", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53762,7 +53762,7 @@ }, "packages/edit-post": { "name": "@wordpress/edit-post", - "version": "8.8.1", + "version": "8.8.2", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53809,7 +53809,7 @@ }, "packages/edit-site": { "name": "@wordpress/edit-site", - "version": "6.8.1", + "version": "6.8.2", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53914,7 +53914,7 @@ }, "packages/editor": { "name": "@wordpress/editor", - "version": "14.8.1", + "version": "14.8.2", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54192,7 +54192,7 @@ }, "packages/fields": { "name": "@wordpress/fields", - "version": "0.0.1", + "version": "0.0.2", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", diff --git a/packages/block-directory/package.json b/packages/block-directory/package.json index 8a3d1598d9eeb..c37aae3e883a3 100644 --- a/packages/block-directory/package.json +++ b/packages/block-directory/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/block-directory", - "version": "5.8.1", + "version": "5.8.2", "description": "Extend editor with block directory features to search, download and install blocks.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/edit-post/package.json b/packages/edit-post/package.json index 8ac87ac5fb7cb..cab99621fd35e 100644 --- a/packages/edit-post/package.json +++ b/packages/edit-post/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/edit-post", - "version": "8.8.1", + "version": "8.8.2", "description": "Edit Post module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/edit-site/package.json b/packages/edit-site/package.json index b4e522b7ed49f..ed1326e6468c2 100644 --- a/packages/edit-site/package.json +++ b/packages/edit-site/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/edit-site", - "version": "6.8.1", + "version": "6.8.2", "description": "Edit Site Page module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/editor/package.json b/packages/editor/package.json index b5ac7472c2362..da16550699057 100644 --- a/packages/editor/package.json +++ b/packages/editor/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/editor", - "version": "14.8.1", + "version": "14.8.2", "description": "Enhanced block editor for WordPress posts.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/fields/package.json b/packages/fields/package.json index ba687e6db1bc8..b2a3920d32170 100644 --- a/packages/fields/package.json +++ b/packages/fields/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/fields", - "version": "0.0.1", + "version": "0.0.2", "description": "DataViews is a component that provides an API to render datasets using different types of layouts (table, grid, list, etc.).", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", From 2d3a8bd17789c55d90aeda4c5a3feb96e415f7f0 Mon Sep 17 00:00:00 2001 From: Andrea Fercia Date: Thu, 19 Sep 2024 10:28:04 +0200 Subject: [PATCH 008/214] Swap position of the Pre-publish checks buttons. (#65317) * Swap position of the Pre-publish checks buttons. * Adjust test. Co-authored-by: afercia Co-authored-by: youknowriad Co-authored-by: jameskoster --- .../components/post-publish-button/index.js | 19 +-------- .../components/post-publish-panel/index.js | 30 +++++++++---- .../components/post-publish-panel/style.scss | 4 +- .../test/__snapshots__/index.js.snap | 42 +++++++++---------- .../editor/various/publish-panel.spec.js | 4 +- 5 files changed, 48 insertions(+), 51 deletions(-) diff --git a/packages/editor/src/components/post-publish-button/index.js b/packages/editor/src/components/post-publish-button/index.js index 0460b27b616e8..71e18a4d6a9c8 100644 --- a/packages/editor/src/components/post-publish-button/index.js +++ b/packages/editor/src/components/post-publish-button/index.js @@ -2,7 +2,7 @@ * WordPress dependencies */ import { Button } from '@wordpress/components'; -import { Component, createRef } from '@wordpress/element'; +import { Component } from '@wordpress/element'; import { withSelect, withDispatch } from '@wordpress/data'; import { compose } from '@wordpress/compose'; @@ -17,7 +17,6 @@ const noop = () => {}; export class PostPublishButton extends Component { constructor( props ) { super( props ); - this.buttonNode = createRef(); this.createOnClick = this.createOnClick.bind( this ); this.closeEntitiesSavedStates = @@ -28,21 +27,6 @@ export class PostPublishButton extends Component { }; } - componentDidMount() { - if ( this.props.focusOnMount ) { - // This timeout is necessary to make sure the `useEffect` hook of - // `useFocusReturn` gets the correct element (the button that opens the - // PostPublishPanel) otherwise it will get this button. - this.timeoutID = setTimeout( () => { - this.buttonNode.current.focus(); - }, 0 ); - } - } - - componentWillUnmount() { - clearTimeout( this.timeoutID ); - } - createOnClick( callback ) { return ( ...args ) => { const { hasNonPostEntityChanges, setEntitiesSavedStatesCallback } = @@ -182,7 +166,6 @@ export class PostPublishButton extends Component { return ( <>
@@ -586,24 +586,24 @@ exports[`PostPublishPanel should render the pre-publish panel if the post is not class="editor-post-publish-panel__header" >
@@ -783,24 +783,24 @@ exports[`PostPublishPanel should render the spinner if the post is being saved 1 class="editor-post-publish-panel__header" >
diff --git a/test/e2e/specs/editor/various/publish-panel.spec.js b/test/e2e/specs/editor/various/publish-panel.spec.js index 534fea5289c9e..1fe94ff334f3b 100644 --- a/test/e2e/specs/editor/various/publish-panel.spec.js +++ b/test/e2e/specs/editor/various/publish-panel.spec.js @@ -58,7 +58,7 @@ test.describe( 'Post publish panel', () => { ).toBeFocused(); } ); - test( 'should move focus to the publish button in the panel', async ( { + test( 'should move focus to the cancel button in the panel', async ( { editor, page, } ) => { @@ -74,7 +74,7 @@ test.describe( 'Post publish panel', () => { page .getByRole( 'region', { name: 'Editor publish' } ) .locator( ':focus' ) - ).toHaveText( 'Publish' ); + ).toHaveText( 'Cancel' ); } ); test( 'should focus on the post list after publishing', async ( { From b53abc2dbc18808249f538c5b01d6349a733ee92 Mon Sep 17 00:00:00 2001 From: Jon Surrell Date: Thu, 19 Sep 2024 12:28:10 +0200 Subject: [PATCH 009/214] Babel preset: Add missing files to package (#65481) Fix an issue where some files are not included in the published package: @wordpress/babel-preset-default@8.8.0 --- Co-authored-by: sirreal Co-authored-by: noisysocks Co-authored-by: gziolo Co-authored-by: sgomes --- packages/babel-preset-default/CHANGELOG.md | 12 ++++++++++-- packages/babel-preset-default/package.json | 4 +++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/packages/babel-preset-default/CHANGELOG.md b/packages/babel-preset-default/CHANGELOG.md index c8c3fdb66ecb0..b31be6ffd8d56 100644 --- a/packages/babel-preset-default/CHANGELOG.md +++ b/packages/babel-preset-default/CHANGELOG.md @@ -1,8 +1,16 @@ -## Internal +## Unreleased -- Added `addPolyfillComments` option. When used, it will automatically add magic comments to mark files that need `wp-polyfill`. +### Bug Fixes + +- Fix a bug in 8.8.1 due to missing files in the published package ([#65481](https://github.com/WordPress/gutenberg/pull/65481)). + +## 8.8.0 (2024-09-19) + +### Internal + +- Added `addPolyfillComments` option. When used, it will automatically add magic comments to mark files that need `wp-polyfill` ([#65292](https://github.com/WordPress/gutenberg/pull/65292)). ## 8.7.0 (2024-09-05) diff --git a/packages/babel-preset-default/package.json b/packages/babel-preset-default/package.json index 3640110ff697d..e6b302c4f4a42 100644 --- a/packages/babel-preset-default/package.json +++ b/packages/babel-preset-default/package.json @@ -26,7 +26,9 @@ }, "files": [ "build", - "index.js" + "index.js", + "polyfill-exclusions.js", + "replace-polyfills.js" ], "main": "index.js", "dependencies": { From fa1a0d6334260d3a4cc986bed848fb62fa7734ce Mon Sep 17 00:00:00 2001 From: David Arenas Date: Thu, 19 Sep 2024 12:12:19 +0200 Subject: [PATCH 010/214] Interactivity API: Add `getServerState()` and `getServerContext()` (#65151) * Expose client and server context from provider * Create `getServerContext` * Add simple test for server context * Implement `getServerState` * Add tests for read-only state proxies * Add e2e tests for `getServerState()` * Avoid PHPCS UndefinedVariable error * Add e2e tests for `getServerContext` WIP * Finish e2e tests for `getServerContext()` * Update `getServerState()` tests * Revert "Add simple test for server context" This reverts commit 7e6f530a72dd9117946dd7e7fa9ab5c29f01d13d. * Update TSDocs Co-authored-by: DAreRodz Co-authored-by: luisherranz Co-authored-by: sethrubenstein Co-authored-by: michalczaplinski --- .../directive-priorities/view.js | 4 +- .../get-server-context/block.json | 15 ++ .../get-server-context/render.php | 51 +++++ .../get-server-context/view.asset.php | 9 + .../get-server-context/view.js | 46 ++++ .../get-server-state/block.json | 15 ++ .../get-server-state/render.php | 50 +++++ .../get-server-state/view.asset.php | 9 + .../get-server-state/view.js | 33 +++ packages/interactivity/src/directives.tsx | 43 ++-- packages/interactivity/src/hooks.tsx | 6 +- packages/interactivity/src/index.ts | 4 +- packages/interactivity/src/proxies/state.ts | 35 ++- .../src/proxies/test/state-proxy.ts | 199 +++++++++++++++++- packages/interactivity/src/scopes.ts | 44 ++++ packages/interactivity/src/store.ts | 35 +++ .../interactivity/get-sever-context.spec.ts | 166 +++++++++++++++ .../interactivity/get-sever-state.spec.ts | 119 +++++++++++ 18 files changed, 858 insertions(+), 25 deletions(-) create mode 100644 packages/e2e-tests/plugins/interactive-blocks/get-server-context/block.json create mode 100644 packages/e2e-tests/plugins/interactive-blocks/get-server-context/render.php create mode 100644 packages/e2e-tests/plugins/interactive-blocks/get-server-context/view.asset.php create mode 100644 packages/e2e-tests/plugins/interactive-blocks/get-server-context/view.js create mode 100644 packages/e2e-tests/plugins/interactive-blocks/get-server-state/block.json create mode 100644 packages/e2e-tests/plugins/interactive-blocks/get-server-state/render.php create mode 100644 packages/e2e-tests/plugins/interactive-blocks/get-server-state/view.asset.php create mode 100644 packages/e2e-tests/plugins/interactive-blocks/get-server-state/view.js create mode 100644 test/e2e/specs/interactivity/get-sever-context.spec.ts create mode 100644 test/e2e/specs/interactivity/get-sever-state.spec.ts diff --git a/packages/e2e-tests/plugins/interactive-blocks/directive-priorities/view.js b/packages/e2e-tests/plugins/interactive-blocks/directive-priorities/view.js index 5a46908f77d87..77f2f25c5f9a4 100644 --- a/packages/e2e-tests/plugins/interactive-blocks/directive-priorities/view.js +++ b/packages/e2e-tests/plugins/interactive-blocks/directive-priorities/view.js @@ -41,13 +41,13 @@ directive( 'test-context', ( { context: { Provider }, props: { children } } ) => { executionProof( 'context' ); - const value = { + const client = { [ namespace ]: proxifyState( namespace, { attribute: 'from context', text: 'from context', } ), }; - return h( Provider, { value }, children ); + return h( Provider, { value: { client } }, children ); }, { priority: 8 } ); diff --git a/packages/e2e-tests/plugins/interactive-blocks/get-server-context/block.json b/packages/e2e-tests/plugins/interactive-blocks/get-server-context/block.json new file mode 100644 index 0000000000000..c635846328b9e --- /dev/null +++ b/packages/e2e-tests/plugins/interactive-blocks/get-server-context/block.json @@ -0,0 +1,15 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "test/get-server-context", + "title": "E2E Interactivity tests - getServerContext", + "category": "text", + "icon": "heart", + "description": "", + "supports": { + "interactivity": true + }, + "textdomain": "e2e-interactivity", + "viewScriptModule": "file:./view.js", + "render": "file:./render.php" +} diff --git a/packages/e2e-tests/plugins/interactive-blocks/get-server-context/render.php b/packages/e2e-tests/plugins/interactive-blocks/get-server-context/render.php new file mode 100644 index 0000000000000..a71ced20dc46a --- /dev/null +++ b/packages/e2e-tests/plugins/interactive-blocks/get-server-context/render.php @@ -0,0 +1,51 @@ + + + + +
+> +
+ > +
+
+
+
+
+
+ + +
+
diff --git a/packages/e2e-tests/plugins/interactive-blocks/get-server-context/view.asset.php b/packages/e2e-tests/plugins/interactive-blocks/get-server-context/view.asset.php new file mode 100644 index 0000000000000..bdaec8d1b67a9 --- /dev/null +++ b/packages/e2e-tests/plugins/interactive-blocks/get-server-context/view.asset.php @@ -0,0 +1,9 @@ + array( + '@wordpress/interactivity', + array( + 'id' => '@wordpress/interactivity-router', + 'import' => 'dynamic', + ), + ), +); diff --git a/packages/e2e-tests/plugins/interactive-blocks/get-server-context/view.js b/packages/e2e-tests/plugins/interactive-blocks/get-server-context/view.js new file mode 100644 index 0000000000000..83f016e2eac16 --- /dev/null +++ b/packages/e2e-tests/plugins/interactive-blocks/get-server-context/view.js @@ -0,0 +1,46 @@ +/** + * WordPress dependencies + */ +import { store, getContext, getServerContext } from '@wordpress/interactivity'; + +store( 'test/get-server-context', { + actions: { + *navigate( e ) { + e.preventDefault(); + const { actions } = yield import( + '@wordpress/interactivity-router' + ); + yield actions.navigate( e.target.href ); + }, + attemptModification() { + try { + getServerContext().prop = 'updated from client'; + getContext().result = 'unexpectedly modified ❌'; + } catch ( e ) { + getContext().result = 'not modified ✅'; + } + }, + }, + callbacks: { + updateServerContextParent() { + const ctx = getContext(); + const { prop, newProp, nested, inherited } = getServerContext(); + ctx.prop = prop; + ctx.newProp = newProp; + ctx.nested.prop = nested.prop; + ctx.nested.newProp = nested.newProp; + ctx.inherited.prop = inherited.prop; + ctx.inherited.newProp = inherited.newProp; + }, + updateServerContextChild() { + const ctx = getContext(); + const { prop, newProp, nested, inherited } = getServerContext(); + ctx.prop = prop; + ctx.newProp = newProp; + ctx.nested.prop = nested.prop; + ctx.nested.newProp = nested.newProp; + ctx.inherited.prop = inherited.prop; + ctx.inherited.newProp = inherited.newProp; + }, + }, +} ); diff --git a/packages/e2e-tests/plugins/interactive-blocks/get-server-state/block.json b/packages/e2e-tests/plugins/interactive-blocks/get-server-state/block.json new file mode 100644 index 0000000000000..abf76eb9beddc --- /dev/null +++ b/packages/e2e-tests/plugins/interactive-blocks/get-server-state/block.json @@ -0,0 +1,15 @@ +{ + "$schema": "https://schemas.wp.org/trunk/block.json", + "apiVersion": 2, + "name": "test/get-server-state", + "title": "E2E Interactivity tests - getServerState", + "category": "text", + "icon": "heart", + "description": "", + "supports": { + "interactivity": true + }, + "textdomain": "e2e-interactivity", + "viewScriptModule": "file:./view.js", + "render": "file:./render.php" +} diff --git a/packages/e2e-tests/plugins/interactive-blocks/get-server-state/render.php b/packages/e2e-tests/plugins/interactive-blocks/get-server-state/render.php new file mode 100644 index 0000000000000..abc4efd8272d5 --- /dev/null +++ b/packages/e2e-tests/plugins/interactive-blocks/get-server-state/render.php @@ -0,0 +1,50 @@ + + +
+
+
+
+
+ + + + + +
diff --git a/packages/e2e-tests/plugins/interactive-blocks/get-server-state/view.asset.php b/packages/e2e-tests/plugins/interactive-blocks/get-server-state/view.asset.php new file mode 100644 index 0000000000000..bdaec8d1b67a9 --- /dev/null +++ b/packages/e2e-tests/plugins/interactive-blocks/get-server-state/view.asset.php @@ -0,0 +1,9 @@ + array( + '@wordpress/interactivity', + array( + 'id' => '@wordpress/interactivity-router', + 'import' => 'dynamic', + ), + ), +); diff --git a/packages/e2e-tests/plugins/interactive-blocks/get-server-state/view.js b/packages/e2e-tests/plugins/interactive-blocks/get-server-state/view.js new file mode 100644 index 0000000000000..db2992ec4a586 --- /dev/null +++ b/packages/e2e-tests/plugins/interactive-blocks/get-server-state/view.js @@ -0,0 +1,33 @@ +/** + * WordPress dependencies + */ +import { store, getServerState, getContext } from '@wordpress/interactivity'; + +const { state } = store( 'test/get-server-state', { + actions: { + *navigate( e ) { + e.preventDefault(); + const { actions } = yield import( + '@wordpress/interactivity-router' + ); + yield actions.navigate( e.target.href ); + }, + attemptModification() { + try { + getServerState().prop = 'updated from client'; + getContext().result = 'unexpectedly modified ❌'; + } catch ( e ) { + getContext().result = 'not modified ✅'; + } + }, + }, + callbacks: { + updateState() { + const { prop, newProp, nested } = getServerState(); + state.prop = prop; + state.newProp = newProp; + state.nested.prop = nested.prop; + state.nested.newProp = nested.newProp; + }, + }, +} ); diff --git a/packages/interactivity/src/directives.tsx b/packages/interactivity/src/directives.tsx index cde39d830499a..340880954683d 100644 --- a/packages/interactivity/src/directives.tsx +++ b/packages/interactivity/src/directives.tsx @@ -142,14 +142,19 @@ export default () => { const defaultEntry = context.find( ( { suffix } ) => suffix === 'default' ); - const inheritedValue = useContext( inheritedContext ); + const { client: inheritedClient, server: inheritedServer } = + useContext( inheritedContext ); const ns = defaultEntry!.namespace; - const currentValue = useRef( proxifyState( ns, {} ) ); + const client = useRef( proxifyState( ns, {} ) ); + const server = useRef( proxifyState( ns, {}, { readOnly: true } ) ); // No change should be made if `defaultEntry` does not exist. const contextStack = useMemo( () => { - const result = { ...inheritedValue }; + const result = { + client: { ...inheritedClient }, + server: { ...inheritedServer }, + }; if ( defaultEntry ) { const { namespace, value } = defaultEntry; // Check that the value is a JSON object. Send a console warning if not. @@ -159,17 +164,22 @@ export default () => { ); } deepMerge( - currentValue.current, + client.current, deepClone( value ) as object, false ); - result[ namespace ] = proxifyContext( - currentValue.current, - inheritedValue[ namespace ] + deepMerge( server.current, deepClone( value ) as object ); + result.client[ namespace ] = proxifyContext( + client.current, + inheritedClient[ namespace ] + ); + result.server[ namespace ] = proxifyContext( + server.current, + inheritedServer[ namespace ] ); } return result; - }, [ defaultEntry, inheritedValue ] ); + }, [ defaultEntry, inheritedClient, inheritedServer ] ); return createElement( Provider, { value: contextStack }, children ); }, @@ -563,17 +573,24 @@ export default () => { suffix === 'default' ? 'item' : kebabToCamelCase( suffix ); const itemContext = proxifyContext( proxifyState( namespace, {} ), - inheritedValue[ namespace ] + inheritedValue.client[ namespace ] ); const mergedContext = { - ...inheritedValue, - [ namespace ]: itemContext, + client: { + ...inheritedValue.client, + [ namespace ]: itemContext, + }, + server: { ...inheritedValue.server }, }; // Set the item after proxifying the context. - mergedContext[ namespace ][ itemProp ] = item; + mergedContext.client[ namespace ][ itemProp ] = item; - const scope = { ...getScope(), context: mergedContext }; + const scope = { + ...getScope(), + context: mergedContext.client, + serverContext: mergedContext.server, + }; const key = eachKey ? getEvaluate( { scope } )( eachKey[ 0 ] ) : item; diff --git a/packages/interactivity/src/hooks.tsx b/packages/interactivity/src/hooks.tsx index 215da8afef9b5..44dc2645da2c8 100644 --- a/packages/interactivity/src/hooks.tsx +++ b/packages/interactivity/src/hooks.tsx @@ -93,7 +93,7 @@ interface DirectivesProps { } // Main context. -const context = createContext< any >( {} ); +const context = createContext< any >( { client: {}, server: {} } ); // WordPress Directives. const directiveCallbacks: Record< string, DirectiveCallback > = {}; @@ -253,7 +253,9 @@ const Directives = ( { // element ref, state and props. const scope = useRef< Scope >( {} as Scope ).current; scope.evaluate = useCallback( getEvaluate( { scope } ), [] ); - scope.context = useContext( context ); + const { client, server } = useContext( context ); + scope.context = client; + scope.serverContext = server; /* eslint-disable react-hooks/rules-of-hooks */ scope.ref = previousScope?.ref || useRef( null ); /* eslint-enable react-hooks/rules-of-hooks */ diff --git a/packages/interactivity/src/index.ts b/packages/interactivity/src/index.ts index 336c2a97226db..9d013e4e744ed 100644 --- a/packages/interactivity/src/index.ts +++ b/packages/interactivity/src/index.ts @@ -16,8 +16,8 @@ import { getNamespace } from './namespaces'; import { parseServerData, populateServerData } from './store'; import { proxifyState } from './proxies'; -export { store, getConfig } from './store'; -export { getContext, getElement } from './scopes'; +export { store, getConfig, getServerState } from './store'; +export { getContext, getServerContext, getElement } from './scopes'; export { withScope, useWatch, diff --git a/packages/interactivity/src/proxies/state.ts b/packages/interactivity/src/proxies/state.ts index ec49c4b27c4ad..c91d8f6ab90a5 100644 --- a/packages/interactivity/src/proxies/state.ts +++ b/packages/interactivity/src/proxies/state.ts @@ -46,6 +46,8 @@ const proxyToProps: WeakMap< export const hasPropSignal = ( proxy: object, key: string ) => proxyToProps.has( proxy ) && proxyToProps.get( proxy )!.has( key ); +const readOnlyProxies = new WeakSet(); + /** * Returns the {@link PropSignal | `PropSignal`} instance associated with the * specified prop in the passed proxy. @@ -77,8 +79,11 @@ const getPropSignal = ( if ( get ) { prop.setGetter( get ); } else { + const readOnly = readOnlyProxies.has( proxy ); prop.setValue( - shouldProxy( value ) ? proxifyState( ns, value ) : value + shouldProxy( value ) + ? proxifyState( ns, value, { readOnly } ) + : value ); } } @@ -148,6 +153,9 @@ const stateHandlers: ProxyHandler< object > = { value: unknown, receiver: object ): boolean { + if ( readOnlyProxies.has( receiver ) ) { + return false; + } setNamespace( getNamespaceFromProxy( receiver ) ); try { return Reflect.set( target, key, value, receiver ); @@ -161,6 +169,10 @@ const stateHandlers: ProxyHandler< object > = { key: string, desc: PropertyDescriptor ): boolean { + if ( readOnlyProxies.has( getProxyFromObject( target )! ) ) { + return false; + } + const isNew = ! ( key in target ); const result = Reflect.defineProperty( target, key, desc ); @@ -199,6 +211,10 @@ const stateHandlers: ProxyHandler< object > = { }, deleteProperty( target: object, key: string ): boolean { + if ( readOnlyProxies.has( getProxyFromObject( target )! ) ) { + return false; + } + const result = Reflect.deleteProperty( target, key ); if ( result ) { @@ -230,8 +246,10 @@ const stateHandlers: ProxyHandler< object > = { * Returns the proxy associated with the given state object, creating it if it * does not exist. * - * @param namespace The namespace that will be associated to this proxy. - * @param obj The object to proxify. + * @param namespace The namespace that will be associated to this proxy. + * @param obj The object to proxify. + * @param options Options. + * @param options.readOnly Read-only. * * @throws Error if the object cannot be proxified. Use {@link shouldProxy} to * check if a proxy can be created for a specific object. @@ -240,8 +258,15 @@ const stateHandlers: ProxyHandler< object > = { */ export const proxifyState = < T extends object >( namespace: string, - obj: T -): T => createProxy( namespace, obj, stateHandlers ) as T; + obj: T, + options?: { readOnly?: boolean } +): T => { + const proxy = createProxy( namespace, obj, stateHandlers ) as T; + if ( options?.readOnly ) { + readOnlyProxies.add( proxy ); + } + return proxy; +}; /** * Reads the value of the specified property without subscribing to it. diff --git a/packages/interactivity/src/proxies/test/state-proxy.ts b/packages/interactivity/src/proxies/test/state-proxy.ts index 92500189fc830..4b0d2b0a708c3 100644 --- a/packages/interactivity/src/proxies/test/state-proxy.ts +++ b/packages/interactivity/src/proxies/test/state-proxy.ts @@ -9,7 +9,7 @@ import { effect } from '@preact/signals'; /** * Internal dependencies */ -import { proxifyState, peek } from '../'; +import { proxifyState, peek, deepMerge } from '../'; import { setScope, resetScope, getContext, getElement } from '../../scopes'; import { setNamespace, resetNamespace } from '../../namespaces'; @@ -1265,5 +1265,202 @@ describe( 'Interactivity API', () => { expect( x ).toBe( undefined ); } ); } ); + + describe( 'read-only', () => { + it( "should not allow modifying a prop's value", () => { + const readOnlyState = proxifyState( + 'test', + { prop: 'value', nested: { prop: 'value' } }, + { readOnly: true } + ); + + expect( () => { + readOnlyState.prop = 'new value'; + } ).toThrow(); + expect( () => { + readOnlyState.nested.prop = 'new value'; + } ).toThrow(); + } ); + + it( 'should not allow modifying a prop descriptor', () => { + const readOnlyState = proxifyState( + 'test', + { prop: 'value', nested: { prop: 'value' } }, + { readOnly: true } + ); + + expect( () => { + Object.defineProperty( readOnlyState, 'prop', { + get: () => 'value from getter', + writable: true, + enumerable: false, + } ); + } ).toThrow(); + expect( () => { + Object.defineProperty( readOnlyState.nested, 'prop', { + get: () => 'value from getter', + writable: true, + enumerable: false, + } ); + } ).toThrow(); + } ); + + it( 'should not allow adding new props', () => { + const readOnlyState = proxifyState< any >( + 'test', + { prop: 'value', nested: { prop: 'value' } }, + { readOnly: true } + ); + + expect( () => { + readOnlyState.newProp = 'value'; + } ).toThrow(); + expect( () => { + readOnlyState.nested.newProp = 'value'; + } ).toThrow(); + } ); + + it( 'should not allow removing props', () => { + const readOnlyState = proxifyState< any >( + 'test', + { prop: 'value', nested: { prop: 'value' } }, + { readOnly: true } + ); + + expect( () => { + delete readOnlyState.prop; + } ).toThrow(); + expect( () => { + delete readOnlyState.nested.prop; + } ).toThrow(); + } ); + + it( 'should not allow adding items to an array', () => { + const readOnlyState = proxifyState( + 'test', + { array: [ 1, 2, 3 ], nested: { array: [ 1, 2, 3 ] } }, + { readOnly: true } + ); + + expect( () => readOnlyState.array.push( 4 ) ).toThrow(); + expect( () => readOnlyState.nested.array.push( 4 ) ).toThrow(); + } ); + + it( 'should not allow removing items from an array', () => { + const readOnlyState = proxifyState( + 'test', + { array: [ 1, 2, 3 ], nested: { array: [ 1, 2, 3 ] } }, + { readOnly: true } + ); + + expect( () => readOnlyState.array.pop() ).toThrow(); + expect( () => readOnlyState.nested.array.pop() ).toThrow(); + } ); + + it( 'should allow subscribing to prop changes', () => { + const readOnlyState = proxifyState( + 'test', + { + prop: 'value', + nested: { prop: 'value' }, + }, + { readOnly: true } + ); + + const spy1 = jest.fn( () => readOnlyState.prop ); + const spy2 = jest.fn( () => readOnlyState.nested.prop ); + + effect( spy1 ); + effect( spy2 ); + expect( spy1 ).toHaveBeenCalledTimes( 1 ); + expect( spy2 ).toHaveBeenCalledTimes( 1 ); + expect( spy1 ).toHaveLastReturnedWith( 'value' ); + expect( spy2 ).toHaveLastReturnedWith( 'value' ); + + deepMerge( readOnlyState, { prop: 'new value' } ); + + expect( spy1 ).toHaveBeenCalledTimes( 2 ); + expect( spy2 ).toHaveBeenCalledTimes( 1 ); + expect( spy1 ).toHaveLastReturnedWith( 'new value' ); + expect( spy2 ).toHaveLastReturnedWith( 'value' ); + + deepMerge( readOnlyState, { nested: { prop: 'new value' } } ); + + expect( spy1 ).toHaveBeenCalledTimes( 2 ); + expect( spy2 ).toHaveBeenCalledTimes( 2 ); + expect( spy1 ).toHaveLastReturnedWith( 'new value' ); + expect( spy2 ).toHaveLastReturnedWith( 'new value' ); + } ); + + it( 'should allow subscribing to new props', () => { + const readOnlyState = proxifyState< any >( + 'test', + { + prop: 'value', + nested: { prop: 'value' }, + }, + { readOnly: true } + ); + + const spy1 = jest.fn( () => readOnlyState.newProp ); + const spy2 = jest.fn( () => readOnlyState.nested.newProp ); + + effect( spy1 ); + effect( spy2 ); + expect( spy1 ).toHaveBeenCalledTimes( 1 ); + expect( spy2 ).toHaveBeenCalledTimes( 1 ); + expect( spy1 ).toHaveLastReturnedWith( undefined ); + expect( spy2 ).toHaveLastReturnedWith( undefined ); + + deepMerge( readOnlyState, { newProp: 'value' } ); + + expect( spy1 ).toHaveBeenCalledTimes( 2 ); + expect( spy2 ).toHaveBeenCalledTimes( 1 ); + expect( spy1 ).toHaveLastReturnedWith( 'value' ); + expect( spy2 ).toHaveLastReturnedWith( undefined ); + + deepMerge( readOnlyState, { nested: { newProp: 'value' } } ); + + expect( spy1 ).toHaveBeenCalledTimes( 2 ); + expect( spy2 ).toHaveBeenCalledTimes( 2 ); + expect( spy1 ).toHaveLastReturnedWith( 'value' ); + expect( spy2 ).toHaveLastReturnedWith( 'value' ); + } ); + + it( 'should allow subscribing to array changes', () => { + const readOnlyState = proxifyState< any >( + 'test', + { + array: [ 1, 2, 3 ], + nested: { array: [ 1, 2, 3 ] }, + }, + { readOnly: true } + ); + + const spy1 = jest.fn( () => readOnlyState.array[ 0 ] ); + const spy2 = jest.fn( () => readOnlyState.nested.array[ 0 ] ); + + effect( spy1 ); + effect( spy2 ); + expect( spy1 ).toHaveBeenCalledTimes( 1 ); + expect( spy2 ).toHaveBeenCalledTimes( 1 ); + expect( spy1 ).toHaveLastReturnedWith( 1 ); + expect( spy2 ).toHaveLastReturnedWith( 1 ); + + deepMerge( readOnlyState, { array: [ 4, 5, 6 ] } ); + + expect( spy1 ).toHaveBeenCalledTimes( 2 ); + expect( spy2 ).toHaveBeenCalledTimes( 1 ); + expect( spy1 ).toHaveLastReturnedWith( 4 ); + expect( spy2 ).toHaveLastReturnedWith( 1 ); + + deepMerge( readOnlyState, { nested: { array: [] } } ); + + expect( spy1 ).toHaveBeenCalledTimes( 2 ); + expect( spy2 ).toHaveBeenCalledTimes( 2 ); + expect( spy1 ).toHaveLastReturnedWith( 4 ); + expect( spy2 ).toHaveLastReturnedWith( undefined ); + } ); + } ); } ); } ); diff --git a/packages/interactivity/src/scopes.ts b/packages/interactivity/src/scopes.ts index 2e78755ec4bbe..722305f6bee11 100644 --- a/packages/interactivity/src/scopes.ts +++ b/packages/interactivity/src/scopes.ts @@ -12,6 +12,7 @@ import type { Evaluate } from './hooks'; export interface Scope { evaluate: Evaluate; context: object; + serverContext: object; ref: RefObject< HTMLElement >; attributes: createElement.JSX.HTMLAttributes; } @@ -96,3 +97,46 @@ export const getElement = () => { attributes: deepImmutable( attributes ), } ); }; + +/** + * Retrieves the part of the inherited context defined and updated from the + * server. + * + * The object returned is read-only, and includes the context defined in PHP + * with `wp_interactivity_data_wp_context()`, including the corresponding + * inherited properties. When `actions.navigate()` is called, this object is + * updated to reflect the changes in the new visited page, without affecting the + * context returned by `getContext()`. Directives can subscribe to those changes + * to update the context if needed. + * + * @example + * ```js + * store('...', { + * callbacks: { + * updateServerContext() { + * const context = getContext(); + * const serverContext = getServerContext(); + * // Override some property with the new value that came from the server. + * context.overridableProp = serverContext.overridableProp; + * }, + * }, + * }); + * ``` + * + * @param namespace Store namespace. By default, the namespace where the calling + * function exists is used. + * @return The server context content. + */ +export const getServerContext = < T extends object >( + namespace?: string +): T => { + const scope = getScope(); + if ( globalThis.SCRIPT_DEBUG ) { + if ( ! scope ) { + throw Error( + 'Cannot call `getServerContext()` when there is no scope. If you are using an async function, please consider using a generator instead. If you are using some sort of async callbacks, like `setTimeout`, please wrap the callback with `withScope(callback)`.' + ); + } + } + return scope.serverContext[ namespace || getNamespace() ]; +}; diff --git a/packages/interactivity/src/store.ts b/packages/interactivity/src/store.ts index c74764b902e19..b1ad07459c62c 100644 --- a/packages/interactivity/src/store.ts +++ b/packages/interactivity/src/store.ts @@ -12,6 +12,7 @@ export const stores = new Map(); const rawStores = new Map(); const storeLocks = new Map(); const storeConfigs = new Map(); +const serverStates = new Map(); /** * Get the defined config for the store with the passed namespace. @@ -22,6 +23,39 @@ const storeConfigs = new Map(); export const getConfig = ( namespace?: string ) => storeConfigs.get( namespace || getNamespace() ) || {}; +/** + * Get the part of the state defined and updated from the server. + * + * The object returned is read-only, and includes the state defined in PHP with + * `wp_interactivity_state()`. When using `actions.navigate()`, this object is + * updated to reflect the changes in its properites, without affecting the state + * returned by `store()`. Directives can subscribe to those changes to update + * the state if needed. + * + * @example + * ```js + * const { state } = store('myStore', { + * callbacks: { + * updateServerState() { + * const serverState = getServerState(); + * // Override some property with the new value that came from the server. + * state.overridableProp = serverState.overridableProp; + * }, + * }, + * }); + * ``` + * + * @param namespace Store's namespace from which to retrieve the server state. + * @return The server state for the given namespace. + */ +export const getServerState = ( namespace?: string ) => { + const ns = namespace || getNamespace(); + if ( ! serverStates.has( ns ) ) { + serverStates.set( ns, proxifyState( ns, {}, { readOnly: true } ) ); + } + return serverStates.get( ns ); +}; + interface StoreOptions { /** * Property to block/unblock private store namespaces. @@ -187,6 +221,7 @@ export const populateServerData = ( data?: { Object.entries( data!.state ).forEach( ( [ namespace, state ] ) => { const st = store< any >( namespace, {}, { lock: universalUnlock } ); deepMerge( st.state, state, false ); + deepMerge( getServerState( namespace ), state ); } ); } if ( isPlainObject( data?.config ) ) { diff --git a/test/e2e/specs/interactivity/get-sever-context.spec.ts b/test/e2e/specs/interactivity/get-sever-context.spec.ts new file mode 100644 index 0000000000000..d7bc4075f9760 --- /dev/null +++ b/test/e2e/specs/interactivity/get-sever-context.spec.ts @@ -0,0 +1,166 @@ +/** + * Internal dependencies + */ +import { test, expect } from './fixtures'; + +test.describe( 'getServerContext()', () => { + test.beforeAll( async ( { interactivityUtils: utils } ) => { + const parent = { + prop: 'parent', + nested: { + prop: 'parent', + }, + inherited: { + prop: 'parent', + }, + }; + + const parentModified = { + prop: 'parentModified', + nested: { + prop: 'parentModified', + }, + inherited: { + prop: 'parentModified', + }, + }; + + const parentNewProps = { + prop: 'parent', + newProp: 'parent', + nested: { + prop: 'parent', + newProp: 'parent', + }, + inherited: { + prop: 'parent', + newProp: 'parent', + }, + }; + + const child = { + prop: 'child', + nested: { + prop: 'child', + }, + }; + + const childModified = { + prop: 'childModified', + nested: { + prop: 'childModified', + }, + }; + + const childNewProps = { + prop: 'child', + newProp: 'child', + nested: { + prop: 'child', + newProp: 'child', + }, + }; + + await utils.activatePlugins(); + const link1 = await utils.addPostWithBlock( 'test/get-server-context', { + alias: 'getServerContext() - modified', + attributes: { + parentContext: parentModified, + childContext: childModified, + }, + } ); + const link2 = await utils.addPostWithBlock( 'test/get-server-context', { + alias: 'getServerContext() - new props', + attributes: { + parentContext: parentNewProps, + childContext: childNewProps, + }, + } ); + await utils.addPostWithBlock( 'test/get-server-context', { + alias: 'getServerContext() - main', + attributes: { + links: { modified: link1, newProps: link2 }, + parentContext: parent, + childContext: child, + }, + } ); + } ); + + test.beforeEach( async ( { interactivityUtils: utils, page } ) => { + await page.goto( utils.getLink( 'getServerContext() - main' ) ); + } ); + + test.afterAll( async ( { interactivityUtils: utils } ) => { + await utils.deactivatePlugins(); + await utils.deleteAllPosts(); + } ); + + test( 'should update modified props on navigation', async ( { page } ) => { + const prop = page.getByTestId( 'prop' ); + const nestedProp = page.getByTestId( 'nested.prop' ); + const inheritedProp = page.getByTestId( 'inherited.prop' ); + + await expect( prop ).toHaveText( 'child' ); + await expect( nestedProp ).toHaveText( 'child' ); + await expect( inheritedProp ).toHaveText( 'parent' ); + + await page.getByTestId( 'modified' ).click(); + + await expect( prop ).toHaveText( 'childModified' ); + await expect( nestedProp ).toHaveText( 'childModified' ); + await expect( inheritedProp ).toHaveText( 'parentModified' ); + + await page.goBack(); + + await expect( prop ).toHaveText( 'child' ); + await expect( nestedProp ).toHaveText( 'child' ); + await expect( inheritedProp ).toHaveText( 'parent' ); + } ); + + test( 'should add new props on navigation', async ( { page } ) => { + const newProp = page.getByTestId( 'newProp' ); + const nestedNewProp = page.getByTestId( 'nested.newProp' ); + const inheritedNewProp = page.getByTestId( 'inherited.newProp' ); + + await expect( newProp ).toBeEmpty(); + await expect( nestedNewProp ).toBeEmpty(); + await expect( inheritedNewProp ).toBeEmpty(); + + await page.getByTestId( 'newProps' ).click(); + + await expect( newProp ).toHaveText( 'child' ); + await expect( nestedNewProp ).toHaveText( 'child' ); + await expect( inheritedNewProp ).toHaveText( 'parent' ); + } ); + + test( 'should keep new props on navigation', async ( { page } ) => { + const newProp = page.getByTestId( 'newProp' ); + const nestedNewProp = page.getByTestId( 'nested.newProp' ); + const inheritedNewProp = page.getByTestId( 'inherited.newProp' ); + + await page.getByTestId( 'newProps' ).click(); + + await expect( newProp ).toHaveText( 'child' ); + await expect( nestedNewProp ).toHaveText( 'child' ); + await expect( inheritedNewProp ).toHaveText( 'parent' ); + + await page.goBack(); + + await expect( newProp ).toHaveText( 'child' ); + await expect( nestedNewProp ).toHaveText( 'child' ); + await expect( inheritedNewProp ).toHaveText( 'parent' ); + } ); + + test( 'should prevent any manual modifications', async ( { page } ) => { + const prop = page.getByTestId( 'prop' ); + const button = page.getByTestId( 'tryToModifyServerContext' ); + + await expect( prop ).toHaveText( 'child' ); + await expect( button ).toHaveText( 'modify' ); + + await button.click(); + + await expect( prop ).toHaveText( 'child' ); + await expect( button ).toHaveText( 'not modified ✅' ); + } ); +} ); diff --git a/test/e2e/specs/interactivity/get-sever-state.spec.ts b/test/e2e/specs/interactivity/get-sever-state.spec.ts new file mode 100644 index 0000000000000..16406c1d82446 --- /dev/null +++ b/test/e2e/specs/interactivity/get-sever-state.spec.ts @@ -0,0 +1,119 @@ +/** + * Internal dependencies + */ +import { test, expect } from './fixtures'; + +test.describe( 'getServerState()', () => { + test.beforeAll( async ( { interactivityUtils: utils } ) => { + await utils.activatePlugins(); + const link1 = await utils.addPostWithBlock( 'test/get-server-state', { + alias: 'getServerState() - link 1', + attributes: { + state: { + prop: 'link 1', + newProp: 'link 1', + nested: { + prop: 'link 1', + newProp: 'link 1', + }, + }, + }, + } ); + const link2 = await utils.addPostWithBlock( 'test/get-server-state', { + alias: 'getServerState() - link 2', + attributes: { + state: { + prop: 'link 2', + newProp: 'link 2', + nested: { + prop: 'link 2', + newProp: 'link 2', + }, + }, + }, + } ); + await utils.addPostWithBlock( 'test/get-server-state', { + alias: 'getServerState() - main', + attributes: { + title: 'Main', + links: [ link1, link2 ], + state: { + prop: 'main', + nested: { + prop: 'main', + }, + }, + }, + } ); + } ); + + test.beforeEach( async ( { interactivityUtils: utils, page } ) => { + await page.goto( utils.getLink( 'getServerState() - main' ) ); + } ); + + test.afterAll( async ( { interactivityUtils: utils } ) => { + await utils.deactivatePlugins(); + await utils.deleteAllPosts(); + } ); + + test( 'should update existing state props on navigation', async ( { + page, + } ) => { + const prop = page.getByTestId( 'prop' ); + const nestedProp = page.getByTestId( 'nested.prop' ); + + await expect( prop ).toHaveText( 'main' ); + await expect( nestedProp ).toHaveText( 'main' ); + + await page.getByTestId( 'link 1' ).click(); + + await expect( prop ).toHaveText( 'link 1' ); + await expect( nestedProp ).toHaveText( 'link 1' ); + + await page.goBack(); + await expect( prop ).toHaveText( 'main' ); + await expect( nestedProp ).toHaveText( 'main' ); + + await page.getByTestId( 'link 2' ).click(); + + await expect( prop ).toHaveText( 'link 2' ); + await expect( nestedProp ).toHaveText( 'link 2' ); + } ); + + test( 'should add new state props and keep them on navigation', async ( { + page, + } ) => { + const newProp = page.getByTestId( 'newProp' ); + const nestedNewProp = page.getByTestId( 'nested.newProp' ); + + await expect( newProp ).toBeEmpty(); + await expect( nestedNewProp ).toBeEmpty(); + + await page.getByTestId( 'link 1' ).click(); + + await expect( newProp ).toHaveText( 'link 1' ); + await expect( nestedNewProp ).toHaveText( 'link 1' ); + + await page.goBack(); + await expect( newProp ).toHaveText( 'link 1' ); + await expect( nestedNewProp ).toHaveText( 'link 1' ); + + await page.getByTestId( 'link 2' ).click(); + + await expect( newProp ).toHaveText( 'link 2' ); + await expect( nestedNewProp ).toHaveText( 'link 2' ); + } ); + + test( 'should prevent any manual modifications', async ( { page } ) => { + const prop = page.getByTestId( 'prop' ); + const button = page.getByTestId( 'tryToModifyServerState' ); + + await expect( prop ).toHaveText( 'main' ); + await expect( button ).toHaveText( 'modify' ); + + await button.click(); + + await expect( prop ).toHaveText( 'main' ); + await expect( button ).toHaveText( 'not modified ✅' ); + } ); +} ); From 3686e926862c54c6326fe97277e0a19f8bbfafdd Mon Sep 17 00:00:00 2001 From: Gutenberg Repository Automation Date: Thu, 19 Sep 2024 10:56:56 +0000 Subject: [PATCH 011/214] chore(release): publish - @wordpress/babel-preset-default@8.8.2 - @wordpress/block-directory@5.8.3 - @wordpress/block-library@9.8.2 - @wordpress/customize-widgets@5.8.2 - @wordpress/e2e-tests@8.8.2 - @wordpress/edit-post@8.8.3 - @wordpress/edit-site@6.8.3 - @wordpress/edit-widgets@6.8.2 - @wordpress/editor@14.8.3 - @wordpress/eslint-plugin@21.1.2 - @wordpress/interactivity@6.8.2 - @wordpress/interactivity-router@2.8.2 - @wordpress/scripts@30.0.2 --- package-lock.json | 26 +++++++++++----------- packages/babel-preset-default/package.json | 2 +- packages/block-directory/package.json | 2 +- packages/block-library/package.json | 2 +- packages/customize-widgets/package.json | 2 +- packages/e2e-tests/package.json | 2 +- packages/edit-post/package.json | 2 +- packages/edit-site/package.json | 2 +- packages/edit-widgets/package.json | 2 +- packages/editor/package.json | 2 +- packages/eslint-plugin/package.json | 2 +- packages/interactivity-router/package.json | 2 +- packages/interactivity/package.json | 2 +- packages/scripts/package.json | 2 +- 14 files changed, 26 insertions(+), 26 deletions(-) diff --git a/package-lock.json b/package-lock.json index 42c63b6a50a9d..4237fea0b1819 100644 --- a/package-lock.json +++ b/package-lock.json @@ -52663,7 +52663,7 @@ }, "packages/babel-preset-default": { "name": "@wordpress/babel-preset-default", - "version": "8.8.1", + "version": "8.8.2", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -52708,7 +52708,7 @@ }, "packages/block-directory": { "name": "@wordpress/block-directory", - "version": "5.8.2", + "version": "5.8.3", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -52842,7 +52842,7 @@ }, "packages/block-library": { "name": "@wordpress/block-library", - "version": "9.8.1", + "version": "9.8.2", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53438,7 +53438,7 @@ }, "packages/customize-widgets": { "name": "@wordpress/customize-widgets", - "version": "5.8.1", + "version": "5.8.2", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53722,7 +53722,7 @@ }, "packages/e2e-tests": { "name": "@wordpress/e2e-tests", - "version": "8.8.1", + "version": "8.8.2", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -53762,7 +53762,7 @@ }, "packages/edit-post": { "name": "@wordpress/edit-post", - "version": "8.8.2", + "version": "8.8.3", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53809,7 +53809,7 @@ }, "packages/edit-site": { "name": "@wordpress/edit-site", - "version": "6.8.2", + "version": "6.8.3", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53871,7 +53871,7 @@ }, "packages/edit-widgets": { "name": "@wordpress/edit-widgets", - "version": "6.8.1", + "version": "6.8.2", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53914,7 +53914,7 @@ }, "packages/editor": { "name": "@wordpress/editor", - "version": "14.8.2", + "version": "14.8.3", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54149,7 +54149,7 @@ }, "packages/eslint-plugin": { "name": "@wordpress/eslint-plugin", - "version": "21.1.1", + "version": "21.1.2", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -54313,7 +54313,7 @@ }, "packages/interactivity": { "name": "@wordpress/interactivity", - "version": "6.8.1", + "version": "6.8.2", "license": "GPL-2.0-or-later", "dependencies": { "@preact/signals": "^1.2.2", @@ -54326,7 +54326,7 @@ }, "packages/interactivity-router": { "name": "@wordpress/interactivity-router", - "version": "2.8.1", + "version": "2.8.2", "license": "GPL-2.0-or-later", "dependencies": { "@wordpress/a11y": "file:../a11y", @@ -55091,7 +55091,7 @@ }, "packages/scripts": { "name": "@wordpress/scripts", - "version": "30.0.1", + "version": "30.0.2", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { diff --git a/packages/babel-preset-default/package.json b/packages/babel-preset-default/package.json index e6b302c4f4a42..8c3310fbc03c0 100644 --- a/packages/babel-preset-default/package.json +++ b/packages/babel-preset-default/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/babel-preset-default", - "version": "8.8.1", + "version": "8.8.2", "description": "Default Babel preset for WordPress development.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/block-directory/package.json b/packages/block-directory/package.json index c37aae3e883a3..f5380eb05fb38 100644 --- a/packages/block-directory/package.json +++ b/packages/block-directory/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/block-directory", - "version": "5.8.2", + "version": "5.8.3", "description": "Extend editor with block directory features to search, download and install blocks.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/block-library/package.json b/packages/block-library/package.json index 1b4facaac066b..57873091e1751 100644 --- a/packages/block-library/package.json +++ b/packages/block-library/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/block-library", - "version": "9.8.1", + "version": "9.8.2", "description": "Block library for the WordPress editor.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/customize-widgets/package.json b/packages/customize-widgets/package.json index ae3baba239ed9..d82f90bbc9b6b 100644 --- a/packages/customize-widgets/package.json +++ b/packages/customize-widgets/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/customize-widgets", - "version": "5.8.1", + "version": "5.8.2", "description": "Widgets blocks in Customizer Module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/e2e-tests/package.json b/packages/e2e-tests/package.json index abf17b7f29e3f..7a04b05dc0db1 100644 --- a/packages/e2e-tests/package.json +++ b/packages/e2e-tests/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/e2e-tests", - "version": "8.8.1", + "version": "8.8.2", "description": "End-To-End (E2E) tests for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/edit-post/package.json b/packages/edit-post/package.json index cab99621fd35e..12d03bf786f9a 100644 --- a/packages/edit-post/package.json +++ b/packages/edit-post/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/edit-post", - "version": "8.8.2", + "version": "8.8.3", "description": "Edit Post module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/edit-site/package.json b/packages/edit-site/package.json index ed1326e6468c2..c856111f1a1e0 100644 --- a/packages/edit-site/package.json +++ b/packages/edit-site/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/edit-site", - "version": "6.8.2", + "version": "6.8.3", "description": "Edit Site Page module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/edit-widgets/package.json b/packages/edit-widgets/package.json index 709e20500cce8..f9e000336b64c 100644 --- a/packages/edit-widgets/package.json +++ b/packages/edit-widgets/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/edit-widgets", - "version": "6.8.1", + "version": "6.8.2", "description": "Widgets Page module for WordPress..", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/editor/package.json b/packages/editor/package.json index da16550699057..72ec2c779b152 100644 --- a/packages/editor/package.json +++ b/packages/editor/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/editor", - "version": "14.8.2", + "version": "14.8.3", "description": "Enhanced block editor for WordPress posts.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json index 6a3e9e02081d9..7a9815a1e21ad 100644 --- a/packages/eslint-plugin/package.json +++ b/packages/eslint-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/eslint-plugin", - "version": "21.1.1", + "version": "21.1.2", "description": "ESLint plugin for WordPress development.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/interactivity-router/package.json b/packages/interactivity-router/package.json index 7999bd11b7f98..606254ab8ffc8 100644 --- a/packages/interactivity-router/package.json +++ b/packages/interactivity-router/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/interactivity-router", - "version": "2.8.1", + "version": "2.8.2", "description": "Package that exposes state and actions from the `core/router` store, part of the Interactivity API.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/interactivity/package.json b/packages/interactivity/package.json index 0c9be475ca320..f586f650becb3 100644 --- a/packages/interactivity/package.json +++ b/packages/interactivity/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/interactivity", - "version": "6.8.1", + "version": "6.8.2", "description": "Package that provides a standard and simple way to handle the frontend interactivity of Gutenberg blocks.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/scripts/package.json b/packages/scripts/package.json index 1a2458af26fc5..f1008e08511ae 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/scripts", - "version": "30.0.1", + "version": "30.0.2", "description": "Collection of reusable scripts for WordPress development.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", From 80df28e24899fb3ee47bfa164ed5dd3f77a5df20 Mon Sep 17 00:00:00 2001 From: Marco Ciampini Date: Thu, 19 Sep 2024 13:08:39 +0200 Subject: [PATCH 012/214] Search block: reset size correctly when clearing unit control (#65468) * Search block: reset size correctly when clearing unit control * Make empty string handling more explicit --- Co-authored-by: ciampo Co-authored-by: mirka <0mirka00@git.wordpress.org> --- packages/block-library/src/search/edit.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/packages/block-library/src/search/edit.js b/packages/block-library/src/search/edit.js index e2f3bb3999e42..d4ed5b7e3a405 100644 --- a/packages/block-library/src/search/edit.js +++ b/packages/block-library/src/search/edit.js @@ -424,13 +424,12 @@ export default function SearchEdit( { } step={ 1 } onChange={ ( newWidth ) => { - const filteredWidth = - widthUnit === '%' && - parseInt( newWidth, 10 ) > 100 - ? 100 - : newWidth; + const parsedNewWidth = + newWidth === '' + ? undefined + : parseInt( newWidth, 10 ); setAttributes( { - width: parseInt( filteredWidth, 10 ), + width: parsedNewWidth, } ); } } onUnitChange={ ( newUnit ) => { @@ -566,7 +565,11 @@ export default function SearchEdit( { Date: Thu, 19 Sep 2024 13:39:43 +0100 Subject: [PATCH 013/214] Make sections contentOnly in Zoom Out (#65396) --- packages/block-editor/src/store/selectors.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/block-editor/src/store/selectors.js b/packages/block-editor/src/store/selectors.js index 30fdb76bdbe78..5780b2afe2a67 100644 --- a/packages/block-editor/src/store/selectors.js +++ b/packages/block-editor/src/store/selectors.js @@ -2926,6 +2926,7 @@ export const getBlockEditingMode = createRegistrySelector( if ( clientId === null ) { clientId = ''; } + // In zoom-out mode, override the behavior set by // __unstableSetBlockEditingMode to only allow editing the top-level // sections. @@ -2943,9 +2944,13 @@ export const getBlockEditingMode = createRegistrySelector( state, sectionRootClientId ); - if ( ! sectionsClientIds?.includes( clientId ) ) { - return 'disabled'; + + // Sections are always contentOnly. + if ( sectionsClientIds?.includes( clientId ) ) { + return 'contentOnly'; } + + return 'disabled'; } const blockEditingMode = state.blockEditingModes.get( clientId ); From 33ede7bf26a9bb3ad9695702f4a4763b34781c6d Mon Sep 17 00:00:00 2001 From: Dave Smith Date: Thu, 19 Sep 2024 14:22:42 +0100 Subject: [PATCH 014/214] Hide block transforms in contentOnly mode for non-content blocks (#65394) * Hide transforms in contentOnly * Apply only to non-content blocks Co-authored-by: getdave Co-authored-by: andrewserong --- .../block-variation-transforms/index.js | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/packages/block-editor/src/components/block-variation-transforms/index.js b/packages/block-editor/src/components/block-variation-transforms/index.js index 97a3f98054184..8f29effb14e67 100644 --- a/packages/block-editor/src/components/block-variation-transforms/index.js +++ b/packages/block-editor/src/components/block-variation-transforms/index.js @@ -140,19 +140,30 @@ function VariationsToggleGroupControl( { function __experimentalBlockVariationTransforms( { blockClientId } ) { const { updateBlockAttributes } = useDispatch( blockEditorStore ); - const { activeBlockVariation, variations } = useSelect( + const { activeBlockVariation, variations, isContentOnly } = useSelect( ( select ) => { - const { getActiveBlockVariation, getBlockVariations } = - select( blocksStore ); - const { getBlockName, getBlockAttributes } = + const { + getActiveBlockVariation, + getBlockVariations, + __experimentalHasContentRoleAttribute, + } = select( blocksStore ); + const { getBlockName, getBlockAttributes, getBlockEditingMode } = select( blockEditorStore ); + const name = blockClientId && getBlockName( blockClientId ); + + const isContentBlock = + __experimentalHasContentRoleAttribute( name ); + return { activeBlockVariation: getActiveBlockVariation( name, getBlockAttributes( blockClientId ) ), variations: name && getBlockVariations( name, 'transform' ), + isContentOnly: + getBlockEditingMode( blockClientId ) === 'contentOnly' && + ! isContentBlock, }; }, [ blockClientId ] @@ -181,8 +192,7 @@ function __experimentalBlockVariationTransforms( { blockClientId } ) { } ); }; - // Skip rendering if there are no variations - if ( ! variations?.length ) { + if ( ! variations?.length || isContentOnly ) { return null; } From a784d784962bc9e08b28a56df64fb50de2eff679 Mon Sep 17 00:00:00 2001 From: Ramon Date: Fri, 20 Sep 2024 10:50:14 +1000 Subject: [PATCH 015/214] Command Palette: "Add new page" within the site editor creates new page in site editor (#65476) The add page command will now create a new page depending on context: in the post editor it will redirect to `postType=page` in the post editor as it did previously. In the site editor however, it will open a new page without redirecting to the post editor. --------- Co-authored-by: ramonjd Co-authored-by: andrewserong Co-authored-by: youknowriad --- package-lock.json | 2 + packages/core-commands/package.json | 1 + .../src/admin-navigation-commands.js | 85 +++++++++++++++++-- .../specs/site-editor/command-center.spec.js | 6 +- 4 files changed, 85 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4237fea0b1819..110e6dfdeabe5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53340,6 +53340,7 @@ "@wordpress/html-entities": "file:../html-entities", "@wordpress/i18n": "file:../i18n", "@wordpress/icons": "file:../icons", + "@wordpress/notices": "file:../notices", "@wordpress/private-apis": "file:../private-apis", "@wordpress/router": "file:../router", "@wordpress/url": "file:../url" @@ -68362,6 +68363,7 @@ "@wordpress/html-entities": "file:../html-entities", "@wordpress/i18n": "file:../i18n", "@wordpress/icons": "file:../icons", + "@wordpress/notices": "file:../notices", "@wordpress/private-apis": "file:../private-apis", "@wordpress/router": "file:../router", "@wordpress/url": "file:../url" diff --git a/packages/core-commands/package.json b/packages/core-commands/package.json index 2f1f7735dd12b..a3cff3dfd5eec 100644 --- a/packages/core-commands/package.json +++ b/packages/core-commands/package.json @@ -37,6 +37,7 @@ "@wordpress/html-entities": "file:../html-entities", "@wordpress/i18n": "file:../i18n", "@wordpress/icons": "file:../icons", + "@wordpress/notices": "file:../notices", "@wordpress/private-apis": "file:../private-apis", "@wordpress/router": "file:../router", "@wordpress/url": "file:../url" diff --git a/packages/core-commands/src/admin-navigation-commands.js b/packages/core-commands/src/admin-navigation-commands.js index 0ffa7ba7eb628..be5e19386b65b 100644 --- a/packages/core-commands/src/admin-navigation-commands.js +++ b/packages/core-commands/src/admin-navigation-commands.js @@ -1,9 +1,83 @@ /** * WordPress dependencies */ -import { useCommand } from '@wordpress/commands'; +import { useCommand, useCommandLoader } from '@wordpress/commands'; import { __ } from '@wordpress/i18n'; import { plus } from '@wordpress/icons'; +import { getPath } from '@wordpress/url'; +import { store as coreStore } from '@wordpress/core-data'; +import { useDispatch } from '@wordpress/data'; +import { useMemo } from '@wordpress/element'; +import { store as noticesStore } from '@wordpress/notices'; +import { privateApis as routerPrivateApis } from '@wordpress/router'; + +/** + * Internal dependencies + */ +import { unlock } from './lock-unlock'; + +const { useHistory } = unlock( routerPrivateApis ); + +function useAddNewPageCommand() { + const isSiteEditor = getPath( window.location.href )?.includes( + 'site-editor.php' + ); + const history = useHistory(); + const { saveEntityRecord } = useDispatch( coreStore ); + const { createErrorNotice } = useDispatch( noticesStore ); + + const createPageEntity = async ( { close } ) => { + try { + const page = await saveEntityRecord( + 'postType', + 'page', + { + status: 'draft', + }, + { + throwOnError: true, + } + ); + if ( page?.id ) { + history.push( { + postId: page.id, + postType: 'page', + canvas: 'edit', + } ); + } + } catch ( error ) { + const errorMessage = + error.message && error.code !== 'unknown_error' + ? error.message + : __( 'An error occurred while creating the item.' ); + + createErrorNotice( errorMessage, { + type: 'snackbar', + } ); + } finally { + close(); + } + }; + + const commands = useMemo( () => { + const addNewPage = isSiteEditor + ? createPageEntity + : () => ( document.location.href = 'post-new.php?post_type=page' ); + return [ + { + name: 'core/add-new-page', + label: __( 'Add new page' ), + icon: plus, + callback: addNewPage, + }, + ]; + }, [ createPageEntity, isSiteEditor ] ); + + return { + isLoading: false, + commands, + }; +} export function useAdminNavigationCommands() { useCommand( { @@ -14,12 +88,9 @@ export function useAdminNavigationCommands() { document.location.href = 'post-new.php'; }, } ); - useCommand( { + + useCommandLoader( { name: 'core/add-new-page', - label: __( 'Add new page' ), - icon: plus, - callback: () => { - document.location.href = 'post-new.php?post_type=page'; - }, + hook: useAddNewPageCommand, } ); } diff --git a/test/e2e/specs/site-editor/command-center.spec.js b/test/e2e/specs/site-editor/command-center.spec.js index 5b049cda252a8..19318081aa171 100644 --- a/test/e2e/specs/site-editor/command-center.spec.js +++ b/test/e2e/specs/site-editor/command-center.spec.js @@ -28,10 +28,12 @@ test.describe( 'Site editor command palette', () => { await page.keyboard.type( 'new page' ); await page.getByRole( 'option', { name: 'Add new page' } ).click(); await expect( page ).toHaveURL( - '/wp-admin/post-new.php?post_type=page' + /\/wp-admin\/site-editor.php\?postId=(\d+)&postType=page&canvas=edit/ ); await expect( - editor.canvas.getByRole( 'textbox', { name: 'Add title' } ) + editor.canvas + .getByLabel( 'Block: Title' ) + .locator( '[data-rich-text-placeholder="No title"]' ) ).toBeVisible(); } ); From 0237d6eb4faec08c5f2cf8849fb5c38d6b7b8d67 Mon Sep 17 00:00:00 2001 From: Andrei Draganescu Date: Thu, 19 Sep 2024 13:35:35 +0300 Subject: [PATCH 016/214] Handle zoom out when changing device preview (#65444) --- packages/editor/src/components/preview-dropdown/index.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/editor/src/components/preview-dropdown/index.js b/packages/editor/src/components/preview-dropdown/index.js index ecc5bc610a302..38565f4b04abe 100644 --- a/packages/editor/src/components/preview-dropdown/index.js +++ b/packages/editor/src/components/preview-dropdown/index.js @@ -26,6 +26,7 @@ import { ActionItem } from '@wordpress/interface'; * Internal dependencies */ import { store as editorStore } from '../../store'; +import { store as blockEditorStore } from '@wordpress/block-editor'; import PostPreviewButton from '../post-preview-button'; export default function PreviewDropdown( { forceIsAutosaveable, disabled } ) { @@ -44,6 +45,12 @@ export default function PreviewDropdown( { forceIsAutosaveable, disabled } ) { }; }, [] ); const { setDeviceType } = useDispatch( editorStore ); + const { __unstableSetEditorMode } = useDispatch( blockEditorStore ); + + const handleDevicePreviewChange = ( newDeviceType ) => { + setDeviceType( newDeviceType ); + __unstableSetEditorMode( 'edit' ); + }; const isMobile = useViewportMatch( 'medium', '<' ); if ( isMobile ) { @@ -113,7 +120,7 @@ export default function PreviewDropdown( { forceIsAutosaveable, disabled } ) { { isTemplate && ( From 4baca3e1730c748936c26864aad39b9cc0b51e3c Mon Sep 17 00:00:00 2001 From: Mario Santos <34552881+SantosGuillamot@users.noreply.github.com> Date: Fri, 20 Sep 2024 13:46:47 +0200 Subject: [PATCH 017/214] Block Bindings: Remove key fallback in bindings get values and rely on source label (#65517) * Always fall back to source label * Adapt e2e tests Co-authored-by: SantosGuillamot Co-authored-by: gziolo --- .../src/hooks/use-bindings-attributes.js | 5 ++-- .../editor/various/block-bindings.spec.js | 26 +------------------ 2 files changed, 3 insertions(+), 28 deletions(-) diff --git a/packages/block-editor/src/hooks/use-bindings-attributes.js b/packages/block-editor/src/hooks/use-bindings-attributes.js index e1ebf5fda6b8e..ac045004cc654 100644 --- a/packages/block-editor/src/hooks/use-bindings-attributes.js +++ b/packages/block-editor/src/hooks/use-bindings-attributes.js @@ -162,9 +162,8 @@ export const withBlockBindingSupport = createHigherOrderComponent( let values = {}; if ( ! source.getValues ) { Object.keys( bindings ).forEach( ( attr ) => { - // Default to the `key` or the source label when `getValues` doesn't exist - values[ attr ] = - bindings[ attr ].args?.key || source.label; + // Default to the the source label when `getValues` doesn't exist. + values[ attr ] = source.label; } ); } else { values = source.getValues( { diff --git a/test/e2e/specs/editor/various/block-bindings.spec.js b/test/e2e/specs/editor/various/block-bindings.spec.js index c556c469698eb..90a5d2b1da9f1 100644 --- a/test/e2e/specs/editor/various/block-bindings.spec.js +++ b/test/e2e/specs/editor/various/block-bindings.spec.js @@ -66,7 +66,7 @@ test.describe( 'Block bindings', () => { ); } ); - test( 'should show the key of the custom field in server sources with key', async ( { + test( 'should always show the source label in server-only sources', async ( { editor, } ) => { await editor.insertBlock( { @@ -86,30 +86,6 @@ test.describe( 'Block bindings', () => { const paragraphBlock = editor.canvas.getByRole( 'document', { name: 'Block: Paragraph', } ); - await expect( paragraphBlock ).toHaveText( - 'text_custom_field' - ); - } ); - - test( 'should show the source label in server sources without key', async ( { - editor, - } ) => { - await editor.insertBlock( { - name: 'core/paragraph', - attributes: { - content: 'paragraph default content', - metadata: { - bindings: { - content: { - source: 'core/server-source', - }, - }, - }, - }, - } ); - const paragraphBlock = editor.canvas.getByRole( 'document', { - name: 'Block: Paragraph', - } ); await expect( paragraphBlock ).toHaveText( 'Server Source' ); } ); From 8488c647734d0c2516488fc0cb919bec8f29357c Mon Sep 17 00:00:00 2001 From: Jon Surrell Date: Fri, 20 Sep 2024 14:39:28 +0200 Subject: [PATCH 018/214] Script Modules: Centralize registration (#65460) Rework how Script Modules are registered in Gutenberg. Script Module registration is handled in one central place. A combined assets file is used for Script Modules and registration. This means that dependencies and versions will be used correctly and kept up-to-date while avoiding repeated file reads. Block library Script Module assets that are enqueued on demand _are registered in a centralized location_. The assets are enqueued on demand. **This requires a Core change** since the block library PHP files are synced to Core and also require centralized Script Module registration (https://github.com/WordPress/wordpress-develop/pull/7360). This solves a problem where Gutenberg-specific code was being shipped in Core through block-library. The block library Script Module asset Module IDs are renamed to indicate they are view files and align with the naming from #65064: @wordpress/block-library/query is @wordpress/block-library/query/view (indicating it is a view file). --- This is sufficient to change Script Modules to use Gutenberg in a backwards compatible way: - `@wordpress/ineractivity` and `@wordpress/interactivity-router` were registered on `wp_enqueue_scripts`. That action fires after the `wp_default_scripts` used here. Registering an already registered Script Module is a no-op. This change registers first. - The only other Script Modules currently available in Core are from the block library. Those have been registered conditionally on use. The ID is changed here, so there's little risk of the wrong version being used. There is a Core companion PR that will be necessary to land: https://github.com/WordPress/wordpress-develop/pull/7360 --- Co-authored-by: sirreal Co-authored-by: gziolo --- .github/workflows/unit-test.yml | 5 +- backport-changelog/6.7/7360.md | 3 ++ lib/client-assets.php | 50 +++++++++++++++++++ lib/experimental/script-modules.php | 25 +--------- lib/interactivity-api.php | 31 ------------ packages/block-library/src/file/index.php | 13 +---- packages/block-library/src/image/index.php | 14 +----- .../block-library/src/navigation/index.php | 13 +---- packages/block-library/src/query/index.php | 22 +------- packages/block-library/src/search/index.php | 13 +---- tools/webpack/script-modules.js | 12 +++-- 11 files changed, 72 insertions(+), 129 deletions(-) create mode 100644 backport-changelog/6.7/7360.md diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index c0f70070908c1..b80804b824e3c 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -135,7 +135,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 @@ -212,7 +214,6 @@ jobs: uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 with: name: build-assets - path: ./build - name: Docker debug information run: | diff --git a/backport-changelog/6.7/7360.md b/backport-changelog/6.7/7360.md new file mode 100644 index 0000000000000..b2fb8efd624b9 --- /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/lib/client-assets.php b/lib/client-assets.php index 62e874d6b06c8..2343530e5595a 100644 --- a/lib/client-assets.php +++ b/lib/client-assets.php @@ -601,6 +601,56 @@ function gutenberg_register_vendor_scripts( $scripts ) { } add_action( 'wp_default_scripts', 'gutenberg_register_vendor_scripts' ); +/** + * Registers or re-registers Gutenberg Script Modules. + * + * Script modules that are registered by Core will be re-registered by Gutenberg. + * + * @since 19.3.0 + */ +function gutenberg_default_script_modules() { + /* + * Expects multidimensional array like: + * + * 'interactivity/index.min.js' => array('dependencies' => array(…), 'version' => '…'), + * 'interactivity/debug.min.js' => array('dependencies' => array(…), 'version' => '…'), + * 'interactivity-router/index.min.js' => … + */ + $assets = include gutenberg_dir_path() . '/build-module/assets.php'; + + foreach ( $assets as $file_name => $script_module_data ) { + /* + * Build the WordPress Script Module ID from the file name. + * Prepend `@wordpress/` and remove extensions and `/index` if present: + * - interactivity/index.min.js => @wordpress/interactivity + * - interactivity/debug.min.js => @wordpress/interactivity/debug + * - block-library/query/view.js => @wordpress/block-library/query/view + */ + $script_module_id = '@wordpress/' . preg_replace( '~(?:/index)?\.min\.js$~D', '', $file_name, 1 ); + switch ( $script_module_id ) { + /* + * Interactivity exposes two entrypoints, "/index" and "/debug". + * "/debug" should replalce "/index" in devlopment. + */ + case '@wordpress/interactivity/debug': + if ( ! SCRIPT_DEBUG ) { + continue 2; + } + $script_module_id = '@wordpress/interactivity'; + break; + case '@wordpress/interactivity': + if ( SCRIPT_DEBUG ) { + continue 2; + } + break; + } + + $path = gutenberg_url( "build-module/{$file_name}" ); + wp_register_script_module( $script_module_id, $path, $script_module_data['dependencies'], $script_module_data['version'] ); + } +} +remove_action( 'wp_default_scripts', 'wp_default_script_modules' ); +add_action( 'wp_default_scripts', 'gutenberg_default_script_modules' ); /* * Always remove the Core action hook while gutenberg_enqueue_stored_styles() exists to avoid styles being printed twice. diff --git a/lib/experimental/script-modules.php b/lib/experimental/script-modules.php index f65bc1704dd89..fe23786fc0362 100644 --- a/lib/experimental/script-modules.php +++ b/lib/experimental/script-modules.php @@ -239,26 +239,5 @@ function gutenberg_a11y_script_module_html() { . '
' . ''; } - -/** - * Registers Gutenberg Script Modules. - * - * @since 19.3 - */ -function gutenberg_register_script_modules() { - // When in production, use the plugin's version as the default asset version; - // else (for development or test) default to use the current time. - $default_version = defined( 'GUTENBERG_VERSION' ) && ! SCRIPT_DEBUG ? GUTENBERG_VERSION : time(); - - wp_deregister_script_module( '@wordpress/a11y' ); - wp_register_script_module( - '@wordpress/a11y', - gutenberg_url( 'build-module/a11y/index.min.js' ), - array(), - $default_version - ); - - add_action( 'wp_footer', 'gutenberg_a11y_script_module_html' ); - add_action( 'admin_footer', 'gutenberg_a11y_script_module_html' ); -} -add_action( 'init', 'gutenberg_register_script_modules' ); +add_action( 'wp_footer', 'gutenberg_a11y_script_module_html' ); +add_action( 'admin_footer', 'gutenberg_a11y_script_module_html' ); diff --git a/lib/interactivity-api.php b/lib/interactivity-api.php index c00d68bc70e8e..ff68936f054a7 100644 --- a/lib/interactivity-api.php +++ b/lib/interactivity-api.php @@ -5,37 +5,6 @@ * @package gutenberg */ -/** - * Deregisters the Core Interactivity API Modules and replace them - * with the ones from the Gutenberg plugin. - */ -function gutenberg_reregister_interactivity_script_modules() { - $default_version = defined( 'GUTENBERG_VERSION' ) && ! SCRIPT_DEBUG ? GUTENBERG_VERSION : time(); - wp_deregister_script_module( '@wordpress/interactivity' ); - wp_deregister_script_module( '@wordpress/interactivity-router' ); - - wp_register_script_module( - '@wordpress/interactivity', - gutenberg_url( '/build-module/' . ( SCRIPT_DEBUG ? 'interactivity/debug.min.js' : 'interactivity/index.min.js' ) ), - array(), - $default_version - ); - - wp_register_script_module( - '@wordpress/interactivity-router', - gutenberg_url( '/build-module/interactivity-router/index.min.js' ), - array( - array( - 'id' => '@wordpress/a11y', - 'import' => 'dynamic', - ), - '@wordpress/interactivity', - ), - $default_version - ); -} -add_action( 'init', 'gutenberg_reregister_interactivity_script_modules' ); - /** * Adds script data to the interactivity-router script module. * diff --git a/packages/block-library/src/file/index.php b/packages/block-library/src/file/index.php index 85cc840201da5..8ea668d56d854 100644 --- a/packages/block-library/src/file/index.php +++ b/packages/block-library/src/file/index.php @@ -19,18 +19,7 @@ function render_block_core_file( $attributes, $content ) { // If it's interactive, enqueue the script module and add the directives. if ( ! empty( $attributes['displayPreview'] ) ) { - $suffix = wp_scripts_get_suffix(); - if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN ) { - $module_url = gutenberg_url( '/build-module/block-library/file/view.min.js' ); - } - - wp_register_script_module( - '@wordpress/block-library/file', - isset( $module_url ) ? $module_url : includes_url( "blocks/file/view{$suffix}.js" ), - array( '@wordpress/interactivity' ), - defined( 'GUTENBERG_VERSION' ) ? GUTENBERG_VERSION : get_bloginfo( 'version' ) - ); - wp_enqueue_script_module( '@wordpress/block-library/file' ); + wp_enqueue_script_module( '@wordpress/block-library/file/view' ); $processor = new WP_HTML_Tag_Processor( $content ); $processor->next_tag(); diff --git a/packages/block-library/src/image/index.php b/packages/block-library/src/image/index.php index abbb03c095245..5d7815a1f2f3f 100644 --- a/packages/block-library/src/image/index.php +++ b/packages/block-library/src/image/index.php @@ -70,19 +70,7 @@ function render_block_core_image( $attributes, $content, $block ) { isset( $lightbox_settings['enabled'] ) && true === $lightbox_settings['enabled'] ) { - $suffix = wp_scripts_get_suffix(); - if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN ) { - $module_url = gutenberg_url( '/build-module/block-library/image/view.min.js' ); - } - - wp_register_script_module( - '@wordpress/block-library/image', - isset( $module_url ) ? $module_url : includes_url( "blocks/image/view{$suffix}.js" ), - array( '@wordpress/interactivity' ), - defined( 'GUTENBERG_VERSION' ) ? GUTENBERG_VERSION : get_bloginfo( 'version' ) - ); - - wp_enqueue_script_module( '@wordpress/block-library/image' ); + wp_enqueue_script_module( '@wordpress/block-library/image/view' ); /* * This render needs to happen in a filter with priority 15 to ensure that diff --git a/packages/block-library/src/navigation/index.php b/packages/block-library/src/navigation/index.php index ec72b03b6906f..10fec84ed59d9 100644 --- a/packages/block-library/src/navigation/index.php +++ b/packages/block-library/src/navigation/index.php @@ -622,18 +622,7 @@ private static function get_nav_element_directives( $is_interactive ) { */ private static function handle_view_script_module_loading( $attributes, $block, $inner_blocks ) { if ( static::is_interactive( $attributes, $inner_blocks ) ) { - $suffix = wp_scripts_get_suffix(); - if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN ) { - $module_url = gutenberg_url( '/build-module/block-library/navigation/view.min.js' ); - } - - wp_register_script_module( - '@wordpress/block-library/navigation', - isset( $module_url ) ? $module_url : includes_url( "blocks/navigation/view{$suffix}.js" ), - array( '@wordpress/interactivity' ), - defined( 'GUTENBERG_VERSION' ) ? GUTENBERG_VERSION : get_bloginfo( 'version' ) - ); - wp_enqueue_script_module( '@wordpress/block-library/navigation' ); + wp_enqueue_script_module( '@wordpress/block-library/navigation/view' ); } } diff --git a/packages/block-library/src/query/index.php b/packages/block-library/src/query/index.php index d10db26529854..043f351e11d7f 100644 --- a/packages/block-library/src/query/index.php +++ b/packages/block-library/src/query/index.php @@ -24,27 +24,7 @@ function render_block_core_query( $attributes, $content, $block ) { // Enqueue the script module and add the necessary directives if the block is // interactive. if ( $is_interactive ) { - $suffix = wp_scripts_get_suffix(); - if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN ) { - $module_url = gutenberg_url( '/build-module/block-library/query/view.min.js' ); - } - - wp_register_script_module( - '@wordpress/block-library/query', - isset( $module_url ) ? $module_url : includes_url( "blocks/query/view{$suffix}.js" ), - array( - array( - 'id' => '@wordpress/interactivity', - 'import' => 'static', - ), - array( - 'id' => '@wordpress/interactivity-router', - 'import' => 'dynamic', - ), - ), - defined( 'GUTENBERG_VERSION' ) ? GUTENBERG_VERSION : get_bloginfo( 'version' ) - ); - wp_enqueue_script_module( '@wordpress/block-library/query' ); + wp_enqueue_script_module( '@wordpress/block-library/query/view' ); $p = new WP_HTML_Tag_Processor( $content ); if ( $p->next_tag() ) { diff --git a/packages/block-library/src/search/index.php b/packages/block-library/src/search/index.php index fb09cdd36406e..e4259bb0ce2c7 100644 --- a/packages/block-library/src/search/index.php +++ b/packages/block-library/src/search/index.php @@ -80,18 +80,7 @@ function render_block_core_search( $attributes ) { // If it's interactive, enqueue the script module and add the directives. $is_expandable_searchfield = 'button-only' === $button_position; if ( $is_expandable_searchfield ) { - $suffix = wp_scripts_get_suffix(); - if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN ) { - $module_url = gutenberg_url( '/build-module/block-library/search/view.min.js' ); - } - - wp_register_script_module( - '@wordpress/block-library/search', - isset( $module_url ) ? $module_url : includes_url( "blocks/search/view{$suffix}.js" ), - array( '@wordpress/interactivity' ), - defined( 'GUTENBERG_VERSION' ) ? GUTENBERG_VERSION : get_bloginfo( 'version' ) - ); - wp_enqueue_script_module( '@wordpress/block-library/search' ); + wp_enqueue_script_module( '@wordpress/block-library/search/view' ); $input->set_attribute( 'data-wp-bind--aria-hidden', '!context.isSearchInputVisible' ); $input->set_attribute( 'data-wp-bind--tabindex', 'state.tabindex' ); diff --git a/tools/webpack/script-modules.js b/tools/webpack/script-modules.js index 18287c96d83c8..021f11f5f5ed9 100644 --- a/tools/webpack/script-modules.js +++ b/tools/webpack/script-modules.js @@ -89,11 +89,11 @@ module.exports = { }, output: { devtoolNamespace: 'wp', - filename: './build-module/[name].min.js', + filename: '[name].min.js', library: { type: 'module', }, - path: join( __dirname, '..', '..' ), + path: join( __dirname, '..', '..', 'build-module' ), environment: { module: true }, module: true, chunkFormat: 'module', @@ -102,7 +102,13 @@ module.exports = { resolve: { extensions: [ '.js', '.ts', '.tsx' ], }, - plugins: [ ...plugins, new DependencyExtractionWebpackPlugin() ], + plugins: [ + ...plugins, + new DependencyExtractionWebpackPlugin( { + combineAssets: true, + combinedOutputFile: `./assets.php`, + } ), + ], watchOptions: { ignored: [ '**/node_modules' ], aggregateTimeout: 500, From 2cce4291c000f7c47d08e7294953b51e23a548b0 Mon Sep 17 00:00:00 2001 From: Jarda Snajdr Date: Fri, 20 Sep 2024 11:43:45 +0200 Subject: [PATCH 019/214] useToolsPanel: calculate menuItems in layout effect to avoid painting intermediate state (#65494) * useToolsPanel: calculate menuItems in layout effect to avoid painting intermediate state * useToolsPanel: remove setState deps, calculate derived values in layout effects * ToolsPanelItem: also use layout effect to prevent loops * Changelog entry Co-authored-by: jsnajdr Co-authored-by: ciampo --- packages/components/CHANGELOG.md | 4 + .../src/tools-panel/tools-panel-item/hook.ts | 13 +- .../src/tools-panel/tools-panel/hook.ts | 131 ++++++++---------- 3 files changed, 68 insertions(+), 80 deletions(-) diff --git a/packages/components/CHANGELOG.md b/packages/components/CHANGELOG.md index d7e8b19122989..02cf303bbba70 100644 --- a/packages/components/CHANGELOG.md +++ b/packages/components/CHANGELOG.md @@ -2,6 +2,10 @@ ## Unreleased +### Bug Fixes + +- `ToolsPanel`: avoid paining intermediate unfinished states ([#65494](https://github.com/WordPress/gutenberg/pull/65494)). + ## 28.8.0 (2024-09-19) ### Bug Fixes diff --git a/packages/components/src/tools-panel/tools-panel-item/hook.ts b/packages/components/src/tools-panel/tools-panel-item/hook.ts index 1e33e7c6740de..27a0ceb27e7ce 100644 --- a/packages/components/src/tools-panel/tools-panel-item/hook.ts +++ b/packages/components/src/tools-panel/tools-panel-item/hook.ts @@ -2,12 +2,7 @@ * WordPress dependencies */ import { usePrevious } from '@wordpress/compose'; -import { - useCallback, - useEffect, - useLayoutEffect, - useMemo, -} from '@wordpress/element'; +import { useCallback, useLayoutEffect, useMemo } from '@wordpress/element'; /** * Internal dependencies @@ -101,7 +96,7 @@ export function useToolsPanelItem( deregisterPanelItem, ] ); - useEffect( () => { + useLayoutEffect( () => { if ( hasMatchingPanel ) { registerResetAllFilter( resetAllFilterCallback ); } @@ -127,7 +122,7 @@ export function useToolsPanelItem( const isValueSet = hasValue(); // Notify the panel when an item's value has changed except for optional // items without value because the item should not cause itself to hide. - useEffect( () => { + useLayoutEffect( () => { if ( ! isShownByDefault && ! isValueSet ) { return; } @@ -143,7 +138,7 @@ export function useToolsPanelItem( // Determine if the panel item's corresponding menu is being toggled and // trigger appropriate callback if it is. - useEffect( () => { + useLayoutEffect( () => { // We check whether this item is currently registered as items rendered // via fills can persist through the parent panel being remounted. // See: https://github.com/WordPress/gutenberg/pull/45673 diff --git a/packages/components/src/tools-panel/tools-panel/hook.ts b/packages/components/src/tools-panel/tools-panel/hook.ts index 931bf2494e6e3..d67d732d4df67 100644 --- a/packages/components/src/tools-panel/tools-panel/hook.ts +++ b/packages/components/src/tools-panel/tools-panel/hook.ts @@ -3,7 +3,7 @@ */ import { useCallback, - useEffect, + useLayoutEffect, useMemo, useRef, useState, @@ -101,7 +101,7 @@ export function useToolsPanel( // the resetAll task. Without this, the flag is cleared after the first // control updates and forces a rerender with subsequent controls then // believing they need to reset, unfortunately using stale data. - useEffect( () => { + useLayoutEffect( () => { if ( wasResetting ) { isResettingRef.current = false; } @@ -114,76 +114,66 @@ export function useToolsPanel( ResetAllFilter[] >( [] ); - const registerPanelItem = useCallback( - ( item: ToolsPanelItem ) => { - // Add item to panel items. - setPanelItems( ( items ) => { - const newItems = [ ...items ]; - // If an item with this label has already been registered, remove it - // first. This can happen when an item is moved between the default - // and optional groups. - const existingIndex = newItems.findIndex( - ( oldItem ) => oldItem.label === item.label - ); - if ( existingIndex !== -1 ) { - newItems.splice( existingIndex, 1 ); - } - return [ ...newItems, item ]; - } ); + const registerPanelItem = useCallback( ( item: ToolsPanelItem ) => { + // Add item to panel items. + setPanelItems( ( items ) => { + const newItems = [ ...items ]; + // If an item with this label has already been registered, remove it + // first. This can happen when an item is moved between the default + // and optional groups. + const existingIndex = newItems.findIndex( + ( oldItem ) => oldItem.label === item.label + ); + if ( existingIndex !== -1 ) { + newItems.splice( existingIndex, 1 ); + } + return [ ...newItems, item ]; + } ); - // Track the initial order of item registration. This is used for - // maintaining menu item order later. - setMenuItemOrder( ( items ) => { - if ( items.includes( item.label ) ) { - return items; - } + // Track the initial order of item registration. This is used for + // maintaining menu item order later. + setMenuItemOrder( ( items ) => { + if ( items.includes( item.label ) ) { + return items; + } - return [ ...items, item.label ]; - } ); - }, - [ setPanelItems, setMenuItemOrder ] - ); + return [ ...items, item.label ]; + } ); + }, [] ); // Panels need to deregister on unmount to avoid orphans in menu state. // This is an issue when panel items are being injected via SlotFills. - const deregisterPanelItem = useCallback( - ( label: string ) => { - // When switching selections between components injecting matching - // controls, e.g. both panels have a "padding" control, the - // deregistration of the first panel doesn't occur until after the - // registration of the next. - setPanelItems( ( items ) => { - const newItems = [ ...items ]; - const index = newItems.findIndex( - ( item ) => item.label === label - ); - if ( index !== -1 ) { - newItems.splice( index, 1 ); - } - return newItems; - } ); - }, - [ setPanelItems ] - ); + const deregisterPanelItem = useCallback( ( label: string ) => { + // When switching selections between components injecting matching + // controls, e.g. both panels have a "padding" control, the + // deregistration of the first panel doesn't occur until after the + // registration of the next. + setPanelItems( ( items ) => { + const newItems = [ ...items ]; + const index = newItems.findIndex( + ( item ) => item.label === label + ); + if ( index !== -1 ) { + newItems.splice( index, 1 ); + } + return newItems; + } ); + }, [] ); const registerResetAllFilter = useCallback( ( newFilter: ResetAllFilter ) => { - setResetAllFilters( ( filters ) => { - return [ ...filters, newFilter ]; - } ); + setResetAllFilters( ( filters ) => [ ...filters, newFilter ] ); }, - [ setResetAllFilters ] + [] ); const deregisterResetAllFilter = useCallback( ( filterToRemove: ResetAllFilter ) => { - setResetAllFilters( ( filters ) => { - return filters.filter( - ( filter ) => filter !== filterToRemove - ); - } ); + setResetAllFilters( ( filters ) => + filters.filter( ( filter ) => filter !== filterToRemove ) + ); }, - [ setResetAllFilters ] + [] ); // Manage and share display state of menu items representing child controls. @@ -193,17 +183,16 @@ export function useToolsPanel( } ); // Setup menuItems state as panel items register themselves. - useEffect( () => { - setMenuItems( ( prevState ) => { - const items = generateMenuItems( { + useLayoutEffect( () => { + setMenuItems( ( currentMenuItems ) => + generateMenuItems( { panelItems, shouldReset: false, - currentMenuItems: prevState, + currentMenuItems, menuItemOrder, - } ); - return items; - } ); - }, [ panelItems, setMenuItems, menuItemOrder ] ); + } ) + ); + }, [ panelItems, menuItemOrder ] ); // Updates the status of the panel’s menu items. For default items the // value represents whether it differs from the default and for optional @@ -225,7 +214,7 @@ export function useToolsPanel( return newState; } ); }, - [ setMenuItems ] + [] ); // Whether all optional menu items are hidden or not must be tracked @@ -235,7 +224,7 @@ export function useToolsPanel( const [ areAllOptionalControlsHidden, setAreAllOptionalControlsHidden ] = useState( false ); - useEffect( () => { + useLayoutEffect( () => { if ( isMenuItemTypeEmpty( menuItems?.default ) && ! isMenuItemTypeEmpty( menuItems?.optional ) @@ -245,7 +234,7 @@ export function useToolsPanel( ).some( ( [ , isSelected ] ) => isSelected ); setAreAllOptionalControlsHidden( allControlsHidden ); } - }, [ menuItems, setAreAllOptionalControlsHidden ] ); + }, [ menuItems ] ); const cx = useCx(); const classes = useMemo( () => { @@ -297,7 +286,7 @@ export function useToolsPanel( setMenuItems( newMenuItems ); }, - [ menuItems, panelItems, setMenuItems ] + [ menuItems, panelItems ] ); // Resets display of children and executes resetAll callback if available. @@ -314,7 +303,7 @@ export function useToolsPanel( shouldReset: true, } ); setMenuItems( resetMenuItems ); - }, [ panelItems, resetAllFilters, resetAll, setMenuItems, menuItemOrder ] ); + }, [ panelItems, resetAllFilters, resetAll, menuItemOrder ] ); // Assist ItemGroup styling when there are potentially hidden placeholder // items by identifying first & last items that are toggled on for display. From a51babc6baaf5e310b19529b4e3c6a9be23e24aa Mon Sep 17 00:00:00 2001 From: Riad Benguella Date: Fri, 20 Sep 2024 15:19:34 +0100 Subject: [PATCH 020/214] =?UTF-8?q?Revert=20"useToolsPanel:=20calculate=20?= =?UTF-8?q?menuItems=20in=20layout=20effect=20to=20avoid=20painting?= =?UTF-8?q?=E2=80=A6"=20(#65533)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 5e37a1316d0a39bc880bf6efff9b9f26db381690. --- packages/components/CHANGELOG.md | 4 - .../src/tools-panel/tools-panel-item/hook.ts | 13 +- .../src/tools-panel/tools-panel/hook.ts | 131 ++++++++++-------- 3 files changed, 80 insertions(+), 68 deletions(-) diff --git a/packages/components/CHANGELOG.md b/packages/components/CHANGELOG.md index 02cf303bbba70..d7e8b19122989 100644 --- a/packages/components/CHANGELOG.md +++ b/packages/components/CHANGELOG.md @@ -2,10 +2,6 @@ ## Unreleased -### Bug Fixes - -- `ToolsPanel`: avoid paining intermediate unfinished states ([#65494](https://github.com/WordPress/gutenberg/pull/65494)). - ## 28.8.0 (2024-09-19) ### Bug Fixes diff --git a/packages/components/src/tools-panel/tools-panel-item/hook.ts b/packages/components/src/tools-panel/tools-panel-item/hook.ts index 27a0ceb27e7ce..1e33e7c6740de 100644 --- a/packages/components/src/tools-panel/tools-panel-item/hook.ts +++ b/packages/components/src/tools-panel/tools-panel-item/hook.ts @@ -2,7 +2,12 @@ * WordPress dependencies */ import { usePrevious } from '@wordpress/compose'; -import { useCallback, useLayoutEffect, useMemo } from '@wordpress/element'; +import { + useCallback, + useEffect, + useLayoutEffect, + useMemo, +} from '@wordpress/element'; /** * Internal dependencies @@ -96,7 +101,7 @@ export function useToolsPanelItem( deregisterPanelItem, ] ); - useLayoutEffect( () => { + useEffect( () => { if ( hasMatchingPanel ) { registerResetAllFilter( resetAllFilterCallback ); } @@ -122,7 +127,7 @@ export function useToolsPanelItem( const isValueSet = hasValue(); // Notify the panel when an item's value has changed except for optional // items without value because the item should not cause itself to hide. - useLayoutEffect( () => { + useEffect( () => { if ( ! isShownByDefault && ! isValueSet ) { return; } @@ -138,7 +143,7 @@ export function useToolsPanelItem( // Determine if the panel item's corresponding menu is being toggled and // trigger appropriate callback if it is. - useLayoutEffect( () => { + useEffect( () => { // We check whether this item is currently registered as items rendered // via fills can persist through the parent panel being remounted. // See: https://github.com/WordPress/gutenberg/pull/45673 diff --git a/packages/components/src/tools-panel/tools-panel/hook.ts b/packages/components/src/tools-panel/tools-panel/hook.ts index d67d732d4df67..931bf2494e6e3 100644 --- a/packages/components/src/tools-panel/tools-panel/hook.ts +++ b/packages/components/src/tools-panel/tools-panel/hook.ts @@ -3,7 +3,7 @@ */ import { useCallback, - useLayoutEffect, + useEffect, useMemo, useRef, useState, @@ -101,7 +101,7 @@ export function useToolsPanel( // the resetAll task. Without this, the flag is cleared after the first // control updates and forces a rerender with subsequent controls then // believing they need to reset, unfortunately using stale data. - useLayoutEffect( () => { + useEffect( () => { if ( wasResetting ) { isResettingRef.current = false; } @@ -114,66 +114,76 @@ export function useToolsPanel( ResetAllFilter[] >( [] ); - const registerPanelItem = useCallback( ( item: ToolsPanelItem ) => { - // Add item to panel items. - setPanelItems( ( items ) => { - const newItems = [ ...items ]; - // If an item with this label has already been registered, remove it - // first. This can happen when an item is moved between the default - // and optional groups. - const existingIndex = newItems.findIndex( - ( oldItem ) => oldItem.label === item.label - ); - if ( existingIndex !== -1 ) { - newItems.splice( existingIndex, 1 ); - } - return [ ...newItems, item ]; - } ); + const registerPanelItem = useCallback( + ( item: ToolsPanelItem ) => { + // Add item to panel items. + setPanelItems( ( items ) => { + const newItems = [ ...items ]; + // If an item with this label has already been registered, remove it + // first. This can happen when an item is moved between the default + // and optional groups. + const existingIndex = newItems.findIndex( + ( oldItem ) => oldItem.label === item.label + ); + if ( existingIndex !== -1 ) { + newItems.splice( existingIndex, 1 ); + } + return [ ...newItems, item ]; + } ); - // Track the initial order of item registration. This is used for - // maintaining menu item order later. - setMenuItemOrder( ( items ) => { - if ( items.includes( item.label ) ) { - return items; - } + // Track the initial order of item registration. This is used for + // maintaining menu item order later. + setMenuItemOrder( ( items ) => { + if ( items.includes( item.label ) ) { + return items; + } - return [ ...items, item.label ]; - } ); - }, [] ); + return [ ...items, item.label ]; + } ); + }, + [ setPanelItems, setMenuItemOrder ] + ); // Panels need to deregister on unmount to avoid orphans in menu state. // This is an issue when panel items are being injected via SlotFills. - const deregisterPanelItem = useCallback( ( label: string ) => { - // When switching selections between components injecting matching - // controls, e.g. both panels have a "padding" control, the - // deregistration of the first panel doesn't occur until after the - // registration of the next. - setPanelItems( ( items ) => { - const newItems = [ ...items ]; - const index = newItems.findIndex( - ( item ) => item.label === label - ); - if ( index !== -1 ) { - newItems.splice( index, 1 ); - } - return newItems; - } ); - }, [] ); + const deregisterPanelItem = useCallback( + ( label: string ) => { + // When switching selections between components injecting matching + // controls, e.g. both panels have a "padding" control, the + // deregistration of the first panel doesn't occur until after the + // registration of the next. + setPanelItems( ( items ) => { + const newItems = [ ...items ]; + const index = newItems.findIndex( + ( item ) => item.label === label + ); + if ( index !== -1 ) { + newItems.splice( index, 1 ); + } + return newItems; + } ); + }, + [ setPanelItems ] + ); const registerResetAllFilter = useCallback( ( newFilter: ResetAllFilter ) => { - setResetAllFilters( ( filters ) => [ ...filters, newFilter ] ); + setResetAllFilters( ( filters ) => { + return [ ...filters, newFilter ]; + } ); }, - [] + [ setResetAllFilters ] ); const deregisterResetAllFilter = useCallback( ( filterToRemove: ResetAllFilter ) => { - setResetAllFilters( ( filters ) => - filters.filter( ( filter ) => filter !== filterToRemove ) - ); + setResetAllFilters( ( filters ) => { + return filters.filter( + ( filter ) => filter !== filterToRemove + ); + } ); }, - [] + [ setResetAllFilters ] ); // Manage and share display state of menu items representing child controls. @@ -183,16 +193,17 @@ export function useToolsPanel( } ); // Setup menuItems state as panel items register themselves. - useLayoutEffect( () => { - setMenuItems( ( currentMenuItems ) => - generateMenuItems( { + useEffect( () => { + setMenuItems( ( prevState ) => { + const items = generateMenuItems( { panelItems, shouldReset: false, - currentMenuItems, + currentMenuItems: prevState, menuItemOrder, - } ) - ); - }, [ panelItems, menuItemOrder ] ); + } ); + return items; + } ); + }, [ panelItems, setMenuItems, menuItemOrder ] ); // Updates the status of the panel’s menu items. For default items the // value represents whether it differs from the default and for optional @@ -214,7 +225,7 @@ export function useToolsPanel( return newState; } ); }, - [] + [ setMenuItems ] ); // Whether all optional menu items are hidden or not must be tracked @@ -224,7 +235,7 @@ export function useToolsPanel( const [ areAllOptionalControlsHidden, setAreAllOptionalControlsHidden ] = useState( false ); - useLayoutEffect( () => { + useEffect( () => { if ( isMenuItemTypeEmpty( menuItems?.default ) && ! isMenuItemTypeEmpty( menuItems?.optional ) @@ -234,7 +245,7 @@ export function useToolsPanel( ).some( ( [ , isSelected ] ) => isSelected ); setAreAllOptionalControlsHidden( allControlsHidden ); } - }, [ menuItems ] ); + }, [ menuItems, setAreAllOptionalControlsHidden ] ); const cx = useCx(); const classes = useMemo( () => { @@ -286,7 +297,7 @@ export function useToolsPanel( setMenuItems( newMenuItems ); }, - [ menuItems, panelItems ] + [ menuItems, panelItems, setMenuItems ] ); // Resets display of children and executes resetAll callback if available. @@ -303,7 +314,7 @@ export function useToolsPanel( shouldReset: true, } ); setMenuItems( resetMenuItems ); - }, [ panelItems, resetAllFilters, resetAll, menuItemOrder ] ); + }, [ panelItems, resetAllFilters, resetAll, setMenuItems, menuItemOrder ] ); // Assist ItemGroup styling when there are potentially hidden placeholder // items by identifying first & last items that are toggled on for display. From 3215aa5c38bd43f20208cda088e12950035dd794 Mon Sep 17 00:00:00 2001 From: Sarah Norris <1645628+mikachan@users.noreply.github.com> Date: Fri, 20 Sep 2024 17:50:41 +0100 Subject: [PATCH 021/214] Query Loop: Remove is_singular() check and fix test (#65483) * Replace query_posts() with set() * Fix test_rendering_post_template_with_main_query_loop_already_started test * Remove is_singular check Co-authored-by: mikachan Co-authored-by: jffng Co-authored-by: David Herrera <697432+dlh01@users.noreply.github.com> --- packages/block-library/src/post-template/index.php | 5 ----- phpunit/blocks/render-post-template-test.php | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/packages/block-library/src/post-template/index.php b/packages/block-library/src/post-template/index.php index 64cdd156a5431..9126355c096a5 100644 --- a/packages/block-library/src/post-template/index.php +++ b/packages/block-library/src/post-template/index.php @@ -64,11 +64,6 @@ function render_block_core_post_template( $attributes, $content, $block ) { if ( in_the_loop() ) { $query = clone $wp_query; $query->rewind_posts(); - - // If in a single post of any post type, default to the 'post' post type. - if ( is_singular() ) { - query_posts( array( 'post_type' => 'post' ) ); - } } else { $query = $wp_query; } diff --git a/phpunit/blocks/render-post-template-test.php b/phpunit/blocks/render-post-template-test.php index 6241f6f060516..e929e459654fe 100644 --- a/phpunit/blocks/render-post-template-test.php +++ b/phpunit/blocks/render-post-template-test.php @@ -122,7 +122,7 @@ public function test_rendering_post_template_with_main_query_loop_already_starte global $wp_query, $wp_the_query; // Query block with post template block. - $content = ''; + $content = ''; $content .= ''; $content .= ''; $content .= ''; From b6229a4727192f4dbe4bb952cacf9448e99d50b7 Mon Sep 17 00:00:00 2001 From: Aki Hamano <54422211+t-hamano@users.noreply.github.com> Date: Sat, 21 Sep 2024 05:04:37 +0900 Subject: [PATCH 022/214] Command Palette: Fix "Add new page" command for hybrid theme (#65534) Co-authored-by: t-hamano Co-authored-by: ramonjd --- .../src/admin-navigation-commands.js | 79 +++++++++++-------- 1 file changed, 44 insertions(+), 35 deletions(-) diff --git a/packages/core-commands/src/admin-navigation-commands.js b/packages/core-commands/src/admin-navigation-commands.js index be5e19386b65b..c0d8bb084b46a 100644 --- a/packages/core-commands/src/admin-navigation-commands.js +++ b/packages/core-commands/src/admin-navigation-commands.js @@ -6,8 +6,8 @@ import { __ } from '@wordpress/i18n'; import { plus } from '@wordpress/icons'; import { getPath } from '@wordpress/url'; import { store as coreStore } from '@wordpress/core-data'; -import { useDispatch } from '@wordpress/data'; -import { useMemo } from '@wordpress/element'; +import { useSelect, useDispatch } from '@wordpress/data'; +import { useCallback, useMemo } from '@wordpress/element'; import { store as noticesStore } from '@wordpress/notices'; import { privateApis as routerPrivateApis } from '@wordpress/router'; @@ -23,46 +23,55 @@ function useAddNewPageCommand() { 'site-editor.php' ); const history = useHistory(); + const isBlockBasedTheme = useSelect( ( select ) => { + return select( coreStore ).getCurrentTheme()?.is_block_theme; + }, [] ); const { saveEntityRecord } = useDispatch( coreStore ); const { createErrorNotice } = useDispatch( noticesStore ); - const createPageEntity = async ( { close } ) => { - try { - const page = await saveEntityRecord( - 'postType', - 'page', - { - status: 'draft', - }, - { - throwOnError: true, + const createPageEntity = useCallback( + async ( { close } ) => { + try { + const page = await saveEntityRecord( + 'postType', + 'page', + { + status: 'draft', + }, + { + throwOnError: true, + } + ); + if ( page?.id ) { + history.push( { + postId: page.id, + postType: 'page', + canvas: 'edit', + } ); } - ); - if ( page?.id ) { - history.push( { - postId: page.id, - postType: 'page', - canvas: 'edit', + } catch ( error ) { + const errorMessage = + error.message && error.code !== 'unknown_error' + ? error.message + : __( 'An error occurred while creating the item.' ); + + createErrorNotice( errorMessage, { + type: 'snackbar', } ); + } finally { + close(); } - } catch ( error ) { - const errorMessage = - error.message && error.code !== 'unknown_error' - ? error.message - : __( 'An error occurred while creating the item.' ); - - createErrorNotice( errorMessage, { - type: 'snackbar', - } ); - } finally { - close(); - } - }; + }, + [ createErrorNotice, history, saveEntityRecord ] + ); const commands = useMemo( () => { - const addNewPage = isSiteEditor - ? createPageEntity - : () => ( document.location.href = 'post-new.php?post_type=page' ); + const addNewPage = + isSiteEditor && isBlockBasedTheme + ? createPageEntity + : () => + ( document.location.href = + 'post-new.php?post_type=page' ); return [ { name: 'core/add-new-page', @@ -71,7 +80,7 @@ function useAddNewPageCommand() { callback: addNewPage, }, ]; - }, [ createPageEntity, isSiteEditor ] ); + }, [ createPageEntity, isSiteEditor, isBlockBasedTheme ] ); return { isLoading: false, From a851bd2db9d2d79c3edc44c7f66de7c1ed3b77e0 Mon Sep 17 00:00:00 2001 From: James Koster Date: Fri, 20 Sep 2024 17:49:35 +0100 Subject: [PATCH 023/214] Fix grid layout padding on small screens (#64878) Co-authored-by: jameskoster Co-authored-by: jasmussen --- packages/dataviews/src/components/dataviews/style.scss | 1 - packages/dataviews/src/dataviews-layouts/grid/style.scss | 8 ++++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/dataviews/src/components/dataviews/style.scss b/packages/dataviews/src/components/dataviews/style.scss index 8909c7cf1c7cf..aa8fbcfb009c0 100644 --- a/packages/dataviews/src/components/dataviews/style.scss +++ b/packages/dataviews/src/components/dataviews/style.scss @@ -80,7 +80,6 @@ padding: $grid-unit-15 $grid-unit-30; } - .dataviews-view-grid, .dataviews-no-results, .dataviews-loading { padding-left: $grid-unit-30; diff --git a/packages/dataviews/src/dataviews-layouts/grid/style.scss b/packages/dataviews/src/dataviews-layouts/grid/style.scss index 5fab362b0b47b..6286ed94685a0 100644 --- a/packages/dataviews/src/dataviews-layouts/grid/style.scss +++ b/packages/dataviews/src/dataviews-layouts/grid/style.scss @@ -163,3 +163,11 @@ .dataviews-view-grid__card.is-selected .dataviews-selection-checkbox { top: $grid-unit-10; } + +/* stylelint-disable-next-line scss/at-rule-no-unknown -- '@container' not globally permitted */ +@container (max-width: 430px) { + .dataviews-view-grid { + padding-left: $grid-unit-30; + padding-right: $grid-unit-30; + } +} From e4df8fdca45bbb4e36cc471a79ac1098f435b2d5 Mon Sep 17 00:00:00 2001 From: Michal Date: Thu, 19 Sep 2024 22:20:41 +0200 Subject: [PATCH 024/214] DEWP: Handle cyclical module dependencies (#65291) * Add tests for cyclical dependencies * Add the externals and make the test fail * Add cycle detection in dependency path checking Enhanced the dependency resolution logic to detect cycles in the module graph, preventing infinite loops during static dependency path checks. Introduced a Set to track visited blocks and avoid revisiting them. * Revert changes * Propose static WeakSet/WeakMap implementation. * Add CHANGELOG entry * Remove redundant plugin config in test * Revert "Remove redundant plugin config in test" This reverts commit b5e33dbc0e6db4d4aab07de4d52b42ae6b9672ee. * Remove redundant plugin config in test * Updated the snapshot files --------- Co-authored-by: michalczaplinski Co-authored-by: sirreal --- .../CHANGELOG.md | 4 ++ .../lib/index.js | 46 +++++++++++++++++-- .../test/__snapshots__/build.js.snap | 33 +++++++++++++ .../test/fixtures/cyclic-external-deps/a.js | 8 ++++ .../fixtures/cyclic-external-deps/index.js | 18 ++++++++ .../cyclic-external-deps/webpack.config.js | 8 ++++ 6 files changed, 112 insertions(+), 5 deletions(-) create mode 100644 packages/dependency-extraction-webpack-plugin/test/fixtures/cyclic-external-deps/a.js create mode 100644 packages/dependency-extraction-webpack-plugin/test/fixtures/cyclic-external-deps/index.js create mode 100644 packages/dependency-extraction-webpack-plugin/test/fixtures/cyclic-external-deps/webpack.config.js diff --git a/packages/dependency-extraction-webpack-plugin/CHANGELOG.md b/packages/dependency-extraction-webpack-plugin/CHANGELOG.md index 85498d539317f..1c0aa630495a0 100644 --- a/packages/dependency-extraction-webpack-plugin/CHANGELOG.md +++ b/packages/dependency-extraction-webpack-plugin/CHANGELOG.md @@ -2,6 +2,10 @@ ## Unreleased +### Bug Fixes + +- Fix a bug where cycles in dependent modules could enter infinite recursion ([#65291](https://github.com/WordPress/gutenberg/pull/65291)). + ## 6.8.0 (2024-09-19) ## 6.7.0 (2024-09-05) diff --git a/packages/dependency-extraction-webpack-plugin/lib/index.js b/packages/dependency-extraction-webpack-plugin/lib/index.js index 575882a1dfbeb..529fb339d15a1 100644 --- a/packages/dependency-extraction-webpack-plugin/lib/index.js +++ b/packages/dependency-extraction-webpack-plugin/lib/index.js @@ -369,6 +369,9 @@ class DependencyExtractionWebpackPlugin { } } + static #staticDepsCurrent = new WeakSet(); + static #staticDepsCache = new WeakMap(); + /** * Can we trace a line of static dependencies from an entry to a module * @@ -378,6 +381,20 @@ class DependencyExtractionWebpackPlugin { * @return {boolean} True if there is a static import path to the root */ static hasStaticDependencyPathToRoot( compilation, block ) { + if ( DependencyExtractionWebpackPlugin.#staticDepsCache.has( block ) ) { + return DependencyExtractionWebpackPlugin.#staticDepsCache.get( + block + ); + } + + if ( + DependencyExtractionWebpackPlugin.#staticDepsCurrent.has( block ) + ) { + return false; + } + + DependencyExtractionWebpackPlugin.#staticDepsCurrent.add( block ); + const incomingConnections = [ ...compilation.moduleGraph.getIncomingConnections( block ), ].filter( @@ -391,6 +408,13 @@ class DependencyExtractionWebpackPlugin { // If we don't have non-entry, non-library incoming connections, // we've reached a root of if ( ! incomingConnections.length ) { + DependencyExtractionWebpackPlugin.#staticDepsCache.set( + block, + true + ); + DependencyExtractionWebpackPlugin.#staticDepsCurrent.delete( + block + ); return true; } @@ -409,16 +433,28 @@ class DependencyExtractionWebpackPlugin { // All the dependencies were Async, the module was reached via a dynamic import if ( ! staticDependentModules.length ) { + DependencyExtractionWebpackPlugin.#staticDepsCache.set( + block, + false + ); + DependencyExtractionWebpackPlugin.#staticDepsCurrent.delete( + block + ); return false; } // Continue to explore any static dependencies - return staticDependentModules.some( ( parentStaticDependentModule ) => - DependencyExtractionWebpackPlugin.hasStaticDependencyPathToRoot( - compilation, - parentStaticDependentModule - ) + const result = staticDependentModules.some( + ( parentStaticDependentModule ) => + DependencyExtractionWebpackPlugin.hasStaticDependencyPathToRoot( + compilation, + parentStaticDependentModule + ) ); + + DependencyExtractionWebpackPlugin.#staticDepsCache.set( block, result ); + DependencyExtractionWebpackPlugin.#staticDepsCurrent.delete( block ); + return result; } } diff --git a/packages/dependency-extraction-webpack-plugin/test/__snapshots__/build.js.snap b/packages/dependency-extraction-webpack-plugin/test/__snapshots__/build.js.snap index c4b450683572e..903c9658250b1 100644 --- a/packages/dependency-extraction-webpack-plugin/test/__snapshots__/build.js.snap +++ b/packages/dependency-extraction-webpack-plugin/test/__snapshots__/build.js.snap @@ -55,6 +55,21 @@ exports[`DependencyExtractionWebpackPlugin modules Webpack \`cyclic-dynamic-depe ] `; +exports[`DependencyExtractionWebpackPlugin modules Webpack \`cyclic-external-deps\` should produce expected output: Asset file 'main.asset.php' should match snapshot 1`] = ` +" array(array('id' => '@wordpress/interactivity', 'import' => 'dynamic')), 'version' => 'e1033c1bd62e8cb8d4c9', 'type' => 'module'); +" +`; + +exports[`DependencyExtractionWebpackPlugin modules Webpack \`cyclic-external-deps\` should produce expected output: External modules should match snapshot 1`] = ` +[ + { + "externalType": "module", + "request": "@wordpress/interactivity", + "userRequest": "@wordpress/interactivity", + }, +] +`; + exports[`DependencyExtractionWebpackPlugin modules Webpack \`dynamic-import\` should produce expected output: Asset file 'main.asset.php' should match snapshot 1`] = ` " array(array('id' => '@wordpress/blob', 'import' => 'dynamic')), 'version' => '4f59b7847b70a07b2710', 'type' => 'module'); " @@ -419,6 +434,24 @@ exports[`DependencyExtractionWebpackPlugin scripts Webpack \`cyclic-dynamic-depe ] `; +exports[`DependencyExtractionWebpackPlugin scripts Webpack \`cyclic-external-deps\` should produce expected output: Asset file 'main.asset.php' should match snapshot 1`] = ` +" array('wp-interactivity'), 'version' => '455f3cab924853d41b8b'); +" +`; + +exports[`DependencyExtractionWebpackPlugin scripts Webpack \`cyclic-external-deps\` should produce expected output: External modules should match snapshot 1`] = ` +[ + { + "externalType": "window", + "request": [ + "wp", + "interactivity", + ], + "userRequest": "@wordpress/interactivity", + }, +] +`; + exports[`DependencyExtractionWebpackPlugin scripts Webpack \`dynamic-import\` should produce expected output: Asset file 'main.asset.php' should match snapshot 1`] = ` " array('wp-blob'), 'version' => 'c0e8a6f22065ea096606'); " diff --git a/packages/dependency-extraction-webpack-plugin/test/fixtures/cyclic-external-deps/a.js b/packages/dependency-extraction-webpack-plugin/test/fixtures/cyclic-external-deps/a.js new file mode 100644 index 0000000000000..1f0edffe27efd --- /dev/null +++ b/packages/dependency-extraction-webpack-plugin/test/fixtures/cyclic-external-deps/a.js @@ -0,0 +1,8 @@ +/** + * Internal dependencies + */ +import { someFunction } from '.'; + +someFunction(); + +export const a = 'test'; diff --git a/packages/dependency-extraction-webpack-plugin/test/fixtures/cyclic-external-deps/index.js b/packages/dependency-extraction-webpack-plugin/test/fixtures/cyclic-external-deps/index.js new file mode 100644 index 0000000000000..01d7eff466bfb --- /dev/null +++ b/packages/dependency-extraction-webpack-plugin/test/fixtures/cyclic-external-deps/index.js @@ -0,0 +1,18 @@ +/** + * Internal dependencies + */ +import { a } from './a'; + +/** + * WordPress dependencies + */ +import { store } from '@wordpress/interactivity'; + +export const someFunction = () => { + store( 'test', { + state: { + a, + }, + } ); + return a; +}; diff --git a/packages/dependency-extraction-webpack-plugin/test/fixtures/cyclic-external-deps/webpack.config.js b/packages/dependency-extraction-webpack-plugin/test/fixtures/cyclic-external-deps/webpack.config.js new file mode 100644 index 0000000000000..bfffff3ae7831 --- /dev/null +++ b/packages/dependency-extraction-webpack-plugin/test/fixtures/cyclic-external-deps/webpack.config.js @@ -0,0 +1,8 @@ +/** + * Internal dependencies + */ +const DependencyExtractionWebpackPlugin = require( '../../..' ); + +module.exports = { + plugins: [ new DependencyExtractionWebpackPlugin() ], +}; From 969c3a5adb9a1b3c63e9ab52bf498315d246fa53 Mon Sep 17 00:00:00 2001 From: Marin Atanasov <8436925+tyxla@users.noreply.github.com> Date: Thu, 19 Sep 2024 13:18:29 +0300 Subject: [PATCH 025/214] Components: Cleanup unused ToggleGroupControl config values (#65456) Co-authored-by: tyxla Co-authored-by: ciampo --- .../toggle-group-control-option-base/styles.ts | 2 +- packages/components/src/utils/config-values.js | 16 +--------------- 2 files changed, 2 insertions(+), 16 deletions(-) diff --git a/packages/components/src/toggle-group-control/toggle-group-control-option-base/styles.ts b/packages/components/src/toggle-group-control/toggle-group-control-option-base/styles.ts index 86efc5224077f..020468991225c 100644 --- a/packages/components/src/toggle-group-control/toggle-group-control-option-base/styles.ts +++ b/packages/components/src/toggle-group-control/toggle-group-control-option-base/styles.ts @@ -70,7 +70,7 @@ export const buttonView = ( { } &:active { - background: ${ CONFIG.toggleGroupControlBackgroundColor }; + background: ${ CONFIG.controlBackgroundColor }; } ${ isDeselectable && deselectable } diff --git a/packages/components/src/utils/config-values.js b/packages/components/src/utils/config-values.js index 2040f479a231c..1bc3945f9b3b1 100644 --- a/packages/components/src/utils/config-values.js +++ b/packages/components/src/utils/config-values.js @@ -7,18 +7,13 @@ import { COLORS } from './colors-values'; const CONTROL_HEIGHT = '36px'; const CONTROL_PROPS = { - controlSurfaceColor: COLORS.white, - controlTextActiveColor: COLORS.theme.accent, - // These values should be shared with TextControl. controlPaddingX: 12, controlPaddingXSmall: 8, controlPaddingXLarge: 12 * 1.3334, // TODO: Deprecate controlBackgroundColor: COLORS.white, - controlBoxShadow: 'transparent', controlBoxShadowFocus: `0 0 0 0.5px ${ COLORS.theme.accent }`, - controlDestructiveBorderColor: COLORS.alert.red, controlHeight: CONTROL_HEIGHT, controlHeightXSmall: `calc( ${ CONTROL_HEIGHT } * 0.6 )`, controlHeightSmall: `calc( ${ CONTROL_HEIGHT } * 0.8 )`, @@ -26,18 +21,9 @@ const CONTROL_PROPS = { controlHeightXLarge: `calc( ${ CONTROL_HEIGHT } * 1.4 )`, }; -const TOGGLE_GROUP_CONTROL_PROPS = { - toggleGroupControlBackgroundColor: CONTROL_PROPS.controlBackgroundColor, - toggleGroupControlBorderColor: COLORS.ui.border, - toggleGroupControlBackdropBackgroundColor: - CONTROL_PROPS.controlSurfaceColor, - toggleGroupControlBackdropBorderColor: COLORS.ui.border, - toggleGroupControlButtonColorActive: CONTROL_PROPS.controlBackgroundColor, -}; - // Using Object.assign to avoid creating circular references when emitting // TypeScript type declarations. -export default Object.assign( {}, CONTROL_PROPS, TOGGLE_GROUP_CONTROL_PROPS, { +export default Object.assign( {}, CONTROL_PROPS, { colorDivider: 'rgba(0, 0, 0, 0.1)', colorScrollbarThumb: 'rgba(0, 0, 0, 0.2)', colorScrollbarThumbHover: 'rgba(0, 0, 0, 0.5)', From c4b7319ac51e838c2027fc25fbf0a364ada1439f Mon Sep 17 00:00:00 2001 From: Dave Smith Date: Fri, 20 Sep 2024 14:32:45 +0100 Subject: [PATCH 026/214] Decouple "zoom/scaling the canvas" from zoom out mode (without mode rename) (#65482) * Use separate state for Zoom Level Co-authored-by: getdave Co-authored-by: draganescu Co-authored-by: MaggieCabrera # Conflicts: # packages/block-editor/src/components/block-tools/zoom-out-toolbar.js # packages/block-editor/src/components/tool-selector/index.js # packages/block-editor/src/store/reducer.js # packages/edit-site/src/components/global-styles/screen-style-variations.js # packages/editor/src/components/visual-editor/index.js * Refactor useZoomOut hook to use new state # Conflicts: # packages/block-editor/src/hooks/use-zoom-out.js * Use Zoom and Editor Mode in Toggle * Only hide footer when zoom level is set # Conflicts: # packages/editor/src/components/editor-interface/index.js * Adjust double click to exit zoom out mode * Standardise nomenclature * More standardisation of nomenclature * Reduce complexity of state and actions * Fix accidental breakage of Styles panel zoom * Fix hook * Reduce hook to single effect --- packages/block-editor/README.md | 4 +- .../use-block-props/use-zoom-out-mode-exit.js | 10 ++-- .../block-tools/zoom-out-toolbar.js | 7 ++- .../src/components/tool-selector/index.js | 5 +- .../block-editor/src/hooks/use-zoom-out.js | 48 ++++++++----------- .../block-editor/src/store/private-actions.js | 23 +++++++++ .../src/store/private-selectors.js | 20 ++++++++ packages/block-editor/src/store/reducer.js | 20 ++++++++ .../src/components/editor-interface/index.js | 10 ++-- .../src/components/visual-editor/index.js | 14 +++--- .../src/components/zoom-out-toggle/index.js | 23 ++++++--- 11 files changed, 133 insertions(+), 51 deletions(-) diff --git a/packages/block-editor/README.md b/packages/block-editor/README.md index a474d1df7e56d..75d7e8879572d 100644 --- a/packages/block-editor/README.md +++ b/packages/block-editor/README.md @@ -1027,11 +1027,11 @@ _Parameters_ ### useZoomOut -A hook used to set the editor mode to zoomed out mode, invoking the hook sets the mode. +A hook used to set the zoomed out view, invoking the hook sets the mode. _Parameters_ -- _zoomOut_ `boolean`: If we should enter into zoomOut mode or not +- _zoomOut_ `boolean`: If we should zoom out or not. ### Warning diff --git a/packages/block-editor/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js b/packages/block-editor/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js index d0001bd3b33c6..92c54bac9b806 100644 --- a/packages/block-editor/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js +++ b/packages/block-editor/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js @@ -16,14 +16,17 @@ import { unlock } from '../../../lock-unlock'; * @param {string} clientId Block client ID. */ export function useZoomOutModeExit( { editorMode } ) { - const { getSettings } = useSelect( blockEditorStore ); - const { __unstableSetEditorMode } = unlock( + const { getSettings, isZoomOut } = unlock( useSelect( blockEditorStore ) ); + const { __unstableSetEditorMode, resetZoomLevel } = unlock( useDispatch( blockEditorStore ) ); return useRefEffect( ( node ) => { - if ( editorMode !== 'zoom-out' ) { + // In "compose" mode. + const composeMode = editorMode === 'zoom-out' && isZoomOut(); + + if ( ! composeMode ) { return; } @@ -39,6 +42,7 @@ export function useZoomOutModeExit( { editorMode } ) { __experimentalSetIsInserterOpened( false ); } __unstableSetEditorMode( 'edit' ); + resetZoomLevel(); } } diff --git a/packages/block-editor/src/components/block-tools/zoom-out-toolbar.js b/packages/block-editor/src/components/block-tools/zoom-out-toolbar.js index a3c46c4b4c970..2c0ed6b26651f 100644 --- a/packages/block-editor/src/components/block-tools/zoom-out-toolbar.js +++ b/packages/block-editor/src/components/block-tools/zoom-out-toolbar.js @@ -20,6 +20,7 @@ import BlockDraggable from '../block-draggable'; import BlockMover from '../block-mover'; import Shuffle from '../block-toolbar/shuffle'; import NavigableToolbar from '../navigable-toolbar'; +import { unlock } from '../../lock-unlock'; export default function ZoomOutToolbar( { clientId, __unstableContentRef } ) { const selected = useSelect( @@ -84,8 +85,9 @@ export default function ZoomOutToolbar( { clientId, __unstableContentRef } ) { setIsInserterOpened, } = selected; - const { removeBlock, __unstableSetEditorMode } = - useDispatch( blockEditorStore ); + const { removeBlock, __unstableSetEditorMode, resetZoomLevel } = unlock( + useDispatch( blockEditorStore ) + ); const classNames = clsx( 'zoom-out-toolbar', { 'is-block-moving-mode': !! blockMovingMode, @@ -144,6 +146,7 @@ export default function ZoomOutToolbar( { clientId, __unstableContentRef } ) { setIsInserterOpened( false ); } __unstableSetEditorMode( 'edit' ); + resetZoomLevel(); __unstableContentRef.current?.focus(); } } /> diff --git a/packages/block-editor/src/components/tool-selector/index.js b/packages/block-editor/src/components/tool-selector/index.js index 4ec777a911cc7..6c70b3ac04285 100644 --- a/packages/block-editor/src/components/tool-selector/index.js +++ b/packages/block-editor/src/components/tool-selector/index.js @@ -18,6 +18,7 @@ import { Icon, edit as editIcon } from '@wordpress/icons'; * Internal dependencies */ import { store as blockEditorStore } from '../../store'; +import { unlock } from '../../lock-unlock'; const selectIcon = ( select( blockEditorStore ).__unstableGetEditorMode(), [] ); - const { __unstableSetEditorMode } = useDispatch( blockEditorStore ); + const { __unstableSetEditorMode } = unlock( + useDispatch( blockEditorStore ) + ); return ( { // Only set this on mount so we know what to return to when we unmount. - if ( ! originalEditingModeRef.current ) { - originalEditingModeRef.current = mode; + if ( ! originalIsZoomOutRef.current ) { + originalIsZoomOutRef.current = isZoomOut(); } - return () => { - // We need to use __unstableGetEditorMode() here and not `mode`, as mode may not update on unmount - if ( - __unstableGetEditorMode() === 'zoom-out' && - __unstableGetEditorMode() !== originalEditingModeRef.current - ) { - __unstableSetEditorMode( originalEditingModeRef.current ); - } - }; - }, [] ); - - // The effect opens the zoom-out view if we want it open and it's not currently in zoom-out mode. - useEffect( () => { - if ( zoomOut && mode !== 'zoom-out' ) { - __unstableSetEditorMode( 'zoom-out' ); + // The effect opens the zoom-out view if we want it open and the canvas is not currently zoomed-out. + if ( zoomOut && isZoomOut() === false ) { + setZoomLevel( 50 ); } else if ( ! zoomOut && - __unstableGetEditorMode() === 'zoom-out' && - originalEditingModeRef.current !== mode + isZoomOut() && + originalIsZoomOutRef.current !== isZoomOut() ) { - __unstableSetEditorMode( originalEditingModeRef.current ); + setZoomLevel( originalIsZoomOutRef.current ? 50 : 100 ); } - }, [ __unstableGetEditorMode, __unstableSetEditorMode, zoomOut ] ); // Mode is deliberately excluded from the dependencies so that the effect does not run when mode changes. + + return () => { + if ( isZoomOut() && isZoomOut() !== originalIsZoomOutRef.current ) { + setZoomLevel( originalIsZoomOutRef.current ? 50 : 100 ); + } + }; + }, [ isZoomOut, setZoomLevel, zoomOut ] ); } diff --git a/packages/block-editor/src/store/private-actions.js b/packages/block-editor/src/store/private-actions.js index dc57d61fd6b76..441a07202c42a 100644 --- a/packages/block-editor/src/store/private-actions.js +++ b/packages/block-editor/src/store/private-actions.js @@ -383,3 +383,26 @@ export const modifyContentLockBlock = focusModeToRevert ); }; + +/** + * Sets the zoom level. + * + * @param {number} zoom the new zoom level + * @return {Object} Action object. + */ +export function setZoomLevel( zoom = 100 ) { + return { + type: 'SET_ZOOM_LEVEL', + zoom, + }; +} + +/** + * Resets the Zoom state. + * @return {Object} Action object. + */ +export function resetZoomLevel() { + return { + type: 'RESET_ZOOM_LEVEL', + }; +} diff --git a/packages/block-editor/src/store/private-selectors.js b/packages/block-editor/src/store/private-selectors.js index 01ad8f69febc9..e24ae4abb4738 100644 --- a/packages/block-editor/src/store/private-selectors.js +++ b/packages/block-editor/src/store/private-selectors.js @@ -560,3 +560,23 @@ export function isZoomOutMode( state ) { export function getSectionRootClientId( state ) { return state.settings?.[ sectionRootClientIdKey ]; } + +/** + * Returns the zoom out state. + * + * @param {Object} state Global application state. + * @return {boolean} The zoom out state. + */ +export function getZoomLevel( state ) { + return state.zoomLevel; +} + +/** + * Returns whether the editor is considered zoomed out. + * + * @param {Object} state Global application state. + * @return {boolean} Whether the editor is zoomed. + */ +export function isZoomOut( state ) { + return getZoomLevel( state ) < 100; +} diff --git a/packages/block-editor/src/store/reducer.js b/packages/block-editor/src/store/reducer.js index cd4569c45e580..e80c90ffb41f2 100644 --- a/packages/block-editor/src/store/reducer.js +++ b/packages/block-editor/src/store/reducer.js @@ -2085,6 +2085,25 @@ export function hoveredBlockClientId( state = false, action ) { return state; } +/** + * Reducer setting zoom out state. + * + * @param {boolean} state Current state. + * @param {Object} action Dispatched action. + * + * @return {boolean} Updated state. + */ +export function zoomLevel( state = 100, action ) { + switch ( action.type ) { + case 'SET_ZOOM_LEVEL': + return action.zoom; + case 'RESET_ZOOM_LEVEL': + return 100; + } + + return state; +} + const combinedReducers = combineReducers( { blocks, isDragging, @@ -2118,6 +2137,7 @@ const combinedReducers = combineReducers( { openedBlockSettingsMenu, registeredInserterMediaCategories, hoveredBlockClientId, + zoomLevel, } ); function withAutomaticChangeReset( reducer ) { diff --git a/packages/editor/src/components/editor-interface/index.js b/packages/editor/src/components/editor-interface/index.js index 645e5fb6f53a2..0709b91175712 100644 --- a/packages/editor/src/components/editor-interface/index.js +++ b/packages/editor/src/components/editor-interface/index.js @@ -32,6 +32,8 @@ import TextEditor from '../text-editor'; import VisualEditor from '../visual-editor'; import EditorContentSlotFill from './content-slot-fill'; +import { unlock } from '../../lock-unlock'; + const interfaceLabels = { /* translators: accessibility text for the editor top bar landmark region. */ header: __( 'Editor top bar' ), @@ -71,12 +73,13 @@ export default function EditorInterface( { nextShortcut, showBlockBreadcrumbs, documentLabel, - blockEditorMode, + isZoomOut, } = useSelect( ( select ) => { const { get } = select( preferencesStore ); const { getEditorSettings, getPostTypeLabel } = select( editorStore ); const editorSettings = getEditorSettings(); const postTypeLabel = getPostTypeLabel(); + const { isZoomOut: _isZoomOut } = unlock( select( blockEditorStore ) ); return { mode: select( editorStore ).getEditorMode(), @@ -94,8 +97,7 @@ export default function EditorInterface( { showBlockBreadcrumbs: get( 'core', 'showBlockBreadcrumbs' ), // translators: Default label for the Document in the Block Breadcrumb. documentLabel: postTypeLabel || _x( 'Document', 'noun' ), - blockEditorMode: - select( blockEditorStore ).__unstableGetEditorMode(), + isZoomOut: _isZoomOut(), }; }, [] ); const isLargeViewport = useViewportMatch( 'medium' ); @@ -206,7 +208,7 @@ export default function EditorInterface( { isLargeViewport && showBlockBreadcrumbs && isRichEditingEnabled && - blockEditorMode !== 'zoom-out' && + ! isZoomOut && mode === 'visual' && ( ) diff --git a/packages/editor/src/components/visual-editor/index.js b/packages/editor/src/components/visual-editor/index.js index 2ff115272d614..88d2dac8ffd77 100644 --- a/packages/editor/src/components/visual-editor/index.js +++ b/packages/editor/src/components/visual-editor/index.js @@ -174,17 +174,19 @@ function VisualEditor( { hasRootPaddingAwareAlignments, themeHasDisabledLayoutStyles, themeSupportsLayout, - isZoomOutMode, + isZoomedOut, } = useSelect( ( select ) => { - const { getSettings, __unstableGetEditorMode } = - select( blockEditorStore ); + const { getSettings, isZoomOut: _isZoomOut } = unlock( + select( blockEditorStore ) + ); + const _settings = getSettings(); return { themeHasDisabledLayoutStyles: _settings.disableLayoutStyles, themeSupportsLayout: _settings.supportsLayout, hasRootPaddingAwareAlignments: _settings.__experimentalFeatures?.useRootPaddingAwareAlignments, - isZoomOutMode: __unstableGetEditorMode() === 'zoom-out', + isZoomedOut: _isZoomOut(), }; }, [] ); @@ -336,7 +338,7 @@ function VisualEditor( { ] ); const zoomOutProps = - isZoomOutMode && ! isTabletViewport + isZoomedOut && ! isTabletViewport ? { scale: 'default', frameSize: '48px', @@ -355,7 +357,7 @@ function VisualEditor( { // Disable resizing in mobile viewport. ! isMobileViewport && // Dsiable resizing in zoomed-out mode. - ! isZoomOutMode; + ! isZoomedOut; const shouldIframe = ! disableIframe || [ 'Tablet', 'Mobile' ].includes( deviceType ); diff --git a/packages/editor/src/components/zoom-out-toggle/index.js b/packages/editor/src/components/zoom-out-toggle/index.js index e8c7b1e50510a..214b1c51fd625 100644 --- a/packages/editor/src/components/zoom-out-toggle/index.js +++ b/packages/editor/src/components/zoom-out-toggle/index.js @@ -8,16 +8,27 @@ import { useDispatch, useSelect } from '@wordpress/data'; import { store as blockEditorStore } from '@wordpress/block-editor'; import { square as zoomOutIcon } from '@wordpress/icons'; +/** + * Internal dependencies + */ +import { unlock } from '../../lock-unlock'; + const ZoomOutToggle = () => { - const { isZoomOutMode } = useSelect( ( select ) => ( { - isZoomOutMode: - select( blockEditorStore ).__unstableGetEditorMode() === 'zoom-out', + const { isZoomOut } = useSelect( ( select ) => ( { + isZoomOut: unlock( select( blockEditorStore ) ).isZoomOut(), } ) ); - const { __unstableSetEditorMode } = useDispatch( blockEditorStore ); + const { resetZoomLevel, setZoomLevel, __unstableSetEditorMode } = unlock( + useDispatch( blockEditorStore ) + ); const handleZoomOut = () => { - __unstableSetEditorMode( isZoomOutMode ? 'edit' : 'zoom-out' ); + if ( isZoomOut ) { + resetZoomLevel(); + } else { + setZoomLevel( 50 ); + } + __unstableSetEditorMode( isZoomOut ? 'edit' : 'zoom-out' ); }; return ( @@ -25,7 +36,7 @@ const ZoomOutToggle = () => { onClick={ handleZoomOut } icon={ zoomOutIcon } label={ __( 'Toggle Zoom Out' ) } - isPressed={ isZoomOutMode } + isPressed={ isZoomOut } size="compact" /> ); From 9e45522e22211a5ae9e2cc37888f7ce656054379 Mon Sep 17 00:00:00 2001 From: Andrea Fercia Date: Thu, 19 Sep 2024 14:32:37 +0200 Subject: [PATCH 027/214] Make the Settings panel toggle button show its keyboard shortcut in its tooltip (#65322) * Make the Settings panel toggle button show its keyboard shortcut in its tooltip. * Do not pass shortcut prop to PluginSidebar and simplify. Co-authored-by: afercia Co-authored-by: youknowriad --- packages/editor/src/components/plugin-sidebar/index.js | 7 +------ .../src/components/complementary-area-toggle/index.js | 4 ++++ .../interface/src/components/complementary-area/index.js | 1 + 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/editor/src/components/plugin-sidebar/index.js b/packages/editor/src/components/plugin-sidebar/index.js index b9c0177e30fc4..56a954cadffb6 100644 --- a/packages/editor/src/components/plugin-sidebar/index.js +++ b/packages/editor/src/components/plugin-sidebar/index.js @@ -3,7 +3,6 @@ */ import { useSelect } from '@wordpress/data'; import { __ } from '@wordpress/i18n'; -import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts'; import { ComplementaryArea } from '@wordpress/interface'; /** @@ -77,12 +76,9 @@ import { store as editorStore } from '../../store'; * ``` */ export default function PluginSidebar( { className, ...props } ) { - const { postTitle, shortcut } = useSelect( ( select ) => { + const { postTitle } = useSelect( ( select ) => { return { postTitle: select( editorStore ).getEditedPostAttribute( 'title' ), - shortcut: select( - keyboardShortcutsStore - ).getShortcutRepresentation( 'core/editor/toggle-sidebar' ), }; }, [] ); return ( @@ -91,7 +87,6 @@ export default function PluginSidebar( { className, ...props } ) { className="editor-sidebar" smallScreenTitle={ postTitle || __( '(no title)' ) } scope="core" - toggleShortcut={ shortcut } { ...props } /> ); diff --git a/packages/interface/src/components/complementary-area-toggle/index.js b/packages/interface/src/components/complementary-area-toggle/index.js index b6690b7df5fc5..15f9e48d71083 100644 --- a/packages/interface/src/components/complementary-area-toggle/index.js +++ b/packages/interface/src/components/complementary-area-toggle/index.js @@ -17,6 +17,7 @@ function ComplementaryAreaToggle( { icon, selectedIcon, name, + shortcut, ...props } ) { const ComponentToUse = as; @@ -26,8 +27,10 @@ function ComplementaryAreaToggle( { identifier, [ identifier, scope ] ); + const { enableComplementaryArea, disableComplementaryArea } = useDispatch( interfaceStore ); + return ( ); diff --git a/packages/interface/src/components/complementary-area/index.js b/packages/interface/src/components/complementary-area/index.js index 363a6ee9dea76..d9fa8e71acb23 100644 --- a/packages/interface/src/components/complementary-area/index.js +++ b/packages/interface/src/components/complementary-area/index.js @@ -275,6 +275,7 @@ function ComplementaryArea( { showTooltip={ ! showIconLabels } variant={ showIconLabels ? 'tertiary' : undefined } size="compact" + shortcut={ toggleShortcut } /> ) } From d87b39b8031cbf23ebb4e0adda0d4a9f94e1ecda Mon Sep 17 00:00:00 2001 From: Dani Guardiola Date: Thu, 19 Sep 2024 06:41:48 +0200 Subject: [PATCH 028/214] Fix `useResizeObserver` bugs (#65389) * Rename "_legacy" dir to "legacy" * Fix circular dependency issue * Fix bug that caused elements to not be unobserved. * Add changelog * Remove changelog entry Co-authored-by: DaniGuardiola Co-authored-by: jsnajdr Co-authored-by: tyxla --- .../src/hooks/use-resize-observer/index.ts | 45 ++----------------- .../{_legacy => legacy}/index.native.js | 0 .../{_legacy => legacy}/index.tsx | 2 +- .../{_legacy => legacy}/test/index.native.js | 0 .../use-resize-observer.ts | 43 ++++++++++++++++++ 5 files changed, 47 insertions(+), 43 deletions(-) rename packages/compose/src/hooks/use-resize-observer/{_legacy => legacy}/index.native.js (100%) rename packages/compose/src/hooks/use-resize-observer/{_legacy => legacy}/index.tsx (98%) rename packages/compose/src/hooks/use-resize-observer/{_legacy => legacy}/test/index.native.js (100%) create mode 100644 packages/compose/src/hooks/use-resize-observer/use-resize-observer.ts diff --git a/packages/compose/src/hooks/use-resize-observer/index.ts b/packages/compose/src/hooks/use-resize-observer/index.ts index 2a76b2aa6ab59..1bd0f074cc49f 100644 --- a/packages/compose/src/hooks/use-resize-observer/index.ts +++ b/packages/compose/src/hooks/use-resize-observer/index.ts @@ -1,53 +1,14 @@ -/** - * WordPress dependencies - */ -import { useRef } from '@wordpress/element'; /** * Internal dependencies */ -import useEvent from '../use-event'; -import type { ObservedSize } from './_legacy'; -import _useLegacyResizeObserver from './_legacy'; +import { useResizeObserver as _useResizeObserver } from './use-resize-observer'; +import type { ObservedSize } from './legacy'; +import _useLegacyResizeObserver from './legacy'; /** * External dependencies */ import type { ReactElement } from 'react'; -// This is the current implementation of `useResizeObserver`. -// -// The legacy implementation is still supported for backwards compatibility. -// This is achieved by overloading the exported function with both signatures, -// and detecting which API is being used at runtime. -function _useResizeObserver< T extends HTMLElement >( - callback: ResizeObserverCallback, - resizeObserverOptions: ResizeObserverOptions = {} -): ( element?: T | null ) => void { - const callbackEvent = useEvent( callback ); - - const observedElementRef = useRef< T | null >(); - const resizeObserverRef = useRef< ResizeObserver >(); - return useEvent( ( element?: T | null ) => { - if ( element === observedElementRef.current ) { - return; - } - observedElementRef.current = element; - - // Set up `ResizeObserver`. - resizeObserverRef.current ??= new ResizeObserver( callbackEvent ); - const { current: resizeObserver } = resizeObserverRef; - - // Unobserve previous element. - if ( observedElementRef.current ) { - resizeObserver.unobserve( observedElementRef.current ); - } - - // Observe new element. - if ( element ) { - resizeObserver.observe( element, resizeObserverOptions ); - } - } ); -} - /** * Sets up a [`ResizeObserver`](https://developer.mozilla.org/en-US/docs/Web/API/Resize_Observer_API) * for an HTML or SVG element. diff --git a/packages/compose/src/hooks/use-resize-observer/_legacy/index.native.js b/packages/compose/src/hooks/use-resize-observer/legacy/index.native.js similarity index 100% rename from packages/compose/src/hooks/use-resize-observer/_legacy/index.native.js rename to packages/compose/src/hooks/use-resize-observer/legacy/index.native.js diff --git a/packages/compose/src/hooks/use-resize-observer/_legacy/index.tsx b/packages/compose/src/hooks/use-resize-observer/legacy/index.tsx similarity index 98% rename from packages/compose/src/hooks/use-resize-observer/_legacy/index.tsx rename to packages/compose/src/hooks/use-resize-observer/legacy/index.tsx index b44bd84196416..fe76581098222 100644 --- a/packages/compose/src/hooks/use-resize-observer/_legacy/index.tsx +++ b/packages/compose/src/hooks/use-resize-observer/legacy/index.tsx @@ -10,7 +10,7 @@ import { useCallback, useRef, useState } from '@wordpress/element'; /** * Internal dependencies */ -import useResizeObserver from '../index'; +import { useResizeObserver } from '../use-resize-observer'; export type ObservedSize = { width: number | null; diff --git a/packages/compose/src/hooks/use-resize-observer/_legacy/test/index.native.js b/packages/compose/src/hooks/use-resize-observer/legacy/test/index.native.js similarity index 100% rename from packages/compose/src/hooks/use-resize-observer/_legacy/test/index.native.js rename to packages/compose/src/hooks/use-resize-observer/legacy/test/index.native.js diff --git a/packages/compose/src/hooks/use-resize-observer/use-resize-observer.ts b/packages/compose/src/hooks/use-resize-observer/use-resize-observer.ts new file mode 100644 index 0000000000000..4c1031b9839dc --- /dev/null +++ b/packages/compose/src/hooks/use-resize-observer/use-resize-observer.ts @@ -0,0 +1,43 @@ +/** + * WordPress dependencies + */ +import { useRef } from '@wordpress/element'; +/** + * Internal dependencies + */ +import useEvent from '../use-event'; + +// This is the current implementation of `useResizeObserver`. +// +// The legacy implementation is still supported for backwards compatibility. +// This is achieved by overloading the exported function with both signatures, +// and detecting which API is being used at runtime. +export function useResizeObserver< T extends HTMLElement >( + callback: ResizeObserverCallback, + resizeObserverOptions: ResizeObserverOptions = {} +): ( element?: T | null ) => void { + const callbackEvent = useEvent( callback ); + + const observedElementRef = useRef< T | null >(); + const resizeObserverRef = useRef< ResizeObserver >(); + return useEvent( ( element?: T | null ) => { + if ( element === observedElementRef.current ) { + return; + } + + // Set up `ResizeObserver`. + resizeObserverRef.current ??= new ResizeObserver( callbackEvent ); + const { current: resizeObserver } = resizeObserverRef; + + // Unobserve previous element. + if ( observedElementRef.current ) { + resizeObserver.unobserve( observedElementRef.current ); + } + + // Observe new element. + observedElementRef.current = element; + if ( element ) { + resizeObserver.observe( element, resizeObserverOptions ); + } + } ); +} From eae0c806636f17a308b803930b6327a80b3ce91f Mon Sep 17 00:00:00 2001 From: Hit Bhalodia <58802366+hbhalodia@users.noreply.github.com> Date: Thu, 19 Sep 2024 14:46:45 +0530 Subject: [PATCH 029/214] Fix: Button: Replace remaining 40px default size violation [Edit Site 1] (#65226) * Fix custom template modal button suggestion list to use default 40px button height * Fix the add new template modal item button to use 40px default size * Fix editor canvas close button to use 40px default button size * Fix add the editor index back button for edit site to use 40px default size * Fix the copy error button size for error boundry warning to use 40px default size Co-authored-by: hbhalodia Co-authored-by: mirka <0mirka00@git.wordpress.org> --- .../add-new-template/add-custom-template-modal-content.js | 3 +-- .../edit-site/src/components/add-new-template/index.js | 3 +-- .../src/components/editor-canvas-container/index.js | 3 +-- packages/edit-site/src/components/editor/index.js | 3 +-- .../edit-site/src/components/error-boundary/warning.js | 7 +------ 5 files changed, 5 insertions(+), 14 deletions(-) diff --git a/packages/edit-site/src/components/add-new-template/add-custom-template-modal-content.js b/packages/edit-site/src/components/add-new-template/add-custom-template-modal-content.js index 4993f12153b9e..69f1925c7b0e4 100644 --- a/packages/edit-site/src/components/add-new-template/add-custom-template-modal-content.js +++ b/packages/edit-site/src/components/add-new-template/add-custom-template-modal-content.js @@ -36,8 +36,7 @@ function SuggestionListItem( { diff --git a/packages/edit-site/src/components/add-new-template/index.js b/packages/edit-site/src/components/add-new-template/index.js index 933ea6df1198b..bb0acbe62cd65 100644 --- a/packages/edit-site/src/components/add-new-template/index.js +++ b/packages/edit-site/src/components/add-new-template/index.js @@ -107,8 +107,7 @@ function TemplateListItem( { } ) { return ( { dataview.count } - } type={ dataview.view.type } isActive={ ! isCustomBoolean && diff --git a/packages/edit-site/src/components/sidebar-dataviews/style.scss b/packages/edit-site/src/components/sidebar-dataviews/style.scss index 3473c8e20e1a4..14e6bf1d03fca 100644 --- a/packages/edit-site/src/components/sidebar-dataviews/style.scss +++ b/packages/edit-site/src/components/sidebar-dataviews/style.scss @@ -15,10 +15,6 @@ min-width: initial; } - .edit-site-sidebar-navigation-item.with-suffix { - padding-right: $grid-unit-10; - } - &:hover, &:focus, &[aria-current] { From 4081b90f28e5d26e8b04b0a7c1e0150930ad678f Mon Sep 17 00:00:00 2001 From: Carolina Nymark Date: Wed, 25 Sep 2024 05:28:41 +0200 Subject: [PATCH 039/214] Query loop format controls: Fix JavaScript error (#65551) Fixes a JavaScript error in FormatControls by ensuring that the correct constant is used when populating the suggestions in the FormTokenField. Co-authored-by: carolinan Co-authored-by: Mamaduka Co-authored-by: annezazu --- .../src/query/edit/inspector-controls/format-controls.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/block-library/src/query/edit/inspector-controls/format-controls.js b/packages/block-library/src/query/edit/inspector-controls/format-controls.js index d26fd9d81ce6f..15c95f3bbba2e 100644 --- a/packages/block-library/src/query/edit/inspector-controls/format-controls.js +++ b/packages/block-library/src/query/edit/inspector-controls/format-controls.js @@ -68,7 +68,7 @@ export default function FormatControls( { onChange, query: { format } } ) { .filter( Boolean ); const suggestions = formats - .filter( ( item ) => ! format.includes( item.value ) ) + .filter( ( item ) => ! normalizedFormats.includes( item.value ) ) .map( ( item ) => item.label ); return ( From 592d7170da6e707e119b8eb993365c84f82bafa7 Mon Sep 17 00:00:00 2001 From: Mario Santos <34552881+SantosGuillamot@users.noreply.github.com> Date: Wed, 25 Sep 2024 15:26:12 +0200 Subject: [PATCH 040/214] Block Bindings: Unify logic in `getPostMetaFields` function (#65462) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Move logic to `getPostMetaFields` function * Update comment to use third-person Co-authored-by: Greg Ziółkowski * Remove extra space from comment object Co-authored-by: Greg Ziółkowski * Use props variable --------- Co-authored-by: SantosGuillamot Co-authored-by: gziolo --- packages/editor/src/bindings/post-meta.js | 107 ++++++++++++---------- 1 file changed, 58 insertions(+), 49 deletions(-) diff --git a/packages/editor/src/bindings/post-meta.js b/packages/editor/src/bindings/post-meta.js index 572cd0b525a00..fae010e72d1c8 100644 --- a/packages/editor/src/bindings/post-meta.js +++ b/packages/editor/src/bindings/post-meta.js @@ -9,26 +9,65 @@ import { store as coreDataStore } from '@wordpress/core-data'; import { store as editorStore } from '../store'; import { unlock } from '../lock-unlock'; -function getMetadata( registry, context, registeredFields ) { - let metaFields = {}; - const type = registry.select( editorStore ).getCurrentPostType(); +/** + * Gets a list of post meta fields with their values and labels + * to be consumed in the needed callbacks. + * If the value is not available based on context, like in templates, + * it falls back to the default value, label, or key. + * + * @param {Object} registry The registry context exposed through `useRegistry`. + * @param {Object} context The context provided. + * @return {Object} List of post meta fields with their value and label. + * + * @example + * ```js + * { + * field_1_key: { + * label: 'Field 1 Label', + * value: 'Field 1 Value', + * }, + * field_2_key: { + * label: 'Field 2 Label', + * value: 'Field 2 Value', + * }, + * ... + * } + * ``` + */ +function getPostMetaFields( registry, context ) { const { getEditedEntityRecord } = registry.select( coreDataStore ); + const { getRegisteredPostMeta } = unlock( + registry.select( coreDataStore ) + ); + let entityMetaValues; + // Try to get the current entity meta values. if ( context?.postType && context?.postId ) { - metaFields = getEditedEntityRecord( + entityMetaValues = getEditedEntityRecord( 'postType', context?.postType, context?.postId ).meta; - } else if ( type === 'wp_template' ) { - // Populate the `metaFields` object with the default values. - Object.entries( registeredFields || {} ).forEach( - ( [ key, props ] ) => { - if ( props.default ) { - metaFields[ key ] = props.default; - } - } - ); + } + + const registeredFields = getRegisteredPostMeta( context?.postType ); + const metaFields = {}; + Object.entries( registeredFields || {} ).forEach( ( [ key, props ] ) => { + // Don't include footnotes or private fields. + if ( key !== 'footnotes' && key.charAt( 0 ) !== '_' ) { + metaFields[ key ] = { + label: props.title || key, + value: + // When using the entity value, an empty string IS a valid value. + entityMetaValues?.[ key ] ?? + // When using the default, an empty string IS NOT a valid value. + ( props.default || undefined ), + }; + } + } ); + + if ( ! Object.keys( metaFields || {} ).length ) { + return null; } return metaFields; @@ -37,20 +76,15 @@ function getMetadata( registry, context, registeredFields ) { export default { name: 'core/post-meta', getValues( { registry, context, bindings } ) { - const { getRegisteredPostMeta } = unlock( - registry.select( coreDataStore ) - ); - const registeredFields = getRegisteredPostMeta( context?.postType ); - const metaFields = getMetadata( registry, context, registeredFields ); + const metaFields = getPostMetaFields( registry, context ); const newValues = {}; for ( const [ attributeName, source ] of Object.entries( bindings ) ) { // Use the value, the field label, or the field key. - const metaKey = source.args.key; - newValues[ attributeName ] = - metaFields?.[ metaKey ] ?? - registeredFields?.[ metaKey ]?.title ?? - metaKey; + const fieldKey = source.args.key; + const { value: fieldValue, label: fieldLabel } = + metaFields?.[ fieldKey ] || {}; + newValues[ attributeName ] = fieldValue ?? fieldLabel ?? fieldKey; } return newValues; }, @@ -110,31 +144,6 @@ export default { return true; }, getFieldsList( { registry, context } ) { - const { getRegisteredPostMeta } = unlock( - registry.select( coreDataStore ) - ); - const registeredFields = getRegisteredPostMeta( context?.postType ); - const metaFields = getMetadata( registry, context, registeredFields ); - - if ( ! metaFields || ! Object.keys( metaFields ).length ) { - return null; - } - - return Object.fromEntries( - Object.entries( metaFields ) - // Remove footnotes or private keys from the list of fields. - .filter( - ( [ key ] ) => - key !== 'footnotes' && key.charAt( 0 ) !== '_' - ) - // Return object with label and value. - .map( ( [ key, value ] ) => [ - key, - { - label: registeredFields?.[ key ]?.title || key, - value, - }, - ] ) - ); + return getPostMetaFields( registry, context ); }, }; From 31de2633b5db147903aec7c11f461f36c837768e Mon Sep 17 00:00:00 2001 From: Mario Santos <34552881+SantosGuillamot@users.noreply.github.com> Date: Wed, 25 Sep 2024 16:15:18 +0200 Subject: [PATCH 041/214] Only pass context included in `usesContext` from block bindings (#65618) - Only pass context included in `usesContext` Co-authored-by: SantosGuillamot Co-authored-by: gziolo --- .../block-editor/src/components/rich-text/index.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/block-editor/src/components/rich-text/index.js b/packages/block-editor/src/components/rich-text/index.js index 9c67476ed0ea6..46ddb2b70a113 100644 --- a/packages/block-editor/src/components/rich-text/index.js +++ b/packages/block-editor/src/components/rich-text/index.js @@ -179,11 +179,17 @@ export function RichTextWrapper( const blockBindingsSource = getBlockBindingsSource( relatedBinding.source ); + const blockBindingsContext = {}; + if ( blockBindingsSource?.usesContext?.length ) { + for ( const key of blockBindingsSource.usesContext ) { + blockBindingsContext[ key ] = blockContext[ key ]; + } + } const _disableBoundBlock = ! blockBindingsSource?.canUserEditValue?.( { select, - context: blockContext, + context: blockBindingsContext, args: relatedBinding.args, } ); @@ -201,7 +207,7 @@ export function RichTextWrapper( const blockAttributes = getBlockAttributes( clientId ); const fieldsList = blockBindingsSource?.getFieldsList?.( { registry, - context: blockContext, + context: blockBindingsContext, } ); const bindingKey = fieldsList?.[ relatedBinding?.args?.key ]?.label ?? From 5237aacfe0c183eb37e6cb857190295b236dcff2 Mon Sep 17 00:00:00 2001 From: Aki Hamano <54422211+t-hamano@users.noreply.github.com> Date: Thu, 26 Sep 2024 01:23:04 +0900 Subject: [PATCH 042/214] Zoom out: Reset zoom out level when device type is changed (#65652) Co-authored-by: t-hamano Co-authored-by: draganescu Co-authored-by: AhmarZaidi --- packages/editor/src/components/preview-dropdown/index.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/editor/src/components/preview-dropdown/index.js b/packages/editor/src/components/preview-dropdown/index.js index 38565f4b04abe..0fbb2beb62665 100644 --- a/packages/editor/src/components/preview-dropdown/index.js +++ b/packages/editor/src/components/preview-dropdown/index.js @@ -28,6 +28,7 @@ import { ActionItem } from '@wordpress/interface'; import { store as editorStore } from '../../store'; import { store as blockEditorStore } from '@wordpress/block-editor'; import PostPreviewButton from '../post-preview-button'; +import { unlock } from '../../lock-unlock'; export default function PreviewDropdown( { forceIsAutosaveable, disabled } ) { const { deviceType, homeUrl, isTemplate, isViewable, showIconLabels } = @@ -46,10 +47,12 @@ export default function PreviewDropdown( { forceIsAutosaveable, disabled } ) { }, [] ); const { setDeviceType } = useDispatch( editorStore ); const { __unstableSetEditorMode } = useDispatch( blockEditorStore ); + const { resetZoomLevel } = unlock( useDispatch( blockEditorStore ) ); const handleDevicePreviewChange = ( newDeviceType ) => { setDeviceType( newDeviceType ); __unstableSetEditorMode( 'edit' ); + resetZoomLevel(); }; const isMobile = useViewportMatch( 'medium', '<' ); From a5c346f269dcd07b32c0a60587848b3bbffd4117 Mon Sep 17 00:00:00 2001 From: Mario Santos <34552881+SantosGuillamot@users.noreply.github.com> Date: Wed, 25 Sep 2024 18:46:33 +0200 Subject: [PATCH 043/214] Use `registry` instead of `select` in `canUserEditValue` (#65659) --- .../src/components/rich-text/index.js | 2 +- packages/block-library/src/button/edit.js | 5 +-- packages/block-library/src/image/edit.js | 5 +-- packages/block-library/src/image/image.js | 9 +++--- packages/editor/src/bindings/post-meta.js | 32 +++++++++++-------- 5 files changed, 30 insertions(+), 23 deletions(-) diff --git a/packages/block-editor/src/components/rich-text/index.js b/packages/block-editor/src/components/rich-text/index.js index 46ddb2b70a113..1a412a3b2d7eb 100644 --- a/packages/block-editor/src/components/rich-text/index.js +++ b/packages/block-editor/src/components/rich-text/index.js @@ -188,7 +188,7 @@ export function RichTextWrapper( const _disableBoundBlock = ! blockBindingsSource?.canUserEditValue?.( { - select, + registry, context: blockBindingsContext, args: relatedBinding.args, } ); diff --git a/packages/block-library/src/button/edit.js b/packages/block-library/src/button/edit.js index d7b8e6486c3c6..2749199d1092a 100644 --- a/packages/block-library/src/button/edit.js +++ b/packages/block-library/src/button/edit.js @@ -48,7 +48,7 @@ import { store as blocksStore, } from '@wordpress/blocks'; import { useMergeRefs, useRefEffect } from '@wordpress/compose'; -import { useSelect, useDispatch } from '@wordpress/data'; +import { useSelect, useDispatch, useRegistry } from '@wordpress/data'; const LINK_SETTINGS = [ ...LinkControl.DEFAULT_LINK_SETTINGS, @@ -190,6 +190,7 @@ function ButtonEdit( props ) { const colorProps = useColorProps( attributes ); const spacingProps = useSpacingProps( attributes ); const shadowProps = useShadowProps( attributes ); + const registry = useRegistry(); const ref = useRef(); const richTextRef = useRef(); const blockProps = useBlockProps( { @@ -248,7 +249,7 @@ function ButtonEdit( props ) { lockUrlControls: !! metadata?.bindings?.url && ! blockBindingsSource?.canUserEditValue?.( { - select, + registry, context, args: metadata?.bindings?.url?.args, } ), diff --git a/packages/block-library/src/image/edit.js b/packages/block-library/src/image/edit.js index d44dc73abfd85..454b49dfb58b3 100644 --- a/packages/block-library/src/image/edit.js +++ b/packages/block-library/src/image/edit.js @@ -9,7 +9,7 @@ import clsx from 'clsx'; import { isBlobURL, createBlobURL } from '@wordpress/blob'; import { store as blocksStore, createBlock } from '@wordpress/blocks'; import { Placeholder } from '@wordpress/components'; -import { useDispatch, useSelect } from '@wordpress/data'; +import { useDispatch, useSelect, useRegistry } from '@wordpress/data'; import { BlockIcon, useBlockProps, @@ -113,6 +113,7 @@ export function ImageEdit( { const [ temporaryURL, setTemporaryURL ] = useState( attributes.blob ); + const registry = useRegistry(); const containerRef = useRef(); // Only observe the max width from the parent container when the parent layout is not flex nor grid. // This won't work for them because the container width changes with the image. @@ -380,7 +381,7 @@ export function ImageEdit( { lockUrlControls: !! metadata?.bindings?.url && ! blockBindingsSource?.canUserEditValue?.( { - select, + registry, context, args: metadata?.bindings?.url?.args, } ), diff --git a/packages/block-library/src/image/image.js b/packages/block-library/src/image/image.js index 1673d36e463d5..f0d2f00a68d53 100644 --- a/packages/block-library/src/image/image.js +++ b/packages/block-library/src/image/image.js @@ -17,7 +17,7 @@ import { Placeholder, } from '@wordpress/components'; import { useViewportMatch } from '@wordpress/compose'; -import { useSelect, useDispatch } from '@wordpress/data'; +import { useSelect, useDispatch, useRegistry } from '@wordpress/data'; import { BlockControls, InspectorControls, @@ -134,6 +134,7 @@ export default function Image( { const numericWidth = width ? parseInt( width, 10 ) : undefined; const numericHeight = height ? parseInt( height, 10 ) : undefined; + const registry = useRegistry(); const imageRef = useRef(); const { allowResize = true } = context; const { getBlock, getSettings } = useSelect( blockEditorStore ); @@ -496,7 +497,7 @@ export default function Image( { lockUrlControls: !! urlBinding && ! urlBindingSource?.canUserEditValue?.( { - select, + registry, context, args: urlBinding?.args, } ), @@ -511,7 +512,7 @@ export default function Image( { lockAltControls: !! altBinding && ! altBindingSource?.canUserEditValue?.( { - select, + registry, context, args: altBinding?.args, } ), @@ -525,7 +526,7 @@ export default function Image( { lockTitleControls: !! titleBinding && ! titleBindingSource?.canUserEditValue?.( { - select, + registry, context, args: titleBinding?.args, } ), diff --git a/packages/editor/src/bindings/post-meta.js b/packages/editor/src/bindings/post-meta.js index fae010e72d1c8..4cd05f594daf7 100644 --- a/packages/editor/src/bindings/post-meta.js +++ b/packages/editor/src/bindings/post-meta.js @@ -99,14 +99,15 @@ export default { meta: newMeta, } ); }, - canUserEditValue( { select, context, args } ) { + canUserEditValue( { registry, context, args } ) { // Lock editing in query loop. if ( context?.query || context?.queryId ) { return false; } const postType = - context?.postType || select( editorStore ).getCurrentPostType(); + context?.postType || + registry.select( editorStore ).getCurrentPostType(); // Check that editing is happening in the post editor and not a template. if ( postType === 'wp_template' ) { @@ -115,28 +116,31 @@ export default { // Check that the custom field is not protected and available in the REST API. // Empty string or `false` could be a valid value, so we need to check if the field value is undefined. - const fieldValue = select( coreDataStore ).getEntityRecord( - 'postType', - postType, - context?.postId - )?.meta?.[ args.key ]; + const fieldValue = registry + .select( coreDataStore ) + .getEntityRecord( 'postType', postType, context?.postId )?.meta?.[ + args.key + ]; if ( fieldValue === undefined ) { return false; } // Check that custom fields metabox is not enabled. - const areCustomFieldsEnabled = - select( editorStore ).getEditorSettings().enableCustomFields; + const areCustomFieldsEnabled = registry + .select( editorStore ) + .getEditorSettings().enableCustomFields; if ( areCustomFieldsEnabled ) { return false; } // Check that the user has the capability to edit post meta. - const canUserEdit = select( coreDataStore ).canUser( 'update', { - kind: 'postType', - name: context?.postType, - id: context?.postId, - } ); + const canUserEdit = registry + .select( coreDataStore ) + .canUser( 'update', { + kind: 'postType', + name: context?.postType, + id: context?.postId, + } ); if ( ! canUserEdit ) { return false; } From ab2e860f0dee2b9ee662f44efce3c4236becd2c8 Mon Sep 17 00:00:00 2001 From: Mario Santos <34552881+SantosGuillamot@users.noreply.github.com> Date: Wed, 25 Sep 2024 19:32:10 +0200 Subject: [PATCH 044/214] Block Bindings: Fix editing protected custom fields in block bindings (#65658) * Use `getPostMetaFields` in `canUserEditValue` * Add e2e test Co-authored-by: SantosGuillamot Co-authored-by: cbravobernal --- packages/e2e-tests/plugins/block-bindings.php | 7 ++--- packages/editor/src/bindings/post-meta.js | 9 ++----- .../editor/various/block-bindings.spec.js | 27 +++++++++++++++++++ 3 files changed, 33 insertions(+), 10 deletions(-) diff --git a/packages/e2e-tests/plugins/block-bindings.php b/packages/e2e-tests/plugins/block-bindings.php index 8951255d516bf..0629a39728602 100644 --- a/packages/e2e-tests/plugins/block-bindings.php +++ b/packages/e2e-tests/plugins/block-bindings.php @@ -55,9 +55,10 @@ function gutenberg_test_block_bindings_registration() { 'post', '_protected_field', array( - 'type' => 'string', - 'single' => true, - 'default' => 'protected field value', + 'type' => 'string', + 'show_in_rest' => true, + 'single' => true, + 'default' => 'protected field value', ) ); register_meta( diff --git a/packages/editor/src/bindings/post-meta.js b/packages/editor/src/bindings/post-meta.js index 4cd05f594daf7..267d01003b80c 100644 --- a/packages/editor/src/bindings/post-meta.js +++ b/packages/editor/src/bindings/post-meta.js @@ -114,14 +114,9 @@ export default { return false; } - // Check that the custom field is not protected and available in the REST API. + const fieldValue = getPostMetaFields( registry, context )?.[ args.key ] + ?.value; // Empty string or `false` could be a valid value, so we need to check if the field value is undefined. - const fieldValue = registry - .select( coreDataStore ) - .getEntityRecord( 'postType', postType, context?.postId )?.meta?.[ - args.key - ]; - if ( fieldValue === undefined ) { return false; } diff --git a/test/e2e/specs/editor/various/block-bindings.spec.js b/test/e2e/specs/editor/various/block-bindings.spec.js index 010d173e760ca..f172a424bb172 100644 --- a/test/e2e/specs/editor/various/block-bindings.spec.js +++ b/test/e2e/specs/editor/various/block-bindings.spec.js @@ -2390,6 +2390,33 @@ test.describe( 'Block bindings', () => { previewPage.locator( '#image-alt-binding img' ) ).toHaveAttribute( 'alt', 'new value' ); } ); + + test( 'should not be possible to edit the value of the protected custom fields', async ( { + editor, + } ) => { + await editor.insertBlock( { + name: 'core/paragraph', + attributes: { + content: 'paragraph default content', + metadata: { + bindings: { + content: { + source: 'core/post-meta', + args: { key: '_protected_field' }, + }, + }, + }, + }, + } ); + const paragraphBlock = editor.canvas.getByRole( 'document', { + name: 'Block: Paragraph', + } ); + + await expect( paragraphBlock ).toHaveAttribute( + 'contenteditable', + 'false' + ); + } ); } ); } ); From 353c87f6850e40f4eb694b13733e9013a618c5a4 Mon Sep 17 00:00:00 2001 From: Mario Santos <34552881+SantosGuillamot@users.noreply.github.com> Date: Wed, 25 Sep 2024 20:01:37 +0200 Subject: [PATCH 045/214] Block Bindings: Fix showing bindings field values in theme templates (#65639) * Move `is_custom` check to page case * Check themeSlug in conditional * Use `post.slug` directly Co-authored-by: SantosGuillamot Co-authored-by: cbravobernal --- .../editor/src/components/provider/index.js | 33 ++++++++----------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/packages/editor/src/components/provider/index.js b/packages/editor/src/components/provider/index.js index 11b1478d58434..0c45dbc5e7199 100644 --- a/packages/editor/src/components/provider/index.js +++ b/packages/editor/src/components/provider/index.js @@ -188,26 +188,19 @@ export const ExperimentalEditorProvider = withRegistryProvider( const postContext = {}; // If it is a template, try to inherit the post type from the slug. if ( post.type === 'wp_template' ) { - if ( ! post.is_custom ) { - const [ kind ] = post.slug.split( '-' ); - switch ( kind ) { - case 'page': - postContext.postType = 'page'; - break; - case 'single': - // Infer the post type from the slug. - const postTypesSlugs = - postTypes?.map( ( entity ) => entity.slug ) || - []; - const match = post.slug.match( - `^single-(${ postTypesSlugs.join( - '|' - ) })(?:-.+)?$` - ); - if ( match ) { - postContext.postType = match[ 1 ]; - } - break; + if ( post.slug === 'page' ) { + postContext.postType = 'page'; + } else if ( post.slug === 'single' ) { + postContext.postType = 'post'; + } else if ( post.slug.split( '-' )[ 0 ] === 'single' ) { + // If the slug is single-{postType}, infer the post type from the slug. + const postTypesSlugs = + postTypes?.map( ( entity ) => entity.slug ) || []; + const match = post.slug.match( + `^single-(${ postTypesSlugs.join( '|' ) })(?:-.+)?$` + ); + if ( match ) { + postContext.postType = match[ 1 ]; } } } else if ( From 2f96654963556e558bbe878a09d0ff79c358c684 Mon Sep 17 00:00:00 2001 From: Brad Jorsch Date: Wed, 25 Sep 2024 15:02:06 -0400 Subject: [PATCH 046/214] DEWP: Check for magic comments before minification (#65582) Look for magic wp:polyfill comments before minification. Avoids having to configure Terser to preserve these comments, and also avoids having them in the minified JS. Minifiers run in the processAssets hook at the `PROCESS_ASSETS_STAGE_OPTIMIZE_SIZE` stage. If we hook at the `PROCESS_ASSETS_STAGE_OPTIMIZE_COMPATIBILITY` stage to check for the magic comments, we don't have to worry about configuring Terser to preserve them (and won't have to have them making the output slightly larger either). --------- Co-authored-by: anomiex Co-authored-by: gziolo Co-authored-by: sirreal Co-authored-by: sgomes --- .../CHANGELOG.md | 4 ++ .../lib/index.js | 71 ++++++++++++++++++- .../test/__snapshots__/build.js.snap | 14 ++++ .../polyfill-magic-comment-minified/index.js | 3 + .../webpack.config.js | 11 +++ tools/webpack/shared.js | 2 +- 6 files changed, 101 insertions(+), 4 deletions(-) create mode 100644 packages/dependency-extraction-webpack-plugin/test/fixtures/polyfill-magic-comment-minified/index.js create mode 100644 packages/dependency-extraction-webpack-plugin/test/fixtures/polyfill-magic-comment-minified/webpack.config.js diff --git a/packages/dependency-extraction-webpack-plugin/CHANGELOG.md b/packages/dependency-extraction-webpack-plugin/CHANGELOG.md index 1c0aa630495a0..7c8f74d2906fe 100644 --- a/packages/dependency-extraction-webpack-plugin/CHANGELOG.md +++ b/packages/dependency-extraction-webpack-plugin/CHANGELOG.md @@ -2,6 +2,10 @@ ## Unreleased +### Enhancements + +- Detection of magic comments is now done before minification ([#65582](https://github.com/WordPress/gutenberg/pull/65582)). + ### Bug Fixes - Fix a bug where cycles in dependent modules could enter infinite recursion ([#65291](https://github.com/WordPress/gutenberg/pull/65291)). diff --git a/packages/dependency-extraction-webpack-plugin/lib/index.js b/packages/dependency-extraction-webpack-plugin/lib/index.js index 529fb339d15a1..cf780d7370dcf 100644 --- a/packages/dependency-extraction-webpack-plugin/lib/index.js +++ b/packages/dependency-extraction-webpack-plugin/lib/index.js @@ -162,6 +162,14 @@ class DependencyExtractionWebpackPlugin { compiler.hooks.thisCompilation.tap( this.constructor.name, ( compilation ) => { + compilation.hooks.processAssets.tap( + { + name: this.constructor.name, + stage: compiler.webpack.Compilation + .PROCESS_ASSETS_STAGE_OPTIMIZE_COMPATIBILITY, + }, + () => this.checkForMagicComments( compilation ) + ); compilation.hooks.processAssets.tap( { name: this.constructor.name, @@ -174,6 +182,60 @@ class DependencyExtractionWebpackPlugin { ); } + /** + * Check for magic comments before minification, so minification doesn't have to preserve them. + * @param {webpack.Compilation} compilation + */ + checkForMagicComments( compilation ) { + // Accumulate all entrypoint chunks, some of them shared + const entrypointChunks = new Set(); + for ( const entrypoint of compilation.entrypoints.values() ) { + for ( const chunk of entrypoint.chunks ) { + entrypointChunks.add( chunk ); + } + } + + // Process each entrypoint chunk independently + for ( const chunk of entrypointChunks ) { + const chunkFiles = Array.from( chunk.files ); + + const jsExtensionRegExp = this.useModules ? /\.m?js$/i : /\.js$/i; + + const chunkJSFile = chunkFiles.find( ( f ) => + jsExtensionRegExp.test( f ) + ); + if ( ! chunkJSFile ) { + // There's no JS file in this chunk, no work for us. Typically a `style.css` from cache group. + continue; + } + + // Prepare to look for magic comments, in order to decide whether + // `wp-polyfill` is needed. + const processContentsForMagicComments = ( content ) => { + const magicComments = []; + + if ( content.includes( '/* wp:polyfill */' ) ) { + magicComments.push( 'wp-polyfill' ); + } + + return magicComments; + }; + + // Go through the assets to process the sources. + // This allows us to look for magic comments. + chunkFiles.sort().forEach( ( filename ) => { + const asset = compilation.getAsset( filename ); + const content = asset.source.buffer(); + + const wpMagicComments = + processContentsForMagicComments( content ); + compilation.updateAsset( filename, ( v ) => v, { + wpMagicComments, + } ); + } ); + } + } + /** @param {webpack.Compilation} compilation */ addAssets( compilation ) { const { @@ -286,8 +348,11 @@ class DependencyExtractionWebpackPlugin { // Prepare to look for magic comments, in order to decide whether // `wp-polyfill` is needed. - const processContentsForMagicComments = ( content ) => { - if ( content.includes( '/* wp:polyfill */' ) ) { + const handleMagicComments = ( info ) => { + if ( ! info ) { + return; + } + if ( info.includes( 'wp-polyfill' ) ) { chunkStaticDeps.add( 'wp-polyfill' ); } }; @@ -299,7 +364,7 @@ class DependencyExtractionWebpackPlugin { const content = asset.source.buffer(); processContentsForHash( content ); - processContentsForMagicComments( content ); + handleMagicComments( asset.info.wpMagicComments ); } ); // Finalise hash. diff --git a/packages/dependency-extraction-webpack-plugin/test/__snapshots__/build.js.snap b/packages/dependency-extraction-webpack-plugin/test/__snapshots__/build.js.snap index 903c9658250b1..f0d418851103b 100644 --- a/packages/dependency-extraction-webpack-plugin/test/__snapshots__/build.js.snap +++ b/packages/dependency-extraction-webpack-plugin/test/__snapshots__/build.js.snap @@ -257,6 +257,13 @@ exports[`DependencyExtractionWebpackPlugin modules Webpack \`polyfill-magic-comm exports[`DependencyExtractionWebpackPlugin modules Webpack \`polyfill-magic-comment\` should produce expected output: External modules should match snapshot 1`] = `[]`; +exports[`DependencyExtractionWebpackPlugin modules Webpack \`polyfill-magic-comment-minified\` should produce expected output: Asset file 'main.asset.php' should match snapshot 1`] = ` +" array('wp-polyfill'), 'version' => '31d6cfe0d16ae931b73c', 'type' => 'module'); +" +`; + +exports[`DependencyExtractionWebpackPlugin modules Webpack \`polyfill-magic-comment-minified\` should produce expected output: External modules should match snapshot 1`] = `[]`; + exports[`DependencyExtractionWebpackPlugin modules Webpack \`runtime-chunk-single\` should produce expected output: Asset file 'a.asset.php' should match snapshot 1`] = ` " array('@wordpress/blob'), 'version' => 'a1906cfc819b623c86f8', 'type' => 'module'); " @@ -666,6 +673,13 @@ exports[`DependencyExtractionWebpackPlugin scripts Webpack \`polyfill-magic-comm exports[`DependencyExtractionWebpackPlugin scripts Webpack \`polyfill-magic-comment\` should produce expected output: External modules should match snapshot 1`] = `[]`; +exports[`DependencyExtractionWebpackPlugin scripts Webpack \`polyfill-magic-comment-minified\` should produce expected output: Asset file 'main.asset.php' should match snapshot 1`] = ` +" array('wp-polyfill'), 'version' => '31d6cfe0d16ae931b73c'); +" +`; + +exports[`DependencyExtractionWebpackPlugin scripts Webpack \`polyfill-magic-comment-minified\` should produce expected output: External modules should match snapshot 1`] = `[]`; + exports[`DependencyExtractionWebpackPlugin scripts Webpack \`runtime-chunk-single\` should produce expected output: Asset file 'a.asset.php' should match snapshot 1`] = ` " array('wp-blob'), 'version' => 'd3cda564b538b44d38ef'); " diff --git a/packages/dependency-extraction-webpack-plugin/test/fixtures/polyfill-magic-comment-minified/index.js b/packages/dependency-extraction-webpack-plugin/test/fixtures/polyfill-magic-comment-minified/index.js new file mode 100644 index 0000000000000..d98678f44cb69 --- /dev/null +++ b/packages/dependency-extraction-webpack-plugin/test/fixtures/polyfill-magic-comment-minified/index.js @@ -0,0 +1,3 @@ +/* wp:polyfill */ + +// Nothing else, really. diff --git a/packages/dependency-extraction-webpack-plugin/test/fixtures/polyfill-magic-comment-minified/webpack.config.js b/packages/dependency-extraction-webpack-plugin/test/fixtures/polyfill-magic-comment-minified/webpack.config.js new file mode 100644 index 0000000000000..be01328d675d0 --- /dev/null +++ b/packages/dependency-extraction-webpack-plugin/test/fixtures/polyfill-magic-comment-minified/webpack.config.js @@ -0,0 +1,11 @@ +/** + * Internal dependencies + */ +const DependencyExtractionWebpackPlugin = require( '../../..' ); + +module.exports = { + optimization: { + minimize: true, + }, + plugins: [ new DependencyExtractionWebpackPlugin() ], +}; diff --git a/tools/webpack/shared.js b/tools/webpack/shared.js index c8c5b05c7d151..f30d3a830f3eb 100644 --- a/tools/webpack/shared.js +++ b/tools/webpack/shared.js @@ -25,7 +25,7 @@ const baseConfig = { parallel: true, terserOptions: { output: { - comments: /(translators:|wp:polyfill)/i, + comments: /translators:/i, }, compress: { passes: 2, From 68e47d0563dc99b1ff1fec9bbeaa21d24f0faa97 Mon Sep 17 00:00:00 2001 From: Jerry Jones Date: Wed, 25 Sep 2024 13:08:14 -0500 Subject: [PATCH 047/214] Revert "Allow multi-select on iOS Safari/touch devices (#63671)" (#65414) This reverts commit 6aeba745bcba51621310a318e8dccfdf3eb4c92e. --- .../use-focus-first-element.js | 1 - .../event-listeners/paste-handler.js | 7 +- .../src/components/rich-text/index.js | 14 +--- .../src/components/writing-flow/index.js | 2 - .../components/writing-flow/use-arrow-nav.js | 11 +-- .../writing-flow/use-event-redirect.js | 72 ------------------- .../src/components/writing-flow/use-input.js | 37 +--------- .../components/writing-flow/use-select-all.js | 19 +---- .../writing-flow/use-selection-observer.js | 17 +---- .../src/components/writing-flow/utils.js | 30 -------- packages/dom/src/dom/place-caret-at-edge.js | 12 ++-- .../component/event-listeners/copy-handler.js | 17 ++--- .../event-listeners/input-and-selection.js | 19 +++-- .../editor/various/block-deletion.spec.js | 11 ++- .../editor/various/pattern-overrides.spec.js | 4 +- 15 files changed, 36 insertions(+), 237 deletions(-) delete mode 100644 packages/block-editor/src/components/writing-flow/use-event-redirect.js diff --git a/packages/block-editor/src/components/block-list/use-block-props/use-focus-first-element.js b/packages/block-editor/src/components/block-list/use-block-props/use-focus-first-element.js index a6308f48005f9..27f72d1a100d3 100644 --- a/packages/block-editor/src/components/block-list/use-block-props/use-focus-first-element.js +++ b/packages/block-editor/src/components/block-list/use-block-props/use-focus-first-element.js @@ -68,7 +68,6 @@ export function useFocusFirstElement( { clientId, initialPosition } ) { textInputs[ isReverse ? textInputs.length - 1 : 0 ] || ref.current; if ( ! isInsideRootBlock( ref.current, target ) ) { - ownerDocument.defaultView.getSelection().removeAllRanges(); ref.current.focus(); return; } diff --git a/packages/block-editor/src/components/rich-text/event-listeners/paste-handler.js b/packages/block-editor/src/components/rich-text/event-listeners/paste-handler.js index 9266cd2553754..59633f4750ff9 100644 --- a/packages/block-editor/src/components/rich-text/event-listeners/paste-handler.js +++ b/packages/block-editor/src/components/rich-text/event-listeners/paste-handler.js @@ -26,15 +26,10 @@ export default ( props ) => ( element ) => { preserveWhiteSpace, pastePlainText, } = props.current; - const { ownerDocument } = element; - const { defaultView } = ownerDocument; - const { anchorNode, focusNode } = defaultView.getSelection(); - const containsSelection = - element.contains( anchorNode ) && element.contains( focusNode ); // The event listener is attached to the window, so we need to check if // the target is the element. - if ( ! containsSelection ) { + if ( event.target !== element ) { return; } diff --git a/packages/block-editor/src/components/rich-text/index.js b/packages/block-editor/src/components/rich-text/index.js index 1a412a3b2d7eb..83cf5e564c68b 100644 --- a/packages/block-editor/src/components/rich-text/index.js +++ b/packages/block-editor/src/components/rich-text/index.js @@ -397,19 +397,7 @@ export function RichTextWrapper( const inputEvents = useRef( new Set() ); function onFocus() { - let element = anchorRef.current; - - if ( ! element ) { - return; - } - - // Writing flow might be editable, so we should make sure focus goes to - // the root editable element. - while ( element.parentElement?.isContentEditable ) { - element = element.parentElement; - } - - element.focus(); + anchorRef.current?.focus(); } const TagName = tagName; diff --git a/packages/block-editor/src/components/writing-flow/index.js b/packages/block-editor/src/components/writing-flow/index.js index cea3e4b19707d..7e6b36b0e2214 100644 --- a/packages/block-editor/src/components/writing-flow/index.js +++ b/packages/block-editor/src/components/writing-flow/index.js @@ -23,7 +23,6 @@ import useSelectionObserver from './use-selection-observer'; import useClickSelection from './use-click-selection'; import useInput from './use-input'; import useClipboardHandler from './use-clipboard-handler'; -import useEventRedirect from './use-event-redirect'; import { store as blockEditorStore } from '../../store'; export function useWritingFlow() { @@ -66,7 +65,6 @@ export function useWritingFlow() { }, [ hasMultiSelection ] ), - useEventRedirect(), ] ), after, ]; diff --git a/packages/block-editor/src/components/writing-flow/use-arrow-nav.js b/packages/block-editor/src/components/writing-flow/use-arrow-nav.js index fda5a0133ee00..44051b324ff64 100644 --- a/packages/block-editor/src/components/writing-flow/use-arrow-nav.js +++ b/packages/block-editor/src/components/writing-flow/use-arrow-nav.js @@ -19,7 +19,6 @@ import { useRefEffect } from '@wordpress/compose'; */ import { getBlockClientId, isInSameBlock } from '../../utils/dom'; import { store as blockEditorStore } from '../../store'; -import { getSelectionRoot } from './utils'; /** * Returns true if the element should consider edge navigation upon a keyboard @@ -191,7 +190,8 @@ export default function useArrowNav() { return; } - const { keyCode, shiftKey, ctrlKey, altKey, metaKey } = event; + const { keyCode, target, shiftKey, ctrlKey, altKey, metaKey } = + event; const isUp = keyCode === UP; const isDown = keyCode === DOWN; const isLeft = keyCode === LEFT; @@ -233,11 +233,6 @@ export default function useArrowNav() { return; } - const target = - ownerDocument.activeElement === node - ? getSelectionRoot( ownerDocument ) - : event.target; - // Abort if our current target is not a candidate for navigation // (e.g. preserve native input behaviors). if ( ! isNavigationCandidate( target, keyCode, hasModifier ) ) { @@ -279,7 +274,6 @@ export default function useArrowNav() { ( altKey ? isHorizontalEdge( target, isReverseDir ) : true ) && ! keepCaretInsideBlock ) { - node.contentEditable = false; const closestTabbable = getClosestTabbable( target, isReverse, @@ -303,7 +297,6 @@ export default function useArrowNav() { isHorizontalEdge( target, isReverseDir ) && ! keepCaretInsideBlock ) { - node.contentEditable = false; const closestTabbable = getClosestTabbable( target, isReverseDir, diff --git a/packages/block-editor/src/components/writing-flow/use-event-redirect.js b/packages/block-editor/src/components/writing-flow/use-event-redirect.js deleted file mode 100644 index b8dcd7eda6969..0000000000000 --- a/packages/block-editor/src/components/writing-flow/use-event-redirect.js +++ /dev/null @@ -1,72 +0,0 @@ -/** - * WordPress dependencies - */ -import { useRefEffect } from '@wordpress/compose'; - -/** - * Internal dependencies - */ -import { getSelectionRoot } from './utils'; - -/** - * Whenever content editable is enabled on writing flow, it will have focus, so - * we need to dispatch some events to the root of the selection to ensure - * compatibility with rich text. In the future, perhaps the rich text event - * handlers should be attached to the window instead. - * - * Alternatively, we could try to find a way to always maintain rich text focus. - */ -export default function useEventRedirect() { - return useRefEffect( ( node ) => { - function onInput( event ) { - if ( event.target !== node ) { - return; - } - - const { ownerDocument } = node; - const { defaultView } = ownerDocument; - const prototype = Object.getPrototypeOf( event ); - const constructorName = prototype.constructor.name; - const Constructor = defaultView[ constructorName ]; - const root = getSelectionRoot( ownerDocument ); - - if ( ! root || root === node ) { - return; - } - - const init = {}; - - for ( const key in event ) { - init[ key ] = event[ key ]; - } - - init.bubbles = false; - - const newEvent = new Constructor( event.type, init ); - const cancelled = ! root.dispatchEvent( newEvent ); - - if ( cancelled ) { - event.preventDefault(); - } - } - - const events = [ - 'beforeinput', - 'input', - 'compositionstart', - 'compositionend', - 'compositionupdate', - 'keydown', - ]; - - events.forEach( ( eventType ) => { - node.addEventListener( eventType, onInput ); - } ); - - return () => { - events.forEach( ( eventType ) => { - node.removeEventListener( eventType, onInput ); - } ); - }; - }, [] ); -} diff --git a/packages/block-editor/src/components/writing-flow/use-input.js b/packages/block-editor/src/components/writing-flow/use-input.js index 31c5d769834c0..0f10cc9c2d1c7 100644 --- a/packages/block-editor/src/components/writing-flow/use-input.js +++ b/packages/block-editor/src/components/writing-flow/use-input.js @@ -16,7 +16,6 @@ import { * Internal dependencies */ import { store as blockEditorStore } from '../../store'; -import { getSelectionRoot } from './utils'; /** * Handles input for selections across blocks. @@ -50,24 +49,7 @@ export default function useInput() { // DOM. This will cause React errors (and the DOM should only be // altered in a controlled fashion). if ( node.contentEditable === 'true' ) { - const selection = node.ownerDocument.defaultView.getSelection(); - const range = selection.rangeCount - ? selection.getRangeAt( 0 ) - : null; - const root = getSelectionRoot( node.ownerDocument ); - - // If selection is contained within a nested editable, allow - // input. We need to ensure that selection is maintained. - if ( root ) { - node.contentEditable = false; - root.focus(); - selection.removeAllRanges(); - if ( range ) { - selection.addRange( range ); - } - } else { - event.preventDefault(); - } + event.preventDefault(); } } @@ -77,23 +59,6 @@ export default function useInput() { } if ( ! hasMultiSelection() ) { - const { ownerDocument } = node; - if ( node === ownerDocument.activeElement ) { - if ( event.key === 'End' || event.key === 'Home' ) { - const selectionRoot = getSelectionRoot( ownerDocument ); - const selection = - ownerDocument.defaultView.getSelection(); - selection.selectAllChildren( selectionRoot ); - const method = - event.key === 'End' - ? 'collapseToEnd' - : 'collapseToStart'; - selection[ method ](); - event.preventDefault(); - return; - } - } - if ( event.keyCode === ENTER ) { if ( event.shiftKey || __unstableIsFullySelected() ) { return; diff --git a/packages/block-editor/src/components/writing-flow/use-select-all.js b/packages/block-editor/src/components/writing-flow/use-select-all.js index 5a7acb3a8783a..c56549acf54ad 100644 --- a/packages/block-editor/src/components/writing-flow/use-select-all.js +++ b/packages/block-editor/src/components/writing-flow/use-select-all.js @@ -10,7 +10,6 @@ import { useRefEffect } from '@wordpress/compose'; * Internal dependencies */ import { store as blockEditorStore } from '../../store'; -import { getSelectionRoot } from './utils'; export default function useSelectAll() { const { getBlockOrder, getSelectedBlockClientIds, getBlockRootClientId } = @@ -24,27 +23,12 @@ export default function useSelectAll() { return; } - const selectionRoot = getSelectionRoot( node.ownerDocument ); const selectedClientIds = getSelectedBlockClientIds(); - // Abort if there is selection, but it is not within a block. - if ( selectionRoot && ! selectedClientIds.length ) { - return; - } - if ( - selectionRoot && selectedClientIds.length < 2 && - ! isEntirelySelected( selectionRoot ) + ! isEntirelySelected( event.target ) ) { - if ( node === node.ownerDocument.activeElement ) { - event.preventDefault(); - node.ownerDocument.defaultView - .getSelection() - .selectAllChildren( selectionRoot ); - return; - } - return; } @@ -61,7 +45,6 @@ export default function useSelectAll() { node.ownerDocument.defaultView .getSelection() .removeAllRanges(); - node.contentEditable = 'false'; selectBlock( rootClientId ); } return; diff --git a/packages/block-editor/src/components/writing-flow/use-selection-observer.js b/packages/block-editor/src/components/writing-flow/use-selection-observer.js index 8ecba461d1025..c7ce5d259d875 100644 --- a/packages/block-editor/src/components/writing-flow/use-selection-observer.js +++ b/packages/block-editor/src/components/writing-flow/use-selection-observer.js @@ -107,12 +107,8 @@ function getRichTextElement( node ) { export default function useSelectionObserver() { const { multiSelect, selectBlock, selectionChange } = useDispatch( blockEditorStore ); - const { - getBlockParents, - getBlockSelectionStart, - isMultiSelecting, - getSelectedBlockClientId, - } = useSelect( blockEditorStore ); + const { getBlockParents, getBlockSelectionStart, isMultiSelecting } = + useSelect( blockEditorStore ); return useRefEffect( ( node ) => { const { ownerDocument } = node; @@ -195,17 +191,10 @@ export default function useSelectionObserver() { return; } - setContentEditableWrapper( - node, - !! ( startClientId && endClientId ) - ); - const isSingularSelection = startClientId === endClientId; if ( isSingularSelection ) { if ( ! isMultiSelecting() ) { - if ( getSelectedBlockClientId() !== startClientId ) { - selectBlock( startClientId ); - } + selectBlock( startClientId ); } else { multiSelect( startClientId, startClientId ); } diff --git a/packages/block-editor/src/components/writing-flow/utils.js b/packages/block-editor/src/components/writing-flow/utils.js index 0cd41eedd3f6f..2a2010854ed20 100644 --- a/packages/block-editor/src/components/writing-flow/utils.js +++ b/packages/block-editor/src/components/writing-flow/utils.js @@ -116,33 +116,3 @@ function toPlainText( html ) { // Merge any consecutive line breaks return plainText.replace( /\n\n+/g, '\n\n' ); } - -/** - * Gets the current content editable root element based on the selection. - * @param {Document} ownerDocument - * @return {Element|undefined} The content editable root element. - */ -export function getSelectionRoot( ownerDocument ) { - const { defaultView } = ownerDocument; - const { anchorNode, focusNode } = defaultView.getSelection(); - - if ( ! anchorNode || ! focusNode ) { - return; - } - - const anchorElement = ( - anchorNode.nodeType === anchorNode.ELEMENT_NODE - ? anchorNode - : anchorNode.parentElement - ).closest( '[contenteditable]' ); - - if ( ! anchorElement ) { - return; - } - - if ( ! anchorElement.contains( focusNode ) ) { - return; - } - - return anchorElement; -} diff --git a/packages/dom/src/dom/place-caret-at-edge.js b/packages/dom/src/dom/place-caret-at-edge.js index 013a64d076e55..4075fc7c43958 100644 --- a/packages/dom/src/dom/place-caret-at-edge.js +++ b/packages/dom/src/dom/place-caret-at-edge.js @@ -67,14 +67,7 @@ export default function placeCaretAtEdge( container, isReverse, x ) { return; } - const { ownerDocument } = container; - const { defaultView } = ownerDocument; - assertIsDefined( defaultView, 'defaultView' ); - const selection = defaultView.getSelection(); - assertIsDefined( selection, 'selection' ); - if ( ! container.isContentEditable ) { - selection.removeAllRanges(); return; } @@ -86,6 +79,11 @@ export default function placeCaretAtEdge( container, isReverse, x ) { return; } + const { ownerDocument } = container; + const { defaultView } = ownerDocument; + assertIsDefined( defaultView, 'defaultView' ); + const selection = defaultView.getSelection(); + assertIsDefined( selection, 'selection' ); selection.removeAllRanges(); selection.addRange( range ); } diff --git a/packages/rich-text/src/component/event-listeners/copy-handler.js b/packages/rich-text/src/component/event-listeners/copy-handler.js index 1a92237bb4c5b..0cc1594c3ab91 100644 --- a/packages/rich-text/src/component/event-listeners/copy-handler.js +++ b/packages/rich-text/src/component/event-listeners/copy-handler.js @@ -2,21 +2,18 @@ * Internal dependencies */ import { toHTMLString } from '../../to-html-string'; +import { isCollapsed } from '../../is-collapsed'; import { slice } from '../../slice'; -import { remove } from '../../remove'; import { getTextContent } from '../../get-text-content'; export default ( props ) => ( element ) => { function onCopy( event ) { - const { record, createRecord, handleChange } = props.current; + const { record } = props.current; const { ownerDocument } = element; - const { defaultView } = ownerDocument; - const { anchorNode, focusNode, isCollapsed } = - defaultView.getSelection(); - const containsSelection = - element.contains( anchorNode ) && element.contains( focusNode ); - - if ( isCollapsed || ! containsSelection ) { + if ( + isCollapsed( record.current ) || + ! element.contains( ownerDocument.activeElement ) + ) { return; } @@ -29,7 +26,7 @@ export default ( props ) => ( element ) => { event.preventDefault(); if ( event.type === 'cut' ) { - handleChange( remove( createRecord() ) ); + ownerDocument.execCommand( 'delete' ); } } diff --git a/packages/rich-text/src/component/event-listeners/input-and-selection.js b/packages/rich-text/src/component/event-listeners/input-and-selection.js index 11dcdb0d8ff9a..621f1c59fab04 100644 --- a/packages/rich-text/src/component/event-listeners/input-and-selection.js +++ b/packages/rich-text/src/component/event-listeners/input-and-selection.js @@ -114,13 +114,14 @@ export default ( props ) => ( element ) => { return; } - const { anchorNode, focusNode } = defaultView.getSelection(); - const containsSelection = - element.contains( anchorNode ) && - element.contains( focusNode ) && - ownerDocument.activeElement.contains( element ); - - if ( ! containsSelection ) { + // Ensure the active element is the rich text element. + if ( ownerDocument.activeElement !== element ) { + // If it is not, we can stop listening for selection changes. We + // resume listening when the element is focused. + ownerDocument.removeEventListener( + 'selectionchange', + handleSelectionChange + ); return; } @@ -254,9 +255,5 @@ export default ( props ) => ( element ) => { element.removeEventListener( 'compositionstart', onCompositionStart ); element.removeEventListener( 'compositionend', onCompositionEnd ); element.removeEventListener( 'focus', onFocus ); - ownerDocument.removeEventListener( - 'selectionchange', - handleSelectionChange - ); }; }; diff --git a/test/e2e/specs/editor/various/block-deletion.spec.js b/test/e2e/specs/editor/various/block-deletion.spec.js index 00b51a94668d5..9346412c46bcb 100644 --- a/test/e2e/specs/editor/various/block-deletion.spec.js +++ b/test/e2e/specs/editor/various/block-deletion.spec.js @@ -287,16 +287,15 @@ test.describe( 'Block deletion', () => { await expect.poll( editor.getBlocks ).toMatchObject( [ { name: 'core/paragraph', attributes: { content: 'First' } }, { name: 'core/paragraph', attributes: { content: 'Second' } }, + { name: 'core/paragraph', attributes: { content: '' } }, ] ); // Ensure that the newly created empty block is focused. - await expect.poll( editor.getBlocks ).toHaveLength( 2 ); + await expect.poll( editor.getBlocks ).toHaveLength( 3 ); await expect( - editor.canvas - .getByRole( 'document', { - name: 'Block: Paragraph', - } ) - .nth( 1 ) + editor.canvas.getByRole( 'document', { + name: 'Empty block', + } ) ).toBeFocused(); } ); diff --git a/test/e2e/specs/editor/various/pattern-overrides.spec.js b/test/e2e/specs/editor/various/pattern-overrides.spec.js index 83f2f880f3bf1..5fbd0e66b5fd0 100644 --- a/test/e2e/specs/editor/various/pattern-overrides.spec.js +++ b/test/e2e/specs/editor/various/pattern-overrides.spec.js @@ -150,7 +150,7 @@ test.describe( 'Pattern Overrides', () => { name: 'Block: Paragraph', } ); // Ensure the first pattern is selected. - await editor.selectBlocks( patternBlocks.first() ); + await patternBlocks.first().selectText(); await expect( paragraphs.first() ).not.toHaveAttribute( 'inert', 'true' @@ -168,7 +168,7 @@ test.describe( 'Pattern Overrides', () => { await page.keyboard.type( 'I would word it this way' ); // Ensure the second pattern is selected. - await editor.selectBlocks( patternBlocks.last() ); + await patternBlocks.last().selectText(); await patternBlocks .last() .getByRole( 'document', { From 783c65e08606f5bc3ea0d38ac48e3ae091b26b85 Mon Sep 17 00:00:00 2001 From: Jon Surrell Date: Thu, 26 Sep 2024 11:39:46 +0200 Subject: [PATCH 048/214] Move a11y HTML printing code to 6.7 compat directory (#65620) - Ensure that the HTML printing for the @wordpress/a11y script module does not conflict with Core. - Move the @wordpress/a11y script module code to the 6.7 compat directory. The a11y script module HTML printing filters are set conditionally. If Core would set them, Gutenberg does not. This ensures that duplicate HTML elements (with identical element IDs) are not added to the page. This is necessary for compatibility with WordPress 6.7 that adds the @wordpress/a11y Script Module. See https://core.trac.wordpress.org/changeset/59089. --- Co-authored-by: sirreal Co-authored-by: michalczaplinski --- lib/compat/wordpress-6.7/script-modules.php | 43 +++++++++++++++++++++ lib/experimental/script-modules.php | 41 -------------------- 2 files changed, 43 insertions(+), 41 deletions(-) diff --git a/lib/compat/wordpress-6.7/script-modules.php b/lib/compat/wordpress-6.7/script-modules.php index 0a440ec81688d..2282a3d4bd5ac 100644 --- a/lib/compat/wordpress-6.7/script-modules.php +++ b/lib/compat/wordpress-6.7/script-modules.php @@ -102,3 +102,46 @@ function () { }, 20 ); + +/** + * Prints HTML for the a11y Script Module. + * + * a11y relies on some DOM elements to use as ARIA live regions. + * Ideally, these elements are part of the initial HTML of the page + * so that accessibility tools can find them and observe updates. + */ +function gutenberg_a11y_script_module_html() { + $a11y_module_available = false; + + $get_marked_for_enqueue = new ReflectionMethod( 'WP_Script_Modules', 'get_marked_for_enqueue' ); + $get_marked_for_enqueue->setAccessible( true ); + $get_import_map = new ReflectionMethod( 'WP_Script_Modules', 'get_import_map' ); + $get_import_map->setAccessible( true ); + + foreach ( array_keys( $get_marked_for_enqueue->invoke( wp_script_modules() ) ) as $id ) { + if ( '@wordpress/a11y' === $id ) { + $a11y_module_available = true; + break; + } + } + if ( ! $a11y_module_available ) { + foreach ( array_keys( $get_import_map->invoke( wp_script_modules() )['imports'] ) as $id ) { + if ( '@wordpress/a11y' === $id ) { + $a11y_module_available = true; + break; + } + } + } + if ( ! $a11y_module_available ) { + return; + } + echo '
' + . '' + . '
' + . '
' + . '
'; +} +if ( ! method_exists( 'WP_Script_Modules', 'print_a11y_script_module_html' ) ) { + add_action( 'wp_footer', 'gutenberg_a11y_script_module_html' ); + add_action( 'admin_footer', 'gutenberg_a11y_script_module_html' ); +} diff --git a/lib/experimental/script-modules.php b/lib/experimental/script-modules.php index fe23786fc0362..5a14e1418ed6d 100644 --- a/lib/experimental/script-modules.php +++ b/lib/experimental/script-modules.php @@ -200,44 +200,3 @@ function gutenberg_dequeue_module( $module_identifier ) { _deprecated_function( __FUNCTION__, 'Gutenberg 17.6.0', 'wp_dequeue_script_module' ); wp_script_modules()->dequeue( $module_identifier ); } - -/** - * Prints HTML for the a11y Script Module. - * - * a11y relies on some DOM elements to use as ARIA live regions. - * Ideally, these elements are part of the initial HTML of the page - * so that accessibility tools can find them and observe updates. - */ -function gutenberg_a11y_script_module_html() { - $a11y_module_available = false; - - $get_marked_for_enqueue = new ReflectionMethod( 'WP_Script_Modules', 'get_marked_for_enqueue' ); - $get_marked_for_enqueue->setAccessible( true ); - $get_import_map = new ReflectionMethod( 'WP_Script_Modules', 'get_import_map' ); - $get_import_map->setAccessible( true ); - - foreach ( array_keys( $get_marked_for_enqueue->invoke( wp_script_modules() ) ) as $id ) { - if ( '@wordpress/a11y' === $id ) { - $a11y_module_available = true; - break; - } - } - if ( ! $a11y_module_available ) { - foreach ( array_keys( $get_import_map->invoke( wp_script_modules() )['imports'] ) as $id ) { - if ( '@wordpress/a11y' === $id ) { - $a11y_module_available = true; - break; - } - } - } - if ( ! $a11y_module_available ) { - return; - } - echo '
' - . '' - . '
' - . '
' - . '
'; -} -add_action( 'wp_footer', 'gutenberg_a11y_script_module_html' ); -add_action( 'admin_footer', 'gutenberg_a11y_script_module_html' ); From 503c484066cf0798a603039766affff44e44d99b Mon Sep 17 00:00:00 2001 From: Marin Atanasov <8436925+tyxla@users.noreply.github.com> Date: Thu, 26 Sep 2024 12:49:17 +0300 Subject: [PATCH 049/214] Editor: Consistent external media pre-publish image/button sizes (#65668) Co-authored-by: tyxla Co-authored-by: jasmussen Co-authored-by: ciampo --- .../src/components/post-publish-panel/maybe-upload-media.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/editor/src/components/post-publish-panel/maybe-upload-media.js b/packages/editor/src/components/post-publish-panel/maybe-upload-media.js index 8c8d757c58339..32ea69c425e0b 100644 --- a/packages/editor/src/components/post-publish-panel/maybe-upload-media.js +++ b/packages/editor/src/components/post-publish-panel/maybe-upload-media.js @@ -98,8 +98,8 @@ function Image( { clientId, alt, url } ) { animate={ { opacity: 1 } } exit={ { opacity: 0, scale: 0 } } style={ { - width: '36px', - height: '36px', + width: '32px', + height: '32px', objectFit: 'cover', borderRadius: '2px', cursor: 'pointer', @@ -256,7 +256,7 @@ export default function MaybeUploadMediaPanel() { ) : ( From 88d6723b39057a5ab42374c8129520afbb27e8fc Mon Sep 17 00:00:00 2001 From: Vicente Canales <1157901+vcanales@users.noreply.github.com> Date: Sun, 29 Sep 2024 21:59:37 -0300 Subject: [PATCH 067/214] Revert "Font Library: Group fonts by source (#63211)" (#65590) * Revert "Font Library: Group fonts by source (#63211)" * update typography screen description * update screen description Co-authored-by: vcanales Co-authored-by: t-hamano Co-authored-by: afercia Co-authored-by: richtabor --- .../components/global-styles/font-families.js | 33 +++---------------- .../global-styles/screen-typography.js | 2 +- 2 files changed, 6 insertions(+), 29 deletions(-) diff --git a/packages/edit-site/src/components/global-styles/font-families.js b/packages/edit-site/src/components/global-styles/font-families.js index 6a554b136317d..5332478823c21 100644 --- a/packages/edit-site/src/components/global-styles/font-families.js +++ b/packages/edit-site/src/components/global-styles/font-families.js @@ -1,7 +1,7 @@ /** * WordPress dependencies */ -import { __, _x } from '@wordpress/i18n'; +import { __ } from '@wordpress/i18n'; import { __experimentalText as Text, __experimentalItemGroup as ItemGroup, @@ -61,14 +61,9 @@ function FontFamilies() { ) } - { themeFonts.length > 0 && ( - - - { - /* translators: Heading for a list of fonts provided by the theme. */ - _x( 'Theme', 'font source' ) - } - + { [ ...themeFonts, ...customFonts ].length > 0 && ( + <> + { __( 'Fonts' ) } { themeFonts.map( ( font ) => ( ) ) } - - ) } - { customFonts.length > 0 && ( - - - { - /* translators: Heading for a list of fonts installed by the user. */ - _x( 'Custom', 'font source' ) - } - - - { customFonts.map( ( font ) => ( - - ) ) } - - + ) } { ! hasFonts && ( diff --git a/packages/edit-site/src/components/global-styles/screen-typography.js b/packages/edit-site/src/components/global-styles/screen-typography.js index 70acf9e7ae3d4..3739e3234258b 100644 --- a/packages/edit-site/src/components/global-styles/screen-typography.js +++ b/packages/edit-site/src/components/global-styles/screen-typography.js @@ -27,7 +27,7 @@ function ScreenTypography() {
From 22335380e89dbab3522b62748a8a04b9fd17b378 Mon Sep 17 00:00:00 2001 From: Jason Shoemaker <30575277+spadeshoe@users.noreply.github.com> Date: Sun, 29 Sep 2024 18:01:59 -0700 Subject: [PATCH 068/214] updates LayoutTypeSwitcher to use ToggleGroupControl (#65498) * updates LayoutTypeSwitcher to useToggleGroupControl * updates label and corrects LayoutTypeSwitcher component misconfiguration Co-authored-by: spadeshoe Co-authored-by: mirka <0mirka00@git.wordpress.org> --- packages/block-editor/src/hooks/layout.js | 29 +++++++++++++---------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/packages/block-editor/src/hooks/layout.js b/packages/block-editor/src/hooks/layout.js index 22d916d7b791b..54a376a0c6a4f 100644 --- a/packages/block-editor/src/hooks/layout.js +++ b/packages/block-editor/src/hooks/layout.js @@ -11,8 +11,8 @@ import { addFilter } from '@wordpress/hooks'; import { getBlockSupport, hasBlockSupport } from '@wordpress/blocks'; import { useSelect } from '@wordpress/data'; import { - Button, - ButtonGroup, + __experimentalToggleGroupControl as ToggleGroupControl, + __experimentalToggleGroupControlOption as ToggleGroupControlOption, ToggleControl, PanelBody, privateApis as componentsPrivateApis, @@ -315,21 +315,26 @@ export default { function LayoutTypeSwitcher( { type, onChange } ) { return ( - + { getLayoutTypes().map( ( { name, label } ) => { return ( - + value={ name } + label={ label } + /> ); } ) } - + ); } From e2f2dce501e984b6bcdc6f1a9ef43aaf8ede7676 Mon Sep 17 00:00:00 2001 From: Bernie Reiter <96308+ockham@users.noreply.github.com> Date: Mon, 30 Sep 2024 03:39:17 +0200 Subject: [PATCH 069/214] Navigation block: Use `apply_block_hooks_to_content()` (#65703) * Navigation block: Use apply-block-hooks-to-content * WPCS Co-authored-by: ockham Co-authored-by: ramonjd Co-authored-by: aaronrobertshaw --- packages/block-library/src/navigation/index.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/block-library/src/navigation/index.php b/packages/block-library/src/navigation/index.php index 10fec84ed59d9..fa9bb5a56f801 100644 --- a/packages/block-library/src/navigation/index.php +++ b/packages/block-library/src/navigation/index.php @@ -1499,9 +1499,15 @@ function block_core_navigation_mock_parsed_block( $inner_blocks, $post ) { */ function block_core_navigation_insert_hooked_blocks( $inner_blocks, $post ) { $mock_navigation_block = block_core_navigation_mock_parsed_block( $inner_blocks, $post ); - $hooked_blocks = get_hooked_blocks(); - $before_block_visitor = null; - $after_block_visitor = null; + + if ( function_exists( 'apply_block_hooks_to_content' ) ) { + $mock_navigation_block_markup = serialize_block( $mock_navigation_block ); + return apply_block_hooks_to_content( $mock_navigation_block_markup, $post, 'insert_hooked_blocks' ); + } + + $hooked_blocks = get_hooked_blocks(); + $before_block_visitor = null; + $after_block_visitor = null; if ( ! empty( $hooked_blocks ) || has_filter( 'hooked_block_types' ) ) { $before_block_visitor = make_before_block_visitor( $hooked_blocks, $post, 'insert_hooked_blocks' ); From 4ab648d3f953d57ad45373f11b715e8fdf72b6f6 Mon Sep 17 00:00:00 2001 From: Ramon Date: Wed, 25 Sep 2024 15:39:12 +1000 Subject: [PATCH 070/214] PHP unit tests: remove WP_RUN_CORE_TESTS const (#65631) Co-authored-by: ramonjd Co-authored-by: andrewserong --- phpunit/bootstrap.php | 6 ------ 1 file changed, 6 deletions(-) diff --git a/phpunit/bootstrap.php b/phpunit/bootstrap.php index 5d078193f0c3b..36746d0566951 100644 --- a/phpunit/bootstrap.php +++ b/phpunit/bootstrap.php @@ -24,12 +24,6 @@ define( 'GUTENBERG_DIR_TESTDATA', __DIR__ . '/data/' ); define( 'GUTENBERG_DIR_TESTFIXTURES', __DIR__ . '/fixtures/' ); -// Pretend that these are Core unit tests. This is needed so that -// wp_theme_has_theme_json() does not cache its return value between each test. -if ( ! defined( 'WP_RUN_CORE_TESTS' ) ) { - define( 'WP_RUN_CORE_TESTS', true ); -} - // Require composer dependencies. require_once dirname( __DIR__ ) . '/vendor/autoload.php'; From 6187079697e13c3292eb098d6338523a6676c6e8 Mon Sep 17 00:00:00 2001 From: Gutenberg Repository Automation Date: Mon, 30 Sep 2024 02:23:54 +0000 Subject: [PATCH 071/214] chore(release): publish - @wordpress/a11y@4.8.2 - @wordpress/annotations@3.8.3 - @wordpress/api-fetch@7.8.2 - @wordpress/block-directory@5.8.5 - @wordpress/block-editor@14.3.3 - @wordpress/block-library@9.8.4 - @wordpress/blocks@13.8.3 - @wordpress/commands@1.8.3 - @wordpress/components@28.8.3 - @wordpress/compose@7.8.3 - @wordpress/core-commands@1.8.3 - @wordpress/core-data@7.8.3 - @wordpress/customize-widgets@5.8.4 - @wordpress/data@10.8.3 - @wordpress/data-controls@4.8.3 - @wordpress/dataviews@4.4.3 - @wordpress/date@5.8.2 - @wordpress/dependency-extraction-webpack-plugin@6.8.3 - @wordpress/deprecated@4.8.2 - @wordpress/dom@4.8.2 - @wordpress/e2e-test-utils@11.8.2 - @wordpress/e2e-tests@8.8.4 - @wordpress/edit-post@8.8.5 - @wordpress/edit-site@6.8.5 - @wordpress/edit-widgets@6.8.4 - @wordpress/editor@14.8.5 - @wordpress/fields@0.0.4 - @wordpress/format-library@5.8.3 - @wordpress/hooks@4.8.2 - @wordpress/i18n@5.8.2 - @wordpress/icons@10.8.2 - @wordpress/interactivity-router@2.8.3 - @wordpress/interface@6.8.3 - @wordpress/keyboard-shortcuts@5.8.3 - @wordpress/keycodes@4.8.2 - @wordpress/list-reusable-blocks@5.8.3 - @wordpress/media-utils@5.8.2 - @wordpress/notices@5.8.3 - @wordpress/nux@9.8.3 - @wordpress/patterns@2.8.3 - @wordpress/plugins@7.8.3 - @wordpress/preferences@4.8.3 - @wordpress/preferences-persistence@2.8.2 - @wordpress/react-i18n@4.8.2 - @wordpress/reusable-blocks@5.8.3 - @wordpress/rich-text@7.8.3 - @wordpress/scripts@30.0.4 - @wordpress/server-side-render@5.8.3 - @wordpress/viewport@6.8.3 - @wordpress/widgets@4.8.3 --- package-lock.json | 100 +++++++++--------- packages/a11y/package.json | 2 +- packages/annotations/package.json | 2 +- packages/api-fetch/package.json | 2 +- packages/block-directory/package.json | 2 +- packages/block-editor/package.json | 2 +- packages/block-library/package.json | 2 +- packages/blocks/package.json | 2 +- packages/commands/package.json | 2 +- packages/components/package.json | 2 +- packages/compose/package.json | 2 +- packages/core-commands/package.json | 2 +- packages/core-data/package.json | 2 +- packages/customize-widgets/package.json | 2 +- packages/data-controls/package.json | 2 +- packages/data/package.json | 2 +- packages/dataviews/package.json | 2 +- packages/date/package.json | 2 +- .../package.json | 2 +- packages/deprecated/package.json | 2 +- packages/dom/package.json | 2 +- packages/e2e-test-utils/package.json | 2 +- packages/e2e-tests/package.json | 2 +- packages/edit-post/package.json | 2 +- packages/edit-site/package.json | 2 +- packages/edit-widgets/package.json | 2 +- packages/editor/package.json | 2 +- packages/fields/package.json | 2 +- packages/format-library/package.json | 2 +- packages/hooks/package.json | 2 +- packages/i18n/package.json | 2 +- packages/icons/package.json | 2 +- packages/interactivity-router/package.json | 2 +- packages/interface/package.json | 2 +- packages/keyboard-shortcuts/package.json | 2 +- packages/keycodes/package.json | 2 +- packages/list-reusable-blocks/package.json | 2 +- packages/media-utils/package.json | 2 +- packages/notices/package.json | 2 +- packages/nux/package.json | 2 +- packages/patterns/package.json | 2 +- packages/plugins/package.json | 2 +- packages/preferences-persistence/package.json | 2 +- packages/preferences/package.json | 2 +- packages/react-i18n/package.json | 2 +- packages/reusable-blocks/package.json | 2 +- packages/rich-text/package.json | 2 +- packages/scripts/package.json | 2 +- packages/server-side-render/package.json | 2 +- packages/viewport/package.json | 2 +- packages/widgets/package.json | 2 +- 51 files changed, 100 insertions(+), 100 deletions(-) diff --git a/package-lock.json b/package-lock.json index ca2f9ddd4f8cc..a8d4d6d135f0b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -52564,7 +52564,7 @@ }, "packages/a11y": { "name": "@wordpress/a11y", - "version": "4.8.1", + "version": "4.8.2", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -52578,7 +52578,7 @@ }, "packages/annotations": { "name": "@wordpress/annotations", - "version": "3.8.2", + "version": "3.8.3", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -52606,7 +52606,7 @@ }, "packages/api-fetch": { "name": "@wordpress/api-fetch", - "version": "7.8.1", + "version": "7.8.2", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -52708,7 +52708,7 @@ }, "packages/block-directory": { "name": "@wordpress/block-directory", - "version": "5.8.4", + "version": "5.8.5", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -52743,7 +52743,7 @@ }, "packages/block-editor": { "name": "@wordpress/block-editor", - "version": "14.3.2", + "version": "14.3.3", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -52842,7 +52842,7 @@ }, "packages/block-library": { "name": "@wordpress/block-library", - "version": "9.8.3", + "version": "9.8.4", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -52933,7 +52933,7 @@ }, "packages/blocks": { "name": "@wordpress/blocks", - "version": "13.8.2", + "version": "13.8.3", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -52997,7 +52997,7 @@ }, "packages/commands": { "name": "@wordpress/commands", - "version": "1.8.2", + "version": "1.8.3", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53170,7 +53170,7 @@ }, "packages/components": { "name": "@wordpress/components", - "version": "28.8.2", + "version": "28.8.3", "license": "GPL-2.0-or-later", "dependencies": { "@ariakit/react": "^0.4.10", @@ -53290,7 +53290,7 @@ }, "packages/compose": { "name": "@wordpress/compose", - "version": "7.8.2", + "version": "7.8.3", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53327,7 +53327,7 @@ }, "packages/core-commands": { "name": "@wordpress/core-commands", - "version": "1.8.2", + "version": "1.8.3", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53356,7 +53356,7 @@ }, "packages/core-data": { "name": "@wordpress/core-data", - "version": "7.8.2", + "version": "7.8.3", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53439,7 +53439,7 @@ }, "packages/customize-widgets": { "name": "@wordpress/customize-widgets", - "version": "5.8.3", + "version": "5.8.4", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53477,7 +53477,7 @@ }, "packages/data": { "name": "@wordpress/data", - "version": "10.8.2", + "version": "10.8.3", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53506,7 +53506,7 @@ }, "packages/data-controls": { "name": "@wordpress/data-controls", - "version": "4.8.2", + "version": "4.8.3", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53524,7 +53524,7 @@ }, "packages/dataviews": { "name": "@wordpress/dataviews", - "version": "4.4.2", + "version": "4.4.3", "license": "GPL-2.0-or-later", "dependencies": { "@ariakit/react": "^0.4.10", @@ -53581,7 +53581,7 @@ }, "packages/date": { "name": "@wordpress/date", - "version": "5.8.1", + "version": "5.8.2", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53596,7 +53596,7 @@ }, "packages/dependency-extraction-webpack-plugin": { "name": "@wordpress/dependency-extraction-webpack-plugin", - "version": "6.8.2", + "version": "6.8.3", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -53612,7 +53612,7 @@ }, "packages/deprecated": { "name": "@wordpress/deprecated", - "version": "4.8.1", + "version": "4.8.2", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53647,7 +53647,7 @@ }, "packages/dom": { "name": "@wordpress/dom", - "version": "4.8.1", + "version": "4.8.2", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53672,7 +53672,7 @@ }, "packages/e2e-test-utils": { "name": "@wordpress/e2e-test-utils", - "version": "11.8.1", + "version": "11.8.2", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -53723,7 +53723,7 @@ }, "packages/e2e-tests": { "name": "@wordpress/e2e-tests", - "version": "8.8.3", + "version": "8.8.4", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -53763,7 +53763,7 @@ }, "packages/edit-post": { "name": "@wordpress/edit-post", - "version": "8.8.4", + "version": "8.8.5", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53810,7 +53810,7 @@ }, "packages/edit-site": { "name": "@wordpress/edit-site", - "version": "6.8.4", + "version": "6.8.5", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53872,7 +53872,7 @@ }, "packages/edit-widgets": { "name": "@wordpress/edit-widgets", - "version": "6.8.3", + "version": "6.8.4", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -53915,7 +53915,7 @@ }, "packages/editor": { "name": "@wordpress/editor", - "version": "14.8.4", + "version": "14.8.5", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54193,7 +54193,7 @@ }, "packages/fields": { "name": "@wordpress/fields", - "version": "0.0.3", + "version": "0.0.4", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54228,7 +54228,7 @@ }, "packages/format-library": { "name": "@wordpress/format-library", - "version": "5.8.2", + "version": "5.8.3", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54256,7 +54256,7 @@ }, "packages/hooks": { "name": "@wordpress/hooks", - "version": "4.8.1", + "version": "4.8.2", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0" @@ -54280,7 +54280,7 @@ }, "packages/i18n": { "name": "@wordpress/i18n", - "version": "5.8.1", + "version": "5.8.2", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54300,7 +54300,7 @@ }, "packages/icons": { "name": "@wordpress/icons", - "version": "10.8.1", + "version": "10.8.2", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54327,7 +54327,7 @@ }, "packages/interactivity-router": { "name": "@wordpress/interactivity-router", - "version": "2.8.2", + "version": "2.8.3", "license": "GPL-2.0-or-later", "dependencies": { "@wordpress/a11y": "file:../a11y", @@ -54364,7 +54364,7 @@ }, "packages/interface": { "name": "@wordpress/interface", - "version": "6.8.2", + "version": "6.8.3", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54463,7 +54463,7 @@ }, "packages/keyboard-shortcuts": { "name": "@wordpress/keyboard-shortcuts", - "version": "5.8.2", + "version": "5.8.3", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54481,7 +54481,7 @@ }, "packages/keycodes": { "name": "@wordpress/keycodes", - "version": "4.8.1", + "version": "4.8.2", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54509,7 +54509,7 @@ }, "packages/list-reusable-blocks": { "name": "@wordpress/list-reusable-blocks", - "version": "5.8.2", + "version": "5.8.3", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54532,7 +54532,7 @@ }, "packages/media-utils": { "name": "@wordpress/media-utils", - "version": "5.8.1", + "version": "5.8.2", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54548,7 +54548,7 @@ }, "packages/notices": { "name": "@wordpress/notices", - "version": "5.8.2", + "version": "5.8.3", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54578,7 +54578,7 @@ }, "packages/nux": { "name": "@wordpress/nux", - "version": "9.8.2", + "version": "9.8.3", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54601,7 +54601,7 @@ }, "packages/patterns": { "name": "@wordpress/patterns", - "version": "2.8.2", + "version": "2.8.3", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54631,7 +54631,7 @@ }, "packages/plugins": { "name": "@wordpress/plugins", - "version": "7.8.2", + "version": "7.8.3", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54684,7 +54684,7 @@ }, "packages/preferences": { "name": "@wordpress/preferences", - "version": "4.8.2", + "version": "4.8.3", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54710,7 +54710,7 @@ }, "packages/preferences-persistence": { "name": "@wordpress/preferences-persistence", - "version": "2.8.1", + "version": "2.8.2", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -54808,7 +54808,7 @@ }, "packages/react-i18n": { "name": "@wordpress/react-i18n", - "version": "4.8.1", + "version": "4.8.2", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -55022,7 +55022,7 @@ }, "packages/reusable-blocks": { "name": "@wordpress/reusable-blocks", - "version": "5.8.2", + "version": "5.8.3", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -55049,7 +55049,7 @@ }, "packages/rich-text": { "name": "@wordpress/rich-text", - "version": "7.8.2", + "version": "7.8.3", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -55092,7 +55092,7 @@ }, "packages/scripts": { "name": "@wordpress/scripts", - "version": "30.0.3", + "version": "30.0.4", "dev": true, "license": "GPL-2.0-or-later", "dependencies": { @@ -55547,7 +55547,7 @@ }, "packages/server-side-render": { "name": "@wordpress/server-side-render", - "version": "5.8.2", + "version": "5.8.3", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -55776,7 +55776,7 @@ }, "packages/viewport": { "name": "@wordpress/viewport", - "version": "6.8.2", + "version": "6.8.3", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", @@ -55803,7 +55803,7 @@ }, "packages/widgets": { "name": "@wordpress/widgets", - "version": "4.8.2", + "version": "4.8.3", "license": "GPL-2.0-or-later", "dependencies": { "@babel/runtime": "^7.16.0", diff --git a/packages/a11y/package.json b/packages/a11y/package.json index 352030028e12f..3331c9eee9318 100644 --- a/packages/a11y/package.json +++ b/packages/a11y/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/a11y", - "version": "4.8.1", + "version": "4.8.2", "description": "Accessibility (a11y) utilities for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/annotations/package.json b/packages/annotations/package.json index cad4807765b9f..08dacdc338aa4 100644 --- a/packages/annotations/package.json +++ b/packages/annotations/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/annotations", - "version": "3.8.2", + "version": "3.8.3", "description": "Annotate content in the Gutenberg editor.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/api-fetch/package.json b/packages/api-fetch/package.json index 6a5d83bf6bd95..932adab12aeb8 100644 --- a/packages/api-fetch/package.json +++ b/packages/api-fetch/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/api-fetch", - "version": "7.8.1", + "version": "7.8.2", "description": "Utility to make WordPress REST API requests.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/block-directory/package.json b/packages/block-directory/package.json index 3044269462321..9df85f9614a63 100644 --- a/packages/block-directory/package.json +++ b/packages/block-directory/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/block-directory", - "version": "5.8.4", + "version": "5.8.5", "description": "Extend editor with block directory features to search, download and install blocks.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/block-editor/package.json b/packages/block-editor/package.json index 83c272c93d1de..a15e1f8f2516d 100644 --- a/packages/block-editor/package.json +++ b/packages/block-editor/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/block-editor", - "version": "14.3.2", + "version": "14.3.3", "description": "Generic block editor.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/block-library/package.json b/packages/block-library/package.json index 549801643c526..6fbe73f0abbd5 100644 --- a/packages/block-library/package.json +++ b/packages/block-library/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/block-library", - "version": "9.8.3", + "version": "9.8.4", "description": "Block library for the WordPress editor.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/blocks/package.json b/packages/blocks/package.json index 90128a7c14e4d..b0854246375aa 100644 --- a/packages/blocks/package.json +++ b/packages/blocks/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/blocks", - "version": "13.8.2", + "version": "13.8.3", "description": "Block API for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/commands/package.json b/packages/commands/package.json index b0818dbf8c539..cce0e97cfb124 100644 --- a/packages/commands/package.json +++ b/packages/commands/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/commands", - "version": "1.8.2", + "version": "1.8.3", "description": "Handles the commands menu.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/components/package.json b/packages/components/package.json index c46f20b9536a6..d9995bf41f118 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/components", - "version": "28.8.2", + "version": "28.8.3", "description": "UI components for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/compose/package.json b/packages/compose/package.json index d6aff50a912f6..472cbd5173fdc 100644 --- a/packages/compose/package.json +++ b/packages/compose/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/compose", - "version": "7.8.2", + "version": "7.8.3", "description": "WordPress higher-order components (HOCs).", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/core-commands/package.json b/packages/core-commands/package.json index 907d8125be84c..d57824a088db1 100644 --- a/packages/core-commands/package.json +++ b/packages/core-commands/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/core-commands", - "version": "1.8.2", + "version": "1.8.3", "description": "WordPress core reusable commands.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/core-data/package.json b/packages/core-data/package.json index 657823a1476de..5b0ce5a823a22 100644 --- a/packages/core-data/package.json +++ b/packages/core-data/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/core-data", - "version": "7.8.2", + "version": "7.8.3", "description": "Access to and manipulation of core WordPress entities.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/customize-widgets/package.json b/packages/customize-widgets/package.json index bc65bae442185..a16d09006bfa4 100644 --- a/packages/customize-widgets/package.json +++ b/packages/customize-widgets/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/customize-widgets", - "version": "5.8.3", + "version": "5.8.4", "description": "Widgets blocks in Customizer Module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/data-controls/package.json b/packages/data-controls/package.json index e93d262d61e79..582314833802a 100644 --- a/packages/data-controls/package.json +++ b/packages/data-controls/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/data-controls", - "version": "4.8.2", + "version": "4.8.3", "description": "A set of common controls for the @wordpress/data api.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/data/package.json b/packages/data/package.json index b410368778d8a..6305599a0c248 100644 --- a/packages/data/package.json +++ b/packages/data/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/data", - "version": "10.8.2", + "version": "10.8.3", "description": "Data module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/dataviews/package.json b/packages/dataviews/package.json index f30f17d3b004d..72cb8464f6977 100644 --- a/packages/dataviews/package.json +++ b/packages/dataviews/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/dataviews", - "version": "4.4.2", + "version": "4.4.3", "description": "DataViews is a component that provides an API to render datasets using different types of layouts (table, grid, list, etc.).", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/date/package.json b/packages/date/package.json index fd21f45cfb5cb..4eb42967bddb7 100644 --- a/packages/date/package.json +++ b/packages/date/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/date", - "version": "5.8.1", + "version": "5.8.2", "description": "Date module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/dependency-extraction-webpack-plugin/package.json b/packages/dependency-extraction-webpack-plugin/package.json index be403843c2778..e0fa35e58b0bc 100644 --- a/packages/dependency-extraction-webpack-plugin/package.json +++ b/packages/dependency-extraction-webpack-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/dependency-extraction-webpack-plugin", - "version": "6.8.2", + "version": "6.8.3", "description": "Extract WordPress script dependencies from webpack bundles.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/deprecated/package.json b/packages/deprecated/package.json index 9f86697b7c4ec..8205b3f706782 100644 --- a/packages/deprecated/package.json +++ b/packages/deprecated/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/deprecated", - "version": "4.8.1", + "version": "4.8.2", "description": "Deprecation utility for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/dom/package.json b/packages/dom/package.json index a88e660ce7af7..865c4d3d3a988 100644 --- a/packages/dom/package.json +++ b/packages/dom/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/dom", - "version": "4.8.1", + "version": "4.8.2", "description": "DOM utilities module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/e2e-test-utils/package.json b/packages/e2e-test-utils/package.json index 705597b966d7e..0685da72e0b14 100644 --- a/packages/e2e-test-utils/package.json +++ b/packages/e2e-test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/e2e-test-utils", - "version": "11.8.1", + "version": "11.8.2", "description": "End-To-End (E2E) test utils for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/e2e-tests/package.json b/packages/e2e-tests/package.json index 9e503b612a480..7cdc1a9cef03f 100644 --- a/packages/e2e-tests/package.json +++ b/packages/e2e-tests/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/e2e-tests", - "version": "8.8.3", + "version": "8.8.4", "description": "End-To-End (E2E) tests for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/edit-post/package.json b/packages/edit-post/package.json index fa903760e0aa8..38f62b93b27a5 100644 --- a/packages/edit-post/package.json +++ b/packages/edit-post/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/edit-post", - "version": "8.8.4", + "version": "8.8.5", "description": "Edit Post module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/edit-site/package.json b/packages/edit-site/package.json index d77b005dc306d..a48fb63af22a9 100644 --- a/packages/edit-site/package.json +++ b/packages/edit-site/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/edit-site", - "version": "6.8.4", + "version": "6.8.5", "description": "Edit Site Page module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/edit-widgets/package.json b/packages/edit-widgets/package.json index a99d07a9bff7f..d309529ca1095 100644 --- a/packages/edit-widgets/package.json +++ b/packages/edit-widgets/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/edit-widgets", - "version": "6.8.3", + "version": "6.8.4", "description": "Widgets Page module for WordPress..", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/editor/package.json b/packages/editor/package.json index afacb36ec34b2..dd1becaf71556 100644 --- a/packages/editor/package.json +++ b/packages/editor/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/editor", - "version": "14.8.4", + "version": "14.8.5", "description": "Enhanced block editor for WordPress posts.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/fields/package.json b/packages/fields/package.json index 7d4656d0174b1..75c75ad4e52fb 100644 --- a/packages/fields/package.json +++ b/packages/fields/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/fields", - "version": "0.0.3", + "version": "0.0.4", "description": "DataViews is a component that provides an API to render datasets using different types of layouts (table, grid, list, etc.).", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/format-library/package.json b/packages/format-library/package.json index 1c846e3481e58..254c061eb271c 100644 --- a/packages/format-library/package.json +++ b/packages/format-library/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/format-library", - "version": "5.8.2", + "version": "5.8.3", "description": "Format library for the WordPress editor.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/hooks/package.json b/packages/hooks/package.json index 10a0778fd4445..c3f0c2535004b 100644 --- a/packages/hooks/package.json +++ b/packages/hooks/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/hooks", - "version": "4.8.1", + "version": "4.8.2", "description": "WordPress hooks library.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/i18n/package.json b/packages/i18n/package.json index cbe5d5d43366a..1d8d483c9070d 100644 --- a/packages/i18n/package.json +++ b/packages/i18n/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/i18n", - "version": "5.8.1", + "version": "5.8.2", "description": "WordPress internationalization (i18n) library.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/icons/package.json b/packages/icons/package.json index fb7a1c35aa8b4..d8c7cf6cc8480 100644 --- a/packages/icons/package.json +++ b/packages/icons/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/icons", - "version": "10.8.1", + "version": "10.8.2", "description": "WordPress Icons package, based on dashicon.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/interactivity-router/package.json b/packages/interactivity-router/package.json index 606254ab8ffc8..5a842a70c1263 100644 --- a/packages/interactivity-router/package.json +++ b/packages/interactivity-router/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/interactivity-router", - "version": "2.8.2", + "version": "2.8.3", "description": "Package that exposes state and actions from the `core/router` store, part of the Interactivity API.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/interface/package.json b/packages/interface/package.json index 6eab885eece4a..7bfa7e29d156b 100644 --- a/packages/interface/package.json +++ b/packages/interface/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/interface", - "version": "6.8.2", + "version": "6.8.3", "description": "Interface module for WordPress. The package contains shared functionality across the modern JavaScript-based WordPress screens.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/keyboard-shortcuts/package.json b/packages/keyboard-shortcuts/package.json index aebd32ce44bf3..ee0ac7391f575 100644 --- a/packages/keyboard-shortcuts/package.json +++ b/packages/keyboard-shortcuts/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/keyboard-shortcuts", - "version": "5.8.2", + "version": "5.8.3", "description": "Handling keyboard shortcuts.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/keycodes/package.json b/packages/keycodes/package.json index 381124a3f9547..1081c75644452 100644 --- a/packages/keycodes/package.json +++ b/packages/keycodes/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/keycodes", - "version": "4.8.1", + "version": "4.8.2", "description": "Keycodes utilities for WordPress. Used to check for keyboard events across browsers/operating systems.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/list-reusable-blocks/package.json b/packages/list-reusable-blocks/package.json index 4afa7c48c2b00..bef0f02cb1170 100644 --- a/packages/list-reusable-blocks/package.json +++ b/packages/list-reusable-blocks/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/list-reusable-blocks", - "version": "5.8.2", + "version": "5.8.3", "description": "Adding Export/Import support to the reusable blocks listing.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/media-utils/package.json b/packages/media-utils/package.json index 130f418bd2194..a42a3cddc156e 100644 --- a/packages/media-utils/package.json +++ b/packages/media-utils/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/media-utils", - "version": "5.8.1", + "version": "5.8.2", "description": "WordPress Media Upload Utils.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/notices/package.json b/packages/notices/package.json index daed98a7959f7..e1dd4190c103d 100644 --- a/packages/notices/package.json +++ b/packages/notices/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/notices", - "version": "5.8.2", + "version": "5.8.3", "description": "State management for notices.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/nux/package.json b/packages/nux/package.json index 8d0ad7e4428c7..f7994c5ac08d8 100644 --- a/packages/nux/package.json +++ b/packages/nux/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/nux", - "version": "9.8.2", + "version": "9.8.3", "description": "NUX (New User eXperience) module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/patterns/package.json b/packages/patterns/package.json index 88a721a6372cf..7cdbb2aa1f0a0 100644 --- a/packages/patterns/package.json +++ b/packages/patterns/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/patterns", - "version": "2.8.2", + "version": "2.8.3", "description": "Management of user pattern editing.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/plugins/package.json b/packages/plugins/package.json index 8095cc42ab0b3..812811223a590 100644 --- a/packages/plugins/package.json +++ b/packages/plugins/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/plugins", - "version": "7.8.2", + "version": "7.8.3", "description": "Plugins module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/preferences-persistence/package.json b/packages/preferences-persistence/package.json index 0fb3fd383f420..66bef756790a2 100644 --- a/packages/preferences-persistence/package.json +++ b/packages/preferences-persistence/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/preferences-persistence", - "version": "2.8.1", + "version": "2.8.2", "description": "Persistence utilities for `wordpress/preferences`.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/preferences/package.json b/packages/preferences/package.json index 831531cf9bf0d..474a7ba0c491a 100644 --- a/packages/preferences/package.json +++ b/packages/preferences/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/preferences", - "version": "4.8.2", + "version": "4.8.3", "description": "Utilities for managing WordPress preferences.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/react-i18n/package.json b/packages/react-i18n/package.json index 72443491210a0..a88bd47d97324 100644 --- a/packages/react-i18n/package.json +++ b/packages/react-i18n/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/react-i18n", - "version": "4.8.1", + "version": "4.8.2", "description": "React bindings for @wordpress/i18n.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/reusable-blocks/package.json b/packages/reusable-blocks/package.json index 7c9d1a7068adf..278a7f1c0a697 100644 --- a/packages/reusable-blocks/package.json +++ b/packages/reusable-blocks/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/reusable-blocks", - "version": "5.8.2", + "version": "5.8.3", "description": "Reusable blocks utilities.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/rich-text/package.json b/packages/rich-text/package.json index 348816d006c3a..7a78eee37d388 100644 --- a/packages/rich-text/package.json +++ b/packages/rich-text/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/rich-text", - "version": "7.8.2", + "version": "7.8.3", "description": "Rich text value and manipulation API.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/scripts/package.json b/packages/scripts/package.json index 95d0197e9967e..c39c8ddf49a41 100644 --- a/packages/scripts/package.json +++ b/packages/scripts/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/scripts", - "version": "30.0.3", + "version": "30.0.4", "description": "Collection of reusable scripts for WordPress development.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/server-side-render/package.json b/packages/server-side-render/package.json index a4b9a3854b633..e52678c38df24 100644 --- a/packages/server-side-render/package.json +++ b/packages/server-side-render/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/server-side-render", - "version": "5.8.2", + "version": "5.8.3", "description": "The component used with WordPress to server-side render a preview of dynamic blocks to display in the editor.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/viewport/package.json b/packages/viewport/package.json index 133f47dfeaed6..f5b4cbef6c785 100644 --- a/packages/viewport/package.json +++ b/packages/viewport/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/viewport", - "version": "6.8.2", + "version": "6.8.3", "description": "Viewport module for WordPress.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/packages/widgets/package.json b/packages/widgets/package.json index 7220d7ea3309d..a646615aae977 100644 --- a/packages/widgets/package.json +++ b/packages/widgets/package.json @@ -1,6 +1,6 @@ { "name": "@wordpress/widgets", - "version": "4.8.2", + "version": "4.8.3", "description": "Functionality used by the widgets block editor in the Widgets screen and the Customizer.", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", From bcba55a1532c1b9804c3444d204b18c3adca5aec Mon Sep 17 00:00:00 2001 From: Carolina Nymark Date: Mon, 30 Sep 2024 09:07:44 +0200 Subject: [PATCH 072/214] Categories block: Escape label (#65540) * Categories block: Escape label Escape the label attribute before output inside the label HTML element, using esc_html(). * Categories: Switch escaping function Escape the label with wp_kses_post() instead of esc_html to allow some HTML tags and to be consistent with escaping other labels in other blocks. Co-authored-by: carolinan Co-authored-by: cbravobernal --- packages/block-library/src/categories/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/block-library/src/categories/index.php b/packages/block-library/src/categories/index.php index e15f662bdfbb9..60a29713b4660 100644 --- a/packages/block-library/src/categories/index.php +++ b/packages/block-library/src/categories/index.php @@ -49,7 +49,7 @@ function render_block_core_categories( $attributes, $content, $block ) { $show_label = empty( $attributes['showLabel'] ) ? ' screen-reader-text' : ''; $default_label = $taxonomy->label; - $label_text = ! empty( $attributes['label'] ) ? $attributes['label'] : $default_label; + $label_text = ! empty( $attributes['label'] ) ? wp_kses_post( $attributes['label'] ) : $default_label; $wrapper_markup = '
%2$s
'; $items_markup = wp_dropdown_categories( $args ); $type = 'dropdown'; From aa59d85b3ea3144635bc82680fbebf61231bea81 Mon Sep 17 00:00:00 2001 From: Lena Morita Date: Mon, 30 Sep 2024 22:52:22 +0900 Subject: [PATCH 073/214] ToggleGroupControl: Fix arrow key navigation in RTL (#65735) * ToggleGroupControl: Fix arrow key navigation in RTL * Add changelog Co-authored-by: mirka <0mirka00@git.wordpress.org> Co-authored-by: tyxla --- packages/components/CHANGELOG.md | 1 + .../toggle-group-control/as-radio-group.tsx | 2 ++ 2 files changed, 3 insertions(+) diff --git a/packages/components/CHANGELOG.md b/packages/components/CHANGELOG.md index 148c1bf746a03..eb158bcd5111a 100644 --- a/packages/components/CHANGELOG.md +++ b/packages/components/CHANGELOG.md @@ -10,6 +10,7 @@ - `ToolsPanel`: atomic one-step state update when (un)registering panels ([#65564](https://github.com/WordPress/gutenberg/pull/65564)). - `Navigator`: fix `isInitial` logic ([#65527](https://github.com/WordPress/gutenberg/pull/65527)). +- `ToggleGroupControl`: Fix arrow key navigation in RTL ([#65735](https://github.com/WordPress/gutenberg/pull/65735)). ## 28.8.0 (2024-09-19) diff --git a/packages/components/src/toggle-group-control/toggle-group-control/as-radio-group.tsx b/packages/components/src/toggle-group-control/toggle-group-control/as-radio-group.tsx index 6baadd65dc5ff..c062e35cb2b72 100644 --- a/packages/components/src/toggle-group-control/toggle-group-control/as-radio-group.tsx +++ b/packages/components/src/toggle-group-control/toggle-group-control/as-radio-group.tsx @@ -10,6 +10,7 @@ import { useStoreState } from '@ariakit/react'; */ import { useInstanceId } from '@wordpress/compose'; import { forwardRef, useMemo } from '@wordpress/element'; +import { isRTL } from '@wordpress/i18n'; /** * Internal dependencies @@ -65,6 +66,7 @@ function UnforwardedToggleGroupControlAsRadioGroup( defaultValue, value, setValue: wrappedOnChangeProp, + rtl: isRTL(), } ); const selectedValue = useStoreState( radio, 'value' ); From 545808011226851644094c2c8cac2a1098f4248c Mon Sep 17 00:00:00 2001 From: Lena Morita Date: Thu, 26 Sep 2024 02:51:12 +0900 Subject: [PATCH 074/214] MediaPlaceholder: Use InputControl in URL popover (#65656) * MediaPlaceholder: Use InputControl in URL popover * Tweak width in mobile Co-authored-by: mirka <0mirka00@git.wordpress.org> Co-authored-by: ciampo --- .../components/media-placeholder/content.scss | 22 ++---------- .../src/components/media-placeholder/index.js | 34 +++++++++---------- 2 files changed, 20 insertions(+), 36 deletions(-) diff --git a/packages/block-editor/src/components/media-placeholder/content.scss b/packages/block-editor/src/components/media-placeholder/content.scss index eeb2928df80ba..2f7bb2e673f12 100644 --- a/packages/block-editor/src/components/media-placeholder/content.scss +++ b/packages/block-editor/src/components/media-placeholder/content.scss @@ -1,27 +1,11 @@ .block-editor-media-placeholder__url-input-form { - display: flex; - - // Selector requires a lot of specificity to override base styles. - input[type="url"].block-editor-media-placeholder__url-input-field { - width: 100%; - min-width: 200px; - - @include break-small() { - width: 300px; - } - - flex-grow: 1; - border: none; - border-radius: 0; - margin: 2px; + min-width: 260px; + @include break-small() { + width: 300px; } } -.block-editor-media-placeholder__url-input-submit-button { - flex-shrink: 1; -} - .block-editor-media-placeholder__cancel-button.is-link { margin: 1em; display: block; diff --git a/packages/block-editor/src/components/media-placeholder/index.js b/packages/block-editor/src/components/media-placeholder/index.js index 4d41289f324c0..ed0bac086949c 100644 --- a/packages/block-editor/src/components/media-placeholder/index.js +++ b/packages/block-editor/src/components/media-placeholder/index.js @@ -11,6 +11,8 @@ import { FormFileUpload, Placeholder, DropZone, + __experimentalInputControl as InputControl, + __experimentalInputControlSuffixWrapper as InputControlSuffixWrapper, withFilters, } from '@wordpress/components'; import { __ } from '@wordpress/i18n'; @@ -42,21 +44,23 @@ const InsertFromURLPopover = ( { className="block-editor-media-placeholder__url-input-form" onSubmit={ onSubmit } > - -

diff --git a/packages/block-editor/src/components/url-input/index.js b/packages/block-editor/src/components/url-input/index.js index 25c033e88749b..cb058be5c932f 100644 --- a/packages/block-editor/src/components/url-input/index.js +++ b/packages/block-editor/src/components/url-input/index.js @@ -540,8 +540,7 @@ class URLInput extends Component { > { suggestions.map( ( suggestion, index ) => ( + + Item 1 + Item 2 + { showThirdItem && Item 3 } + + + + ); +} + +describe( 'Composite', () => { + it( 'should remain focusable even when there are no elements in the DOM associated with the currently active ID', async () => { + await renderAndValidate( ); + + const toggleButton = screen.getByRole( 'button', { + name: 'Toggle third item', + } ); + + await press.Tab(); + await press.Tab(); + + expect( + screen.getByRole( 'button', { name: 'Item 1' } ) + ).toHaveFocus(); + + await press.ArrowRight(); + await press.ArrowRight(); + + expect( + screen.getByRole( 'button', { name: 'Item 3' } ) + ).toHaveFocus(); + + await click( toggleButton ); + + expect( + screen.queryByRole( 'button', { name: 'Item 3' } ) + ).not.toBeInTheDocument(); + + await press.ShiftTab(); + + expect( + screen.getByRole( 'button', { name: 'Item 2' } ) + ).toHaveFocus(); + + await click( toggleButton ); + + expect( + screen.getByRole( 'button', { name: 'Item 3' } ) + ).toBeVisible(); + + await press.ShiftTab(); + + expect( + screen.getByRole( 'button', { name: 'Item 2' } ) + ).toHaveFocus(); + + await press.ArrowRight(); + + expect( + screen.getByRole( 'button', { name: 'Item 3' } ) + ).toHaveFocus(); + } ); +} ); From 53b4edf19fca4ba73b5b6e09bd78848578ac284d Mon Sep 17 00:00:00 2001 From: Vipul Gupta <55375170+vipul0425@users.noreply.github.com> Date: Tue, 24 Sep 2024 17:15:19 +0530 Subject: [PATCH 088/214] Fix: Button Replace remaining 40px default size violations [Block Editor 3] (#65225) * Fix: Global Styles component to use 40px default size. * Fix: Block variation picket to use 40px default size. * Fix: Block variation transform to use 40px default size. * Fix: color gradient dropdown and block appender button to use 40px default size. * fix: shadowpanel clear button * fix: Button Block appender issues. * fix: Coverts shadow panel Buttons to normal html buttons. * Update packages/block-library/src/group/editor.scss Co-authored-by: Lena Morita * Update packages/block-library/src/group/editor.scss Co-authored-by: Lena Morita * feat: Add tootlip tu shadow button. --------- Co-authored-by: vipul0425 Co-authored-by: DaniGuardiola Co-authored-by: t-hamano Co-authored-by: jasmussen Co-authored-by: jameskoster Co-authored-by: tyxla Co-authored-by: mirka <0mirka00@git.wordpress.org> Co-authored-by: ciampo --- .../block-variation-picker/index.js | 3 +- .../block-variation-transforms/index.js | 4 +- .../button-block-appender/content.scss | 5 -- .../components/button-block-appender/index.js | 3 +- .../components/colors-gradients/dropdown.js | 6 +- .../components/global-styles/color-panel.js | 6 +- .../components/global-styles/filters-panel.js | 3 +- .../global-styles/shadow-panel-components.js | 61 +++++++++---------- .../src/components/global-styles/style.scss | 5 ++ packages/block-library/src/group/editor.scss | 4 +- 10 files changed, 42 insertions(+), 58 deletions(-) diff --git a/packages/block-editor/src/components/block-variation-picker/index.js b/packages/block-editor/src/components/block-variation-picker/index.js index ecdf8b23bec3f..f3687a305e84f 100644 --- a/packages/block-editor/src/components/block-variation-picker/index.js +++ b/packages/block-editor/src/components/block-variation-picker/index.js @@ -64,8 +64,7 @@ function BlockVariationPicker( { { allowSkip && (
- } - /> + + + { isActive && } + + } + /> + ); } @@ -143,11 +142,7 @@ function renderShadowToggle() { }; return ( - - } - /> - ) ) } + + + + ) + ) } diff --git a/packages/block-editor/src/components/inspector-popover-header/index.js b/packages/block-editor/src/components/inspector-popover-header/index.js index d543ab0298cc6..cf6bf0d3d6796 100644 --- a/packages/block-editor/src/components/inspector-popover-header/index.js +++ b/packages/block-editor/src/components/inspector-popover-header/index.js @@ -31,8 +31,7 @@ export default function InspectorPopoverHeader( { { actions.map( ( { label, icon, onClick } ) => ( + ); } diff --git a/packages/block-editor/src/components/list-view/style.scss b/packages/block-editor/src/components/list-view/style.scss index 05a04abfd110b..f5db1f25c1c68 100644 --- a/packages/block-editor/src/components/list-view/style.scss +++ b/packages/block-editor/src/components/list-view/style.scss @@ -216,6 +216,15 @@ text-align: left; position: relative; white-space: nowrap; + border-radius: 2px; + box-sizing: border-box; + color: inherit; + font-family: inherit; + font-size: 13px; + font-weight: 400; + margin: 0; + text-decoration: none; + transition: box-shadow 0.1s linear; &.is-dropping-before::before { content: ""; diff --git a/packages/block-editor/src/components/media-placeholder/index.js b/packages/block-editor/src/components/media-placeholder/index.js index ed0bac086949c..f16e431722723 100644 --- a/packages/block-editor/src/components/media-placeholder/index.js +++ b/packages/block-editor/src/components/media-placeholder/index.js @@ -91,8 +91,7 @@ const URLSelectionUI = ( { src, onChangeSrc, onSelectURL } ) => { return (
-
+
@@ -83,4 +83,16 @@ class="foo" data-testid="can use classes with several dashes" >
+
+
+ +
diff --git a/packages/e2e-tests/plugins/interactive-blocks/directive-class/view.js b/packages/e2e-tests/plugins/interactive-blocks/directive-class/view.js index f008ae910673f..9ae5207c0e05c 100644 --- a/packages/e2e-tests/plugins/interactive-blocks/directive-class/view.js +++ b/packages/e2e-tests/plugins/interactive-blocks/directive-class/view.js @@ -15,9 +15,9 @@ const { state } = store( 'directive-class', { toggleFalseValue: () => { state.falseValue = ! state.falseValue; }, - toggleContextFalseValue: () => { + toggleContextValue: () => { const context = getContext(); - context.falseValue = ! context.falseValue; + context.value = ! context.value; }, }, } ); diff --git a/packages/e2e-tests/plugins/interactive-blocks/directive-init/view.js b/packages/e2e-tests/plugins/interactive-blocks/directive-init/view.js index 9990e2743c879..a8c70a4a90720 100644 --- a/packages/e2e-tests/plugins/interactive-blocks/directive-init/view.js +++ b/packages/e2e-tests/plugins/interactive-blocks/directive-init/view.js @@ -12,7 +12,7 @@ const { directive } = privateApis( directive( 'show-mock', ( { directives: { 'show-mock': showMock }, element, evaluate } ) => { - const entry = showMock.find( ( { suffix } ) => suffix === 'default' ); + const entry = showMock.find( ( { suffix } ) => suffix === null ); if ( ! evaluate( entry ) ) { return null; } diff --git a/packages/e2e-tests/plugins/interactive-blocks/directive-on-document/view.js b/packages/e2e-tests/plugins/interactive-blocks/directive-on-document/view.js index 19ffc2a530193..b9689ac978f85 100644 --- a/packages/e2e-tests/plugins/interactive-blocks/directive-on-document/view.js +++ b/packages/e2e-tests/plugins/interactive-blocks/directive-on-document/view.js @@ -12,7 +12,7 @@ const { directive } = privateApis( directive( 'show-mock', ( { directives: { 'show-mock': showMock }, element, evaluate } ) => { - const entry = showMock.find( ( { suffix } ) => suffix === 'default' ); + const entry = showMock.find( ( { suffix } ) => suffix === null ); if ( ! evaluate( entry ) ) { return null; } diff --git a/packages/e2e-tests/plugins/interactive-blocks/directive-on-window/view.js b/packages/e2e-tests/plugins/interactive-blocks/directive-on-window/view.js index e22379ad4d077..ef72e266e1075 100644 --- a/packages/e2e-tests/plugins/interactive-blocks/directive-on-window/view.js +++ b/packages/e2e-tests/plugins/interactive-blocks/directive-on-window/view.js @@ -12,7 +12,7 @@ const { directive } = privateApis( directive( 'show-mock', ( { directives: { 'show-mock': showMock }, element, evaluate } ) => { - const entry = showMock.find( ( { suffix } ) => suffix === 'default' ); + const entry = showMock.find( ( { suffix } ) => suffix === null ); if ( ! evaluate( entry ) ) { return null; } diff --git a/packages/e2e-tests/plugins/interactive-blocks/directive-run/view.js b/packages/e2e-tests/plugins/interactive-blocks/directive-run/view.js index cb9be34b2460a..125ac39204230 100644 --- a/packages/e2e-tests/plugins/interactive-blocks/directive-run/view.js +++ b/packages/e2e-tests/plugins/interactive-blocks/directive-run/view.js @@ -21,9 +21,7 @@ directive( element, evaluate, } ) => { - const entry = showChildren.find( - ( { suffix } ) => suffix === 'default' - ); + const entry = showChildren.find( ( { suffix } ) => suffix === null ); return evaluate( entry ) ? element : cloneElement( element, { children: null } ); diff --git a/packages/e2e-tests/plugins/interactive-blocks/directive-watch/view.js b/packages/e2e-tests/plugins/interactive-blocks/directive-watch/view.js index af2d452a10431..ad035811a0bcd 100644 --- a/packages/e2e-tests/plugins/interactive-blocks/directive-watch/view.js +++ b/packages/e2e-tests/plugins/interactive-blocks/directive-watch/view.js @@ -12,7 +12,7 @@ const { directive } = privateApis( directive( 'show-mock', ( { directives: { 'show-mock': showMock }, element, evaluate } ) => { - const entry = showMock.find( ( { suffix } ) => suffix === 'default' ); + const entry = showMock.find( ( { suffix } ) => suffix === null ); if ( ! evaluate( entry ) ) { return null; } diff --git a/packages/e2e-tests/plugins/interactive-blocks/tovdom-islands/view.js b/packages/e2e-tests/plugins/interactive-blocks/tovdom-islands/view.js index 2993a273486c2..8016e931624a1 100644 --- a/packages/e2e-tests/plugins/interactive-blocks/tovdom-islands/view.js +++ b/packages/e2e-tests/plugins/interactive-blocks/tovdom-islands/view.js @@ -12,7 +12,7 @@ const { directive, h } = privateApis( directive( 'show-mock', ( { directives: { 'show-mock': showMock }, element, evaluate } ) => { - const entry = showMock.find( ( { suffix } ) => suffix === 'default' ); + const entry = showMock.find( ( { suffix } ) => suffix === null ); if ( ! evaluate( entry ) ) { element.props.children = h( diff --git a/packages/interactivity/CHANGELOG.md b/packages/interactivity/CHANGELOG.md index cc9516bdb2cfa..5092fe4feb807 100644 --- a/packages/interactivity/CHANGELOG.md +++ b/packages/interactivity/CHANGELOG.md @@ -4,6 +4,7 @@ ### Bug Fixes +- Fix an issue where "default" could not be used as a directive suffix ([#65815](https://github.com/WordPress/gutenberg/pull/65815)). - Correctly handle lazily added, deeply nested properties with `deepMerge()` ([#65465](https://github.com/WordPress/gutenberg/pull/65465)). ## 6.8.0 (2024-09-19) diff --git a/packages/interactivity/src/directives.tsx b/packages/interactivity/src/directives.tsx index 340880954683d..31e07d095e0a4 100644 --- a/packages/interactivity/src/directives.tsx +++ b/packages/interactivity/src/directives.tsx @@ -18,7 +18,14 @@ import { splitTask, isPlainObject, } from './utils'; -import { directive, getEvaluate, type DirectiveEntry } from './hooks'; +import { + directive, + getEvaluate, + isDefaultDirectiveSuffix, + isNonDefaultDirectiveSuffix, + type DirectiveCallback, + type DirectiveEntry, +} from './hooks'; import { getScope } from './scopes'; import { proxifyState, proxifyContext, deepMerge } from './proxies'; @@ -86,11 +93,13 @@ const cssStringToObject = ( * * @param type 'window' or 'document' */ -const getGlobalEventDirective = ( type: 'window' | 'document' ) => { +const getGlobalEventDirective = ( + type: 'window' | 'document' +): DirectiveCallback => { return ( { directives, evaluate } ) => { directives[ `on-${ type }` ] - .filter( ( { suffix } ) => suffix !== 'default' ) - .forEach( ( entry: DirectiveEntry ) => { + .filter( isNonDefaultDirectiveSuffix ) + .forEach( ( entry ) => { const eventName = entry.suffix.split( '--', 1 )[ 0 ]; useInit( () => { const cb = ( event: Event ) => evaluate( entry, event ); @@ -108,11 +117,13 @@ const getGlobalEventDirective = ( type: 'window' | 'document' ) => { * * @param type 'window' or 'document' */ -const getGlobalAsyncEventDirective = ( type: 'window' | 'document' ) => { +const getGlobalAsyncEventDirective = ( + type: 'window' | 'document' +): DirectiveCallback => { return ( { directives, evaluate } ) => { directives[ `on-async-${ type }` ] - .filter( ( { suffix } ) => suffix !== 'default' ) - .forEach( ( entry: DirectiveEntry ) => { + .filter( isNonDefaultDirectiveSuffix ) + .forEach( ( entry ) => { const eventName = entry.suffix.split( '--', 1 )[ 0 ]; useInit( () => { const cb = async ( event: Event ) => { @@ -139,9 +150,7 @@ export default () => { context: inheritedContext, } ) => { const { Provider } = inheritedContext; - const defaultEntry = context.find( - ( { suffix } ) => suffix === 'default' - ); + const defaultEntry = context.find( isDefaultDirectiveSuffix ); const { client: inheritedClient, server: inheritedServer } = useContext( inheritedContext ); @@ -256,15 +265,13 @@ export default () => { // data-wp-on--[event] directive( 'on', ( { directives: { on }, element, evaluate } ) => { const events = new Map< string, Set< DirectiveEntry > >(); - on.filter( ( { suffix } ) => suffix !== 'default' ).forEach( - ( entry ) => { - const event = entry.suffix.split( '--' )[ 0 ]; - if ( ! events.has( event ) ) { - events.set( event, new Set< DirectiveEntry >() ); - } - events.get( event )!.add( entry ); + on.filter( isNonDefaultDirectiveSuffix ).forEach( ( entry ) => { + const event = entry.suffix.split( '--' )[ 0 ]; + if ( ! events.has( event ) ) { + events.set( event, new Set< DirectiveEntry >() ); } - ); + events.get( event )!.add( entry ); + } ); events.forEach( ( entries, eventType ) => { const existingHandler = element.props[ `on${ eventType }` ]; @@ -308,7 +315,7 @@ export default () => { ( { directives: { 'on-async': onAsync }, element, evaluate } ) => { const events = new Map< string, Set< DirectiveEntry > >(); onAsync - .filter( ( { suffix } ) => suffix !== 'default' ) + .filter( isNonDefaultDirectiveSuffix ) .forEach( ( entry ) => { const event = entry.suffix.split( '--' )[ 0 ]; if ( ! events.has( event ) ) { @@ -350,7 +357,7 @@ export default () => { 'class', ( { directives: { class: classNames }, element, evaluate } ) => { classNames - .filter( ( { suffix } ) => suffix !== 'default' ) + .filter( isNonDefaultDirectiveSuffix ) .forEach( ( entry ) => { const className = entry.suffix; const result = evaluate( entry ); @@ -391,119 +398,112 @@ export default () => { // data-wp-style--[style-prop] directive( 'style', ( { directives: { style }, element, evaluate } ) => { - style - .filter( ( { suffix } ) => suffix !== 'default' ) - .forEach( ( entry ) => { - const styleProp = entry.suffix; - const result = evaluate( entry ); - element.props.style = element.props.style || {}; - if ( typeof element.props.style === 'string' ) { - element.props.style = cssStringToObject( - element.props.style - ); - } + style.filter( isNonDefaultDirectiveSuffix ).forEach( ( entry ) => { + const styleProp = entry.suffix; + const result = evaluate( entry ); + element.props.style = element.props.style || {}; + if ( typeof element.props.style === 'string' ) { + element.props.style = cssStringToObject( element.props.style ); + } + if ( ! result ) { + delete element.props.style[ styleProp ]; + } else { + element.props.style[ styleProp ] = result; + } + + useInit( () => { + /* + * This seems necessary because Preact doesn't change the styles on + * the hydration, so we have to do it manually. It doesn't need deps + * because it only needs to do it the first time. + */ if ( ! result ) { - delete element.props.style[ styleProp ]; + ( + element.ref as RefObject< HTMLElement > + ).current!.style.removeProperty( styleProp ); } else { - element.props.style[ styleProp ] = result; + ( element.ref as RefObject< HTMLElement > ).current!.style[ + styleProp + ] = result; } - - useInit( () => { - /* - * This seems necessary because Preact doesn't change the styles on - * the hydration, so we have to do it manually. It doesn't need deps - * because it only needs to do it the first time. - */ - if ( ! result ) { - ( - element.ref as RefObject< HTMLElement > - ).current!.style.removeProperty( styleProp ); - } else { - ( - element.ref as RefObject< HTMLElement > - ).current!.style[ styleProp ] = result; - } - } ); } ); + } ); } ); // data-wp-bind--[attribute] directive( 'bind', ( { directives: { bind }, element, evaluate } ) => { - bind.filter( ( { suffix } ) => suffix !== 'default' ).forEach( - ( entry ) => { - const attribute = entry.suffix; - const result = evaluate( entry ); - element.props[ attribute ] = result; + bind.filter( isNonDefaultDirectiveSuffix ).forEach( ( entry ) => { + const attribute = entry.suffix; + const result = evaluate( entry ); + element.props[ attribute ] = result; + + /* + * This is necessary because Preact doesn't change the attributes on the + * hydration, so we have to do it manually. It only needs to do it the + * first time. After that, Preact will handle the changes. + */ + useInit( () => { + const el = ( element.ref as RefObject< HTMLElement > ).current!; /* - * This is necessary because Preact doesn't change the attributes on the - * hydration, so we have to do it manually. It only needs to do it the - * first time. After that, Preact will handle the changes. + * We set the value directly to the corresponding HTMLElement instance + * property excluding the following special cases. We follow Preact's + * logic: https://github.com/preactjs/preact/blob/ea49f7a0f9d1ff2c98c0bdd66aa0cbc583055246/src/diff/props.js#L110-L129 */ - useInit( () => { - const el = ( element.ref as RefObject< HTMLElement > ) - .current!; - - /* - * We set the value directly to the corresponding HTMLElement instance - * property excluding the following special cases. We follow Preact's - * logic: https://github.com/preactjs/preact/blob/ea49f7a0f9d1ff2c98c0bdd66aa0cbc583055246/src/diff/props.js#L110-L129 - */ - if ( attribute === 'style' ) { - if ( typeof result === 'string' ) { - el.style.cssText = result; - } - return; - } else if ( - attribute !== 'width' && - attribute !== 'height' && - attribute !== 'href' && - attribute !== 'list' && - attribute !== 'form' && - /* - * The value for `tabindex` follows the parsing rules for an - * integer. If that fails, or if the attribute isn't present, then - * the browsers should "follow platform conventions to determine if - * the element should be considered as a focusable area", - * practically meaning that most elements get a default of `-1` (not - * focusable), but several also get a default of `0` (focusable in - * order after all elements with a positive `tabindex` value). - * - * @see https://html.spec.whatwg.org/#tabindex-value - */ - attribute !== 'tabIndex' && - attribute !== 'download' && - attribute !== 'rowSpan' && - attribute !== 'colSpan' && - attribute !== 'role' && - attribute in el - ) { - try { - el[ attribute ] = - result === null || result === undefined - ? '' - : result; - return; - } catch ( err ) {} + if ( attribute === 'style' ) { + if ( typeof result === 'string' ) { + el.style.cssText = result; } + return; + } else if ( + attribute !== 'width' && + attribute !== 'height' && + attribute !== 'href' && + attribute !== 'list' && + attribute !== 'form' && /* - * aria- and data- attributes have no boolean representation. - * A `false` value is different from the attribute not being - * present, so we can't remove it. - * We follow Preact's logic: https://github.com/preactjs/preact/blob/ea49f7a0f9d1ff2c98c0bdd66aa0cbc583055246/src/diff/props.js#L131C24-L136 + * The value for `tabindex` follows the parsing rules for an + * integer. If that fails, or if the attribute isn't present, then + * the browsers should "follow platform conventions to determine if + * the element should be considered as a focusable area", + * practically meaning that most elements get a default of `-1` (not + * focusable), but several also get a default of `0` (focusable in + * order after all elements with a positive `tabindex` value). + * + * @see https://html.spec.whatwg.org/#tabindex-value */ - if ( - result !== null && - result !== undefined && - ( result !== false || attribute[ 4 ] === '-' ) - ) { - el.setAttribute( attribute, result ); - } else { - el.removeAttribute( attribute ); - } - } ); - } - ); + attribute !== 'tabIndex' && + attribute !== 'download' && + attribute !== 'rowSpan' && + attribute !== 'colSpan' && + attribute !== 'role' && + attribute in el + ) { + try { + el[ attribute ] = + result === null || result === undefined + ? '' + : result; + return; + } catch ( err ) {} + } + /* + * aria- and data- attributes have no boolean representation. + * A `false` value is different from the attribute not being + * present, so we can't remove it. + * We follow Preact's logic: https://github.com/preactjs/preact/blob/ea49f7a0f9d1ff2c98c0bdd66aa0cbc583055246/src/diff/props.js#L131C24-L136 + */ + if ( + result !== null && + result !== undefined && + ( result !== false || attribute[ 4 ] === '-' ) + ) { + el.setAttribute( attribute, result ); + } else { + el.removeAttribute( attribute ); + } + } ); + } ); } ); // data-wp-ignore @@ -528,7 +528,7 @@ export default () => { // data-wp-text directive( 'text', ( { directives: { text }, element, evaluate } ) => { - const entry = text.find( ( { suffix } ) => suffix === 'default' ); + const entry = text.find( isDefaultDirectiveSuffix ); if ( ! entry ) { element.props.children = null; return; @@ -565,12 +565,13 @@ export default () => { const inheritedValue = useContext( inheritedContext ); const [ entry ] = each; - const { namespace, suffix } = entry; + const { namespace } = entry; const list = evaluate( entry ); + const itemProp = isNonDefaultDirectiveSuffix( entry ) + ? kebabToCamelCase( entry.suffix ) + : 'item'; return list.map( ( item ) => { - const itemProp = - suffix === 'default' ? 'item' : kebabToCamelCase( suffix ); const itemContext = proxifyContext( proxifyState( namespace, {} ), inheritedValue.client[ namespace ] diff --git a/packages/interactivity/src/hooks.tsx b/packages/interactivity/src/hooks.tsx index 44dc2645da2c8..d0423b5ebb657 100644 --- a/packages/interactivity/src/hooks.tsx +++ b/packages/interactivity/src/hooks.tsx @@ -23,9 +23,29 @@ import { getScope, setScope, resetScope, type Scope } from './scopes'; export interface DirectiveEntry { value: string | object; namespace: string; + suffix: string | null; +} + +export interface NonDefaultSuffixDirectiveEntry extends DirectiveEntry { suffix: string; } +export interface DefaultSuffixDirectiveEntry extends DirectiveEntry { + suffix: null; +} + +export function isNonDefaultDirectiveSuffix( + entry: DirectiveEntry +): entry is NonDefaultSuffixDirectiveEntry { + return entry.suffix !== null; +} + +export function isDefaultDirectiveSuffix( + entry: DirectiveEntry +): entry is DefaultSuffixDirectiveEntry { + return entry.suffix === null; +} + type DirectiveEntries = Record< string, DirectiveEntry[] >; interface DirectiveArgs { @@ -56,7 +76,7 @@ interface DirectiveArgs { evaluate: Evaluate; } -interface DirectiveCallback { +export interface DirectiveCallback { ( args: DirectiveArgs ): VNode< any > | null | void; } @@ -107,7 +127,7 @@ const directivePriorities: Record< string, number > = {}; * directive( * 'alert', // Name without the `data-wp-` prefix. * ( { directives: { alert }, element, evaluate } ) => { - * const defaultEntry = alert.find( entry => entry.suffix === 'default' ); + * const defaultEntry = alert.find( isDefaultDirectiveSuffix ); * element.props.onclick = () => { alert( evaluate( defaultEntry ) ); } * } * ) @@ -126,7 +146,7 @@ const directivePriorities: Record< string, number > = {}; * * ``` * Note that, in the previous example, the directive callback gets the path - * value (`state.alert`) from the directive entry with suffix `default`. A + * value (`state.alert`) from the directive entry with suffix `null`. A * custom suffix can also be specified by appending `--` to the directive * attribute, followed by the suffix, like in the following HTML snippet: * @@ -307,9 +327,7 @@ options.vnode = ( vnode: VNode< any > ) => { const props = vnode.props; const directives = props.__directives; if ( directives.key ) { - vnode.key = directives.key.find( - ( { suffix } ) => suffix === 'default' - ).value; + vnode.key = directives.key.find( isDefaultDirectiveSuffix ).value; } delete props.__directives; const priorityLevels = getPriorityLevels( directives ); diff --git a/packages/interactivity/src/vdom.ts b/packages/interactivity/src/vdom.ts index 98deca656cfa6..b533a130e4a6f 100644 --- a/packages/interactivity/src/vdom.ts +++ b/packages/interactivity/src/vdom.ts @@ -7,6 +7,7 @@ import { h, type ComponentChild, type JSX } from 'preact'; */ import { directivePrefix as p } from './constants'; import { warn } from './utils'; +import { type DirectiveEntry } from './hooks'; const ignoreAttr = `data-${ p }-ignore`; const islandAttr = `data-${ p }-interactive`; @@ -139,26 +140,25 @@ export function toVdom( root: Node ): Array< ComponentChild > { } if ( directives.length ) { - props.__directives = directives.reduce( - ( obj, [ name, ns, value ] ) => { - const directiveMatch = directiveParser.exec( name ); - if ( directiveMatch === null ) { - warn( `Found malformed directive name: ${ name }.` ); - return obj; - } - const prefix = directiveMatch[ 1 ] || ''; - const suffix = directiveMatch[ 2 ] || 'default'; - - obj[ prefix ] = obj[ prefix ] || []; - obj[ prefix ].push( { - namespace: ns ?? currentNamespace(), - value, - suffix, - } ); + props.__directives = directives.reduce< + Record< string, Array< DirectiveEntry > > + >( ( obj, [ name, ns, value ] ) => { + const directiveMatch = directiveParser.exec( name ); + if ( directiveMatch === null ) { + warn( `Found malformed directive name: ${ name }.` ); return obj; - }, - {} - ); + } + const prefix = directiveMatch[ 1 ] || ''; + const suffix = directiveMatch[ 2 ] || null; + + obj[ prefix ] = obj[ prefix ] || []; + obj[ prefix ].push( { + namespace: ns ?? currentNamespace()!, + value: value as DirectiveEntry[ 'value' ], + suffix, + } ); + return obj; + }, {} ); } // @ts-expect-error Fixed in upcoming preact release https://github.com/preactjs/preact/pull/4334 diff --git a/test/e2e/specs/interactivity/directive-class.spec.ts b/test/e2e/specs/interactivity/directive-class.spec.ts index b7e085aba1514..96b725568767a 100644 --- a/test/e2e/specs/interactivity/directive-class.spec.ts +++ b/test/e2e/specs/interactivity/directive-class.spec.ts @@ -108,4 +108,14 @@ test.describe( 'data-wp-class', () => { const el = page.getByTestId( 'can use classes with several dashes' ); await expect( el ).toHaveClass( 'main-bg----color' ); } ); + + test( 'can use "default" as a class name', async ( { page } ) => { + const el = page.getByTestId( 'class name default' ); + const btn = page.getByTestId( 'toggle class name default' ); + await expect( el ).not.toHaveClass( 'default' ); + await btn.click(); + await expect( el ).toHaveClass( 'default' ); + await btn.click(); + await expect( el ).not.toHaveClass( 'default' ); + } ); } ); From 381ada5240aa84c9331e22e3b32c576a6dfb7f0f Mon Sep 17 00:00:00 2001 From: Manzoor Wani Date: Thu, 26 Sep 2024 01:44:45 -0700 Subject: [PATCH 101/214] Fix aria-checked attribute not set for plugin settings buttons in Options dropdown (#65667) Co-authored-by: manzoorwanijk Co-authored-by: Mamaduka Co-authored-by: ciampo --- .../complementary-area-toggle/index.js | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/packages/interface/src/components/complementary-area-toggle/index.js b/packages/interface/src/components/complementary-area-toggle/index.js index 15f9e48d71083..2f8d8dd413674 100644 --- a/packages/interface/src/components/complementary-area-toggle/index.js +++ b/packages/interface/src/components/complementary-area-toggle/index.js @@ -10,6 +10,25 @@ import { useDispatch, useSelect } from '@wordpress/data'; import { store as interfaceStore } from '../../store'; import complementaryAreaContext from '../complementary-area-context'; +/** + * Whether the role supports checked state. + * + * @param {import('react').AriaRole} role Role. + * @return {boolean} Whether the role supports checked state. + * @see https://www.w3.org/TR/wai-aria-1.1/#aria-checked + */ +function roleSupportsCheckedState( role ) { + return [ + 'checkbox', + 'option', + 'radio', + 'switch', + 'menuitemcheckbox', + 'menuitemradio', + 'treeitem', + ].includes( role ); +} + function ComplementaryAreaToggle( { as = Button, scope, @@ -35,6 +54,10 @@ function ComplementaryAreaToggle( { { if ( isSelected ) { disableComplementaryArea( scope ); From 8a54551e0ac867c527138055bae99410653dbec1 Mon Sep 17 00:00:00 2001 From: Marco Ciampini Date: Tue, 8 Oct 2024 14:31:22 +0200 Subject: [PATCH 102/214] Global styles: leave screen if current shadow entry gets deleted (#65935) * Global styles: leave screen if current shadow entry gets deleted * Refine approach * Apply feedback --- Co-authored-by: ciampo Co-authored-by: t-hamano Co-authored-by: tyxla Co-authored-by: nith53 Co-authored-by: benniledl --- .../global-styles/shadows-edit-panel.js | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/packages/edit-site/src/components/global-styles/shadows-edit-panel.js b/packages/edit-site/src/components/global-styles/shadows-edit-panel.js index ec1dd1a900c3b..555107d155f15 100644 --- a/packages/edit-site/src/components/global-styles/shadows-edit-panel.js +++ b/packages/edit-site/src/components/global-styles/shadows-edit-panel.js @@ -35,7 +35,7 @@ import { reset, moreVertical, } from '@wordpress/icons'; -import { useState, useMemo } from '@wordpress/element'; +import { useState, useMemo, useEffect } from '@wordpress/element'; /** * Internal dependencies @@ -73,12 +73,30 @@ const presetShadowMenuItems = [ export default function ShadowsEditPanel() { const { + goBack, params: { category, slug }, - goTo, } = useNavigator(); const [ shadows, setShadows ] = useGlobalSetting( `shadow.presets.${ category }` ); + + useEffect( () => { + const hasCurrentShadow = shadows?.some( + ( shadow ) => shadow.slug === slug + ); + // If the shadow being edited doesn't exist anymore in the global styles setting, navigate back + // to prevent the user from editing a non-existent shadow entry. + // This can happen, for example: + // - when the user deletes the shadow + // - when the user resets the styles while editing a custom shadow + // + // The check on the slug is necessary to prevent a double back navigation when the user triggers + // a backward navigation by interacting with the screen's UI. + if ( !! slug && ! hasCurrentShadow ) { + goBack(); + } + }, [ shadows, slug, goBack ] ); + const [ baseShadows ] = useGlobalSetting( `shadow.presets.${ category }`, undefined, @@ -119,9 +137,7 @@ export default function ShadowsEditPanel() { }; const handleShadowDelete = () => { - const updatedShadows = shadows.filter( ( s ) => s.slug !== slug ); - setShadows( updatedShadows ); - goTo( `/shadows` ); + setShadows( shadows.filter( ( s ) => s.slug !== slug ) ); }; const handleShadowRename = ( newName ) => { From 35f77733c8a6123040eff3648d6eb7524f01803f Mon Sep 17 00:00:00 2001 From: Matias Benedetto Date: Tue, 8 Oct 2024 10:11:07 -0300 Subject: [PATCH 103/214] List all active fonts in the typography section (#65806) * list all active fonts * sort active fonts alphabetically also skip unnecessary sorts * abstract font source mapping into function --------- Co-authored-by: Vicente Canales <1157901+vcanales@users.noreply.github.com> --- .../components/global-styles/font-families.js | 35 +++++++++++-------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/packages/edit-site/src/components/global-styles/font-families.js b/packages/edit-site/src/components/global-styles/font-families.js index 5332478823c21..cd1697b7b79bd 100644 --- a/packages/edit-site/src/components/global-styles/font-families.js +++ b/packages/edit-site/src/components/global-styles/font-families.js @@ -25,6 +25,19 @@ import { unlock } from '../../lock-unlock'; const { useGlobalSetting } = unlock( blockEditorPrivateApis ); +/** + * Maps the fonts with the source, if available. + * + * @param {Array} fonts The fonts to map. + * @param {string} source The source of the fonts. + * @return {Array} The mapped fonts. + */ +function mapFontsWithSource( fonts, source ) { + return fonts + ? fonts.map( ( f ) => setUIValuesNeeded( f, { source } ) ) + : []; +} + function FontFamilies() { const { baseCustomFonts, modalTabOpen, setModalTabOpen } = useContext( FontLibraryContext ); @@ -34,18 +47,12 @@ function FontFamilies() { undefined, 'base' ); - const themeFonts = fontFamilies?.theme - ? fontFamilies.theme - .map( ( f ) => setUIValuesNeeded( f, { source: 'theme' } ) ) - .sort( ( a, b ) => a.name.localeCompare( b.name ) ) - : []; - const customFonts = fontFamilies?.custom - ? fontFamilies.custom - .map( ( f ) => setUIValuesNeeded( f, { source: 'custom' } ) ) - .sort( ( a, b ) => a.name.localeCompare( b.name ) ) - : []; - const hasFonts = 0 < customFonts.length || 0 < themeFonts.length; - + const themeFonts = mapFontsWithSource( fontFamilies?.theme, 'theme' ); + const customFonts = mapFontsWithSource( fontFamilies?.custom, 'custom' ); + const activeFonts = [ ...themeFonts, ...customFonts ].sort( ( a, b ) => + a.name.localeCompare( b.name ) + ); + const hasFonts = 0 < activeFonts.length; const hasInstalledFonts = hasFonts || baseFontFamilies?.theme?.length > 0 || @@ -61,11 +68,11 @@ function FontFamilies() { ) } - { [ ...themeFonts, ...customFonts ].length > 0 && ( + { activeFonts.length > 0 && ( <> { __( 'Fonts' ) } - { themeFonts.map( ( font ) => ( + { activeFonts.map( ( font ) => ( Date: Tue, 8 Oct 2024 09:05:58 -0700 Subject: [PATCH 104/214] Post editor: fix meta boxes accessibility (#65466) * Replace details element with custom toggle * Consolidate details of updating height into function * Reduce conditionals for toggle vs. resizable * Fix style in RTL * Remove unneeded overflow style * Maintain focus even with caret browsing on * Use `ResizableBox` again * Add aria-expanded to toggle and remove aria-label * Fix styles for Windows high contrast mode * Add missing "border" in Windows high contrast mode * Move `flex-shrink` rule to toggle only * Fix rule preserved for non-iframe canvas * Make meta boxes container a navigable region * Try hiding meta box region contents when not expanded * Fix hidden conditional * Rename a couple functions Co-authored-by: DaniGuardiola Co-authored-by: joedolson Co-authored-by: t-hamano Co-authored-by: tyxla Co-authored-by: afercia --- .../edit-post/src/components/layout/index.js | 200 +++++++++--------- .../src/components/layout/style.scss | 126 +++++++---- .../src/components/navigable-region/index.js | 43 ++-- 3 files changed, 206 insertions(+), 163 deletions(-) diff --git a/packages/edit-post/src/components/layout/index.js b/packages/edit-post/src/components/layout/index.js index 66fa9dd5d93b8..fefd09157c641 100644 --- a/packages/edit-post/src/components/layout/index.js +++ b/packages/edit-post/src/components/layout/index.js @@ -31,6 +31,7 @@ import { useRef, useState, } from '@wordpress/element'; +import { chevronDown, chevronUp } from '@wordpress/icons'; import { store as noticesStore } from '@wordpress/notices'; import { store as preferencesStore } from '@wordpress/preferences'; import { @@ -43,6 +44,7 @@ import { addQueryArgs } from '@wordpress/url'; import { decodeEntities } from '@wordpress/html-entities'; import { store as coreStore } from '@wordpress/core-data'; import { + Icon, ResizableBox, SlotFillProvider, Tooltip, @@ -75,7 +77,7 @@ import useNavigateToEntityRecord from '../../hooks/use-navigate-to-entity-record const { getLayoutStyles } = unlock( blockEditorPrivateApis ); const { useCommands } = unlock( coreCommandsPrivateApis ); const { useCommandContext } = unlock( commandsPrivateApis ); -const { Editor, FullscreenMode } = unlock( editorPrivateApis ); +const { Editor, FullscreenMode, NavigableRegion } = unlock( editorPrivateApis ); const { BlockKeyboardShortcuts } = unlock( blockLibraryPrivateApis ); const DESIGN_POST_TYPES = [ 'wp_template', @@ -183,7 +185,7 @@ function MetaBoxesMain( { isLegacy } ) { ]; }, [] ); const { set: setPreference } = useDispatch( preferencesStore ); - const resizableBoxRef = useRef(); + const metaBoxesMainRef = useRef(); const isShort = useMediaQuery( '(max-height: 549px)' ); const [ { min, max }, setHeightConstraints ] = useState( () => ( {} ) ); @@ -198,9 +200,9 @@ function MetaBoxesMain( { isLegacy } ) { ':scope > .components-notice-list' ); const resizeHandle = container.querySelector( - '.edit-post-meta-boxes-main__resize-handle' + '.edit-post-meta-boxes-main__presenter' ); - const actualize = () => { + const deriveConstraints = () => { const fullHeight = container.offsetHeight; let nextMax = fullHeight; for ( const element of noticeLists ) { @@ -209,7 +211,7 @@ function MetaBoxesMain( { isLegacy } ) { const nextMin = resizeHandle.offsetHeight; setHeightConstraints( { min: nextMin, max: nextMax } ); }; - const observer = new window.ResizeObserver( actualize ); + const observer = new window.ResizeObserver( deriveConstraints ); observer.observe( container ); for ( const element of noticeLists ) { observer.observe( element ); @@ -221,12 +223,33 @@ function MetaBoxesMain( { isLegacy } ) { const separatorHelpId = useId(); const [ isUntouched, setIsUntouched ] = useState( true ); + const applyHeight = ( candidateHeight, isPersistent, isInstant ) => { + const nextHeight = Math.min( max, Math.max( min, candidateHeight ) ); + if ( isPersistent ) { + setPreference( + 'core/edit-post', + 'metaBoxesMainOpenHeight', + nextHeight + ); + } else { + separatorRef.current.ariaValueNow = getAriaValueNow( nextHeight ); + } + if ( isInstant ) { + metaBoxesMainRef.current.updateSize( { + height: nextHeight, + // Oddly, when the event that triggered this was not from the mouse (e.g. keydown), + // if `width` is left unspecified a subsequent drag gesture applies a fixed + // width and the pane fails to widen/narrow with parent width changes from + // sidebars opening/closing or window resizes. + width: 'auto', + } ); + } + }; if ( ! hasAnyVisible ) { return; } - const className = 'edit-post-meta-boxes-main'; const contents = (