diff --git a/.github/workflows/end2end-test.yml b/.github/workflows/end2end-test.yml
index 9bd6ba212f0d80..5a9750c6bb0456 100644
--- a/.github/workflows/end2end-test.yml
+++ b/.github/workflows/end2end-test.yml
@@ -17,14 +17,11 @@ concurrency:
jobs:
e2e-puppeteer:
- name: Puppeteer - ${{ matrix.part }}
+ name: Puppeteer
runs-on: ubuntu-latest
if: ${{ github.repository == 'WordPress/gutenberg' || github.event_name == 'pull_request' }}
strategy:
fail-fast: false
- matrix:
- part: [1, 2, 3]
- totalParts: [3]
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
@@ -43,8 +40,7 @@ jobs:
- name: Running the tests
run: |
- npx wp-scripts test-e2e --config=./packages/e2e-tests/jest.config.js --listTests > ~/.jest-e2e-tests
- npx wp-scripts test-e2e --config=./packages/e2e-tests/jest.config.js --cacheDirectory="$HOME/.jest-cache" --runTestsByPath $( awk 'NR % ${{ matrix.totalParts }} == ${{ matrix.part }} - 1' < ~/.jest-e2e-tests )
+ npx wp-scripts test-e2e --config=./packages/e2e-tests/jest.config.js --cacheDirectory="$HOME/.jest-cache"
- name: Archive debug artifacts (screenshots, HTML snapshots)
uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
@@ -69,8 +65,8 @@ jobs:
strategy:
fail-fast: false
matrix:
- part: [1, 2, 3, 4]
- totalParts: [4]
+ part: [1, 2, 3, 4, 5, 6, 7, 8]
+ totalParts: [8]
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
@@ -92,6 +88,8 @@ jobs:
npm run wp-env start
- name: Run the tests
+ env:
+ PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1
run: |
xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- npm run test:e2e:playwright -- --shard=${{ matrix.part }}/${{ matrix.totalParts }}
diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml
index 485668a755b8c2..517febe9774a99 100644
--- a/.github/workflows/performance.yml
+++ b/.github/workflows/performance.yml
@@ -68,13 +68,13 @@ jobs:
- name: Compare performance with base branch
if: github.event_name == 'push'
# The base hash used here need to be a commit that is compatible with the current WP version
- # The current one is bd2a881101727b03b0be09382b34841af5a3c03e and it needs to be updated every WP major release.
+ # The current one is b61dde2e5ec29d98801e623de968bfb286c5be3f and it needs to be updated every WP major release.
# It is used as a base comparison point to avoid fluctuation in the performance metrics.
run: |
WP_VERSION=$(awk -F ': ' '/^Tested up to/{print $2}' readme.txt)
IFS=. read -ra WP_VERSION_ARRAY <<< "$WP_VERSION"
WP_MAJOR="${WP_VERSION_ARRAY[0]}.${WP_VERSION_ARRAY[1]}"
- ./bin/plugin/cli.js perf $GITHUB_SHA bd2a881101727b03b0be09382b34841af5a3c03e --tests-branch $GITHUB_SHA --wp-version "$WP_MAJOR"
+ ./bin/plugin/cli.js perf $GITHUB_SHA b61dde2e5ec29d98801e623de968bfb286c5be3f --tests-branch $GITHUB_SHA --wp-version "$WP_MAJOR"
- name: Compare performance with custom branches
if: github.event_name == 'workflow_dispatch'
@@ -97,7 +97,7 @@ jobs:
CODEHEALTH_PROJECT_TOKEN: ${{ secrets.CODEHEALTH_PROJECT_TOKEN }}
run: |
COMMITTED_AT=$(git show -s $GITHUB_SHA --format="%cI")
- ./bin/log-performance-results.js $CODEHEALTH_PROJECT_TOKEN trunk $GITHUB_SHA bd2a881101727b03b0be09382b34841af5a3c03e $COMMITTED_AT
+ ./bin/log-performance-results.js $CODEHEALTH_PROJECT_TOKEN trunk $GITHUB_SHA b61dde2e5ec29d98801e623de968bfb286c5be3f $COMMITTED_AT
- name: Archive debug artifacts (screenshots, HTML snapshots)
uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3
diff --git a/.github/workflows/stale-issue-gardening.yml b/.github/workflows/stale-issue-gardening.yml
index 0bdb1cfbf0cefd..cbeb04ead53214 100644
--- a/.github/workflows/stale-issue-gardening.yml
+++ b/.github/workflows/stale-issue-gardening.yml
@@ -27,8 +27,8 @@ jobs:
remove-stale-when-updated: true
stale-issue-label: '[Status] Stale'
- name: 'Flaky test issues without activity'
- message: 'This issue has gone 30 days without any activity.'
- days-before-stale: 30
+ message: 'This issue has gone 15 days without any activity.'
+ days-before-stale: 15
days-before-close: 1
only-labels: '[Type] Flaky Test'
remove-stale-when-updated: true
diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml
index 65ba01d0b70e89..78f70cc4ed9f74 100644
--- a/.github/workflows/unit-test.yml
+++ b/.github/workflows/unit-test.yml
@@ -126,7 +126,7 @@ jobs:
# dependency versions are installed and cached.
##
- name: Set up PHP
- uses: shivammathur/setup-php@a36e1e52ff4a1c9e9c9be31551ee4712a6cb6bd0 # v2.27.1
+ uses: shivammathur/setup-php@e6f75134d35752277f093989e72e140eaa222f35 # v2.28.0
with:
php-version: '${{ matrix.php }}'
ini-file: development
@@ -226,7 +226,7 @@ jobs:
show-progress: ${{ runner.debug == '1' && 'true' || 'false' }}
- name: Set up PHP
- uses: shivammathur/setup-php@a36e1e52ff4a1c9e9c9be31551ee4712a6cb6bd0 # v2.27.1
+ uses: shivammathur/setup-php@e6f75134d35752277f093989e72e140eaa222f35 # v2.28.0
with:
php-version: '7.4'
coverage: none
diff --git a/bin/plugin/commands/changelog.js b/bin/plugin/commands/changelog.js
index 4d67e271ecb649..0b2bb4c2b2c0cc 100644
--- a/bin/plugin/commands/changelog.js
+++ b/bin/plugin/commands/changelog.js
@@ -114,15 +114,17 @@ const LABEL_FEATURE_MAPPING = {
'[Feature] Raw Handling': 'Block Editor',
'[Package] Edit Post': 'Post Editor',
'[Package] Icons': 'Icons',
- '[Package] Block Editor': 'Block Editor',
+ '[Package] Block editor': 'Block Editor',
'[Package] Block library': 'Block Library',
'[Package] Editor': 'Post Editor',
+ '[Package] Edit Site': 'Site Editor',
'[Package] Edit Widgets': 'Widgets Editor',
'[Package] Widgets Customizer': 'Widgets Editor',
'[Package] Components': 'Components',
'[Package] Block Library': 'Block Library',
'[Package] Rich text': 'Block Editor',
'[Package] Data': 'Data Layer',
+ '[Package] Commands': 'Commands',
'[Block] Legacy Widget': 'Widgets Editor',
'REST API Interaction': 'REST API',
'New Block': 'Block Library',
@@ -220,9 +222,18 @@ function getTypesByLabels( labels ) {
...new Set(
labels
.filter( ( label ) =>
- Object.keys( LABEL_TYPE_MAPPING ).includes( label )
+ Object.keys( LABEL_TYPE_MAPPING )
+ .map( ( currentLabel ) => currentLabel.toLowerCase() )
+ .includes( label.toLowerCase() )
)
- .map( ( label ) => LABEL_TYPE_MAPPING[ label ] )
+ .map( ( label ) => {
+ const lowerCaseLabel =
+ Object.keys( LABEL_TYPE_MAPPING ).find(
+ ( key ) => key.toLowerCase() === label.toLowerCase()
+ ) || label;
+
+ return LABEL_TYPE_MAPPING[ lowerCaseLabel ];
+ } )
),
];
}
@@ -236,11 +247,24 @@ function getTypesByLabels( labels ) {
* @return {string[]} Feature candidates.
*/
function mapLabelsToFeatures( labels ) {
- return labels
- .filter( ( label ) =>
- Object.keys( LABEL_FEATURE_MAPPING ).includes( label )
- )
- .map( ( label ) => LABEL_FEATURE_MAPPING[ label ] );
+ return [
+ ...new Set(
+ labels
+ .filter( ( label ) =>
+ Object.keys( LABEL_FEATURE_MAPPING )
+ .map( ( currentLabel ) => currentLabel.toLowerCase() )
+ .includes( label.toLowerCase() )
+ )
+ .map( ( label ) => {
+ const lowerCaseLabel =
+ Object.keys( LABEL_FEATURE_MAPPING ).find(
+ ( key ) => key.toLowerCase() === label.toLowerCase()
+ ) || label;
+
+ return LABEL_FEATURE_MAPPING[ lowerCaseLabel ];
+ } )
+ ),
+ ];
}
/**
@@ -1070,4 +1094,5 @@ async function getReleaseChangelog( options ) {
getChangelog,
getUniqueByUsername,
skipCreatedByBots,
+ mapLabelsToFeatures,
};
diff --git a/bin/plugin/commands/performance.js b/bin/plugin/commands/performance.js
index 4be675a0a5d40d..bdc38347e40c86 100644
--- a/bin/plugin/commands/performance.js
+++ b/bin/plugin/commands/performance.js
@@ -87,6 +87,7 @@ async function runTestSuite( testSuite, testRunnerDir, runKey ) {
testRunnerDir,
{
...process.env,
+ PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: '1',
WP_ARTIFACTS_PATH: ARTIFACTS_PATH,
RESULTS_ID: runKey,
}
diff --git a/bin/plugin/commands/test/__snapshots__/changelog.js.snap b/bin/plugin/commands/test/__snapshots__/changelog.js.snap
index 9ecb797fa56838..e79d9d8706c4f3 100644
--- a/bin/plugin/commands/test/__snapshots__/changelog.js.snap
+++ b/bin/plugin/commands/test/__snapshots__/changelog.js.snap
@@ -3,210 +3,271 @@
exports[`getChangelog verify that the changelog is properly formatted 1`] = `
"## Changelog
+### Features
+
+#### Block Editor
+- Adds 'nofollow' setting to Button block. ([54110](https://github.com/WordPress/gutenberg/pull/54110))
+
+#### Site Editor
+- Add 'Show template' toggle when editing pages. ([52674](https://github.com/WordPress/gutenberg/pull/52674))
+
+
### Enhancements
#### Components
-- Add new ColorPicker. ([33714](https://github.com/WordPress/gutenberg/pull/33714))
-- Update snackbar to use framer motion instead of react spring. ([33717](https://github.com/WordPress/gutenberg/pull/33717))
+- Adding label/description to \`BlockEditor/DuotoneControl\`. ([54473](https://github.com/WordPress/gutenberg/pull/54473))
+- Deprecating \`isPressed\` in \`Button\` component. ([54740](https://github.com/WordPress/gutenberg/pull/54740))
+- InputControl-based components: Add opt-in prop for next 40px default size. ([53819](https://github.com/WordPress/gutenberg/pull/53819))
+- Modal: Add \`contentWidth\` prop to support a selection of preset modal sizes. ([54471](https://github.com/WordPress/gutenberg/pull/54471))
+- Remove unused components from \`ui/\`. ([54573](https://github.com/WordPress/gutenberg/pull/54573))
+- Update compact search control metrics. ([54663](https://github.com/WordPress/gutenberg/pull/54663))
+- Wrapped \`TextareaControl\` in a \`forwardRef\` call. ([54975](https://github.com/WordPress/gutenberg/pull/54975))
#### Block Library
-- [Post Featured Image]: Add basic dimension controls. ([31634](https://github.com/WordPress/gutenberg/pull/31634))
+- Add a brief description to the Footnotes block. ([54613](https://github.com/WordPress/gutenberg/pull/54613))
+- Footnotes: Use core’s meta revisioning if available. ([52988](https://github.com/WordPress/gutenberg/pull/52988))
+- Login/out: Add spacing support. ([45147](https://github.com/WordPress/gutenberg/pull/45147))
+- Query view.js: Code quality. ([54982](https://github.com/WordPress/gutenberg/pull/54982))
+- Set custom color when applying initial background image. ([54054](https://github.com/WordPress/gutenberg/pull/54054))
+- Use \`wp_get_inline_script_tag()\` in \`build_dropdown_script_block_core_categories()\`. ([54637](https://github.com/WordPress/gutenberg/pull/54637))
-#### Site Editor
-- Add error boundary. ([33921](https://github.com/WordPress/gutenberg/pull/33921))
+#### Block Editor
+- Default suggested links to pages. ([54622](https://github.com/WordPress/gutenberg/pull/54622))
+- Remove base URL from link control search results. ([54553](https://github.com/WordPress/gutenberg/pull/54553))
+- Simplify \`BlockHTMLConvertButton\`. ([54972](https://github.com/WordPress/gutenberg/pull/54972))
+- Update strings in blocks 'RenameModal' component. ([54887](https://github.com/WordPress/gutenberg/pull/54887))
-#### Widgets Editor
-- Add error boundaries to widget screens. ([33771](https://github.com/WordPress/gutenberg/pull/33771))
+#### Post Editor
+- Edit Post: Use hooks instead of HoCs in 'PostStatus' components. ([54951](https://github.com/WordPress/gutenberg/pull/54951))
+- Editor: Use hooks instead of HoCs in 'PostSticky' components. ([54949](https://github.com/WordPress/gutenberg/pull/54949))
+- Editor: Use hooks instead of HoCs in 'PostSwitchToDraftButton'. ([54695](https://github.com/WordPress/gutenberg/pull/54695))
+- Show confirmation dialog when moving a post to the trash. ([50219](https://github.com/WordPress/gutenberg/pull/50219))
#### Patterns
-- Block patterns: Add translation context on titles. ([33734](https://github.com/WordPress/gutenberg/pull/33734))
+- Remove category description in inserter panel. ([54894](https://github.com/WordPress/gutenberg/pull/54894))
-#### Document Settings
-- Disable spellcheck and autocomplete in permalink slug field. ([33708](https://github.com/WordPress/gutenberg/pull/33708))
+#### Typography
+- Font Library: Refactor endpoint permissions. ([54829](https://github.com/WordPress/gutenberg/pull/54829))
-#### Template Editor
-- Template Mode: Add busy state to template creation modal. ([33076](https://github.com/WordPress/gutenberg/pull/33076))
-
-#### Global Styles
-- Dimensions Panel: Add new ToolsPanel component and update spacing supports. ([32392](https://github.com/WordPress/gutenberg/pull/32392))
+#### Site Editor
+- Add template replace flow to template inspector. ([54609](https://github.com/WordPress/gutenberg/pull/54609))
### Bug Fixes
-- Correct \`function_exists()\` check typo introduced in #33331. ([33513](https://github.com/WordPress/gutenberg/pull/33513))
-- Fix block appender position in classic themes. ([33895](https://github.com/WordPress/gutenberg/pull/33895))
-- Fix misspelling of "queries" in filter documentation. ([33799](https://github.com/WordPress/gutenberg/pull/33799))
-- Fix positioning discrepancy with draggable chip. ([33893](https://github.com/WordPress/gutenberg/pull/33893))
-- Navigation Editor: Avoid React warning when creating a new menu. ([33843](https://github.com/WordPress/gutenberg/pull/33843))
+- Fix the ShortcutProvider usage. ([54851](https://github.com/WordPress/gutenberg/pull/54851))
+- Fix warning when a template calls a template area twice. ([54861](https://github.com/WordPress/gutenberg/pull/54861))
+- Revert "Fix warning when a template calls a template area twice". ([54926](https://github.com/WordPress/gutenberg/pull/54926))
#### Block Library
-- Fix justification for button block when selected. ([33739](https://github.com/WordPress/gutenberg/pull/33739))
-- Fix navigation block appender invalid html. ([33964](https://github.com/WordPress/gutenberg/pull/33964))
-- Fix navigation margin collapsing. ([33021](https://github.com/WordPress/gutenberg/pull/33021))
-- Image Block: Fix issue with canInsertCover not being set to false for empty arrays. ([33863](https://github.com/WordPress/gutenberg/pull/33863))
-- [Query Pagination Numbers]: Fix first page's link. ([33629](https://github.com/WordPress/gutenberg/pull/33629))
+- All Nav block items to break long titles. ([54866](https://github.com/WordPress/gutenberg/pull/54866))
+- Fallback to Twitter provider when embedding X URLs. ([54876](https://github.com/WordPress/gutenberg/pull/54876))
+- Fix Deleted Navigation Menu warning string. ([55033](https://github.com/WordPress/gutenberg/pull/55033))
+- Fix Search Block not updating in Nav block. ([54823](https://github.com/WordPress/gutenberg/pull/54823))
+- Fix left and right aligmnent in children of Post Template. ([54997](https://github.com/WordPress/gutenberg/pull/54997))
+- Fix output of Navigation block classnames in the editor. ([54992](https://github.com/WordPress/gutenberg/pull/54992))
+- Fix overwriting of published post meta when previewing footnote changes. ([54339](https://github.com/WordPress/gutenberg/pull/54339))
+- Image: Ensure Expand on Click toggle is shown if block-level lightbox setting exists. ([54878](https://github.com/WordPress/gutenberg/pull/54878))
+- Image: Fix layout shift when lightbox is opened and closed. ([53026](https://github.com/WordPress/gutenberg/pull/53026))
+- Media & Text: Fix React warning. ([55038](https://github.com/WordPress/gutenberg/pull/55038))
+- Search block: Allow space for input field only when form expanded. ([54846](https://github.com/WordPress/gutenberg/pull/54846))
+- Search block: Update alignment and icon button width. ([54773](https://github.com/WordPress/gutenberg/pull/54773))
+- Update pattern import menu item. ([54782](https://github.com/WordPress/gutenberg/pull/54782))
+
+#### Site Editor
+- Avoid same key warnings in template parts area listings. ([54863](https://github.com/WordPress/gutenberg/pull/54863))
+- Avoid stale navigation block values when parsing entity record. ([54996](https://github.com/WordPress/gutenberg/pull/54996))
+- Don't display the navigation section in template parts details when a menu is missing. ([54993](https://github.com/WordPress/gutenberg/pull/54993))
+- Fix ToolSelector popover variant. ([54840](https://github.com/WordPress/gutenberg/pull/54840))
+- Reset 'Show template' toggle when leaving edit mode. ([54679](https://github.com/WordPress/gutenberg/pull/54679))
+- [Site Editor]: Update copy of using the default template in a page. ([54728](https://github.com/WordPress/gutenberg/pull/54728))
+- remove \`overflow: Hidden\` from the entity title in the site editor sidebar. ([54769](https://github.com/WordPress/gutenberg/pull/54769))
#### Components
-- Fix RTL on custom gradient picker. ([33831](https://github.com/WordPress/gutenberg/pull/33831))
-- FontSizePicker: Use number values when the initial value is a number. ([33679](https://github.com/WordPress/gutenberg/pull/33679))
-- FormTokenField: Avoid error when maxLength value is hit. ([33623](https://github.com/WordPress/gutenberg/pull/33623))
-- \`useBreakpointIndex\`: Attach \`resize\` event listener to \`window\` instead of \`document\`. ([33902](https://github.com/WordPress/gutenberg/pull/33902))
+- FormTokenField: Add \`box-sizing\` reset style and reset default padding. ([54734](https://github.com/WordPress/gutenberg/pull/54734))
+- Popover: Fix the styles for components that use emotion within popovers. ([54912](https://github.com/WordPress/gutenberg/pull/54912))
+- Remove hover style for secondary Button when aria-disabled is set. ([54978](https://github.com/WordPress/gutenberg/pull/54978))
+- Reverting addition of \`aria-selected\` style hook in \`Button\`. ([54931](https://github.com/WordPress/gutenberg/pull/54931))
+- \`SlotFill\`: Pass \`Component\` instance to unregisterSlot. ([54765](https://github.com/WordPress/gutenberg/pull/54765))
#### Block Editor
-- Force link text to wrap in the Link UI when encountering extra long link text. ([33753](https://github.com/WordPress/gutenberg/pull/33753))
-- Improve display of LinkURL menu and fix spacing. ([33652](https://github.com/WordPress/gutenberg/pull/33652))
-- Only show rich preview for image and description if data is available. ([33660](https://github.com/WordPress/gutenberg/pull/33660))
-- URL Details: Avoid PHP notice when parsing protocol-relative icon URLs. ([33779](https://github.com/WordPress/gutenberg/pull/33779))
+- Avoid double-wrapping selectors when transforming the styles. ([54981](https://github.com/WordPress/gutenberg/pull/54981))
+- [Inserter]: Fix reset of registered media categories. ([55012](https://github.com/WordPress/gutenberg/pull/55012))
-#### Global Styles
-- Avoid rendering duplicate elements stylesheet. ([33680](https://github.com/WordPress/gutenberg/pull/33680))
-- Fix Global Styles transient key clash. ([33844](https://github.com/WordPress/gutenberg/pull/33844))
-- Site editor: Fix presets for blocks with multiple selectors. ([33951](https://github.com/WordPress/gutenberg/pull/33951))
+#### Typography
+- Font Library: Changed the OTF mime type expected value to be what PHP returns. ([54886](https://github.com/WordPress/gutenberg/pull/54886))
+- Font Library: Move font uploads to a new tab. ([54655](https://github.com/WordPress/gutenberg/pull/54655))
-#### CSS & Styling
-- Fix navigation block placeholder preview markup. ([33963](https://github.com/WordPress/gutenberg/pull/33963))
+#### Global Styles
+- Block custom CSS: Fix incorrect CSS when multiple root selectors. ([53602](https://github.com/WordPress/gutenberg/pull/53602))
+- Image: Ensure \`false\` values are preserved in memory when defined in \`theme.json\`. ([54639](https://github.com/WordPress/gutenberg/pull/54639))
-#### Site Editor
-- Fix the site editor breaking in firefox. ([33896](https://github.com/WordPress/gutenberg/pull/33896))
+#### List View
+- Fix performance issue when selecting all blocks. ([54900](https://github.com/WordPress/gutenberg/pull/54900))
-#### Post Editor
-- Editor: Safer isPreviewingPost check. ([33840](https://github.com/WordPress/gutenberg/pull/33840))
+#### Colors
+- Format Library: Try to fix highlight popover jumping. ([54736](https://github.com/WordPress/gutenberg/pull/54736))
-#### Meta Boxes
-- Fix Safari 13 metaboxes from overlapping the content. ([33817](https://github.com/WordPress/gutenberg/pull/33817))
-
-#### Template Editor
-- Template: Only show post template actions to users with correct capabilities. ([33392](https://github.com/WordPress/gutenberg/pull/33392))
+#### Interactivity API
+- Image: Fix duotone not being applied to lightbox image. ([54670](https://github.com/WordPress/gutenberg/pull/54670))
### Accessibility
-- Fix some JAWS bugs. ([33627](https://github.com/WordPress/gutenberg/pull/33627))
-
#### Components
-- Use updated range styles. ([33824](https://github.com/WordPress/gutenberg/pull/33824))
-
+- Follow ariakit best practices. ([54696](https://github.com/WordPress/gutenberg/pull/54696))
+- HTML block: Fix accessibility issues on back-end. ([54408](https://github.com/WordPress/gutenberg/pull/54408))
+- Update ariakit to 0.3.3. ([54818](https://github.com/WordPress/gutenberg/pull/54818))
+- \`Modal\`: Accessibly hide/show outer modal when nested. ([54743](https://github.com/WordPress/gutenberg/pull/54743))
-### Performance
+#### Block Library
+- Footnotes: Add aria-label to return links. ([54843](https://github.com/WordPress/gutenberg/pull/54843))
+- Table of contents block accessibility improvements. ([54322](https://github.com/WordPress/gutenberg/pull/54322))
-- Add search performance measure and make other measures more stable. ([33848](https://github.com/WordPress/gutenberg/pull/33848))
-- Avoid double parsing the content when loading the editor. ([33727](https://github.com/WordPress/gutenberg/pull/33727))
+#### Patterns
+- Use list role instead of listbox in patterns list. ([54884](https://github.com/WordPress/gutenberg/pull/54884))
-#### Block Library
-- Do not add to the block-library CSS bundle the colors that come from \`theme.json\`. ([33924](https://github.com/WordPress/gutenberg/pull/33924))
-- Improve the rendering/update performance of the image block. ([33974](https://github.com/WordPress/gutenberg/pull/33974))
+#### Post Editor
+- Editor: Always render the 'Switch to Draft' button to avoid focus loss. ([54722](https://github.com/WordPress/gutenberg/pull/54722))
#### Block Editor
-- Lazy render block types in the inserter. ([33749](https://github.com/WordPress/gutenberg/pull/33749))
-- Lazy render the inserter search results. ([33868](https://github.com/WordPress/gutenberg/pull/33868))
+- Block Switcher: Use a different label for multi-selection. ([54692](https://github.com/WordPress/gutenberg/pull/54692))
-#### Parsing
-- Improve the performance of the parser by removing the automatic custom classnames handling. ([33903](https://github.com/WordPress/gutenberg/pull/33903))
-#### Template Editor
-- Template Mode: Remove 'per_page' argument from the template data selector. ([33742](https://github.com/WordPress/gutenberg/pull/33742))
+### Performance
-#### Post Editor
-- Refactor the HierarchicalTermSelector so that it does not cause unnecessary loading of terms. ([33418](https://github.com/WordPress/gutenberg/pull/33418))
+- Tests: Support the Site Editor's legacy spinner. ([54784](https://github.com/WordPress/gutenberg/pull/54784))
+- Use instanceOf over property_exists. ([54835](https://github.com/WordPress/gutenberg/pull/54835))
+
+#### Block Editor
+- Subscribe only to block editor store in \`useBlockSync\`. ([55041](https://github.com/WordPress/gutenberg/pull/55041))
### Experiments
-#### Navigation Screen
-- Fix regressed menu selection dropdown placeholder value for Nav Editor menu locations UI. ([33748](https://github.com/WordPress/gutenberg/pull/33748))
+#### Site Editor
+- al]: First version of pages list in site editor. ([54966](https://github.com/WordPress/gutenberg/pull/54966))
-#### Components
-- Promote \`ItemGroup\`. ([33701](https://github.com/WordPress/gutenberg/pull/33701))
+#### Block Editor
+- Expose \`getDuotoneFilter()\` as private API. ([54905](https://github.com/WordPress/gutenberg/pull/54905))
### Documentation
-- Add documentation to disable remote calls for block patterns. ([33930](https://github.com/WordPress/gutenberg/pull/33930))
-- Add missing comma. ([33764](https://github.com/WordPress/gutenberg/pull/33764))
-- Add spaces in add_theme_support documentation code. ([33796](https://github.com/WordPress/gutenberg/pull/33796))
-- Correct spelling and grammar in documentation. ([33860](https://github.com/WordPress/gutenberg/pull/33860))
-- Docs: Add more details about block attributes. ([33880](https://github.com/WordPress/gutenberg/pull/33880))
-- Example for rest_endpoints filter in PHP. ([33738](https://github.com/WordPress/gutenberg/pull/33738))
-- Fix gutenberg_resolve_template() return documentation. ([33800](https://github.com/WordPress/gutenberg/pull/33800))
-- Update documentation to reflect new automated process for feature grouping. ([33573](https://github.com/WordPress/gutenberg/pull/33573))
-- [docs] fix: \`supports.color.gradients\` is plural. ([33781](https://github.com/WordPress/gutenberg/pull/33781))
-- fix: Broken link in documentation to block support mechanism. ([33780](https://github.com/WordPress/gutenberg/pull/33780))
-- link fix: Block editor Sidebar Tutorial. ([33308](https://github.com/WordPress/gutenberg/pull/33308))
+- Add a documentation page about the block editor settings. ([54870](https://github.com/WordPress/gutenberg/pull/54870))
+- Add a page about the format library to the platform documentation site. ([55037](https://github.com/WordPress/gutenberg/pull/55037))
+- Docs: Add a callout to the \`wp-now\` documentation to mention it's still experimental. ([55044](https://github.com/WordPress/gutenberg/pull/55044))
+- Docs: Remove outdated info. ([54707](https://github.com/WordPress/gutenberg/pull/54707))
+- Docs: Remove the Full Site Editing doc. ([54516](https://github.com/WordPress/gutenberg/pull/54516))
+- Docs: Rename Block Hooks handbook page to Block Filters. ([54862](https://github.com/WordPress/gutenberg/pull/54862))
+- Document the current state of the Real-Time collaboration experiment. ([54932](https://github.com/WordPress/gutenberg/pull/54932))
+- Fix a broken MD link in callout. ([54772](https://github.com/WordPress/gutenberg/pull/54772))
+- Platform Docs: Add a documentation page explaining how to use the block library. ([54967](https://github.com/WordPress/gutenberg/pull/54967))
+- Update the documentation of the block editor and replace @wordpress/element with react. ([54908](https://github.com/WordPress/gutenberg/pull/54908))
+- Update versions in WP for 6.4. ([54890](https://github.com/WordPress/gutenberg/pull/54890))
### Code Quality
-#### Components
-- Components utils: \`rtl()\` return type, \`rtl.watch()\` utility. ([33882](https://github.com/WordPress/gutenberg/pull/33882))
-- InputControl to TypeScript. ([33696](https://github.com/WordPress/gutenberg/pull/33696))
-- Use the \`__unsafe_useEmotionCache\` in the \`useCx\` hook. ([33982](https://github.com/WordPress/gutenberg/pull/33982))
+- Add a unit test for the "ValidBlockLibraryFunctionNameSniff" sniff. ([53928](https://github.com/WordPress/gutenberg/pull/53928))
+- Move dependencies to the right place. ([54597](https://github.com/WordPress/gutenberg/pull/54597))
+- Move mime-type collection generation to a function that can be tested…. ([54844](https://github.com/WordPress/gutenberg/pull/54844))
+- Post Title block should use esc_url(). ([53981](https://github.com/WordPress/gutenberg/pull/53981))
+- Rich text: Use getPasteEventData. ([55048](https://github.com/WordPress/gutenberg/pull/55048))
+- Writing flow: Absorb clipboard handler. ([55006](https://github.com/WordPress/gutenberg/pull/55006))
#### Block Library
-- Featured Image: Use getMedia shorthand. ([33943](https://github.com/WordPress/gutenberg/pull/33943))
-- Site Logo: Use getMedia shorthand. ([33992](https://github.com/WordPress/gutenberg/pull/33992))
+- Footnotes: Avoid regexes in entity provider. ([54505](https://github.com/WordPress/gutenberg/pull/54505))
+- Image Block: Fix browser console error when clicking "Expand on Click". ([54938](https://github.com/WordPress/gutenberg/pull/54938))
+- Removed unwanted space from the string. ([54654](https://github.com/WordPress/gutenberg/pull/54654))
+- Update CODEOWNERS for \`core/image\` block. ([54793](https://github.com/WordPress/gutenberg/pull/54793))
-#### Global Styles
-- No longer read from \`experimental-theme.json\`. ([33904](https://github.com/WordPress/gutenberg/pull/33904))
-- Remove the experimental prefix and rename \`theme.json\` files. ([33925](https://github.com/WordPress/gutenberg/pull/33925))
+#### Patterns
+- Add a new spec for for adding an unsynced pattern. ([54892](https://github.com/WordPress/gutenberg/pull/54892))
+- Add end-to-end tests for filtering and searching patterns. ([54906](https://github.com/WordPress/gutenberg/pull/54906))
+- Add new end-to-end test for creating a pattern. ([54855](https://github.com/WordPress/gutenberg/pull/54855))
+- Include pattern category in main end-to-end critical path test. ([54923](https://github.com/WordPress/gutenberg/pull/54923))
+
+#### Components
+- Consolidate utils to remove \`ui/\`. ([54922](https://github.com/WordPress/gutenberg/pull/54922))
+- Move \`ContextSystemProvider\` out of \`/ui\`. ([54847](https://github.com/WordPress/gutenberg/pull/54847))
+- SlotFill: Migrate to Typescript. ([51350](https://github.com/WordPress/gutenberg/pull/51350))
+- Tidying \`CircularOptionPicker.Option\`. ([54903](https://github.com/WordPress/gutenberg/pull/54903))
+
+#### Typography
+- Font Library: Syntax refactor repace strpos with str_contains. ([54832](https://github.com/WordPress/gutenberg/pull/54832))
+- Font Library: Use snake_case instead of camelCase on fontFamilies endpoint param. ([54977](https://github.com/WordPress/gutenberg/pull/54977))
+
+#### Block Editor
+- Rich text: Avoid shortcode logic, adjust paste handler instead. ([55052](https://github.com/WordPress/gutenberg/pull/55052))
#### Plugin
-- Fix \`jsdoc/check-line-alignment\` ESLint warnings. ([33901](https://github.com/WordPress/gutenberg/pull/33901))
+- Remove legacy logic for '__unstableResolvedAssets' setting. ([54812](https://github.com/WordPress/gutenberg/pull/54812))
-#### Post Editor
-- Refactor MetaBoxesArea to to functional components using hooks. ([30542](https://github.com/WordPress/gutenberg/pull/30542))
+#### Data Layer
+- createResolversCacheMiddleware: Remove dependency on core/data store. ([54733](https://github.com/WordPress/gutenberg/pull/54733))
+
+#### Site Editor
+- Use constants rather than hard coded template strings (round 3). ([54705](https://github.com/WordPress/gutenberg/pull/54705))
### Tools
-- ESLint Plugin: Include .jsx extenstion when linting import statements. ([33746](https://github.com/WordPress/gutenberg/pull/33746))
-- GitHub Templates: Fix spacing in bug report template. ([33761](https://github.com/WordPress/gutenberg/pull/33761))
-- GitHub Templates: Format bug report template. ([33786](https://github.com/WordPress/gutenberg/pull/33786))
-- Scripts: Fix typo in format change message. ([33945](https://github.com/WordPress/gutenberg/pull/33945))
-- Scripts: Use cssnano to minimize CSS files with build. ([33750](https://github.com/WordPress/gutenberg/pull/33750))
-- Scripts: Webpack configuration update to minimize CSS. ([33676](https://github.com/WordPress/gutenberg/pull/33676))
-- Update bug issue template to use forms. ([33713](https://github.com/WordPress/gutenberg/pull/33713))
+- Label enforcer workflow: Make accessibility a focus instead of a type. ([54941](https://github.com/WordPress/gutenberg/pull/54941))
+- Scripts: Update webpack and related dependencies to the latest version. ([54657](https://github.com/WordPress/gutenberg/pull/54657))
+- Update changelog automation and test fixtures to match the last a11y label renaming. ([54974](https://github.com/WordPress/gutenberg/pull/54974))
+
+#### Testing
+- Don’t use TypeScript files in scripts package. ([54856](https://github.com/WordPress/gutenberg/pull/54856))
+- ESLint: Update eslint-plugin-testing-library to v6. ([54910](https://github.com/WordPress/gutenberg/pull/54910))
+- Fix end-to-end test: ”WP Editor Meta Boxes > Should save the changes”. ([51884](https://github.com/WordPress/gutenberg/pull/51884))
+- Font Library: Avoid deprected error in test. ([54802](https://github.com/WordPress/gutenberg/pull/54802))
+- Make \`editor.getBlocks\` to return only testing-related properties. ([54901](https://github.com/WordPress/gutenberg/pull/54901))
+- Migrate 'Global styles sidebar' test to Playwright. ([55045](https://github.com/WordPress/gutenberg/pull/55045))
+- Migrate 'iframed block editor settings styles' tests to Playwright. ([55014](https://github.com/WordPress/gutenberg/pull/55014))
+- Migrate 'iframed inline styles' tests to Playwright. ([55009](https://github.com/WordPress/gutenberg/pull/55009))
+- Migrate 'iframed masonry block' tests to Playwright. ([55016](https://github.com/WordPress/gutenberg/pull/55016))
+- Migrate 'iframed multiple block stylesheets' tests to Playwright. ([55003](https://github.com/WordPress/gutenberg/pull/55003))
+- Migrate keyboard-navigable-blocks end-to-end tests from puppeteer to playwright. ([54944](https://github.com/WordPress/gutenberg/pull/54944))
+- Scripts: Properly use CommonJS for default Playwright configuration. ([54988](https://github.com/WordPress/gutenberg/pull/54988))
+- Try fixing the flaky 'Toolbar roving tabindex' end-to-end test. ([54785](https://github.com/WordPress/gutenberg/pull/54785))
+- end-to-end Tests: Revert temporary fixes. ([54865](https://github.com/WordPress/gutenberg/pull/54865))
+- end-to-end Utils: Allow overriding username/password. ([53267](https://github.com/WordPress/gutenberg/pull/53267))
#### Build Tooling
-- Readable JS assets Plugin: Fix webpack 5 support. ([33785](https://github.com/WordPress/gutenberg/pull/33785))
-- Scripts: Update webpack to v5 (try 2). ([33818](https://github.com/WordPress/gutenberg/pull/33818))
+- Add some @types packages as proper dependencies. ([50231](https://github.com/WordPress/gutenberg/pull/50231))
+- Update the default JSX pragma to React instead of @wordpress/element. ([54494](https://github.com/WordPress/gutenberg/pull/54494))
+- Upgrade wp-prettier to v3.0.3 (final). ([54775](https://github.com/WordPress/gutenberg/pull/54775))
-#### Testing
-- E2E: Block Hierarchy Navigation wait for the column to be highlighted. ([33721](https://github.com/WordPress/gutenberg/pull/33721))
+### Security
-### Various
+#### Data Layer
+- Replace turbo-combine-reducers with combineReducers from Redux. ([54606](https://github.com/WordPress/gutenberg/pull/54606))
-- Core Data: Deprecate \`getAuthors\` in favor of \`getUsers\`. ([33725](https://github.com/WordPress/gutenberg/pull/33725))
-- Tune appender margin. ([33866](https://github.com/WordPress/gutenberg/pull/33866))
-#### Block Library
-- Enable ability to remove a link from the Nav Link block in the Nav Block. ([33777](https://github.com/WordPress/gutenberg/pull/33777))
-- Search Block: Removed components class from icon button and polished css. ([33961](https://github.com/WordPress/gutenberg/pull/33961))
-- [Button Block]: Add padding block support. ([31774](https://github.com/WordPress/gutenberg/pull/31774))
+### Various
-#### Full Site Editing
-- Site Editor: Implement a settings object filter. ([33737](https://github.com/WordPress/gutenberg/pull/33737))
-- Template Part placeholder - Add title step to creation flow. ([33703](https://github.com/WordPress/gutenberg/pull/33703))
-- Template part selection popover - minor style updates for visiblity. ([33733](https://github.com/WordPress/gutenberg/pull/33733))
+- (chore) Revert the 16.7 RC2 release in order to release it again due to wrong changelog. ([54744](https://github.com/WordPress/gutenberg/pull/54744))
-#### Widgets Editor
-- Try to fix flaky customizer inspector test 2nd try. ([33965](https://github.com/WordPress/gutenberg/pull/33965))
-- Try to fix flaky customizer inspector test. ([33890](https://github.com/WordPress/gutenberg/pull/33890))
+#### Design Tools
+- Background image block support: Add tests, adjust injection logic slightly. ([54489](https://github.com/WordPress/gutenberg/pull/54489))
+- Background support: Backport fix for undefined array key. ([54850](https://github.com/WordPress/gutenberg/pull/54850))
-#### Block Editor
-- Enable rich previews for internal links. ([33086](https://github.com/WordPress/gutenberg/pull/33086))
+#### Typography
+- Revert "Font Library: Avoid rendering font library ui outisde gutenberg plugin". ([54947](https://github.com/WordPress/gutenberg/pull/54947))
-#### Icons
-- Try new icons for reusable blocks and template parts. ([34002](https://github.com/WordPress/gutenberg/pull/34002))
+#### Commands
+- Make the reset styles command consistent. ([54841](https://github.com/WordPress/gutenberg/pull/54841))
-#### Components
-- Polish the focus style for the segmented control. ([33842](https://github.com/WordPress/gutenberg/pull/33842))
+#### Patterns
+- Use "Not synced" in place of "Standard" nomenclature for patterns. ([54839](https://github.com/WordPress/gutenberg/pull/54839))
-#### REST API
-- Improve likelihood of getting rich link previews by modifying UA string for URL Details REST API endpoint. ([33747](https://github.com/WordPress/gutenberg/pull/33747))
+#### Block Editor
+- Simplify BlockPatternsSyncFilter with clearer labels and additional context. ([54838](https://github.com/WordPress/gutenberg/pull/54838))
-#### CSS & Styling
-- Try: Reduce specificity of reset & classic styles. ([32659](https://github.com/WordPress/gutenberg/pull/32659))
+#### Site Editor
+- Use consistent capitalization for template parts in Site Editor constants. ([54709](https://github.com/WordPress/gutenberg/pull/54709))
"
@@ -219,7 +280,7 @@ exports[`getContributorList verify that the contributors list is properly format
The following contributors merged PRs in this release:
-@aaronrobertshaw @Addison-Stavlo @alexstine @amir2mi @annezazu @antonis @ceyhun @christianztamayo @chrisvanpatten @ciampo @dcalhoun @desrosj @fluiddot @geriux @getdave @glendaviesnz @guarani @gwwar @gziolo @hypest @jasmussen @jeremyfelt @jeyip @jhnstn @johngodley @kapilpaul @kevin940726 @MaggieCabrera @Mamaduka @mkaz @mrleemon @mtias @nosolosw @ntsekouras @rbrishabh @RhnSharma @ryelle @sarayourfriend @scruffian @SiobhyB @stacimc @StevenDufresne @talldan @torounit @walbo @youknowriad"
+@aaronrobertshaw @adamsilverstein @alexstine @andrewhayward @andrewserong @annezazu @anton-vlasenko @artemiomorales @aurooba @bangank36 @brookewp @c4rl0sbr4v0 @carolinan @chad1008 @ciampo @dcalhoun @derekblank @draganescu @ellatrix @fluiddot @fullofcaffeine @geriux @getdave @glendaviesnz @gziolo @jameskoster @jeryj @jsnajdr @juhi123 @kevin940726 @leemyongpakvn @madhusudhand @MaggieCabrera @Mamaduka @matiasbenedetto @michalczaplinski @mirka @mtias @mujuonly @ndiego @noahtallen @noisysocks @ntsekouras @oandregal @ockham @pbking @priethor @ramonjd @richtabor @scruffian @SiobhyB @spacedmonkey @stokesman @swissspidy @t-hamano @tellthemachines @tellyworth @them-es @torounit @tyxla @westonruter @WunderBart @youknowriad"
`;
exports[`getContributorProps verify that the contributors props are properly formatted 1`] = `
@@ -227,9 +288,6 @@ exports[`getContributorProps verify that the contributors props are properly for
The following PRs were merged by first time contributors:
-- @alexstine: Fix some JAWS bugs. ([33627](https://github.com/WordPress/gutenberg/pull/33627))
-- @amir2mi: Example for rest_endpoints filter in PHP. ([33738](https://github.com/WordPress/gutenberg/pull/33738))
-- @christianztamayo: Scripts: Webpack configuration update to minimize CSS. ([33676](https://github.com/WordPress/gutenberg/pull/33676))
-- @kapilpaul: Add spaces in add_theme_support documentation code. ([33796](https://github.com/WordPress/gutenberg/pull/33796))
+- @leemyongpakvn: Fix a broken MD link in callout. ([54772](https://github.com/WordPress/gutenberg/pull/54772))
"
`;
diff --git a/bin/plugin/commands/test/changelog.js b/bin/plugin/commands/test/changelog.js
index 7bcdcf61377e34..12420fd1e4b6f9 100644
--- a/bin/plugin/commands/test/changelog.js
+++ b/bin/plugin/commands/test/changelog.js
@@ -19,6 +19,7 @@ import {
getChangelog,
getContributorProps,
getContributorsList,
+ mapLabelsToFeatures,
} from '../changelog';
import _pullRequests from './fixtures/pull-requests.json';
import botPullRequestFixture from './fixtures/bot-pull-requests.json';
@@ -312,18 +313,35 @@ describe( 'sortGroup', () => {
} );
describe( 'getTypesByLabels', () => {
- it( 'returns all normalized type candidates by type prefix', () => {
+ it( 'returns all normalized type candidates by type prefix. it is case insensitive', () => {
const result = getTypesByLabels( [
'[Type] Regression',
'[Type] Bug',
'[Package] Blocks',
- '[Type] Performance',
+ '[Type] performance',
] );
expect( result ).toEqual( [ 'Bug Fixes', 'Performance' ] );
} );
} );
+describe( 'mapLabelsToFeatures', () => {
+ it( 'returns all normalized feature candidates by feature prefix. it is case insensitive', () => {
+ const result = mapLabelsToFeatures( [
+ '[Package] Commands',
+ '[Package] Block Library',
+ '[Feature] Link Editing',
+ '[Feature] block Multi Selection',
+ ] );
+
+ expect( result ).toEqual( [
+ 'Commands',
+ 'Block Library',
+ 'Block Editor',
+ ] );
+ } );
+} );
+
describe( 'getTypesByTitle', () => {
it.each( [
[ 'Fix Typography panel rendering from style hooks' ],
@@ -473,7 +491,7 @@ describe( 'getFormattedItemDescription', () => {
describe( 'getChangelog', () => {
test( 'verify that the changelog is properly formatted', () => {
// The fixture with the list of pull requests was generated by running the following command:
- // npm run other:changelog -- --milestone="Gutenberg 11.3"
+ // npm run other:changelog -- --milestone="Gutenberg 16.8"
// The response from the `fetchAllPullRequests` call in the `getChangelog` method was stored in the JSON file.
expect( getChangelog( pullRequests ) ).toMatchSnapshot();
} );
diff --git a/bin/plugin/commands/test/fixtures/pull-requests.json b/bin/plugin/commands/test/fixtures/pull-requests.json
index e1d9df8ef0800b..c0ad0d7969399e 100644
--- a/bin/plugin/commands/test/fixtures/pull-requests.json
+++ b/bin/plugin/commands/test/fixtures/pull-requests.json
@@ -1,116 +1,76 @@
[
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/34002",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/55052",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/34002/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/34002/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/34002/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/34002",
- "id": 966290882,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzA4NTQ3NjEw",
- "number": 34002,
- "title": "Try new icons for reusable blocks and template parts.",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55052/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55052/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55052/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/55052",
+ "id": 1926590588,
+ "node_id": "PR_kwDOBNHdeM5b68B5",
+ "number": 55052,
+ "title": "Rich text: avoid shortcode logic, adjust paste handler instead",
"user": {
- "login": "jasmussen",
- "id": 1204802,
- "node_id": "MDQ6VXNlcjEyMDQ4MDI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1204802?v=4",
+ "login": "ellatrix",
+ "id": 4710635,
+ "node_id": "MDQ6VXNlcjQ3MTA2MzU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/4710635?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/jasmussen",
- "html_url": "https://github.com/jasmussen",
- "followers_url": "https://api.github.com/users/jasmussen/followers",
- "following_url": "https://api.github.com/users/jasmussen/following{/other_user}",
- "gists_url": "https://api.github.com/users/jasmussen/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/jasmussen/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/jasmussen/subscriptions",
- "organizations_url": "https://api.github.com/users/jasmussen/orgs",
- "repos_url": "https://api.github.com/users/jasmussen/repos",
- "events_url": "https://api.github.com/users/jasmussen/events{/privacy}",
- "received_events_url": "https://api.github.com/users/jasmussen/received_events",
+ "url": "https://api.github.com/users/ellatrix",
+ "html_url": "https://github.com/ellatrix",
+ "followers_url": "https://api.github.com/users/ellatrix/followers",
+ "following_url": "https://api.github.com/users/ellatrix/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ellatrix/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ellatrix/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ellatrix/subscriptions",
+ "organizations_url": "https://api.github.com/users/ellatrix/orgs",
+ "repos_url": "https://api.github.com/users/ellatrix/repos",
+ "events_url": "https://api.github.com/users/ellatrix/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ellatrix/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 783337752,
- "node_id": "MDU6TGFiZWw3ODMzMzc3NTI=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Reusable%20Blocks",
- "name": "[Feature] Reusable Blocks",
+ "id": 598548627,
+ "node_id": "MDU6TGFiZWw1OTg1NDg2Mjc=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Rich%20Text",
+ "name": "[Feature] Rich Text",
"color": "fbca04",
"default": false,
- "description": ""
+ "description": "Related to the Rich Text component that allows developers to render a contenteditable"
},
{
- "id": 1988226925,
- "node_id": "MDU6TGFiZWwxOTg4MjI2OTI1",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Icons",
- "name": "[Package] Icons",
- "color": "ed2572",
+ "id": 671400480,
+ "node_id": "MDU6TGFiZWw2NzE0MDA0ODA=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Raw%20Handling",
+ "name": "[Feature] Raw Handling",
+ "color": "fbca04",
"default": false,
- "description": "/packages/icons"
+ "description": "Related to the ability to convert content to blocks, paste handling, etc"
},
{
- "id": 2373088071,
- "node_id": "MDU6TGFiZWwyMzczMDg4MDcx",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Template-Part",
- "name": "[Block] Template-Part",
- "color": "6767e5",
+ "id": 930001208,
+ "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
+ "name": "[Type] Code Quality",
+ "color": "e5e04b",
"default": false,
- "description": ""
+ "description": "Issues or PRs that relate to code quality"
}
],
"state": "closed",
"locked": false,
- "assignee": {
- "login": "jasmussen",
- "id": 1204802,
- "node_id": "MDQ6VXNlcjEyMDQ4MDI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1204802?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/jasmussen",
- "html_url": "https://github.com/jasmussen",
- "followers_url": "https://api.github.com/users/jasmussen/followers",
- "following_url": "https://api.github.com/users/jasmussen/following{/other_user}",
- "gists_url": "https://api.github.com/users/jasmussen/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/jasmussen/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/jasmussen/subscriptions",
- "organizations_url": "https://api.github.com/users/jasmussen/orgs",
- "repos_url": "https://api.github.com/users/jasmussen/repos",
- "events_url": "https://api.github.com/users/jasmussen/events{/privacy}",
- "received_events_url": "https://api.github.com/users/jasmussen/received_events",
- "type": "User",
- "site_admin": false
- },
- "assignees": [
- {
- "login": "jasmussen",
- "id": 1204802,
- "node_id": "MDQ6VXNlcjEyMDQ4MDI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1204802?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/jasmussen",
- "html_url": "https://github.com/jasmussen",
- "followers_url": "https://api.github.com/users/jasmussen/followers",
- "following_url": "https://api.github.com/users/jasmussen/following{/other_user}",
- "gists_url": "https://api.github.com/users/jasmussen/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/jasmussen/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/jasmussen/subscriptions",
- "organizations_url": "https://api.github.com/users/jasmussen/orgs",
- "repos_url": "https://api.github.com/users/jasmussen/repos",
- "events_url": "https://api.github.com/users/jasmussen/events{/privacy}",
- "received_events_url": "https://api.github.com/users/jasmussen/received_events",
- "type": "User",
- "site_admin": false
- }
- ],
+ "assignee": null,
+ "assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -133,68 +93,84 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 5,
- "created_at": "2021-08-11T09:06:57Z",
- "updated_at": "2021-08-12T07:30:40Z",
- "closed_at": "2021-08-11T11:26:22Z",
- "author_association": "CONTRIBUTOR",
+ "comments": 4,
+ "created_at": "2023-10-04T16:30:23Z",
+ "updated_at": "2023-10-04T18:35:43Z",
+ "closed_at": "2023-10-04T18:35:18Z",
+ "author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/34002",
- "html_url": "https://github.com/WordPress/gutenberg/pull/34002",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/34002.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/34002.patch"
- },
- "body": "## Description\r\n\r\nStarts work on #33897 by adding new generic icons for template parts and reusable blocks.\r\n\r\nFor now, the PR adds the two new icons, and applies them to template parts and partially, reusable blocks:\r\n\r\n \r\n\r\nAs shown above, there's still some logic in the Reusable Block system that falls back to the `defaultBlock` icon, as shown above:\r\n\r\n- In the List View\r\n- In the Inspector description\r\n\r\nAdditionally, the `defaultBlock` is used for select mode:\r\n\r\n \r\n\r\nIf you're familiar with the reusable blocks codebase, I'd appreciate your help in applying the new icon in those remaining place. \r\n\r\n## How has this been tested?\r\n\r\nTemplate Parts and Reusable blocks, when used in the canvas, list view, and inspector, should leverage the new icons.\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [x] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/55052",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/55052",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/55052.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/55052.patch",
+ "merged_at": "2023-10-04T18:35:18Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\nWe can avoid rich text having to check for shortcodes by building the check into the paste handler. We already parse shortcodes, we should just do so a bit earlier.\r\n\r\nThis PR actually also fixes an issue with paste from Slack: previously paragraph wouldn't get fixed for inline paste. Now the Slack paragraph fixer runs for inline mode as well.\r\n\r\n## Why?\r\n\r\n\r\nTo simplify paste handling and rich text and prepare it to be moved to writing flow.\r\n\r\n## How?\r\n\r\n\r\n## Testing Instructions\r\n\r\nE2e tests should pass.\r\n\r\n### Testing Instructions for Keyboard\r\n\r\n\r\n## Screenshots or screencast \r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/55052/reactions",
+ "total_count": 1,
+ "+1": 1,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55052/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/34000",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/55048",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/34000/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/34000/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/34000/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/34000",
- "id": 966213667,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzA4NDc2NzQy",
- "number": 34000,
- "title": "[Mobile] - Global styles - Add color to the block styles filter list",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55048/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55048/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55048/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/55048",
+ "id": 1926536069,
+ "node_id": "PR_kwDOBNHdeM5b6wO1",
+ "number": 55048,
+ "title": "Rich text: use getPasteEventData",
"user": {
- "login": "geriux",
- "id": 4885740,
- "node_id": "MDQ6VXNlcjQ4ODU3NDA=",
- "avatar_url": "https://avatars.githubusercontent.com/u/4885740?v=4",
+ "login": "ellatrix",
+ "id": 4710635,
+ "node_id": "MDQ6VXNlcjQ3MTA2MzU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/4710635?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/geriux",
- "html_url": "https://github.com/geriux",
- "followers_url": "https://api.github.com/users/geriux/followers",
- "following_url": "https://api.github.com/users/geriux/following{/other_user}",
- "gists_url": "https://api.github.com/users/geriux/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/geriux/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/geriux/subscriptions",
- "organizations_url": "https://api.github.com/users/geriux/orgs",
- "repos_url": "https://api.github.com/users/geriux/repos",
- "events_url": "https://api.github.com/users/geriux/events{/privacy}",
- "received_events_url": "https://api.github.com/users/geriux/received_events",
+ "url": "https://api.github.com/users/ellatrix",
+ "html_url": "https://github.com/ellatrix",
+ "followers_url": "https://api.github.com/users/ellatrix/followers",
+ "following_url": "https://api.github.com/users/ellatrix/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ellatrix/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ellatrix/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ellatrix/subscriptions",
+ "organizations_url": "https://api.github.com/users/ellatrix/orgs",
+ "repos_url": "https://api.github.com/users/ellatrix/repos",
+ "events_url": "https://api.github.com/users/ellatrix/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ellatrix/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 982506020,
- "node_id": "MDU6TGFiZWw5ODI1MDYwMjA=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20i.e.%20Android%20or%20iOS",
- "name": "Mobile App - i.e. Android or iOS",
- "color": "a3ef7a",
+ "id": 930001208,
+ "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
+ "name": "[Type] Code Quality",
+ "color": "e5e04b",
"default": false,
- "description": "Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)"
+ "description": "Issues or PRs that relate to code quality"
}
],
"state": "closed",
@@ -202,13 +178,13 @@
"assignee": null,
"assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -231,39 +207,55 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 1,
- "created_at": "2021-08-11T08:20:47Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "closed_at": "2021-08-11T14:18:15Z",
+ "comments": 3,
+ "created_at": "2023-10-04T15:57:10Z",
+ "updated_at": "2023-10-04T17:32:23Z",
+ "closed_at": "2023-10-04T17:31:45Z",
"author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/34000",
- "html_url": "https://github.com/WordPress/gutenberg/pull/34000",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/34000.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/34000.patch"
- },
- "body": "`Gutenberg Mobile PR` -> https://github.com/wordpress-mobile/gutenberg-mobile/pull/3822\r\n\r\n## Description\r\nWe [recently added](https://github.com/WordPress/gutenberg/pull/33782) some filtering to prevent passing block style attributes that mobile doesn't support yet, by doing this the `color` styles were being filtered out. This PR adds `color` to the style attributes we support.\r\n\r\n## How has this been tested?\r\n- Open the app\r\n- Add a block that supports text color customization, like `Paragraph`\r\n- Open the settings of the block\r\n- Tap on `Text color`\r\n- Go to the end of the list and select `CUSTOM`\r\n- Change the color\r\n- **Expect** to see the text color changing in the block\r\n\r\n## Screenshots \r\nBefore|After\r\n-|-\r\n | \r\n\r\n## Types of changes\r\nBug fix\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [x] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/55048",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/55048",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/55048.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/55048.patch",
+ "merged_at": "2023-10-04T17:31:45Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\n\r\nThe code is reusable through `getPasteEventData`, we can use it in RichText. Additionally we can improve `getPasteEventData` to strip the meta tag and the garbage from Word.\r\n\r\n## Why?\r\n\r\nNeed to introduce more paste event handlers in #54543, so this makes it easier.\r\n\r\n## How?\r\n\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n\r\n### Testing Instructions for Keyboard\r\n\r\n\r\n## Screenshots or screencast \r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/55048/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55048/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33992",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/55045",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33992/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33992/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33992/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33992",
- "id": 965954789,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzA4MjM0OTc3",
- "number": 33992,
- "title": "Site Logo: Use getMedia shorthand",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55045/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55045/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55045/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/55045",
+ "id": 1926291618,
+ "node_id": "PR_kwDOBNHdeM5b56hN",
+ "number": 55045,
+ "title": "Migrate 'Global styles sidebar' test to Playwright",
"user": {
"login": "Mamaduka",
"id": 240569,
@@ -286,22 +278,13 @@
},
"labels": [
{
- "id": 930001208,
- "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
- "name": "[Type] Code Quality",
- "color": "e5e04b",
- "default": false,
- "description": "Gotta shave those yaks."
- },
- {
- "id": 2347193850,
- "node_id": "MDU6TGFiZWwyMzQ3MTkzODUw",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Site%20Logo",
- "name": "[Block] Site Logo",
- "color": "6767e5",
+ "id": 615503111,
+ "node_id": "MDU6TGFiZWw2MTU1MDMxMTE=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Automated%20Testing",
+ "name": "[Type] Automated Testing",
+ "color": "111111",
"default": false,
- "description": ""
+ "description": "Testing infrastructure changes impacting the execution of end-to-end (E2E) and/or unit tests."
}
],
"state": "closed",
@@ -349,13 +332,13 @@
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -378,140 +361,138 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 1,
- "created_at": "2021-08-11T05:29:30Z",
- "updated_at": "2021-08-11T07:35:13Z",
- "closed_at": "2021-08-11T07:34:49Z",
+ "comments": 3,
+ "created_at": "2023-10-04T14:01:37Z",
+ "updated_at": "2023-10-04T17:40:30Z",
+ "closed_at": "2023-10-04T17:40:05Z",
"author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33992",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33992",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33992.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33992.patch"
- },
- "body": "## Description\r\nPR replaces `getEntityRecord` with `getMedia` shorthand for simplicity.\r\n\r\nSimilar PR: #33943.\r\n\r\n## How has this been tested?\r\nThis is a non-breaking change. Tested that the \"Site Logo\" block works as expected.\r\n\r\n## Types of changes\r\nCode Quality\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/55045",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/55045",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/55045.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/55045.patch",
+ "merged_at": "2023-10-04T17:40:05Z"
+ },
+ "body": "## What?\r\nPart of #38851.\r\n\r\nPR migrates 'Global styles sidebar' tests to Playwright.\r\n\r\n## Testing Instructions\r\n```\r\nnpm run test:e2e:playwright -- test/e2e/specs/site-editor/global-styles-sidebar.spec.js\r\n```\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/55045/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55045/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33982",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/55044",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33982/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33982/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33982/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33982",
- "id": 965187245,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzA3NTI4ODcz",
- "number": 33982,
- "title": "Components: use the `__unsafe_useEmotionCache` in the `useCx` hook",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55044/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55044/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55044/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/55044",
+ "id": 1926216773,
+ "node_id": "PR_kwDOBNHdeM5b5qEF",
+ "number": 55044,
+ "title": "Docs: Add a callout to the `wp-now` documentation to mention it's still experimental",
"user": {
- "login": "ciampo",
- "id": 1083581,
- "node_id": "MDQ6VXNlcjEwODM1ODE=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1083581?v=4",
+ "login": "priethor",
+ "id": 27339341,
+ "node_id": "MDQ6VXNlcjI3MzM5MzQx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/27339341?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/ciampo",
- "html_url": "https://github.com/ciampo",
- "followers_url": "https://api.github.com/users/ciampo/followers",
- "following_url": "https://api.github.com/users/ciampo/following{/other_user}",
- "gists_url": "https://api.github.com/users/ciampo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/ciampo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/ciampo/subscriptions",
- "organizations_url": "https://api.github.com/users/ciampo/orgs",
- "repos_url": "https://api.github.com/users/ciampo/repos",
- "events_url": "https://api.github.com/users/ciampo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/ciampo/received_events",
+ "url": "https://api.github.com/users/priethor",
+ "html_url": "https://github.com/priethor",
+ "followers_url": "https://api.github.com/users/priethor/followers",
+ "following_url": "https://api.github.com/users/priethor/following{/other_user}",
+ "gists_url": "https://api.github.com/users/priethor/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/priethor/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/priethor/subscriptions",
+ "organizations_url": "https://api.github.com/users/priethor/orgs",
+ "repos_url": "https://api.github.com/users/priethor/repos",
+ "events_url": "https://api.github.com/users/priethor/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/priethor/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 930001208,
- "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
- "name": "[Type] Code Quality",
- "color": "e5e04b",
- "default": false,
- "description": "Gotta shave those yaks."
- },
- {
- "id": 997392122,
- "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
- "name": "[Package] Components",
- "color": "ed2572",
- "default": false,
- "description": "/packages/components"
- },
- {
- "id": 2555015900,
- "node_id": "MDU6TGFiZWwyNTU1MDE1OTAw",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Component%20System",
- "name": "[Feature] Component System",
- "color": "fbca04",
+ "id": 567484057,
+ "node_id": "MDU6TGFiZWw1Njc0ODQwNTc=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Developer%20Documentation",
+ "name": "[Type] Developer Documentation",
+ "color": "bfd4f2",
"default": false,
- "description": "The next iteration on WordPress Components."
+ "description": "Documentation for developers"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "ciampo",
- "id": 1083581,
- "node_id": "MDQ6VXNlcjEwODM1ODE=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1083581?v=4",
+ "login": "priethor",
+ "id": 27339341,
+ "node_id": "MDQ6VXNlcjI3MzM5MzQx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/27339341?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/ciampo",
- "html_url": "https://github.com/ciampo",
- "followers_url": "https://api.github.com/users/ciampo/followers",
- "following_url": "https://api.github.com/users/ciampo/following{/other_user}",
- "gists_url": "https://api.github.com/users/ciampo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/ciampo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/ciampo/subscriptions",
- "organizations_url": "https://api.github.com/users/ciampo/orgs",
- "repos_url": "https://api.github.com/users/ciampo/repos",
- "events_url": "https://api.github.com/users/ciampo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/ciampo/received_events",
+ "url": "https://api.github.com/users/priethor",
+ "html_url": "https://github.com/priethor",
+ "followers_url": "https://api.github.com/users/priethor/followers",
+ "following_url": "https://api.github.com/users/priethor/following{/other_user}",
+ "gists_url": "https://api.github.com/users/priethor/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/priethor/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/priethor/subscriptions",
+ "organizations_url": "https://api.github.com/users/priethor/orgs",
+ "repos_url": "https://api.github.com/users/priethor/repos",
+ "events_url": "https://api.github.com/users/priethor/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/priethor/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "ciampo",
- "id": 1083581,
- "node_id": "MDQ6VXNlcjEwODM1ODE=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1083581?v=4",
+ "login": "priethor",
+ "id": 27339341,
+ "node_id": "MDQ6VXNlcjI3MzM5MzQx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/27339341?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/ciampo",
- "html_url": "https://github.com/ciampo",
- "followers_url": "https://api.github.com/users/ciampo/followers",
- "following_url": "https://api.github.com/users/ciampo/following{/other_user}",
- "gists_url": "https://api.github.com/users/ciampo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/ciampo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/ciampo/subscriptions",
- "organizations_url": "https://api.github.com/users/ciampo/orgs",
- "repos_url": "https://api.github.com/users/ciampo/repos",
- "events_url": "https://api.github.com/users/ciampo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/ciampo/received_events",
+ "url": "https://api.github.com/users/priethor",
+ "html_url": "https://github.com/priethor",
+ "followers_url": "https://api.github.com/users/priethor/followers",
+ "following_url": "https://api.github.com/users/priethor/following{/other_user}",
+ "gists_url": "https://api.github.com/users/priethor/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/priethor/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/priethor/subscriptions",
+ "organizations_url": "https://api.github.com/users/priethor/orgs",
+ "repos_url": "https://api.github.com/users/priethor/repos",
+ "events_url": "https://api.github.com/users/priethor/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/priethor/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -534,56 +515,72 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 1,
- "created_at": "2021-08-10T17:43:01Z",
- "updated_at": "2021-08-11T08:16:06Z",
- "closed_at": "2021-08-11T08:15:38Z",
+ "comments": 2,
+ "created_at": "2023-10-04T13:25:12Z",
+ "updated_at": "2023-10-04T16:28:50Z",
+ "closed_at": "2023-10-04T16:28:23Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33982",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33982",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33982.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33982.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\n\r\n\r\nA [recent change](https://github.com/emotion-js/emotion/pull/2441) in Emotion exposed the `__unsafe_useEmotionCache()` hook.\r\n\r\nThis PR updates the package versions of `@emotion/react` and `@emotion/cache` and uses this newly exposed function in the `useCx` hook, instead of exposing the private `CacheProvider._context` variable directly.\r\n\r\n## How has this been tested?\r\n\r\n\r\n\r\n\r\n- Project builds, tests pass\r\n- Components in Storybook work as expected (in particular, the `useCx` Storybook story)\r\n\r\n## Screenshots \r\n\r\nN/A\r\n\r\n## Types of changes\r\n\r\n\r\n\r\n\r\n\r\nRefactor\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [x] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- N/A I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/55044",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/55044",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/55044.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/55044.patch",
+ "merged_at": "2023-10-04T16:28:23Z"
+ },
+ "body": "## What?\r\nUpdate the `wp-now` documentation to mention it's still experimental.\r\n\r\n## Why?\r\nSo that users understand the risks involved and use it at their own risk.\r\n\r\n## How?\r\nBy adding a callout notice!\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/55044/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55044/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33974",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/55041",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33974/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33974/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33974/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33974",
- "id": 964956517,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzA3MzMxNDYw",
- "number": 33974,
- "title": "Improve the rendering/update performance of the image block",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55041/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55041/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55041/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/55041",
+ "id": 1925939588,
+ "node_id": "PR_kwDOBNHdeM5b4tQg",
+ "number": 55041,
+ "title": "Block Editor: Subscribe only to block editor store in `useBlockSync`",
"user": {
- "login": "youknowriad",
- "id": 272444,
- "node_id": "MDQ6VXNlcjI3MjQ0NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
+ "login": "tyxla",
+ "id": 8436925,
+ "node_id": "MDQ6VXNlcjg0MzY5MjU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/8436925?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/youknowriad",
- "html_url": "https://github.com/youknowriad",
- "followers_url": "https://api.github.com/users/youknowriad/followers",
- "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
- "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
- "organizations_url": "https://api.github.com/users/youknowriad/orgs",
- "repos_url": "https://api.github.com/users/youknowriad/repos",
- "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
- "received_events_url": "https://api.github.com/users/youknowriad/received_events",
+ "url": "https://api.github.com/users/tyxla",
+ "html_url": "https://github.com/tyxla",
+ "followers_url": "https://api.github.com/users/tyxla/followers",
+ "following_url": "https://api.github.com/users/tyxla/following{/other_user}",
+ "gists_url": "https://api.github.com/users/tyxla/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/tyxla/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/tyxla/subscriptions",
+ "organizations_url": "https://api.github.com/users/tyxla/orgs",
+ "repos_url": "https://api.github.com/users/tyxla/repos",
+ "events_url": "https://api.github.com/users/tyxla/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/tyxla/received_events",
"type": "User",
"site_admin": false
},
@@ -595,70 +592,70 @@
"name": "[Type] Performance",
"color": "f3f4fe",
"default": false,
- "description": ""
+ "description": "Related to performance efforts"
},
{
- "id": 1101518360,
- "node_id": "MDU6TGFiZWwxMTAxNTE4MzYw",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Image",
- "name": "[Block] Image",
- "color": "6767e5",
+ "id": 1248494790,
+ "node_id": "MDU6TGFiZWwxMjQ4NDk0Nzkw",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Block%20editor",
+ "name": "[Package] Block editor",
+ "color": "ed2572",
"default": false,
- "description": ""
+ "description": "/packages/block-editor"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "youknowriad",
- "id": 272444,
- "node_id": "MDQ6VXNlcjI3MjQ0NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
+ "login": "tyxla",
+ "id": 8436925,
+ "node_id": "MDQ6VXNlcjg0MzY5MjU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/8436925?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/youknowriad",
- "html_url": "https://github.com/youknowriad",
- "followers_url": "https://api.github.com/users/youknowriad/followers",
- "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
- "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
- "organizations_url": "https://api.github.com/users/youknowriad/orgs",
- "repos_url": "https://api.github.com/users/youknowriad/repos",
- "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
- "received_events_url": "https://api.github.com/users/youknowriad/received_events",
+ "url": "https://api.github.com/users/tyxla",
+ "html_url": "https://github.com/tyxla",
+ "followers_url": "https://api.github.com/users/tyxla/followers",
+ "following_url": "https://api.github.com/users/tyxla/following{/other_user}",
+ "gists_url": "https://api.github.com/users/tyxla/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/tyxla/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/tyxla/subscriptions",
+ "organizations_url": "https://api.github.com/users/tyxla/orgs",
+ "repos_url": "https://api.github.com/users/tyxla/repos",
+ "events_url": "https://api.github.com/users/tyxla/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/tyxla/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "youknowriad",
- "id": 272444,
- "node_id": "MDQ6VXNlcjI3MjQ0NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
+ "login": "tyxla",
+ "id": 8436925,
+ "node_id": "MDQ6VXNlcjg0MzY5MjU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/8436925?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/youknowriad",
- "html_url": "https://github.com/youknowriad",
- "followers_url": "https://api.github.com/users/youknowriad/followers",
- "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
- "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
- "organizations_url": "https://api.github.com/users/youknowriad/orgs",
- "repos_url": "https://api.github.com/users/youknowriad/repos",
- "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
- "received_events_url": "https://api.github.com/users/youknowriad/received_events",
+ "url": "https://api.github.com/users/tyxla",
+ "html_url": "https://github.com/tyxla",
+ "followers_url": "https://api.github.com/users/tyxla/followers",
+ "following_url": "https://api.github.com/users/tyxla/following{/other_user}",
+ "gists_url": "https://api.github.com/users/tyxla/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/tyxla/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/tyxla/subscriptions",
+ "organizations_url": "https://api.github.com/users/tyxla/orgs",
+ "repos_url": "https://api.github.com/users/tyxla/repos",
+ "events_url": "https://api.github.com/users/tyxla/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/tyxla/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -681,96 +678,161 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 2,
- "created_at": "2021-08-10T12:59:50Z",
- "updated_at": "2021-08-10T14:07:42Z",
- "closed_at": "2021-08-10T14:07:18Z",
- "author_association": "CONTRIBUTOR",
+ "comments": 4,
+ "created_at": "2023-10-04T10:50:32Z",
+ "updated_at": "2023-10-04T13:05:07Z",
+ "closed_at": "2023-10-04T13:04:33Z",
+ "author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33974",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33974",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33974.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33974.patch"
- },
- "body": "While navigating the performance trace when typing the editor, I noticed some wasted milliseconds in the rendering of image blocks. This PR refactors the useSelect call of the image block a bit to improve the situation.\r\n\r\nI'm not really certain whether the impact will be visible in any of our performance metrics, we'll see.",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/55041",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/55041",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/55041.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/55041.patch",
+ "merged_at": "2023-10-04T13:04:33Z"
+ },
+ "body": "## What?\r\nThis PR updates an inner subscription inside `useBlockSync` to only subscribe to the block editor store, instead of to all stores.\r\n\r\n## Why?\r\nWhile doing another quick timeboxing session on #54819 I noticed that we're currently subscribing to all stores in `useBlockSync` when syncing back from the block editor store to the controlling entity. However, we're using only the block editor store, so there's no need to subscribe to all other stores.\r\n\r\n## How?\r\nWe're just adding the block editor as the store descriptor to subscribe to.\r\n\r\n## Testing Instructions\r\nSmoke test typing and verify all checks are green.\r\n\r\n### Testing Instructions for Keyboard\r\nNone\r\n\r\n## Screenshots or screencast \r\nNone",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/55041/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55041/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33965",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/55038",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33965/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33965/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33965/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33965",
- "id": 964611940,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzA3MDQyODk0",
- "number": 33965,
- "title": "Try to fix flaky customizer inspector test 2nd try",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55038/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55038/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55038/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/55038",
+ "id": 1925807656,
+ "node_id": "PR_kwDOBNHdeM5b4QQY",
+ "number": 55038,
+ "title": "Media & Text: Fix React warning",
"user": {
- "login": "kevin940726",
- "id": 7753001,
- "node_id": "MDQ6VXNlcjc3NTMwMDE=",
- "avatar_url": "https://avatars.githubusercontent.com/u/7753001?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/kevin940726",
- "html_url": "https://github.com/kevin940726",
- "followers_url": "https://api.github.com/users/kevin940726/followers",
- "following_url": "https://api.github.com/users/kevin940726/following{/other_user}",
- "gists_url": "https://api.github.com/users/kevin940726/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/kevin940726/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/kevin940726/subscriptions",
- "organizations_url": "https://api.github.com/users/kevin940726/orgs",
- "repos_url": "https://api.github.com/users/kevin940726/repos",
- "events_url": "https://api.github.com/users/kevin940726/events{/privacy}",
- "received_events_url": "https://api.github.com/users/kevin940726/received_events",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 2632875097,
- "node_id": "MDU6TGFiZWwyNjMyODc1MDk3",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Widgets%20Customizer",
- "name": "[Feature] Widgets Customizer",
- "color": "fbca04",
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
+ "default": false,
+ "description": "An existing feature does not function as intended"
+ },
+ {
+ "id": 1111898611,
+ "node_id": "MDU6TGFiZWwxMTExODk4NjEx",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Media%20&%20Text",
+ "name": "[Block] Media & Text",
+ "color": "6767e5",
"default": false,
- "description": "Ability to add and edit blocks in Customize → Widgets."
+ "description": "Affects the Media & Text Block"
}
],
"state": "closed",
"locked": false,
- "assignee": null,
- "assignees": [],
- "milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
- "description": null,
- "creator": {
- "login": "github-actions[bot]",
- "id": 41898282,
- "node_id": "MDM6Qm90NDE4OTgyODI=",
- "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/github-actions%5Bbot%5D",
- "html_url": "https://github.com/apps/github-actions",
- "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
- "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
- "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "assignee": {
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
"organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
"repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
"events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
@@ -779,131 +841,138 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
"comments": 4,
- "created_at": "2021-08-10T05:34:22Z",
- "updated_at": "2021-08-10T08:10:07Z",
- "closed_at": "2021-08-10T08:09:21Z",
+ "created_at": "2023-10-04T09:40:57Z",
+ "updated_at": "2023-10-05T11:16:54Z",
+ "closed_at": "2023-10-04T11:13:05Z",
"author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33965",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33965",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33965.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33965.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\n\r\nContinue from #33890. Second try to fix flaky e2e tests.\r\n\r\n#33890 had the right call, but the fix didn't work. This PR instead try to disable the intermediate transition to prevent the block toolbar from moving to the wrong position. Hopefully this time it'll fix it.\r\n\r\n## How has this been tested?\r\n\r\n\r\n\r\n\r\nNot yet found a reliable way to reproduce the issue, so maybe we just have to merge this and monitor it on trunk.\r\n\r\n## Types of changes\r\n\r\n\r\n\r\n\r\nBug fix\r\n\r\n## Checklist:\r\n- [ ] My code is tested.\r\n- [ ] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [ ] My code has proper inline documentation. \r\n- [ ] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/55038",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/55038",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/55038.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/55038.patch",
+ "merged_at": "2023-10-04T11:13:05Z"
+ },
+ "body": "## What?\r\nFixes #54963.\r\nAlternative to #54965.\r\n\r\nPR fixes the React warning when toggling the \"Crop image to fill entire column\" option for the Media & Text block.\r\n\r\n**Warning**\r\n\r\n```\r\nWarning: A component is changing an uncontrolled input to be controlled. This is likely caused by the value changing from undefined to a defined value, which should not happen.\r\n```\r\n\r\n## How?\r\nCast the `imageFill` value to a `boolean` when setting the `checked` prop. It's a `boolean `attribute with no default defined.\r\n\r\n## Testing Instructions\r\n1. Create a new post or page.\r\n2. Add a media & text block. Select or upload an image.\r\n3. Enable the option \"Crop image to fill entire column\"\r\n4. Confirm that there is no JavaScript warning about the value changing from undefined to a defined value, and that the crop setting continues to work.\r\n5. Deactivate Gutenberg, add two media and text blocks, one with the crop option enabled, one without. Activate Gutenberg again and confirm that there are no block validation errors.\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/55038/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55038/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33964",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/55037",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33964/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33964/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33964/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33964",
- "id": 964604344,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzA3MDM2NDUw",
- "number": 33964,
- "title": "Fix navigation block appender invalid html",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55037/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55037/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55037/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/55037",
+ "id": 1925802684,
+ "node_id": "PR_kwDOBNHdeM5b4PLq",
+ "number": 55037,
+ "title": "Documentation: Add a page about the format library to the platform docs site",
"user": {
- "login": "talldan",
- "id": 677833,
- "node_id": "MDQ6VXNlcjY3NzgzMw==",
- "avatar_url": "https://avatars.githubusercontent.com/u/677833?v=4",
+ "login": "youknowriad",
+ "id": 272444,
+ "node_id": "MDQ6VXNlcjI3MjQ0NA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/talldan",
- "html_url": "https://github.com/talldan",
- "followers_url": "https://api.github.com/users/talldan/followers",
- "following_url": "https://api.github.com/users/talldan/following{/other_user}",
- "gists_url": "https://api.github.com/users/talldan/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/talldan/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/talldan/subscriptions",
- "organizations_url": "https://api.github.com/users/talldan/orgs",
- "repos_url": "https://api.github.com/users/talldan/repos",
- "events_url": "https://api.github.com/users/talldan/events{/privacy}",
- "received_events_url": "https://api.github.com/users/talldan/received_events",
+ "url": "https://api.github.com/users/youknowriad",
+ "html_url": "https://github.com/youknowriad",
+ "followers_url": "https://api.github.com/users/youknowriad/followers",
+ "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
+ "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
+ "organizations_url": "https://api.github.com/users/youknowriad/orgs",
+ "repos_url": "https://api.github.com/users/youknowriad/repos",
+ "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/youknowriad/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 531680823,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
- "name": "[Type] Bug",
- "color": "d93f0b",
- "default": false,
- "description": "An existing feature is broken."
- },
- {
- "id": 1225853227,
- "node_id": "MDU6TGFiZWwxMjI1ODUzMjI3",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Navigation",
- "name": "[Block] Navigation",
- "color": "6767e5",
+ "id": 567484057,
+ "node_id": "MDU6TGFiZWw1Njc0ODQwNTc=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Developer%20Documentation",
+ "name": "[Type] Developer Documentation",
+ "color": "bfd4f2",
"default": false,
- "description": ""
+ "description": "Documentation for developers"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "talldan",
- "id": 677833,
- "node_id": "MDQ6VXNlcjY3NzgzMw==",
- "avatar_url": "https://avatars.githubusercontent.com/u/677833?v=4",
+ "login": "youknowriad",
+ "id": 272444,
+ "node_id": "MDQ6VXNlcjI3MjQ0NA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/talldan",
- "html_url": "https://github.com/talldan",
- "followers_url": "https://api.github.com/users/talldan/followers",
- "following_url": "https://api.github.com/users/talldan/following{/other_user}",
- "gists_url": "https://api.github.com/users/talldan/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/talldan/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/talldan/subscriptions",
- "organizations_url": "https://api.github.com/users/talldan/orgs",
- "repos_url": "https://api.github.com/users/talldan/repos",
- "events_url": "https://api.github.com/users/talldan/events{/privacy}",
- "received_events_url": "https://api.github.com/users/talldan/received_events",
+ "url": "https://api.github.com/users/youknowriad",
+ "html_url": "https://github.com/youknowriad",
+ "followers_url": "https://api.github.com/users/youknowriad/followers",
+ "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
+ "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
+ "organizations_url": "https://api.github.com/users/youknowriad/orgs",
+ "repos_url": "https://api.github.com/users/youknowriad/repos",
+ "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/youknowriad/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "talldan",
- "id": 677833,
- "node_id": "MDQ6VXNlcjY3NzgzMw==",
- "avatar_url": "https://avatars.githubusercontent.com/u/677833?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/talldan",
- "html_url": "https://github.com/talldan",
- "followers_url": "https://api.github.com/users/talldan/followers",
- "following_url": "https://api.github.com/users/talldan/following{/other_user}",
- "gists_url": "https://api.github.com/users/talldan/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/talldan/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/talldan/subscriptions",
- "organizations_url": "https://api.github.com/users/talldan/orgs",
- "repos_url": "https://api.github.com/users/talldan/repos",
- "events_url": "https://api.github.com/users/talldan/events{/privacy}",
- "received_events_url": "https://api.github.com/users/talldan/received_events",
+ "login": "youknowriad",
+ "id": 272444,
+ "node_id": "MDQ6VXNlcjI3MjQ0NA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/youknowriad",
+ "html_url": "https://github.com/youknowriad",
+ "followers_url": "https://api.github.com/users/youknowriad/followers",
+ "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
+ "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
+ "organizations_url": "https://api.github.com/users/youknowriad/orgs",
+ "repos_url": "https://api.github.com/users/youknowriad/repos",
+ "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/youknowriad/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -926,56 +995,72 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 1,
- "created_at": "2021-08-10T05:15:26Z",
- "updated_at": "2021-08-10T06:09:20Z",
- "closed_at": "2021-08-10T06:08:55Z",
+ "comments": 0,
+ "created_at": "2023-10-04T09:38:03Z",
+ "updated_at": "2023-10-04T14:06:18Z",
+ "closed_at": "2023-10-04T14:05:47Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33964",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33964",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33964.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33964.patch"
- },
- "body": "## Description\r\nThe navigation block's appender is currently an `li` within a `div`. This changes it to a `div` within a `div` by deleting one line of code 😄 \r\n\r\n## How has this been tested?\r\n1. Add a navigation block\r\n2. Choose 'Start empty'\r\n3. Inspect the HTML of the appender.\r\n\r\n## Types of changes\r\n\r\nBug fix (non-breaking change which fixes an issue)\r\n\r\n\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [x] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/55037",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/55037",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/55037.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/55037.patch",
+ "merged_at": "2023-10-04T14:05:47Z"
+ },
+ "body": "Related #53874\r\n\r\n## What?\r\n\r\nThis PR add a small documentation page about the format library package and how to leverage it in third-party block editors.\r\nIt's also weird that the \"block library\" package exports a function to register the blocks while the format library auto-registers the formats as soon as you import it. It might be good to unify at some point. cc @ellatrix \r\n\r\n**Note** I have personally tested all the code examples in a third-party vite install.\r\n\r\n### Test the documentation website\r\n\r\n```\r\ncd platform-docs\r\nnpm install\r\nnpm start\r\n```",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/55037/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55037/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33963",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/55033",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33963/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33963/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33963/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33963",
- "id": 964599701,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzA3MDMyMzg4",
- "number": 33963,
- "title": "Fix navigation block placeholder preview markup",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55033/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55033/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55033/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/55033",
+ "id": 1925730969,
+ "node_id": "PR_kwDOBNHdeM5b3_08",
+ "number": 55033,
+ "title": "Fix Deleted Navigation Menu warning string",
"user": {
- "login": "talldan",
- "id": 677833,
- "node_id": "MDQ6VXNlcjY3NzgzMw==",
- "avatar_url": "https://avatars.githubusercontent.com/u/677833?v=4",
+ "login": "getdave",
+ "id": 444434,
+ "node_id": "MDQ6VXNlcjQ0NDQzNA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/444434?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/talldan",
- "html_url": "https://github.com/talldan",
- "followers_url": "https://api.github.com/users/talldan/followers",
- "following_url": "https://api.github.com/users/talldan/following{/other_user}",
- "gists_url": "https://api.github.com/users/talldan/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/talldan/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/talldan/subscriptions",
- "organizations_url": "https://api.github.com/users/talldan/orgs",
- "repos_url": "https://api.github.com/users/talldan/repos",
- "events_url": "https://api.github.com/users/talldan/events{/privacy}",
- "received_events_url": "https://api.github.com/users/talldan/received_events",
+ "url": "https://api.github.com/users/getdave",
+ "html_url": "https://github.com/getdave",
+ "followers_url": "https://api.github.com/users/getdave/followers",
+ "following_url": "https://api.github.com/users/getdave/following{/other_user}",
+ "gists_url": "https://api.github.com/users/getdave/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/getdave/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/getdave/subscriptions",
+ "organizations_url": "https://api.github.com/users/getdave/orgs",
+ "repos_url": "https://api.github.com/users/getdave/repos",
+ "events_url": "https://api.github.com/users/getdave/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/getdave/received_events",
"type": "User",
"site_admin": false
},
@@ -987,7 +1072,7 @@
"name": "[Type] Bug",
"color": "d93f0b",
"default": false,
- "description": "An existing feature is broken."
+ "description": "An existing feature does not function as intended"
},
{
"id": 1225853227,
@@ -996,70 +1081,70 @@
"name": "[Block] Navigation",
"color": "6767e5",
"default": false,
- "description": ""
+ "description": "Affects the Navigation Block"
},
{
- "id": 1999059055,
- "node_id": "MDU6TGFiZWwxOTk5MDU5MDU1",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/CSS%20Styling",
- "name": "CSS Styling",
- "color": "63e2d2",
+ "id": 5642756854,
+ "node_id": "LA_kwDOBNHdeM8AAAABUFWi9g",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/l10n",
+ "name": "l10n",
+ "color": "08B8C3",
"default": false,
- "description": "Related to editor and front end styles, CSS-specific issues."
+ "description": "Localization and translations best practices"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "talldan",
- "id": 677833,
- "node_id": "MDQ6VXNlcjY3NzgzMw==",
- "avatar_url": "https://avatars.githubusercontent.com/u/677833?v=4",
+ "login": "getdave",
+ "id": 444434,
+ "node_id": "MDQ6VXNlcjQ0NDQzNA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/444434?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/talldan",
- "html_url": "https://github.com/talldan",
- "followers_url": "https://api.github.com/users/talldan/followers",
- "following_url": "https://api.github.com/users/talldan/following{/other_user}",
- "gists_url": "https://api.github.com/users/talldan/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/talldan/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/talldan/subscriptions",
- "organizations_url": "https://api.github.com/users/talldan/orgs",
- "repos_url": "https://api.github.com/users/talldan/repos",
- "events_url": "https://api.github.com/users/talldan/events{/privacy}",
- "received_events_url": "https://api.github.com/users/talldan/received_events",
+ "url": "https://api.github.com/users/getdave",
+ "html_url": "https://github.com/getdave",
+ "followers_url": "https://api.github.com/users/getdave/followers",
+ "following_url": "https://api.github.com/users/getdave/following{/other_user}",
+ "gists_url": "https://api.github.com/users/getdave/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/getdave/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/getdave/subscriptions",
+ "organizations_url": "https://api.github.com/users/getdave/orgs",
+ "repos_url": "https://api.github.com/users/getdave/repos",
+ "events_url": "https://api.github.com/users/getdave/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/getdave/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "talldan",
- "id": 677833,
- "node_id": "MDQ6VXNlcjY3NzgzMw==",
- "avatar_url": "https://avatars.githubusercontent.com/u/677833?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/talldan",
- "html_url": "https://github.com/talldan",
- "followers_url": "https://api.github.com/users/talldan/followers",
- "following_url": "https://api.github.com/users/talldan/following{/other_user}",
- "gists_url": "https://api.github.com/users/talldan/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/talldan/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/talldan/subscriptions",
- "organizations_url": "https://api.github.com/users/talldan/orgs",
- "repos_url": "https://api.github.com/users/talldan/repos",
- "events_url": "https://api.github.com/users/talldan/events{/privacy}",
- "received_events_url": "https://api.github.com/users/talldan/received_events",
+ "login": "getdave",
+ "id": 444434,
+ "node_id": "MDQ6VXNlcjQ0NDQzNA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/444434?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/getdave",
+ "html_url": "https://github.com/getdave",
+ "followers_url": "https://api.github.com/users/getdave/followers",
+ "following_url": "https://api.github.com/users/getdave/following{/other_user}",
+ "gists_url": "https://api.github.com/users/getdave/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/getdave/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/getdave/subscriptions",
+ "organizations_url": "https://api.github.com/users/getdave/orgs",
+ "repos_url": "https://api.github.com/users/getdave/repos",
+ "events_url": "https://api.github.com/users/getdave/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/getdave/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -1082,122 +1167,138 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
"comments": 4,
- "created_at": "2021-08-10T05:05:53Z",
- "updated_at": "2021-08-10T06:10:45Z",
- "closed_at": "2021-08-10T05:42:26Z",
+ "created_at": "2023-10-04T08:59:19Z",
+ "updated_at": "2023-10-04T11:05:32Z",
+ "closed_at": "2023-10-04T09:44:38Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33963",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33963",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33963.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33963.patch"
- },
- "body": "## Description\r\nFixes two separate issues with the navigation block placeholder preview.\r\n\r\nFirst, the preview has invalid html, nesting an `svg` element in a `ul` element:\r\n \r\n\r\nSecondly, when using a vertical navigation block, the invisible placeholder was taking up height, leading to this situation after selecting 'Start empty':\r\n \r\n\r\n## How has this been tested?\r\n1. Add both horizontal and vertical nav block, click start empty for both, and deselect the blocks\r\n2. The preview placeholders should look the same\r\n3. Inspect the markup, the svg should now be in a list item.\r\n4. Select the vertical list block and select 'Start empty', there should be no empty space in the nav block above the appender\r\n\r\n## Types of changes\r\n\r\nBug fix (non-breaking change which fixes an issue)\r\n\r\n\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [x] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/55033",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/55033",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/55033.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/55033.patch",
+ "merged_at": "2023-10-04T09:44:38Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\n\r\nFix creation of translatable string which was missing a space character.\r\n\r\nRectifies Issue discovered in https://github.com/WordPress/gutenberg/pull/54654#issuecomment-1746392718\r\n\r\n## Why?\r\n\r\n\r\nThe string needs a space to make sense.\r\n\r\n## How?\r\n\r\n\r\nUses `createInterpolateElement` to create the full string which avoids dealing with trailing whitespace and makes the entire string translatable.\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n\r\n1. Add Nav block to a Post and save the post.\r\n2. Find out which Navigation Menu is assigned to the block.\r\n3. In a new tab, go to Site Editor -> Site View (sidebar) -> Navigation. Find the Navigation Menu and delete it.\r\n4. Return to wherever you added the Nav block originally.\r\n5. See the warning about deleted menu.\r\n6. Check that text now contains a space between end of sentence and the button.\r\n7. Check that clicking the button works as on `trunk`.\r\n\r\n### Testing Instructions for Keyboard\r\n\r\n\r\n## Screenshots or screencast \r\n\r\n \r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/55033/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55033/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33961",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/55016",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33961/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33961/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33961/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33961",
- "id": 964264228,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzA2NzQ4ODYx",
- "number": 33961,
- "title": "Search Block: Removed components class from icon button and polished css",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55016/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55016/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55016/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/55016",
+ "id": 1924703354,
+ "node_id": "PR_kwDOBNHdeM5b0h9p",
+ "number": 55016,
+ "title": "Migrate 'iframed masonry block' tests to Playwright",
"user": {
- "login": "MaggieCabrera",
- "id": 3593343,
- "node_id": "MDQ6VXNlcjM1OTMzNDM=",
- "avatar_url": "https://avatars.githubusercontent.com/u/3593343?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/MaggieCabrera",
- "html_url": "https://github.com/MaggieCabrera",
- "followers_url": "https://api.github.com/users/MaggieCabrera/followers",
- "following_url": "https://api.github.com/users/MaggieCabrera/following{/other_user}",
- "gists_url": "https://api.github.com/users/MaggieCabrera/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/MaggieCabrera/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/MaggieCabrera/subscriptions",
- "organizations_url": "https://api.github.com/users/MaggieCabrera/orgs",
- "repos_url": "https://api.github.com/users/MaggieCabrera/repos",
- "events_url": "https://api.github.com/users/MaggieCabrera/events{/privacy}",
- "received_events_url": "https://api.github.com/users/MaggieCabrera/received_events",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 1539734701,
- "node_id": "MDU6TGFiZWwxNTM5NzM0NzAx",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Search",
- "name": "[Block] Search",
- "color": "6767e5",
+ "id": 615503111,
+ "node_id": "MDU6TGFiZWw2MTU1MDMxMTE=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Automated%20Testing",
+ "name": "[Type] Automated Testing",
+ "color": "111111",
"default": false,
- "description": ""
+ "description": "Testing infrastructure changes impacting the execution of end-to-end (E2E) and/or unit tests."
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "MaggieCabrera",
- "id": 3593343,
- "node_id": "MDQ6VXNlcjM1OTMzNDM=",
- "avatar_url": "https://avatars.githubusercontent.com/u/3593343?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/MaggieCabrera",
- "html_url": "https://github.com/MaggieCabrera",
- "followers_url": "https://api.github.com/users/MaggieCabrera/followers",
- "following_url": "https://api.github.com/users/MaggieCabrera/following{/other_user}",
- "gists_url": "https://api.github.com/users/MaggieCabrera/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/MaggieCabrera/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/MaggieCabrera/subscriptions",
- "organizations_url": "https://api.github.com/users/MaggieCabrera/orgs",
- "repos_url": "https://api.github.com/users/MaggieCabrera/repos",
- "events_url": "https://api.github.com/users/MaggieCabrera/events{/privacy}",
- "received_events_url": "https://api.github.com/users/MaggieCabrera/received_events",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "MaggieCabrera",
- "id": 3593343,
- "node_id": "MDQ6VXNlcjM1OTMzNDM=",
- "avatar_url": "https://avatars.githubusercontent.com/u/3593343?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/MaggieCabrera",
- "html_url": "https://github.com/MaggieCabrera",
- "followers_url": "https://api.github.com/users/MaggieCabrera/followers",
- "following_url": "https://api.github.com/users/MaggieCabrera/following{/other_user}",
- "gists_url": "https://api.github.com/users/MaggieCabrera/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/MaggieCabrera/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/MaggieCabrera/subscriptions",
- "organizations_url": "https://api.github.com/users/MaggieCabrera/orgs",
- "repos_url": "https://api.github.com/users/MaggieCabrera/repos",
- "events_url": "https://api.github.com/users/MaggieCabrera/events{/privacy}",
- "received_events_url": "https://api.github.com/users/MaggieCabrera/received_events",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -1220,140 +1321,138 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 4,
- "created_at": "2021-08-09T18:37:32Z",
- "updated_at": "2021-08-10T08:54:14Z",
- "closed_at": "2021-08-10T08:53:46Z",
- "author_association": "CONTRIBUTOR",
+ "comments": 1,
+ "created_at": "2023-10-03T18:31:31Z",
+ "updated_at": "2023-10-04T04:57:50Z",
+ "closed_at": "2023-10-04T04:57:21Z",
+ "author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33961",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33961",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33961.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33961.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\n\r\nAfter #26446 was merged there was a level of specificity in the CSS created to bring inline the editor and frontend styles that is being caused by the components classes present on the icon button. This PR refactors the button to use the regular button tag instead and removes the extra specificity from the CSS. I also went ahead and refactored the styles that were no longer needed after this change and that were causing mismatches between the editor and the frontend. \r\n\r\n## How has this been tested?\r\n\r\n\r\n\r\nI tested on Emptytheme using the following markup:\r\n\r\n```\r\n\r\n\r\n\r\n\r\n\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n```\r\n\r\n## Screenshots \r\n\r\nThe differences in sizes between editor and frontend are caused by Emptytheme not defining font-family or font-size while the editor does (and tries to reset it with little success). I'd love to improve this so we can have the same on the frontend and the editor but I'm unsure as to what's the correct approach for this.\r\n\r\n**Before:**\r\n\r\nFrontent | Editor\r\n--- | ---\r\n | \r\n\r\n\r\n**After:**\r\n\r\nFrontent | Editor\r\n--- | ---\r\n | \r\n\r\n## Types of changes\r\n\r\n\r\n\r\n\r\n\r\n## Checklist:\r\n- [ ] My code is tested.\r\n- [ ] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [ ] My code has proper inline documentation. \r\n- [ ] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/55016",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/55016",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/55016.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/55016.patch",
+ "merged_at": "2023-10-04T04:57:21Z"
+ },
+ "body": "## What?\r\nPart of #38851.\r\nCloses #34773.\r\n\r\nPR migrates 'iframed masonry block' tests to Playwright and simplifies it. Now that the editor loads in iframed by default, extra steps are unnecessary.\r\n\r\n## Why?\r\nThis is a part of general migration 🐦\r\n\r\n## Testing Instructions\r\n```\r\nnpm run test:e2e:playwright -- test/e2e/specs/editor/plugins/iframed-masonry-block.spec.js\r\n```\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/55016/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55016/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33951",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/55014",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33951/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33951/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33951/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33951",
- "id": 963902794,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzA2NDQwNTIx",
- "number": 33951,
- "title": "Site editor: fix presets for blocks with multiple selectors",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55014/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55014/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55014/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/55014",
+ "id": 1924644383,
+ "node_id": "PR_kwDOBNHdeM5b0VRt",
+ "number": 55014,
+ "title": "Migrate 'iframed block editor settings styles' tests to Playwright",
"user": {
- "login": "nosolosw",
- "id": 583546,
- "node_id": "MDQ6VXNlcjU4MzU0Ng==",
- "avatar_url": "https://avatars.githubusercontent.com/u/583546?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/nosolosw",
- "html_url": "https://github.com/nosolosw",
- "followers_url": "https://api.github.com/users/nosolosw/followers",
- "following_url": "https://api.github.com/users/nosolosw/following{/other_user}",
- "gists_url": "https://api.github.com/users/nosolosw/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/nosolosw/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/nosolosw/subscriptions",
- "organizations_url": "https://api.github.com/users/nosolosw/orgs",
- "repos_url": "https://api.github.com/users/nosolosw/repos",
- "events_url": "https://api.github.com/users/nosolosw/events{/privacy}",
- "received_events_url": "https://api.github.com/users/nosolosw/received_events",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 531680823,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
- "name": "[Type] Bug",
- "color": "d93f0b",
- "default": false,
- "description": "An existing feature is broken."
- },
- {
- "id": 1800807983,
- "node_id": "MDU6TGFiZWwxODAwODA3OTgz",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Global%20Styles",
- "name": "Global Styles",
- "color": "2100b7",
- "default": false,
- "description": ""
- },
- {
- "id": 2706102777,
- "node_id": "MDU6TGFiZWwyNzA2MTAyNzc3",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Site%20Editor",
- "name": "[Feature] Site Editor",
- "color": "fbca04",
+ "id": 615503111,
+ "node_id": "MDU6TGFiZWw2MTU1MDMxMTE=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Automated%20Testing",
+ "name": "[Type] Automated Testing",
+ "color": "111111",
"default": false,
- "description": ""
+ "description": "Testing infrastructure changes impacting the execution of end-to-end (E2E) and/or unit tests."
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "nosolosw",
- "id": 583546,
- "node_id": "MDQ6VXNlcjU4MzU0Ng==",
- "avatar_url": "https://avatars.githubusercontent.com/u/583546?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/nosolosw",
- "html_url": "https://github.com/nosolosw",
- "followers_url": "https://api.github.com/users/nosolosw/followers",
- "following_url": "https://api.github.com/users/nosolosw/following{/other_user}",
- "gists_url": "https://api.github.com/users/nosolosw/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/nosolosw/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/nosolosw/subscriptions",
- "organizations_url": "https://api.github.com/users/nosolosw/orgs",
- "repos_url": "https://api.github.com/users/nosolosw/repos",
- "events_url": "https://api.github.com/users/nosolosw/events{/privacy}",
- "received_events_url": "https://api.github.com/users/nosolosw/received_events",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "nosolosw",
- "id": 583546,
- "node_id": "MDQ6VXNlcjU4MzU0Ng==",
- "avatar_url": "https://avatars.githubusercontent.com/u/583546?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/nosolosw",
- "html_url": "https://github.com/nosolosw",
- "followers_url": "https://api.github.com/users/nosolosw/followers",
- "following_url": "https://api.github.com/users/nosolosw/following{/other_user}",
- "gists_url": "https://api.github.com/users/nosolosw/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/nosolosw/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/nosolosw/subscriptions",
- "organizations_url": "https://api.github.com/users/nosolosw/orgs",
- "repos_url": "https://api.github.com/users/nosolosw/repos",
- "events_url": "https://api.github.com/users/nosolosw/events{/privacy}",
- "received_events_url": "https://api.github.com/users/nosolosw/received_events",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -1376,91 +1475,147 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
"comments": 1,
- "created_at": "2021-08-09T11:32:27Z",
- "updated_at": "2021-08-09T16:04:15Z",
- "closed_at": "2021-08-09T16:03:48Z",
+ "created_at": "2023-10-03T17:51:36Z",
+ "updated_at": "2023-10-04T04:21:00Z",
+ "closed_at": "2023-10-04T04:20:36Z",
"author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33951",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33951",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33951.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33951.patch"
- },
- "body": "Fixes https://github.com/WordPress/gutenberg/issues/31660",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/55014",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/55014",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/55014.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/55014.patch",
+ "merged_at": "2023-10-04T04:20:36Z"
+ },
+ "body": "## What?\r\nPart of #38851.\r\nCloses #54602.\r\nCloses #54462.\r\n\r\nPR migrates 'iframed block editor settings styles' tests to Playwright.\r\n\r\n## Why?\r\nThis is a relatively new test and should've been written with Playwright. Ref: #52767.\r\n\r\n## Testing Instructions\r\n```\r\nnpm run test:e2e:playwright -- test/e2e/specs/editor/plugins/iframed-enqueue-block-editor-settings.spec.js\r\n```\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/55014/reactions",
+ "total_count": 1,
+ "+1": 1,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55014/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33945",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/55012",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33945/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33945/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33945/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33945",
- "id": 963666305,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzA2MjM2MjEx",
- "number": 33945,
- "title": "Scripts: Fix typo in format change message.",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55012/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55012/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55012/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/55012",
+ "id": 1924536618,
+ "node_id": "PR_kwDOBNHdeM5bz99-",
+ "number": 55012,
+ "title": "[Inserter]: Fix reset of registered media categories",
"user": {
- "login": "StevenDufresne",
- "id": 1657336,
- "node_id": "MDQ6VXNlcjE2NTczMzY=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1657336?v=4",
+ "login": "ntsekouras",
+ "id": 16275880,
+ "node_id": "MDQ6VXNlcjE2Mjc1ODgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/16275880?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/StevenDufresne",
- "html_url": "https://github.com/StevenDufresne",
- "followers_url": "https://api.github.com/users/StevenDufresne/followers",
- "following_url": "https://api.github.com/users/StevenDufresne/following{/other_user}",
- "gists_url": "https://api.github.com/users/StevenDufresne/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/StevenDufresne/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/StevenDufresne/subscriptions",
- "organizations_url": "https://api.github.com/users/StevenDufresne/orgs",
- "repos_url": "https://api.github.com/users/StevenDufresne/repos",
- "events_url": "https://api.github.com/users/StevenDufresne/events{/privacy}",
- "received_events_url": "https://api.github.com/users/StevenDufresne/received_events",
+ "url": "https://api.github.com/users/ntsekouras",
+ "html_url": "https://github.com/ntsekouras",
+ "followers_url": "https://api.github.com/users/ntsekouras/followers",
+ "following_url": "https://api.github.com/users/ntsekouras/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ntsekouras/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ntsekouras/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ntsekouras/subscriptions",
+ "organizations_url": "https://api.github.com/users/ntsekouras/orgs",
+ "repos_url": "https://api.github.com/users/ntsekouras/repos",
+ "events_url": "https://api.github.com/users/ntsekouras/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ntsekouras/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 930001208,
- "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
- "name": "[Type] Code Quality",
- "color": "e5e04b",
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
"default": false,
- "description": "Gotta shave those yaks."
+ "description": "An existing feature does not function as intended"
},
{
- "id": 978007737,
- "node_id": "MDU6TGFiZWw5NzgwMDc3Mzc=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Scripts",
- "name": "[Package] Scripts",
- "color": "ed2572",
+ "id": 596962434,
+ "node_id": "MDU6TGFiZWw1OTY5NjI0MzQ=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Inserter",
+ "name": "[Feature] Inserter",
+ "color": "fbca04",
"default": false,
- "description": "/packages/scripts"
+ "description": "The main way to insert blocks using the + button in the editing interface"
}
],
"state": "closed",
"locked": false,
- "assignee": null,
- "assignees": [],
+ "assignee": {
+ "login": "ntsekouras",
+ "id": 16275880,
+ "node_id": "MDQ6VXNlcjE2Mjc1ODgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/16275880?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ntsekouras",
+ "html_url": "https://github.com/ntsekouras",
+ "followers_url": "https://api.github.com/users/ntsekouras/followers",
+ "following_url": "https://api.github.com/users/ntsekouras/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ntsekouras/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ntsekouras/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ntsekouras/subscriptions",
+ "organizations_url": "https://api.github.com/users/ntsekouras/orgs",
+ "repos_url": "https://api.github.com/users/ntsekouras/repos",
+ "events_url": "https://api.github.com/users/ntsekouras/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ntsekouras/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "ntsekouras",
+ "id": 16275880,
+ "node_id": "MDQ6VXNlcjE2Mjc1ODgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/16275880?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ntsekouras",
+ "html_url": "https://github.com/ntsekouras",
+ "followers_url": "https://api.github.com/users/ntsekouras/followers",
+ "following_url": "https://api.github.com/users/ntsekouras/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ntsekouras/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ntsekouras/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ntsekouras/subscriptions",
+ "organizations_url": "https://api.github.com/users/ntsekouras/orgs",
+ "repos_url": "https://api.github.com/users/ntsekouras/repos",
+ "events_url": "https://api.github.com/users/ntsekouras/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ntsekouras/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -1483,39 +1638,55 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 1,
- "created_at": "2021-08-09T05:48:44Z",
- "updated_at": "2021-08-09T08:08:59Z",
- "closed_at": "2021-08-09T08:08:38Z",
+ "comments": 3,
+ "created_at": "2023-10-03T16:42:22Z",
+ "updated_at": "2023-10-04T13:43:44Z",
+ "closed_at": "2023-10-04T11:31:58Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33945",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33945",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33945.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33945.patch"
- },
- "body": "## Description\r\nFixes a small typo introduced in #30240.\r\n\r\n`continiue` -> `continue`\r\n\r\n## How has this been tested?\r\nRan locally.\r\n\r\n## Screenshots \r\nN/A\r\n\r\n## Types of changes\r\nText update.\r\n\r\n## Checklist:\r\n- [ ] My code is tested.\r\n- [ ] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [ ] My code has proper inline documentation. \r\n- [ ] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/55012",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/55012",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/55012.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/55012.patch",
+ "merged_at": "2023-10-04T11:31:58Z"
+ },
+ "body": "\r\n\r\n## What?\r\nFixes: https://github.com/WordPress/gutenberg/issues/52832\r\n\r\nIn https://github.com/WordPress/gutenberg/pull/51542 a new `registerInserterMediaCategory` API to make media categories extensible was introduced. Since `inserterMediaCategories` is a block editor setting though there was an issue that if we register new categories before the initialization of the block editor store's settings or we updated another setting that triggers a settings reset(ex spotlight mode), the added categories were lost.\r\n\r\nThis PR introduces a new reducer in block editor(`registeredInserterMediaCategories`) and merges the registered ones and the settings when consuming the media categories in media tab.\r\n\r\n\r\n\r\n## Testing Instructions\r\n1. Register categories with PHP and JS\r\n2. Update a setting like `Spotlight mode`\r\n3. Observe that the categories are preserved.\r\n\r\nPHP registration code:\r\n```php\r\nadd_action( 'enqueue_block_editor_assets', function() {\r\n\twp_add_inline_script( 'wp-editor', \"\r\nwp.domReady( function() {\r\n\twp.data.dispatch( 'core/block-editor' ).registerInserterMediaCategory( {\r\n\t\tname: 'openverse-2',\r\n\t\tlabels: {\r\n\t\t\tname: 'Openverse 2',\r\n\t\t\tsearch_items: 'Search Openverse',\r\n\t\t},\r\n\t\tmediaType: 'image',\r\n\t\tasync fetch( query = {} ) {\r\n\t\t\tconst defaultArgs = {\r\n\t\t\t\tmature: false,\r\n\t\t\t\texcluded_source: 'flickr,inaturalist,wikimedia',\r\n\t\t\t\tlicense: 'pdm,cc0',\r\n\t\t\t};\r\n\t\t\tconst finalQuery = { ...query, ...defaultArgs };\r\n\t\t\tconst mapFromInserterMediaRequest = {\r\n\t\t\t\tper_page: 'page_size',\r\n\t\t\t\tsearch: 'q',\r\n\t\t\t};\r\n\t\t\tconst url = new URL( 'https://api.openverse.engineering/v1/images/' );\r\n\t\t\tObject.entries( finalQuery ).forEach( ( [ key, value ] ) => {\r\n\t\t\t\tconst queryKey = mapFromInserterMediaRequest[ key ] || key;\r\n\t\t\t\turl.searchParams.set( queryKey, value );\r\n\t\t\t} );\r\n\t\t\tconst response = await window.fetch( url, {\r\n\t\t\t\theaders: {\r\n\t\t\t\t\t'User-Agent': 'WordPress/inserter-media-fetch',\r\n\t\t\t\t},\r\n\t\t\t} );\r\n\t\t\tconst jsonResponse = await response.json();\r\n\t\t\tconst results = jsonResponse.results;\r\n\t\t\treturn results.map( ( result ) => ( {\r\n\t\t\t\t...result,\r\n\t\t\t\tsourceId: result.id,\r\n\t\t\t\tid: undefined,\r\n\t\t\t\tcaption: result.caption,\r\n\t\t\t\tpreviewUrl: result.thumbnail,\r\n\t\t\t} ) );\r\n\t\t},\r\n\t\tgetReportUrl: ( { sourceId } ) =>\r\n\t\t\t'https://wordpress.org/openverse/image/' + sourceId + '/report/',\r\n\t\tisExternalResource: true,\r\n\t} );\r\n\tconsole.log( 'Registered inserter media categories', wp.data.select( 'core/block-editor' ).getSettings().inserterMediaCategories );\r\n} );\r\n\t\" );\r\n} );\r\n```\r\n\r\nJS code to run in dev tools:\r\n```\r\nwp.data.dispatch( 'core/block-editor' ).registerInserterMediaCategory( {\r\n\tname: 'openverse from JS',\r\n\tlabels: {\r\n\t\tname: 'Openverse JS',\r\n\t\tsearch_items: 'Search Openverse',\r\n\t},\r\n\tmediaType: 'image',\r\n\tasync fetch( query = {} ) {\r\n\t\tconst defaultArgs = {\r\n\t\t\tmature: false,\r\n\t\t\texcluded_source: 'flickr,inaturalist,wikimedia',\r\n\t\t\tlicense: 'pdm,cc0',\r\n\t\t};\r\n\t\tconst finalQuery = { ...query, ...defaultArgs };\r\n\t\t// Sometimes you might need to map the supported request params according to `InserterMediaRequest`.\r\n\t\t// interface. In this example the `search` query param is named `q`.\r\n\t\tconst mapFromInserterMediaRequest = {\r\n\t\t\tper_page: 'page_size',\r\n\t\t\tsearch: 'q',\r\n\t\t};\r\n\t\tconst url = new URL( 'https://api.openverse.engineering/v1/images/' );\r\n\t\tObject.entries( finalQuery ).forEach( ( [ key, value ] ) => {\r\n\t\t\tconst queryKey = mapFromInserterMediaRequest[ key ] || key;\r\n\t\t\turl.searchParams.set( queryKey, value );\r\n\t\t} );\r\n\t\tconst response = await window.fetch( url, {\r\n\t\t\theaders: {\r\n\t\t\t\t'User-Agent': 'WordPress/inserter-media-fetch',\r\n\t\t\t},\r\n\t\t} );\r\n\t\tconst jsonResponse = await response.json();\r\n\t\tconst results = jsonResponse.results;\r\n\t\treturn results.map( ( result ) => ( {\r\n\t\t\t...result,\r\n\t\t\t// If your response result includes an `id` prop that you want to access later, it should\r\n\t\t\t// be mapped to `InserterMediaItem`'s `sourceId` prop. This can be useful if you provide\r\n\t\t\t// a report URL getter.\r\n\t\t\t// Additionally you should always clear the `id` value of your response results because\r\n\t\t\t// it is used to identify WordPress media items.\r\n\t\t\tsourceId: result.id,\r\n\t\t\tid: undefined,\r\n\t\t\tcaption: result.caption,\r\n\t\t\tpreviewUrl: result.thumbnail,\r\n\t\t} ) );\r\n\t},\r\n\tgetReportUrl: ( { sourceId } ) =>\r\n\t\t`https://wordpress.org/openverse/image/${ sourceId }/report/`,\r\n\tisExternalResource: true,\r\n} );\r\n```\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/55012/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55012/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33943",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/55009",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33943/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33943/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33943/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33943",
- "id": 963654820,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzA2MjI2Mjkw",
- "number": 33943,
- "title": "Featured Image: Use getMedia shorthand",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55009/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55009/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55009/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/55009",
+ "id": 1924228083,
+ "node_id": "PR_kwDOBNHdeM5by7AX",
+ "number": 55009,
+ "title": "Migrate 'iframed inline styles' tests to Playwright",
"user": {
"login": "Mamaduka",
"id": 240569,
@@ -1538,31 +1709,13 @@
},
"labels": [
{
- "id": 596964332,
- "node_id": "MDU6TGFiZWw1OTY5NjQzMzI=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/General%20Interface",
- "name": "General Interface",
- "color": "bfdadc",
- "default": false,
- "description": "Parts of the UI which don't fall neatly under other labels."
- },
- {
- "id": 930001208,
- "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
- "name": "[Type] Code Quality",
- "color": "e5e04b",
- "default": false,
- "description": "Gotta shave those yaks."
- },
- {
- "id": 2085610453,
- "node_id": "MDU6TGFiZWwyMDg1NjEwNDUz",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Post%20Featured%20Image",
- "name": "[Block] Post Featured Image",
- "color": "6767e5",
+ "id": 615503111,
+ "node_id": "MDU6TGFiZWw2MTU1MDMxMTE=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Automated%20Testing",
+ "name": "[Type] Automated Testing",
+ "color": "111111",
"default": false,
- "description": ""
+ "description": "Testing infrastructure changes impacting the execution of end-to-end (E2E) and/or unit tests."
}
],
"state": "closed",
@@ -1610,13 +1763,13 @@
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -1639,77 +1792,84 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 2,
- "created_at": "2021-08-09T05:16:56Z",
- "updated_at": "2021-08-09T08:52:36Z",
- "closed_at": "2021-08-09T08:52:07Z",
+ "comments": 3,
+ "created_at": "2023-10-03T14:04:42Z",
+ "updated_at": "2023-10-04T09:37:05Z",
+ "closed_at": "2023-10-04T09:36:35Z",
"author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33943",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33943",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33943.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33943.patch"
- },
- "body": "## Description\r\nSince #33689, it's possible to pass query arguments to the code data shorthands. PR update code to use `getMedia` instead of `getEntityRecord` for simplicity, see - https://github.com/WordPress/gutenberg/pull/33567#discussion_r683975606\r\n\r\n## How has this been tested?\r\n1. Upload an image using an Administrator user account.\r\n2. Switch to a user with an Author role.\r\n3. Create a post.\r\n4. Select the uploaded image using the \"Post Featured Image\" block or \"Feature image\" panel in the sidebar.\r\n5. See that feature image is displayed.\r\n6. DevTools has no 403 requests in the Networks panel.\r\n\r\n## Types of changes\r\nCode Quality\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/55009",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/55009",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/55009.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/55009.patch",
+ "merged_at": "2023-10-04T09:36:35Z"
+ },
+ "body": "## What?\r\nPart of #38851.\r\nCloses #35172.\r\n\r\nPR migrates 'iframed inline styles' tests to Playwright.\r\n\r\n## Why?\r\nThe test has been failing more often lately.\r\n\r\n## Testing Instructions\r\n```\r\nnpm run test:e2e:playwright -- test/e2e/specs/editor/plugins/iframed-inline-styles.spec.js\r\n```\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/55009/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55009/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33930",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/55006",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33930/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33930/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33930/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33930",
- "id": 962762985,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzA1NTA2NDAw",
- "number": 33930,
- "title": "Add documentation to disable remote calls for block patterns",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55006/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55006/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55006/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/55006",
+ "id": 1924142916,
+ "node_id": "PR_kwDOBNHdeM5byodE",
+ "number": 55006,
+ "title": "Writing flow: absorb clipboard handler",
"user": {
- "login": "mkaz",
- "id": 45363,
- "node_id": "MDQ6VXNlcjQ1MzYz",
- "avatar_url": "https://avatars.githubusercontent.com/u/45363?v=4",
+ "login": "ellatrix",
+ "id": 4710635,
+ "node_id": "MDQ6VXNlcjQ3MTA2MzU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/4710635?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/mkaz",
- "html_url": "https://github.com/mkaz",
- "followers_url": "https://api.github.com/users/mkaz/followers",
- "following_url": "https://api.github.com/users/mkaz/following{/other_user}",
- "gists_url": "https://api.github.com/users/mkaz/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/mkaz/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/mkaz/subscriptions",
- "organizations_url": "https://api.github.com/users/mkaz/orgs",
- "repos_url": "https://api.github.com/users/mkaz/repos",
- "events_url": "https://api.github.com/users/mkaz/events{/privacy}",
- "received_events_url": "https://api.github.com/users/mkaz/received_events",
+ "url": "https://api.github.com/users/ellatrix",
+ "html_url": "https://github.com/ellatrix",
+ "followers_url": "https://api.github.com/users/ellatrix/followers",
+ "following_url": "https://api.github.com/users/ellatrix/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ellatrix/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ellatrix/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ellatrix/subscriptions",
+ "organizations_url": "https://api.github.com/users/ellatrix/orgs",
+ "repos_url": "https://api.github.com/users/ellatrix/repos",
+ "events_url": "https://api.github.com/users/ellatrix/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ellatrix/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 567484057,
- "node_id": "MDU6TGFiZWw1Njc0ODQwNTc=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Documentation",
- "name": "[Type] Developer Documentation",
- "color": "bfd4f2",
- "default": false,
- "description": ""
- },
- {
- "id": 2697301145,
- "node_id": "MDU6TGFiZWwyNjk3MzAxMTQ1",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Pattern%20Directory",
- "name": "[Feature] Pattern Directory",
- "color": "FBCA04",
+ "id": 930001208,
+ "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
+ "name": "[Type] Code Quality",
+ "color": "e5e04b",
"default": false,
- "description": "The Pattern Directory, a place to find patterns"
+ "description": "Issues or PRs that relate to code quality"
}
],
"state": "closed",
@@ -1717,13 +1877,13 @@
"assignee": null,
"assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -1746,131 +1906,147 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 0,
- "created_at": "2021-08-06T13:58:48Z",
- "updated_at": "2021-08-06T15:34:14Z",
- "closed_at": "2021-08-06T15:09:46Z",
+ "comments": 5,
+ "created_at": "2023-10-03T13:21:20Z",
+ "updated_at": "2023-10-04T14:43:09Z",
+ "closed_at": "2023-10-04T14:42:43Z",
"author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33930",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33930",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33930.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33930.patch"
- },
- "body": "\n## Description\n\nAdds a new section to the editor filters documentation\nfor the filter `should_load_remote_block_patterns`\n\nFixes #32591\n\n\n## How has this been tested?\n\nConfirm documentation works as expected.\n\n1. Add filter to a plugin or theme\n2. Confirm remote block patterns are not loaded\n\n\n## Types of changes\n\nDocumentation\n\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/55006",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/55006",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/55006.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/55006.patch",
+ "merged_at": "2023-10-04T14:42:43Z"
+ },
+ "body": "\r\n\r\n## What/why?\r\n\r\nThis hook is writing flow, with a lot of similarity with its `useInput` hook. Paste shares splitting logic with pressing Enter, there's multi selection handling etc.\r\n\r\n## How?\r\n\r\n\r\nJust a move and deprecation.\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n\r\n### Testing Instructions for Keyboard\r\n\r\n\r\n## Screenshots or screencast \r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/55006/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55006/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33925",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/55003",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33925/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33925/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33925/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33925",
- "id": 962628315,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzA1Mzg5NzE3",
- "number": 33925,
- "title": "Remove the experimental prefix and rename `theme.json` files",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55003/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55003/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55003/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/55003",
+ "id": 1923918650,
+ "node_id": "PR_kwDOBNHdeM5bx373",
+ "number": 55003,
+ "title": "Migrate 'iframed multiple block stylesheets' tests to Playwright",
"user": {
- "login": "nosolosw",
- "id": 583546,
- "node_id": "MDQ6VXNlcjU4MzU0Ng==",
- "avatar_url": "https://avatars.githubusercontent.com/u/583546?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/nosolosw",
- "html_url": "https://github.com/nosolosw",
- "followers_url": "https://api.github.com/users/nosolosw/followers",
- "following_url": "https://api.github.com/users/nosolosw/following{/other_user}",
- "gists_url": "https://api.github.com/users/nosolosw/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/nosolosw/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/nosolosw/subscriptions",
- "organizations_url": "https://api.github.com/users/nosolosw/orgs",
- "repos_url": "https://api.github.com/users/nosolosw/repos",
- "events_url": "https://api.github.com/users/nosolosw/events{/privacy}",
- "received_events_url": "https://api.github.com/users/nosolosw/received_events",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 930001208,
- "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
- "name": "[Type] Code Quality",
- "color": "e5e04b",
+ "id": 615503111,
+ "node_id": "MDU6TGFiZWw2MTU1MDMxMTE=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Automated%20Testing",
+ "name": "[Type] Automated Testing",
+ "color": "111111",
"default": false,
- "description": "Gotta shave those yaks."
+ "description": "Testing infrastructure changes impacting the execution of end-to-end (E2E) and/or unit tests."
},
{
- "id": 1800807983,
- "node_id": "MDU6TGFiZWwxODAwODA3OTgz",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Global%20Styles",
- "name": "Global Styles",
- "color": "2100b7",
+ "id": 1699237849,
+ "node_id": "MDU6TGFiZWwxNjk5MjM3ODQ5",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20E2E%20Tests",
+ "name": "[Package] E2E Tests",
+ "color": "ed2572",
"default": false,
- "description": ""
+ "description": "/packages/e2e-tests"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "nosolosw",
- "id": 583546,
- "node_id": "MDQ6VXNlcjU4MzU0Ng==",
- "avatar_url": "https://avatars.githubusercontent.com/u/583546?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/nosolosw",
- "html_url": "https://github.com/nosolosw",
- "followers_url": "https://api.github.com/users/nosolosw/followers",
- "following_url": "https://api.github.com/users/nosolosw/following{/other_user}",
- "gists_url": "https://api.github.com/users/nosolosw/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/nosolosw/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/nosolosw/subscriptions",
- "organizations_url": "https://api.github.com/users/nosolosw/orgs",
- "repos_url": "https://api.github.com/users/nosolosw/repos",
- "events_url": "https://api.github.com/users/nosolosw/events{/privacy}",
- "received_events_url": "https://api.github.com/users/nosolosw/received_events",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "nosolosw",
- "id": 583546,
- "node_id": "MDQ6VXNlcjU4MzU0Ng==",
- "avatar_url": "https://avatars.githubusercontent.com/u/583546?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/nosolosw",
- "html_url": "https://github.com/nosolosw",
- "followers_url": "https://api.github.com/users/nosolosw/followers",
- "following_url": "https://api.github.com/users/nosolosw/following{/other_user}",
- "gists_url": "https://api.github.com/users/nosolosw/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/nosolosw/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/nosolosw/subscriptions",
- "organizations_url": "https://api.github.com/users/nosolosw/orgs",
- "repos_url": "https://api.github.com/users/nosolosw/repos",
- "events_url": "https://api.github.com/users/nosolosw/events{/privacy}",
- "received_events_url": "https://api.github.com/users/nosolosw/received_events",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -1893,140 +2069,147 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 0,
- "created_at": "2021-08-06T10:54:15Z",
- "updated_at": "2021-08-06T12:31:12Z",
- "closed_at": "2021-08-06T12:30:44Z",
+ "comments": 1,
+ "created_at": "2023-10-03T11:28:23Z",
+ "updated_at": "2023-10-04T09:42:18Z",
+ "closed_at": "2023-10-04T09:41:49Z",
"author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33925",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33925",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33925.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33925.patch"
- },
- "body": "This PR renames:\r\n\r\n- `experimental-default-theme.json` to `theme.json`\r\n- `experimental-i18n-theme.json` to `theme-i18n.json`\r\n\r\nso it follows WordPress core names ([see](https://github.com/WordPress/wordpress-develop/tree/master/src/wp-includes)).",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/55003",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/55003",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/55003.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/55003.patch",
+ "merged_at": "2023-10-04T09:41:49Z"
+ },
+ "body": "## What?\r\nPart of #38851.\r\nCloses #35394.\r\n\r\nPR migrates 'iframed multiple block stylesheets' tests to Playwright.\r\n\r\n## Why?\r\nThe test was flaky.\r\n\r\n## Testing Instructions\r\n```\r\nnpm run test:e2e:playwright -- test/e2e/specs/editor/plugins/iframed-multiple-block-stylesheets.spec.js\r\n```\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/55003/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/55003/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33924",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54997",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33924/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33924/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33924/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33924",
- "id": 962620740,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzA1MzgzMjAx",
- "number": 33924,
- "title": "Do not add to the block-library CSS bundle the colors that come from `theme.json`",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54997/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54997/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54997/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54997",
+ "id": 1923425443,
+ "node_id": "PR_kwDOBNHdeM5bwPUS",
+ "number": 54997,
+ "title": "Fix left and right aligmnent in children of Post Template",
"user": {
- "login": "nosolosw",
- "id": 583546,
- "node_id": "MDQ6VXNlcjU4MzU0Ng==",
- "avatar_url": "https://avatars.githubusercontent.com/u/583546?v=4",
+ "login": "tellthemachines",
+ "id": 8096000,
+ "node_id": "MDQ6VXNlcjgwOTYwMDA=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/8096000?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/nosolosw",
- "html_url": "https://github.com/nosolosw",
- "followers_url": "https://api.github.com/users/nosolosw/followers",
- "following_url": "https://api.github.com/users/nosolosw/following{/other_user}",
- "gists_url": "https://api.github.com/users/nosolosw/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/nosolosw/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/nosolosw/subscriptions",
- "organizations_url": "https://api.github.com/users/nosolosw/orgs",
- "repos_url": "https://api.github.com/users/nosolosw/repos",
- "events_url": "https://api.github.com/users/nosolosw/events{/privacy}",
- "received_events_url": "https://api.github.com/users/nosolosw/received_events",
+ "url": "https://api.github.com/users/tellthemachines",
+ "html_url": "https://github.com/tellthemachines",
+ "followers_url": "https://api.github.com/users/tellthemachines/followers",
+ "following_url": "https://api.github.com/users/tellthemachines/following{/other_user}",
+ "gists_url": "https://api.github.com/users/tellthemachines/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/tellthemachines/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/tellthemachines/subscriptions",
+ "organizations_url": "https://api.github.com/users/tellthemachines/orgs",
+ "repos_url": "https://api.github.com/users/tellthemachines/repos",
+ "events_url": "https://api.github.com/users/tellthemachines/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/tellthemachines/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 731693674,
- "node_id": "MDU6TGFiZWw3MzE2OTM2NzQ=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Performance",
- "name": "[Type] Performance",
- "color": "f3f4fe",
- "default": false,
- "description": ""
- },
- {
- "id": 1022744205,
- "node_id": "MDU6TGFiZWwxMDIyNzQ0MjA1",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Block%20library",
- "name": "[Package] Block library",
- "color": "ed2572",
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
"default": false,
- "description": "/packages/block-library"
+ "description": "An existing feature does not function as intended"
},
{
- "id": 2424704665,
- "node_id": "MDU6TGFiZWwyNDI0NzA0NjY1",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Base%20styles",
- "name": "[Package] Base styles",
- "color": "ed2572",
+ "id": 3488072481,
+ "node_id": "LA_kwDOBNHdeM7P58Mh",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Post%20Template",
+ "name": "[Block] Post Template",
+ "color": "6767e5",
"default": false,
- "description": "/packages/base-styles"
+ "description": "Affects the Post Template Block"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "nosolosw",
- "id": 583546,
- "node_id": "MDQ6VXNlcjU4MzU0Ng==",
- "avatar_url": "https://avatars.githubusercontent.com/u/583546?v=4",
+ "login": "tellthemachines",
+ "id": 8096000,
+ "node_id": "MDQ6VXNlcjgwOTYwMDA=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/8096000?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/nosolosw",
- "html_url": "https://github.com/nosolosw",
- "followers_url": "https://api.github.com/users/nosolosw/followers",
- "following_url": "https://api.github.com/users/nosolosw/following{/other_user}",
- "gists_url": "https://api.github.com/users/nosolosw/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/nosolosw/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/nosolosw/subscriptions",
- "organizations_url": "https://api.github.com/users/nosolosw/orgs",
- "repos_url": "https://api.github.com/users/nosolosw/repos",
- "events_url": "https://api.github.com/users/nosolosw/events{/privacy}",
- "received_events_url": "https://api.github.com/users/nosolosw/received_events",
+ "url": "https://api.github.com/users/tellthemachines",
+ "html_url": "https://github.com/tellthemachines",
+ "followers_url": "https://api.github.com/users/tellthemachines/followers",
+ "following_url": "https://api.github.com/users/tellthemachines/following{/other_user}",
+ "gists_url": "https://api.github.com/users/tellthemachines/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/tellthemachines/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/tellthemachines/subscriptions",
+ "organizations_url": "https://api.github.com/users/tellthemachines/orgs",
+ "repos_url": "https://api.github.com/users/tellthemachines/repos",
+ "events_url": "https://api.github.com/users/tellthemachines/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/tellthemachines/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "nosolosw",
- "id": 583546,
- "node_id": "MDQ6VXNlcjU4MzU0Ng==",
- "avatar_url": "https://avatars.githubusercontent.com/u/583546?v=4",
+ "login": "tellthemachines",
+ "id": 8096000,
+ "node_id": "MDQ6VXNlcjgwOTYwMDA=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/8096000?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/nosolosw",
- "html_url": "https://github.com/nosolosw",
- "followers_url": "https://api.github.com/users/nosolosw/followers",
- "following_url": "https://api.github.com/users/nosolosw/following{/other_user}",
- "gists_url": "https://api.github.com/users/nosolosw/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/nosolosw/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/nosolosw/subscriptions",
- "organizations_url": "https://api.github.com/users/nosolosw/orgs",
- "repos_url": "https://api.github.com/users/nosolosw/repos",
- "events_url": "https://api.github.com/users/nosolosw/events{/privacy}",
- "received_events_url": "https://api.github.com/users/nosolosw/received_events",
+ "url": "https://api.github.com/users/tellthemachines",
+ "html_url": "https://github.com/tellthemachines",
+ "followers_url": "https://api.github.com/users/tellthemachines/followers",
+ "following_url": "https://api.github.com/users/tellthemachines/following{/other_user}",
+ "gists_url": "https://api.github.com/users/tellthemachines/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/tellthemachines/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/tellthemachines/subscriptions",
+ "organizations_url": "https://api.github.com/users/tellthemachines/orgs",
+ "repos_url": "https://api.github.com/users/tellthemachines/repos",
+ "events_url": "https://api.github.com/users/tellthemachines/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/tellthemachines/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -2049,39 +2232,55 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 11,
- "created_at": "2021-08-06T10:42:47Z",
- "updated_at": "2021-08-12T10:17:53Z",
- "closed_at": "2021-08-11T12:09:56Z",
- "author_association": "MEMBER",
+ "comments": 3,
+ "created_at": "2023-10-03T06:37:51Z",
+ "updated_at": "2023-10-04T09:38:11Z",
+ "closed_at": "2023-10-04T04:17:08Z",
+ "author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33924",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33924",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33924.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33924.patch"
- },
- "body": "This PR reduces the amount of CSS imported by the `block-library` package, to only the ones that are not defined by `theme.json` defaults.\r\n\r\n~Alternatives I've considered: remove the mixins `background-colors`, `foreground-colors`, `gradient-colors`. The reason I discarded this approach is that I understand it may be an API others use and we don't want to keep them in the `base-styles` package. Happy to reconsider if others think differently.~ Updated: they were removed as per [this convo](https://github.com/WordPress/gutenberg/pull/33924#discussion_r685996672).\r\n\r\n## Test instructions\r\n\r\nI'm using the `emptytheme` for this testing.\r\n\r\nThe following instructions work for both the front-end and the editor:\r\n\r\n- Go and inspect the contents of the `wp-block-library-css` stylesheet.\r\n- You should find that the deprecated colors & gradients are still availablet. For example, you should find the following CSS for the `very-light-gray` color:\r\n\r\n```css\r\n:root .has-very-light-gray-background-color { background-color: #eee; }\r\n:root .has-very-light-gray-color { color: #eee; }\r\n```\r\n\r\n- The removed colors shouldn't be available. For example, in `trunk`, if you inspected the same stylesheet you should also find the CSS for the `black` color:\r\n\r\n```css\r\n:root .has-black-background-color { background-color: #000; }\r\n:root .has-black-color { color: #000; }\r\n```\r\n\r\n## Follow-ups\r\n\r\n- https://github.com/WordPress/gutenberg/issues/34006\r\n- https://github.com/WordPress/gutenberg/issues/34005\r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54997",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54997",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54997.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54997.patch",
+ "merged_at": "2023-10-04T04:17:07Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\nFixes #54805.\r\n\r\nLeft/right alignment doesn't work as expected for direct children of the Post Template block due to its unique markup structure. Given the problem is specific to this block, I think it makes sense to add some styles that fix it for this block only.\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n\r\n1. Set your Post Template to list layout;\r\n2. Set the Featured Image width to 50% and align it right;\r\n3. Verify that Featured Images are correctly right-aligned in both editor and front end.\r\n\r\n### Testing Instructions for Keyboard\r\n\r\n\r\n## Screenshots or screencast \r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54997/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54997/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33921",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54996",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33921/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33921/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33921/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33921",
- "id": 962596488,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzA1MzYyMDY1",
- "number": 33921,
- "title": "Site Editor: Add error boundary",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54996/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54996/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54996/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54996",
+ "id": 1923411460,
+ "node_id": "PR_kwDOBNHdeM5bwMWe",
+ "number": 54996,
+ "title": "Site Editor: Avoid stale navigation block values when parsing entity record",
"user": {
"login": "Mamaduka",
"id": 240569,
@@ -2104,13 +2303,13 @@
},
"labels": [
{
- "id": 531680825,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
- "name": "[Type] Enhancement",
- "color": "3993a3",
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
"default": false,
- "description": "A suggestion for improvement."
+ "description": "An existing feature does not function as intended"
},
{
"id": 2706102777,
@@ -2119,7 +2318,7 @@
"name": "[Feature] Site Editor",
"color": "fbca04",
"default": false,
- "description": ""
+ "description": "Related to the overarching Site Editor (formerly \"full site editing\")"
}
],
"state": "closed",
@@ -2167,13 +2366,13 @@
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -2196,122 +2395,147 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 3,
- "created_at": "2021-08-06T10:08:08Z",
- "updated_at": "2021-08-09T14:44:46Z",
- "closed_at": "2021-08-09T14:44:16Z",
+ "comments": 12,
+ "created_at": "2023-10-03T06:27:09Z",
+ "updated_at": "2023-10-04T10:06:13Z",
+ "closed_at": "2023-10-04T04:42:04Z",
"author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33921",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33921",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33921.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33921.patch"
- },
- "body": "## Description\r\nPR adds error boundary to the Site Editor. The fallback will render a warning message with actions to \"Attempt Recovery\" or \"Copy Error.\" It's similar to other editor error boundaries.\r\n\r\nInitially, I was planning to reuse the `ErrorBoundary` component from the editor package, but the \"Copy Post Text\" doesn't make sense in the context of site editing.\r\n\r\nI also moved the following components near the InterfaceSkeleton - `URLQueryController`, `FullscreenMode` and `UnsavedChangesWarning`.\r\n\r\nFixes #33899.\r\n\r\n## How has this been tested?\r\n1. Enable TT1 Blocks theme.\r\n2. Go to the Site Editor screen.\r\n3. Run following code in console to trigger error in the editor:\r\n\r\n```js\r\nwp.plugins.registerPlugin( 'error-boundary-test', {\r\n render() {\r\n throw new Error( 'Test' );\r\n },\r\n} );\r\n```\r\n\r\n## Screenshots \r\n![CleanShot 2021-08-06 at 13 57 48](https://user-images.githubusercontent.com/240569/128494025-5be726e8-ed4c-490f-bcc2-61e7925c4ed9.png)\r\n\r\n## Types of changes\r\nEnhancement\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54996",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54996",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54996.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54996.patch",
+ "merged_at": "2023-10-04T04:42:04Z"
+ },
+ "body": "## What?\r\nThis is a follow-up to https://github.com/WordPress/gutenberg/pull/54993#issuecomment-1744241005. Props to @aaronrobertshaw for discovering the bug.\r\n\r\nPR updates template parts navigation menus display component to handle rendering fallback menus.\r\n\r\n## Why?\r\nThe navigation block sets fallback `ref` [during the render](https://github.com/WordPress/gutenberg/blob/2afdedf792b5a74ffaf109fcee5dbbcbbef361f4/packages/block-library/src/navigation/edit/index.js#L229-L244). Since this data isn't part of the content, it was never picked up by the `useNavigationMenuContent`.\r\n\r\n\r\n## How?\r\nAdd a new helper method, `getBlocksFromRecord`, which returns edited blocks from the record when available and fallbacks to blocks from the content. This matches the logic for edited blocks in [`useEntityBlockEditor`](https://github.com/WordPress/gutenberg/blob/205f1e3ba8104365c16b856c2ef7a983b4416581/packages/core-data/src/entity-provider.js#L171-L179).\r\n\r\n## Testing Instructions\r\n1. Using TT3 theme.\r\n2. Create all customizations from the Header template part.\r\n3. Delete all navigation menus. You can use the `wp-admin/edit.php?post_type=wp_navigation` screen.\r\n4. Open the Header template part.\r\n5. Confirm fallback navigation is displayed in sidebar details.\r\n\r\n## Screenshots or screencast \r\n\r\n![CleanShot 2023-10-03 at 10 14 42](https://github.com/WordPress/gutenberg/assets/240569/9f20c4e7-3fb4-46b4-ab52-d753ac08945a)\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54996/reactions",
+ "total_count": 1,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 1,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54996/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33913",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54993",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33913/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33913/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33913/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33913",
- "id": 962143664,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzA0OTc3NTgz",
- "number": 33913,
- "title": "Mobile Release v1.59.0",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54993/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54993/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54993/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54993",
+ "id": 1923304650,
+ "node_id": "PR_kwDOBNHdeM5bv1Y5",
+ "number": 54993,
+ "title": "Don't display the navigation section in template parts details when a menu is missing",
"user": {
- "login": "jhnstn",
- "id": 744755,
- "node_id": "MDQ6VXNlcjc0NDc1NQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/744755?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/jhnstn",
- "html_url": "https://github.com/jhnstn",
- "followers_url": "https://api.github.com/users/jhnstn/followers",
- "following_url": "https://api.github.com/users/jhnstn/following{/other_user}",
- "gists_url": "https://api.github.com/users/jhnstn/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/jhnstn/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/jhnstn/subscriptions",
- "organizations_url": "https://api.github.com/users/jhnstn/orgs",
- "repos_url": "https://api.github.com/users/jhnstn/repos",
- "events_url": "https://api.github.com/users/jhnstn/events{/privacy}",
- "received_events_url": "https://api.github.com/users/jhnstn/received_events",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 982506020,
- "node_id": "MDU6TGFiZWw5ODI1MDYwMjA=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20i.e.%20Android%20or%20iOS",
- "name": "Mobile App - i.e. Android or iOS",
- "color": "a3ef7a",
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
"default": false,
- "description": "Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)"
+ "description": "An existing feature does not function as intended"
+ },
+ {
+ "id": 2706102777,
+ "node_id": "MDU6TGFiZWwyNzA2MTAyNzc3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Site%20Editor",
+ "name": "[Feature] Site Editor",
+ "color": "fbca04",
+ "default": false,
+ "description": "Related to the overarching Site Editor (formerly \"full site editing\")"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "dcalhoun",
- "id": 438664,
- "node_id": "MDQ6VXNlcjQzODY2NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/438664?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/dcalhoun",
- "html_url": "https://github.com/dcalhoun",
- "followers_url": "https://api.github.com/users/dcalhoun/followers",
- "following_url": "https://api.github.com/users/dcalhoun/following{/other_user}",
- "gists_url": "https://api.github.com/users/dcalhoun/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/dcalhoun/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/dcalhoun/subscriptions",
- "organizations_url": "https://api.github.com/users/dcalhoun/orgs",
- "repos_url": "https://api.github.com/users/dcalhoun/repos",
- "events_url": "https://api.github.com/users/dcalhoun/events{/privacy}",
- "received_events_url": "https://api.github.com/users/dcalhoun/received_events",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "dcalhoun",
- "id": 438664,
- "node_id": "MDQ6VXNlcjQzODY2NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/438664?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/dcalhoun",
- "html_url": "https://github.com/dcalhoun",
- "followers_url": "https://api.github.com/users/dcalhoun/followers",
- "following_url": "https://api.github.com/users/dcalhoun/following{/other_user}",
- "gists_url": "https://api.github.com/users/dcalhoun/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/dcalhoun/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/dcalhoun/subscriptions",
- "organizations_url": "https://api.github.com/users/dcalhoun/orgs",
- "repos_url": "https://api.github.com/users/dcalhoun/repos",
- "events_url": "https://api.github.com/users/dcalhoun/events{/privacy}",
- "received_events_url": "https://api.github.com/users/dcalhoun/received_events",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -2334,131 +2558,147 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 1,
- "created_at": "2021-08-05T19:46:50Z",
- "updated_at": "2021-08-06T15:38:52Z",
- "closed_at": "2021-08-06T15:14:20Z",
- "author_association": "CONTRIBUTOR",
+ "comments": 5,
+ "created_at": "2023-10-03T04:50:59Z",
+ "updated_at": "2023-10-05T09:24:16Z",
+ "closed_at": "2023-10-03T05:36:42Z",
+ "author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33913",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33913",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33913.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33913.patch"
- },
- "body": "## Description\nRelease 1.59.0 of the react-native-editor and Gutenberg-Mobile.\n\nFor more information about this release and testing instructions, please see the related Gutenberg-Mobile PR: https://github.com/wordpress-mobile/gutenberg-mobile/pull/3805\n\n## Checklist:\n- [x] My code is tested.\n- [x] My code follows the WordPress code style. \n- [x] My code follows the accessibility standards. \n- [ ] I've tested my changes with keyboard and screen readers. \n- [x] My code has proper inline documentation. \n- [x] I've included developer documentation if appropriate. \n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). ",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54993",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54993",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54993.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54993.patch",
+ "merged_at": "2023-10-03T05:36:42Z"
+ },
+ "body": "## What?\r\nResolves #54822.\r\n\r\nPR updates template part navigation menu components to render nothing when a menu is missing.\r\n\r\n## Why?\r\nThere's no use in rendering menus that the user can't edit.\r\n\r\n## How?\r\nThe component now checks if the `title` resolves to `undefined`. This happens when an entity is still resolving or missing.\r\n\r\n## Testing Instructions\r\n1. Open a Site Editor.\r\n2. Open a template part with a navigation block.\r\n3. Confirm navigation is displayed in sidebar details.\r\n4. Change the navigation `ref` attribute to a non-existing ID via the code editor.\r\n5. Confirm navigation is no longer displayed in sidebar details.\r\n\r\n### Testing Instructions for Keyboard\r\nSame.\r\n\r\n## Screenshots or screencast \r\n![CleanShot 2023-10-03 at 08 44 41](https://github.com/WordPress/gutenberg/assets/240569/39565c7f-e2e8-4add-832f-875e26131ff0)\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54993/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54993/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33906",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54992",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33906/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33906/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33906/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33906",
- "id": 962026946,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzA0ODc4MDA0",
- "number": 33906,
- "title": "Closing the block inserter decrements block type impressions",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54992/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54992/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54992/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54992",
+ "id": 1923150718,
+ "node_id": "PR_kwDOBNHdeM5bvT6r",
+ "number": 54992,
+ "title": "Fix output of Navigation block classnames in the editor.",
"user": {
- "login": "dcalhoun",
- "id": 438664,
- "node_id": "MDQ6VXNlcjQzODY2NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/438664?v=4",
+ "login": "tellthemachines",
+ "id": 8096000,
+ "node_id": "MDQ6VXNlcjgwOTYwMDA=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/8096000?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/dcalhoun",
- "html_url": "https://github.com/dcalhoun",
- "followers_url": "https://api.github.com/users/dcalhoun/followers",
- "following_url": "https://api.github.com/users/dcalhoun/following{/other_user}",
- "gists_url": "https://api.github.com/users/dcalhoun/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/dcalhoun/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/dcalhoun/subscriptions",
- "organizations_url": "https://api.github.com/users/dcalhoun/orgs",
- "repos_url": "https://api.github.com/users/dcalhoun/repos",
- "events_url": "https://api.github.com/users/dcalhoun/events{/privacy}",
- "received_events_url": "https://api.github.com/users/dcalhoun/received_events",
+ "url": "https://api.github.com/users/tellthemachines",
+ "html_url": "https://github.com/tellthemachines",
+ "followers_url": "https://api.github.com/users/tellthemachines/followers",
+ "following_url": "https://api.github.com/users/tellthemachines/following{/other_user}",
+ "gists_url": "https://api.github.com/users/tellthemachines/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/tellthemachines/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/tellthemachines/subscriptions",
+ "organizations_url": "https://api.github.com/users/tellthemachines/orgs",
+ "repos_url": "https://api.github.com/users/tellthemachines/repos",
+ "events_url": "https://api.github.com/users/tellthemachines/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/tellthemachines/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 596962434,
- "node_id": "MDU6TGFiZWw1OTY5NjI0MzQ=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Inserter",
- "name": "[Feature] Inserter",
- "color": "fbca04",
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
"default": false,
- "description": ""
+ "description": "An existing feature does not function as intended"
},
{
- "id": 982506020,
- "node_id": "MDU6TGFiZWw5ODI1MDYwMjA=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20i.e.%20Android%20or%20iOS",
- "name": "Mobile App - i.e. Android or iOS",
- "color": "a3ef7a",
+ "id": 1225853227,
+ "node_id": "MDU6TGFiZWwxMjI1ODUzMjI3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Navigation",
+ "name": "[Block] Navigation",
+ "color": "6767e5",
"default": false,
- "description": "Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)"
+ "description": "Affects the Navigation Block"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "dcalhoun",
- "id": 438664,
- "node_id": "MDQ6VXNlcjQzODY2NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/438664?v=4",
+ "login": "tellthemachines",
+ "id": 8096000,
+ "node_id": "MDQ6VXNlcjgwOTYwMDA=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/8096000?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/dcalhoun",
- "html_url": "https://github.com/dcalhoun",
- "followers_url": "https://api.github.com/users/dcalhoun/followers",
- "following_url": "https://api.github.com/users/dcalhoun/following{/other_user}",
- "gists_url": "https://api.github.com/users/dcalhoun/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/dcalhoun/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/dcalhoun/subscriptions",
- "organizations_url": "https://api.github.com/users/dcalhoun/orgs",
- "repos_url": "https://api.github.com/users/dcalhoun/repos",
- "events_url": "https://api.github.com/users/dcalhoun/events{/privacy}",
- "received_events_url": "https://api.github.com/users/dcalhoun/received_events",
+ "url": "https://api.github.com/users/tellthemachines",
+ "html_url": "https://github.com/tellthemachines",
+ "followers_url": "https://api.github.com/users/tellthemachines/followers",
+ "following_url": "https://api.github.com/users/tellthemachines/following{/other_user}",
+ "gists_url": "https://api.github.com/users/tellthemachines/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/tellthemachines/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/tellthemachines/subscriptions",
+ "organizations_url": "https://api.github.com/users/tellthemachines/orgs",
+ "repos_url": "https://api.github.com/users/tellthemachines/repos",
+ "events_url": "https://api.github.com/users/tellthemachines/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/tellthemachines/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "dcalhoun",
- "id": 438664,
- "node_id": "MDQ6VXNlcjQzODY2NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/438664?v=4",
+ "login": "tellthemachines",
+ "id": 8096000,
+ "node_id": "MDQ6VXNlcjgwOTYwMDA=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/8096000?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/dcalhoun",
- "html_url": "https://github.com/dcalhoun",
- "followers_url": "https://api.github.com/users/dcalhoun/followers",
- "following_url": "https://api.github.com/users/dcalhoun/following{/other_user}",
- "gists_url": "https://api.github.com/users/dcalhoun/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/dcalhoun/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/dcalhoun/subscriptions",
- "organizations_url": "https://api.github.com/users/dcalhoun/orgs",
- "repos_url": "https://api.github.com/users/dcalhoun/repos",
- "events_url": "https://api.github.com/users/dcalhoun/events{/privacy}",
- "received_events_url": "https://api.github.com/users/dcalhoun/received_events",
+ "url": "https://api.github.com/users/tellthemachines",
+ "html_url": "https://github.com/tellthemachines",
+ "followers_url": "https://api.github.com/users/tellthemachines/followers",
+ "following_url": "https://api.github.com/users/tellthemachines/following{/other_user}",
+ "gists_url": "https://api.github.com/users/tellthemachines/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/tellthemachines/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/tellthemachines/subscriptions",
+ "organizations_url": "https://api.github.com/users/tellthemachines/orgs",
+ "repos_url": "https://api.github.com/users/tellthemachines/repos",
+ "events_url": "https://api.github.com/users/tellthemachines/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/tellthemachines/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -2481,131 +2721,107 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 1,
- "created_at": "2021-08-05T17:08:51Z",
- "updated_at": "2021-08-06T18:25:03Z",
- "closed_at": "2021-08-06T18:24:35Z",
- "author_association": "MEMBER",
+ "comments": 4,
+ "created_at": "2023-10-03T02:11:06Z",
+ "updated_at": "2023-10-04T09:37:30Z",
+ "closed_at": "2023-10-03T03:22:32Z",
+ "author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33906",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33906",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33906.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33906.patch"
- },
- "body": "* **Gutenberg:** Self\r\n* **Gutenberg Mobile:** https://github.com/wordpress-mobile/gutenberg-mobile/pull/3802\r\n\r\n## Description\r\nFixes #33907. Closing the block inserter will decrement the block type impression counts. This results in blocks that are marked as \"new\" to slowly lose the designation as a user utilizes the block inserter over time. \r\n\r\n## How has this been tested?\r\n1. Clone this branch. \r\n2. Apply the below diff. \r\n\tPatch Enabling New Badge \r\n\r\n\t```diff\r\n\tdiff --git a/packages/block-editor/src/components/inserter/hooks/use-block-type-impressions.native.js b/packages/block-editor/src/components/inserter/hooks/use-block-type-impressions.native.js\r\n\tindex 2fcd6dc1c9..7bd08a2594 100644\r\n\t--- a/packages/block-editor/src/components/inserter/hooks/use-block-type-impressions.native.js\r\n\t+++ b/packages/block-editor/src/components/inserter/hooks/use-block-type-impressions.native.js\r\n\t@@ -19,7 +19,7 @@ function useBlockTypeImpressions( blockTypes ) {\r\n\t\r\n\t\t\t\treturn {\r\n\t\t\t\t\tblockTypeImpressions: impressions,\r\n\t-\t\t\t\tenableEditorOnboarding: editorOnboarding,\r\n\t+\t\t\t\tenableEditorOnboarding: true,\r\n\t\t\t\t};\r\n\t\t\t},\r\n\t\t\t[]\r\n\t```\r\n\r\n\t \r\n3. Start the server and build the Demo app to an emulator/device. \r\n4. Open the block inserter, note the new \"sparkles\" badge on the Search, Embed, and Audio block buttons. \r\n5. Insert one of the aforementioned blocks. \r\n6. Open the block inserter, note the new \"sparkles\" badge should only be present on two of the aforementioned blocks _not_ inserted. \r\n7. Close the block inserter. \r\n8. Repeat steps 6-7 9 more times. \r\n9. ℹ️ **Expected:** the new \"sparkles\" badge is _no longer present_ on any block buttons. \r\n\r\n## Screenshots \r\n \r\n\r\n## Types of changes\r\nNew feature\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54992",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54992",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54992.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54992.patch",
+ "merged_at": "2023-10-03T03:22:32Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\n\r\nFixes #54891.\r\n\r\nThere was a discrepancy between the placement of layout classnames in the Navigation block in the editor and front end - in the editor they were being applied to the inner wrapper, and in the front end to the outer wrapper - and the block custom styles were built to work with layout classnames on the outer wrapper. It might be good to move them into the inner wrapper in both editor and front end at some point, as that might allow us to remove all the custom styles and logic handling layout for this block, but that will be a big piece of work so best leave it for after this release 😅 \r\n\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n\r\n1. Add a Navigation block to the site editor and add several blocks to it;\r\n2. Reset styles > dimensions > block gap in the block settings;\r\n3. Verify there's still a gap between the Navigation child items;\r\n4. Verify that the editor matches the front end.\r\n\r\n### Testing Instructions for Keyboard\r\n\r\n\r\n## Screenshots or screencast \r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54992/reactions",
+ "total_count": 2,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 2,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54992/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33904",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54988",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33904/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33904/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33904/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33904",
- "id": 961934875,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzA0ODAwNzEz",
- "number": 33904,
- "title": "No longer read from `experimental-theme.json`",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54988/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54988/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54988/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54988",
+ "id": 1922652763,
+ "node_id": "PR_kwDOBNHdeM5btjuU",
+ "number": 54988,
+ "title": "Scripts: Properly use CommonJS for default Playwright config",
"user": {
- "login": "nosolosw",
- "id": 583546,
- "node_id": "MDQ6VXNlcjU4MzU0Ng==",
- "avatar_url": "https://avatars.githubusercontent.com/u/583546?v=4",
+ "login": "swissspidy",
+ "id": 841956,
+ "node_id": "MDQ6VXNlcjg0MTk1Ng==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/841956?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/nosolosw",
- "html_url": "https://github.com/nosolosw",
- "followers_url": "https://api.github.com/users/nosolosw/followers",
- "following_url": "https://api.github.com/users/nosolosw/following{/other_user}",
- "gists_url": "https://api.github.com/users/nosolosw/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/nosolosw/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/nosolosw/subscriptions",
- "organizations_url": "https://api.github.com/users/nosolosw/orgs",
- "repos_url": "https://api.github.com/users/nosolosw/repos",
- "events_url": "https://api.github.com/users/nosolosw/events{/privacy}",
- "received_events_url": "https://api.github.com/users/nosolosw/received_events",
+ "url": "https://api.github.com/users/swissspidy",
+ "html_url": "https://github.com/swissspidy",
+ "followers_url": "https://api.github.com/users/swissspidy/followers",
+ "following_url": "https://api.github.com/users/swissspidy/following{/other_user}",
+ "gists_url": "https://api.github.com/users/swissspidy/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/swissspidy/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/swissspidy/subscriptions",
+ "organizations_url": "https://api.github.com/users/swissspidy/orgs",
+ "repos_url": "https://api.github.com/users/swissspidy/repos",
+ "events_url": "https://api.github.com/users/swissspidy/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/swissspidy/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 930001208,
- "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
- "name": "[Type] Code Quality",
- "color": "e5e04b",
+ "id": 615503111,
+ "node_id": "MDU6TGFiZWw2MTU1MDMxMTE=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Automated%20Testing",
+ "name": "[Type] Automated Testing",
+ "color": "111111",
"default": false,
- "description": "Gotta shave those yaks."
+ "description": "Testing infrastructure changes impacting the execution of end-to-end (E2E) and/or unit tests."
},
{
- "id": 1800807983,
- "node_id": "MDU6TGFiZWwxODAwODA3OTgz",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Global%20Styles",
- "name": "Global Styles",
- "color": "2100b7",
+ "id": 978007737,
+ "node_id": "MDU6TGFiZWw5NzgwMDc3Mzc=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Scripts",
+ "name": "[Package] Scripts",
+ "color": "ed2572",
"default": false,
- "description": ""
+ "description": "/packages/scripts"
}
],
"state": "closed",
"locked": false,
- "assignee": {
- "login": "nosolosw",
- "id": 583546,
- "node_id": "MDQ6VXNlcjU4MzU0Ng==",
- "avatar_url": "https://avatars.githubusercontent.com/u/583546?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/nosolosw",
- "html_url": "https://github.com/nosolosw",
- "followers_url": "https://api.github.com/users/nosolosw/followers",
- "following_url": "https://api.github.com/users/nosolosw/following{/other_user}",
- "gists_url": "https://api.github.com/users/nosolosw/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/nosolosw/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/nosolosw/subscriptions",
- "organizations_url": "https://api.github.com/users/nosolosw/orgs",
- "repos_url": "https://api.github.com/users/nosolosw/repos",
- "events_url": "https://api.github.com/users/nosolosw/events{/privacy}",
- "received_events_url": "https://api.github.com/users/nosolosw/received_events",
- "type": "User",
- "site_admin": false
- },
- "assignees": [
- {
- "login": "nosolosw",
- "id": 583546,
- "node_id": "MDQ6VXNlcjU4MzU0Ng==",
- "avatar_url": "https://avatars.githubusercontent.com/u/583546?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/nosolosw",
- "html_url": "https://github.com/nosolosw",
- "followers_url": "https://api.github.com/users/nosolosw/followers",
- "following_url": "https://api.github.com/users/nosolosw/following{/other_user}",
- "gists_url": "https://api.github.com/users/nosolosw/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/nosolosw/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/nosolosw/subscriptions",
- "organizations_url": "https://api.github.com/users/nosolosw/orgs",
- "repos_url": "https://api.github.com/users/nosolosw/repos",
- "events_url": "https://api.github.com/users/nosolosw/events{/privacy}",
- "received_events_url": "https://api.github.com/users/nosolosw/received_events",
- "type": "User",
- "site_admin": false
- }
- ],
+ "assignee": null,
+ "assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -2628,131 +2844,107 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 2,
- "created_at": "2021-08-05T15:18:03Z",
- "updated_at": "2021-08-09T10:13:39Z",
- "closed_at": "2021-08-09T10:13:13Z",
+ "comments": 3,
+ "created_at": "2023-10-02T20:32:56Z",
+ "updated_at": "2023-10-04T09:37:50Z",
+ "closed_at": "2023-10-03T06:00:59Z",
"author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33904",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33904",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33904.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33904.patch"
- },
- "body": "We used `experimental-theme.json` as a name for the file that holds the settings & styles while it was experimental. When the feature was stabilized the file was renamed to `theme.json` but we also kept a fallback to the previous name in the plugin, so themes had some time to rename it. We can get rid of this fallback now that WordPress 5.8 is released and bundles `theme.json` by default.",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54988",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54988",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54988.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54988.patch",
+ "merged_at": "2023-10-03T06:00:59Z"
+ },
+ "body": "\r\n\r\n\r\n\r\n## What?\r\n\r\n\r\nOversight from #54856. The file should be referenced with a JS extension now of course.\r\n\r\n## Why?\r\n\r\n\r\n## How?\r\n\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n\r\n### Testing Instructions for Keyboard\r\n\r\n\r\n## Screenshots or screencast \r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54988/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54988/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33903",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54982",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33903/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33903/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33903/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33903",
- "id": 961929642,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzA0Nzk2MTYy",
- "number": 33903,
- "title": "Improve the performance of the parser by removing the automatic custom classnames handling.",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54982/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54982/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54982/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54982",
+ "id": 1922397334,
+ "node_id": "PR_kwDOBNHdeM5bsr6a",
+ "number": 54982,
+ "title": "Query view.js: Code quality",
"user": {
- "login": "youknowriad",
- "id": 272444,
- "node_id": "MDQ6VXNlcjI3MjQ0NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
+ "login": "them-es",
+ "id": 10208534,
+ "node_id": "MDQ6VXNlcjEwMjA4NTM0",
+ "avatar_url": "https://avatars.githubusercontent.com/u/10208534?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/youknowriad",
- "html_url": "https://github.com/youknowriad",
- "followers_url": "https://api.github.com/users/youknowriad/followers",
- "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
- "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
- "organizations_url": "https://api.github.com/users/youknowriad/orgs",
- "repos_url": "https://api.github.com/users/youknowriad/repos",
- "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
- "received_events_url": "https://api.github.com/users/youknowriad/received_events",
+ "url": "https://api.github.com/users/them-es",
+ "html_url": "https://github.com/them-es",
+ "followers_url": "https://api.github.com/users/them-es/followers",
+ "following_url": "https://api.github.com/users/them-es/following{/other_user}",
+ "gists_url": "https://api.github.com/users/them-es/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/them-es/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/them-es/subscriptions",
+ "organizations_url": "https://api.github.com/users/them-es/orgs",
+ "repos_url": "https://api.github.com/users/them-es/repos",
+ "events_url": "https://api.github.com/users/them-es/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/them-es/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 596962405,
- "node_id": "MDU6TGFiZWw1OTY5NjI0MDU=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Parsing",
- "name": "[Feature] Parsing",
- "color": "fbca04",
+ "id": 531680825,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
+ "name": "[Type] Enhancement",
+ "color": "FEF2C0",
"default": false,
- "description": ""
+ "description": "A suggestion for improvement."
},
{
- "id": 731693674,
- "node_id": "MDU6TGFiZWw3MzE2OTM2NzQ=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Performance",
- "name": "[Type] Performance",
- "color": "f3f4fe",
+ "id": 1022744205,
+ "node_id": "MDU6TGFiZWwxMDIyNzQ0MjA1",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Block%20library",
+ "name": "[Package] Block library",
+ "color": "ed2572",
"default": false,
- "description": ""
+ "description": "/packages/block-library"
}
],
"state": "closed",
"locked": false,
- "assignee": {
- "login": "youknowriad",
- "id": 272444,
- "node_id": "MDQ6VXNlcjI3MjQ0NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/youknowriad",
- "html_url": "https://github.com/youknowriad",
- "followers_url": "https://api.github.com/users/youknowriad/followers",
- "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
- "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
- "organizations_url": "https://api.github.com/users/youknowriad/orgs",
- "repos_url": "https://api.github.com/users/youknowriad/repos",
- "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
- "received_events_url": "https://api.github.com/users/youknowriad/received_events",
- "type": "User",
- "site_admin": false
- },
- "assignees": [
- {
- "login": "youknowriad",
- "id": 272444,
- "node_id": "MDQ6VXNlcjI3MjQ0NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/youknowriad",
- "html_url": "https://github.com/youknowriad",
- "followers_url": "https://api.github.com/users/youknowriad/followers",
- "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
- "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
- "organizations_url": "https://api.github.com/users/youknowriad/orgs",
- "repos_url": "https://api.github.com/users/youknowriad/repos",
- "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
- "received_events_url": "https://api.github.com/users/youknowriad/received_events",
- "type": "User",
- "site_admin": false
- }
- ],
+ "assignee": null,
+ "assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -2775,140 +2967,156 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 3,
- "created_at": "2021-08-05T15:12:34Z",
- "updated_at": "2021-08-10T10:12:15Z",
- "closed_at": "2021-08-10T10:11:54Z",
+ "comments": 0,
+ "created_at": "2023-10-02T18:15:52Z",
+ "updated_at": "2023-10-03T19:06:36Z",
+ "closed_at": "2023-10-03T16:58:03Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33903",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33903",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33903.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33903.patch"
- },
- "body": "When parsing post content, I noticed that the `addParsedDifference` function used to fix the custom classnames in case of invalidation takes half of the parsing time for a long post it takes `300ms` out of `600ms` on my machine. \r\n\r\nThe solution in this PR is to move this behavior to the \"validation\" stage, meaning, only fix the custom classname attribute if the block is invalid (which in most cases is not).\r\n\r\nThe parser code base is a bit complex though, I think there's still ways we could improve the quality and the maintenability of that code,",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54982",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54982",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54982.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54982.patch",
+ "merged_at": "2023-10-03T16:58:03Z"
+ },
+ "body": "\r\n\r\n## What?\r\nFixing a typo and improving some JS comments\r\n\r\n## Why?\r\nCode quality\r\n\r\n## Testing Instructions\r\nN/A\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54982/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54982/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33902",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54981",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33902/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33902/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33902/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33902",
- "id": 961845951,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzA0NzIzNDUz",
- "number": 33902,
- "title": "`useBreakpointIndex`: attach `resize` event listener to `window` instead of `document`",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54981/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54981/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54981/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54981",
+ "id": 1922353945,
+ "node_id": "PR_kwDOBNHdeM5bsikw",
+ "number": 54981,
+ "title": "Block Editor: Avoid double-wrapping selectors when transforming the styles",
"user": {
- "login": "ciampo",
- "id": 1083581,
- "node_id": "MDQ6VXNlcjEwODM1ODE=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1083581?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/ciampo",
- "html_url": "https://github.com/ciampo",
- "followers_url": "https://api.github.com/users/ciampo/followers",
- "following_url": "https://api.github.com/users/ciampo/following{/other_user}",
- "gists_url": "https://api.github.com/users/ciampo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/ciampo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/ciampo/subscriptions",
- "organizations_url": "https://api.github.com/users/ciampo/orgs",
- "repos_url": "https://api.github.com/users/ciampo/repos",
- "events_url": "https://api.github.com/users/ciampo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/ciampo/received_events",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 531680823,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
- "name": "[Type] Bug",
+ "id": 949438185,
+ "node_id": "MDU6TGFiZWw5NDk0MzgxODU=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Regression",
+ "name": "[Type] Regression",
"color": "d93f0b",
"default": false,
- "description": "An existing feature is broken."
+ "description": "Related to a regression in the latest release"
},
{
- "id": 997392122,
- "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
- "name": "[Package] Components",
+ "id": 1248494790,
+ "node_id": "MDU6TGFiZWwxMjQ4NDk0Nzkw",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Block%20editor",
+ "name": "[Package] Block editor",
"color": "ed2572",
"default": false,
- "description": "/packages/components"
+ "description": "/packages/block-editor"
},
{
- "id": 2555015900,
- "node_id": "MDU6TGFiZWwyNTU1MDE1OTAw",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Component%20System",
- "name": "[Feature] Component System",
+ "id": 4589908460,
+ "node_id": "LA_kwDOBNHdeM8AAAABEZRx7A",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Layout",
+ "name": "[Feature] Layout",
"color": "fbca04",
"default": false,
- "description": "The next iteration on WordPress Components."
+ "description": "Layout block support, its UI controls, and style output."
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "ciampo",
- "id": 1083581,
- "node_id": "MDQ6VXNlcjEwODM1ODE=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1083581?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/ciampo",
- "html_url": "https://github.com/ciampo",
- "followers_url": "https://api.github.com/users/ciampo/followers",
- "following_url": "https://api.github.com/users/ciampo/following{/other_user}",
- "gists_url": "https://api.github.com/users/ciampo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/ciampo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/ciampo/subscriptions",
- "organizations_url": "https://api.github.com/users/ciampo/orgs",
- "repos_url": "https://api.github.com/users/ciampo/repos",
- "events_url": "https://api.github.com/users/ciampo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/ciampo/received_events",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "ciampo",
- "id": 1083581,
- "node_id": "MDQ6VXNlcjEwODM1ODE=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1083581?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/ciampo",
- "html_url": "https://github.com/ciampo",
- "followers_url": "https://api.github.com/users/ciampo/followers",
- "following_url": "https://api.github.com/users/ciampo/following{/other_user}",
- "gists_url": "https://api.github.com/users/ciampo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/ciampo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/ciampo/subscriptions",
- "organizations_url": "https://api.github.com/users/ciampo/orgs",
- "repos_url": "https://api.github.com/users/ciampo/repos",
- "events_url": "https://api.github.com/users/ciampo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/ciampo/received_events",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -2931,131 +3139,147 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 1,
- "created_at": "2021-08-05T13:46:44Z",
- "updated_at": "2021-08-06T09:21:11Z",
- "closed_at": "2021-08-06T09:20:41Z",
- "author_association": "CONTRIBUTOR",
+ "comments": 3,
+ "created_at": "2023-10-02T17:45:37Z",
+ "updated_at": "2023-10-04T09:37:36Z",
+ "closed_at": "2023-10-03T03:52:11Z",
+ "author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33902",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33902",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33902.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33902.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\n\r\n\r\nFix a bug in the `useBreakpointIndex` component utility hook, where the `resize` event listener was previously attached to the `document` object.\r\n\r\nThis was resulting in the event listener function never being called, since [the `resize` event only gets fired on the `window` object](https://developer.mozilla.org/en-US/docs/Web/API/Window/resize_event).\r\n\r\nThe fix is quite simple — change `document` to `window`.\r\n\r\n## How has this been tested?\r\n\r\n\r\n\r\n\r\nOne way to test this is to check the `Flex` component's Storybook example:\r\n\r\n- in [production](https://wordpress.github.io/gutenberg/?path=/story/g2-components-experimental-flex--default), notice how resizing the window doesn't cause the second row of items to switch from `row` to `column` (and viceversa)\r\n- When running Storybook on this PR branch, notice how the behaviour just described above is fixed\r\n\r\n## Screenshots \r\n\r\n**Before**\r\n\r\nhttps://user-images.githubusercontent.com/1083581/128360451-048af45b-6728-4298-8fac-19990f0f9ebd.mp4\r\n\r\n**After**\r\n\r\nhttps://user-images.githubusercontent.com/1083581/128360624-3dd7263e-ee91-44b3-83fe-c6cee342f61d.mp4\r\n\r\n## Types of changes\r\n\r\n\r\n\r\n\r\n\r\nBug fix\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [x] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- N/A I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54981",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54981",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54981.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54981.patch",
+ "merged_at": "2023-10-03T03:52:10Z"
+ },
+ "body": "## What?\r\nResolves #54943.\r\n\r\nPR updates style transformation's `wrap` helper to avoid double-wrapping the selectors.\r\n\r\nP.S. Ideally, the editor-generated styles shouldn't include [scope namespaces](https://github.com/WordPress/gutenberg/blob/trunk/packages/block-editor/src/layouts/utils.js#L11-L35).\r\n\r\n## Why?\r\nWhen the selector already has `namespace`, it is unnecessary to append it again.\r\n\r\n## How?\r\nThe method checks if the selector already starts with the namespaces and skips it.\r\n\r\n## Testing Instructions\r\nCI checks should pass.\r\n\r\n1. Open a post.\r\n2. Add the testing block. See below.\r\n3. Confirm paragraphs are rendered with space between.\r\n4. Enable custom fields.\r\n5. Confirm paragraphs are rendered as before.\r\n\r\n### Snippet\r\n\r\n### Testing Instructions for Keyboard\r\nSame\r\n\r\n## Screenshots or screencast \r\n![CleanShot 2023-10-02 at 21 38 11](https://github.com/WordPress/gutenberg/assets/240569/2759df6d-a339-41fc-ad03-da77fac16559)\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54981/reactions",
+ "total_count": 1,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 1,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54981/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33901",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54978",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33901/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33901/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33901/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33901",
- "id": 961792869,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzA0Njc4MzIx",
- "number": 33901,
- "title": "Plugin: Fix `jsdoc/check-line-alignment` ESLint warnings",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54978/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54978/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54978/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54978",
+ "id": 1922224982,
+ "node_id": "PR_kwDOBNHdeM5bsGuh",
+ "number": 54978,
+ "title": "Components: Remove hover style for secondary Button when aria-disabled is set",
"user": {
- "login": "gziolo",
- "id": 699132,
- "node_id": "MDQ6VXNlcjY5OTEzMg==",
- "avatar_url": "https://avatars.githubusercontent.com/u/699132?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/gziolo",
- "html_url": "https://github.com/gziolo",
- "followers_url": "https://api.github.com/users/gziolo/followers",
- "following_url": "https://api.github.com/users/gziolo/following{/other_user}",
- "gists_url": "https://api.github.com/users/gziolo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/gziolo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/gziolo/subscriptions",
- "organizations_url": "https://api.github.com/users/gziolo/orgs",
- "repos_url": "https://api.github.com/users/gziolo/repos",
- "events_url": "https://api.github.com/users/gziolo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/gziolo/received_events",
- "type": "User",
- "site_admin": false
- },
- "labels": [
- {
- "id": 616662898,
- "node_id": "MDU6TGFiZWw2MTY2NjI4OTg=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Gutenberg%20Plugin",
- "name": "Gutenberg Plugin",
- "color": "578eed",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
"default": false,
- "description": ""
+ "description": "An existing feature does not function as intended"
},
{
- "id": 930001208,
- "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
- "name": "[Type] Code Quality",
- "color": "e5e04b",
+ "id": 997392122,
+ "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
+ "name": "[Package] Components",
+ "color": "ed2572",
"default": false,
- "description": "Gotta shave those yaks."
+ "description": "/packages/components"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "gziolo",
- "id": 699132,
- "node_id": "MDQ6VXNlcjY5OTEzMg==",
- "avatar_url": "https://avatars.githubusercontent.com/u/699132?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/gziolo",
- "html_url": "https://github.com/gziolo",
- "followers_url": "https://api.github.com/users/gziolo/followers",
- "following_url": "https://api.github.com/users/gziolo/following{/other_user}",
- "gists_url": "https://api.github.com/users/gziolo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/gziolo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/gziolo/subscriptions",
- "organizations_url": "https://api.github.com/users/gziolo/orgs",
- "repos_url": "https://api.github.com/users/gziolo/repos",
- "events_url": "https://api.github.com/users/gziolo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/gziolo/received_events",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "gziolo",
- "id": 699132,
- "node_id": "MDQ6VXNlcjY5OTEzMg==",
- "avatar_url": "https://avatars.githubusercontent.com/u/699132?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/gziolo",
- "html_url": "https://github.com/gziolo",
- "followers_url": "https://api.github.com/users/gziolo/followers",
- "following_url": "https://api.github.com/users/gziolo/following{/other_user}",
- "gists_url": "https://api.github.com/users/gziolo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/gziolo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/gziolo/subscriptions",
- "organizations_url": "https://api.github.com/users/gziolo/orgs",
- "repos_url": "https://api.github.com/users/gziolo/repos",
- "events_url": "https://api.github.com/users/gziolo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/gziolo/received_events",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -3078,131 +3302,116 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 1,
- "created_at": "2021-08-05T12:51:10Z",
- "updated_at": "2021-08-06T05:23:04Z",
- "closed_at": "2021-08-06T05:22:39Z",
+ "comments": 4,
+ "created_at": "2023-10-02T16:15:22Z",
+ "updated_at": "2023-10-03T07:26:40Z",
+ "closed_at": "2023-10-03T07:26:10Z",
"author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33901",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33901",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33901.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33901.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\n\r\n\r\nIt's the result of running:\r\n\r\n```bash\r\nnpm run lint-js -- --fix\r\n```\r\n\r\nIt was applied to files that had reported violations for `jsdoc/check-line-alignment` rule.",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54978",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54978",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54978.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54978.patch",
+ "merged_at": "2023-10-03T07:26:09Z"
+ },
+ "body": "## What?\r\nThis is a follow-up to https://github.com/WordPress/gutenberg/pull/54722#issuecomment-1733879065.\r\n\r\nPR removes hover styles for a secondary Button when disabled via the `aria-disabled` prop.\r\n\r\n## Why?\r\nDisabled buttons shouldn't have a hover style.\r\n\r\n## Testing Instructions\r\n1. Open a draft post.\r\n2. Hover on the disabled \"Switch to draft\" button in document settings.\r\n3. It shouldn't have a border.\r\n\r\n## Screenshots or screencast \r\n\r\nhttps://github.com/WordPress/gutenberg/assets/240569/aabae316-9bd1-42b4-b984-a7ff26db10f5",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54978/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54978/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33896",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54977",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33896/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33896/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33896/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33896",
- "id": 961675115,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzA0NTc2MTYx",
- "number": 33896,
- "title": "Fix the site editor breaking in firefox",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54977/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54977/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54977/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54977",
+ "id": 1922119216,
+ "node_id": "PR_kwDOBNHdeM5brv3S",
+ "number": 54977,
+ "title": "Font Library: use snake_case instead of camelCase on fontFamilies endpoint param",
"user": {
- "login": "youknowriad",
- "id": 272444,
- "node_id": "MDQ6VXNlcjI3MjQ0NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
+ "login": "matiasbenedetto",
+ "id": 1310626,
+ "node_id": "MDQ6VXNlcjEzMTA2MjY=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1310626?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/youknowriad",
- "html_url": "https://github.com/youknowriad",
- "followers_url": "https://api.github.com/users/youknowriad/followers",
- "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
- "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
- "organizations_url": "https://api.github.com/users/youknowriad/orgs",
- "repos_url": "https://api.github.com/users/youknowriad/repos",
- "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
- "received_events_url": "https://api.github.com/users/youknowriad/received_events",
+ "url": "https://api.github.com/users/matiasbenedetto",
+ "html_url": "https://github.com/matiasbenedetto",
+ "followers_url": "https://api.github.com/users/matiasbenedetto/followers",
+ "following_url": "https://api.github.com/users/matiasbenedetto/following{/other_user}",
+ "gists_url": "https://api.github.com/users/matiasbenedetto/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/matiasbenedetto/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/matiasbenedetto/subscriptions",
+ "organizations_url": "https://api.github.com/users/matiasbenedetto/orgs",
+ "repos_url": "https://api.github.com/users/matiasbenedetto/repos",
+ "events_url": "https://api.github.com/users/matiasbenedetto/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/matiasbenedetto/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 531680823,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
- "name": "[Type] Bug",
- "color": "d93f0b",
+ "id": 930001208,
+ "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
+ "name": "[Type] Code Quality",
+ "color": "e5e04b",
"default": false,
- "description": "An existing feature is broken."
+ "description": "Issues or PRs that relate to code quality"
},
{
- "id": 2706102777,
- "node_id": "MDU6TGFiZWwyNzA2MTAyNzc3",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Site%20Editor",
- "name": "[Feature] Site Editor",
+ "id": 4254348202,
+ "node_id": "LA_kwDOBNHdeM79lDOq",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Needs%20PHP%20backport",
+ "name": "Needs PHP backport",
+ "color": "64436E",
+ "default": false,
+ "description": "Needs PHP backport to Core"
+ },
+ {
+ "id": 4366600186,
+ "node_id": "LA_kwDOBNHdeM8AAAABBEUH-g",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Typography",
+ "name": "[Feature] Typography",
"color": "fbca04",
"default": false,
- "description": ""
+ "description": "Font and typography-related issues and PRs"
}
],
"state": "closed",
"locked": false,
- "assignee": {
- "login": "youknowriad",
- "id": 272444,
- "node_id": "MDQ6VXNlcjI3MjQ0NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/youknowriad",
- "html_url": "https://github.com/youknowriad",
- "followers_url": "https://api.github.com/users/youknowriad/followers",
- "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
- "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
- "organizations_url": "https://api.github.com/users/youknowriad/orgs",
- "repos_url": "https://api.github.com/users/youknowriad/repos",
- "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
- "received_events_url": "https://api.github.com/users/youknowriad/received_events",
- "type": "User",
- "site_admin": false
- },
- "assignees": [
- {
- "login": "youknowriad",
- "id": 272444,
- "node_id": "MDQ6VXNlcjI3MjQ0NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/youknowriad",
- "html_url": "https://github.com/youknowriad",
- "followers_url": "https://api.github.com/users/youknowriad/followers",
- "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
- "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
- "organizations_url": "https://api.github.com/users/youknowriad/orgs",
- "repos_url": "https://api.github.com/users/youknowriad/repos",
- "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
- "received_events_url": "https://api.github.com/users/youknowriad/received_events",
- "type": "User",
- "site_admin": false
- }
- ],
+ "assignee": null,
+ "assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -3225,122 +3434,147 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 4,
- "created_at": "2021-08-05T10:22:32Z",
- "updated_at": "2021-08-11T22:07:55Z",
- "closed_at": "2021-08-09T10:14:45Z",
+ "comments": 3,
+ "created_at": "2023-10-02T15:13:21Z",
+ "updated_at": "2023-10-04T09:37:23Z",
+ "closed_at": "2023-10-02T19:20:56Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33896",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33896",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33896.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33896.patch"
- },
- "body": "closes #33873 \r\n\r\nI'm not entirely certain that this is a good solution but in Firefox the ref is null initially meaning that it's probably not being attached on mount.\r\n\r\nGuarding against the ref solves the issue but doesn't explain why the ref is empty in the first place.\r\n\r\n**Note:** It seems we don't have an error boundary in the site editor or if we do, it's not working well.\r\n\r\n**Testing instructions**\r\n\r\n - Open the site editor in firefox\r\n - Make sure you don't get just a crash/",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54977",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54977",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54977.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54977.patch",
+ "merged_at": "2023-10-02T19:20:56Z"
+ },
+ "body": "## What?\r\nFont Library: use snake_case instead of camelCase on fontFamilies endpoint param\r\n\r\n## Why?\r\nEndpoint parameters should use snake_case instead of camelCase as requested in this core pr review comment:\r\nhttps://github.com/WordPress/wordpress-develop/pull/5285#discussion_r1342644332\r\n\r\n## Testing Instructions\r\n- Run unit tests\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54977/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54977/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33895",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54975",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33895/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33895/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33895/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33895",
- "id": 961648612,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzA0NTUzMDcy",
- "number": 33895,
- "title": "Fix block appender position in classic themes",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54975/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54975/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54975/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54975",
+ "id": 1922080040,
+ "node_id": "PR_kwDOBNHdeM5brnbe",
+ "number": 54975,
+ "title": "Wrapped `TextareaControl` in a `forwardRef` call",
"user": {
- "login": "youknowriad",
- "id": 272444,
- "node_id": "MDQ6VXNlcjI3MjQ0NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
+ "login": "t-hamano",
+ "id": 54422211,
+ "node_id": "MDQ6VXNlcjU0NDIyMjEx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/54422211?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/youknowriad",
- "html_url": "https://github.com/youknowriad",
- "followers_url": "https://api.github.com/users/youknowriad/followers",
- "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
- "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
- "organizations_url": "https://api.github.com/users/youknowriad/orgs",
- "repos_url": "https://api.github.com/users/youknowriad/repos",
- "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
- "received_events_url": "https://api.github.com/users/youknowriad/received_events",
+ "url": "https://api.github.com/users/t-hamano",
+ "html_url": "https://github.com/t-hamano",
+ "followers_url": "https://api.github.com/users/t-hamano/followers",
+ "following_url": "https://api.github.com/users/t-hamano/following{/other_user}",
+ "gists_url": "https://api.github.com/users/t-hamano/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/t-hamano/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/t-hamano/subscriptions",
+ "organizations_url": "https://api.github.com/users/t-hamano/orgs",
+ "repos_url": "https://api.github.com/users/t-hamano/repos",
+ "events_url": "https://api.github.com/users/t-hamano/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/t-hamano/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 531680823,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
- "name": "[Type] Bug",
- "color": "d93f0b",
+ "id": 531680825,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
+ "name": "[Type] Enhancement",
+ "color": "FEF2C0",
+ "default": false,
+ "description": "A suggestion for improvement."
+ },
+ {
+ "id": 997392122,
+ "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
+ "name": "[Package] Components",
+ "color": "ed2572",
"default": false,
- "description": "An existing feature is broken."
+ "description": "/packages/components"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "youknowriad",
- "id": 272444,
- "node_id": "MDQ6VXNlcjI3MjQ0NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
+ "login": "t-hamano",
+ "id": 54422211,
+ "node_id": "MDQ6VXNlcjU0NDIyMjEx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/54422211?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/youknowriad",
- "html_url": "https://github.com/youknowriad",
- "followers_url": "https://api.github.com/users/youknowriad/followers",
- "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
- "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
- "organizations_url": "https://api.github.com/users/youknowriad/orgs",
- "repos_url": "https://api.github.com/users/youknowriad/repos",
- "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
- "received_events_url": "https://api.github.com/users/youknowriad/received_events",
+ "url": "https://api.github.com/users/t-hamano",
+ "html_url": "https://github.com/t-hamano",
+ "followers_url": "https://api.github.com/users/t-hamano/followers",
+ "following_url": "https://api.github.com/users/t-hamano/following{/other_user}",
+ "gists_url": "https://api.github.com/users/t-hamano/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/t-hamano/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/t-hamano/subscriptions",
+ "organizations_url": "https://api.github.com/users/t-hamano/orgs",
+ "repos_url": "https://api.github.com/users/t-hamano/repos",
+ "events_url": "https://api.github.com/users/t-hamano/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/t-hamano/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "youknowriad",
- "id": 272444,
- "node_id": "MDQ6VXNlcjI3MjQ0NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
+ "login": "t-hamano",
+ "id": 54422211,
+ "node_id": "MDQ6VXNlcjU0NDIyMjEx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/54422211?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/youknowriad",
- "html_url": "https://github.com/youknowriad",
- "followers_url": "https://api.github.com/users/youknowriad/followers",
- "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
- "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
- "organizations_url": "https://api.github.com/users/youknowriad/orgs",
- "repos_url": "https://api.github.com/users/youknowriad/repos",
- "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
- "received_events_url": "https://api.github.com/users/youknowriad/received_events",
+ "url": "https://api.github.com/users/t-hamano",
+ "html_url": "https://github.com/t-hamano",
+ "followers_url": "https://api.github.com/users/t-hamano/followers",
+ "following_url": "https://api.github.com/users/t-hamano/following{/other_user}",
+ "gists_url": "https://api.github.com/users/t-hamano/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/t-hamano/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/t-hamano/subscriptions",
+ "organizations_url": "https://api.github.com/users/t-hamano/orgs",
+ "repos_url": "https://api.github.com/users/t-hamano/repos",
+ "events_url": "https://api.github.com/users/t-hamano/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/t-hamano/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -3363,122 +3597,138 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 5,
- "created_at": "2021-08-05T09:52:58Z",
- "updated_at": "2021-08-06T08:31:27Z",
- "closed_at": "2021-08-05T13:22:21Z",
+ "comments": 0,
+ "created_at": "2023-10-02T14:51:42Z",
+ "updated_at": "2023-10-03T07:28:36Z",
+ "closed_at": "2023-10-03T07:28:06Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33895",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33895",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33895.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33895.patch"
- },
- "body": "In https://github.com/WordPress/gutenberg/pull/33024/files#r659586330 the `wp-block` class has been removed from the block appender. I think this was an error, that class is used to define the max-width for blocks which the appender should adhere too, otherwise it will be position on the extreme left.\r\n\r\nI'm not really sure why the class was removed there.\r\n\r\n**Testing instructions**\r\n\r\n - Use a classic theme\r\n - Insert an image block\r\n - notice that the block appender after the image block is positioned properly.",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54975",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54975",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54975.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54975.patch",
+ "merged_at": "2023-10-03T07:28:06Z"
+ },
+ "body": "Closes: #54723\r\n\r\n## What?\r\n\r\nThis PR wraps the `TextAreaControl` component in a `forwardRef` call.\r\n\r\n## Why?\r\n\r\nMany components, not just form elements, are wrapped in `forwardRef` calls. This component is also a form element, and exposing the ref may also be useful to third-party developers.\r\n\r\n## Testing Instructions\r\n\r\nI wrote a simple code to test the `ref` prop. Update the code block's Edit component (`packages/block-library/src/code/edit.js`) with this code.\r\n\r\n```javascript\r\n/**\r\n * WordPress dependencies\r\n */\r\nimport { useBlockProps } from '@wordpress/block-editor';\r\nimport { TextareaControl } from '@wordpress/components';\r\nimport { useRef } from '@wordpress/element';\r\n\r\nexport default function CodeEdit() {\r\n\tconst ref = useRef();\r\n\tconst blockProps = useBlockProps();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t \r\n\t\t\t {\r\n\t\t\t\t\tref.current.focus();\r\n\t\t\t\t\tref.current.value = 'Focued!';\r\n\t\t\t\t} }\r\n\t\t\t>\r\n\t\t\t\tFocus on textarea!\r\n\t\t\t \r\n\t\t
\r\n\t);\r\n}\r\n```\r\n\r\n- Insert a Code block in the block editor and click the button.\r\n- The textarea should now have focus and be filled with a value.\r\n\r\n## Screenshots or screencast \r\n\r\nhttps://github.com/WordPress/gutenberg/assets/54422211/1f0acd17-ad4c-40c4-a733-c724561c6db2\r\n\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54975/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54975/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33893",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54974",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33893/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33893/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33893/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33893",
- "id": 961547711,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzA0NDY2ODQ3",
- "number": 33893,
- "title": "Fix positioning discrepancy with draggable chip.",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54974/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54974/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54974/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54974",
+ "id": 1922079703,
+ "node_id": "PR_kwDOBNHdeM5brnW0",
+ "number": 54974,
+ "title": "Update changelog automation and test fixtures to match the last a11y label renaming",
"user": {
- "login": "jasmussen",
- "id": 1204802,
- "node_id": "MDQ6VXNlcjEyMDQ4MDI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1204802?v=4",
+ "login": "priethor",
+ "id": 27339341,
+ "node_id": "MDQ6VXNlcjI3MzM5MzQx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/27339341?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/jasmussen",
- "html_url": "https://github.com/jasmussen",
- "followers_url": "https://api.github.com/users/jasmussen/followers",
- "following_url": "https://api.github.com/users/jasmussen/following{/other_user}",
- "gists_url": "https://api.github.com/users/jasmussen/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/jasmussen/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/jasmussen/subscriptions",
- "organizations_url": "https://api.github.com/users/jasmussen/orgs",
- "repos_url": "https://api.github.com/users/jasmussen/repos",
- "events_url": "https://api.github.com/users/jasmussen/events{/privacy}",
- "received_events_url": "https://api.github.com/users/jasmussen/received_events",
+ "url": "https://api.github.com/users/priethor",
+ "html_url": "https://github.com/priethor",
+ "followers_url": "https://api.github.com/users/priethor/followers",
+ "following_url": "https://api.github.com/users/priethor/following{/other_user}",
+ "gists_url": "https://api.github.com/users/priethor/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/priethor/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/priethor/subscriptions",
+ "organizations_url": "https://api.github.com/users/priethor/orgs",
+ "repos_url": "https://api.github.com/users/priethor/repos",
+ "events_url": "https://api.github.com/users/priethor/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/priethor/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 596964332,
- "node_id": "MDU6TGFiZWw1OTY5NjQzMzI=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/General%20Interface",
- "name": "General Interface",
- "color": "bfdadc",
+ "id": 1032028862,
+ "node_id": "MDU6TGFiZWwxMDMyMDI4ODYy",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Project%20Management",
+ "name": "[Type] Project Management",
+ "color": "e55ead",
"default": false,
- "description": "Parts of the UI which don't fall neatly under other labels."
+ "description": "Meta-issues related to project management of Gutenberg"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "jasmussen",
- "id": 1204802,
- "node_id": "MDQ6VXNlcjEyMDQ4MDI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1204802?v=4",
+ "login": "priethor",
+ "id": 27339341,
+ "node_id": "MDQ6VXNlcjI3MzM5MzQx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/27339341?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/jasmussen",
- "html_url": "https://github.com/jasmussen",
- "followers_url": "https://api.github.com/users/jasmussen/followers",
- "following_url": "https://api.github.com/users/jasmussen/following{/other_user}",
- "gists_url": "https://api.github.com/users/jasmussen/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/jasmussen/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/jasmussen/subscriptions",
- "organizations_url": "https://api.github.com/users/jasmussen/orgs",
- "repos_url": "https://api.github.com/users/jasmussen/repos",
- "events_url": "https://api.github.com/users/jasmussen/events{/privacy}",
- "received_events_url": "https://api.github.com/users/jasmussen/received_events",
+ "url": "https://api.github.com/users/priethor",
+ "html_url": "https://github.com/priethor",
+ "followers_url": "https://api.github.com/users/priethor/followers",
+ "following_url": "https://api.github.com/users/priethor/following{/other_user}",
+ "gists_url": "https://api.github.com/users/priethor/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/priethor/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/priethor/subscriptions",
+ "organizations_url": "https://api.github.com/users/priethor/orgs",
+ "repos_url": "https://api.github.com/users/priethor/repos",
+ "events_url": "https://api.github.com/users/priethor/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/priethor/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "jasmussen",
- "id": 1204802,
- "node_id": "MDQ6VXNlcjEyMDQ4MDI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1204802?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/jasmussen",
- "html_url": "https://github.com/jasmussen",
- "followers_url": "https://api.github.com/users/jasmussen/followers",
- "following_url": "https://api.github.com/users/jasmussen/following{/other_user}",
- "gists_url": "https://api.github.com/users/jasmussen/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/jasmussen/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/jasmussen/subscriptions",
- "organizations_url": "https://api.github.com/users/jasmussen/orgs",
- "repos_url": "https://api.github.com/users/jasmussen/repos",
- "events_url": "https://api.github.com/users/jasmussen/events{/privacy}",
- "received_events_url": "https://api.github.com/users/jasmussen/received_events",
+ "login": "priethor",
+ "id": 27339341,
+ "node_id": "MDQ6VXNlcjI3MzM5MzQx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/27339341?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/priethor",
+ "html_url": "https://github.com/priethor",
+ "followers_url": "https://api.github.com/users/priethor/followers",
+ "following_url": "https://api.github.com/users/priethor/following{/other_user}",
+ "gists_url": "https://api.github.com/users/priethor/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/priethor/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/priethor/subscriptions",
+ "organizations_url": "https://api.github.com/users/priethor/orgs",
+ "repos_url": "https://api.github.com/users/priethor/repos",
+ "events_url": "https://api.github.com/users/priethor/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/priethor/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -3501,82 +3751,156 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 1,
- "created_at": "2021-08-05T07:53:04Z",
- "updated_at": "2021-08-06T07:18:50Z",
- "closed_at": "2021-08-06T07:18:20Z",
+ "comments": 2,
+ "created_at": "2023-10-02T14:51:31Z",
+ "updated_at": "2023-10-02T17:45:57Z",
+ "closed_at": "2023-10-02T17:44:21Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33893",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33893",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33893.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33893.patch"
- },
- "body": "## Description\r\n\r\nThe inverted block toolbar/drag handle in select mode is offset slightly compared to the block toolbar:\r\n\r\n![currently](https://user-images.githubusercontent.com/1204802/128312691-5ba9219c-828d-407b-a09a-a0df7ca350b5.gif)\r\n\r\n \r\n\r\nThis PR fixes that:\r\n\r\n![after](https://user-images.githubusercontent.com/1204802/128312721-688ceff8-e734-4bda-932c-4caf5675c19f.gif)\r\n\r\nNote that now that IE11 support is no longer necessary, there is a huge opportunity to refactor the block toolbar to leverage flex and remove all the gnarly margin rules on content inside, replace them entirely with `gap` and drastically simplifying things. But it's a larger undertaking, and this is a small fix in the mean time. \r\n\r\n## How has this been tested?\r\n\r\nInsert a block, select it, then press Escape. Observe the block icon and drag handle ideally overlapping precisely in both states.\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [x] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54974",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54974",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54974.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54974.patch",
+ "merged_at": "2023-10-02T17:44:21Z"
+ },
+ "body": "## What?\r\nUpdates the changelog automation tests to work with the latest name of the a11y label.\r\n\r\n## Why?\r\n\r\nSo that the changelog automation continues to create a top section for Accessibility-related PRs even if accessibility is treated as a focus instead of a type of task.\r\n\r\n\r\n## How?\r\nBy using the latest accessibility label name.\r\n\r\n## Testing Instructions\r\n1. Clear your jest cache with `npx jest --clearCache`\r\n2. Run the changelog automation tests with `test:unit bin/plugin/commands/test/changelog.js`\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54974/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54974/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33890",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54972",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33890/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33890/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33890/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33890",
- "id": 961486553,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzA0NDE1MDI5",
- "number": 33890,
- "title": "Try to fix flaky customizer inspector test",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54972/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54972/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54972/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54972",
+ "id": 1921973971,
+ "node_id": "PR_kwDOBNHdeM5brQfD",
+ "number": 54972,
+ "title": "Block Editor: Simplify `BlockHTMLConvertButton` ",
"user": {
- "login": "kevin940726",
- "id": 7753001,
- "node_id": "MDQ6VXNlcjc3NTMwMDE=",
- "avatar_url": "https://avatars.githubusercontent.com/u/7753001?v=4",
+ "login": "tyxla",
+ "id": 8436925,
+ "node_id": "MDQ6VXNlcjg0MzY5MjU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/8436925?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/kevin940726",
- "html_url": "https://github.com/kevin940726",
- "followers_url": "https://api.github.com/users/kevin940726/followers",
- "following_url": "https://api.github.com/users/kevin940726/following{/other_user}",
- "gists_url": "https://api.github.com/users/kevin940726/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/kevin940726/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/kevin940726/subscriptions",
- "organizations_url": "https://api.github.com/users/kevin940726/orgs",
- "repos_url": "https://api.github.com/users/kevin940726/repos",
- "events_url": "https://api.github.com/users/kevin940726/events{/privacy}",
- "received_events_url": "https://api.github.com/users/kevin940726/received_events",
+ "url": "https://api.github.com/users/tyxla",
+ "html_url": "https://github.com/tyxla",
+ "followers_url": "https://api.github.com/users/tyxla/followers",
+ "following_url": "https://api.github.com/users/tyxla/following{/other_user}",
+ "gists_url": "https://api.github.com/users/tyxla/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/tyxla/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/tyxla/subscriptions",
+ "organizations_url": "https://api.github.com/users/tyxla/orgs",
+ "repos_url": "https://api.github.com/users/tyxla/repos",
+ "events_url": "https://api.github.com/users/tyxla/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/tyxla/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 2632875097,
- "node_id": "MDU6TGFiZWwyNjMyODc1MDk3",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Widgets%20Customizer",
- "name": "[Feature] Widgets Customizer",
- "color": "fbca04",
+ "id": 531680825,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
+ "name": "[Type] Enhancement",
+ "color": "FEF2C0",
+ "default": false,
+ "description": "A suggestion for improvement."
+ },
+ {
+ "id": 593977130,
+ "node_id": "MDU6TGFiZWw1OTM5NzcxMzA=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Priority]%20Low",
+ "name": "[Priority] Low",
+ "color": "f9d0c4",
"default": false,
- "description": "Ability to add and edit blocks in Customize → Widgets."
+ "description": "Used to indicate that the issue at hand isn't a top priority to address and can be handled later"
+ },
+ {
+ "id": 1248494790,
+ "node_id": "MDU6TGFiZWwxMjQ4NDk0Nzkw",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Block%20editor",
+ "name": "[Package] Block editor",
+ "color": "ed2572",
+ "default": false,
+ "description": "/packages/block-editor"
}
],
"state": "closed",
"locked": false,
- "assignee": null,
- "assignees": [],
+ "assignee": {
+ "login": "tyxla",
+ "id": 8436925,
+ "node_id": "MDQ6VXNlcjg0MzY5MjU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/8436925?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/tyxla",
+ "html_url": "https://github.com/tyxla",
+ "followers_url": "https://api.github.com/users/tyxla/followers",
+ "following_url": "https://api.github.com/users/tyxla/following{/other_user}",
+ "gists_url": "https://api.github.com/users/tyxla/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/tyxla/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/tyxla/subscriptions",
+ "organizations_url": "https://api.github.com/users/tyxla/orgs",
+ "repos_url": "https://api.github.com/users/tyxla/repos",
+ "events_url": "https://api.github.com/users/tyxla/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/tyxla/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "tyxla",
+ "id": 8436925,
+ "node_id": "MDQ6VXNlcjg0MzY5MjU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/8436925?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/tyxla",
+ "html_url": "https://github.com/tyxla",
+ "followers_url": "https://api.github.com/users/tyxla/followers",
+ "following_url": "https://api.github.com/users/tyxla/following{/other_user}",
+ "gists_url": "https://api.github.com/users/tyxla/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/tyxla/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/tyxla/subscriptions",
+ "organizations_url": "https://api.github.com/users/tyxla/orgs",
+ "repos_url": "https://api.github.com/users/tyxla/repos",
+ "events_url": "https://api.github.com/users/tyxla/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/tyxla/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -3599,140 +3923,147 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 4,
- "created_at": "2021-08-05T06:20:38Z",
- "updated_at": "2021-08-10T05:34:47Z",
- "closed_at": "2021-08-05T07:50:06Z",
+ "comments": 1,
+ "created_at": "2023-10-02T13:55:53Z",
+ "updated_at": "2023-10-02T14:59:14Z",
+ "closed_at": "2023-10-02T14:58:44Z",
"author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33890",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33890",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33890.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33890.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\n\r\nAlternative to #33875, part of #33275.\r\n\r\nDuring closing the inspector and going back to the editor, the transition is making the blocks positioning in an intermediate state. Since the toolbar is still opened, it could sometimes also be positioned in the wrong place according to intermediate state of the block.\r\n\r\nThis PR waits for the transition to finish (200ms). A better alternative could be:\r\n1. Disable the transitions in tests (#32024)\r\n2. Delay showing the block toolbar until the transition is finished\r\n\r\n## How has this been tested?\r\n\r\n\r\n\r\nNot yet found a reliable way to reproduce the issue, so maybe we just have to merge this and monitor it on trunk.\r\n\r\n## Types of changes\r\n\r\n\r\n\r\n\r\nBug fix\r\n\r\n## Checklist:\r\n- [ ] My code is tested.\r\n- [ ] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [ ] My code has proper inline documentation. \r\n- [ ] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54972",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54972",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54972.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54972.patch",
+ "merged_at": "2023-10-02T14:58:44Z"
+ },
+ "body": "## What?\r\nThis PR makes a few improvements to the `BlockHTMLConvertButton` component:\r\n\r\n## Why?\r\nA micro-optimization that makes the rendered component tree smaller, but also makes that part of the code more readable.\r\n\r\n## How?\r\nThis PR:\r\n* Removes the nested `BlockConvertButton` which is used only once anyway.\r\n* Simplifies logic that is unnecessarily split into two components and condenses it into one.\r\n* Replaces `withSelect` with `useSelect`, `withDispatch` with `useDispatch` and removes the unnecessary `compose`, making the component tree smaller and more readable.\r\n* Removes the unnecessary `small` prop that wasn't used.\r\n\r\n## Testing Instructions\r\n* Insert an HTML block with some HTML in it. \r\n* Click the block settings menu of the HTML block.\r\n* Verify the \"Convert to Blocks\" item is there and it still works well.\r\n* Verify that that item does not appear if this is not an HTML block.\r\n\r\n### Testing Instructions for Keyboard\r\nNone.\r\n\r\n## Screenshots or screencast \r\nComponent tree before:\r\n![Screenshot 2023-10-02 at 16 48 40](https://github.com/WordPress/gutenberg/assets/8436925/0d9a79ce-2a69-46d3-b7a3-92222b57812d)\r\n\r\n\r\nComponent tree after:\r\n![Screenshot 2023-10-02 at 16 49 29](https://github.com/WordPress/gutenberg/assets/8436925/20dbf151-4f85-45b7-a8cd-e536f3d726bf)\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54972/reactions",
+ "total_count": 1,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 1,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54972/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33882",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54967",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33882/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33882/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33882/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33882",
- "id": 960645484,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzAzNjQ4ODYy",
- "number": 33882,
- "title": "Components utils: `rtl()` return type, `rtl.watch()` utility",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54967/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54967/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54967/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54967",
+ "id": 1921741798,
+ "node_id": "PR_kwDOBNHdeM5bqeg5",
+ "number": 54967,
+ "title": "Platform Docs: Add a documentation page explaining how to use the block library",
"user": {
- "login": "ciampo",
- "id": 1083581,
- "node_id": "MDQ6VXNlcjEwODM1ODE=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1083581?v=4",
+ "login": "youknowriad",
+ "id": 272444,
+ "node_id": "MDQ6VXNlcjI3MjQ0NA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/ciampo",
- "html_url": "https://github.com/ciampo",
- "followers_url": "https://api.github.com/users/ciampo/followers",
- "following_url": "https://api.github.com/users/ciampo/following{/other_user}",
- "gists_url": "https://api.github.com/users/ciampo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/ciampo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/ciampo/subscriptions",
- "organizations_url": "https://api.github.com/users/ciampo/orgs",
- "repos_url": "https://api.github.com/users/ciampo/repos",
- "events_url": "https://api.github.com/users/ciampo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/ciampo/received_events",
+ "url": "https://api.github.com/users/youknowriad",
+ "html_url": "https://github.com/youknowriad",
+ "followers_url": "https://api.github.com/users/youknowriad/followers",
+ "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
+ "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
+ "organizations_url": "https://api.github.com/users/youknowriad/orgs",
+ "repos_url": "https://api.github.com/users/youknowriad/repos",
+ "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/youknowriad/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 930001208,
- "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
- "name": "[Type] Code Quality",
- "color": "e5e04b",
- "default": false,
- "description": "Gotta shave those yaks."
- },
- {
- "id": 997392122,
- "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
- "name": "[Package] Components",
- "color": "ed2572",
+ "id": 562969841,
+ "node_id": "MDU6TGFiZWw1NjI5Njk4NDE=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Framework",
+ "name": "Framework",
+ "color": "fbca04",
"default": false,
- "description": "/packages/components"
+ "description": "Issues related to broader framework topics, especially as it relates to javascript"
},
{
- "id": 2555015900,
- "node_id": "MDU6TGFiZWwyNTU1MDE1OTAw",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Component%20System",
- "name": "[Feature] Component System",
- "color": "fbca04",
+ "id": 567484057,
+ "node_id": "MDU6TGFiZWw1Njc0ODQwNTc=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Developer%20Documentation",
+ "name": "[Type] Developer Documentation",
+ "color": "bfd4f2",
"default": false,
- "description": "The next iteration on WordPress Components."
+ "description": "Documentation for developers"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "ciampo",
- "id": 1083581,
- "node_id": "MDQ6VXNlcjEwODM1ODE=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1083581?v=4",
+ "login": "youknowriad",
+ "id": 272444,
+ "node_id": "MDQ6VXNlcjI3MjQ0NA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/ciampo",
- "html_url": "https://github.com/ciampo",
- "followers_url": "https://api.github.com/users/ciampo/followers",
- "following_url": "https://api.github.com/users/ciampo/following{/other_user}",
- "gists_url": "https://api.github.com/users/ciampo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/ciampo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/ciampo/subscriptions",
- "organizations_url": "https://api.github.com/users/ciampo/orgs",
- "repos_url": "https://api.github.com/users/ciampo/repos",
- "events_url": "https://api.github.com/users/ciampo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/ciampo/received_events",
+ "url": "https://api.github.com/users/youknowriad",
+ "html_url": "https://github.com/youknowriad",
+ "followers_url": "https://api.github.com/users/youknowriad/followers",
+ "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
+ "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
+ "organizations_url": "https://api.github.com/users/youknowriad/orgs",
+ "repos_url": "https://api.github.com/users/youknowriad/repos",
+ "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/youknowriad/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "ciampo",
- "id": 1083581,
- "node_id": "MDQ6VXNlcjEwODM1ODE=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1083581?v=4",
+ "login": "youknowriad",
+ "id": 272444,
+ "node_id": "MDQ6VXNlcjI3MjQ0NA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/ciampo",
- "html_url": "https://github.com/ciampo",
- "followers_url": "https://api.github.com/users/ciampo/followers",
- "following_url": "https://api.github.com/users/ciampo/following{/other_user}",
- "gists_url": "https://api.github.com/users/ciampo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/ciampo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/ciampo/subscriptions",
- "organizations_url": "https://api.github.com/users/ciampo/orgs",
- "repos_url": "https://api.github.com/users/ciampo/repos",
- "events_url": "https://api.github.com/users/ciampo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/ciampo/received_events",
+ "url": "https://api.github.com/users/youknowriad",
+ "html_url": "https://github.com/youknowriad",
+ "followers_url": "https://api.github.com/users/youknowriad/followers",
+ "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
+ "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
+ "organizations_url": "https://api.github.com/users/youknowriad/orgs",
+ "repos_url": "https://api.github.com/users/youknowriad/repos",
+ "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/youknowriad/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -3755,100 +4086,156 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
"comments": 1,
- "created_at": "2021-08-04T15:39:13Z",
- "updated_at": "2021-08-04T16:27:21Z",
- "closed_at": "2021-08-04T16:26:56Z",
+ "created_at": "2023-10-02T11:34:01Z",
+ "updated_at": "2023-10-07T09:01:40Z",
+ "closed_at": "2023-10-04T08:31:25Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33882",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33882",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33882.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33882.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\n\r\n\r\n- Improve return type of the `rtl()` utility function\r\n- Add the `rtl.watch()` function, useful when in need of observing LTR/RTL locale changes\r\n\r\n## How has this been tested?\r\n\r\n\r\n\r\n\r\nNo runtime changes, the project builds correctly.\r\n\r\n## Screenshots \r\n\r\nN/A\r\n\r\n## Types of changes\r\n\r\n\r\n\r\n\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- N/A I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- N/A I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54967",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54967",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54967.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54967.patch",
+ "merged_at": "2023-10-04T08:31:25Z"
+ },
+ "body": "Related #53874\r\n\r\n## What?\r\n\r\nThis PR documents the block library package and how to leverage it in third-party block editors. I think it's an interesting page because it highlights some of the current shortcomings that we might want to address separately (Ties to WordPress, boilerplate).\r\n\r\n**Note** I have personally tested all the code examples in a third-party vite install.\r\n\r\n### Test the documentation website\r\n\r\n```\r\ncd platform-docs\r\nnpm install\r\nnpm start\r\n```",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54967/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54967/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33880",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54966",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33880/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33880/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33880/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33880",
- "id": 960622372,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzAzNjI3NTEz",
- "number": 33880,
- "title": "Docs: add more details about block attributes",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54966/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54966/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54966/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54966",
+ "id": 1921740647,
+ "node_id": "PR_kwDOBNHdeM5bqeQz",
+ "number": 54966,
+ "title": "[Experimental]: First version of pages list in site editor",
"user": {
- "login": "johngodley",
- "id": 1277682,
- "node_id": "MDQ6VXNlcjEyNzc2ODI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1277682?v=4",
+ "login": "ntsekouras",
+ "id": 16275880,
+ "node_id": "MDQ6VXNlcjE2Mjc1ODgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/16275880?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/johngodley",
- "html_url": "https://github.com/johngodley",
- "followers_url": "https://api.github.com/users/johngodley/followers",
- "following_url": "https://api.github.com/users/johngodley/following{/other_user}",
- "gists_url": "https://api.github.com/users/johngodley/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/johngodley/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/johngodley/subscriptions",
- "organizations_url": "https://api.github.com/users/johngodley/orgs",
- "repos_url": "https://api.github.com/users/johngodley/repos",
- "events_url": "https://api.github.com/users/johngodley/events{/privacy}",
- "received_events_url": "https://api.github.com/users/johngodley/received_events",
+ "url": "https://api.github.com/users/ntsekouras",
+ "html_url": "https://github.com/ntsekouras",
+ "followers_url": "https://api.github.com/users/ntsekouras/followers",
+ "following_url": "https://api.github.com/users/ntsekouras/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ntsekouras/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ntsekouras/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ntsekouras/subscriptions",
+ "organizations_url": "https://api.github.com/users/ntsekouras/orgs",
+ "repos_url": "https://api.github.com/users/ntsekouras/repos",
+ "events_url": "https://api.github.com/users/ntsekouras/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ntsekouras/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 546156315,
- "node_id": "MDU6TGFiZWw1NDYxNTYzMTU=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Block%20API",
- "name": "[Feature] Block API",
- "color": "fbca04",
+ "id": 1789345375,
+ "node_id": "MDU6TGFiZWwxNzg5MzQ1Mzc1",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Experimental",
+ "name": "[Type] Experimental",
+ "color": "4109a0",
"default": false,
- "description": ""
+ "description": "Experimental feature or API."
},
{
- "id": 567484057,
- "node_id": "MDU6TGFiZWw1Njc0ODQwNTc=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Documentation",
- "name": "[Type] Developer Documentation",
- "color": "bfd4f2",
+ "id": 2409818939,
+ "node_id": "MDU6TGFiZWwyNDA5ODE4OTM5",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Edit%20Site",
+ "name": "[Package] Edit Site",
+ "color": "ed2572",
"default": false,
- "description": ""
+ "description": "/packages/edit-site"
},
{
- "id": 587343997,
- "node_id": "MDU6TGFiZWw1ODczNDM5OTc=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Status]%20In%20Progress",
- "name": "[Status] In Progress",
- "color": "0052cc",
+ "id": 6059497889,
+ "node_id": "LA_kwDOBNHdeM8AAAABaSyZoQ",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Data%20Views",
+ "name": "[Feature] Data Views",
+ "color": "FBCA04",
"default": false,
- "description": "Tracking issues with work in progress"
+ "description": "Work surrounding upgrading and evolving views in the site editor and beyond"
}
],
"state": "closed",
"locked": false,
- "assignee": null,
- "assignees": [],
+ "assignee": {
+ "login": "ntsekouras",
+ "id": 16275880,
+ "node_id": "MDQ6VXNlcjE2Mjc1ODgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/16275880?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ntsekouras",
+ "html_url": "https://github.com/ntsekouras",
+ "followers_url": "https://api.github.com/users/ntsekouras/followers",
+ "following_url": "https://api.github.com/users/ntsekouras/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ntsekouras/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ntsekouras/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ntsekouras/subscriptions",
+ "organizations_url": "https://api.github.com/users/ntsekouras/orgs",
+ "repos_url": "https://api.github.com/users/ntsekouras/repos",
+ "events_url": "https://api.github.com/users/ntsekouras/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ntsekouras/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "ntsekouras",
+ "id": 16275880,
+ "node_id": "MDQ6VXNlcjE2Mjc1ODgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/16275880?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ntsekouras",
+ "html_url": "https://github.com/ntsekouras",
+ "followers_url": "https://api.github.com/users/ntsekouras/followers",
+ "following_url": "https://api.github.com/users/ntsekouras/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ntsekouras/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ntsekouras/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ntsekouras/subscriptions",
+ "organizations_url": "https://api.github.com/users/ntsekouras/orgs",
+ "repos_url": "https://api.github.com/users/ntsekouras/repos",
+ "events_url": "https://api.github.com/users/ntsekouras/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ntsekouras/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -3871,82 +4258,156 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 0,
- "created_at": "2021-08-04T15:23:25Z",
- "updated_at": "2021-08-09T09:41:58Z",
- "closed_at": "2021-08-09T09:41:36Z",
+ "comments": 8,
+ "created_at": "2023-10-02T11:33:10Z",
+ "updated_at": "2023-10-09T00:35:39Z",
+ "closed_at": "2023-10-04T11:31:42Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33880",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33880",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33880.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33880.patch"
- },
- "body": "## Description\r\nThe block attributes documentation is a bit sparse on details, and I usually end up looking at core blocks for help.\r\n\r\nThis adds a lot more detail, with examples that show the block attributes, the HTML, and the attributes parsed from it.\r\n\r\nIt also includes the `enum` attribute type.\r\n\r\nI've removed the link to the WP REST API documentation as it contains PHP details, and just seems a confusing link.\r\n\r\n## Types of changes\r\nDocumentation update only.\r\n\r\n## Checklist:\r\n- [ ] My code is tested.\r\n- [ ] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [ ] My code has proper inline documentation. \r\n- [ ] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54966",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54966",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54966.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54966.patch",
+ "merged_at": "2023-10-04T11:31:42Z"
+ },
+ "body": "\r\n\r\n## What?\r\nThis is the first version of pages list in site editor with related issues: https://github.com/WordPress/gutenberg/issues/53233, https://github.com/WordPress/gutenberg/issues/50430.\r\n\r\nThe underlying APIs will evolve, but we need to get something in, to enable parallel work. This PR adds a new pages list in the site editor and to test it, you'll need to **enable the `New admin views` GB experiment**.\r\n\r\nFor now it uses [TanStack table](https://github.com/tanstack/table), but this is an internal implementation detail and could also change. Part of the code has been extracted/polished a bit from https://github.com/WordPress/gutenberg/pull/53906.\r\nwhere the approach was to create helper components that could be composed into creating different views.\r\n\r\nThis PR changes the direction and aims to use a high level component(`DataViews`) that will provide the APIs for core and extenders for all views and functionality for any entity. \r\n\r\n\r\nNothing is exported right now and no public APIs have been introduced.\r\n\r\n\r\n## Testing Instructions\r\n1. Enable the experiment\r\n2. Go to site editor and navigate to `Pages->Manage all pages` .\r\n3. Play around with the new functionality like pagination, sorting, etc..\r\n\r\n\r\nhttps://github.com/WordPress/gutenberg/assets/16275880/56f061ad-1ed2-4447-bda3-635fe7f90f98\r\n\r\n\r\n\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54966/reactions",
+ "total_count": 3,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 3,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54966/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33870",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54951",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33870/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33870/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33870/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33870",
- "id": 960382736,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzAzNDEwOTY1",
- "number": 33870,
- "title": "Mobile Release v1.58.2",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54951/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54951/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54951/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54951",
+ "id": 1920203460,
+ "node_id": "PR_kwDOBNHdeM5blfTl",
+ "number": 54951,
+ "title": "Edit Post: Use hooks instead of HoCs in 'PostStatus' components",
"user": {
- "login": "SiobhyB",
- "id": 2998162,
- "node_id": "MDQ6VXNlcjI5OTgxNjI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/2998162?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/SiobhyB",
- "html_url": "https://github.com/SiobhyB",
- "followers_url": "https://api.github.com/users/SiobhyB/followers",
- "following_url": "https://api.github.com/users/SiobhyB/following{/other_user}",
- "gists_url": "https://api.github.com/users/SiobhyB/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/SiobhyB/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/SiobhyB/subscriptions",
- "organizations_url": "https://api.github.com/users/SiobhyB/orgs",
- "repos_url": "https://api.github.com/users/SiobhyB/repos",
- "events_url": "https://api.github.com/users/SiobhyB/events{/privacy}",
- "received_events_url": "https://api.github.com/users/SiobhyB/received_events",
- "type": "User",
- "site_admin": false
- },
- "labels": [
- {
- "id": 982506020,
- "node_id": "MDU6TGFiZWw5ODI1MDYwMjA=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20i.e.%20Android%20or%20iOS",
- "name": "Mobile App - i.e. Android or iOS",
- "color": "a3ef7a",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 531680825,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
+ "name": "[Type] Enhancement",
+ "color": "FEF2C0",
"default": false,
- "description": "Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)"
+ "description": "A suggestion for improvement."
+ },
+ {
+ "id": 593977130,
+ "node_id": "MDU6TGFiZWw1OTM5NzcxMzA=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Priority]%20Low",
+ "name": "[Priority] Low",
+ "color": "f9d0c4",
+ "default": false,
+ "description": "Used to indicate that the issue at hand isn't a top priority to address and can be handled later"
+ },
+ {
+ "id": 1298994603,
+ "node_id": "MDU6TGFiZWwxMjk4OTk0NjAz",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Edit%20Post",
+ "name": "[Package] Edit Post",
+ "color": "ed2572",
+ "default": false,
+ "description": "/packages/edit-post"
}
],
"state": "closed",
"locked": false,
- "assignee": null,
- "assignees": [],
+ "assignee": {
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -3969,131 +4430,156 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 1,
- "created_at": "2021-08-04T12:39:09Z",
- "updated_at": "2021-08-04T18:26:53Z",
- "closed_at": "2021-08-04T18:26:27Z",
- "author_association": "CONTRIBUTOR",
+ "comments": 2,
+ "created_at": "2023-09-30T10:17:16Z",
+ "updated_at": "2023-10-02T15:01:01Z",
+ "closed_at": "2023-10-02T15:00:27Z",
+ "author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33870",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33870",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33870.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33870.patch"
- },
- "body": "## Description\nRelease 1.58.2 of the react-native-editor and Gutenberg-Mobile.\n\nFor more information about this release and testing instructions, please see the related Gutenberg-Mobile PR: https://github.com/wordpress-mobile/gutenberg-mobile/pull/3795\n\n## Checklist:\n- [x] My code is tested.\n- [x] My code follows the WordPress code style. \n- [x] My code follows the accessibility standards. \n- [x] I've tested my changes with keyboard and screen readers. \n- [x] My code has proper inline documentation. \n- [x] I've included developer documentation if appropriate. \n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). ",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54951",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54951",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54951.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54951.patch",
+ "merged_at": "2023-10-02T15:00:27Z"
+ },
+ "body": "## What?\r\nThis is similar to #54949.\r\n\r\nPR refactors `PostStatus` components to use `useDispatch` and `useSelect` hooks instead of the HoCs. I've also removed unused styles from the component.\r\n\r\n## Why?\r\nA micro-optimization makes the rendered component tree smaller.\r\n\r\n## How?\r\n\r\n\r\n## Testing Instructions\r\n1. Open a post or page.\r\n2. Confirm the \"Post Status\" panel renders as before.\r\n3. You can close and open the panel.\r\n4. Remove the panel programmatically using the following snippet - `wp.data.dispatch( 'core/edit-post' ).removeEditorPanel( 'post-status' );`\r\n\r\n### Testing Instructions for Keyboard\r\nSame.\r\n\r\n## Screenshots or screencast \r\n\r\n**Before**\r\n![CleanShot 2023-09-30 at 14 07 49](https://github.com/WordPress/gutenberg/assets/240569/38c8754a-e691-458a-990b-79dca2569d79)\r\n\r\n**After**\r\n![CleanShot 2023-09-30 at 14 06 35](https://github.com/WordPress/gutenberg/assets/240569/b1a12c49-edb9-4266-a2d3-952a248a81bd)\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54951/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54951/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33868",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54949",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33868/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33868/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33868/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33868",
- "id": 960259006,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzAzMjk3NTg2",
- "number": 33868,
- "title": "Lazy render the inserter search results",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54949/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54949/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54949/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54949",
+ "id": 1920156169,
+ "node_id": "PR_kwDOBNHdeM5blWDw",
+ "number": 54949,
+ "title": "Editor: Use hooks instead of HoCs in 'PostSticky' components",
"user": {
- "login": "youknowriad",
- "id": 272444,
- "node_id": "MDQ6VXNlcjI3MjQ0NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/youknowriad",
- "html_url": "https://github.com/youknowriad",
- "followers_url": "https://api.github.com/users/youknowriad/followers",
- "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
- "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
- "organizations_url": "https://api.github.com/users/youknowriad/orgs",
- "repos_url": "https://api.github.com/users/youknowriad/repos",
- "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
- "received_events_url": "https://api.github.com/users/youknowriad/received_events",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 596962434,
- "node_id": "MDU6TGFiZWw1OTY5NjI0MzQ=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Inserter",
- "name": "[Feature] Inserter",
- "color": "fbca04",
+ "id": 531680825,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
+ "name": "[Type] Enhancement",
+ "color": "FEF2C0",
"default": false,
- "description": ""
+ "description": "A suggestion for improvement."
},
{
- "id": 731693674,
- "node_id": "MDU6TGFiZWw3MzE2OTM2NzQ=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Performance",
- "name": "[Type] Performance",
- "color": "f3f4fe",
+ "id": 593977130,
+ "node_id": "MDU6TGFiZWw1OTM5NzcxMzA=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Priority]%20Low",
+ "name": "[Priority] Low",
+ "color": "f9d0c4",
+ "default": false,
+ "description": "Used to indicate that the issue at hand isn't a top priority to address and can be handled later"
+ },
+ {
+ "id": 1013395453,
+ "node_id": "MDU6TGFiZWwxMDEzMzk1NDUz",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Editor",
+ "name": "[Package] Editor",
+ "color": "ed2572",
"default": false,
- "description": ""
+ "description": "/packages/editor"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "youknowriad",
- "id": 272444,
- "node_id": "MDQ6VXNlcjI3MjQ0NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/youknowriad",
- "html_url": "https://github.com/youknowriad",
- "followers_url": "https://api.github.com/users/youknowriad/followers",
- "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
- "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
- "organizations_url": "https://api.github.com/users/youknowriad/orgs",
- "repos_url": "https://api.github.com/users/youknowriad/repos",
- "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
- "received_events_url": "https://api.github.com/users/youknowriad/received_events",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "youknowriad",
- "id": 272444,
- "node_id": "MDQ6VXNlcjI3MjQ0NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/youknowriad",
- "html_url": "https://github.com/youknowriad",
- "followers_url": "https://api.github.com/users/youknowriad/followers",
- "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
- "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
- "organizations_url": "https://api.github.com/users/youknowriad/orgs",
- "repos_url": "https://api.github.com/users/youknowriad/repos",
- "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
- "received_events_url": "https://api.github.com/users/youknowriad/received_events",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -4116,72 +4602,107 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 3,
- "created_at": "2021-08-04T11:03:08Z",
- "updated_at": "2021-08-05T08:07:57Z",
- "closed_at": "2021-08-05T07:50:44Z",
- "author_association": "CONTRIBUTOR",
+ "comments": 2,
+ "created_at": "2023-09-30T07:23:51Z",
+ "updated_at": "2023-10-01T17:37:45Z",
+ "closed_at": "2023-10-01T17:37:12Z",
+ "author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33868",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33868",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33868.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33868.patch"
- },
- "body": "This PR tries to improve the feeling of responsiveness in the inserter when searching block types and patterns. It does this by lazy-rendering the search results. It adds a `step` config into the `useAsyncList` hook to render the block types 9 by 9.",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54949",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54949",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54949.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54949.patch",
+ "merged_at": "2023-10-01T17:37:12Z"
+ },
+ "body": "## What?\r\nThis is similar to #53389.\r\n\r\nPR refactors `PostStickyCheck` and `PostSticky` components to use `useDispatch` and `useSelect` hooks instead of the HoCs.\r\n\r\n## Why?\r\nA micro-optimization makes the rendered component tree smaller.\r\n\r\n## Testing Instructions\r\nConfirm \r\n\r\n### Testing Instructions for Keyboard\r\nThe same \"Stick to the top of the blog\" action works as before.\r\n\r\n* Is only displayed for posts.\r\n* Can mark a post as \"sticky\".\r\n\r\n## Screenshots or screencast \r\n\r\n**Before**\r\n![CleanShot 2023-09-25 at 18 47 36](https://github.com/WordPress/gutenberg/assets/240569/bcb24f86-b7cc-4902-a46b-522cd222abd9)\r\n\r\n**After**\r\n![CleanShot 2023-09-30 at 11 20 42](https://github.com/WordPress/gutenberg/assets/240569/ef3c56bc-f958-4118-b2a3-4a2c83b73b2c)\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54949/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54949/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33866",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54947",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33866/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33866/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33866/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33866",
- "id": 960025040,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzAzMDg1NzA3",
- "number": 33866,
- "title": "Tune appender margin.",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54947/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54947/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54947/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54947",
+ "id": 1919965859,
+ "node_id": "PR_kwDOBNHdeM5bkvb0",
+ "number": 54947,
+ "title": "Revert \"Font Library: avoid rendering font library ui outisde gutenberg plugin\"",
"user": {
- "login": "jasmussen",
- "id": 1204802,
- "node_id": "MDQ6VXNlcjEyMDQ4MDI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1204802?v=4",
+ "login": "matiasbenedetto",
+ "id": 1310626,
+ "node_id": "MDQ6VXNlcjEzMTA2MjY=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1310626?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/jasmussen",
- "html_url": "https://github.com/jasmussen",
- "followers_url": "https://api.github.com/users/jasmussen/followers",
- "following_url": "https://api.github.com/users/jasmussen/following{/other_user}",
- "gists_url": "https://api.github.com/users/jasmussen/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/jasmussen/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/jasmussen/subscriptions",
- "organizations_url": "https://api.github.com/users/jasmussen/orgs",
- "repos_url": "https://api.github.com/users/jasmussen/repos",
- "events_url": "https://api.github.com/users/jasmussen/events{/privacy}",
- "received_events_url": "https://api.github.com/users/jasmussen/received_events",
+ "url": "https://api.github.com/users/matiasbenedetto",
+ "html_url": "https://github.com/matiasbenedetto",
+ "followers_url": "https://api.github.com/users/matiasbenedetto/followers",
+ "following_url": "https://api.github.com/users/matiasbenedetto/following{/other_user}",
+ "gists_url": "https://api.github.com/users/matiasbenedetto/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/matiasbenedetto/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/matiasbenedetto/subscriptions",
+ "organizations_url": "https://api.github.com/users/matiasbenedetto/orgs",
+ "repos_url": "https://api.github.com/users/matiasbenedetto/repos",
+ "events_url": "https://api.github.com/users/matiasbenedetto/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/matiasbenedetto/received_events",
"type": "User",
"site_admin": false
},
- "labels": [],
+ "labels": [
+ {
+ "id": 531680824,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjQ=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Task",
+ "name": "[Type] Task",
+ "color": "fef2c0",
+ "default": false,
+ "description": "Issues or PRs that have been broken down into an individual action to take"
+ },
+ {
+ "id": 4366600186,
+ "node_id": "LA_kwDOBNHdeM8AAAABBEUH-g",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Typography",
+ "name": "[Feature] Typography",
+ "color": "fbca04",
+ "default": false,
+ "description": "Font and typography-related issues and PRs"
+ }
+ ],
"state": "closed",
"locked": false,
"assignee": null,
"assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -4204,131 +4725,138 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 3,
- "created_at": "2021-08-04T07:57:20Z",
- "updated_at": "2021-08-04T15:16:44Z",
- "closed_at": "2021-08-04T15:16:18Z",
+ "comments": 2,
+ "created_at": "2023-09-29T22:13:51Z",
+ "updated_at": "2023-10-03T12:33:17Z",
+ "closed_at": "2023-10-03T08:27:09Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33866",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33866",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33866.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33866.patch"
- },
- "body": "## Description\r\n\r\nFollowup to #33739. There was a teeeeensy side effect of the uniform 8px margin around the appender. Specifically that it in some cases made the height of blocks larger. See here how the navigation block grows 4px taller on select:\r\n\r\n![before](https://user-images.githubusercontent.com/1204802/128143618-5cfb57b0-070f-4e2e-8224-c1ebab0faa64.gif)\r\n\r\nThat's because the 24px image plus 2x8px margins comes to 40px, but in this theme the menu is 36px tall by default.\r\n\r\nThis PR mitigates that by removing the top/bottom margin:\r\n\r\n![after](https://user-images.githubusercontent.com/1204802/128143703-b6a5d8bf-0020-4529-a0e5-32f96a9d5502.gif)\r\n\r\nI say _mitigates_ because if the menu is <24px tall the appender would still make it bigger. That's a separate and bigger issue to solve (see conversation in #31886). But it still seems like a good, small improvement. The appender is still vertically centered due to the flex rules.\r\n\r\n## How has this been tested?\r\n\r\nInsert social links, buttons, navigation blocks, and verify the appender on select still looks good.\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [x] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54947",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54947",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54947.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54947.patch",
+ "merged_at": "2023-10-03T08:27:09Z"
+ },
+ "body": "## What?\r\nReverts the conditional export of the font library UI components to make it available only in Gutenberg.\r\n\r\n## Why?\r\nTo make the font library also available on core.\r\n\r\n\r\nReverts WordPress/gutenberg#54830",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54947/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54947/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33863",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54944",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33863/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33863/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33863/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33863",
- "id": 959775425,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzAyODY0MTgw",
- "number": 33863,
- "title": "Image Block: Fix issue with canInsertCover not being set to false for empty arrays",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54944/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54944/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54944/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54944",
+ "id": 1919879260,
+ "node_id": "PR_kwDOBNHdeM5bkcZK",
+ "number": 54944,
+ "title": "Migrate keyboard-navigable-blocks e2e tests from puppeteer to playwright",
"user": {
- "login": "glendaviesnz",
- "id": 3629020,
- "node_id": "MDQ6VXNlcjM2MjkwMjA=",
- "avatar_url": "https://avatars.githubusercontent.com/u/3629020?v=4",
+ "login": "jeryj",
+ "id": 967608,
+ "node_id": "MDQ6VXNlcjk2NzYwOA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/967608?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/glendaviesnz",
- "html_url": "https://github.com/glendaviesnz",
- "followers_url": "https://api.github.com/users/glendaviesnz/followers",
- "following_url": "https://api.github.com/users/glendaviesnz/following{/other_user}",
- "gists_url": "https://api.github.com/users/glendaviesnz/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/glendaviesnz/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/glendaviesnz/subscriptions",
- "organizations_url": "https://api.github.com/users/glendaviesnz/orgs",
- "repos_url": "https://api.github.com/users/glendaviesnz/repos",
- "events_url": "https://api.github.com/users/glendaviesnz/events{/privacy}",
- "received_events_url": "https://api.github.com/users/glendaviesnz/received_events",
+ "url": "https://api.github.com/users/jeryj",
+ "html_url": "https://github.com/jeryj",
+ "followers_url": "https://api.github.com/users/jeryj/followers",
+ "following_url": "https://api.github.com/users/jeryj/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jeryj/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jeryj/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jeryj/subscriptions",
+ "organizations_url": "https://api.github.com/users/jeryj/orgs",
+ "repos_url": "https://api.github.com/users/jeryj/repos",
+ "events_url": "https://api.github.com/users/jeryj/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jeryj/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 531680823,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
- "name": "[Type] Bug",
- "color": "d93f0b",
- "default": false,
- "description": "An existing feature is broken."
- },
- {
- "id": 1101518360,
- "node_id": "MDU6TGFiZWwxMTAxNTE4MzYw",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Image",
- "name": "[Block] Image",
- "color": "6767e5",
+ "id": 615503111,
+ "node_id": "MDU6TGFiZWw2MTU1MDMxMTE=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Automated%20Testing",
+ "name": "[Type] Automated Testing",
+ "color": "111111",
"default": false,
- "description": ""
+ "description": "Testing infrastructure changes impacting the execution of end-to-end (E2E) and/or unit tests."
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "glendaviesnz",
- "id": 3629020,
- "node_id": "MDQ6VXNlcjM2MjkwMjA=",
- "avatar_url": "https://avatars.githubusercontent.com/u/3629020?v=4",
+ "login": "jeryj",
+ "id": 967608,
+ "node_id": "MDQ6VXNlcjk2NzYwOA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/967608?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/glendaviesnz",
- "html_url": "https://github.com/glendaviesnz",
- "followers_url": "https://api.github.com/users/glendaviesnz/followers",
- "following_url": "https://api.github.com/users/glendaviesnz/following{/other_user}",
- "gists_url": "https://api.github.com/users/glendaviesnz/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/glendaviesnz/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/glendaviesnz/subscriptions",
- "organizations_url": "https://api.github.com/users/glendaviesnz/orgs",
- "repos_url": "https://api.github.com/users/glendaviesnz/repos",
- "events_url": "https://api.github.com/users/glendaviesnz/events{/privacy}",
- "received_events_url": "https://api.github.com/users/glendaviesnz/received_events",
+ "url": "https://api.github.com/users/jeryj",
+ "html_url": "https://github.com/jeryj",
+ "followers_url": "https://api.github.com/users/jeryj/followers",
+ "following_url": "https://api.github.com/users/jeryj/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jeryj/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jeryj/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jeryj/subscriptions",
+ "organizations_url": "https://api.github.com/users/jeryj/orgs",
+ "repos_url": "https://api.github.com/users/jeryj/repos",
+ "events_url": "https://api.github.com/users/jeryj/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jeryj/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "glendaviesnz",
- "id": 3629020,
- "node_id": "MDQ6VXNlcjM2MjkwMjA=",
- "avatar_url": "https://avatars.githubusercontent.com/u/3629020?v=4",
+ "login": "jeryj",
+ "id": 967608,
+ "node_id": "MDQ6VXNlcjk2NzYwOA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/967608?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/glendaviesnz",
- "html_url": "https://github.com/glendaviesnz",
- "followers_url": "https://api.github.com/users/glendaviesnz/followers",
- "following_url": "https://api.github.com/users/glendaviesnz/following{/other_user}",
- "gists_url": "https://api.github.com/users/glendaviesnz/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/glendaviesnz/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/glendaviesnz/subscriptions",
- "organizations_url": "https://api.github.com/users/glendaviesnz/orgs",
- "repos_url": "https://api.github.com/users/glendaviesnz/repos",
- "events_url": "https://api.github.com/users/glendaviesnz/events{/privacy}",
- "received_events_url": "https://api.github.com/users/glendaviesnz/received_events",
+ "url": "https://api.github.com/users/jeryj",
+ "html_url": "https://github.com/jeryj",
+ "followers_url": "https://api.github.com/users/jeryj/followers",
+ "following_url": "https://api.github.com/users/jeryj/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jeryj/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jeryj/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jeryj/subscriptions",
+ "organizations_url": "https://api.github.com/users/jeryj/orgs",
+ "repos_url": "https://api.github.com/users/jeryj/repos",
+ "events_url": "https://api.github.com/users/jeryj/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jeryj/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -4351,68 +4879,93 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 2,
- "created_at": "2021-08-04T01:50:04Z",
- "updated_at": "2021-08-04T03:08:43Z",
- "closed_at": "2021-08-04T03:08:11Z",
+ "comments": 4,
+ "created_at": "2023-09-29T20:40:08Z",
+ "updated_at": "2023-10-02T19:35:14Z",
+ "closed_at": "2023-10-02T19:34:42Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33863",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33863",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33863.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33863.patch"
- },
- "body": "## Description\r\nThe canInsertCover value in the Image block is being set to 0 instead of false when `transformations` is an empty array, which causes its subsequent use in the conditional display of the coverblock conversion toolbar item to output a 0, instead of moving in to the right most criteria\r\n\r\nFixes: #33862\r\n\r\n## Testing\r\n\r\nCheck out PR in local dev env and add an Image block and make sure the convert to cover block option displays in toolbar still as expected\r\nCheck out this PR in conjunction with the Gallery refactor PR and enable the Gallery experiment\r\nAdd a gallery and make sure that the cover block option is not in the toolbar, and no 0 is displaying\r\n\r\n\r\n## Screenshots \r\n\r\nBefore:\r\n \r\n\r\nAfter:\r\n \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54944",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54944",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54944.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54944.patch",
+ "merged_at": "2023-10-02T19:34:42Z"
+ },
+ "body": "\r\n\r\n## What?\r\nMigrating keyboard-navigable-blocks e2e tests from puppeteer to playwright\r\n\r\n## Why?\r\n\r\nPart of the larger migration effort in https://github.com/WordPress/gutenberg/issues/38851, also because I'm going to be modifying this test as part of https://github.com/WordPress/gutenberg/pull/54513 and figured I may as well migrate it before making changes.\r\n\r\n## How?\r\n\r\nFollowed the [migration guide](https://github.com/WordPress/gutenberg/blob/8e7ce7328f67935dc38e09c48004645f93e13cdb/docs/contributors/code/e2e/migration.md).\r\n\r\n## Testing Instructions\r\n`npm run test:e2e:playwright -- editor/various/keyboard-navigable-blocks.spec.js`\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54944/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54944/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33860",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54941",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33860/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33860/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33860/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33860",
- "id": 959604194,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzAyNzAzNDE2",
- "number": 33860,
- "title": "Correct spelling and grammar in documentation",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54941/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54941/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54941/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54941",
+ "id": 1919582866,
+ "node_id": "PR_kwDOBNHdeM5bjdSG",
+ "number": 54941,
+ "title": "Label enforcer workflow: make accessibility a focus instead of a type",
"user": {
- "login": "jeremyfelt",
- "id": 286171,
- "node_id": "MDQ6VXNlcjI4NjE3MQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/286171?v=4",
+ "login": "priethor",
+ "id": 27339341,
+ "node_id": "MDQ6VXNlcjI3MzM5MzQx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/27339341?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/jeremyfelt",
- "html_url": "https://github.com/jeremyfelt",
- "followers_url": "https://api.github.com/users/jeremyfelt/followers",
- "following_url": "https://api.github.com/users/jeremyfelt/following{/other_user}",
- "gists_url": "https://api.github.com/users/jeremyfelt/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/jeremyfelt/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/jeremyfelt/subscriptions",
- "organizations_url": "https://api.github.com/users/jeremyfelt/orgs",
- "repos_url": "https://api.github.com/users/jeremyfelt/repos",
- "events_url": "https://api.github.com/users/jeremyfelt/events{/privacy}",
- "received_events_url": "https://api.github.com/users/jeremyfelt/received_events",
+ "url": "https://api.github.com/users/priethor",
+ "html_url": "https://github.com/priethor",
+ "followers_url": "https://api.github.com/users/priethor/followers",
+ "following_url": "https://api.github.com/users/priethor/following{/other_user}",
+ "gists_url": "https://api.github.com/users/priethor/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/priethor/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/priethor/subscriptions",
+ "organizations_url": "https://api.github.com/users/priethor/orgs",
+ "repos_url": "https://api.github.com/users/priethor/repos",
+ "events_url": "https://api.github.com/users/priethor/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/priethor/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 567484057,
- "node_id": "MDU6TGFiZWw1Njc0ODQwNTc=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Documentation",
- "name": "[Type] Developer Documentation",
- "color": "bfd4f2",
+ "id": 1032028862,
+ "node_id": "MDU6TGFiZWwxMDMyMDI4ODYy",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Project%20Management",
+ "name": "[Type] Project Management",
+ "color": "e55ead",
+ "default": false,
+ "description": "Meta-issues related to project management of Gutenberg"
+ },
+ {
+ "id": 4662565393,
+ "node_id": "LA_kwDOBNHdeM8AAAABFekaEQ",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/GitHub%20Actions",
+ "name": "GitHub Actions",
+ "color": "000000",
"default": false,
- "description": ""
+ "description": "Pull requests that update GitHub Actions code"
}
],
"state": "closed",
@@ -4420,13 +4973,13 @@
"assignee": null,
"assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -4449,131 +5002,147 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
"comments": 0,
- "created_at": "2021-08-03T23:03:58Z",
- "updated_at": "2021-08-04T05:03:25Z",
- "closed_at": "2021-08-04T05:03:03Z",
- "author_association": "MEMBER",
+ "created_at": "2023-09-29T16:29:56Z",
+ "updated_at": "2023-10-02T09:53:47Z",
+ "closed_at": "2023-10-02T09:53:17Z",
+ "author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33860",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33860",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33860.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33860.patch"
- },
- "body": "## Description\r\n\r\n* \"theme\" should be \"them\" in this instance\r\n* \"supports\" should be \"support\" because of the plural \"Pages and Custom Post Types\"\r\n\r\n## Types of changes\r\nDocumentation\r\n\r\n## Checklist:\r\n- [ ] My code is tested.\r\n- [ ] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [ ] My code has proper inline documentation. \r\n- [ ] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54941",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54941",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54941.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54941.patch",
+ "merged_at": "2023-10-02T09:53:17Z"
+ },
+ "body": "\r\n\r\n## What?\r\nRemoves the limitation of having the Accessibility label along with types of labels like Bug or Enhancement.\r\n\r\nAt the same time, if this change is approved, a PR will _need_ to have a type-of-task label associated with it. The reasoning behind this is multiple, as not having clear rules for labeling makes it more complicated to contribute and to report and do project management on the project.\r\n\r\n## Why?\r\nAs mentioned by @afercia [here](https://github.com/WordPress/gutenberg/discussions/52727#discussioncomment-7102557).\r\n\r\n> Regarding the accessibility label, quoting from https://github.com/WordPress/gutenberg/pull/54724#issuecomment-1733830085\r\n>\r\n>I think I already pointed out in some other discussion or issue that Accessibility is typically something that spans across different areas of a project. As such, we should be able to add the Accessibility label everywhere. WhethEr it's a Type or other, I don't have strong preferences.\r\n>\r\n>Accessibility in Core Trac used to be a component and was changed to Focus right for that reason. The re=organizazion of the Trac focuses dates early 2014. For more details and the reasoning about Accessibility as focus, see https://make.wordpress.org/core/2014/01/24/trac-focuses/\r\n\r\n## How?\r\nBy removing the label from the list of type labels.\r\n\r\nIf this PR is approved, I will follow up with renaming the label to remove the `[Type]` prefix.\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54941/reactions",
+ "total_count": 1,
+ "+1": 1,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54941/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33848",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54938",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33848/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33848/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33848/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33848",
- "id": 959120665,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzAyMjg0MzM0",
- "number": 33848,
- "title": "Add search performance measure and make other measures more stable",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54938/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54938/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54938/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54938",
+ "id": 1919401237,
+ "node_id": "PR_kwDOBNHdeM5bi2OF",
+ "number": 54938,
+ "title": "Image Block: Fix browser console error when clicking \"Expand on Click\"",
"user": {
- "login": "youknowriad",
- "id": 272444,
- "node_id": "MDQ6VXNlcjI3MjQ0NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
+ "login": "t-hamano",
+ "id": 54422211,
+ "node_id": "MDQ6VXNlcjU0NDIyMjEx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/54422211?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/youknowriad",
- "html_url": "https://github.com/youknowriad",
- "followers_url": "https://api.github.com/users/youknowriad/followers",
- "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
- "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
- "organizations_url": "https://api.github.com/users/youknowriad/orgs",
- "repos_url": "https://api.github.com/users/youknowriad/repos",
- "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
- "received_events_url": "https://api.github.com/users/youknowriad/received_events",
+ "url": "https://api.github.com/users/t-hamano",
+ "html_url": "https://github.com/t-hamano",
+ "followers_url": "https://api.github.com/users/t-hamano/followers",
+ "following_url": "https://api.github.com/users/t-hamano/following{/other_user}",
+ "gists_url": "https://api.github.com/users/t-hamano/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/t-hamano/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/t-hamano/subscriptions",
+ "organizations_url": "https://api.github.com/users/t-hamano/orgs",
+ "repos_url": "https://api.github.com/users/t-hamano/repos",
+ "events_url": "https://api.github.com/users/t-hamano/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/t-hamano/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 615503111,
- "node_id": "MDU6TGFiZWw2MTU1MDMxMTE=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Automated%20Testing",
- "name": "Automated Testing",
- "color": "111111",
+ "id": 930001208,
+ "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
+ "name": "[Type] Code Quality",
+ "color": "e5e04b",
"default": false,
- "description": "Testing infrastructure changes impacting the execution of end-to-end (E2E) and/or unit tests."
+ "description": "Issues or PRs that relate to code quality"
},
{
- "id": 731693674,
- "node_id": "MDU6TGFiZWw3MzE2OTM2NzQ=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Performance",
- "name": "[Type] Performance",
- "color": "f3f4fe",
+ "id": 1101518360,
+ "node_id": "MDU6TGFiZWwxMTAxNTE4MzYw",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Image",
+ "name": "[Block] Image",
+ "color": "6767e5",
"default": false,
- "description": ""
+ "description": "Affects the Image Block"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "youknowriad",
- "id": 272444,
- "node_id": "MDQ6VXNlcjI3MjQ0NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
+ "login": "t-hamano",
+ "id": 54422211,
+ "node_id": "MDQ6VXNlcjU0NDIyMjEx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/54422211?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/youknowriad",
- "html_url": "https://github.com/youknowriad",
- "followers_url": "https://api.github.com/users/youknowriad/followers",
- "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
- "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
- "organizations_url": "https://api.github.com/users/youknowriad/orgs",
- "repos_url": "https://api.github.com/users/youknowriad/repos",
- "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
- "received_events_url": "https://api.github.com/users/youknowriad/received_events",
+ "url": "https://api.github.com/users/t-hamano",
+ "html_url": "https://github.com/t-hamano",
+ "followers_url": "https://api.github.com/users/t-hamano/followers",
+ "following_url": "https://api.github.com/users/t-hamano/following{/other_user}",
+ "gists_url": "https://api.github.com/users/t-hamano/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/t-hamano/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/t-hamano/subscriptions",
+ "organizations_url": "https://api.github.com/users/t-hamano/orgs",
+ "repos_url": "https://api.github.com/users/t-hamano/repos",
+ "events_url": "https://api.github.com/users/t-hamano/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/t-hamano/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "youknowriad",
- "id": 272444,
- "node_id": "MDQ6VXNlcjI3MjQ0NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
+ "login": "t-hamano",
+ "id": 54422211,
+ "node_id": "MDQ6VXNlcjU0NDIyMjEx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/54422211?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/youknowriad",
- "html_url": "https://github.com/youknowriad",
- "followers_url": "https://api.github.com/users/youknowriad/followers",
- "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
- "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
- "organizations_url": "https://api.github.com/users/youknowriad/orgs",
- "repos_url": "https://api.github.com/users/youknowriad/repos",
- "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
- "received_events_url": "https://api.github.com/users/youknowriad/received_events",
+ "url": "https://api.github.com/users/t-hamano",
+ "html_url": "https://github.com/t-hamano",
+ "followers_url": "https://api.github.com/users/t-hamano/followers",
+ "following_url": "https://api.github.com/users/t-hamano/following{/other_user}",
+ "gists_url": "https://api.github.com/users/t-hamano/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/t-hamano/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/t-hamano/subscriptions",
+ "organizations_url": "https://api.github.com/users/t-hamano/orgs",
+ "repos_url": "https://api.github.com/users/t-hamano/repos",
+ "events_url": "https://api.github.com/users/t-hamano/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/t-hamano/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -4596,122 +5165,147 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 1,
- "created_at": "2021-08-03T13:30:59Z",
- "updated_at": "2021-08-06T11:54:26Z",
- "closed_at": "2021-08-04T09:40:11Z",
+ "comments": 3,
+ "created_at": "2023-09-29T14:42:50Z",
+ "updated_at": "2023-10-05T11:16:42Z",
+ "closed_at": "2023-09-30T14:48:25Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33848",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33848",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33848.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33848.patch"
- },
- "body": "I noticed lags when searching the block inserter. I'd like to try some iterations to improve that (maybe using the same technique used for the regular inserter block list: lazy rendering).\r\n\r\nBefore jumping into the performance work, I'm adding a new performance measure here to track the time it takes for the browser to respond after an inserter search.\r\n\r\nI'm also using this as an opportunity to make the other measures a bit more stable.",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54938",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54938",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54938.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54938.patch",
+ "merged_at": "2023-09-30T14:48:25Z"
+ },
+ "body": "## What?\r\nThis PR fixes a browser console error that occurs when you click \"Expand on lick\" for the first time after inserting an image block.\r\n\r\n\r\nhttps://github.com/WordPress/gutenberg/assets/54422211/cafbf953-4456-4907-9bd5-faedf095652d\r\n\r\n\r\n\r\n## Why?\r\n\r\nThis is because the lightboxChecked variable returns undefined the first time the image block is inserted.\r\n\r\n## How?\r\n\r\nI made it always return a boolean value.\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54938/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54938/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33847",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54932",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33847/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33847/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33847/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33847",
- "id": 959087985,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzAyMjU2MDk4",
- "number": 33847,
- "title": "[RNMobile] Disables supportsLayout by default on mobile",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54932/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54932/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54932/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54932",
+ "id": 1919094222,
+ "node_id": "PR_kwDOBNHdeM5bhzAq",
+ "number": 54932,
+ "title": "Document the current state of the Real-Time collaboration experiment",
"user": {
- "login": "antonis",
- "id": 304044,
- "node_id": "MDQ6VXNlcjMwNDA0NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/304044?v=4",
+ "login": "oandregal",
+ "id": 583546,
+ "node_id": "MDQ6VXNlcjU4MzU0Ng==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/583546?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/antonis",
- "html_url": "https://github.com/antonis",
- "followers_url": "https://api.github.com/users/antonis/followers",
- "following_url": "https://api.github.com/users/antonis/following{/other_user}",
- "gists_url": "https://api.github.com/users/antonis/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/antonis/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/antonis/subscriptions",
- "organizations_url": "https://api.github.com/users/antonis/orgs",
- "repos_url": "https://api.github.com/users/antonis/repos",
- "events_url": "https://api.github.com/users/antonis/events{/privacy}",
- "received_events_url": "https://api.github.com/users/antonis/received_events",
+ "url": "https://api.github.com/users/oandregal",
+ "html_url": "https://github.com/oandregal",
+ "followers_url": "https://api.github.com/users/oandregal/followers",
+ "following_url": "https://api.github.com/users/oandregal/following{/other_user}",
+ "gists_url": "https://api.github.com/users/oandregal/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/oandregal/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/oandregal/subscriptions",
+ "organizations_url": "https://api.github.com/users/oandregal/orgs",
+ "repos_url": "https://api.github.com/users/oandregal/repos",
+ "events_url": "https://api.github.com/users/oandregal/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/oandregal/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 531680823,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
- "name": "[Type] Bug",
- "color": "d93f0b",
+ "id": 567484057,
+ "node_id": "MDU6TGFiZWw1Njc0ODQwNTc=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Developer%20Documentation",
+ "name": "[Type] Developer Documentation",
+ "color": "bfd4f2",
+ "default": false,
+ "description": "Documentation for developers"
+ },
+ {
+ "id": 1663133831,
+ "node_id": "MDU6TGFiZWwxNjYzMTMzODMx",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Collaborative%20Editing",
+ "name": "[Feature] Collaborative Editing",
+ "color": "fbca04",
"default": false,
- "description": "An existing feature is broken."
+ "description": "Phase 3 of the Gutenberg roadmap around collaborative workflows"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "antonis",
- "id": 304044,
- "node_id": "MDQ6VXNlcjMwNDA0NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/304044?v=4",
+ "login": "oandregal",
+ "id": 583546,
+ "node_id": "MDQ6VXNlcjU4MzU0Ng==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/583546?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/antonis",
- "html_url": "https://github.com/antonis",
- "followers_url": "https://api.github.com/users/antonis/followers",
- "following_url": "https://api.github.com/users/antonis/following{/other_user}",
- "gists_url": "https://api.github.com/users/antonis/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/antonis/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/antonis/subscriptions",
- "organizations_url": "https://api.github.com/users/antonis/orgs",
- "repos_url": "https://api.github.com/users/antonis/repos",
- "events_url": "https://api.github.com/users/antonis/events{/privacy}",
- "received_events_url": "https://api.github.com/users/antonis/received_events",
+ "url": "https://api.github.com/users/oandregal",
+ "html_url": "https://github.com/oandregal",
+ "followers_url": "https://api.github.com/users/oandregal/followers",
+ "following_url": "https://api.github.com/users/oandregal/following{/other_user}",
+ "gists_url": "https://api.github.com/users/oandregal/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/oandregal/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/oandregal/subscriptions",
+ "organizations_url": "https://api.github.com/users/oandregal/orgs",
+ "repos_url": "https://api.github.com/users/oandregal/repos",
+ "events_url": "https://api.github.com/users/oandregal/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/oandregal/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "antonis",
- "id": 304044,
- "node_id": "MDQ6VXNlcjMwNDA0NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/304044?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/antonis",
- "html_url": "https://github.com/antonis",
- "followers_url": "https://api.github.com/users/antonis/followers",
- "following_url": "https://api.github.com/users/antonis/following{/other_user}",
- "gists_url": "https://api.github.com/users/antonis/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/antonis/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/antonis/subscriptions",
- "organizations_url": "https://api.github.com/users/antonis/orgs",
- "repos_url": "https://api.github.com/users/antonis/repos",
- "events_url": "https://api.github.com/users/antonis/events{/privacy}",
- "received_events_url": "https://api.github.com/users/antonis/received_events",
+ "login": "oandregal",
+ "id": 583546,
+ "node_id": "MDQ6VXNlcjU4MzU0Ng==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/583546?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/oandregal",
+ "html_url": "https://github.com/oandregal",
+ "followers_url": "https://api.github.com/users/oandregal/followers",
+ "following_url": "https://api.github.com/users/oandregal/following{/other_user}",
+ "gists_url": "https://api.github.com/users/oandregal/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/oandregal/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/oandregal/subscriptions",
+ "organizations_url": "https://api.github.com/users/oandregal/orgs",
+ "repos_url": "https://api.github.com/users/oandregal/repos",
+ "events_url": "https://api.github.com/users/oandregal/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/oandregal/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -4734,56 +5328,72 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 3,
- "created_at": "2021-08-03T12:55:37Z",
- "updated_at": "2021-08-04T12:13:20Z",
- "closed_at": "2021-08-04T06:27:50Z",
+ "comments": 2,
+ "created_at": "2023-09-29T11:23:46Z",
+ "updated_at": "2023-10-07T09:02:11Z",
+ "closed_at": "2023-10-03T11:12:15Z",
"author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33847",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33847",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33847.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33847.patch"
- },
- "body": "## Description\r\nThis PR handles an incoming breakage after the merge of https://github.com/WordPress/gutenberg/pull/33359 making the `Wide width` and `Full width` alignment options unavailable. To achieve this the `supportsLayout` setting introduced in https://github.com/WordPress/gutenberg/pull/29335 is set by default to `false` on mobile. \r\n\r\n## How has this been tested?\r\n1. Run the app using metro\r\n2. Create a new Post/Page\r\n3. Add an image block and choose an image\r\n4. Tap on the alignment options at the bottom toolbar\r\n5. **Verify** that the `Wide width` and `Full width` options are available\r\n\r\n## Screenshots\r\n\r\n|Before|After|\r\n|---|---|\r\n|![IMG_20BE77E7CBA5-1](https://user-images.githubusercontent.com/304044/128035883-b043290f-1bb4-4e28-8550-90d620333695.jpeg)|![IMG_675ABFF98181-1](https://user-images.githubusercontent.com/304044/128035895-d2706b23-f164-40f5-9b30-7006ae270917.jpeg)|\r\n\r\n## Types of changes\r\nBug fix\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [x] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54932",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54932",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54932.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54932.patch",
+ "merged_at": "2023-10-03T11:12:15Z"
+ },
+ "body": "Related https://github.com/WordPress/gutenberg/issues/52593\r\n\r\nAdd some notes to document how the Real-Time collaboration experiment works at the moment. This is a minimal and ongoing effort, to have some low-level notes to help navigate the code, complementing what has already been shared in make/core and the tracking issue.",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54932/reactions",
+ "total_count": 1,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 1,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54932/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33845",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54931",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33845/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33845/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33845/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33845",
- "id": 959073850,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzAyMjQzOTAy",
- "number": 33845,
- "title": "[RNMobile] Fix BottomSheet.SubSheet/TextInput Conflict",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54931/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54931/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54931/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54931",
+ "id": 1918988447,
+ "node_id": "PR_kwDOBNHdeM5bhb3_",
+ "number": 54931,
+ "title": "Reverting addition of `aria-selected` style hook in `Button`",
"user": {
- "login": "SiobhyB",
- "id": 2998162,
- "node_id": "MDQ6VXNlcjI5OTgxNjI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/2998162?v=4",
+ "login": "andrewhayward",
+ "id": 159848,
+ "node_id": "MDQ6VXNlcjE1OTg0OA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/159848?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/SiobhyB",
- "html_url": "https://github.com/SiobhyB",
- "followers_url": "https://api.github.com/users/SiobhyB/followers",
- "following_url": "https://api.github.com/users/SiobhyB/following{/other_user}",
- "gists_url": "https://api.github.com/users/SiobhyB/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/SiobhyB/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/SiobhyB/subscriptions",
- "organizations_url": "https://api.github.com/users/SiobhyB/orgs",
- "repos_url": "https://api.github.com/users/SiobhyB/repos",
- "events_url": "https://api.github.com/users/SiobhyB/events{/privacy}",
- "received_events_url": "https://api.github.com/users/SiobhyB/received_events",
+ "url": "https://api.github.com/users/andrewhayward",
+ "html_url": "https://github.com/andrewhayward",
+ "followers_url": "https://api.github.com/users/andrewhayward/followers",
+ "following_url": "https://api.github.com/users/andrewhayward/following{/other_user}",
+ "gists_url": "https://api.github.com/users/andrewhayward/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/andrewhayward/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/andrewhayward/subscriptions",
+ "organizations_url": "https://api.github.com/users/andrewhayward/orgs",
+ "repos_url": "https://api.github.com/users/andrewhayward/repos",
+ "events_url": "https://api.github.com/users/andrewhayward/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/andrewhayward/received_events",
"type": "User",
"site_admin": false
},
@@ -4795,79 +5405,70 @@
"name": "[Type] Bug",
"color": "d93f0b",
"default": false,
- "description": "An existing feature is broken."
- },
- {
- "id": 982506020,
- "node_id": "MDU6TGFiZWw5ODI1MDYwMjA=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20i.e.%20Android%20or%20iOS",
- "name": "Mobile App - i.e. Android or iOS",
- "color": "a3ef7a",
- "default": false,
- "description": "Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)"
+ "description": "An existing feature does not function as intended"
},
{
- "id": 1101518360,
- "node_id": "MDU6TGFiZWwxMTAxNTE4MzYw",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Image",
- "name": "[Block] Image",
- "color": "6767e5",
+ "id": 997392122,
+ "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
+ "name": "[Package] Components",
+ "color": "ed2572",
"default": false,
- "description": ""
+ "description": "/packages/components"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "SiobhyB",
- "id": 2998162,
- "node_id": "MDQ6VXNlcjI5OTgxNjI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/2998162?v=4",
+ "login": "andrewhayward",
+ "id": 159848,
+ "node_id": "MDQ6VXNlcjE1OTg0OA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/159848?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/SiobhyB",
- "html_url": "https://github.com/SiobhyB",
- "followers_url": "https://api.github.com/users/SiobhyB/followers",
- "following_url": "https://api.github.com/users/SiobhyB/following{/other_user}",
- "gists_url": "https://api.github.com/users/SiobhyB/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/SiobhyB/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/SiobhyB/subscriptions",
- "organizations_url": "https://api.github.com/users/SiobhyB/orgs",
- "repos_url": "https://api.github.com/users/SiobhyB/repos",
- "events_url": "https://api.github.com/users/SiobhyB/events{/privacy}",
- "received_events_url": "https://api.github.com/users/SiobhyB/received_events",
+ "url": "https://api.github.com/users/andrewhayward",
+ "html_url": "https://github.com/andrewhayward",
+ "followers_url": "https://api.github.com/users/andrewhayward/followers",
+ "following_url": "https://api.github.com/users/andrewhayward/following{/other_user}",
+ "gists_url": "https://api.github.com/users/andrewhayward/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/andrewhayward/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/andrewhayward/subscriptions",
+ "organizations_url": "https://api.github.com/users/andrewhayward/orgs",
+ "repos_url": "https://api.github.com/users/andrewhayward/repos",
+ "events_url": "https://api.github.com/users/andrewhayward/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/andrewhayward/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "SiobhyB",
- "id": 2998162,
- "node_id": "MDQ6VXNlcjI5OTgxNjI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/2998162?v=4",
+ "login": "andrewhayward",
+ "id": 159848,
+ "node_id": "MDQ6VXNlcjE1OTg0OA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/159848?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/SiobhyB",
- "html_url": "https://github.com/SiobhyB",
- "followers_url": "https://api.github.com/users/SiobhyB/followers",
- "following_url": "https://api.github.com/users/SiobhyB/following{/other_user}",
- "gists_url": "https://api.github.com/users/SiobhyB/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/SiobhyB/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/SiobhyB/subscriptions",
- "organizations_url": "https://api.github.com/users/SiobhyB/orgs",
- "repos_url": "https://api.github.com/users/SiobhyB/repos",
- "events_url": "https://api.github.com/users/SiobhyB/events{/privacy}",
- "received_events_url": "https://api.github.com/users/SiobhyB/received_events",
+ "url": "https://api.github.com/users/andrewhayward",
+ "html_url": "https://github.com/andrewhayward",
+ "followers_url": "https://api.github.com/users/andrewhayward/followers",
+ "following_url": "https://api.github.com/users/andrewhayward/following{/other_user}",
+ "gists_url": "https://api.github.com/users/andrewhayward/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/andrewhayward/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/andrewhayward/subscriptions",
+ "organizations_url": "https://api.github.com/users/andrewhayward/orgs",
+ "repos_url": "https://api.github.com/users/andrewhayward/repos",
+ "events_url": "https://api.github.com/users/andrewhayward/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/andrewhayward/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -4890,131 +5491,147 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 3,
- "created_at": "2021-08-03T12:37:52Z",
- "updated_at": "2021-08-03T18:29:32Z",
- "closed_at": "2021-08-03T18:29:00Z",
+ "comments": 2,
+ "created_at": "2023-09-29T10:08:57Z",
+ "updated_at": "2023-09-29T11:32:40Z",
+ "closed_at": "2023-09-29T11:32:15Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33845",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33845",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33845.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33845.patch"
- },
- "body": "Fixes: https://github.com/WordPress/gutenberg/issues/33828\r\n\r\n`gutenberg-mobile:` https://github.com/wordpress-mobile/gutenberg-mobile/pull/3784\r\n\r\n## Description\r\n\r\nAs outlined in https://github.com/WordPress/gutenberg/issues/33828, the text editor for adding alt text to an image (accessed from the image block's settings) isn't currently working as expected. At the time of writing, the keyboard is immediately dismissed with each keystroke, making it extremely difficult, bordering on impossible, to add alt text to an image.\r\n\r\n[BottomSheetTextControl](https://github.com/WordPress/gutenberg/tree/trunk/packages/components/src/mobile/bottom-sheet-text-control) is the component behind the image block's alt text settings and is built on [the BottomSheet.SubSheet component](https://github.com/WordPress/gutenberg/blob/trunk/packages/components/src/mobile/bottom-sheet/sub-sheet/index.native.js). There were changes to `BottomSheet.SubSheet` in https://github.com/WordPress/gutenberg/pull/33240/commits/d650b4f1df6e1699c7c45819a8afd4a2ec39a08e that led to a conflict with the `TextInput` component in `BottomSheetTextControl`, which brought this issue to the surface.\r\n\r\nWith this PR, I have refactored the changes in https://github.com/WordPress/gutenberg/pull/33240/commits/d650b4f1df6e1699c7c45819a8afd4a2ec39a08e in a way that enables the alt text entry to work as expected. \r\n\r\n## How has this been tested?\r\n\r\n### Test Case 1: Alt Text Settings\r\n\r\n\r\nThe following steps outline an approach to test that the original bug is fixed with this PR. \r\n\r\n1. Navigate to a new post then add an image block or tap on an existing one.\r\n2. Access the image block's settings by tapping the cog/gear icon. \r\n3. Tap **Alt Text** and confirm that a new sub sheet opens with a text editor.\r\n4. Enter a few lines into the text editor and confirm that it no longer closes with each keystroke.\r\n \r\n\r\n### Test Case 2: Help Panel (Production Only)\r\n\r\n\r\nAs part of our testing, we should also verify that the new changes don't bring any unexpected side effects to other places where the component's used, such as the Help panel. \r\n\r\n* Run the demo app.\r\n* Open the menu on iOS by clicking the overflow menu icon in the ActionBar or by shaking the device on Android.\r\n* Tap **Help**. The main help topics bottom sheet should be displayed.\r\n* Tap one of the help topics and verify that the new sheet displays as expected.\r\n\r\n \r\n\r\n### Test Case 3: Full Screen (Code Changes Required)\r\n\r\n\r\nLastly, we'll need to double-check that the \"isFullScreen\" parameter works as expected following the refactor. This will require code changes. \r\n\r\n* Find a component in the app where [the BottomSheet.SubSheet component](https://github.com/WordPress/gutenberg/blob/trunk/packages/components/src/mobile/bottom-sheet/sub-sheet/index.native.js) is being utilised, such as [the BottomSheetTextControl component](https://github.com/WordPress/gutenberg/blob/trunk/packages/components/src/mobile/bottom-sheet-text-control/index.native.js).\r\n* Add `isFullScreen={ true }` to the list of parameters being accepted by `BottomSheet.SubSheet`.\r\n* Navigate to the area in the app where the edited component is being used and verify that it's rendered as a sheet that takes up the full screen.\r\n \r\n\r\n## Screenshots \r\n\r\nhttps://user-images.githubusercontent.com/2998162/128023488-cb4a35b3-34eb-4478-acf9-9e8835fc1ab3.mov\r\n\r\n## Types of changes\r\n\r\nBug fix (non-breaking change which fixes an issue), with the following high-level rundown of the main code changes:\r\n\r\n* The `setIsFullScreen( isFullScreen )` method was moved to [a standalone `useEffect` hook](https://github.com/WordPress/gutenberg/pull/33845/files#diff-d16d37d09ff59dce57c087e978ac5536503cb1642ec2b0ecdba9536f5c695b95R26), which fires only when [the values of either `showSheet` or `isFullScreen` change](https://github.com/WordPress/gutenberg/pull/33845/files#diff-d16d37d09ff59dce57c087e978ac5536503cb1642ec2b0ecdba9536f5c695b95R30).\r\n* Moving the method to the standalone hook meant [the BottomSheetScreen component could be removed](https://github.com/WordPress/gutenberg/pull/33845/files#diff-d16d37d09ff59dce57c087e978ac5536503cb1642ec2b0ecdba9536f5c695b95L20). It appeared to be the addition of this component that was causing a conflict with the `TextInput` component.\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [x] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54931",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54931",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54931.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54931.patch",
+ "merged_at": "2023-09-29T11:32:15Z"
+ },
+ "body": "## What?\r\nThis PR removes the addition of `aria-selected` as a styling hook from `Button`.\r\n\r\n## Why?\r\n[As pointed out](https://github.com/WordPress/gutenberg/pull/54903#issuecomment-1740537243) by @madhusudhand, #54903 inadvertently changed how tabs are rendered.\r\n\r\n## How?\r\nThe `[aria-selected=\"true\"]` selector has been removed from `Button`.\r\n\r\n## Testing Instructions\r\n\r\n1. Under global styles -> typography, click on `Aa` or any font to invoke the font library modal.\r\n2. Observe that the active tab no longer has a black background.\r\n\r\n## Screenshots\r\n\r\n### Before\r\n\r\n![Screenshot of tabs, the selected one having an unexpected dark background.](https://github.com/WordPress/gutenberg/assets/159848/780d5362-f023-45d8-8815-28d16f2a95e3)\r\n\r\n### After\r\n\r\n![Screenshot of tabs, the selected one having no background.](https://github.com/WordPress/gutenberg/assets/159848/237ec917-aa3b-45f9-a18c-da03a0b952f5)\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54931/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54931/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33844",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54928",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33844/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33844/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33844/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33844",
- "id": 959026920,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzAyMjAzOTQ5",
- "number": 33844,
- "title": "Global Styles: Fix Global Styles transient key clash",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54928/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54928/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54928/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54928",
+ "id": 1918907902,
+ "node_id": "PR_kwDOBNHdeM5bhKOu",
+ "number": 54928,
+ "title": "[RNMobile] Set native extension to media upload constant file",
"user": {
- "login": "scruffian",
- "id": 275961,
- "node_id": "MDQ6VXNlcjI3NTk2MQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/275961?v=4",
+ "login": "fluiddot",
+ "id": 14905380,
+ "node_id": "MDQ6VXNlcjE0OTA1Mzgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14905380?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/scruffian",
- "html_url": "https://github.com/scruffian",
- "followers_url": "https://api.github.com/users/scruffian/followers",
- "following_url": "https://api.github.com/users/scruffian/following{/other_user}",
- "gists_url": "https://api.github.com/users/scruffian/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/scruffian/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/scruffian/subscriptions",
- "organizations_url": "https://api.github.com/users/scruffian/orgs",
- "repos_url": "https://api.github.com/users/scruffian/repos",
- "events_url": "https://api.github.com/users/scruffian/events{/privacy}",
- "received_events_url": "https://api.github.com/users/scruffian/received_events",
+ "url": "https://api.github.com/users/fluiddot",
+ "html_url": "https://github.com/fluiddot",
+ "followers_url": "https://api.github.com/users/fluiddot/followers",
+ "following_url": "https://api.github.com/users/fluiddot/following{/other_user}",
+ "gists_url": "https://api.github.com/users/fluiddot/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/fluiddot/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/fluiddot/subscriptions",
+ "organizations_url": "https://api.github.com/users/fluiddot/orgs",
+ "repos_url": "https://api.github.com/users/fluiddot/repos",
+ "events_url": "https://api.github.com/users/fluiddot/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/fluiddot/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 531680823,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
- "name": "[Type] Bug",
- "color": "d93f0b",
+ "id": 531680825,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
+ "name": "[Type] Enhancement",
+ "color": "FEF2C0",
"default": false,
- "description": "An existing feature is broken."
+ "description": "A suggestion for improvement."
},
{
- "id": 1800807983,
- "node_id": "MDU6TGFiZWwxODAwODA3OTgz",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Global%20Styles",
- "name": "Global Styles",
- "color": "2100b7",
+ "id": 982506020,
+ "node_id": "MDU6TGFiZWw5ODI1MDYwMjA=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20i.e.%20Android%20or%20iOS",
+ "name": "Mobile App - i.e. Android or iOS",
+ "color": "a3ef7a",
"default": false,
- "description": ""
+ "description": "Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "scruffian",
- "id": 275961,
- "node_id": "MDQ6VXNlcjI3NTk2MQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/275961?v=4",
+ "login": "fluiddot",
+ "id": 14905380,
+ "node_id": "MDQ6VXNlcjE0OTA1Mzgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14905380?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/scruffian",
- "html_url": "https://github.com/scruffian",
- "followers_url": "https://api.github.com/users/scruffian/followers",
- "following_url": "https://api.github.com/users/scruffian/following{/other_user}",
- "gists_url": "https://api.github.com/users/scruffian/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/scruffian/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/scruffian/subscriptions",
- "organizations_url": "https://api.github.com/users/scruffian/orgs",
- "repos_url": "https://api.github.com/users/scruffian/repos",
- "events_url": "https://api.github.com/users/scruffian/events{/privacy}",
- "received_events_url": "https://api.github.com/users/scruffian/received_events",
+ "url": "https://api.github.com/users/fluiddot",
+ "html_url": "https://github.com/fluiddot",
+ "followers_url": "https://api.github.com/users/fluiddot/followers",
+ "following_url": "https://api.github.com/users/fluiddot/following{/other_user}",
+ "gists_url": "https://api.github.com/users/fluiddot/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/fluiddot/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/fluiddot/subscriptions",
+ "organizations_url": "https://api.github.com/users/fluiddot/orgs",
+ "repos_url": "https://api.github.com/users/fluiddot/repos",
+ "events_url": "https://api.github.com/users/fluiddot/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/fluiddot/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "scruffian",
- "id": 275961,
- "node_id": "MDQ6VXNlcjI3NTk2MQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/275961?v=4",
+ "login": "fluiddot",
+ "id": 14905380,
+ "node_id": "MDQ6VXNlcjE0OTA1Mzgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14905380?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/scruffian",
- "html_url": "https://github.com/scruffian",
- "followers_url": "https://api.github.com/users/scruffian/followers",
- "following_url": "https://api.github.com/users/scruffian/following{/other_user}",
- "gists_url": "https://api.github.com/users/scruffian/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/scruffian/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/scruffian/subscriptions",
- "organizations_url": "https://api.github.com/users/scruffian/orgs",
- "repos_url": "https://api.github.com/users/scruffian/repos",
- "events_url": "https://api.github.com/users/scruffian/events{/privacy}",
- "received_events_url": "https://api.github.com/users/scruffian/received_events",
+ "url": "https://api.github.com/users/fluiddot",
+ "html_url": "https://github.com/fluiddot",
+ "followers_url": "https://api.github.com/users/fluiddot/followers",
+ "following_url": "https://api.github.com/users/fluiddot/following{/other_user}",
+ "gists_url": "https://api.github.com/users/fluiddot/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/fluiddot/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/fluiddot/subscriptions",
+ "organizations_url": "https://api.github.com/users/fluiddot/orgs",
+ "repos_url": "https://api.github.com/users/fluiddot/repos",
+ "events_url": "https://api.github.com/users/fluiddot/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/fluiddot/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -5037,56 +5654,72 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
"comments": 3,
- "created_at": "2021-08-03T11:39:19Z",
- "updated_at": "2021-08-06T09:42:45Z",
- "closed_at": "2021-08-03T17:01:45Z",
+ "created_at": "2023-09-29T09:19:06Z",
+ "updated_at": "2023-09-29T16:12:48Z",
+ "closed_at": "2023-09-29T16:12:25Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33844",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33844",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33844.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33844.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\nNow that we have a version of Global Styles in core, when you run the Gutenberg plugin activated, you're running a different version of Global Styles. However both versions currently use the same cache key. This means that once the core version of Global Styles has loaded and been cached, the Gutenberg version won't be generated since it will fall back to the same key.\r\n\r\nThis proposes that we introduce a new cache key for Global Styles in Gutenberg (`gutenberg_global_styles`) so that if you're running the Gutenberg plugin you will get the Gutenberg version of Global Styles.\r\n\r\nFixes https://github.com/WordPress/gutenberg/issues/33681\r\n\r\n## How has this been tested?\r\nTested changing fonts in Blockbase.\r\n\r\n## Screenshots \r\n\r\n## Types of changes\r\nBug fix (non-breaking change which fixes an issue)\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [ ] My code has proper inline documentation. \r\n- [ ] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54928",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54928",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54928.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54928.patch",
+ "merged_at": "2023-09-29T16:12:25Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\n\r\n~~Move the test-only media upload constants to the test file where they are being used.~~\r\n\r\nFollowing this suggestion, the media upload constants file now has the native extension and the option constants are being used in the `MediaUpload` component.\r\n\r\n## Why?\r\n\r\n\r\nThis addresses an issue when bundling Gutenberg Mobile related to missing i18n localizations ([reference](https://github.com/wordpress-mobile/gutenberg-mobile/pull/6243#discussion_r1339784529)).\r\n\r\n## How?\r\n\r\n\r\n~~The constants related to media options being used in `packages/block-editor/src/components/media-upload/test/index.native.js` have been moved from the constants file (`packages/block-editor/src/components/media-upload/constants.js`) to the test.~~\r\n\r\n* The extension of `packages/block-editor/src/components/media-upload/constants.js` file has changed to `native.js`.\r\n* `MediaUpload` uses the media options constants to define the media sources displayed in the \"Choose media\" picker.\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n### CI jobs\r\n* Check all CI jobs pass.\r\n\r\n### Media options\r\n1. Open/create a post.\r\n2. Add an Image block.\r\n3. Observe that the block presents the following options:\r\n - Choose from device\r\n - Take a Photo\r\n - WordPress Media Library\r\n - Insert from URL\r\n - Free Photo Library\r\n - Free GIF Library\r\n - Other Apps (only on iOS)\r\n4. Add a Video block.\r\n5. Observe that the block presents the following options:\r\n - Choose from device\r\n - Take a Video\r\n - WordPress Media Library\r\n - Insert from URL\r\n - Other Apps (only on iOS)\r\n\r\n### Testing Instructions for Keyboard\r\n\r\nN/A\r\n\r\n## Screenshots or screencast \r\nN/A",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54928/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54928/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33843",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54927",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33843/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33843/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33843/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33843",
- "id": 959014817,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzAyMTkzNzk2",
- "number": 33843,
- "title": "Navigation Editor: Avoid React warning when creating a new menu",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54927/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54927/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54927/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54927",
+ "id": 1918891324,
+ "node_id": "PR_kwDOBNHdeM5bhGn_",
+ "number": 54927,
+ "title": "[RNMobile] HTML mode: Add dark mode color to post title",
"user": {
- "login": "Mamaduka",
- "id": 240569,
- "node_id": "MDQ6VXNlcjI0MDU2OQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "login": "fluiddot",
+ "id": 14905380,
+ "node_id": "MDQ6VXNlcjE0OTA1Mzgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14905380?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/Mamaduka",
- "html_url": "https://github.com/Mamaduka",
- "followers_url": "https://api.github.com/users/Mamaduka/followers",
- "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
- "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
- "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
- "repos_url": "https://api.github.com/users/Mamaduka/repos",
- "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "url": "https://api.github.com/users/fluiddot",
+ "html_url": "https://github.com/fluiddot",
+ "followers_url": "https://api.github.com/users/fluiddot/followers",
+ "following_url": "https://api.github.com/users/fluiddot/following{/other_user}",
+ "gists_url": "https://api.github.com/users/fluiddot/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/fluiddot/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/fluiddot/subscriptions",
+ "organizations_url": "https://api.github.com/users/fluiddot/orgs",
+ "repos_url": "https://api.github.com/users/fluiddot/repos",
+ "events_url": "https://api.github.com/users/fluiddot/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/fluiddot/received_events",
"type": "User",
"site_admin": false
},
@@ -5098,61 +5731,70 @@
"name": "[Type] Bug",
"color": "d93f0b",
"default": false,
- "description": "An existing feature is broken."
+ "description": "An existing feature does not function as intended"
+ },
+ {
+ "id": 982506020,
+ "node_id": "MDU6TGFiZWw5ODI1MDYwMjA=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20i.e.%20Android%20or%20iOS",
+ "name": "Mobile App - i.e. Android or iOS",
+ "color": "a3ef7a",
+ "default": false,
+ "description": "Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "Mamaduka",
- "id": 240569,
- "node_id": "MDQ6VXNlcjI0MDU2OQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "login": "fluiddot",
+ "id": 14905380,
+ "node_id": "MDQ6VXNlcjE0OTA1Mzgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14905380?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/Mamaduka",
- "html_url": "https://github.com/Mamaduka",
- "followers_url": "https://api.github.com/users/Mamaduka/followers",
- "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
- "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
- "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
- "repos_url": "https://api.github.com/users/Mamaduka/repos",
- "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "url": "https://api.github.com/users/fluiddot",
+ "html_url": "https://github.com/fluiddot",
+ "followers_url": "https://api.github.com/users/fluiddot/followers",
+ "following_url": "https://api.github.com/users/fluiddot/following{/other_user}",
+ "gists_url": "https://api.github.com/users/fluiddot/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/fluiddot/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/fluiddot/subscriptions",
+ "organizations_url": "https://api.github.com/users/fluiddot/orgs",
+ "repos_url": "https://api.github.com/users/fluiddot/repos",
+ "events_url": "https://api.github.com/users/fluiddot/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/fluiddot/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "Mamaduka",
- "id": 240569,
- "node_id": "MDQ6VXNlcjI0MDU2OQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "login": "fluiddot",
+ "id": 14905380,
+ "node_id": "MDQ6VXNlcjE0OTA1Mzgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14905380?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/Mamaduka",
- "html_url": "https://github.com/Mamaduka",
- "followers_url": "https://api.github.com/users/Mamaduka/followers",
- "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
- "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
- "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
- "repos_url": "https://api.github.com/users/Mamaduka/repos",
- "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "url": "https://api.github.com/users/fluiddot",
+ "html_url": "https://github.com/fluiddot",
+ "followers_url": "https://api.github.com/users/fluiddot/followers",
+ "following_url": "https://api.github.com/users/fluiddot/following{/other_user}",
+ "gists_url": "https://api.github.com/users/fluiddot/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/fluiddot/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/fluiddot/subscriptions",
+ "organizations_url": "https://api.github.com/users/fluiddot/orgs",
+ "repos_url": "https://api.github.com/users/fluiddot/repos",
+ "events_url": "https://api.github.com/users/fluiddot/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/fluiddot/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -5175,122 +5817,98 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 4,
- "created_at": "2021-08-03T11:24:09Z",
- "updated_at": "2021-08-04T08:47:11Z",
- "closed_at": "2021-08-04T04:54:22Z",
- "author_association": "MEMBER",
+ "comments": 1,
+ "created_at": "2023-09-29T09:07:42Z",
+ "updated_at": "2023-09-29T10:52:06Z",
+ "closed_at": "2023-09-29T10:51:38Z",
+ "author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33843",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33843",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33843.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33843.patch"
- },
- "body": "## Description\r\nCurrently, when creating a menu, there's React warning about state updates on unmounted components.\r\n\r\nPR updates `createMenu` logic to set state right after the `saveMenu` action is dispatched. \r\n\r\n## How has this been tested?\r\n1. Go to the experimental navigation screen.\r\n2. Click on \"Switch Menu\" in the top right corner.\r\n3. Choose the\"Create a new menu\" option.\r\n4. After creating the menu, there shouldn't be an error in the browser console.\r\n\r\n## Screenshots \r\n![CleanShot 2021-08-03 at 15 17 52](https://user-images.githubusercontent.com/240569/128007292-91e71416-14e7-40e3-94c4-461ad411f0b2.png)\r\n\r\n## Types of changes\r\nBugfix\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54927",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54927",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54927.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54927.patch",
+ "merged_at": "2023-09-29T10:51:38Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\n\r\nIn HTML mode and with dark mode enabled, the post title might be not visible due to using the same color as the background. This issue only happens when using themes that don't provide global styles.\r\n\r\n## Why?\r\n\r\n\r\nThis issue affects negatively the experience when editing in HTML mode.\r\n\r\n## How?\r\n\r\n\r\nAdds a style to be used in the title element when in dark mode.\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n1. In a browser, navigate to the Theme page of a site.\r\n2. Set a theme that doesn't provide global styles (e.g. Seedlet theme).\r\n3. In the app, open/create a post.\r\n4. Set a post title.\r\n5. Tap on the `...` button and \"Switch to HTML mode\".\r\n6. Observe that the post title is visible.\r\n7. Enable dark mode in the device.\r\n8. Observe that the post title is displayed with a different color and is visible.\r\n\r\n### Testing Instructions for Keyboard\r\n\r\nN/A\r\n\r\n## Screenshots or screencast \r\n \r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54927/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54927/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33842",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54926",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33842/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33842/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33842/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33842",
- "id": 959008282,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzAyMTg4MjY0",
- "number": 33842,
- "title": "Polish the focus style for the segmented control.",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54926/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54926/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54926/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54926",
+ "id": 1918859929,
+ "node_id": "PR_kwDOBNHdeM5bg_yp",
+ "number": 54926,
+ "title": "Revert \"Fix warning when a template calls a template area twice\"",
"user": {
- "login": "jasmussen",
- "id": 1204802,
- "node_id": "MDQ6VXNlcjEyMDQ4MDI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1204802?v=4",
+ "login": "scruffian",
+ "id": 275961,
+ "node_id": "MDQ6VXNlcjI3NTk2MQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/275961?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/jasmussen",
- "html_url": "https://github.com/jasmussen",
- "followers_url": "https://api.github.com/users/jasmussen/followers",
- "following_url": "https://api.github.com/users/jasmussen/following{/other_user}",
- "gists_url": "https://api.github.com/users/jasmussen/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/jasmussen/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/jasmussen/subscriptions",
- "organizations_url": "https://api.github.com/users/jasmussen/orgs",
- "repos_url": "https://api.github.com/users/jasmussen/repos",
- "events_url": "https://api.github.com/users/jasmussen/events{/privacy}",
- "received_events_url": "https://api.github.com/users/jasmussen/received_events",
+ "url": "https://api.github.com/users/scruffian",
+ "html_url": "https://github.com/scruffian",
+ "followers_url": "https://api.github.com/users/scruffian/followers",
+ "following_url": "https://api.github.com/users/scruffian/following{/other_user}",
+ "gists_url": "https://api.github.com/users/scruffian/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/scruffian/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/scruffian/subscriptions",
+ "organizations_url": "https://api.github.com/users/scruffian/orgs",
+ "repos_url": "https://api.github.com/users/scruffian/repos",
+ "events_url": "https://api.github.com/users/scruffian/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/scruffian/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 997392122,
- "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
- "name": "[Package] Components",
- "color": "ed2572",
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
"default": false,
- "description": "/packages/components"
+ "description": "An existing feature does not function as intended"
}
],
"state": "closed",
"locked": false,
- "assignee": {
- "login": "jasmussen",
- "id": 1204802,
- "node_id": "MDQ6VXNlcjEyMDQ4MDI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1204802?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/jasmussen",
- "html_url": "https://github.com/jasmussen",
- "followers_url": "https://api.github.com/users/jasmussen/followers",
- "following_url": "https://api.github.com/users/jasmussen/following{/other_user}",
- "gists_url": "https://api.github.com/users/jasmussen/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/jasmussen/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/jasmussen/subscriptions",
- "organizations_url": "https://api.github.com/users/jasmussen/orgs",
- "repos_url": "https://api.github.com/users/jasmussen/repos",
- "events_url": "https://api.github.com/users/jasmussen/events{/privacy}",
- "received_events_url": "https://api.github.com/users/jasmussen/received_events",
- "type": "User",
- "site_admin": false
- },
- "assignees": [
- {
- "login": "jasmussen",
- "id": 1204802,
- "node_id": "MDQ6VXNlcjEyMDQ4MDI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1204802?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/jasmussen",
- "html_url": "https://github.com/jasmussen",
- "followers_url": "https://api.github.com/users/jasmussen/followers",
- "following_url": "https://api.github.com/users/jasmussen/following{/other_user}",
- "gists_url": "https://api.github.com/users/jasmussen/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/jasmussen/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/jasmussen/subscriptions",
- "organizations_url": "https://api.github.com/users/jasmussen/orgs",
- "repos_url": "https://api.github.com/users/jasmussen/repos",
- "events_url": "https://api.github.com/users/jasmussen/events{/privacy}",
- "received_events_url": "https://api.github.com/users/jasmussen/received_events",
- "type": "User",
- "site_admin": false
- }
- ],
+ "assignee": null,
+ "assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -5313,131 +5931,147 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 3,
- "created_at": "2021-08-03T11:16:34Z",
- "updated_at": "2021-08-03T14:16:40Z",
- "closed_at": "2021-08-03T14:16:07Z",
+ "comments": 1,
+ "created_at": "2023-09-29T08:46:38Z",
+ "updated_at": "2023-10-04T21:57:42Z",
+ "closed_at": "2023-09-29T10:52:57Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33842",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33842",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33842.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33842.patch"
- },
- "body": "## Description\r\n\r\nFollowup to feedback in https://github.com/WordPress/gutenberg/pull/31937#issuecomment-880153741, this PR polishes the focus style for the new Segmented Control. Before:\r\n\r\n![before](https://user-images.githubusercontent.com/1204802/128005511-81a68f09-ddf4-4870-b5ce-3889d915ca86.gif)\r\n\r\nAfter:\r\n\r\n![after](https://user-images.githubusercontent.com/1204802/128005531-526c2de3-53fe-4c8c-966c-a85be69064c9.gif)\r\n\r\nThe focus style for buttons, unputs and selected blocks across the block editor is 1.5px blue focusring, which changes the shape from 1px inputs or controls, or sits outset of solid blue primary buttons.\r\n\r\nIn this case, the usage of focus-within feels correct, as when you tab to the segmented control, pressing tab again sets focus on the next control, not the next option inside; you have to use the arrow keys to change the property inside.\r\n\r\nNote: This PR is a draft because it needs a bit more work. Specifically there appears to be a bug in how the `${ CONFIG.controlBoxShadowFocus };` variable is output. It generates the following incorrect box shadow, which then doesn't render at all:\r\n\r\n```\r\nbox-shadow: 0 0 0,0.5px,var( --wp-admin-theme-color, #00669b);\r\n```\r\n\r\nThe two commas are wrong. Here's how it should be:\r\n\r\n```\r\nbox-shadow: 0 0 0 0.5px var( --wp-admin-theme-color, #00669b);\r\n```\r\n\r\nThis PR simply outputs the corrected value directly, but ideally we find a way to output the variable correctly before we land this. If you know how to, please feel free to push directly to this branch.\r\n\r\n## How has this been tested?\r\n\r\nInsert a \"Post Featured Image\" block and focus the segmented control in the inspector.\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [x] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54926",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54926",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54926.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54926.patch",
+ "merged_at": "2023-09-29T10:52:57Z"
+ },
+ "body": "Reverts WordPress/gutenberg#54861",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54926/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54926/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33840",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54923",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33840/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33840/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33840/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33840",
- "id": 958800394,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzAyMDE1NzM0",
- "number": 33840,
- "title": "Editor: Safer isPreviewingPost check",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54923/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54923/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54923/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54923",
+ "id": 1918555635,
+ "node_id": "PR_kwDOBNHdeM5bf9ek",
+ "number": 54923,
+ "title": "Patterns: Include pattern category in main e2e critical path test",
"user": {
- "login": "Mamaduka",
- "id": 240569,
- "node_id": "MDQ6VXNlcjI0MDU2OQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "login": "glendaviesnz",
+ "id": 3629020,
+ "node_id": "MDQ6VXNlcjM2MjkwMjA=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/3629020?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/Mamaduka",
- "html_url": "https://github.com/Mamaduka",
- "followers_url": "https://api.github.com/users/Mamaduka/followers",
- "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
- "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
- "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
- "repos_url": "https://api.github.com/users/Mamaduka/repos",
- "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "url": "https://api.github.com/users/glendaviesnz",
+ "html_url": "https://github.com/glendaviesnz",
+ "followers_url": "https://api.github.com/users/glendaviesnz/followers",
+ "following_url": "https://api.github.com/users/glendaviesnz/following{/other_user}",
+ "gists_url": "https://api.github.com/users/glendaviesnz/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/glendaviesnz/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/glendaviesnz/subscriptions",
+ "organizations_url": "https://api.github.com/users/glendaviesnz/orgs",
+ "repos_url": "https://api.github.com/users/glendaviesnz/repos",
+ "events_url": "https://api.github.com/users/glendaviesnz/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/glendaviesnz/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 531680823,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
- "name": "[Type] Bug",
- "color": "d93f0b",
+ "id": 930001208,
+ "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
+ "name": "[Type] Code Quality",
+ "color": "e5e04b",
"default": false,
- "description": "An existing feature is broken."
+ "description": "Issues or PRs that relate to code quality"
},
{
- "id": 1013395453,
- "node_id": "MDU6TGFiZWwxMDEzMzk1NDUz",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Editor",
- "name": "[Package] Editor",
- "color": "ed2572",
+ "id": 1882657161,
+ "node_id": "MDU6TGFiZWwxODgyNjU3MTYx",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Patterns",
+ "name": "[Feature] Patterns",
+ "color": "fbca04",
"default": false,
- "description": "/packages/editor"
+ "description": "A collection of blocks that can be synced (previously reusable blocks) or unsynced"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "Mamaduka",
- "id": 240569,
- "node_id": "MDQ6VXNlcjI0MDU2OQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "login": "glendaviesnz",
+ "id": 3629020,
+ "node_id": "MDQ6VXNlcjM2MjkwMjA=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/3629020?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/Mamaduka",
- "html_url": "https://github.com/Mamaduka",
- "followers_url": "https://api.github.com/users/Mamaduka/followers",
- "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
- "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
- "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
- "repos_url": "https://api.github.com/users/Mamaduka/repos",
- "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "url": "https://api.github.com/users/glendaviesnz",
+ "html_url": "https://github.com/glendaviesnz",
+ "followers_url": "https://api.github.com/users/glendaviesnz/followers",
+ "following_url": "https://api.github.com/users/glendaviesnz/following{/other_user}",
+ "gists_url": "https://api.github.com/users/glendaviesnz/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/glendaviesnz/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/glendaviesnz/subscriptions",
+ "organizations_url": "https://api.github.com/users/glendaviesnz/orgs",
+ "repos_url": "https://api.github.com/users/glendaviesnz/repos",
+ "events_url": "https://api.github.com/users/glendaviesnz/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/glendaviesnz/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "Mamaduka",
- "id": 240569,
- "node_id": "MDQ6VXNlcjI0MDU2OQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "login": "glendaviesnz",
+ "id": 3629020,
+ "node_id": "MDQ6VXNlcjM2MjkwMjA=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/3629020?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/Mamaduka",
- "html_url": "https://github.com/Mamaduka",
- "followers_url": "https://api.github.com/users/Mamaduka/followers",
- "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
- "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
- "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
- "repos_url": "https://api.github.com/users/Mamaduka/repos",
- "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "url": "https://api.github.com/users/glendaviesnz",
+ "html_url": "https://github.com/glendaviesnz",
+ "followers_url": "https://api.github.com/users/glendaviesnz/followers",
+ "following_url": "https://api.github.com/users/glendaviesnz/following{/other_user}",
+ "gists_url": "https://api.github.com/users/glendaviesnz/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/glendaviesnz/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/glendaviesnz/subscriptions",
+ "organizations_url": "https://api.github.com/users/glendaviesnz/orgs",
+ "repos_url": "https://api.github.com/users/glendaviesnz/repos",
+ "events_url": "https://api.github.com/users/glendaviesnz/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/glendaviesnz/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -5460,82 +6094,147 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 1,
- "created_at": "2021-08-03T07:06:47Z",
- "updated_at": "2021-08-03T08:16:59Z",
- "closed_at": "2021-08-03T08:16:31Z",
- "author_association": "MEMBER",
+ "comments": 2,
+ "created_at": "2023-09-29T03:56:06Z",
+ "updated_at": "2023-10-02T03:37:16Z",
+ "closed_at": "2023-10-02T03:36:42Z",
+ "author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33840",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33840",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33840.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33840.patch"
- },
- "body": "## Description\r\nThe `options` property might not always be defined for the `saving` state and, in some cases, might result in an error.\r\n\r\nPR updates selector to use lodash `get` to safely check `options.isPreview` reference. It also matches the signature in the `isAutosavingPost` selector.\r\n\r\nFixes #29711.\r\n\r\n## How has this been tested?\r\n1. Comment out `isSavingPost` condition from the `isPreviewingPost()` selector.\r\n2. Run the following code in the browser console:\r\n\r\n```js\r\nwp.data.select( 'core/editor' ).isPreviewingPost();\r\n```\r\n\r\n## Types of changes\r\nBugfix\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54923",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54923",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54923.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54923.patch",
+ "merged_at": "2023-10-02T03:36:42Z"
+ },
+ "body": "## What?\r\nIncludes the adding of the pattern category into the main post editor e2e test\r\n\r\n## Why?\r\nMakes sure all parts of the critical path are covered\r\n\r\n## How?\r\nAdds a category during pattern creation\r\nFinds the new pattern via that category\r\nDeletes all categories at end of test\r\n\r\n## Testing Instructions\r\n\r\n- Make sure CI passes\r\n- Run `npm run test:e2e:playwright test/e2e/specs/editor/various/patterns.spec.js` locally and then go to http://localhost:8889/wp-admin/edit-tags.php?taxonomy=wp_pattern_category and make sure there are no categories listed\r\n\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54923/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54923/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33833",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54922",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33833/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33833/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33833/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33833",
- "id": 958653186,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzAxOTAwMTgx",
- "number": 33833,
- "title": "RNMobile: Add integration test guide",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54922/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54922/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54922/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54922",
+ "id": 1918478677,
+ "node_id": "PR_kwDOBNHdeM5bftPG",
+ "number": 54922,
+ "title": "Components: consolidate utils to remove `ui/`",
"user": {
- "login": "guarani",
- "id": 1898325,
- "node_id": "MDQ6VXNlcjE4OTgzMjU=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1898325?v=4",
+ "login": "brookewp",
+ "id": 35543432,
+ "node_id": "MDQ6VXNlcjM1NTQzNDMy",
+ "avatar_url": "https://avatars.githubusercontent.com/u/35543432?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/guarani",
- "html_url": "https://github.com/guarani",
- "followers_url": "https://api.github.com/users/guarani/followers",
- "following_url": "https://api.github.com/users/guarani/following{/other_user}",
- "gists_url": "https://api.github.com/users/guarani/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/guarani/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/guarani/subscriptions",
- "organizations_url": "https://api.github.com/users/guarani/orgs",
- "repos_url": "https://api.github.com/users/guarani/repos",
- "events_url": "https://api.github.com/users/guarani/events{/privacy}",
- "received_events_url": "https://api.github.com/users/guarani/received_events",
+ "url": "https://api.github.com/users/brookewp",
+ "html_url": "https://github.com/brookewp",
+ "followers_url": "https://api.github.com/users/brookewp/followers",
+ "following_url": "https://api.github.com/users/brookewp/following{/other_user}",
+ "gists_url": "https://api.github.com/users/brookewp/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/brookewp/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/brookewp/subscriptions",
+ "organizations_url": "https://api.github.com/users/brookewp/orgs",
+ "repos_url": "https://api.github.com/users/brookewp/repos",
+ "events_url": "https://api.github.com/users/brookewp/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/brookewp/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 982506020,
- "node_id": "MDU6TGFiZWw5ODI1MDYwMjA=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20i.e.%20Android%20or%20iOS",
- "name": "Mobile App - i.e. Android or iOS",
- "color": "a3ef7a",
+ "id": 930001208,
+ "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
+ "name": "[Type] Code Quality",
+ "color": "e5e04b",
"default": false,
- "description": "Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)"
+ "description": "Issues or PRs that relate to code quality"
+ },
+ {
+ "id": 997392122,
+ "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
+ "name": "[Package] Components",
+ "color": "ed2572",
+ "default": false,
+ "description": "/packages/components"
}
],
"state": "closed",
"locked": false,
- "assignee": null,
- "assignees": [],
+ "assignee": {
+ "login": "brookewp",
+ "id": 35543432,
+ "node_id": "MDQ6VXNlcjM1NTQzNDMy",
+ "avatar_url": "https://avatars.githubusercontent.com/u/35543432?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/brookewp",
+ "html_url": "https://github.com/brookewp",
+ "followers_url": "https://api.github.com/users/brookewp/followers",
+ "following_url": "https://api.github.com/users/brookewp/following{/other_user}",
+ "gists_url": "https://api.github.com/users/brookewp/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/brookewp/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/brookewp/subscriptions",
+ "organizations_url": "https://api.github.com/users/brookewp/orgs",
+ "repos_url": "https://api.github.com/users/brookewp/repos",
+ "events_url": "https://api.github.com/users/brookewp/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/brookewp/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "brookewp",
+ "id": 35543432,
+ "node_id": "MDQ6VXNlcjM1NTQzNDMy",
+ "avatar_url": "https://avatars.githubusercontent.com/u/35543432?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/brookewp",
+ "html_url": "https://github.com/brookewp",
+ "followers_url": "https://api.github.com/users/brookewp/followers",
+ "following_url": "https://api.github.com/users/brookewp/following{/other_user}",
+ "gists_url": "https://api.github.com/users/brookewp/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/brookewp/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/brookewp/subscriptions",
+ "organizations_url": "https://api.github.com/users/brookewp/orgs",
+ "repos_url": "https://api.github.com/users/brookewp/repos",
+ "events_url": "https://api.github.com/users/brookewp/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/brookewp/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -5558,56 +6257,72 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
"comments": 2,
- "created_at": "2021-08-03T02:17:36Z",
- "updated_at": "2021-08-04T15:42:53Z",
- "closed_at": "2021-08-04T15:42:28Z",
+ "created_at": "2023-09-29T01:43:46Z",
+ "updated_at": "2023-10-02T18:12:30Z",
+ "closed_at": "2023-10-02T18:12:04Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33833",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33833",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33833.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33833.patch"
- },
- "body": "## Description\r\n\r\nAdds a guide to integration tests on Gutenberg Mobile.\r\n\r\n## How has this been tested?\r\nRead through the guide to ensure legibility and accuracy.\r\n\r\n## Types of changes\r\n- Updated docs\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [x] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54922",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54922",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54922.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54922.patch",
+ "merged_at": "2023-10-02T18:12:04Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\n\r\nRemaining task to remove the `ui/` folder which started in #52953\r\n\r\n## Why?\r\n\r\n\r\nThere isn't a need for the ui folder anymore - more details can be found in above-mentioned PR.\r\n\r\n> For context, there is no longer a need to keep a separate /ui folder around, so we want to move toward removing this extra folder grouping.\r\n> To begin with, there are a lot of experimental components in this folder that are not used anywhere, and are no longer part of our overall component strategy. They add unnecessary overhead when auditing or just looking for components.\r\n\r\n## How?\r\n\r\n\r\nBy moving the files from `ui/utils` to `utils`. \r\n\r\n`colors` was the only name conflict, so it and its tests have been consolidated into one file. \r\n\r\n## Testing Instructions\r\n\r\nEnsure all tests pass\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54922/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54922/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33831",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54912",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33831/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33831/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33831/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33831",
- "id": 958559778,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzAxODI1NjM1",
- "number": 33831,
- "title": "Components: Fix RTL on custom gradient picker",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54912/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54912/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54912/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54912",
+ "id": 1917543753,
+ "node_id": "PR_kwDOBNHdeM5bch3P",
+ "number": 54912,
+ "title": "Popover: Fix the styles for components that use emotion within popovers",
"user": {
- "login": "walbo",
- "id": 1415747,
- "node_id": "MDQ6VXNlcjE0MTU3NDc=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1415747?v=4",
+ "login": "youknowriad",
+ "id": 272444,
+ "node_id": "MDQ6VXNlcjI3MjQ0NA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/walbo",
- "html_url": "https://github.com/walbo",
- "followers_url": "https://api.github.com/users/walbo/followers",
- "following_url": "https://api.github.com/users/walbo/following{/other_user}",
- "gists_url": "https://api.github.com/users/walbo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/walbo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/walbo/subscriptions",
- "organizations_url": "https://api.github.com/users/walbo/orgs",
- "repos_url": "https://api.github.com/users/walbo/repos",
- "events_url": "https://api.github.com/users/walbo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/walbo/received_events",
+ "url": "https://api.github.com/users/youknowriad",
+ "html_url": "https://github.com/youknowriad",
+ "followers_url": "https://api.github.com/users/youknowriad/followers",
+ "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
+ "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
+ "organizations_url": "https://api.github.com/users/youknowriad/orgs",
+ "repos_url": "https://api.github.com/users/youknowriad/repos",
+ "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/youknowriad/received_events",
"type": "User",
"site_admin": false
},
@@ -5619,39 +6334,70 @@
"name": "[Type] Bug",
"color": "d93f0b",
"default": false,
- "description": "An existing feature is broken."
- },
- {
- "id": 596965480,
- "node_id": "MDU6TGFiZWw1OTY5NjU0ODA=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Internationalization%20(i18n)",
- "name": "Internationalization (i18n)",
- "color": "e881e2",
- "default": false,
- "description": ""
+ "description": "An existing feature does not function as intended"
},
{
- "id": 997392122,
- "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
- "name": "[Package] Components",
- "color": "ed2572",
+ "id": 659839209,
+ "node_id": "MDU6TGFiZWw2NTk4MzkyMDk=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20UI%20Components",
+ "name": "[Feature] UI Components",
+ "color": "fbca04",
"default": false,
- "description": "/packages/components"
+ "description": "Impacts or related to the UI component system"
}
],
"state": "closed",
"locked": false,
- "assignee": null,
- "assignees": [],
+ "assignee": {
+ "login": "youknowriad",
+ "id": 272444,
+ "node_id": "MDQ6VXNlcjI3MjQ0NA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/youknowriad",
+ "html_url": "https://github.com/youknowriad",
+ "followers_url": "https://api.github.com/users/youknowriad/followers",
+ "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
+ "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
+ "organizations_url": "https://api.github.com/users/youknowriad/orgs",
+ "repos_url": "https://api.github.com/users/youknowriad/repos",
+ "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/youknowriad/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "youknowriad",
+ "id": 272444,
+ "node_id": "MDQ6VXNlcjI3MjQ0NA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/youknowriad",
+ "html_url": "https://github.com/youknowriad",
+ "followers_url": "https://api.github.com/users/youknowriad/followers",
+ "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
+ "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
+ "organizations_url": "https://api.github.com/users/youknowriad/orgs",
+ "repos_url": "https://api.github.com/users/youknowriad/repos",
+ "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/youknowriad/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -5674,140 +6420,138 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 0,
- "created_at": "2021-08-02T22:36:46Z",
- "updated_at": "2021-08-03T15:38:00Z",
- "closed_at": "2021-08-03T15:27:19Z",
+ "comments": 3,
+ "created_at": "2023-09-28T13:20:58Z",
+ "updated_at": "2023-09-29T14:40:23Z",
+ "closed_at": "2023-09-29T13:48:06Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33831",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33831",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33831.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33831.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\n\r\nFix custom gradient picker on sites with RTL.\r\n\r\nFixes #27352\r\n\r\n## How has this been tested?\r\nWith a RTL language and RTL tester plugin\r\n\r\n## Screenshots \r\n| Before | After |\r\n| --- | --- |\r\n| ![rtl-custom-gradient](https://user-images.githubusercontent.com/1415747/127931900-3846eecd-8f1a-40d2-9d74-96ddc4b8441e.gif) | ![fixed-rtl-custom-gradient](https://user-images.githubusercontent.com/1415747/127931912-5b1f00e0-d348-4ba7-9f7f-1b7f15268524.gif) |\r\n\r\n## Types of changes\r\nBug fix\r\n\r\n\r\n\r\n\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [ ] My code has proper inline documentation. \r\n- [ ] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54912",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54912",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54912.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54912.patch",
+ "merged_at": "2023-09-29T13:48:06Z"
+ },
+ "body": "Fix regression introduced in #53889\r\n\r\n## What?\r\n\r\nIn #53889 default popovers moved from using a \"Slot\" to just rendering within the \"body\" of the page. But we missed the fact that when using a `Slot`, there's an \"emotion\" `StyleProvider` that gets automatically applied which ensures that any CSS in JS styles rendered within the Slot are rendered properly to the right document. Since we're now using `createPortal` directly, we need to ensure the right `StyleProvider` is applied which would ensure that the styles are applied properly within that particular popover.\r\n\r\n## Testing Instructions\r\n\r\n1- A bit hard cause I'm not sure we have a use-case right now in Gutenberg. You'll have to render a `` or `` within a \"block\" (so within the iframe) and use an \"emotion\" based component within it. (I have been personally testing using a private plugin that I can't share publicly)",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54912/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54912/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33824",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54910",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33824/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33824/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33824/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33824",
- "id": 958364226,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzAxNjU2OTA1",
- "number": 33824,
- "title": "components: Use updated range styles",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54910/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54910/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54910/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54910",
+ "id": 1917364624,
+ "node_id": "PR_kwDOBNHdeM5bb5mC",
+ "number": 54910,
+ "title": "ESLint: Update eslint-plugin-testing-library to v6",
"user": {
- "login": "sarayourfriend",
- "id": 24264157,
- "node_id": "MDQ6VXNlcjI0MjY0MTU3",
- "avatar_url": "https://avatars.githubusercontent.com/u/24264157?v=4",
+ "login": "tyxla",
+ "id": 8436925,
+ "node_id": "MDQ6VXNlcjg0MzY5MjU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/8436925?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/sarayourfriend",
- "html_url": "https://github.com/sarayourfriend",
- "followers_url": "https://api.github.com/users/sarayourfriend/followers",
- "following_url": "https://api.github.com/users/sarayourfriend/following{/other_user}",
- "gists_url": "https://api.github.com/users/sarayourfriend/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/sarayourfriend/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/sarayourfriend/subscriptions",
- "organizations_url": "https://api.github.com/users/sarayourfriend/orgs",
- "repos_url": "https://api.github.com/users/sarayourfriend/repos",
- "events_url": "https://api.github.com/users/sarayourfriend/events{/privacy}",
- "received_events_url": "https://api.github.com/users/sarayourfriend/received_events",
+ "url": "https://api.github.com/users/tyxla",
+ "html_url": "https://github.com/tyxla",
+ "followers_url": "https://api.github.com/users/tyxla/followers",
+ "following_url": "https://api.github.com/users/tyxla/following{/other_user}",
+ "gists_url": "https://api.github.com/users/tyxla/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/tyxla/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/tyxla/subscriptions",
+ "organizations_url": "https://api.github.com/users/tyxla/orgs",
+ "repos_url": "https://api.github.com/users/tyxla/repos",
+ "events_url": "https://api.github.com/users/tyxla/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/tyxla/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 531680825,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
- "name": "[Type] Enhancement",
- "color": "3993a3",
- "default": false,
- "description": "A suggestion for improvement."
- },
- {
- "id": 997392122,
- "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
- "name": "[Package] Components",
- "color": "ed2572",
- "default": false,
- "description": "/packages/components"
- },
- {
- "id": 546517042,
- "node_id": "MDU6TGFiZWw1NDY1MTcwNDI=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Accessibility%20(a11y)",
- "name": "[Focus] Accessibility (a11y)",
- "color": "655104",
+ "id": 615503111,
+ "node_id": "MDU6TGFiZWw2MTU1MDMxMTE=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Automated%20Testing",
+ "name": "[Type] Automated Testing",
+ "color": "111111",
"default": false,
- "description": "Changes that impact accessibility and need corresponding review (e.g. markup changes)."
+ "description": "Testing infrastructure changes impacting the execution of end-to-end (E2E) and/or unit tests."
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "sarayourfriend",
- "id": 24264157,
- "node_id": "MDQ6VXNlcjI0MjY0MTU3",
- "avatar_url": "https://avatars.githubusercontent.com/u/24264157?v=4",
+ "login": "tyxla",
+ "id": 8436925,
+ "node_id": "MDQ6VXNlcjg0MzY5MjU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/8436925?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/sarayourfriend",
- "html_url": "https://github.com/sarayourfriend",
- "followers_url": "https://api.github.com/users/sarayourfriend/followers",
- "following_url": "https://api.github.com/users/sarayourfriend/following{/other_user}",
- "gists_url": "https://api.github.com/users/sarayourfriend/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/sarayourfriend/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/sarayourfriend/subscriptions",
- "organizations_url": "https://api.github.com/users/sarayourfriend/orgs",
- "repos_url": "https://api.github.com/users/sarayourfriend/repos",
- "events_url": "https://api.github.com/users/sarayourfriend/events{/privacy}",
- "received_events_url": "https://api.github.com/users/sarayourfriend/received_events",
+ "url": "https://api.github.com/users/tyxla",
+ "html_url": "https://github.com/tyxla",
+ "followers_url": "https://api.github.com/users/tyxla/followers",
+ "following_url": "https://api.github.com/users/tyxla/following{/other_user}",
+ "gists_url": "https://api.github.com/users/tyxla/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/tyxla/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/tyxla/subscriptions",
+ "organizations_url": "https://api.github.com/users/tyxla/orgs",
+ "repos_url": "https://api.github.com/users/tyxla/repos",
+ "events_url": "https://api.github.com/users/tyxla/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/tyxla/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "sarayourfriend",
- "id": 24264157,
- "node_id": "MDQ6VXNlcjI0MjY0MTU3",
- "avatar_url": "https://avatars.githubusercontent.com/u/24264157?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/sarayourfriend",
- "html_url": "https://github.com/sarayourfriend",
- "followers_url": "https://api.github.com/users/sarayourfriend/followers",
- "following_url": "https://api.github.com/users/sarayourfriend/following{/other_user}",
- "gists_url": "https://api.github.com/users/sarayourfriend/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/sarayourfriend/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/sarayourfriend/subscriptions",
- "organizations_url": "https://api.github.com/users/sarayourfriend/orgs",
- "repos_url": "https://api.github.com/users/sarayourfriend/repos",
- "events_url": "https://api.github.com/users/sarayourfriend/events{/privacy}",
- "received_events_url": "https://api.github.com/users/sarayourfriend/received_events",
+ "login": "tyxla",
+ "id": 8436925,
+ "node_id": "MDQ6VXNlcjg0MzY5MjU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/8436925?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/tyxla",
+ "html_url": "https://github.com/tyxla",
+ "followers_url": "https://api.github.com/users/tyxla/followers",
+ "following_url": "https://api.github.com/users/tyxla/following{/other_user}",
+ "gists_url": "https://api.github.com/users/tyxla/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/tyxla/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/tyxla/subscriptions",
+ "organizations_url": "https://api.github.com/users/tyxla/orgs",
+ "repos_url": "https://api.github.com/users/tyxla/repos",
+ "events_url": "https://api.github.com/users/tyxla/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/tyxla/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -5830,140 +6574,138 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 15,
- "created_at": "2021-08-02T17:33:13Z",
- "updated_at": "2021-08-06T13:19:05Z",
- "closed_at": "2021-08-06T13:18:17Z",
- "author_association": "CONTRIBUTOR",
+ "comments": 1,
+ "created_at": "2023-09-28T11:58:18Z",
+ "updated_at": "2023-09-28T13:35:55Z",
+ "closed_at": "2023-09-28T13:35:30Z",
+ "author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33824",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33824",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33824.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33824.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\nUse the updated range styles from the Global Styles figma: https://www.figma.com/file/oEkcAyhIvPFMVEAO8EImvA/Global-Styles\r\n\r\n## How has this been tested?\r\nRun storybook and check out the range control page: `iframe.html?id=components-rangecontrol--default`\r\n\r\n## Screenshots \r\n\r\n### Unfocused\r\n\r\n \r\n\r\n### Focused\r\n\r\n \r\n\r\n\r\n## Types of changes\r\nStyle changes (new feature???)\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [x] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54910",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54910",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54910.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54910.patch",
+ "merged_at": "2023-09-28T13:35:30Z"
+ },
+ "body": "## What?\r\nThis PR bumps `eslint-plugin-testing-library` to v6.\r\n\r\n## Why?\r\nIt's simply a dependency change, to keep the testing library tests up to date with the latest best practices of writing component tests.\r\n\r\n## How?\r\nWe're bumping the version and fixing a couple of ESLint errors.\r\n\r\n## Testing Instructions\r\nVerify all checks are green.\r\n\r\n### Testing Instructions for Keyboard\r\nNone.\r\n\r\n## Screenshots or screencast \r\nNone.",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54910/reactions",
+ "total_count": 1,
+ "+1": 1,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54910/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33818",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54908",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33818/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33818/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33818/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33818",
- "id": 958138621,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzAxNDYxNTky",
- "number": 33818,
- "title": "Scripts: Update webpack to v5 (try 2)",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54908/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54908/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54908/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54908",
+ "id": 1917231902,
+ "node_id": "PR_kwDOBNHdeM5bbbfE",
+ "number": 54908,
+ "title": "Update the documentation of the block editor and replace @wordpress/element with react",
"user": {
- "login": "gziolo",
- "id": 699132,
- "node_id": "MDQ6VXNlcjY5OTEzMg==",
- "avatar_url": "https://avatars.githubusercontent.com/u/699132?v=4",
+ "login": "youknowriad",
+ "id": 272444,
+ "node_id": "MDQ6VXNlcjI3MjQ0NA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/gziolo",
- "html_url": "https://github.com/gziolo",
- "followers_url": "https://api.github.com/users/gziolo/followers",
- "following_url": "https://api.github.com/users/gziolo/following{/other_user}",
- "gists_url": "https://api.github.com/users/gziolo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/gziolo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/gziolo/subscriptions",
- "organizations_url": "https://api.github.com/users/gziolo/orgs",
- "repos_url": "https://api.github.com/users/gziolo/repos",
- "events_url": "https://api.github.com/users/gziolo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/gziolo/received_events",
+ "url": "https://api.github.com/users/youknowriad",
+ "html_url": "https://github.com/youknowriad",
+ "followers_url": "https://api.github.com/users/youknowriad/followers",
+ "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
+ "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
+ "organizations_url": "https://api.github.com/users/youknowriad/orgs",
+ "repos_url": "https://api.github.com/users/youknowriad/repos",
+ "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/youknowriad/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 596512821,
- "node_id": "MDU6TGFiZWw1OTY1MTI4MjE=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Build%20Tooling",
- "name": "[Type] Build Tooling",
- "color": "111111",
+ "id": 567484057,
+ "node_id": "MDU6TGFiZWw1Njc0ODQwNTc=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Developer%20Documentation",
+ "name": "[Type] Developer Documentation",
+ "color": "bfd4f2",
"default": false,
- "description": ""
- },
- {
- "id": 978007737,
- "node_id": "MDU6TGFiZWw5NzgwMDc3Mzc=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Scripts",
- "name": "[Package] Scripts",
- "color": "ed2572",
- "default": false,
- "description": "/packages/scripts"
- },
- {
- "id": 1607665481,
- "node_id": "MDU6TGFiZWwxNjA3NjY1NDgx",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Storybook",
- "name": "Storybook",
- "color": "81e2c7",
- "default": false,
- "description": "Storybook and its stories for components"
+ "description": "Documentation for developers"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "gziolo",
- "id": 699132,
- "node_id": "MDQ6VXNlcjY5OTEzMg==",
- "avatar_url": "https://avatars.githubusercontent.com/u/699132?v=4",
+ "login": "youknowriad",
+ "id": 272444,
+ "node_id": "MDQ6VXNlcjI3MjQ0NA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/gziolo",
- "html_url": "https://github.com/gziolo",
- "followers_url": "https://api.github.com/users/gziolo/followers",
- "following_url": "https://api.github.com/users/gziolo/following{/other_user}",
- "gists_url": "https://api.github.com/users/gziolo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/gziolo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/gziolo/subscriptions",
- "organizations_url": "https://api.github.com/users/gziolo/orgs",
- "repos_url": "https://api.github.com/users/gziolo/repos",
- "events_url": "https://api.github.com/users/gziolo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/gziolo/received_events",
+ "url": "https://api.github.com/users/youknowriad",
+ "html_url": "https://github.com/youknowriad",
+ "followers_url": "https://api.github.com/users/youknowriad/followers",
+ "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
+ "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
+ "organizations_url": "https://api.github.com/users/youknowriad/orgs",
+ "repos_url": "https://api.github.com/users/youknowriad/repos",
+ "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/youknowriad/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "gziolo",
- "id": 699132,
- "node_id": "MDQ6VXNlcjY5OTEzMg==",
- "avatar_url": "https://avatars.githubusercontent.com/u/699132?v=4",
+ "login": "youknowriad",
+ "id": 272444,
+ "node_id": "MDQ6VXNlcjI3MjQ0NA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/gziolo",
- "html_url": "https://github.com/gziolo",
- "followers_url": "https://api.github.com/users/gziolo/followers",
- "following_url": "https://api.github.com/users/gziolo/following{/other_user}",
- "gists_url": "https://api.github.com/users/gziolo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/gziolo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/gziolo/subscriptions",
- "organizations_url": "https://api.github.com/users/gziolo/orgs",
- "repos_url": "https://api.github.com/users/gziolo/repos",
- "events_url": "https://api.github.com/users/gziolo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/gziolo/received_events",
+ "url": "https://api.github.com/users/youknowriad",
+ "html_url": "https://github.com/youknowriad",
+ "followers_url": "https://api.github.com/users/youknowriad/followers",
+ "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
+ "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
+ "organizations_url": "https://api.github.com/users/youknowriad/orgs",
+ "repos_url": "https://api.github.com/users/youknowriad/repos",
+ "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/youknowriad/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -5986,140 +6728,147 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 28,
- "created_at": "2021-08-02T13:19:47Z",
- "updated_at": "2021-08-10T07:24:53Z",
- "closed_at": "2021-08-10T07:24:28Z",
- "author_association": "MEMBER",
+ "comments": 1,
+ "created_at": "2023-09-28T10:55:04Z",
+ "updated_at": "2023-10-04T13:45:09Z",
+ "closed_at": "2023-10-04T13:44:43Z",
+ "author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33818",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33818",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33818.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33818.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\n\r\n\r\nFollow-up for #26382. \r\nFixes #33768, fixes #32203, fixes #30289.\r\n\r\nIt's a second attempt to upgrade webpack to v5.\r\n\r\n## Known Issues\r\n\r\n- [x] `wp-scripts build` generates styles with a wrong name\r\n \r\n it should be `index-style.css` in the context of a block\r\n- [x] `npm run build` errors because of API changes in webpack plugins\r\n \r\n- [x] `npm run storybook:build` – Storybook has to be updated to work with webpack v5, more details at https://storybook.js.org/blog/storybook-for-webpack-5/\r\n\r\n## How has this been tested?\r\n\r\n\r\n\r\n\r\n### Build for Gutenberg\r\n\r\n- `npm run dev`\r\n- `npm run build`\r\n\r\n### Build for Storybook\r\n\r\n- `npm run storybook:dev`\r\n- `npm run storybook:build`\r\n\r\n### Build for `@wordpress/scripts`\r\n\r\n```bash\r\nnpx wp-create-block example --no-wp-scripts\r\ncd example\r\n../node_modules/.bin/wp-script build\r\n```\r\n\r\n## Types of changes\r\nBreaking change for `@wordpress/scripts` users that provide their own config files for build tools.\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [x] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54908",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54908",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54908.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54908.patch",
+ "merged_at": "2023-10-04T13:44:43Z"
+ },
+ "body": "Follow-up to #54494\r\nRelated to #54074\r\n\r\n## What?\r\n\r\nSince we switched the default pragma, this PR updates our documentation to clarify that plugin developers should use react directly instead of @wordpress/element \r\n\r\nI also removed the internal WPComponent and WPElement types for clarity. It impacts a high number of files though.\r\n\r\n## Testing Instructions\r\n\r\nThis is mostly a documentation change, so nothing to test.",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54908/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54908/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33817",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54906",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33817/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33817/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33817/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33817",
- "id": 958115507,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzAxNDQxNDI1",
- "number": 33817,
- "title": "Fix Safari 13 metaboxes from overlapping the content.",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54906/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54906/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54906/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54906",
+ "id": 1917139479,
+ "node_id": "PR_kwDOBNHdeM5bbG-t",
+ "number": 54906,
+ "title": "Add e2e tests for filtering and searching patterns",
"user": {
- "login": "jasmussen",
- "id": 1204802,
- "node_id": "MDQ6VXNlcjEyMDQ4MDI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1204802?v=4",
+ "login": "kevin940726",
+ "id": 7753001,
+ "node_id": "MDQ6VXNlcjc3NTMwMDE=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/7753001?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/jasmussen",
- "html_url": "https://github.com/jasmussen",
- "followers_url": "https://api.github.com/users/jasmussen/followers",
- "following_url": "https://api.github.com/users/jasmussen/following{/other_user}",
- "gists_url": "https://api.github.com/users/jasmussen/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/jasmussen/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/jasmussen/subscriptions",
- "organizations_url": "https://api.github.com/users/jasmussen/orgs",
- "repos_url": "https://api.github.com/users/jasmussen/repos",
- "events_url": "https://api.github.com/users/jasmussen/events{/privacy}",
- "received_events_url": "https://api.github.com/users/jasmussen/received_events",
+ "url": "https://api.github.com/users/kevin940726",
+ "html_url": "https://github.com/kevin940726",
+ "followers_url": "https://api.github.com/users/kevin940726/followers",
+ "following_url": "https://api.github.com/users/kevin940726/following{/other_user}",
+ "gists_url": "https://api.github.com/users/kevin940726/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/kevin940726/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/kevin940726/subscriptions",
+ "organizations_url": "https://api.github.com/users/kevin940726/orgs",
+ "repos_url": "https://api.github.com/users/kevin940726/repos",
+ "events_url": "https://api.github.com/users/kevin940726/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/kevin940726/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 531680823,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
- "name": "[Type] Bug",
- "color": "d93f0b",
- "default": false,
- "description": "An existing feature is broken."
- },
- {
- "id": 671439711,
- "node_id": "MDU6TGFiZWw2NzE0Mzk3MTE=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Browser%20Issues",
- "name": "Browser Issues",
- "color": "0052cc",
+ "id": 930001208,
+ "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
+ "name": "[Type] Code Quality",
+ "color": "e5e04b",
"default": false,
- "description": null
+ "description": "Issues or PRs that relate to code quality"
},
{
- "id": 738764878,
- "node_id": "MDU6TGFiZWw3Mzg3NjQ4Nzg=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Meta%20Boxes",
- "name": "[Feature] Meta Boxes",
+ "id": 1882657161,
+ "node_id": "MDU6TGFiZWwxODgyNjU3MTYx",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Patterns",
+ "name": "[Feature] Patterns",
"color": "fbca04",
"default": false,
- "description": ""
+ "description": "A collection of blocks that can be synced (previously reusable blocks) or unsynced"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "jasmussen",
- "id": 1204802,
- "node_id": "MDQ6VXNlcjEyMDQ4MDI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1204802?v=4",
+ "login": "kevin940726",
+ "id": 7753001,
+ "node_id": "MDQ6VXNlcjc3NTMwMDE=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/7753001?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/jasmussen",
- "html_url": "https://github.com/jasmussen",
- "followers_url": "https://api.github.com/users/jasmussen/followers",
- "following_url": "https://api.github.com/users/jasmussen/following{/other_user}",
- "gists_url": "https://api.github.com/users/jasmussen/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/jasmussen/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/jasmussen/subscriptions",
- "organizations_url": "https://api.github.com/users/jasmussen/orgs",
- "repos_url": "https://api.github.com/users/jasmussen/repos",
- "events_url": "https://api.github.com/users/jasmussen/events{/privacy}",
- "received_events_url": "https://api.github.com/users/jasmussen/received_events",
+ "url": "https://api.github.com/users/kevin940726",
+ "html_url": "https://github.com/kevin940726",
+ "followers_url": "https://api.github.com/users/kevin940726/followers",
+ "following_url": "https://api.github.com/users/kevin940726/following{/other_user}",
+ "gists_url": "https://api.github.com/users/kevin940726/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/kevin940726/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/kevin940726/subscriptions",
+ "organizations_url": "https://api.github.com/users/kevin940726/orgs",
+ "repos_url": "https://api.github.com/users/kevin940726/repos",
+ "events_url": "https://api.github.com/users/kevin940726/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/kevin940726/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "jasmussen",
- "id": 1204802,
- "node_id": "MDQ6VXNlcjEyMDQ4MDI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1204802?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/jasmussen",
- "html_url": "https://github.com/jasmussen",
- "followers_url": "https://api.github.com/users/jasmussen/followers",
- "following_url": "https://api.github.com/users/jasmussen/following{/other_user}",
- "gists_url": "https://api.github.com/users/jasmussen/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/jasmussen/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/jasmussen/subscriptions",
- "organizations_url": "https://api.github.com/users/jasmussen/orgs",
- "repos_url": "https://api.github.com/users/jasmussen/repos",
- "events_url": "https://api.github.com/users/jasmussen/events{/privacy}",
- "received_events_url": "https://api.github.com/users/jasmussen/received_events",
+ "login": "kevin940726",
+ "id": 7753001,
+ "node_id": "MDQ6VXNlcjc3NTMwMDE=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/7753001?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/kevin940726",
+ "html_url": "https://github.com/kevin940726",
+ "followers_url": "https://api.github.com/users/kevin940726/followers",
+ "following_url": "https://api.github.com/users/kevin940726/following{/other_user}",
+ "gists_url": "https://api.github.com/users/kevin940726/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/kevin940726/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/kevin940726/subscriptions",
+ "organizations_url": "https://api.github.com/users/kevin940726/orgs",
+ "repos_url": "https://api.github.com/users/kevin940726/repos",
+ "events_url": "https://api.github.com/users/kevin940726/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/kevin940726/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -6142,91 +6891,147 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
"comments": 3,
- "created_at": "2021-08-02T12:56:59Z",
- "updated_at": "2021-08-05T06:43:02Z",
- "closed_at": "2021-08-05T06:42:35Z",
- "author_association": "CONTRIBUTOR",
+ "created_at": "2023-09-28T10:00:08Z",
+ "updated_at": "2023-10-02T03:38:11Z",
+ "closed_at": "2023-10-02T03:37:43Z",
+ "author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33817",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33817",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33817.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33817.patch"
- },
- "body": "## Description\r\n\r\nFixes #33668.\r\n\r\nFlex is a delicate feature, especially when supporting a range of browsers. As it turns out, older versions of Safari have a pretty specific interpretation of how flex children should inherit the height of their parents. Which is to say, _they do if you don't provide a percentage height_. \r\n\r\nIt gets a bit more gnarly than that, but [this SO comment](https://stackoverflow.com/questions/33636796/chrome-safari-not-filling-100-height-of-flex-parent) elucidates a bit:\r\n\r\n> Remove specified heights from flex items for this method to work. If a child has a height specified (e.g. height: 100%), then it will ignore the align-items: stretch coming from the parent. For the stretch default to work, the child's height must compute to auto.\r\n\r\nI have developed this patch while using Browserstack to test Safari 13, because I'm no longer on MacOS Catalina. And as best I can tell the flex rules we have in place caused a sequence of events there:\r\n\r\n- First it meant that the height of `.edit-post-visual-editor` was allowed to shrink, which happened when a metabox was present. This was fixed by disallowing shrinking (`flex: 1 0 auto;` instead of `flex: 1 1 auto;`) _and_ by removing `flex-basis: 100%;` (more on that in a second)\r\n- When that was fixed, it became clear that the child element, `.edit-post-visual-editor__content-area` no longer expanded to fill the void. _Presumably_ because when `flex-basis: 100%;` was removed, inheritance there no longer worked. This was fixed by removing the explicit `height: 100%;` inline style applied to that element, _and_ by allowing it to grow (`flex-grow: 1;`). \r\n\r\nTo summarize it to the best of my understanding: when we used percentages, the editing canvas didn't actually expand, causing the metaboxes to overlap it. By removing the percentages, I had to remove them from quite a few of the child items, and change those to rely in the intrinsic `align-items: stretch;` property they are given by `display: flex;` by default.\r\n\r\n## How has this been tested?\r\n\r\nIn my testing, this threads the needle and accomplishes what it needs to in modern browsers, Chrome, Firefox, Edge and Safari 14. It also makes it all work with Safar 13. I have not tested older yet, but presume it works the same.\r\n\r\nThe behavior to test is:\r\n\r\n- Test with and without the Custom Fields metabox present.\r\n- Create a new post with no content, and you should not see the dark gray color behind the editing canvas peek through.\r\n- Use the device preview dropdown and verify the sizes are correct. \r\n- Add a lot of content, and observe that the custom fields metabox keeps \"riding below the content\" as you press Enter. No overlap.\r\n\r\n## Screenshots \r\n\r\nThe Safari 13 issue that ships in trunk (big GIF):\r\n\r\nhttps://cldup.com/_zYngFvNTq.gif\r\n\r\nSafari 13 after this PR is applied:\r\n\r\n![saf 13 after](https://user-images.githubusercontent.com/1204802/127865217-0de80ec7-2906-4503-a4d8-6066bf7a6a75.gif)\r\n\r\nChrome after this PR applied (should be like before):\r\n\r\n![chrome](https://user-images.githubusercontent.com/1204802/127865407-7ad3eaef-b067-44b8-895f-e5208342ea55.gif)\r\n\r\n## Types of changes\r\n\r\nSince this is a pretty sensitive part of the editor layout code, it's important to test this pretty broadly, notably with those of you with access to Safari 13. But it's still important to ensure identical behavior on modern browsers as well.\r\n\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [x] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54906",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54906",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54906.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54906.patch",
+ "merged_at": "2023-10-02T03:37:43Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\nAdd e2e tests for filtering and searching patterns.\r\n\r\n## Why?\r\n\r\nThis is a critical path of the patterns page.\r\n\r\n## How?\r\n\r\nWrite tests 💪 .\r\n\r\nI also smuggled some quick fixes here that I'll explain in inline comments later 🙈 .\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\nCI should pass.\r\n\r\n### Testing Instructions for Keyboard\r\n\r\nN/A\r\n\r\n## Screenshots or screencast \r\nN/A",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54906/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54906/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33800",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54905",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33800/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33800/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33800/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33800",
- "id": 957359088,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzAwNzk4ODA2",
- "number": 33800,
- "title": "Fix gutenberg_resolve_template() return documentation",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54905/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54905/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54905/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54905",
+ "id": 1917124523,
+ "node_id": "PR_kwDOBNHdeM5bbDsP",
+ "number": 54905,
+ "title": "Block Editor: Expose `getDuotoneFilter()` as private API",
"user": {
- "login": "jeremyfelt",
- "id": 286171,
- "node_id": "MDQ6VXNlcjI4NjE3MQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/286171?v=4",
+ "login": "tyxla",
+ "id": 8436925,
+ "node_id": "MDQ6VXNlcjg0MzY5MjU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/8436925?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/jeremyfelt",
- "html_url": "https://github.com/jeremyfelt",
- "followers_url": "https://api.github.com/users/jeremyfelt/followers",
- "following_url": "https://api.github.com/users/jeremyfelt/following{/other_user}",
- "gists_url": "https://api.github.com/users/jeremyfelt/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/jeremyfelt/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/jeremyfelt/subscriptions",
- "organizations_url": "https://api.github.com/users/jeremyfelt/orgs",
- "repos_url": "https://api.github.com/users/jeremyfelt/repos",
- "events_url": "https://api.github.com/users/jeremyfelt/events{/privacy}",
- "received_events_url": "https://api.github.com/users/jeremyfelt/received_events",
+ "url": "https://api.github.com/users/tyxla",
+ "html_url": "https://github.com/tyxla",
+ "followers_url": "https://api.github.com/users/tyxla/followers",
+ "following_url": "https://api.github.com/users/tyxla/following{/other_user}",
+ "gists_url": "https://api.github.com/users/tyxla/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/tyxla/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/tyxla/subscriptions",
+ "organizations_url": "https://api.github.com/users/tyxla/orgs",
+ "repos_url": "https://api.github.com/users/tyxla/repos",
+ "events_url": "https://api.github.com/users/tyxla/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/tyxla/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 567484057,
- "node_id": "MDU6TGFiZWw1Njc0ODQwNTc=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Documentation",
- "name": "[Type] Developer Documentation",
- "color": "bfd4f2",
+ "id": 1248494790,
+ "node_id": "MDU6TGFiZWwxMjQ4NDk0Nzkw",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Block%20editor",
+ "name": "[Package] Block editor",
+ "color": "ed2572",
"default": false,
- "description": ""
+ "description": "/packages/block-editor"
},
{
- "id": 1604715381,
- "node_id": "MDU6TGFiZWwxNjA0NzE1Mzgx",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Full%20Site%20Editing",
- "name": "[Feature] Full Site Editing",
- "color": "fbca04",
+ "id": 1789345375,
+ "node_id": "MDU6TGFiZWwxNzg5MzQ1Mzc1",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Experimental",
+ "name": "[Type] Experimental",
+ "color": "4109a0",
"default": false,
- "description": ""
+ "description": "Experimental feature or API."
}
],
"state": "closed",
"locked": false,
- "assignee": null,
- "assignees": [],
+ "assignee": {
+ "login": "tyxla",
+ "id": 8436925,
+ "node_id": "MDQ6VXNlcjg0MzY5MjU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/8436925?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/tyxla",
+ "html_url": "https://github.com/tyxla",
+ "followers_url": "https://api.github.com/users/tyxla/followers",
+ "following_url": "https://api.github.com/users/tyxla/following{/other_user}",
+ "gists_url": "https://api.github.com/users/tyxla/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/tyxla/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/tyxla/subscriptions",
+ "organizations_url": "https://api.github.com/users/tyxla/orgs",
+ "repos_url": "https://api.github.com/users/tyxla/repos",
+ "events_url": "https://api.github.com/users/tyxla/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/tyxla/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "tyxla",
+ "id": 8436925,
+ "node_id": "MDQ6VXNlcjg0MzY5MjU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/8436925?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/tyxla",
+ "html_url": "https://github.com/tyxla",
+ "followers_url": "https://api.github.com/users/tyxla/followers",
+ "following_url": "https://api.github.com/users/tyxla/following{/other_user}",
+ "gists_url": "https://api.github.com/users/tyxla/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/tyxla/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/tyxla/subscriptions",
+ "organizations_url": "https://api.github.com/users/tyxla/orgs",
+ "repos_url": "https://api.github.com/users/tyxla/repos",
+ "events_url": "https://api.github.com/users/tyxla/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/tyxla/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -6249,72 +7054,147 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 0,
- "created_at": "2021-08-01T01:36:25Z",
- "updated_at": "2021-08-02T17:01:25Z",
- "closed_at": "2021-08-02T06:04:38Z",
+ "comments": 1,
+ "created_at": "2023-09-28T09:51:22Z",
+ "updated_at": "2023-09-28T12:46:32Z",
+ "closed_at": "2023-09-28T12:46:05Z",
"author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33800",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33800",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33800.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33800.patch"
- },
- "body": "`gutenberg_resolve_template()` now returns a `WP_Block_Template` instance rather than an array of data.",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54905",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54905",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54905.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54905.patch",
+ "merged_at": "2023-09-28T12:46:05Z"
+ },
+ "body": "## What?\r\nThis PR exposes the `getDuotoneFilter()` utility as a private API.\r\n\r\n## Why?\r\nIt was previously exposed as `__unstablePresetDuotoneFilter`, however since #52888 refactored `PresetDuotoneFilter` to `getDuotoneFilter()`, that was never exposed again. \r\n\r\nThe `__unstablePresetDuotoneFilter` was used in external consumers of the `@wordpress/block-editor` package and ideally, we'd like to be able to port to the new version.\r\n \r\n## How?\r\nWe're just adding `getDuotoneFilter()` to the list of private APIs of the package.\r\n\r\n## Testing Instructions\r\nAll checks should be green.\r\n\r\n### Testing Instructions for Keyboard\r\nNone.\r\n\r\n## Screenshots or screencast \r\nNone.",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54905/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54905/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33799",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54903",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33799/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33799/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33799/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33799",
- "id": 957356268,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzAwNzk2MzI3",
- "number": 33799,
- "title": "Fix misspelling of \"queries\" in filter documentation",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54903/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54903/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54903/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54903",
+ "id": 1917050627,
+ "node_id": "PR_kwDOBNHdeM5bazod",
+ "number": 54903,
+ "title": "Tidying `CircularOptionPicker.Option`",
"user": {
- "login": "jeremyfelt",
- "id": 286171,
- "node_id": "MDQ6VXNlcjI4NjE3MQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/286171?v=4",
+ "login": "andrewhayward",
+ "id": 159848,
+ "node_id": "MDQ6VXNlcjE1OTg0OA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/159848?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/jeremyfelt",
- "html_url": "https://github.com/jeremyfelt",
- "followers_url": "https://api.github.com/users/jeremyfelt/followers",
- "following_url": "https://api.github.com/users/jeremyfelt/following{/other_user}",
- "gists_url": "https://api.github.com/users/jeremyfelt/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/jeremyfelt/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/jeremyfelt/subscriptions",
- "organizations_url": "https://api.github.com/users/jeremyfelt/orgs",
- "repos_url": "https://api.github.com/users/jeremyfelt/repos",
- "events_url": "https://api.github.com/users/jeremyfelt/events{/privacy}",
- "received_events_url": "https://api.github.com/users/jeremyfelt/received_events",
+ "url": "https://api.github.com/users/andrewhayward",
+ "html_url": "https://github.com/andrewhayward",
+ "followers_url": "https://api.github.com/users/andrewhayward/followers",
+ "following_url": "https://api.github.com/users/andrewhayward/following{/other_user}",
+ "gists_url": "https://api.github.com/users/andrewhayward/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/andrewhayward/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/andrewhayward/subscriptions",
+ "organizations_url": "https://api.github.com/users/andrewhayward/orgs",
+ "repos_url": "https://api.github.com/users/andrewhayward/repos",
+ "events_url": "https://api.github.com/users/andrewhayward/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/andrewhayward/received_events",
"type": "User",
"site_admin": false
},
- "labels": [],
+ "labels": [
+ {
+ "id": 930001208,
+ "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
+ "name": "[Type] Code Quality",
+ "color": "e5e04b",
+ "default": false,
+ "description": "Issues or PRs that relate to code quality"
+ },
+ {
+ "id": 997392122,
+ "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
+ "name": "[Package] Components",
+ "color": "ed2572",
+ "default": false,
+ "description": "/packages/components"
+ }
+ ],
"state": "closed",
"locked": false,
- "assignee": null,
- "assignees": [],
+ "assignee": {
+ "login": "andrewhayward",
+ "id": 159848,
+ "node_id": "MDQ6VXNlcjE1OTg0OA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/159848?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/andrewhayward",
+ "html_url": "https://github.com/andrewhayward",
+ "followers_url": "https://api.github.com/users/andrewhayward/followers",
+ "following_url": "https://api.github.com/users/andrewhayward/following{/other_user}",
+ "gists_url": "https://api.github.com/users/andrewhayward/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/andrewhayward/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/andrewhayward/subscriptions",
+ "organizations_url": "https://api.github.com/users/andrewhayward/orgs",
+ "repos_url": "https://api.github.com/users/andrewhayward/repos",
+ "events_url": "https://api.github.com/users/andrewhayward/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/andrewhayward/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "andrewhayward",
+ "id": 159848,
+ "node_id": "MDQ6VXNlcjE1OTg0OA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/159848?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/andrewhayward",
+ "html_url": "https://github.com/andrewhayward",
+ "followers_url": "https://api.github.com/users/andrewhayward/followers",
+ "following_url": "https://api.github.com/users/andrewhayward/following{/other_user}",
+ "gists_url": "https://api.github.com/users/andrewhayward/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/andrewhayward/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/andrewhayward/subscriptions",
+ "organizations_url": "https://api.github.com/users/andrewhayward/orgs",
+ "repos_url": "https://api.github.com/users/andrewhayward/repos",
+ "events_url": "https://api.github.com/users/andrewhayward/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/andrewhayward/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -6337,91 +7217,138 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 0,
- "created_at": "2021-08-01T01:21:27Z",
- "updated_at": "2021-08-02T17:01:51Z",
- "closed_at": "2021-08-02T03:22:39Z",
- "author_association": "MEMBER",
+ "comments": 4,
+ "created_at": "2023-09-28T09:08:45Z",
+ "updated_at": "2023-09-29T09:52:05Z",
+ "closed_at": "2023-09-28T19:54:40Z",
+ "author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33799",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33799",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33799.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33799.patch"
- },
- "body": "## Description\r\n\r\nThis fixes an accidental misspelling in 3 places.\r\n\r\n\r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54903",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54903",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54903.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54903.patch",
+ "merged_at": "2023-09-28T19:54:40Z"
+ },
+ "body": "## What?\r\nThis PR removes some now-defunct styling workarounds from `CircularOptionPicker.Option`, and normalises style application between it and `Button`.\r\n\r\n## Why?\r\nBefore `Button` was refactored in #54740, it was necessary to explicitly add an `is-pressed` class to the `CircularOptionPicker.Option`, to avoid using `isPressed` which automatically added `aria-pressed`. With those changes, and the refactor here, `is-pressed` is no longer necessary as a class for `CircularOptionPicker.Option`, so the workaround isn't necessary.\r\n\r\n## How?\r\nThe dependency on the `is-pressed` class is removed from `CircularOptionPicker.Option` instead using the `aria-selected`/`aria-pressed` attribute directly.\r\n\r\n`aria-selected` is also added to `Button` to ensure styling is normalised for other consumers.\r\n\r\n## Testing Instructions\r\nThere should be no visual changes, either in `Button` or `CircularOptionPicker`. Both of these components can be checked in StoryBook.\r\n\r\n### Testing Instructions for Keyboard\r\nThere should be no interaction changes to either `Button` or `CircularOptionPicker`.\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54903/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54903/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33796",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54901",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33796/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33796/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33796/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33796",
- "id": 957288624,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzAwNzQzNTQx",
- "number": 33796,
- "title": "Add spaces in add_theme_support docs code",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54901/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54901/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54901/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54901",
+ "id": 1916846180,
+ "node_id": "PR_kwDOBNHdeM5baHZB",
+ "number": 54901,
+ "title": "Make `editor.getBlocks` to return only testing-related properties",
"user": {
- "login": "kapilpaul",
- "id": 9963909,
- "node_id": "MDQ6VXNlcjk5NjM5MDk=",
- "avatar_url": "https://avatars.githubusercontent.com/u/9963909?v=4",
+ "login": "kevin940726",
+ "id": 7753001,
+ "node_id": "MDQ6VXNlcjc3NTMwMDE=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/7753001?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/kapilpaul",
- "html_url": "https://github.com/kapilpaul",
- "followers_url": "https://api.github.com/users/kapilpaul/followers",
- "following_url": "https://api.github.com/users/kapilpaul/following{/other_user}",
- "gists_url": "https://api.github.com/users/kapilpaul/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/kapilpaul/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/kapilpaul/subscriptions",
- "organizations_url": "https://api.github.com/users/kapilpaul/orgs",
- "repos_url": "https://api.github.com/users/kapilpaul/repos",
- "events_url": "https://api.github.com/users/kapilpaul/events{/privacy}",
- "received_events_url": "https://api.github.com/users/kapilpaul/received_events",
+ "url": "https://api.github.com/users/kevin940726",
+ "html_url": "https://github.com/kevin940726",
+ "followers_url": "https://api.github.com/users/kevin940726/followers",
+ "following_url": "https://api.github.com/users/kevin940726/following{/other_user}",
+ "gists_url": "https://api.github.com/users/kevin940726/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/kevin940726/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/kevin940726/subscriptions",
+ "organizations_url": "https://api.github.com/users/kevin940726/orgs",
+ "repos_url": "https://api.github.com/users/kevin940726/repos",
+ "events_url": "https://api.github.com/users/kevin940726/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/kevin940726/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 567484057,
- "node_id": "MDU6TGFiZWw1Njc0ODQwNTc=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Documentation",
- "name": "[Type] Developer Documentation",
- "color": "bfd4f2",
- "default": false,
- "description": ""
- },
- {
- "id": 1388646432,
- "node_id": "MDU6TGFiZWwxMzg4NjQ2NDMy",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/First-time%20Contributor",
- "name": "First-time Contributor",
- "color": "a0f762",
+ "id": 615503111,
+ "node_id": "MDU6TGFiZWw2MTU1MDMxMTE=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Automated%20Testing",
+ "name": "[Type] Automated Testing",
+ "color": "111111",
"default": false,
- "description": "Pull request opened by a first-time contributor to Gutenberg repository"
+ "description": "Testing infrastructure changes impacting the execution of end-to-end (E2E) and/or unit tests."
}
],
"state": "closed",
"locked": false,
- "assignee": null,
- "assignees": [],
+ "assignee": {
+ "login": "kevin940726",
+ "id": 7753001,
+ "node_id": "MDQ6VXNlcjc3NTMwMDE=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/7753001?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/kevin940726",
+ "html_url": "https://github.com/kevin940726",
+ "followers_url": "https://api.github.com/users/kevin940726/followers",
+ "following_url": "https://api.github.com/users/kevin940726/following{/other_user}",
+ "gists_url": "https://api.github.com/users/kevin940726/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/kevin940726/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/kevin940726/subscriptions",
+ "organizations_url": "https://api.github.com/users/kevin940726/orgs",
+ "repos_url": "https://api.github.com/users/kevin940726/repos",
+ "events_url": "https://api.github.com/users/kevin940726/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/kevin940726/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "kevin940726",
+ "id": 7753001,
+ "node_id": "MDQ6VXNlcjc3NTMwMDE=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/7753001?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/kevin940726",
+ "html_url": "https://github.com/kevin940726",
+ "followers_url": "https://api.github.com/users/kevin940726/followers",
+ "following_url": "https://api.github.com/users/kevin940726/following{/other_user}",
+ "gists_url": "https://api.github.com/users/kevin940726/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/kevin940726/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/kevin940726/subscriptions",
+ "organizations_url": "https://api.github.com/users/kevin940726/orgs",
+ "repos_url": "https://api.github.com/users/kevin940726/repos",
+ "events_url": "https://api.github.com/users/kevin940726/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/kevin940726/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -6444,229 +7371,147 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 1,
- "created_at": "2021-07-31T17:34:13Z",
- "updated_at": "2021-08-02T05:38:52Z",
- "closed_at": "2021-08-02T05:36:51Z",
- "author_association": "CONTRIBUTOR",
- "active_lock_reason": null,
+ "comments": 0,
+ "created_at": "2023-09-28T07:02:22Z",
+ "updated_at": "2023-09-28T08:45:12Z",
+ "closed_at": "2023-09-28T08:44:41Z",
+ "author_association": "MEMBER",
+ "active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33796",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33796",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33796.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33796.patch"
- },
- "body": "## Description\r\nAdded missing space in theme support docs\r\n\r\n## Types of changes\r\n\r\nUpdated the documentation\r\n\r\n## Checklist:\r\n- [ ] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [ ] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54901",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54901",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54901.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54901.patch",
+ "merged_at": "2023-09-28T08:44:41Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\nAs suggested by @ellatrix in a private conversation some time ago, we probably don't need `getBlocks` to return `clientId` and other properties for testing purposes.\r\n\r\nA recent encounter is https://github.com/WordPress/gutenberg/pull/54892#discussion_r1339563443.\r\n\r\n## Why?\r\n\r\nThis is going to make `editor.getBlocks` slightly more helpful in some situations that we can just compare using `toEqual` rather than having to get rid of `clientId` first.\r\n\r\n## How?\r\n\r\nRecursively transform the blocks before returning. A `full` option can be passed if the users want to retain the previous behavior.\r\n\r\nAnother idea would be to allow comparing blocks with consideration of the default attributes' values. That would be probably be better suited in a different PR though.\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\nCI should pass.\r\n\r\n### Testing Instructions for Keyboard\r\n\r\nN/A\r\n\r\n## Screenshots or screencast \r\nN/A",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54901/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54901/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33788",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54900",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33788/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33788/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33788/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33788",
- "id": 957068842,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzAwNTY5NTA4",
- "number": 33788,
- "title": "[RNMobile] Fix Xcode Demo app build",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54900/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54900/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54900/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54900",
+ "id": 1916793917,
+ "node_id": "PR_kwDOBNHdeM5bZ8P-",
+ "number": 54900,
+ "title": "List View: Fix performance issue when selecting all blocks",
"user": {
- "login": "dcalhoun",
- "id": 438664,
- "node_id": "MDQ6VXNlcjQzODY2NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/438664?v=4",
+ "login": "andrewserong",
+ "id": 14988353,
+ "node_id": "MDQ6VXNlcjE0OTg4MzUz",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14988353?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/dcalhoun",
- "html_url": "https://github.com/dcalhoun",
- "followers_url": "https://api.github.com/users/dcalhoun/followers",
- "following_url": "https://api.github.com/users/dcalhoun/following{/other_user}",
- "gists_url": "https://api.github.com/users/dcalhoun/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/dcalhoun/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/dcalhoun/subscriptions",
- "organizations_url": "https://api.github.com/users/dcalhoun/orgs",
- "repos_url": "https://api.github.com/users/dcalhoun/repos",
- "events_url": "https://api.github.com/users/dcalhoun/events{/privacy}",
- "received_events_url": "https://api.github.com/users/dcalhoun/received_events",
+ "url": "https://api.github.com/users/andrewserong",
+ "html_url": "https://github.com/andrewserong",
+ "followers_url": "https://api.github.com/users/andrewserong/followers",
+ "following_url": "https://api.github.com/users/andrewserong/following{/other_user}",
+ "gists_url": "https://api.github.com/users/andrewserong/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/andrewserong/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/andrewserong/subscriptions",
+ "organizations_url": "https://api.github.com/users/andrewserong/orgs",
+ "repos_url": "https://api.github.com/users/andrewserong/repos",
+ "events_url": "https://api.github.com/users/andrewserong/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/andrewserong/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 596512821,
- "node_id": "MDU6TGFiZWw1OTY1MTI4MjE=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Build%20Tooling",
- "name": "[Type] Build Tooling",
- "color": "111111",
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
"default": false,
- "description": ""
+ "description": "An existing feature does not function as intended"
},
{
- "id": 982506020,
- "node_id": "MDU6TGFiZWw5ODI1MDYwMjA=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20i.e.%20Android%20or%20iOS",
- "name": "Mobile App - i.e. Android or iOS",
- "color": "a3ef7a",
+ "id": 1123763869,
+ "node_id": "MDU6TGFiZWwxMTIzNzYzODY5",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20List%20View",
+ "name": "[Feature] List View",
+ "color": "fbca04",
"default": false,
- "description": "Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)"
+ "description": "Menu item in the top toolbar to select blocks from a list of links."
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "dcalhoun",
- "id": 438664,
- "node_id": "MDQ6VXNlcjQzODY2NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/438664?v=4",
+ "login": "andrewserong",
+ "id": 14988353,
+ "node_id": "MDQ6VXNlcjE0OTg4MzUz",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14988353?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/dcalhoun",
- "html_url": "https://github.com/dcalhoun",
- "followers_url": "https://api.github.com/users/dcalhoun/followers",
- "following_url": "https://api.github.com/users/dcalhoun/following{/other_user}",
- "gists_url": "https://api.github.com/users/dcalhoun/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/dcalhoun/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/dcalhoun/subscriptions",
- "organizations_url": "https://api.github.com/users/dcalhoun/orgs",
- "repos_url": "https://api.github.com/users/dcalhoun/repos",
- "events_url": "https://api.github.com/users/dcalhoun/events{/privacy}",
- "received_events_url": "https://api.github.com/users/dcalhoun/received_events",
+ "url": "https://api.github.com/users/andrewserong",
+ "html_url": "https://github.com/andrewserong",
+ "followers_url": "https://api.github.com/users/andrewserong/followers",
+ "following_url": "https://api.github.com/users/andrewserong/following{/other_user}",
+ "gists_url": "https://api.github.com/users/andrewserong/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/andrewserong/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/andrewserong/subscriptions",
+ "organizations_url": "https://api.github.com/users/andrewserong/orgs",
+ "repos_url": "https://api.github.com/users/andrewserong/repos",
+ "events_url": "https://api.github.com/users/andrewserong/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/andrewserong/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "dcalhoun",
- "id": 438664,
- "node_id": "MDQ6VXNlcjQzODY2NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/438664?v=4",
+ "login": "andrewserong",
+ "id": 14988353,
+ "node_id": "MDQ6VXNlcjE0OTg4MzUz",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14988353?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/dcalhoun",
- "html_url": "https://github.com/dcalhoun",
- "followers_url": "https://api.github.com/users/dcalhoun/followers",
- "following_url": "https://api.github.com/users/dcalhoun/following{/other_user}",
- "gists_url": "https://api.github.com/users/dcalhoun/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/dcalhoun/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/dcalhoun/subscriptions",
- "organizations_url": "https://api.github.com/users/dcalhoun/orgs",
- "repos_url": "https://api.github.com/users/dcalhoun/repos",
- "events_url": "https://api.github.com/users/dcalhoun/events{/privacy}",
- "received_events_url": "https://api.github.com/users/dcalhoun/received_events",
+ "url": "https://api.github.com/users/andrewserong",
+ "html_url": "https://github.com/andrewserong",
+ "followers_url": "https://api.github.com/users/andrewserong/followers",
+ "following_url": "https://api.github.com/users/andrewserong/following{/other_user}",
+ "gists_url": "https://api.github.com/users/andrewserong/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/andrewserong/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/andrewserong/subscriptions",
+ "organizations_url": "https://api.github.com/users/andrewserong/orgs",
+ "repos_url": "https://api.github.com/users/andrewserong/repos",
+ "events_url": "https://api.github.com/users/andrewserong/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/andrewserong/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
- "description": null,
- "creator": {
- "login": "github-actions[bot]",
- "id": 41898282,
- "node_id": "MDM6Qm90NDE4OTgyODI=",
- "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/github-actions%5Bbot%5D",
- "html_url": "https://github.com/apps/github-actions",
- "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
- "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
- "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
- "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
- "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
- "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
- "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
- "type": "Bot",
- "site_admin": false
- },
- "open_issues": 0,
- "closed_issues": 113,
- "state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
- "closed_at": null
- },
- "comments": 1,
- "created_at": "2021-07-30T21:26:38Z",
- "updated_at": "2021-08-09T16:07:06Z",
- "closed_at": "2021-08-09T16:06:39Z",
- "author_association": "MEMBER",
- "active_lock_reason": null,
- "pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33788",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33788",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33788.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33788.patch"
- },
- "body": "## Description\r\nReact Native added a `PROJECT_ROOT` [configuration to better support monorepos](https://github.com/facebook/react-native/commit/9ccde378b6e6379df61f9d968be6346ca6be7ead). Prior to setting the `PROJECT_ROOT` configuration, building the Demo app in Xcode threw errors related to the inability to find the entry `index.js` file, as it was searching in the root directory.\r\n\r\nError Text \r\n\r\n```\r\nerror The resource `/Users/username/Sites/a8c/gutenberg/index.js` was not found.\r\nError: The resource `/Users/username/Sites/a8c/gutenberg/index.js` was not found.\r\n at /Users/username/Sites/a8c/gutenberg/node_modules/metro/src/IncrementalBundler.js:457:26\r\n at gotStat (node:fs:2627:21)\r\n at FSReqCallback.oncomplete (node:fs:195:21)\r\ninfo Run CLI with --verbose flag for more details.\r\nCommand PhaseScriptExecution failed with a nonzero exit code\r\n```\r\n\r\n \r\n\r\nError Screenshot \r\n\r\n \r\n\r\n \r\n\r\n## How has this been tested?\r\n1. Check out `trunk` branch. \r\n2. `npm run native start:reset`\r\n3. Launch Xcode and build the Demo app to a physical device. \r\n4. ⚠️ **Unexpected:** Notice the build failure. \r\n5. Check out this PR branch. \r\n6. `npm run native start:reset`\r\n7. Launch Xcode and build the Demo app to a physical device. \r\n8. ℹ️ **Expected:** The build succeeds and runs on the device. \r\n\r\n## Screenshots \r\n\r\n## Types of changes\r\nBug fix\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
- },
- {
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33786",
- "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33786/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33786/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33786/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33786",
- "id": 956992028,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzAwNTA0MTcw",
- "number": 33786,
- "title": "GitHub Templates: Format bug report template",
- "user": {
- "login": "walbo",
- "id": 1415747,
- "node_id": "MDQ6VXNlcjE0MTU3NDc=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1415747?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/walbo",
- "html_url": "https://github.com/walbo",
- "followers_url": "https://api.github.com/users/walbo/followers",
- "following_url": "https://api.github.com/users/walbo/following{/other_user}",
- "gists_url": "https://api.github.com/users/walbo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/walbo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/walbo/subscriptions",
- "organizations_url": "https://api.github.com/users/walbo/orgs",
- "repos_url": "https://api.github.com/users/walbo/repos",
- "events_url": "https://api.github.com/users/walbo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/walbo/received_events",
- "type": "User",
- "site_admin": false
- },
- "labels": [
- {
- "id": 1032028862,
- "node_id": "MDU6TGFiZWwxMDMyMDI4ODYy",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Project%20Management",
- "name": "[Type] Project Management",
- "color": "e55ead",
- "default": false,
- "description": "Meta-issues related to project management of Gutenberg"
- }
- ],
- "state": "closed",
- "locked": false,
- "assignee": null,
- "assignees": [],
- "milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -6689,69 +7534,76 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 0,
- "created_at": "2021-07-30T19:00:14Z",
- "updated_at": "2021-08-02T10:12:55Z",
- "closed_at": "2021-08-02T04:01:02Z",
+ "comments": 11,
+ "created_at": "2023-09-28T06:21:03Z",
+ "updated_at": "2023-10-04T09:38:04Z",
+ "closed_at": "2023-10-04T02:21:32Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33786",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33786",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33786.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33786.patch"
- },
- "body": "Follow-up to #33761\r\n\r\nSeem like the bug report template never went trough prettier. Running `npm run format` adds the correct spacing to the .yml file.\r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54900",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54900",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54900.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54900.patch",
+ "merged_at": "2023-10-04T02:21:32Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\n\r\nPart of: https://github.com/WordPress/gutenberg/issues/49563\r\n\r\nFix a performance issue with the List View when selecting all blocks within the editor canvas, with the list view open. For long posts or pages, the current performance issue means it will likely feel broken as it can take many seconds to apply the selection.\r\n\r\n## Why?\r\n\r\n\r\n\r\n\r\nThere are two related performance issues on `trunk` that affect this behaviour:\r\n\r\n* Currently all selected blocks are rendered as \"real\" list view items, bypassing the windowing logic, which means that there are unnecessary renders / mounts of selected blocks.\r\n* The block item (`ListViewBlock`) is currently responsible for directing focus to it when the list view is mounted. Because it occurs at the block item level, it is possible for dozens of calls to competing `cellRef.current.focus()` to occur at once, causing the editor to slow down until they are all complete.\r\n\r\nThe result of these two issues interacting is that when you select all blocks with the list view open, (or go to open the list view after selecting all blocks), the list view slows to a crawl until all the `.focus()` calls have completed.\r\n\r\n## How?\r\n\r\n\r\n1. Only render list view items for selected blocks that exist outside the current windowing logic if it is the first of the block selection. This prevents a large amount of re-rendering / re-mounting when a user goes to select all blocks.\r\n2. Move the focus logic up to the list view root, so that it is only fired once, irrespective of the number of list view items rendered. To do so, I've moved the existing logic for focusing a list view item to a shared function in `utils` (the logic was introduced back in https://github.com/WordPress/gutenberg/issues/50422).\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n\r\n1. Add a post or page with heaps of blocks (e.g. for testing that makes all this clear, add > 150 paragraphs)\r\n3. Ensure the list view is open\r\n4. Focus somewhere within a block in the editor canvas\r\n5. Press CMD+A once to select all of that block. Press CMD+A again to select all blocks (if you're in a nested block, it'll just select the parent — keep pressing to eventually select all blocks, one level of hierarchy at a time)\r\n6. If you're on `trunk`, it'll take a _long_ time to select all blocks in a long post or page\r\n7. With this PR applied, it should take under a second to select all blocks. Maybe not snappy, but fast enough that it doesn't feel broken\r\n8. Ensure scrolling up and down the list view remains performant (there'll still be a slight delay rendering items, caused by the windowing logic, but there shouldn't be any big slowdowns)\r\n\r\nAssuming all this is working okay for this PR, we then need to make sure that we haven't broken the scroll into view logic when single block selection changes (introduced in https://github.com/WordPress/gutenberg/pull/46895). Follow the testing instructions from that PR:\r\n\r\n> In a really long post or page, with the list view opened, scroll the editor canvas to far down the page or post and select a block outside of the currently visible area within the list view. The list view should scroll the selected block into view.\r\n> To test the windowed area versus the non-windowed area, add a very large number of blocks (e.g. 60+) and try selecting from the very top block to the very bottom block in the list, via the editor canvas.\r\n\r\nFinally, double check that focus still appears to be correct when deleting blocks via the list view (with an item in the list view focused, press the Backspace key).\r\n\r\n## Screenshots or screencast \r\n\r\nNote: the List View must be open to test out this performance issue.\r\n\r\nThe following screengrabs are from a post containing 203 blocks. The first press of CMD+A works quickly to select the individual block. It's the second press of CMD+A to select all blocks that's the problem here!\r\n\r\n### Before (takes 8 seconds or so to select all)\r\n\r\nhttps://github.com/WordPress/gutenberg/assets/14988353/700f8d73-4194-4f44-b635-f5b08604b3c4\r\n\r\n### After (takes < 1 second to select all)\r\n\r\nhttps://github.com/WordPress/gutenberg/assets/14988353/9cf84750-b9f4-45e4-9267-ee9e3ec562ac\r\n\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54900/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54900/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33785",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54898",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33785/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33785/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33785/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33785",
- "id": 956986302,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzAwNDk5Mjc0",
- "number": 33785,
- "title": "Readable JS assets Plugin: Fix webpack 5 support",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54898/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54898/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54898/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54898",
+ "id": 1916602785,
+ "node_id": "PR_kwDOBNHdeM5bZSyn",
+ "number": 54898,
+ "title": "Mobile Release v1.105.0",
"user": {
- "login": "walbo",
- "id": 1415747,
- "node_id": "MDQ6VXNlcjE0MTU3NDc=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1415747?v=4",
+ "login": "derekblank",
+ "id": 643285,
+ "node_id": "MDQ6VXNlcjY0MzI4NQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/643285?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/walbo",
- "html_url": "https://github.com/walbo",
- "followers_url": "https://api.github.com/users/walbo/followers",
- "following_url": "https://api.github.com/users/walbo/following{/other_user}",
- "gists_url": "https://api.github.com/users/walbo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/walbo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/walbo/subscriptions",
- "organizations_url": "https://api.github.com/users/walbo/orgs",
- "repos_url": "https://api.github.com/users/walbo/repos",
- "events_url": "https://api.github.com/users/walbo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/walbo/received_events",
+ "url": "https://api.github.com/users/derekblank",
+ "html_url": "https://github.com/derekblank",
+ "followers_url": "https://api.github.com/users/derekblank/followers",
+ "following_url": "https://api.github.com/users/derekblank/following{/other_user}",
+ "gists_url": "https://api.github.com/users/derekblank/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/derekblank/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/derekblank/subscriptions",
+ "organizations_url": "https://api.github.com/users/derekblank/orgs",
+ "repos_url": "https://api.github.com/users/derekblank/repos",
+ "events_url": "https://api.github.com/users/derekblank/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/derekblank/received_events",
"type": "User",
"site_admin": false
},
"labels": [
- {
- "id": 531680823,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
- "name": "[Type] Bug",
- "color": "d93f0b",
- "default": false,
- "description": "An existing feature is broken."
- },
{
"id": 596512821,
"node_id": "MDU6TGFiZWw1OTY1MTI4MjE=",
@@ -6759,16 +7611,16 @@
"name": "[Type] Build Tooling",
"color": "111111",
"default": false,
- "description": ""
+ "description": "Issues or PRs related to build tooling"
},
{
- "id": 3222328876,
- "node_id": "MDU6TGFiZWwzMjIyMzI4ODc2",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Readable%20JS%20Assets%20Webpack%20Plugin",
- "name": "[Package] Readable JS Assets Webpack Plugin",
- "color": "ed2572",
+ "id": 982506020,
+ "node_id": "MDU6TGFiZWw5ODI1MDYwMjA=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20i.e.%20Android%20or%20iOS",
+ "name": "Mobile App - i.e. Android or iOS",
+ "color": "a3ef7a",
"default": false,
- "description": "/packages/readable-js-assets-webpack-plugin"
+ "description": "Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)"
}
],
"state": "closed",
@@ -6776,13 +7628,13 @@
"assignee": null,
"assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -6805,68 +7657,84 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
"comments": 1,
- "created_at": "2021-07-30T18:50:05Z",
- "updated_at": "2021-08-02T14:50:22Z",
- "closed_at": "2021-08-02T14:49:37Z",
- "author_association": "CONTRIBUTOR",
+ "created_at": "2023-09-28T02:28:14Z",
+ "updated_at": "2023-09-28T14:44:47Z",
+ "closed_at": "2023-09-28T14:44:14Z",
+ "author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33785",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33785",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33785.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33785.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\nIn webpack v5 `Compilation.chunks` and `Chunk.files` changed from arrays to sets. See https://webpack.js.org/blog/2020-10-10-webpack-5-release/#arrays-to-sets\r\n\r\nSupport both v4 and v5 by making sure we work with arrays (converting the set to array for v5) when generating the files list.\r\n\r\n## How has this been tested?\r\nTested the plugin both in webpack v4 and v5.\r\n\r\n\r\n\r\n\r\n## Types of changes\r\nBug fix\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [ ] My code has proper inline documentation. \r\n- [ ] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54898",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54898",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54898.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54898.patch",
+ "merged_at": "2023-09-28T14:44:14Z"
+ },
+ "body": "## Description\nRelease 1.105.0 of the react-native-editor and Gutenberg-Mobile.\n\nFor more information about this release and testing instructions, please see the related Gutenberg-Mobile PR: https://github.com/wordpress-mobile/gutenberg-mobile/pull/6243\n\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54898/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54898/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33782",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54897",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33782/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33782/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33782/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33782",
- "id": 956872839,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzAwNDAzNDI1",
- "number": 33782,
- "title": "[RNMobile] Fix crash caused by column block with padding having paragraph as a child",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54897/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54897/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54897/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54897",
+ "id": 1916594809,
+ "node_id": "PR_kwDOBNHdeM5bZRIM",
+ "number": 54897,
+ "title": "[RNMobile] Update mobile iOS Ruby version to from 2.7.4 to 3.2.2.",
"user": {
- "login": "ceyhun",
- "id": 1845482,
- "node_id": "MDQ6VXNlcjE4NDU0ODI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1845482?v=4",
+ "login": "derekblank",
+ "id": 643285,
+ "node_id": "MDQ6VXNlcjY0MzI4NQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/643285?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/ceyhun",
- "html_url": "https://github.com/ceyhun",
- "followers_url": "https://api.github.com/users/ceyhun/followers",
- "following_url": "https://api.github.com/users/ceyhun/following{/other_user}",
- "gists_url": "https://api.github.com/users/ceyhun/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/ceyhun/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/ceyhun/subscriptions",
- "organizations_url": "https://api.github.com/users/ceyhun/orgs",
- "repos_url": "https://api.github.com/users/ceyhun/repos",
- "events_url": "https://api.github.com/users/ceyhun/events{/privacy}",
- "received_events_url": "https://api.github.com/users/ceyhun/received_events",
+ "url": "https://api.github.com/users/derekblank",
+ "html_url": "https://github.com/derekblank",
+ "followers_url": "https://api.github.com/users/derekblank/followers",
+ "following_url": "https://api.github.com/users/derekblank/following{/other_user}",
+ "gists_url": "https://api.github.com/users/derekblank/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/derekblank/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/derekblank/subscriptions",
+ "organizations_url": "https://api.github.com/users/derekblank/orgs",
+ "repos_url": "https://api.github.com/users/derekblank/repos",
+ "events_url": "https://api.github.com/users/derekblank/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/derekblank/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 531680823,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
- "name": "[Type] Bug",
- "color": "d93f0b",
+ "id": 531680824,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjQ=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Task",
+ "name": "[Type] Task",
+ "color": "fef2c0",
"default": false,
- "description": "An existing feature is broken."
+ "description": "Issues or PRs that have been broken down into an individual action to take"
},
{
"id": 982506020,
@@ -6876,6 +7744,15 @@
"color": "a3ef7a",
"default": false,
"description": "Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)"
+ },
+ {
+ "id": 3639254262,
+ "node_id": "LA_kwDOBNHdeM7Y6pz2",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20Automation",
+ "name": "Mobile App - Automation",
+ "color": "669206",
+ "default": false,
+ "description": "Label used to initiate Mobile App PR Automation"
}
],
"state": "closed",
@@ -6883,13 +7760,13 @@
"assignee": null,
"assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -6912,131 +7789,147 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 3,
- "created_at": "2021-07-30T15:50:03Z",
- "updated_at": "2021-08-03T09:18:47Z",
- "closed_at": "2021-08-03T09:18:16Z",
+ "comments": 5,
+ "created_at": "2023-09-28T02:15:11Z",
+ "updated_at": "2023-10-04T03:12:37Z",
+ "closed_at": "2023-10-04T03:12:13Z",
"author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33782",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33782",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33782.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33782.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\n\r\n\r\nFixes https://github.com/wordpress-mobile/WordPress-Android/issues/15016.\r\n\r\nColumn block has [a new feature](https://github.com/WordPress/gutenberg/pull/31778), where we can add paddings to a column block and it passes these to its child as `wrapperStyles`. These paddings can have units of `%` as well as `px`, `em`, etc. Since paragraph block on mobile doesn't yet support all of those units, the app crashes during layout. \r\n\r\n\r\n## How has this been tested?\r\n\r\n\r\n\r\n\r\nOn web, using a self-hosted or atomic site with latest Gutenberg version.\r\n1. Add a columns block\r\n1. Select 100 to add a single column\r\n1. Add a paragraph block inside this column and add some text\r\n1. Select back the column\r\n1. Add some padding from sidebar -> `Spacing` -> `Padding`\r\n1. Save the post as draft and open from Mobile Gutenberg\r\n\r\n \r\n\r\nAlternatively you can use this HTML in the Gutenberg demo app by switching to HTML mode, pasting it and switching back to Visual mode to test:\r\n\r\n```\r\n\r\n\r\n\r\n```\r\n\r\n## Screenshots \r\n\r\nBefore | After\r\n-- | -- \r\n | \r\n\r\n\r\n\r\n\r\n\r\n## Types of changes\r\n\r\nBug fix (non-breaking change which fixes an issue)\r\n\r\n\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54897",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54897",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54897.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54897.patch",
+ "merged_at": "2023-10-04T03:12:13Z"
+ },
+ "body": "\r\n\r\n## What?\r\nBumps the iOS Ruby version to 3.2.2.\r\n\r\nRelated:\r\n* https://github.com/wordpress-mobile/gutenberg-mobile/pull/6180\r\n\r\n## Why?\r\nThe WPiOS Ruby version was updated to 3.2.2 in https://github.com/wordpress-mobile/WordPress-iOS/pull/21498.\r\n\r\n## How?\r\nUpdates `packages/react-native-editor/ios/.ruby-version` to 3.2.2.\r\n\r\n## Testing Instructions\r\n`rbenv install 3.2.2` should run successfully.\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54897/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54897/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33781",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54894",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33781/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33781/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33781/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33781",
- "id": 956812984,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzAwMzUwNTc1",
- "number": 33781,
- "title": "[docs] fix: `supports.color.gradients` is plural",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54894/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54894/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54894/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54894",
+ "id": 1916537313,
+ "node_id": "PR_kwDOBNHdeM5bZFOt",
+ "number": 54894,
+ "title": "Patterns: Remove category description in inserter panel",
"user": {
- "login": "chrisvanpatten",
- "id": 1231306,
- "node_id": "MDQ6VXNlcjEyMzEzMDY=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1231306?v=4",
+ "login": "aaronrobertshaw",
+ "id": 60436221,
+ "node_id": "MDQ6VXNlcjYwNDM2MjIx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/60436221?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/chrisvanpatten",
- "html_url": "https://github.com/chrisvanpatten",
- "followers_url": "https://api.github.com/users/chrisvanpatten/followers",
- "following_url": "https://api.github.com/users/chrisvanpatten/following{/other_user}",
- "gists_url": "https://api.github.com/users/chrisvanpatten/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/chrisvanpatten/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/chrisvanpatten/subscriptions",
- "organizations_url": "https://api.github.com/users/chrisvanpatten/orgs",
- "repos_url": "https://api.github.com/users/chrisvanpatten/repos",
- "events_url": "https://api.github.com/users/chrisvanpatten/events{/privacy}",
- "received_events_url": "https://api.github.com/users/chrisvanpatten/received_events",
+ "url": "https://api.github.com/users/aaronrobertshaw",
+ "html_url": "https://github.com/aaronrobertshaw",
+ "followers_url": "https://api.github.com/users/aaronrobertshaw/followers",
+ "following_url": "https://api.github.com/users/aaronrobertshaw/following{/other_user}",
+ "gists_url": "https://api.github.com/users/aaronrobertshaw/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/aaronrobertshaw/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/aaronrobertshaw/subscriptions",
+ "organizations_url": "https://api.github.com/users/aaronrobertshaw/orgs",
+ "repos_url": "https://api.github.com/users/aaronrobertshaw/repos",
+ "events_url": "https://api.github.com/users/aaronrobertshaw/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/aaronrobertshaw/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 567484057,
- "node_id": "MDU6TGFiZWw1Njc0ODQwNTc=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Documentation",
- "name": "[Type] Developer Documentation",
- "color": "bfd4f2",
+ "id": 531680825,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
+ "name": "[Type] Enhancement",
+ "color": "FEF2C0",
"default": false,
- "description": ""
+ "description": "A suggestion for improvement."
},
{
- "id": 2551400612,
- "node_id": "MDU6TGFiZWwyNTUxNDAwNjEy",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/developer-docs",
- "name": "developer-docs",
- "color": "1d76db",
+ "id": 1882657161,
+ "node_id": "MDU6TGFiZWwxODgyNjU3MTYx",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Patterns",
+ "name": "[Feature] Patterns",
+ "color": "fbca04",
"default": false,
- "description": "Issues that impact the block editor developer documentation site"
+ "description": "A collection of blocks that can be synced (previously reusable blocks) or unsynced"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "chrisvanpatten",
- "id": 1231306,
- "node_id": "MDQ6VXNlcjEyMzEzMDY=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1231306?v=4",
+ "login": "aaronrobertshaw",
+ "id": 60436221,
+ "node_id": "MDQ6VXNlcjYwNDM2MjIx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/60436221?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/chrisvanpatten",
- "html_url": "https://github.com/chrisvanpatten",
- "followers_url": "https://api.github.com/users/chrisvanpatten/followers",
- "following_url": "https://api.github.com/users/chrisvanpatten/following{/other_user}",
- "gists_url": "https://api.github.com/users/chrisvanpatten/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/chrisvanpatten/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/chrisvanpatten/subscriptions",
- "organizations_url": "https://api.github.com/users/chrisvanpatten/orgs",
- "repos_url": "https://api.github.com/users/chrisvanpatten/repos",
- "events_url": "https://api.github.com/users/chrisvanpatten/events{/privacy}",
- "received_events_url": "https://api.github.com/users/chrisvanpatten/received_events",
+ "url": "https://api.github.com/users/aaronrobertshaw",
+ "html_url": "https://github.com/aaronrobertshaw",
+ "followers_url": "https://api.github.com/users/aaronrobertshaw/followers",
+ "following_url": "https://api.github.com/users/aaronrobertshaw/following{/other_user}",
+ "gists_url": "https://api.github.com/users/aaronrobertshaw/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/aaronrobertshaw/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/aaronrobertshaw/subscriptions",
+ "organizations_url": "https://api.github.com/users/aaronrobertshaw/orgs",
+ "repos_url": "https://api.github.com/users/aaronrobertshaw/repos",
+ "events_url": "https://api.github.com/users/aaronrobertshaw/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/aaronrobertshaw/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "chrisvanpatten",
- "id": 1231306,
- "node_id": "MDQ6VXNlcjEyMzEzMDY=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1231306?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/chrisvanpatten",
- "html_url": "https://github.com/chrisvanpatten",
- "followers_url": "https://api.github.com/users/chrisvanpatten/followers",
- "following_url": "https://api.github.com/users/chrisvanpatten/following{/other_user}",
- "gists_url": "https://api.github.com/users/chrisvanpatten/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/chrisvanpatten/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/chrisvanpatten/subscriptions",
- "organizations_url": "https://api.github.com/users/chrisvanpatten/orgs",
- "repos_url": "https://api.github.com/users/chrisvanpatten/repos",
- "events_url": "https://api.github.com/users/chrisvanpatten/events{/privacy}",
- "received_events_url": "https://api.github.com/users/chrisvanpatten/received_events",
+ "login": "aaronrobertshaw",
+ "id": 60436221,
+ "node_id": "MDQ6VXNlcjYwNDM2MjIx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/60436221?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/aaronrobertshaw",
+ "html_url": "https://github.com/aaronrobertshaw",
+ "followers_url": "https://api.github.com/users/aaronrobertshaw/followers",
+ "following_url": "https://api.github.com/users/aaronrobertshaw/following{/other_user}",
+ "gists_url": "https://api.github.com/users/aaronrobertshaw/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/aaronrobertshaw/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/aaronrobertshaw/subscriptions",
+ "organizations_url": "https://api.github.com/users/aaronrobertshaw/orgs",
+ "repos_url": "https://api.github.com/users/aaronrobertshaw/repos",
+ "events_url": "https://api.github.com/users/aaronrobertshaw/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/aaronrobertshaw/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -7059,93 +7952,149 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 0,
- "created_at": "2021-07-30T14:47:40Z",
- "updated_at": "2021-07-30T16:23:33Z",
- "closed_at": "2021-07-30T16:22:36Z",
- "author_association": "MEMBER",
+ "comments": 4,
+ "created_at": "2023-09-28T00:39:53Z",
+ "updated_at": "2023-10-05T11:16:48Z",
+ "closed_at": "2023-10-02T16:55:19Z",
+ "author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33781",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33781",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33781.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33781.patch"
- },
- "body": "Small typo in the block supports documentation; `supports.color.gradient` should be `supports.color.gradients` as plural.",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54894",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54894",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54894.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54894.patch",
+ "merged_at": "2023-10-02T16:55:19Z"
+ },
+ "body": "Fixes: https://github.com/WordPress/gutenberg/issues/54874\r\n\r\n## What?\r\n\r\nRemoves pattern category description from inserter panel.\r\n\r\n## Why?\r\n\r\nNot all pattern categories have a description and those that do have varying length descriptions leading to additional variance in the UI.\r\n\r\n## How?\r\n\r\nRemove rendering of the category description and tweak spacing between the panel header and patterns list. \r\n\r\n**Note: This spacing will likely need tweaking further but the header and pattern list padding now total 32px between them matching the padding at the bottom of the pattern list**\r\n\r\n## Testing Instructions\r\n\r\n1. Open the post editor\r\n2. Open the Block Inserter and select the patterns tab\r\n3. Navigate through various pattern categories and ensure no category descriptions are shown\r\n\r\n## Screenshots or screencast \r\n\r\n \r\n \r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54894/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54894/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33780",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54892",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33780/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33780/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33780/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33780",
- "id": 956788321,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzAwMzI5OTY1",
- "number": 33780,
- "title": "fix: broken link in documentation to block support mechanism",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54892/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54892/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54892/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54892",
+ "id": 1916429821,
+ "node_id": "PR_kwDOBNHdeM5bYtvS",
+ "number": 54892,
+ "title": "Patterns: add a new spec for for adding an unsynced pattern",
"user": {
- "login": "RhnSharma",
- "id": 22129063,
- "node_id": "MDQ6VXNlcjIyMTI5MDYz",
- "avatar_url": "https://avatars.githubusercontent.com/u/22129063?v=4",
+ "login": "glendaviesnz",
+ "id": 3629020,
+ "node_id": "MDQ6VXNlcjM2MjkwMjA=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/3629020?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/RhnSharma",
- "html_url": "https://github.com/RhnSharma",
- "followers_url": "https://api.github.com/users/RhnSharma/followers",
- "following_url": "https://api.github.com/users/RhnSharma/following{/other_user}",
- "gists_url": "https://api.github.com/users/RhnSharma/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/RhnSharma/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/RhnSharma/subscriptions",
- "organizations_url": "https://api.github.com/users/RhnSharma/orgs",
- "repos_url": "https://api.github.com/users/RhnSharma/repos",
- "events_url": "https://api.github.com/users/RhnSharma/events{/privacy}",
- "received_events_url": "https://api.github.com/users/RhnSharma/received_events",
+ "url": "https://api.github.com/users/glendaviesnz",
+ "html_url": "https://github.com/glendaviesnz",
+ "followers_url": "https://api.github.com/users/glendaviesnz/followers",
+ "following_url": "https://api.github.com/users/glendaviesnz/following{/other_user}",
+ "gists_url": "https://api.github.com/users/glendaviesnz/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/glendaviesnz/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/glendaviesnz/subscriptions",
+ "organizations_url": "https://api.github.com/users/glendaviesnz/orgs",
+ "repos_url": "https://api.github.com/users/glendaviesnz/repos",
+ "events_url": "https://api.github.com/users/glendaviesnz/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/glendaviesnz/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 531680823,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
- "name": "[Type] Bug",
- "color": "d93f0b",
+ "id": 930001208,
+ "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
+ "name": "[Type] Code Quality",
+ "color": "e5e04b",
"default": false,
- "description": "An existing feature is broken."
+ "description": "Issues or PRs that relate to code quality"
},
{
- "id": 567484057,
- "node_id": "MDU6TGFiZWw1Njc0ODQwNTc=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Documentation",
- "name": "[Type] Developer Documentation",
- "color": "bfd4f2",
+ "id": 1882657161,
+ "node_id": "MDU6TGFiZWwxODgyNjU3MTYx",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Patterns",
+ "name": "[Feature] Patterns",
+ "color": "fbca04",
"default": false,
- "description": ""
+ "description": "A collection of blocks that can be synced (previously reusable blocks) or unsynced"
}
],
"state": "closed",
"locked": false,
- "assignee": null,
- "assignees": [],
- "milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
- "description": null,
- "creator": {
+ "assignee": {
+ "login": "glendaviesnz",
+ "id": 3629020,
+ "node_id": "MDQ6VXNlcjM2MjkwMjA=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/3629020?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/glendaviesnz",
+ "html_url": "https://github.com/glendaviesnz",
+ "followers_url": "https://api.github.com/users/glendaviesnz/followers",
+ "following_url": "https://api.github.com/users/glendaviesnz/following{/other_user}",
+ "gists_url": "https://api.github.com/users/glendaviesnz/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/glendaviesnz/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/glendaviesnz/subscriptions",
+ "organizations_url": "https://api.github.com/users/glendaviesnz/orgs",
+ "repos_url": "https://api.github.com/users/glendaviesnz/repos",
+ "events_url": "https://api.github.com/users/glendaviesnz/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/glendaviesnz/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "glendaviesnz",
+ "id": 3629020,
+ "node_id": "MDQ6VXNlcjM2MjkwMjA=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/3629020?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/glendaviesnz",
+ "html_url": "https://github.com/glendaviesnz",
+ "followers_url": "https://api.github.com/users/glendaviesnz/followers",
+ "following_url": "https://api.github.com/users/glendaviesnz/following{/other_user}",
+ "gists_url": "https://api.github.com/users/glendaviesnz/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/glendaviesnz/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/glendaviesnz/subscriptions",
+ "organizations_url": "https://api.github.com/users/glendaviesnz/orgs",
+ "repos_url": "https://api.github.com/users/glendaviesnz/repos",
+ "events_url": "https://api.github.com/users/glendaviesnz/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/glendaviesnz/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
"login": "github-actions[bot]",
"id": 41898282,
"node_id": "MDM6Qm90NDE4OTgyODI=",
@@ -7166,39 +8115,169 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 0,
- "created_at": "2021-07-30T14:17:38Z",
- "updated_at": "2021-08-04T09:15:30Z",
- "closed_at": "2021-08-04T09:14:57Z",
+ "comments": 2,
+ "created_at": "2023-09-27T22:33:16Z",
+ "updated_at": "2023-09-28T07:55:44Z",
+ "closed_at": "2023-09-28T07:55:16Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33780",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33780",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33780.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33780.patch"
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54892",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54892",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54892.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54892.patch",
+ "merged_at": "2023-09-28T07:55:16Z"
+ },
+ "body": "## What?\r\nAdds an e2e spec for adding an unsynced pattern in the post editor.\r\n\r\n## Why?\r\nTo try and guard against future regressions like https://github.com/WordPress/gutenberg/pull/54804.\r\n\r\n## How?\r\nAdds a new spec that goes through the flow of adding an unsynced pattern in the post editor, checking that it is not mistakingly added as synced, and checking that it is then available in the inserter, and gets inserted as a plain block.\r\n\r\n## Testing Instructions\r\n\r\n- Check that CI tests pass\r\n- Check test locally with `npm run test:e2e:playwright specs/editor/various/unsynced-pattern.spec.js`\r\n\r\n\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54892/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54892/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54890",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54890/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54890/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54890/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54890",
+ "id": 1916234211,
+ "node_id": "PR_kwDOBNHdeM5bYCMh",
+ "number": 54890,
+ "title": "Update versions in WP for 6.4",
+ "user": {
+ "login": "annezazu",
+ "id": 26996883,
+ "node_id": "MDQ6VXNlcjI2OTk2ODgz",
+ "avatar_url": "https://avatars.githubusercontent.com/u/26996883?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/annezazu",
+ "html_url": "https://github.com/annezazu",
+ "followers_url": "https://api.github.com/users/annezazu/followers",
+ "following_url": "https://api.github.com/users/annezazu/following{/other_user}",
+ "gists_url": "https://api.github.com/users/annezazu/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/annezazu/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/annezazu/subscriptions",
+ "organizations_url": "https://api.github.com/users/annezazu/orgs",
+ "repos_url": "https://api.github.com/users/annezazu/repos",
+ "events_url": "https://api.github.com/users/annezazu/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/annezazu/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 567484057,
+ "node_id": "MDU6TGFiZWw1Njc0ODQwNTc=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Developer%20Documentation",
+ "name": "[Type] Developer Documentation",
+ "color": "bfd4f2",
+ "default": false,
+ "description": "Documentation for developers"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
},
- "body": "\r\n\r\n\r\n\r\n## Description\r\n\r\nFixes #33778\r\nFix a broken link to block support mechanism in `theme-json.md`.\r\n\r\nHi @Mamaduka, how does this look?\r\nLet me know if this needs any changes.\r\nThanks\r\n\r\n## Types of changes\r\n\r\n Bug fix (non-breaking change which fixes an issue) \r\n\r\n\r\n\r\n## Checklist:\r\n- [ ] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [ ] My code has proper inline documentation. \r\n- [ ] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "comments": 3,
+ "created_at": "2023-09-27T20:05:19Z",
+ "updated_at": "2023-10-02T14:43:40Z",
+ "closed_at": "2023-10-02T07:53:27Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54890",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54890",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54890.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54890.patch",
+ "merged_at": "2023-10-02T07:53:27Z"
+ },
+ "body": "Quick update to the Versions in WP doc for 6.4 with beta 1 out in the world.",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54890/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54890/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33779",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54887",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33779/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33779/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33779/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33779",
- "id": 956687808,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzAwMjQzMzA1",
- "number": 33779,
- "title": "URL Details: Avoid PHP notice when parsing protocol-relative icon URLs",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54887/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54887/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54887/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54887",
+ "id": 1916148734,
+ "node_id": "PR_kwDOBNHdeM5bXvkS",
+ "number": 54887,
+ "title": "Block Editor: Update strings in blocks 'RenameModal' component",
"user": {
"login": "Mamaduka",
"id": 240569,
@@ -7221,22 +8300,31 @@
},
"labels": [
{
- "id": 531680823,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
- "name": "[Type] Bug",
- "color": "d93f0b",
+ "id": 531680825,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
+ "name": "[Type] Enhancement",
+ "color": "FEF2C0",
"default": false,
- "description": "An existing feature is broken."
+ "description": "A suggestion for improvement."
},
{
- "id": 1838782557,
- "node_id": "MDU6TGFiZWwxODM4NzgyNTU3",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Link%20Editing",
- "name": "[Feature] Link Editing",
- "color": "fbca04",
+ "id": 596965480,
+ "node_id": "MDU6TGFiZWw1OTY5NjU0ODA=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Internationalization%20(i18n)",
+ "name": "Internationalization (i18n)",
+ "color": "e881e2",
"default": false,
- "description": "Link components (LinkControl, URLInput) and integrations (RichText link formatting)"
+ "description": "Issues or PRs related to internationalization efforts"
+ },
+ {
+ "id": 1248494790,
+ "node_id": "MDU6TGFiZWwxMjQ4NDk0Nzkw",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Block%20editor",
+ "name": "[Package] Block editor",
+ "color": "ed2572",
+ "default": false,
+ "description": "/packages/block-editor"
}
],
"state": "closed",
@@ -7284,13 +8372,13 @@
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -7313,122 +8401,116 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 0,
- "created_at": "2021-07-30T12:09:09Z",
- "updated_at": "2021-07-30T14:14:09Z",
- "closed_at": "2021-07-30T14:13:37Z",
+ "comments": 2,
+ "created_at": "2023-09-27T18:58:27Z",
+ "updated_at": "2023-09-29T12:05:00Z",
+ "closed_at": "2023-09-27T20:13:04Z",
"author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33779",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33779",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33779.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33779.patch"
- },
- "body": "## Description\r\nSites might use protocol-relative URLs for icons. When a similar URL is parsed with `parse_url`, it doesn't return schema and triggered PHP notice.\r\n\r\nExample: https://3v4l.org/SFEiZ\r\n\r\n## How has this been tested?\r\n1. Create a post.\r\n2. Add a paragraph with a link to `https://twitter.com/`\r\n3. Display rich URL preview.\r\n4. WP shouldn't log the `PHP Notice: Undefined index: scheme` message.\r\n\r\n## Types of changes\r\nBugfix\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54887",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54887",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54887.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54887.patch",
+ "merged_at": "2023-09-27T20:13:04Z"
+ },
+ "body": "## What?\r\nFixes #54872.\r\n\r\nPR simplifies the action announcement message text in blocks `RenameModal` component. The submit action only resolves in two states - \"reset\" and \"changed,\" let's make them part of the message.\r\n\r\n## Why?\r\nTo make translations easier.\r\n\r\n## Testing Instructions\r\nAll CI checks pass. There are no changes in component behavior.\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54887/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54887/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33777",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54886",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33777/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33777/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33777/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33777",
- "id": 956555230,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NzAwMTMwNjkz",
- "number": 33777,
- "title": "Enable ability to remove a link from the Nav Link block in the Nav Block",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54886/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54886/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54886/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54886",
+ "id": 1916142985,
+ "node_id": "PR_kwDOBNHdeM5bXuTW",
+ "number": 54886,
+ "title": "Font Library: Changed the OTF mime type expected value to be what PHP returns",
"user": {
- "login": "getdave",
- "id": 444434,
- "node_id": "MDQ6VXNlcjQ0NDQzNA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/444434?v=4",
+ "login": "pbking",
+ "id": 146530,
+ "node_id": "MDQ6VXNlcjE0NjUzMA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/146530?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/getdave",
- "html_url": "https://github.com/getdave",
- "followers_url": "https://api.github.com/users/getdave/followers",
- "following_url": "https://api.github.com/users/getdave/following{/other_user}",
- "gists_url": "https://api.github.com/users/getdave/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/getdave/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/getdave/subscriptions",
- "organizations_url": "https://api.github.com/users/getdave/orgs",
- "repos_url": "https://api.github.com/users/getdave/repos",
- "events_url": "https://api.github.com/users/getdave/events{/privacy}",
- "received_events_url": "https://api.github.com/users/getdave/received_events",
+ "url": "https://api.github.com/users/pbking",
+ "html_url": "https://github.com/pbking",
+ "followers_url": "https://api.github.com/users/pbking/followers",
+ "following_url": "https://api.github.com/users/pbking/following{/other_user}",
+ "gists_url": "https://api.github.com/users/pbking/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/pbking/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/pbking/subscriptions",
+ "organizations_url": "https://api.github.com/users/pbking/orgs",
+ "repos_url": "https://api.github.com/users/pbking/repos",
+ "events_url": "https://api.github.com/users/pbking/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/pbking/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 1225853227,
- "node_id": "MDU6TGFiZWwxMjI1ODUzMjI3",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Navigation",
- "name": "[Block] Navigation",
- "color": "6767e5",
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
+ "default": false,
+ "description": "An existing feature does not function as intended"
+ },
+ {
+ "id": 4254348202,
+ "node_id": "LA_kwDOBNHdeM79lDOq",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Needs%20PHP%20backport",
+ "name": "Needs PHP backport",
+ "color": "64436E",
"default": false,
- "description": ""
+ "description": "Needs PHP backport to Core"
+ },
+ {
+ "id": 4366600186,
+ "node_id": "LA_kwDOBNHdeM8AAAABBEUH-g",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Typography",
+ "name": "[Feature] Typography",
+ "color": "fbca04",
+ "default": false,
+ "description": "Font and typography-related issues and PRs"
}
],
"state": "closed",
"locked": false,
- "assignee": {
- "login": "getdave",
- "id": 444434,
- "node_id": "MDQ6VXNlcjQ0NDQzNA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/444434?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/getdave",
- "html_url": "https://github.com/getdave",
- "followers_url": "https://api.github.com/users/getdave/followers",
- "following_url": "https://api.github.com/users/getdave/following{/other_user}",
- "gists_url": "https://api.github.com/users/getdave/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/getdave/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/getdave/subscriptions",
- "organizations_url": "https://api.github.com/users/getdave/orgs",
- "repos_url": "https://api.github.com/users/getdave/repos",
- "events_url": "https://api.github.com/users/getdave/events{/privacy}",
- "received_events_url": "https://api.github.com/users/getdave/received_events",
- "type": "User",
- "site_admin": false
- },
- "assignees": [
- {
- "login": "getdave",
- "id": 444434,
- "node_id": "MDQ6VXNlcjQ0NDQzNA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/444434?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/getdave",
- "html_url": "https://github.com/getdave",
- "followers_url": "https://api.github.com/users/getdave/followers",
- "following_url": "https://api.github.com/users/getdave/following{/other_user}",
- "gists_url": "https://api.github.com/users/getdave/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/getdave/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/getdave/subscriptions",
- "organizations_url": "https://api.github.com/users/getdave/orgs",
- "repos_url": "https://api.github.com/users/getdave/repos",
- "events_url": "https://api.github.com/users/getdave/events{/privacy}",
- "received_events_url": "https://api.github.com/users/getdave/received_events",
- "type": "User",
- "site_admin": false
- }
- ],
+ "assignee": null,
+ "assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -7451,149 +8533,147 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 9,
- "created_at": "2021-07-30T09:04:31Z",
- "updated_at": "2021-08-03T12:59:45Z",
- "closed_at": "2021-08-03T12:59:19Z",
+ "comments": 3,
+ "created_at": "2023-09-27T18:54:01Z",
+ "updated_at": "2023-10-02T09:41:20Z",
+ "closed_at": "2023-09-28T16:13:48Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33777",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33777",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33777.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33777.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\n\r\nIn https://github.com/WordPress/gutenberg/issues/18866 we see that it is impossible to remove a link from the Nav Link block once it's been added. That's not good.\r\n\r\n[I've already added a `Unlink` feature to the link UI in the format library](https://github.com/WordPress/gutenberg/pull/32541) for rich text and I've been meaning to port it over to the Nav Block link implementation.\r\n\r\nThis PR enables the ability to unset links on the Nav Link block using the `Unlink` button in the link UI.\r\n\r\n**Note**: we are intentionally not mirroring this unlink behaviour in the block toolbar for [the reasons outlined in this comment](https://github.com/WordPress/gutenberg/pull/33777#issuecomment-889829952).\r\n\r\n## How has this been tested?\r\n\r\n* Create a new Post.\r\n* Add Nav Block.\r\n* Add a custom link to anything you want.\r\n* Click on link.\r\n* See `Unlink` button in popover.\r\n* Click button.\r\n* Remove is removed and the UI of the `Nav Link` block should be reset to default state.\r\n* Check you can click and re-add the link as required.\r\n* Check you can do the same in the Nav Editor screen.\r\n\r\n## Screenshots \r\n\r\n\r\n#### Post Editor\r\nhttps://user-images.githubusercontent.com/444434/127629489-927586d7-6bb8-49eb-85a9-b09e3de7263e.mp4\r\n\r\n\r\n#### Nav Editor\r\nhttps://user-images.githubusercontent.com/444434/127629484-e5837372-a98c-40a8-8678-7afd8d48b98f.mp4\r\n\r\n\r\n\r\n\r\n## Types of changes\r\nNew feature (non-breaking change which adds functionality)\r\n\r\n## Checklist:\r\n- [ ] My code is tested.\r\n- [ ] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [ ] My code has proper inline documentation. \r\n- [ ] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54886",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54886",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54886.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54886.patch",
+ "merged_at": "2023-09-28T16:13:48Z"
+ },
+ "body": "## What?\r\nChanges the expected mime type for 'otf' files to be `application/vnd.ms-opentype`\r\n\r\n## Why?\r\nThe [expected](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types) value is `font/otf` however calls to `finfo_file()` are returning `application/vnd.ms-opentype` as the mime type which cause files with .otf file extensions to to be denied upload.\r\n\r\nNote: I haven't figured out why the font mime type is so out-of-date while the others have improved. It may be due to the specific OTF files? If that is the case then I haven't found any OTF files myself that return any different value.\r\n\r\n\r\n## Testing Instructions\r\nUsing the Font Library UI upload an OTF font file file.\r\n\r\nIt should work.\r\n\r\n\r\n[Lato-Regular.otf.zip](https://github.com/WordPress/gutenberg/files/12742349/Lato-Regular.otf.zip)\r\n\r\n\r\nFixes: https://github.com/WordPress/gutenberg/issues/54759\r\n\r\n\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54886/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54886/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33771",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54884",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33771/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33771/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33771/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33771",
- "id": 956384942,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk5OTg5NDU2",
- "number": 33771,
- "title": "Add error boundaries to widget screens",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54884/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54884/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54884/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54884",
+ "id": 1915996838,
+ "node_id": "PR_kwDOBNHdeM5bXPAk",
+ "number": 54884,
+ "title": "Use list role instead of listbox in patterns list",
"user": {
- "login": "talldan",
- "id": 677833,
- "node_id": "MDQ6VXNlcjY3NzgzMw==",
- "avatar_url": "https://avatars.githubusercontent.com/u/677833?v=4",
+ "login": "kevin940726",
+ "id": 7753001,
+ "node_id": "MDQ6VXNlcjc3NTMwMDE=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/7753001?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/talldan",
- "html_url": "https://github.com/talldan",
- "followers_url": "https://api.github.com/users/talldan/followers",
- "following_url": "https://api.github.com/users/talldan/following{/other_user}",
- "gists_url": "https://api.github.com/users/talldan/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/talldan/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/talldan/subscriptions",
- "organizations_url": "https://api.github.com/users/talldan/orgs",
- "repos_url": "https://api.github.com/users/talldan/repos",
- "events_url": "https://api.github.com/users/talldan/events{/privacy}",
- "received_events_url": "https://api.github.com/users/talldan/received_events",
+ "url": "https://api.github.com/users/kevin940726",
+ "html_url": "https://github.com/kevin940726",
+ "followers_url": "https://api.github.com/users/kevin940726/followers",
+ "following_url": "https://api.github.com/users/kevin940726/following{/other_user}",
+ "gists_url": "https://api.github.com/users/kevin940726/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/kevin940726/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/kevin940726/subscriptions",
+ "organizations_url": "https://api.github.com/users/kevin940726/orgs",
+ "repos_url": "https://api.github.com/users/kevin940726/repos",
+ "events_url": "https://api.github.com/users/kevin940726/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/kevin940726/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 531680825,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
- "name": "[Type] Enhancement",
- "color": "3993a3",
- "default": false,
- "description": "A suggestion for improvement."
- },
- {
- "id": 1414926647,
- "node_id": "MDU6TGFiZWwxNDE0OTI2NjQ3",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Edit%20Widgets",
- "name": "[Package] Edit Widgets",
- "color": "ed2572",
- "default": false,
- "description": "/packages/edit-widgets"
- },
- {
- "id": 2463256422,
- "node_id": "MDU6TGFiZWwyNDYzMjU2NDIy",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Backport%20to%20WP%20Minor%20Release",
- "name": "Backport to WP Minor Release",
- "color": "491d8e",
+ "id": 546517042,
+ "node_id": "MDU6TGFiZWw1NDY1MTcwNDI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Focus]%20Accessibility%20(a11y)",
+ "name": "[Focus] Accessibility (a11y)",
+ "color": "efde5d",
"default": false,
- "description": "PRs to be back-ported to a WordPress minor release."
+ "description": "Changes that impact accessibility and need corresponding review (e.g. markup changes)."
},
{
- "id": 2632875097,
- "node_id": "MDU6TGFiZWwyNjMyODc1MDk3",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Widgets%20Customizer",
- "name": "[Feature] Widgets Customizer",
+ "id": 1882657161,
+ "node_id": "MDU6TGFiZWwxODgyNjU3MTYx",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Patterns",
+ "name": "[Feature] Patterns",
"color": "fbca04",
"default": false,
- "description": "Ability to add and edit blocks in Customize → Widgets."
+ "description": "A collection of blocks that can be synced (previously reusable blocks) or unsynced"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "talldan",
- "id": 677833,
- "node_id": "MDQ6VXNlcjY3NzgzMw==",
- "avatar_url": "https://avatars.githubusercontent.com/u/677833?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/talldan",
- "html_url": "https://github.com/talldan",
- "followers_url": "https://api.github.com/users/talldan/followers",
- "following_url": "https://api.github.com/users/talldan/following{/other_user}",
- "gists_url": "https://api.github.com/users/talldan/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/talldan/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/talldan/subscriptions",
- "organizations_url": "https://api.github.com/users/talldan/orgs",
- "repos_url": "https://api.github.com/users/talldan/repos",
- "events_url": "https://api.github.com/users/talldan/events{/privacy}",
- "received_events_url": "https://api.github.com/users/talldan/received_events",
- "type": "User",
+ "login": "kevin940726",
+ "id": 7753001,
+ "node_id": "MDQ6VXNlcjc3NTMwMDE=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/7753001?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/kevin940726",
+ "html_url": "https://github.com/kevin940726",
+ "followers_url": "https://api.github.com/users/kevin940726/followers",
+ "following_url": "https://api.github.com/users/kevin940726/following{/other_user}",
+ "gists_url": "https://api.github.com/users/kevin940726/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/kevin940726/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/kevin940726/subscriptions",
+ "organizations_url": "https://api.github.com/users/kevin940726/orgs",
+ "repos_url": "https://api.github.com/users/kevin940726/repos",
+ "events_url": "https://api.github.com/users/kevin940726/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/kevin940726/received_events",
+ "type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "talldan",
- "id": 677833,
- "node_id": "MDQ6VXNlcjY3NzgzMw==",
- "avatar_url": "https://avatars.githubusercontent.com/u/677833?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/talldan",
- "html_url": "https://github.com/talldan",
- "followers_url": "https://api.github.com/users/talldan/followers",
- "following_url": "https://api.github.com/users/talldan/following{/other_user}",
- "gists_url": "https://api.github.com/users/talldan/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/talldan/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/talldan/subscriptions",
- "organizations_url": "https://api.github.com/users/talldan/orgs",
- "repos_url": "https://api.github.com/users/talldan/repos",
- "events_url": "https://api.github.com/users/talldan/events{/privacy}",
- "received_events_url": "https://api.github.com/users/talldan/received_events",
+ "login": "kevin940726",
+ "id": 7753001,
+ "node_id": "MDQ6VXNlcjc3NTMwMDE=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/7753001?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/kevin940726",
+ "html_url": "https://github.com/kevin940726",
+ "followers_url": "https://api.github.com/users/kevin940726/followers",
+ "following_url": "https://api.github.com/users/kevin940726/following{/other_user}",
+ "gists_url": "https://api.github.com/users/kevin940726/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/kevin940726/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/kevin940726/subscriptions",
+ "organizations_url": "https://api.github.com/users/kevin940726/orgs",
+ "repos_url": "https://api.github.com/users/kevin940726/repos",
+ "events_url": "https://api.github.com/users/kevin940726/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/kevin940726/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -7616,308 +8696,116 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 1,
- "created_at": "2021-07-30T04:14:40Z",
- "updated_at": "2021-08-02T07:33:24Z",
- "closed_at": "2021-08-02T03:20:39Z",
- "author_association": "CONTRIBUTOR",
+ "comments": 3,
+ "created_at": "2023-09-27T17:07:28Z",
+ "updated_at": "2023-09-29T14:26:42Z",
+ "closed_at": "2023-09-28T02:16:51Z",
+ "author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33771",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33771",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33771.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33771.patch"
- },
- "body": "## Description\r\nCloses #33620\r\n\r\nAdds error boundaries to the widgets screens. Previously users have reported JavaScript errors (like those solved by #33618) cause a blank white screen with very little information.\r\n\r\nThis PR at least adds a message and a Copy Error button. The edit widgets screen also has an 'Attempt Recovery' button, but I didn't add this to the customizer screen, as the customizer is a little more complex. When I attempted to do so, I found that the `activeSidebarControl` state was lost, so recovery would never work.\r\n\r\nThe ErrorBoundary component is also in need of refactoring and improvement, but this PR would be good to backport to a minor release, so I'd prefer to keep it simple.\r\n\r\n## How has this been tested?\r\n### Appearance > Widgets screen\r\n1. Have your dev environment running and add some code to throw an error in a widget screen component. e.g. add `throw new Error( 'Test' );` to somewhere like the Header component.\r\n2. Load the editor\r\n3. Observe the notice\r\n4. Copy the error and paste it somewhere, it should be the same as the error message thrown\r\n5. Click attempt recovery, observe the editor reloads, but you'll encounter the same error again\r\n\r\n### Appearance > Customize > Widgets screen\r\n1. Have your dev environment running and add some code to throw an error in a widget screen component. e.g. add `throw new Error( 'Test' );` to somewhere like the Header component.\r\n2. Load the editor\r\n3. Observe the notice\r\n4. Copy the error and paste it somewhere, it should be the same as the error message thrown\r\n\r\n## Screenshots \r\n### Appearance > Widgets screen\r\n \r\n\r\n### Appearance > Customize > Widgets screen\r\n \r\n\r\n## Types of changes\r\n\r\n\r\nNew feature (non-breaking change which adds functionality) \r\n\r\n\r\n## Checklist:\r\n- [ ] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [x] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54884",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54884",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54884.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54884.patch",
+ "merged_at": "2023-09-28T02:16:51Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\nA follow-up to https://github.com/WordPress/gutenberg/pull/52357. It was discussed in https://github.com/WordPress/gutenberg/issues/52009#issuecomment-1619832166 to implement the patterns in `list` not `listbox`, but it seems like we missed it in https://github.com/WordPress/gutenberg/pull/52357. This PR fixes that.\r\n\r\n## Why?\r\n\r\nFor accessibility and simplicity.\r\n\r\n## How?\r\n\r\nRemove `role=\"listbox\"` and tweak e2e tests.\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\nCI should pass.\r\n\r\n### Testing Instructions for Keyboard\r\n\r\n1. Visit Site editor -> Patterns.\r\n2. Tabbing through each pattern should announce the title and the description in screen readers.\r\n\r\n## Screenshots or screencast \r\nN/A",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54884/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54884/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33764",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54878",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33764/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33764/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33764/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33764",
- "id": 956032331,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk5Njk0MDMy",
- "number": 33764,
- "title": "[Documentation] Add missing comma",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54878/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54878/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54878/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54878",
+ "id": 1915807057,
+ "node_id": "PR_kwDOBNHdeM5bWlk4",
+ "number": 54878,
+ "title": "Image: Ensure Expand on Click toggle is shown if block-level lightbox setting exists",
"user": {
- "login": "mrleemon",
- "id": 2060659,
- "node_id": "MDQ6VXNlcjIwNjA2NTk=",
- "avatar_url": "https://avatars.githubusercontent.com/u/2060659?v=4",
+ "login": "artemiomorales",
+ "id": 5360536,
+ "node_id": "MDQ6VXNlcjUzNjA1MzY=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/5360536?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/mrleemon",
- "html_url": "https://github.com/mrleemon",
- "followers_url": "https://api.github.com/users/mrleemon/followers",
- "following_url": "https://api.github.com/users/mrleemon/following{/other_user}",
- "gists_url": "https://api.github.com/users/mrleemon/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/mrleemon/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/mrleemon/subscriptions",
- "organizations_url": "https://api.github.com/users/mrleemon/orgs",
- "repos_url": "https://api.github.com/users/mrleemon/repos",
- "events_url": "https://api.github.com/users/mrleemon/events{/privacy}",
- "received_events_url": "https://api.github.com/users/mrleemon/received_events",
+ "url": "https://api.github.com/users/artemiomorales",
+ "html_url": "https://github.com/artemiomorales",
+ "followers_url": "https://api.github.com/users/artemiomorales/followers",
+ "following_url": "https://api.github.com/users/artemiomorales/following{/other_user}",
+ "gists_url": "https://api.github.com/users/artemiomorales/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/artemiomorales/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/artemiomorales/subscriptions",
+ "organizations_url": "https://api.github.com/users/artemiomorales/orgs",
+ "repos_url": "https://api.github.com/users/artemiomorales/repos",
+ "events_url": "https://api.github.com/users/artemiomorales/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/artemiomorales/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 567484057,
- "node_id": "MDU6TGFiZWw1Njc0ODQwNTc=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Documentation",
- "name": "[Type] Developer Documentation",
- "color": "bfd4f2",
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
"default": false,
- "description": ""
- }
- ],
- "state": "closed",
- "locked": false,
- "assignee": null,
- "assignees": [],
- "milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
- "description": null,
- "creator": {
- "login": "github-actions[bot]",
- "id": 41898282,
- "node_id": "MDM6Qm90NDE4OTgyODI=",
- "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/github-actions%5Bbot%5D",
- "html_url": "https://github.com/apps/github-actions",
- "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
- "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
- "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
- "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
- "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
- "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
- "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
- "type": "Bot",
- "site_admin": false
+ "description": "An existing feature does not function as intended"
},
- "open_issues": 0,
- "closed_issues": 113,
- "state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
- "closed_at": null
- },
- "comments": 0,
- "created_at": "2021-07-29T16:55:31Z",
- "updated_at": "2021-07-30T04:59:01Z",
- "closed_at": "2021-07-30T04:58:41Z",
- "author_association": "CONTRIBUTOR",
- "active_lock_reason": null,
- "pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33764",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33764",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33764.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33764.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\n\r\n\r\n## How has this been tested?\r\n\r\n\r\n\r\n\r\n## Screenshots \r\n\r\n## Types of changes\r\n\r\n\r\n\r\n\r\n\r\n## Checklist:\r\n- [ ] My code is tested.\r\n- [ ] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [ ] My code has proper inline documentation. \r\n- [ ] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
- },
- {
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33761",
- "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33761/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33761/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33761/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33761",
- "id": 955949660,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk5NjI0MDM2",
- "number": 33761,
- "title": "GitHub Templates: Fix spacing in bug report template",
- "user": {
- "login": "ryelle",
- "id": 541093,
- "node_id": "MDQ6VXNlcjU0MTA5Mw==",
- "avatar_url": "https://avatars.githubusercontent.com/u/541093?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/ryelle",
- "html_url": "https://github.com/ryelle",
- "followers_url": "https://api.github.com/users/ryelle/followers",
- "following_url": "https://api.github.com/users/ryelle/following{/other_user}",
- "gists_url": "https://api.github.com/users/ryelle/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/ryelle/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/ryelle/subscriptions",
- "organizations_url": "https://api.github.com/users/ryelle/orgs",
- "repos_url": "https://api.github.com/users/ryelle/repos",
- "events_url": "https://api.github.com/users/ryelle/events{/privacy}",
- "received_events_url": "https://api.github.com/users/ryelle/received_events",
- "type": "User",
- "site_admin": false
- },
- "labels": [
{
- "id": 1032028862,
- "node_id": "MDU6TGFiZWwxMDMyMDI4ODYy",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Project%20Management",
- "name": "[Type] Project Management",
- "color": "e55ead",
+ "id": 1101518360,
+ "node_id": "MDU6TGFiZWwxMTAxNTE4MzYw",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Image",
+ "name": "[Block] Image",
+ "color": "6767e5",
"default": false,
- "description": "Meta-issues related to project management of Gutenberg"
- }
- ],
- "state": "closed",
- "locked": false,
- "assignee": {
- "login": "ryelle",
- "id": 541093,
- "node_id": "MDQ6VXNlcjU0MTA5Mw==",
- "avatar_url": "https://avatars.githubusercontent.com/u/541093?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/ryelle",
- "html_url": "https://github.com/ryelle",
- "followers_url": "https://api.github.com/users/ryelle/followers",
- "following_url": "https://api.github.com/users/ryelle/following{/other_user}",
- "gists_url": "https://api.github.com/users/ryelle/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/ryelle/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/ryelle/subscriptions",
- "organizations_url": "https://api.github.com/users/ryelle/orgs",
- "repos_url": "https://api.github.com/users/ryelle/repos",
- "events_url": "https://api.github.com/users/ryelle/events{/privacy}",
- "received_events_url": "https://api.github.com/users/ryelle/received_events",
- "type": "User",
- "site_admin": false
- },
- "assignees": [
+ "description": "Affects the Image Block"
+ },
{
- "login": "ryelle",
- "id": 541093,
- "node_id": "MDQ6VXNlcjU0MTA5Mw==",
- "avatar_url": "https://avatars.githubusercontent.com/u/541093?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/ryelle",
- "html_url": "https://github.com/ryelle",
- "followers_url": "https://api.github.com/users/ryelle/followers",
- "following_url": "https://api.github.com/users/ryelle/following{/other_user}",
- "gists_url": "https://api.github.com/users/ryelle/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/ryelle/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/ryelle/subscriptions",
- "organizations_url": "https://api.github.com/users/ryelle/orgs",
- "repos_url": "https://api.github.com/users/ryelle/repos",
- "events_url": "https://api.github.com/users/ryelle/events{/privacy}",
- "received_events_url": "https://api.github.com/users/ryelle/received_events",
- "type": "User",
- "site_admin": false
+ "id": 5833813824,
+ "node_id": "LA_kwDOBNHdeM8AAAABW7jvQA",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Packages]%20Interactivity",
+ "name": "[Packages] Interactivity",
+ "color": "ed2572",
+ "default": false,
+ "description": "/packages/interactivity"
}
],
- "milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
- "description": null,
- "creator": {
- "login": "github-actions[bot]",
- "id": 41898282,
- "node_id": "MDM6Qm90NDE4OTgyODI=",
- "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/github-actions%5Bbot%5D",
- "html_url": "https://github.com/apps/github-actions",
- "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
- "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
- "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
- "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
- "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
- "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
- "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
- "type": "Bot",
- "site_admin": false
- },
- "open_issues": 0,
- "closed_issues": 113,
- "state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
- "closed_at": null
- },
- "comments": 0,
- "created_at": "2021-07-29T15:17:03Z",
- "updated_at": "2021-07-29T15:59:58Z",
- "closed_at": "2021-07-29T15:59:32Z",
- "author_association": "CONTRIBUTOR",
- "active_lock_reason": null,
- "pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33761",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33761",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33761.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33761.patch"
- },
- "body": "Follow up to #33713, which had some yml syntax issues that caused the Bug Report template to disappear. This fixes up some indentation, spacing, and moves the `required` value into the `validation` property to match the documentation.",
- "performed_via_github_app": null
- },
- {
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33757",
- "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33757/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33757/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33757/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33757",
- "id": 955801397,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk5NDk3NzA3",
- "number": 33757,
- "title": "[RNMobile] Bump SauceLabs caps",
- "user": {
- "login": "hypest",
- "id": 1032913,
- "node_id": "MDQ6VXNlcjEwMzI5MTM=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1032913?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/hypest",
- "html_url": "https://github.com/hypest",
- "followers_url": "https://api.github.com/users/hypest/followers",
- "following_url": "https://api.github.com/users/hypest/following{/other_user}",
- "gists_url": "https://api.github.com/users/hypest/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/hypest/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/hypest/subscriptions",
- "organizations_url": "https://api.github.com/users/hypest/orgs",
- "repos_url": "https://api.github.com/users/hypest/repos",
- "events_url": "https://api.github.com/users/hypest/events{/privacy}",
- "received_events_url": "https://api.github.com/users/hypest/received_events",
- "type": "User",
- "site_admin": false
- },
- "labels": [],
"state": "closed",
"locked": false,
"assignee": null,
"assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -7940,39 +8828,55 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 1,
- "created_at": "2021-07-29T12:40:07Z",
- "updated_at": "2021-08-03T10:19:08Z",
- "closed_at": "2021-08-03T10:18:40Z",
+ "comments": 4,
+ "created_at": "2023-09-27T15:11:51Z",
+ "updated_at": "2023-09-29T12:04:54Z",
+ "closed_at": "2023-09-27T18:41:15Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33757",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33757",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33757.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33757.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\nBumping the Appium and iOS versions used on SauceLabs, in an attempt to improve test reliability in gutenberg-mobile.\r\n\r\ngutenberg-mobile PR: https://github.com/wordpress-mobile/gutenberg-mobile/pull/3770\r\n\r\n## How has this been tested?\r\nBy checking the mobile device CI tests on the gutenberg-mobile PR.\r\n\r\n1. Bumping the iOS version used in the iOS simulator to the latest available on SauceLabs, v14.5.\r\n2. Bumping the Appium version used in the iOS run to v1.20.1. **Note:** this is not the same version as specified in our package.json (v1.20.2) because the `.2` doesn't seem to be available yet on SauceLabs for the iOS targets (it is for Android though 🤷♂️).\r\n3. Bumping the Appium version used in the Android run to v1.20.2, same as the one used via package.json.\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [x] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54878",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54878",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54878.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54878.patch",
+ "merged_at": "2023-09-27T18:41:15Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\nIf a user turns on `Expand on Click` in the image's block settings, then subsequently sets `settings.blocks.core/image.lightbox.allowEditing` to `false`, the Expand on Click UI disappears for the image block in question when it should remain visible. This PR fixes that.\r\n\r\n## Why?\r\n\r\nUsers should be able to access their manual overrides of the Expand on Click setting, even if `allowEditing` is disabled, otherwise they are unable to modify the settings without opening the code editor.\r\n\r\n## How?\r\n\r\nIt revises a conditional check when determining whether to show the toggle or not.\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n1. Add an image to a post.\r\n2. Enable the image's `Expand on Click` option.\r\n3. Save the post.\r\n4. In the theme's `theme.json`, set `settings.blocks.core/image.lightbox.allowEditing` to `false`.\r\n5. Refresh the post page and click on the image block — ensure that the `Expand on Click` option is still visible.\r\n6. Now, reset the `Expand on Click` option to default using the Settings dropdown, and verify that the toggle disappears due to `allowEditing` being false and the block-level setting being removed.\r\n\r\n### Testing Instructions for Keyboard\r\n N/A\r\n\r\n## Screenshots or screencast \r\n\r\nhttps://github.com/WordPress/gutenberg/assets/5360536/d3062d65-e035-4748-b02e-6d361098f0e2",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54878/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54878/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33755",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54876",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33755/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33755/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33755/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33755",
- "id": 955764324,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk5NDY1NzQz",
- "number": 33755,
- "title": "Mobile Release v1.58.1",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54876/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54876/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54876/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54876",
+ "id": 1915749872,
+ "node_id": "PR_kwDOBNHdeM5bWZAs",
+ "number": 54876,
+ "title": "Fallback to Twitter provider when embedding X URLs",
"user": {
"login": "fluiddot",
"id": 14905380,
@@ -7995,13 +8899,22 @@
},
"labels": [
{
- "id": 982506020,
- "node_id": "MDU6TGFiZWw5ODI1MDYwMjA=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20i.e.%20Android%20or%20iOS",
- "name": "Mobile App - i.e. Android or iOS",
- "color": "a3ef7a",
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
"default": false,
- "description": "Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)"
+ "description": "An existing feature does not function as intended"
+ },
+ {
+ "id": 1078477350,
+ "node_id": "MDU6TGFiZWwxMDc4NDc3MzUw",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Embed",
+ "name": "[Block] Embed",
+ "color": "6767e5",
+ "default": false,
+ "description": "Affects the Embed Block"
}
],
"state": "closed",
@@ -8049,13 +8962,13 @@
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -8078,401 +8991,114 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 1,
- "created_at": "2021-07-29T11:57:57Z",
- "updated_at": "2021-08-04T11:58:18Z",
- "closed_at": "2021-07-30T17:02:04Z",
+ "comments": 3,
+ "created_at": "2023-09-27T14:43:35Z",
+ "updated_at": "2023-10-05T11:17:15Z",
+ "closed_at": "2023-09-27T16:35:10Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33755",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33755",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33755.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33755.patch"
- },
- "body": "## Description\nRelease 1.58.1 of the react-native-editor and Gutenberg-Mobile.\n\nFor more information about this release and testing instructions, please see the related Gutenberg-Mobile PR: https://github.com/wordpress-mobile/gutenberg-mobile/pull/3769\n\n## Checklist:\n- [x] My code is tested.\n- [x] My code follows the WordPress code style. \n- [x] My code follows the accessibility standards. \n- [ ] I've tested my changes with keyboard and screen readers. \n- [x] My code has proper inline documentation. \n- [x] I've included developer documentation if appropriate. \n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). ",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54876",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54876",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54876.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54876.patch",
+ "merged_at": "2023-09-27T16:35:10Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\n\r\nUse Twitter provider when embedding X URLs (e.g. `https://x.com/automattic/status/1395447061336711181`).\r\n\r\n## Why?\r\n\r\n\r\nFixes https://github.com/WordPress/gutenberg/issues/54042.\r\n\r\n## How?\r\n\r\n\r\nAdds an effect to the Embed block triggered when an embed URL fails (i.e. `cannotEmbed` is `true`). It checks if the URL points to `x.com` and replaces it with `twitter.com` as a fallback to retrieve the embed preview using the Twitter provider.\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n### Web\r\n1. Open/create a post.\r\n2. Paste an X embed URL (e.g. `https://x.com/automattic/status/1395447061336711181`)\r\n3. Observe that an Embed block is created and previews the tweet.\r\n4. Add an Embed block.\r\n5. Set an X embed URL (e.g. `https://x.com/automattic/status/1395447061336711181`)\r\n6. Click on the \"Embed\" button.\r\n7. Observe that the Embed block previews the tweet.\r\n8. Try embedding a different embed URL (e.g. `https://www.youtube.com/watch?v=ssfHW5lwFZg`).\r\n9. Observe that the Embed block previews the content.\r\n\r\n### Native\r\n1. Open/create a post.\r\n2. Paste an X embed URL (e.g. `https://x.com/automattic/status/1395447061336711181`)\r\n3. Tap on the \"Create embed\" option.\r\n4. Observe that an Embed block is created and previews the tweet.\r\n5. Add an Embed block.\r\n6. Tap on the \"Add link\" button.\r\n7. Set an X embed URL (e.g. `https://x.com/automattic/status/1395447061336711181`)\r\n8. Dismiss the bottom sheet.\r\n9. Observe that the Embed block previews the tweet.\r\n10. Try embedding a different embed URL (e.g. `https://www.youtube.com/watch?v=ssfHW5lwFZg`).\r\n11. Observe that the Embed block previews the content.\r\n\r\n### Testing Instructions for Keyboard\r\n\r\nN/A\r\n\r\n## Screenshots or screencast \r\nN/A",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54876/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54876/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33753",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54870",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33753/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33753/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33753/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33753",
- "id": 955746219,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk5NDUwMjY0",
- "number": 33753,
- "title": "Force link text to wrap in the Link UI when encountering extra long link text",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54870/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54870/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54870/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54870",
+ "id": 1915647677,
+ "node_id": "PR_kwDOBNHdeM5bWCpy",
+ "number": 54870,
+ "title": "Add a documentation page about the block editor settings",
"user": {
- "login": "getdave",
- "id": 444434,
- "node_id": "MDQ6VXNlcjQ0NDQzNA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/444434?v=4",
+ "login": "youknowriad",
+ "id": 272444,
+ "node_id": "MDQ6VXNlcjI3MjQ0NA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/getdave",
- "html_url": "https://github.com/getdave",
- "followers_url": "https://api.github.com/users/getdave/followers",
- "following_url": "https://api.github.com/users/getdave/following{/other_user}",
- "gists_url": "https://api.github.com/users/getdave/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/getdave/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/getdave/subscriptions",
- "organizations_url": "https://api.github.com/users/getdave/orgs",
- "repos_url": "https://api.github.com/users/getdave/repos",
- "events_url": "https://api.github.com/users/getdave/events{/privacy}",
- "received_events_url": "https://api.github.com/users/getdave/received_events",
+ "url": "https://api.github.com/users/youknowriad",
+ "html_url": "https://github.com/youknowriad",
+ "followers_url": "https://api.github.com/users/youknowriad/followers",
+ "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
+ "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
+ "organizations_url": "https://api.github.com/users/youknowriad/orgs",
+ "repos_url": "https://api.github.com/users/youknowriad/repos",
+ "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/youknowriad/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 531680823,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
- "name": "[Type] Bug",
- "color": "d93f0b",
- "default": false,
- "description": "An existing feature is broken."
- },
- {
- "id": 644027893,
- "node_id": "MDU6TGFiZWw2NDQwMjc4OTM=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Needs%20Design%20Feedback",
- "name": "Needs Design Feedback",
- "color": "0e8a16",
+ "id": 562969841,
+ "node_id": "MDU6TGFiZWw1NjI5Njk4NDE=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Framework",
+ "name": "Framework",
+ "color": "fbca04",
"default": false,
- "description": "Anything that needs general design feedback."
+ "description": "Issues related to broader framework topics, especially as it relates to javascript"
},
{
- "id": 1838782557,
- "node_id": "MDU6TGFiZWwxODM4NzgyNTU3",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Link%20Editing",
- "name": "[Feature] Link Editing",
- "color": "fbca04",
+ "id": 567484057,
+ "node_id": "MDU6TGFiZWw1Njc0ODQwNTc=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Developer%20Documentation",
+ "name": "[Type] Developer Documentation",
+ "color": "bfd4f2",
"default": false,
- "description": "Link components (LinkControl, URLInput) and integrations (RichText link formatting)"
+ "description": "Documentation for developers"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "getdave",
- "id": 444434,
- "node_id": "MDQ6VXNlcjQ0NDQzNA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/444434?v=4",
+ "login": "youknowriad",
+ "id": 272444,
+ "node_id": "MDQ6VXNlcjI3MjQ0NA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/getdave",
- "html_url": "https://github.com/getdave",
- "followers_url": "https://api.github.com/users/getdave/followers",
- "following_url": "https://api.github.com/users/getdave/following{/other_user}",
- "gists_url": "https://api.github.com/users/getdave/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/getdave/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/getdave/subscriptions",
- "organizations_url": "https://api.github.com/users/getdave/orgs",
- "repos_url": "https://api.github.com/users/getdave/repos",
- "events_url": "https://api.github.com/users/getdave/events{/privacy}",
- "received_events_url": "https://api.github.com/users/getdave/received_events",
- "type": "User",
- "site_admin": false
- },
- "assignees": [
- {
- "login": "getdave",
- "id": 444434,
- "node_id": "MDQ6VXNlcjQ0NDQzNA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/444434?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/getdave",
- "html_url": "https://github.com/getdave",
- "followers_url": "https://api.github.com/users/getdave/followers",
- "following_url": "https://api.github.com/users/getdave/following{/other_user}",
- "gists_url": "https://api.github.com/users/getdave/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/getdave/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/getdave/subscriptions",
- "organizations_url": "https://api.github.com/users/getdave/orgs",
- "repos_url": "https://api.github.com/users/getdave/repos",
- "events_url": "https://api.github.com/users/getdave/events{/privacy}",
- "received_events_url": "https://api.github.com/users/getdave/received_events",
- "type": "User",
- "site_admin": false
- }
- ],
- "milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
- "description": null,
- "creator": {
- "login": "github-actions[bot]",
- "id": 41898282,
- "node_id": "MDM6Qm90NDE4OTgyODI=",
- "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/github-actions%5Bbot%5D",
- "html_url": "https://github.com/apps/github-actions",
- "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
- "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
- "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
- "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
- "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
- "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
- "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
- "type": "Bot",
- "site_admin": false
- },
- "open_issues": 0,
- "closed_issues": 113,
- "state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
- "closed_at": null
- },
- "comments": 9,
- "created_at": "2021-07-29T11:32:59Z",
- "updated_at": "2021-07-30T14:42:36Z",
- "closed_at": "2021-07-30T14:42:14Z",
- "author_association": "CONTRIBUTOR",
- "active_lock_reason": null,
- "pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33753",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33753",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33753.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33753.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\nCurrently in the Link UI, if the link text is particularly long then it is \"clipped\" and an ellipsis is shown. This is ok, but it does make the UI difficult to use if you are trying to [distinguish between similarly named posts](https://ibb.co/tczM3Y8).\r\n\r\nMoreover, if you enter a link which has no spaces and is very long then you encounter the same problem.\r\n\r\nThis PR resolves this by allowing the UI to wrap the link text. This allow the user to see the full link text whilst avoid any unwanted horizontal overflow.\r\n\r\nCloses https://github.com/WordPress/gutenberg/issues/33586\r\n\r\n\r\n## How has this been tested?\r\n1. Create a few posts with very long titles and publish them.\r\n2. Create a new post and add some text content.\r\n3. Create a link to one of your test posts (the ones with the long titles). \r\n4. See that the link UI wraps the long text both in edit and in preview mode.\r\n5. Create a very long freeform link with no spaces at all.\r\n6. Check that the link UI wraps the long text both in edit and in preview mode.\r\n\r\n## Screenshots \r\n\r\n\r\n \r\n \r\n\r\n\r\n## Types of changes\r\n\r\n\r\n\r\n\r\n\r\n## Checklist:\r\n- [ ] My code is tested.\r\n- [ ] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [ ] My code has proper inline documentation. \r\n- [ ] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
- },
- {
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33750",
- "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33750/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33750/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33750/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33750",
- "id": 955696398,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk5NDA3ODQ3",
- "number": 33750,
- "title": "Scripts: Use cssnano to minimize CSS files with build",
- "user": {
- "login": "gziolo",
- "id": 699132,
- "node_id": "MDQ6VXNlcjY5OTEzMg==",
- "avatar_url": "https://avatars.githubusercontent.com/u/699132?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/gziolo",
- "html_url": "https://github.com/gziolo",
- "followers_url": "https://api.github.com/users/gziolo/followers",
- "following_url": "https://api.github.com/users/gziolo/following{/other_user}",
- "gists_url": "https://api.github.com/users/gziolo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/gziolo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/gziolo/subscriptions",
- "organizations_url": "https://api.github.com/users/gziolo/orgs",
- "repos_url": "https://api.github.com/users/gziolo/repos",
- "events_url": "https://api.github.com/users/gziolo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/gziolo/received_events",
- "type": "User",
- "site_admin": false
- },
- "labels": [
- {
- "id": 531680825,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
- "name": "[Type] Enhancement",
- "color": "3993a3",
- "default": false,
- "description": "A suggestion for improvement."
- },
- {
- "id": 978007737,
- "node_id": "MDU6TGFiZWw5NzgwMDc3Mzc=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Scripts",
- "name": "[Package] Scripts",
- "color": "ed2572",
- "default": false,
- "description": "/packages/scripts"
- }
- ],
- "state": "closed",
- "locked": false,
- "assignee": {
- "login": "gziolo",
- "id": 699132,
- "node_id": "MDQ6VXNlcjY5OTEzMg==",
- "avatar_url": "https://avatars.githubusercontent.com/u/699132?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/gziolo",
- "html_url": "https://github.com/gziolo",
- "followers_url": "https://api.github.com/users/gziolo/followers",
- "following_url": "https://api.github.com/users/gziolo/following{/other_user}",
- "gists_url": "https://api.github.com/users/gziolo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/gziolo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/gziolo/subscriptions",
- "organizations_url": "https://api.github.com/users/gziolo/orgs",
- "repos_url": "https://api.github.com/users/gziolo/repos",
- "events_url": "https://api.github.com/users/gziolo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/gziolo/received_events",
- "type": "User",
- "site_admin": false
- },
- "assignees": [
- {
- "login": "gziolo",
- "id": 699132,
- "node_id": "MDQ6VXNlcjY5OTEzMg==",
- "avatar_url": "https://avatars.githubusercontent.com/u/699132?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/gziolo",
- "html_url": "https://github.com/gziolo",
- "followers_url": "https://api.github.com/users/gziolo/followers",
- "following_url": "https://api.github.com/users/gziolo/following{/other_user}",
- "gists_url": "https://api.github.com/users/gziolo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/gziolo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/gziolo/subscriptions",
- "organizations_url": "https://api.github.com/users/gziolo/orgs",
- "repos_url": "https://api.github.com/users/gziolo/repos",
- "events_url": "https://api.github.com/users/gziolo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/gziolo/received_events",
- "type": "User",
- "site_admin": false
- }
- ],
- "milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
- "description": null,
- "creator": {
- "login": "github-actions[bot]",
- "id": 41898282,
- "node_id": "MDM6Qm90NDE4OTgyODI=",
- "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/github-actions%5Bbot%5D",
- "html_url": "https://github.com/apps/github-actions",
- "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
- "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
- "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
- "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
- "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
- "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
- "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
- "type": "Bot",
- "site_admin": false
- },
- "open_issues": 0,
- "closed_issues": 113,
- "state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
- "closed_at": null
- },
- "comments": 3,
- "created_at": "2021-07-29T10:28:57Z",
- "updated_at": "2021-08-02T08:16:43Z",
- "closed_at": "2021-08-01T08:20:16Z",
- "author_association": "MEMBER",
- "active_lock_reason": null,
- "pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33750",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33750",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33750.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33750.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\n\r\nFollow-up for #33676 and the comment from @ocean90 https://github.com/WordPress/gutenberg/pull/33676#issuecomment-888435234:\r\n\r\n> This should probably be released as a breaking change because it can impact users which have their own PostCSS config which already includes cssnano (which optimize-css-assets-webpack-plugin uses by default) with a custom config for [allowed optimisations](https://cssnano.co/docs/optimisations/).\r\n> \r\n> Since sass-loader seems to minify the CSS already, should we maybe extend the default PostCSS config to use cssnano instead?\r\n> \r\n> Related:\r\n> * [github.com/WordPress/gutenberg/blob/44212878dcbf6f4616266eb0fb4756293a471615/tools/webpack/shared.js#L82-L93](https://github.com/WordPress/gutenberg/blob/44212878dcbf6f4616266eb0fb4756293a471615/tools/webpack/shared.js#L82-L93)\r\n> * [github.com/WordPress/gutenberg/blob/44212878dcbf6f4616266eb0fb4756293a471615/packages/scripts/config/webpack.config.js#L47-L55](https://github.com/WordPress/gutenberg/blob/44212878dcbf6f4616266eb0fb4756293a471615/packages/scripts/config/webpack.config.js#L47-L55)\r\n> * [github.com/WordPress/gutenberg/blob/44212878dcbf6f4616266eb0fb4756293a471615/packages/postcss-plugins-preset/lib/index.js](https://github.com/WordPress/gutenberg/blob/44212878dcbf6f4616266eb0fb4756293a471615/packages/postcss-plugins-preset/lib/index.js)\r\n\r\n\r\n## How has this been tested?\r\n\r\n\r\n\r\n\r\nI created a custom block with:\r\n\r\n```bash\r\nnpx wp-create-block example --no-wp-scripts\r\ncd example\r\n../node_modules/.bin/wp-scripts build\r\n```\r\n\r\nI updated used CSS files to end with `.css` to ensure that the output is properly minimized.\r\n\r\nI also ensured that the output of CSS files isn't minified in the dev mode with:\r\n```bash\r\n../node_modules/.bin/wp-scripts start\r\n```\r\n\r\nI added `cssnano.config.js` file in the root folder of the project with the following content:\r\n\r\n```js\r\nmodule.exports = {\r\n\tpreset: [ require( 'cssnano-preset-default' ), { discardComments: false } ],\r\n};\r\n```\r\n\r\nI also had to install `cssnano-preset-default' with:\r\n\r\n```bash\r\nnpm i cssnano-preset-default --save-dev\r\n```\r\n\r\nWhen I run:\r\n\r\n```bash\r\n../node_modules/.bin/wp-scripts build\r\n```\r\n\r\nI can see that comments in the CSS files are preserved. It means that the custom config is properly loaded when present.\r\n\r\n## Types of changes\r\n\r\n\r\n\r\n\r\nEnhancement.\r\n\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [x] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
- },
- {
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33749",
- "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33749/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33749/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33749/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33749",
- "id": 955687904,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk5NDAwNTQ3",
- "number": 33749,
- "title": "Lazy render block types in the inserter",
- "user": {
- "login": "youknowriad",
- "id": 272444,
- "node_id": "MDQ6VXNlcjI3MjQ0NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/youknowriad",
- "html_url": "https://github.com/youknowriad",
- "followers_url": "https://api.github.com/users/youknowriad/followers",
- "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
- "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
- "organizations_url": "https://api.github.com/users/youknowriad/orgs",
- "repos_url": "https://api.github.com/users/youknowriad/repos",
- "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
- "received_events_url": "https://api.github.com/users/youknowriad/received_events",
- "type": "User",
- "site_admin": false
- },
- "labels": [
- {
- "id": 596962434,
- "node_id": "MDU6TGFiZWw1OTY5NjI0MzQ=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Inserter",
- "name": "[Feature] Inserter",
- "color": "fbca04",
- "default": false,
- "description": ""
- },
- {
- "id": 731693674,
- "node_id": "MDU6TGFiZWw3MzE2OTM2NzQ=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Performance",
- "name": "[Type] Performance",
- "color": "f3f4fe",
- "default": false,
- "description": ""
- }
- ],
- "state": "closed",
- "locked": false,
- "assignee": {
- "login": "youknowriad",
- "id": 272444,
- "node_id": "MDQ6VXNlcjI3MjQ0NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/youknowriad",
- "html_url": "https://github.com/youknowriad",
- "followers_url": "https://api.github.com/users/youknowriad/followers",
- "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
- "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
- "organizations_url": "https://api.github.com/users/youknowriad/orgs",
- "repos_url": "https://api.github.com/users/youknowriad/repos",
- "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
- "received_events_url": "https://api.github.com/users/youknowriad/received_events",
+ "url": "https://api.github.com/users/youknowriad",
+ "html_url": "https://github.com/youknowriad",
+ "followers_url": "https://api.github.com/users/youknowriad/followers",
+ "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
+ "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
+ "organizations_url": "https://api.github.com/users/youknowriad/orgs",
+ "repos_url": "https://api.github.com/users/youknowriad/repos",
+ "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/youknowriad/received_events",
"type": "User",
"site_admin": false
},
@@ -8499,13 +9125,13 @@
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -8528,39 +9154,55 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 16,
- "created_at": "2021-07-29T10:18:38Z",
- "updated_at": "2021-07-30T18:56:37Z",
- "closed_at": "2021-07-30T18:56:15Z",
+ "comments": 0,
+ "created_at": "2023-09-27T13:54:40Z",
+ "updated_at": "2023-10-07T08:54:22Z",
+ "closed_at": "2023-09-28T08:54:23Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33749",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33749",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33749.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33749.patch"
- },
- "body": "Opening the inserter is very a slow operation, it takes approximatively 360ms according to our metrics https://codehealth-riad.vercel.app and the size of the post don't have an impact there meaning on slow machines, folks could potentially notice a small lag when clicking the \"open inserter\" button.\r\n\r\nI tried to debug this using the Chrome tools, and I noticed that the biggest part of that time is spent on rendering the block types, there's just a lot of block types and the number grows with third-party blocks.\r\n\r\nThis PR uses a technique we previously used for the patterns list to make the inserter feel more responsive: render the inserter categories one by one, and then let the browser do more priority things (like actually opening the inserter) before continuing\r\n\r\n**Trace before this PR:** \r\n \r\n\r\n**Trace after the PR**\r\n \r\n\r\nNotice that now the trace is split into smaller chunks which allows the browser to feel more responsive.",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54870",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54870",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54870.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54870.patch",
+ "merged_at": "2023-09-28T08:54:23Z"
+ },
+ "body": "Related #53874\r\n\r\n## What?\r\n\r\nJust documents some of the most important settings a user can pass as a prop to the `BlockEditorProvider` component. I think we're still missing the \"theme.json\" settings and styles from this list but these should be added when we decided on a stable name.\r\n\r\n### Test the documentation website\r\n\r\n```\r\ncd platform-docs\r\nnpm install\r\nnpm start\r\n```",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54870/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54870/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33748",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54866",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33748/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33748/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33748/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33748",
- "id": 955676709,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk5MzkxMDcx",
- "number": 33748,
- "title": "Fix regressed menu selection dropdown placeholder value for Nav Editor menu locations UI",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54866/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54866/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54866/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54866",
+ "id": 1915441696,
+ "node_id": "PR_kwDOBNHdeM5bVUzu",
+ "number": 54866,
+ "title": "All Nav block items to break long titles",
"user": {
"login": "getdave",
"id": 444434,
@@ -8583,22 +9225,22 @@
},
"labels": [
{
- "id": 949438185,
- "node_id": "MDU6TGFiZWw5NDk0MzgxODU=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Regression",
- "name": "[Type] Regression",
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
"color": "d93f0b",
"default": false,
- "description": ""
+ "description": "An existing feature does not function as intended"
},
{
- "id": 2074073931,
- "node_id": "MDU6TGFiZWwyMDc0MDczOTMx",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Navigation%20Screen",
- "name": "[Feature] Navigation Screen",
- "color": "fbca04",
+ "id": 3229566535,
+ "node_id": "MDU6TGFiZWwzMjI5NTY2NTM1",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Navigation%20Link",
+ "name": "[Block] Navigation Link",
+ "color": "6767e5",
"default": false,
- "description": "A new block-based screen intended to replace nav-menus.php."
+ "description": "Affects the Navigation Link Block"
}
],
"state": "closed",
@@ -8646,13 +9288,13 @@
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -8675,131 +9317,147 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 1,
- "created_at": "2021-07-29T10:06:10Z",
- "updated_at": "2021-07-29T11:21:22Z",
- "closed_at": "2021-07-29T11:20:57Z",
+ "comments": 11,
+ "created_at": "2023-09-27T12:17:45Z",
+ "updated_at": "2023-10-02T15:05:39Z",
+ "closed_at": "2023-09-29T11:02:43Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33748",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33748",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33748.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33748.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\n\r\nTakes over from https://github.com/WordPress/gutenberg/pull/32423#issuecomment-888903800 as the contributor seems unable to continue.\r\n\r\nCloses https://github.com/WordPress/gutenberg/issues/30330\r\n\r\n## How has this been tested?\r\n\r\n* Enable Nav Editor experiment.\r\n* Go to Nav Editor screen.\r\n* Add a menu.\r\n* Click \"Manage Locations\" in the sidebar.\r\n* See modal appear with locations for menus.\r\n* See placeholder value for the menu selection dropdown is now \"Select a Menu\".\r\n\r\n\r\n## Screenshots \r\n\r\n \r\n\r\n\r\n## Types of changes\r\nBug fix (non-breaking change which fixes an issue)\r\n\r\n## Checklist:\r\n- [ ] My code is tested.\r\n- [ ] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [ ] My code has proper inline documentation. \r\n- [ ] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54866",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54866",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54866.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54866.patch",
+ "merged_at": "2023-09-29T11:02:43Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\n\r\nNav block _items_ may have long titles which do not have natural word breaks. In certain cases this may causes them to overflow their container.\r\n\r\nThis PR seeks to address that by removing a (seemingly) redundant CSS proprerty thereby allowing menu item titles to wrap.\r\n\r\nCloses https://github.com/WordPress/gutenberg/issues/52298\r\n\r\n## Why?\r\n\r\n\r\nHaving menu item text break out of it's container is not good for visual design.\r\n\r\n## How?\r\n\r\n\r\nRemoves seemingly redundant property [`word-break: normal;`](https://developer.mozilla.org/en-US/docs/Web/CSS/word-break).\r\n\r\n> normal - Use the default line break rule.\r\n\r\n## Questions/concerns\r\n\r\nThis property seems to indicate it was added intentionally to cover some special case. T[he PR that added](https://github.com/WordPress/gutenberg/pull/29975) it was authored by @jasmussen but has some complexities that I don't fully understand. It's also a large PR.\r\n\r\nIt would be good to get context from @jasmussen before we look to merge this one.\r\n\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n\r\n- New Post\r\n- Add Nav block\r\n- Add a nav item with some very long title text that doesn't contain any spaces (e.g. `Supercalifragilisticexpialidocious`).\r\n- Set the Navigation to \"vertivcal\" orientation in the sidebar controls.\r\n- Create Columns block with 3 columns. Add a background to each column to make things clearer.\r\n- Drag the Nav block into Column 1.\r\n- See that Nav item `Supercalifragilisticexpialidocious` does not overflow the boundary (as [per the Issue](https://github.com/WordPress/gutenberg/issues/52298)) but instead wraps.\r\n- Add another Nav block which is in horizontal orientation and check this change does not effect those items.\r\n\r\n### Testing Instructions for Keyboard\r\n\r\n\r\n## Screenshots or screencast \r\n\r\n\r\nhttps://github.com/WordPress/gutenberg/assets/444434/a34c9883-bc89-415f-9b47-64fdb3599a11\r\n\r\n\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54866/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54866/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33747",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54865",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33747/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33747/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33747/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33747",
- "id": 955662605,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk5Mzc5MTg0",
- "number": 33747,
- "title": "Improve likelihood of getting rich link previews by modifying UA string for URL Details REST API endpoint",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54865/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54865/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54865/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54865",
+ "id": 1915417802,
+ "node_id": "PR_kwDOBNHdeM5bVPbS",
+ "number": 54865,
+ "title": "E2E Tests: Revert temporary fixes",
"user": {
- "login": "getdave",
- "id": 444434,
- "node_id": "MDQ6VXNlcjQ0NDQzNA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/444434?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/getdave",
- "html_url": "https://github.com/getdave",
- "followers_url": "https://api.github.com/users/getdave/followers",
- "following_url": "https://api.github.com/users/getdave/following{/other_user}",
- "gists_url": "https://api.github.com/users/getdave/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/getdave/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/getdave/subscriptions",
- "organizations_url": "https://api.github.com/users/getdave/orgs",
- "repos_url": "https://api.github.com/users/getdave/repos",
- "events_url": "https://api.github.com/users/getdave/events{/privacy}",
- "received_events_url": "https://api.github.com/users/getdave/received_events",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 813888420,
- "node_id": "MDU6TGFiZWw4MTM4ODg0MjA=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/REST%20API%20Interaction",
- "name": "REST API Interaction",
- "color": "fbca04",
+ "id": 531680824,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjQ=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Task",
+ "name": "[Type] Task",
+ "color": "fef2c0",
"default": false,
- "description": ""
+ "description": "Issues or PRs that have been broken down into an individual action to take"
},
{
- "id": 1838782557,
- "node_id": "MDU6TGFiZWwxODM4NzgyNTU3",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Link%20Editing",
- "name": "[Feature] Link Editing",
- "color": "fbca04",
+ "id": 1699237849,
+ "node_id": "MDU6TGFiZWwxNjk5MjM3ODQ5",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20E2E%20Tests",
+ "name": "[Package] E2E Tests",
+ "color": "ed2572",
"default": false,
- "description": "Link components (LinkControl, URLInput) and integrations (RichText link formatting)"
+ "description": "/packages/e2e-tests"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "getdave",
- "id": 444434,
- "node_id": "MDQ6VXNlcjQ0NDQzNA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/444434?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/getdave",
- "html_url": "https://github.com/getdave",
- "followers_url": "https://api.github.com/users/getdave/followers",
- "following_url": "https://api.github.com/users/getdave/following{/other_user}",
- "gists_url": "https://api.github.com/users/getdave/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/getdave/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/getdave/subscriptions",
- "organizations_url": "https://api.github.com/users/getdave/orgs",
- "repos_url": "https://api.github.com/users/getdave/repos",
- "events_url": "https://api.github.com/users/getdave/events{/privacy}",
- "received_events_url": "https://api.github.com/users/getdave/received_events",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "getdave",
- "id": 444434,
- "node_id": "MDQ6VXNlcjQ0NDQzNA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/444434?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/getdave",
- "html_url": "https://github.com/getdave",
- "followers_url": "https://api.github.com/users/getdave/followers",
- "following_url": "https://api.github.com/users/getdave/following{/other_user}",
- "gists_url": "https://api.github.com/users/getdave/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/getdave/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/getdave/subscriptions",
- "organizations_url": "https://api.github.com/users/getdave/orgs",
- "repos_url": "https://api.github.com/users/getdave/repos",
- "events_url": "https://api.github.com/users/getdave/events{/privacy}",
- "received_events_url": "https://api.github.com/users/getdave/received_events",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -8822,56 +9480,72 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 6,
- "created_at": "2021-07-29T09:49:52Z",
- "updated_at": "2021-07-30T14:59:01Z",
- "closed_at": "2021-07-30T14:07:41Z",
- "author_association": "CONTRIBUTOR",
+ "comments": 1,
+ "created_at": "2023-09-27T12:06:18Z",
+ "updated_at": "2023-09-27T14:06:52Z",
+ "closed_at": "2023-09-27T14:06:21Z",
+ "author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33747",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33747",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33747.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33747.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\n\r\nAs described in https://github.com/WordPress/gutenberg/issues/33722#issuecomment-888341130 the UA string seems to be causing the `url-details` endpoint requests to be rejected by certain prominent web properties such as Google. This appears to be due to the default UA string used by the WP HTTP API being very similar to the UA string used by \"Pingback\" requests - many people block such requests.\r\n\r\nIf we change the UA string to something else the failing requests start to work. Therefore we need to use a different UA string from the default provided by the WP HTTP API.\r\n\r\nThe REST API Core team have advised that we should _not_ be seen to be spoofing the UA string. However, we can _modify_ it as long as it still has something to identify it as \"WordPress\".\r\n\r\nTherefore this PR tweaks the UA string to:\r\n\r\n* Use `WP` instead of `WordPress`.\r\n* Includes the feature name in the UA string in order that properties can still easily identify it and block it if they wish to do so.\r\n\r\nCloses https://github.com/WordPress/gutenberg/issues/33722\r\n\r\n## How has this been tested?\r\n\r\n### On trunk\r\n\r\n1. New Post.\r\n2. Open browser dev tools `Console`.\r\n3. Type `copy(wpApiSettings.nonce)`.\r\n4. Update the following URL replacing `YOUR_NONCE_HERE` with the value from the previous step.\r\n\r\n```\r\nhttp://localhost:8888/index.php?rest_route=%2F__experimental%2Furl-details&url=http%3A%2F%2Fwww.google.com&_locale=user&_wpnonce=YOUR_NONCE_HERE\r\n```\r\n5. Paste into your browser.\r\n6. See the \"404\" response.\r\n```\r\n{\r\ncode: \"no_response\",\r\nmessage: \"URL not found. Response returned a non-200 status code for this URL.\",\r\ndata: {\r\nstatus: 404\r\n}\r\n}\r\n```\r\n\r\n### On this PR branch\r\n\r\n1. Repeat the steps above. \r\n2. This time see the request suceed and rich results returned, eg:\r\n\r\n```\r\n{\r\ntitle: \"Google\",\r\nicon: \"\",\r\ndescription: \"\",\r\nimage: \"https://www.google.com/logos/doodles/2021/doodle-champion-island-games-july-29-6753651837109022-2xa.gif\"\r\n}\r\n```\r\n\r\n## Screenshots \r\n\r\n## Types of changes\r\nBug fix (non-breaking change which fixes an issue)\r\n\r\n## Checklist:\r\n- [ ] My code is tested.\r\n- [ ] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [ ] My code has proper inline documentation. \r\n- [ ] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54865",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54865",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54865.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54865.patch",
+ "merged_at": "2023-09-27T14:06:21Z"
+ },
+ "body": "## What?\r\nPR reverts temporary fixes from `datepicker` and `scheduling` e2e tests.\r\n\r\nThe bug was fixed in WP Core - https://core.trac.wordpress.org/changeset/56717.\r\n\r\n## Testing Instructions\r\nCI check should pass.\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54865/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54865/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33746",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54863",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33746/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33746/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33746/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33746",
- "id": 955641959,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk5MzYxODkw",
- "number": 33746,
- "title": "ESLint Plugin: Include .jsx extenstion when linting import statements",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54863/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54863/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54863/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54863",
+ "id": 1915368610,
+ "node_id": "PR_kwDOBNHdeM5bVEUx",
+ "number": 54863,
+ "title": "Site Editor: Avoid same key warnings in template parts area listings",
"user": {
- "login": "gziolo",
- "id": 699132,
- "node_id": "MDQ6VXNlcjY5OTEzMg==",
- "avatar_url": "https://avatars.githubusercontent.com/u/699132?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/gziolo",
- "html_url": "https://github.com/gziolo",
- "followers_url": "https://api.github.com/users/gziolo/followers",
- "following_url": "https://api.github.com/users/gziolo/following{/other_user}",
- "gists_url": "https://api.github.com/users/gziolo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/gziolo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/gziolo/subscriptions",
- "organizations_url": "https://api.github.com/users/gziolo/orgs",
- "repos_url": "https://api.github.com/users/gziolo/repos",
- "events_url": "https://api.github.com/users/gziolo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/gziolo/received_events",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
"type": "User",
"site_admin": false
},
@@ -8883,70 +9557,70 @@
"name": "[Type] Bug",
"color": "d93f0b",
"default": false,
- "description": "An existing feature is broken."
+ "description": "An existing feature does not function as intended"
},
{
- "id": 1159632801,
- "node_id": "MDU6TGFiZWwxMTU5NjMyODAx",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20ESLint%20plugin",
- "name": "[Package] ESLint plugin",
- "color": "ed2572",
+ "id": 2706102777,
+ "node_id": "MDU6TGFiZWwyNzA2MTAyNzc3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Site%20Editor",
+ "name": "[Feature] Site Editor",
+ "color": "fbca04",
"default": false,
- "description": "/packages/eslint-plugin"
+ "description": "Related to the overarching Site Editor (formerly \"full site editing\")"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "gziolo",
- "id": 699132,
- "node_id": "MDQ6VXNlcjY5OTEzMg==",
- "avatar_url": "https://avatars.githubusercontent.com/u/699132?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/gziolo",
- "html_url": "https://github.com/gziolo",
- "followers_url": "https://api.github.com/users/gziolo/followers",
- "following_url": "https://api.github.com/users/gziolo/following{/other_user}",
- "gists_url": "https://api.github.com/users/gziolo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/gziolo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/gziolo/subscriptions",
- "organizations_url": "https://api.github.com/users/gziolo/orgs",
- "repos_url": "https://api.github.com/users/gziolo/repos",
- "events_url": "https://api.github.com/users/gziolo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/gziolo/received_events",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "gziolo",
- "id": 699132,
- "node_id": "MDQ6VXNlcjY5OTEzMg==",
- "avatar_url": "https://avatars.githubusercontent.com/u/699132?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/gziolo",
- "html_url": "https://github.com/gziolo",
- "followers_url": "https://api.github.com/users/gziolo/followers",
- "following_url": "https://api.github.com/users/gziolo/following{/other_user}",
- "gists_url": "https://api.github.com/users/gziolo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/gziolo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/gziolo/subscriptions",
- "organizations_url": "https://api.github.com/users/gziolo/orgs",
- "repos_url": "https://api.github.com/users/gziolo/repos",
- "events_url": "https://api.github.com/users/gziolo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/gziolo/received_events",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -8969,82 +9643,138 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 1,
- "created_at": "2021-07-29T09:24:57Z",
- "updated_at": "2021-08-03T13:56:04Z",
- "closed_at": "2021-08-03T13:55:39Z",
+ "comments": 6,
+ "created_at": "2023-09-27T11:42:59Z",
+ "updated_at": "2023-10-02T09:39:42Z",
+ "closed_at": "2023-09-28T05:00:41Z",
"author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33746",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33746",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33746.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33746.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\n\r\nFixes #32408.\r\n\r\nReported by @galloppinggryphon:\r\n\r\n> When using `@wordpress/eslint-plugin`, ESLint is reporting the following error while trying to resolve `.jsx` files:\r\n> \r\n> Unable to resolve path to module './path/jsx-file-sans-extension'. eslint(import/no-unresolved)\r\n> Adding the extension to the import statement makes the file resolve. All `.js` files resolve normally.\r\n\r\nA similar setting is present when TypeScript is found in the project:\r\n\r\nhttps://github.com/WordPress/gutenberg/blob/85cfab17de6a23a73a6163472d1c9d85581d86c2/packages/eslint-plugin/configs/recommended.js#L33-L36\r\n\r\n## How has this been tested?\r\n\r\n\r\n\r\n\r\n`npm run lint-js` should work as before. \r\n\r\nIt also needs to be tested in the 3rd party project that doesn't have TypeScript installed.",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54863",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54863",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54863.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54863.patch",
+ "merged_at": "2023-09-28T05:00:41Z"
+ },
+ "body": "## What?\r\nAlternative to #54861.\r\n\r\nPR prevents the React \"same key\" warnings in the `HomeTemplateDetails` and `TemplateAreas` components when the template part is used multiple times on the same page.\r\n\r\nThis fix uses the template part block `clientId` for the `key` prop, which is unique for each block.\r\n\r\n## Why?\r\nEditors shouldn't display warnings or errors in the console, plus list items with the same keys can have unwanted side effects.\r\n\r\n\r\n## How?\r\nUse block's `clientId` for keys.\r\n\r\nI also did a minor cleanup for the `useSelect` hook - [18a00ac](https://github.com/WordPress/gutenberg/pull/54863/commits/18a00ac4e89f2308da8abab738fcf2fe9a04d589).\r\n\r\n* Removes unnecessary dependencies. This allows us to remove the `useNavigator` hook used in the component.\r\n* Cleaned up some variable assignments since I was in the area.\r\n\r\n## Testing Instructions\r\n1. Enable the TT4 theme.\r\n2. Open the Blog Home template. It has multiple template parts with the same slug on the page.\r\n3. Confirm there are no errors when opening the template in `edit` or `view` mode.\r\n4. Confirm the `HomeTemplateDetails` component works as before.\r\n\r\n### Testing Instructions for Keyboard\r\nSame\r\n\r\n## Screenshots or screencast \r\n![CleanShot 2023-09-27 at 15 19 03](https://github.com/WordPress/gutenberg/assets/240569/d95462d2-05ed-4976-ab00-f48ec739bbe2)\r\n![CleanShot 2023-09-27 at 15 19 11](https://github.com/WordPress/gutenberg/assets/240569/4144b584-8590-4d70-aad6-e47031110737)\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54863/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54863/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33745",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54862",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33745/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33745/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33745/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33745",
- "id": 955570802,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk5MzAxOTQz",
- "number": 33745,
- "title": "[RNMobile][Embed block] Disable paragraph transform",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54862/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54862/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54862/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54862",
+ "id": 1915356971,
+ "node_id": "PR_kwDOBNHdeM5bVBq-",
+ "number": 54862,
+ "title": "Docs: Rename Block Hooks handbook page to Block Filters",
"user": {
- "login": "ceyhun",
- "id": 1845482,
- "node_id": "MDQ6VXNlcjE4NDU0ODI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1845482?v=4",
+ "login": "ockham",
+ "id": 96308,
+ "node_id": "MDQ6VXNlcjk2MzA4",
+ "avatar_url": "https://avatars.githubusercontent.com/u/96308?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/ceyhun",
- "html_url": "https://github.com/ceyhun",
- "followers_url": "https://api.github.com/users/ceyhun/followers",
- "following_url": "https://api.github.com/users/ceyhun/following{/other_user}",
- "gists_url": "https://api.github.com/users/ceyhun/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/ceyhun/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/ceyhun/subscriptions",
- "organizations_url": "https://api.github.com/users/ceyhun/orgs",
- "repos_url": "https://api.github.com/users/ceyhun/repos",
- "events_url": "https://api.github.com/users/ceyhun/events{/privacy}",
- "received_events_url": "https://api.github.com/users/ceyhun/received_events",
+ "url": "https://api.github.com/users/ockham",
+ "html_url": "https://github.com/ockham",
+ "followers_url": "https://api.github.com/users/ockham/followers",
+ "following_url": "https://api.github.com/users/ockham/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ockham/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ockham/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ockham/subscriptions",
+ "organizations_url": "https://api.github.com/users/ockham/orgs",
+ "repos_url": "https://api.github.com/users/ockham/repos",
+ "events_url": "https://api.github.com/users/ockham/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ockham/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 982506020,
- "node_id": "MDU6TGFiZWw5ODI1MDYwMjA=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20i.e.%20Android%20or%20iOS",
- "name": "Mobile App - i.e. Android or iOS",
- "color": "a3ef7a",
+ "id": 567484057,
+ "node_id": "MDU6TGFiZWw1Njc0ODQwNTc=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Developer%20Documentation",
+ "name": "[Type] Developer Documentation",
+ "color": "bfd4f2",
"default": false,
- "description": "Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)"
+ "description": "Documentation for developers"
}
],
"state": "closed",
"locked": false,
- "assignee": null,
- "assignees": [],
+ "assignee": {
+ "login": "ockham",
+ "id": 96308,
+ "node_id": "MDQ6VXNlcjk2MzA4",
+ "avatar_url": "https://avatars.githubusercontent.com/u/96308?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ockham",
+ "html_url": "https://github.com/ockham",
+ "followers_url": "https://api.github.com/users/ockham/followers",
+ "following_url": "https://api.github.com/users/ockham/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ockham/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ockham/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ockham/subscriptions",
+ "organizations_url": "https://api.github.com/users/ockham/orgs",
+ "repos_url": "https://api.github.com/users/ockham/repos",
+ "events_url": "https://api.github.com/users/ockham/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ockham/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "ockham",
+ "id": 96308,
+ "node_id": "MDQ6VXNlcjk2MzA4",
+ "avatar_url": "https://avatars.githubusercontent.com/u/96308?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ockham",
+ "html_url": "https://github.com/ockham",
+ "followers_url": "https://api.github.com/users/ockham/followers",
+ "following_url": "https://api.github.com/users/ockham/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ockham/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ockham/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ockham/subscriptions",
+ "organizations_url": "https://api.github.com/users/ockham/orgs",
+ "repos_url": "https://api.github.com/users/ockham/repos",
+ "events_url": "https://api.github.com/users/ockham/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ockham/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -9067,131 +9797,138 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 3,
- "created_at": "2021-07-29T08:01:33Z",
- "updated_at": "2021-07-30T07:20:33Z",
- "closed_at": "2021-07-30T07:20:01Z",
- "author_association": "MEMBER",
+ "comments": 5,
+ "created_at": "2023-09-27T11:37:37Z",
+ "updated_at": "2023-09-28T06:53:36Z",
+ "closed_at": "2023-09-27T13:09:11Z",
+ "author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33745",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33745",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33745.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33745.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\n\r\n\r\nDisabling paragraph transform for embed block on mobile/native as a workaround to fix https://github.com/wordpress-mobile/gutenberg-mobile/issues/3762\r\n\r\n## How has this been tested?\r\n\r\n\r\n\r\n\r\nSee: https://github.com/wordpress-mobile/gutenberg-mobile/issues/3762\r\n\r\n## Screenshots \r\n\r\nN/A\r\n\r\n## Types of changes\r\n\r\nBug fix (non-breaking change which fixes an issue)\r\n\r\n\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54862",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54862",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54862.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54862.patch",
+ "merged_at": "2023-09-27T13:09:11Z"
+ },
+ "body": "## What?\r\n\r\nRename the handbook page currently entitled \"Block Hooks\" to \"Block Filters\".\r\n\r\n## Why?\r\n\r\nTo distinguish from the new [\"Block Hooks\" feature](https://core.trac.wordpress.org/ticket/59313), which is conceptually very different.\r\n\r\n## How?\r\n\r\nBy renaming the handbook page from \"Block Hooks\" to \"Block Filters\".\r\n\r\nAFAICT, the handbook page makes no direct reference to hooks, other than the title; furthermore, the relevant client-side `@wordpress/` package happens to be called `@wordpress/hooks`. Reading the page, it’s all about filters though (both on the client and server sides), whereas \"hooks\" traditionally denotes the union of filters and actions — the latter of which are pretty much absent from the page.\r\n\r\nFinally, note that the filename has already been `block-filters.md` before.\r\n\r\nThus, changing the title to \"Block Filters\" seems warranted.\r\n\r\nFlagged by @juanmaguitar in Slack.",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54862/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54862/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33742",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54861",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33742/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33742/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33742/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33742",
- "id": 955514565,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk5MjU0MjM0",
- "number": 33742,
- "title": "Template Mode: Remove 'per_page' argument from the template data selector",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54861/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54861/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54861/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54861",
+ "id": 1915325797,
+ "node_id": "PR_kwDOBNHdeM5bU6oV",
+ "number": 54861,
+ "title": "Fix warning when a template calls a template area twice",
"user": {
- "login": "Mamaduka",
- "id": 240569,
- "node_id": "MDQ6VXNlcjI0MDU2OQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "login": "MaggieCabrera",
+ "id": 3593343,
+ "node_id": "MDQ6VXNlcjM1OTMzNDM=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/3593343?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/Mamaduka",
- "html_url": "https://github.com/Mamaduka",
- "followers_url": "https://api.github.com/users/Mamaduka/followers",
- "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
- "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
- "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
- "repos_url": "https://api.github.com/users/Mamaduka/repos",
- "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "url": "https://api.github.com/users/MaggieCabrera",
+ "html_url": "https://github.com/MaggieCabrera",
+ "followers_url": "https://api.github.com/users/MaggieCabrera/followers",
+ "following_url": "https://api.github.com/users/MaggieCabrera/following{/other_user}",
+ "gists_url": "https://api.github.com/users/MaggieCabrera/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/MaggieCabrera/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/MaggieCabrera/subscriptions",
+ "organizations_url": "https://api.github.com/users/MaggieCabrera/orgs",
+ "repos_url": "https://api.github.com/users/MaggieCabrera/repos",
+ "events_url": "https://api.github.com/users/MaggieCabrera/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/MaggieCabrera/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 731693674,
- "node_id": "MDU6TGFiZWw3MzE2OTM2NzQ=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Performance",
- "name": "[Type] Performance",
- "color": "f3f4fe",
- "default": false,
- "description": ""
- },
- {
- "id": 2978205898,
- "node_id": "MDU6TGFiZWwyOTc4MjA1ODk4",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Template%20Editing%20Mode",
- "name": "[Feature] Template Editing Mode",
- "color": "FBCA04",
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
"default": false,
- "description": ""
+ "description": "An existing feature does not function as intended"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "Mamaduka",
- "id": 240569,
- "node_id": "MDQ6VXNlcjI0MDU2OQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "login": "MaggieCabrera",
+ "id": 3593343,
+ "node_id": "MDQ6VXNlcjM1OTMzNDM=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/3593343?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/Mamaduka",
- "html_url": "https://github.com/Mamaduka",
- "followers_url": "https://api.github.com/users/Mamaduka/followers",
- "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
- "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
- "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
- "repos_url": "https://api.github.com/users/Mamaduka/repos",
- "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "url": "https://api.github.com/users/MaggieCabrera",
+ "html_url": "https://github.com/MaggieCabrera",
+ "followers_url": "https://api.github.com/users/MaggieCabrera/followers",
+ "following_url": "https://api.github.com/users/MaggieCabrera/following{/other_user}",
+ "gists_url": "https://api.github.com/users/MaggieCabrera/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/MaggieCabrera/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/MaggieCabrera/subscriptions",
+ "organizations_url": "https://api.github.com/users/MaggieCabrera/orgs",
+ "repos_url": "https://api.github.com/users/MaggieCabrera/repos",
+ "events_url": "https://api.github.com/users/MaggieCabrera/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/MaggieCabrera/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "Mamaduka",
- "id": 240569,
- "node_id": "MDQ6VXNlcjI0MDU2OQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "login": "MaggieCabrera",
+ "id": 3593343,
+ "node_id": "MDQ6VXNlcjM1OTMzNDM=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/3593343?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/Mamaduka",
- "html_url": "https://github.com/Mamaduka",
- "followers_url": "https://api.github.com/users/Mamaduka/followers",
- "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
- "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
- "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
- "repos_url": "https://api.github.com/users/Mamaduka/repos",
- "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "url": "https://api.github.com/users/MaggieCabrera",
+ "html_url": "https://github.com/MaggieCabrera",
+ "followers_url": "https://api.github.com/users/MaggieCabrera/followers",
+ "following_url": "https://api.github.com/users/MaggieCabrera/following{/other_user}",
+ "gists_url": "https://api.github.com/users/MaggieCabrera/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/MaggieCabrera/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/MaggieCabrera/subscriptions",
+ "organizations_url": "https://api.github.com/users/MaggieCabrera/orgs",
+ "repos_url": "https://api.github.com/users/MaggieCabrera/repos",
+ "events_url": "https://api.github.com/users/MaggieCabrera/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/MaggieCabrera/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -9214,86 +9951,93 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 2,
- "created_at": "2021-07-29T06:41:40Z",
- "updated_at": "2021-07-29T07:25:16Z",
- "closed_at": "2021-07-29T07:24:49Z",
- "author_association": "MEMBER",
+ "comments": 14,
+ "created_at": "2023-09-27T11:22:37Z",
+ "updated_at": "2023-09-29T18:47:47Z",
+ "closed_at": "2023-09-28T15:25:23Z",
+ "author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33742",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33742",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33742.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33742.patch"
- },
- "body": "## Description\r\nRemoves `per_page` query argument in TemplatesPanel component when fetching WP templates. This argument isn't supported by the `templates` endpoint nor by the `get_block_templates` function.\r\n\r\nThis also allows reusing data from the store between the `getEditedPostTemplate` and TemplatesPanel component and removes extra API requests.\r\n\r\n## Screenshots\r\n| Before | After |\r\n| ------------- | ------------- |\r\n| ![template-mode-before](https://user-images.githubusercontent.com/240569/127444078-cca5f00b-106d-4ed0-bc62-bbf70ba17d53.png) | ![template-mode-after](https://user-images.githubusercontent.com/240569/127444070-fdb82e5c-d3c2-45f8-b694-0325f3cb9fab.png) |\r\n\r\n## How has this been tested?\r\n1. Enable TT1 Blocks theme\r\n2. Create a new post.\r\n3. The sidebar should render templates selection.\r\n\r\n## Types of changes\r\nPerformance\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54861",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54861",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54861.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54861.patch",
+ "merged_at": "2023-09-28T15:25:23Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\n\r\nThis PR removes duplicate template areas from the sidebar when in Site View.\r\n\r\nThe list of areas is based on the template parts used on the page, but we may use some template parts twice. \r\n\r\n## Why?\r\nWe only want to display these template areas and corresponding parts once in the sidebar even if they are used multiple times.\r\n\r\n## How?\r\nBy making sure that `getFilteredTemplatePartBlocks` only returns one instance of each `templateId`, making them unique\r\n\r\n## Screenshot\r\n \r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54861/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54861/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33740",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54856",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33740/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33740/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33740/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33740",
- "id": 955404874,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk5MTYxMDM4",
- "number": 33740,
- "title": "[RNMobile] Fix UBE's Inaccessible \"More\" Toolbar Item on Android",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54856/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54856/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54856/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54856",
+ "id": 1915129551,
+ "node_id": "PR_kwDOBNHdeM5bUUof",
+ "number": 54856,
+ "title": "Don’t use TypeScript files in scripts package",
"user": {
- "login": "SiobhyB",
- "id": 2998162,
- "node_id": "MDQ6VXNlcjI5OTgxNjI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/2998162?v=4",
+ "login": "swissspidy",
+ "id": 841956,
+ "node_id": "MDQ6VXNlcjg0MTk1Ng==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/841956?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/SiobhyB",
- "html_url": "https://github.com/SiobhyB",
- "followers_url": "https://api.github.com/users/SiobhyB/followers",
- "following_url": "https://api.github.com/users/SiobhyB/following{/other_user}",
- "gists_url": "https://api.github.com/users/SiobhyB/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/SiobhyB/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/SiobhyB/subscriptions",
- "organizations_url": "https://api.github.com/users/SiobhyB/orgs",
- "repos_url": "https://api.github.com/users/SiobhyB/repos",
- "events_url": "https://api.github.com/users/SiobhyB/events{/privacy}",
- "received_events_url": "https://api.github.com/users/SiobhyB/received_events",
+ "url": "https://api.github.com/users/swissspidy",
+ "html_url": "https://github.com/swissspidy",
+ "followers_url": "https://api.github.com/users/swissspidy/followers",
+ "following_url": "https://api.github.com/users/swissspidy/following{/other_user}",
+ "gists_url": "https://api.github.com/users/swissspidy/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/swissspidy/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/swissspidy/subscriptions",
+ "organizations_url": "https://api.github.com/users/swissspidy/orgs",
+ "repos_url": "https://api.github.com/users/swissspidy/repos",
+ "events_url": "https://api.github.com/users/swissspidy/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/swissspidy/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 531680823,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
- "name": "[Type] Bug",
- "color": "d93f0b",
- "default": false,
- "description": "An existing feature is broken."
- },
- {
- "id": 982506020,
- "node_id": "MDU6TGFiZWw5ODI1MDYwMjA=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20i.e.%20Android%20or%20iOS",
- "name": "Mobile App - i.e. Android or iOS",
- "color": "a3ef7a",
+ "id": 615503111,
+ "node_id": "MDU6TGFiZWw2MTU1MDMxMTE=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Automated%20Testing",
+ "name": "[Type] Automated Testing",
+ "color": "111111",
"default": false,
- "description": "Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)"
+ "description": "Testing infrastructure changes impacting the execution of end-to-end (E2E) and/or unit tests."
},
{
- "id": 1999059055,
- "node_id": "MDU6TGFiZWwxOTk5MDU5MDU1",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/CSS%20Styling",
- "name": "CSS Styling",
- "color": "63e2d2",
+ "id": 978007737,
+ "node_id": "MDU6TGFiZWw5NzgwMDc3Mzc=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Scripts",
+ "name": "[Package] Scripts",
+ "color": "ed2572",
"default": false,
- "description": "Related to editor and front end styles, CSS-specific issues."
+ "description": "/packages/scripts"
}
],
"state": "closed",
@@ -9301,13 +10045,13 @@
"assignee": null,
"assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -9330,198 +10074,147 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 2,
- "created_at": "2021-07-29T02:48:49Z",
- "updated_at": "2021-08-02T18:22:05Z",
- "closed_at": "2021-08-02T18:21:37Z",
- "author_association": "CONTRIBUTOR",
+ "comments": 5,
+ "created_at": "2023-09-27T09:52:57Z",
+ "updated_at": "2023-10-02T15:05:25Z",
+ "closed_at": "2023-09-27T12:32:34Z",
+ "author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33740",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33740",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33740.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33740.patch"
- },
- "body": "Fixes https://github.com/WordPress/gutenberg/issues/33592\r\n\r\n`gutenberg-mobile`: https://github.com/wordpress-mobile/gutenberg-mobile/pull/3771\r\n\r\n## Brief Description\r\n\r\nThe \"more\" toolbar item isn't currently accessible from the Unsupported Block Editor (UBE) within the Android app. As outlined in https://github.com/WordPress/gutenberg/issues/33592, tapping on the toolbar items results in a flash of a dropdown menu, but that menu instantly disappears. This PR includes a fix for that.\r\n\r\n## More Detailed/Technical Description\r\n\r\nThe UBE is essentially the same editor that loads in the web, with a key difference being that we override some of the default CSS in [the /editor-style-overrides.css file](https://github.com/WordPress/gutenberg/blob/trunk/packages/react-native-bridge/common/gutenberg-web-single-block/editor-style-overrides.css). In that CSS file, we're currently attempting to hide all but one item in the dropdown menu associated with the \"more\" toolbar item. The only item we want to display is the link to **Show More Settings**.\r\n\r\n| Default web view | HTML + class names |\r\n| ------------- | ------------- |\r\n| | |\r\n\r\nYou'll see from the above screenshot of the dropdown menu's HTML, that there aren't any specific class names we can target to achieve our goal of only displaying the **Show More Settings** link. As such, [the `:first-child` selector](https://developer.mozilla.org/en-US/docs/Web/CSS/:first-child) is [being used here to target it](https://github.com/WordPress/gutenberg/blob/trunk/packages/react-native-bridge/common/gutenberg-web-single-block/editor-style-overrides.css#L68):\r\n\r\n```\r\n/* Remove all buttons from the component menu group inside \\'...\\' button in block toolbar */\r\n.components-menu-group > div > button:not(:first-child) {\r\n display: none;\r\n}\r\n```\r\n\r\n**Show More Settings** isn't _always_ the first child in the dropdown menu. The **Copy** link is the menu's first initial child, with **Show More Settings** being added via JavaScript when the \"more\" toolbar item is added. Although the CSS should still work in theory, as it seems to in Safari, this seems to be the crutch of the reason Chrome isn't applying the selector as expected. Both menus are _at some point_ removed, causing an empty dropdown menu to disappear.\r\n\r\nWith this PR, I've been able to work around the issue with a somewhat hacky-feeling addition to the custom CSS we're using, but I believe it may be the best solution. Specifically, I've targeted the **Copy** link so that it's never technically removed from the document and only hidden by reducing its height to zero. \r\n\r\nFurther details around debugging this issue and commentary around the solution can be found in the **Developer Notes** section below.\r\n\r\n_**Sidenote:** As [I was able to replicate the problem in much older versions of the app](https://github.com/WordPress/gutenberg/issues/33592#issuecomment-884402519), and I'm fairly certain it'd have been spotted when the UBE was first released if it had existed back then, I'm speculating that this has come up due to a change in the way Chrome applies the `:first-child` CSS selector. As outlined in https://github.com/WordPress/gutenberg/issues/21874, this highlights some fragility with the way the UBE is being styled, which is a wider discussion than intended for this specific PR._\r\n\r\n## How has this been tested?\r\n\r\n_**Precondition:** To follow these steps, you'll first need to create a post or page on the web that contains a block that's unsupported in the apps. At the time of writing, the tag cloud block is an option. You will also need to be working on a WordPress.com or a Jetpack-connected site._ \r\n\r\nThe testing steps are as follows:\r\n\r\n* In the Android app, navigate to a post or page containing an unsupported block. \r\n* Tap the **?** icon to the unsupported block's upper right and then **Edit using web editor**.\r\n* Tap the \"more\" icon in the editor's toolbar i.e. the last icon in the toolbar's list, it has three dots.\r\n* Verify that you see a **More Settings** menu item that you're able to tap on and use with no issues.\r\n\r\nIt'd also be helpful to test the flow on iOS to ensure these changes don't have any unintended side effects on that platform.\r\n\r\n## Screenshots \r\n\r\nA working version of the dropdown menu on a Pixel 2 emulator, with the changes from this branch:\r\n\r\nhttps://user-images.githubusercontent.com/2998162/127540128-79f89b00-7f71-4258-8c61-e3098f2c3708.mov\r\n\r\n## Developer Notes\r\n\r\n\r\nProcess for Debugging on Chrome \r\n\r\nThe most straightforward way to debug this issue is to [use Chrome's Device Mode to simulate a mobile device](https://developer.chrome.com/docs/devtools/device-mode/) on the web and then [use the CSS tools](https://developer.chrome.com/docs/devtools/css/) to add the following custom CSS, which is being added to the apps via [the /editor-style-overrides.css file](https://github.com/WordPress/gutenberg/blob/trunk/packages/react-native-bridge/common/gutenberg-web-single-block/editor-style-overrides.css):\r\n\r\n```\r\n.components-menu-group > div > button:not( :first-child ) {\r\n\tdisplay: none;\r\n}\r\n\r\ncomponents-dropdown-menu__menu > div:not( :first-child ) {\r\n\tdisplay: none;\r\n}\r\n```\r\n\r\nWith the above CSS added, it's possible to follow the general steps for reproducing the issue outlined in the original issue at https://github.com/WordPress/gutenberg/issues/33592. We can then use Chrome's inspector tools to further experiment with a CSS fix and add breakpoints to dig further. \r\n\r\nFor our purposes, we're only attempting to update the first portion of the above snippet, the portion with the `.components-menu-group > div > button:not( :first-child )` selector.\r\n\r\nIt's also worth highlighting that, all spaces are removed when the CSS is bundled for the app, which can create issues with the CSS e.g. \".components-dropdown-menu__menu .components-menu-group\" will load as \".components-dropdown-menu__menu.components-menu-group\", with no space together.\r\n\r\n \r\n\r\n\r\nExperiments \r\n\r\nI tried different variations of `:first-child` and `:first-of-type`, including the following two snippets, but wasn't able to find a way to get these selectors to work with our goal of only displays **Show More Settings**: \r\n\r\n```\r\n.components-menu-group > div > button {\r\n\tdisplay: none;\r\n}\r\n\r\n\r\n.components-menu-group > div > button:first-child {\r\n\tdisplay: block;\r\n}\r\n```\r\n\r\n```\r\n.components-menu-group > div > button {\r\n\tdisplay: none;\r\n}\r\n\r\n\r\n.components-menu-group > div > button:first-of-type {\r\n\tdisplay: block;\r\n}\r\n```\r\n\r\n \r\n\r\n\r\nSolution \r\n\r\nThe only CSS I found to achieve the goal was the following, which stops the second menu item (**Copy**) being removed from the document and hides it from view by setting a height of zero and applying `display: none` to its content.\r\n\r\nI believe the core issue is that **Copy** is the dropdown menu's `:first-child` when the page first loads, with **Show More Settings** being dynamically added upon click. As such, the existing CSS removes both at some point, causing an empty dropdown menu. The below CSS gets around that problem by never removing **Copy** completely from the document.\r\n\r\n```\r\n.components-dropdown-menu__menu\r\n\t> .components-menu-group\r\n\t> div\r\n\t> button:nth-child( 2 ) {\r\n\tdisplay: block;\r\n\tmin-height: 0;\r\n\theight: 0;\r\n\tpadding: 0;\r\n}\r\n\r\n.components-menu-group > div > button:nth-child( 2 ) > span {\r\n\tdisplay: none;\r\n}\r\n\r\n.components-button:focus:not( :disabled ) {\r\n\tbox-shadow: none;\r\n}\r\n```\r\n\r\n \r\n\r\n\r\n## Types of changes\r\n\r\nThis PR introduces a bug fix (a non-breaking change that fixes an issue).\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [x] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54856",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54856",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54856.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54856.patch",
+ "merged_at": "2023-09-27T12:32:34Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\n\r\nThis is a follow-up to #53108, where I added TS files to the scripts package instead of plain JS files.\r\n\r\n## Why?\r\n\r\n\r\nI just realized that the scripts package is not using TypeScript, so these files were not converted to JS on build.\r\n\r\n## How?\r\n\r\n\r\nConverts the two files to plain old JS files.",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54856/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54856/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33739",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54855",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33739/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33739/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33739/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33739",
- "id": 955312278,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk5MDgxNzI0",
- "number": 33739,
- "title": "Fix justification for button block when selected",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54855/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54855/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54855/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54855",
+ "id": 1915073415,
+ "node_id": "PR_kwDOBNHdeM5bUIwZ",
+ "number": 54855,
+ "title": "Add new e2e test for creating a pattern",
"user": {
- "login": "mkaz",
- "id": 45363,
- "node_id": "MDQ6VXNlcjQ1MzYz",
- "avatar_url": "https://avatars.githubusercontent.com/u/45363?v=4",
+ "login": "kevin940726",
+ "id": 7753001,
+ "node_id": "MDQ6VXNlcjc3NTMwMDE=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/7753001?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/mkaz",
- "html_url": "https://github.com/mkaz",
- "followers_url": "https://api.github.com/users/mkaz/followers",
- "following_url": "https://api.github.com/users/mkaz/following{/other_user}",
- "gists_url": "https://api.github.com/users/mkaz/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/mkaz/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/mkaz/subscriptions",
- "organizations_url": "https://api.github.com/users/mkaz/orgs",
- "repos_url": "https://api.github.com/users/mkaz/repos",
- "events_url": "https://api.github.com/users/mkaz/events{/privacy}",
- "received_events_url": "https://api.github.com/users/mkaz/received_events",
+ "url": "https://api.github.com/users/kevin940726",
+ "html_url": "https://github.com/kevin940726",
+ "followers_url": "https://api.github.com/users/kevin940726/followers",
+ "following_url": "https://api.github.com/users/kevin940726/following{/other_user}",
+ "gists_url": "https://api.github.com/users/kevin940726/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/kevin940726/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/kevin940726/subscriptions",
+ "organizations_url": "https://api.github.com/users/kevin940726/orgs",
+ "repos_url": "https://api.github.com/users/kevin940726/repos",
+ "events_url": "https://api.github.com/users/kevin940726/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/kevin940726/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 1112969457,
- "node_id": "MDU6TGFiZWwxMTEyOTY5NDU3",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Buttons",
- "name": "[Block] Buttons",
- "color": "6767e5",
+ "id": 930001208,
+ "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
+ "name": "[Type] Code Quality",
+ "color": "e5e04b",
"default": false,
- "description": ""
+ "description": "Issues or PRs that relate to code quality"
},
{
- "id": 2463256422,
- "node_id": "MDU6TGFiZWwyNDYzMjU2NDIy",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Backport%20to%20WP%20Minor%20Release",
- "name": "Backport to WP Minor Release",
- "color": "491d8e",
+ "id": 1882657161,
+ "node_id": "MDU6TGFiZWwxODgyNjU3MTYx",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Patterns",
+ "name": "[Feature] Patterns",
+ "color": "fbca04",
"default": false,
- "description": "PRs to be back-ported to a WordPress minor release."
+ "description": "A collection of blocks that can be synced (previously reusable blocks) or unsynced"
}
],
"state": "closed",
"locked": false,
- "assignee": null,
- "assignees": [],
- "milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
- "description": null,
- "creator": {
- "login": "github-actions[bot]",
- "id": 41898282,
- "node_id": "MDM6Qm90NDE4OTgyODI=",
- "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/github-actions%5Bbot%5D",
- "html_url": "https://github.com/apps/github-actions",
- "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
- "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
- "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
- "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
- "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
- "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
- "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
- "type": "Bot",
- "site_admin": false
- },
- "open_issues": 0,
- "closed_issues": 113,
- "state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
- "closed_at": null
- },
- "comments": 2,
- "created_at": "2021-07-28T23:40:16Z",
- "updated_at": "2021-08-02T16:48:16Z",
- "closed_at": "2021-08-02T16:46:43Z",
- "author_association": "MEMBER",
- "active_lock_reason": null,
- "pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33739",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33739",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33739.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33739.patch"
- },
- "body": "\r\n## Description\r\n\r\nWhen selecting the button block and applying a justification, the justify doesn't apply until the box is unselected.\r\n\r\nWhat is really happening is when the block is unselected the block appender is removed, and the rules for the block appender is forcing the button all the way to the left so when removed it allows the justification to apply and the block is then centered (or right).\r\n\r\nFixes #33487\r\n\r\n## How has this been tested?\r\n\r\n1. Confirm bug by adding buttons block and justify center or right, see bug #33487\r\n2. Unselect the block to see justification applied\r\n3. Apply PR fix\r\n4. Repeat and notice justification applies immediately\r\n\r\n\r\n![button-justify](https://user-images.githubusercontent.com/45363/127409926-b8794df5-faf1-4e01-ae14-e8772e3e3930.gif)\r\n\r\n\r\n## Types of changes\r\n\r\nThis PR changes the block appender CSS rules that forced justified content all the way to the left. I did extra testing around but any additional checks are welcome to confirm no unintended consequences with the appender elsewhere.\r\n",
- "performed_via_github_app": null
- },
- {
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33738",
- "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33738/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33738/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33738/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33738",
- "id": 955269728,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk5MDQ1MjM3",
- "number": 33738,
- "title": "Example for rest_endpoints filter in PHP",
- "user": {
- "login": "amir2mi",
- "id": 64708228,
- "node_id": "MDQ6VXNlcjY0NzA4MjI4",
- "avatar_url": "https://avatars.githubusercontent.com/u/64708228?v=4",
+ "assignee": {
+ "login": "kevin940726",
+ "id": 7753001,
+ "node_id": "MDQ6VXNlcjc3NTMwMDE=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/7753001?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/amir2mi",
- "html_url": "https://github.com/amir2mi",
- "followers_url": "https://api.github.com/users/amir2mi/followers",
- "following_url": "https://api.github.com/users/amir2mi/following{/other_user}",
- "gists_url": "https://api.github.com/users/amir2mi/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/amir2mi/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/amir2mi/subscriptions",
- "organizations_url": "https://api.github.com/users/amir2mi/orgs",
- "repos_url": "https://api.github.com/users/amir2mi/repos",
- "events_url": "https://api.github.com/users/amir2mi/events{/privacy}",
- "received_events_url": "https://api.github.com/users/amir2mi/received_events",
+ "url": "https://api.github.com/users/kevin940726",
+ "html_url": "https://github.com/kevin940726",
+ "followers_url": "https://api.github.com/users/kevin940726/followers",
+ "following_url": "https://api.github.com/users/kevin940726/following{/other_user}",
+ "gists_url": "https://api.github.com/users/kevin940726/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/kevin940726/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/kevin940726/subscriptions",
+ "organizations_url": "https://api.github.com/users/kevin940726/orgs",
+ "repos_url": "https://api.github.com/users/kevin940726/repos",
+ "events_url": "https://api.github.com/users/kevin940726/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/kevin940726/received_events",
"type": "User",
"site_admin": false
},
- "labels": [
- {
- "id": 567484057,
- "node_id": "MDU6TGFiZWw1Njc0ODQwNTc=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Documentation",
- "name": "[Type] Developer Documentation",
- "color": "bfd4f2",
- "default": false,
- "description": ""
- },
+ "assignees": [
{
- "id": 1388646432,
- "node_id": "MDU6TGFiZWwxMzg4NjQ2NDMy",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/First-time%20Contributor",
- "name": "First-time Contributor",
- "color": "a0f762",
- "default": false,
- "description": "Pull request opened by a first-time contributor to Gutenberg repository"
+ "login": "kevin940726",
+ "id": 7753001,
+ "node_id": "MDQ6VXNlcjc3NTMwMDE=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/7753001?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/kevin940726",
+ "html_url": "https://github.com/kevin940726",
+ "followers_url": "https://api.github.com/users/kevin940726/followers",
+ "following_url": "https://api.github.com/users/kevin940726/following{/other_user}",
+ "gists_url": "https://api.github.com/users/kevin940726/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/kevin940726/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/kevin940726/subscriptions",
+ "organizations_url": "https://api.github.com/users/kevin940726/orgs",
+ "repos_url": "https://api.github.com/users/kevin940726/repos",
+ "events_url": "https://api.github.com/users/kevin940726/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/kevin940726/received_events",
+ "type": "User",
+ "site_admin": false
}
],
- "state": "closed",
- "locked": false,
- "assignee": null,
- "assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -9544,131 +10237,138 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 2,
- "created_at": "2021-07-28T22:06:53Z",
- "updated_at": "2021-08-03T07:56:08Z",
- "closed_at": "2021-08-03T06:40:12Z",
- "author_association": "CONTRIBUTOR",
+ "comments": 3,
+ "created_at": "2023-09-27T09:21:56Z",
+ "updated_at": "2023-09-29T14:26:36Z",
+ "closed_at": "2023-09-27T10:46:01Z",
+ "author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33738",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33738",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33738.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33738.patch"
- },
- "body": "`httpMethod` is added recently. It can be set to `POST`, which allows bigger attributes object.\r\nHowever, before WP 5.5 it does not work and gives 404 error. it will be solved with filtered `rest_endpoints` and here is that example.\r\nThanks to @kienstra, who pointed me out [here](https://github.com/studiopress/genesis-custom-blocks/blob/3670937b8d0a7326c7a4e28413c09e48bae457e4/php/Blocks/Loader.php#L613).",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54855",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54855",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54855.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54855.patch",
+ "merged_at": "2023-09-27T10:46:01Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\nA basic e2e test to create a new pattern in the patterns screen.\r\n\r\n## Why?\r\n\r\nTo cover some of the most critical path in the patterns page to allow us to move faster with confidence.\r\n\r\n## How?\r\n\r\nKnow your tools and write an e2e test! ✍️ \r\n\r\nNote that there are some `// TODO`s that each represents a bug. We'll look into those in follow-up PRs.\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\nCI should pass\r\n\r\n### Testing Instructions for Keyboard\r\n\r\nN/A\r\n\r\n## Screenshots or screencast \r\nN/A\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54855/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54855/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33737",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54851",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33737/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33737/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33737/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33737",
- "id": 955251305,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk5MDI5NTMw",
- "number": 33737,
- "title": "Site Editor: Implement a settings object filter",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54851/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54851/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54851/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54851",
+ "id": 1914982440,
+ "node_id": "PR_kwDOBNHdeM5bT09x",
+ "number": 54851,
+ "title": "Fix the ShortcutProvider usage",
"user": {
- "login": "jeyip",
- "id": 5414230,
- "node_id": "MDQ6VXNlcjU0MTQyMzA=",
- "avatar_url": "https://avatars.githubusercontent.com/u/5414230?v=4",
+ "login": "youknowriad",
+ "id": 272444,
+ "node_id": "MDQ6VXNlcjI3MjQ0NA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/jeyip",
- "html_url": "https://github.com/jeyip",
- "followers_url": "https://api.github.com/users/jeyip/followers",
- "following_url": "https://api.github.com/users/jeyip/following{/other_user}",
- "gists_url": "https://api.github.com/users/jeyip/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/jeyip/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/jeyip/subscriptions",
- "organizations_url": "https://api.github.com/users/jeyip/orgs",
- "repos_url": "https://api.github.com/users/jeyip/repos",
- "events_url": "https://api.github.com/users/jeyip/events{/privacy}",
- "received_events_url": "https://api.github.com/users/jeyip/received_events",
+ "url": "https://api.github.com/users/youknowriad",
+ "html_url": "https://github.com/youknowriad",
+ "followers_url": "https://api.github.com/users/youknowriad/followers",
+ "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
+ "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
+ "organizations_url": "https://api.github.com/users/youknowriad/orgs",
+ "repos_url": "https://api.github.com/users/youknowriad/repos",
+ "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/youknowriad/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 1604715381,
- "node_id": "MDU6TGFiZWwxNjA0NzE1Mzgx",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Full%20Site%20Editing",
- "name": "[Feature] Full Site Editing",
- "color": "fbca04",
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
"default": false,
- "description": ""
- },
- {
- "id": 2706102777,
- "node_id": "MDU6TGFiZWwyNzA2MTAyNzc3",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Site%20Editor",
- "name": "[Feature] Site Editor",
- "color": "fbca04",
- "default": false,
- "description": ""
+ "description": "An existing feature does not function as intended"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "jeyip",
- "id": 5414230,
- "node_id": "MDQ6VXNlcjU0MTQyMzA=",
- "avatar_url": "https://avatars.githubusercontent.com/u/5414230?v=4",
+ "login": "youknowriad",
+ "id": 272444,
+ "node_id": "MDQ6VXNlcjI3MjQ0NA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/jeyip",
- "html_url": "https://github.com/jeyip",
- "followers_url": "https://api.github.com/users/jeyip/followers",
- "following_url": "https://api.github.com/users/jeyip/following{/other_user}",
- "gists_url": "https://api.github.com/users/jeyip/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/jeyip/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/jeyip/subscriptions",
- "organizations_url": "https://api.github.com/users/jeyip/orgs",
- "repos_url": "https://api.github.com/users/jeyip/repos",
- "events_url": "https://api.github.com/users/jeyip/events{/privacy}",
- "received_events_url": "https://api.github.com/users/jeyip/received_events",
+ "url": "https://api.github.com/users/youknowriad",
+ "html_url": "https://github.com/youknowriad",
+ "followers_url": "https://api.github.com/users/youknowriad/followers",
+ "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
+ "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
+ "organizations_url": "https://api.github.com/users/youknowriad/orgs",
+ "repos_url": "https://api.github.com/users/youknowriad/repos",
+ "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/youknowriad/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "jeyip",
- "id": 5414230,
- "node_id": "MDQ6VXNlcjU0MTQyMzA=",
- "avatar_url": "https://avatars.githubusercontent.com/u/5414230?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/jeyip",
- "html_url": "https://github.com/jeyip",
- "followers_url": "https://api.github.com/users/jeyip/followers",
- "following_url": "https://api.github.com/users/jeyip/following{/other_user}",
- "gists_url": "https://api.github.com/users/jeyip/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/jeyip/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/jeyip/subscriptions",
- "organizations_url": "https://api.github.com/users/jeyip/orgs",
- "repos_url": "https://api.github.com/users/jeyip/repos",
- "events_url": "https://api.github.com/users/jeyip/events{/privacy}",
- "received_events_url": "https://api.github.com/users/jeyip/received_events",
+ "login": "youknowriad",
+ "id": 272444,
+ "node_id": "MDQ6VXNlcjI3MjQ0NA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/youknowriad",
+ "html_url": "https://github.com/youknowriad",
+ "followers_url": "https://api.github.com/users/youknowriad/followers",
+ "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
+ "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
+ "organizations_url": "https://api.github.com/users/youknowriad/orgs",
+ "repos_url": "https://api.github.com/users/youknowriad/repos",
+ "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/youknowriad/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -9691,100 +10391,156 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 2,
- "created_at": "2021-07-28T21:33:27Z",
- "updated_at": "2021-08-03T17:00:08Z",
- "closed_at": "2021-08-03T16:59:29Z",
+ "comments": 3,
+ "created_at": "2023-09-27T08:29:03Z",
+ "updated_at": "2023-09-29T12:04:24Z",
+ "closed_at": "2023-09-27T10:30:21Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33737",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33737",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33737.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33737.patch"
- },
- "body": "Potentially solves https://github.com/WordPress/gutenberg/issues/33736\r\n\r\n\r\n\r\n\r\n\r\n## Description\r\n\r\nThe **post editor** has the `block_editor_settings_all` and `block_editor_settings` filter that allows us to modify the `settings` object injected into the block editor. A similar filter, however, doesn't exist for the site editor.\r\n\r\n## How has this been tested?\r\n\r\n\r\n\r\n**There should be no visible changes to the UI.**\r\n\r\n1. Set up local Gutenberg dev environment\r\n2. Activate a block based theme\r\n3. Navigate to the site editor\r\n4. Smoke test the site editor to ensure that updates still persist correctly, block insertion still functions as expected, etc.\r\n\r\n## Screenshots \r\n\r\n## Types of changes\r\n\r\n\r\n\r\n\r\nNew feature\r\n\r\n## Checklist:\r\n- [ ] My code is tested.\r\n- [ ] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [ ] My code has proper inline documentation. \r\n- [ ] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54851",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54851",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54851.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54851.patch",
+ "merged_at": "2023-09-27T10:30:21Z"
+ },
+ "body": "Follow-up to #54080 \r\nFixes the issue raised here https://github.com/WordPress/gutenberg/pull/54080#issuecomment-1733208834\r\n\r\n## What?\r\n\r\nWe currently have two ways of providing the \"context\" for `useShortcut` hook. One is the default context and one is the `ShortcutProvider`. After #54080 we dropped the usage of `ShortcutProvider` in the WordPress pages (edit post, edit site...) but it's still possible to use it for third-party pages... When we removed the `.current` we missed the fact that the `ShortcutProvider` still provides the context as a \"ref\" so its usage in `useShortcut` was triggering JS errors.\r\n\r\nIn the current PR, I'm updating the `ShortcutProvider` to not use a ref and just pass a stable reference to the shortcuts set.\r\n\r\n## Testing Instructions\r\n\r\n1- Update the edit-post package and add a `ShortcutProvider` top level \r\n2- Ensure that there's no JS error",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54851/reactions",
+ "total_count": 1,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 1,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54851/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33734",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54850",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33734/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33734/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33734/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33734",
- "id": 955144677,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk4OTM3MTI3",
- "number": 33734,
- "title": "Block patterns: Add translation context on titles",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54850/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54850/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54850/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54850",
+ "id": 1914727319,
+ "node_id": "PR_kwDOBNHdeM5bS9eD",
+ "number": 54850,
+ "title": "Background support: Backport fix for undefined array key",
"user": {
- "login": "walbo",
- "id": 1415747,
- "node_id": "MDQ6VXNlcjE0MTU3NDc=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1415747?v=4",
+ "login": "andrewserong",
+ "id": 14988353,
+ "node_id": "MDQ6VXNlcjE0OTg4MzUz",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14988353?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/walbo",
- "html_url": "https://github.com/walbo",
- "followers_url": "https://api.github.com/users/walbo/followers",
- "following_url": "https://api.github.com/users/walbo/following{/other_user}",
- "gists_url": "https://api.github.com/users/walbo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/walbo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/walbo/subscriptions",
- "organizations_url": "https://api.github.com/users/walbo/orgs",
- "repos_url": "https://api.github.com/users/walbo/repos",
- "events_url": "https://api.github.com/users/walbo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/walbo/received_events",
+ "url": "https://api.github.com/users/andrewserong",
+ "html_url": "https://github.com/andrewserong",
+ "followers_url": "https://api.github.com/users/andrewserong/followers",
+ "following_url": "https://api.github.com/users/andrewserong/following{/other_user}",
+ "gists_url": "https://api.github.com/users/andrewserong/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/andrewserong/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/andrewserong/subscriptions",
+ "organizations_url": "https://api.github.com/users/andrewserong/orgs",
+ "repos_url": "https://api.github.com/users/andrewserong/repos",
+ "events_url": "https://api.github.com/users/andrewserong/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/andrewserong/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 531680825,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
- "name": "[Type] Enhancement",
- "color": "3993a3",
+ "id": 1299054835,
+ "node_id": "MDU6TGFiZWwxMjk5MDU0ODM1",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Group",
+ "name": "[Block] Group",
+ "color": "6767e5",
"default": false,
- "description": "A suggestion for improvement."
+ "description": "Affects the Group Block"
},
{
- "id": 596965480,
- "node_id": "MDU6TGFiZWw1OTY5NjU0ODA=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Internationalization%20(i18n)",
- "name": "Internationalization (i18n)",
- "color": "e881e2",
+ "id": 1894493554,
+ "node_id": "MDU6TGFiZWwxODk0NDkzNTU0",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Design%20Tools",
+ "name": "[Feature] Design Tools",
+ "color": "fbca04",
"default": false,
- "description": ""
+ "description": "Tools that impact the appearance of blocks both to expand the number of tools and improve the experi"
},
{
- "id": 1882657161,
- "node_id": "MDU6TGFiZWwxODgyNjU3MTYx",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Patterns",
- "name": "[Feature] Patterns",
- "color": "fbca04",
+ "id": 3659584252,
+ "node_id": "LA_kwDOBNHdeM7aINL8",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Backport%20from%20WordPress%20Core",
+ "name": "Backport from WordPress Core",
+ "color": "6FCDF3",
"default": false,
- "description": ""
+ "description": "Pull request that needs to be backported to the a Gutenberg release from WordPress Core"
}
],
"state": "closed",
"locked": false,
- "assignee": null,
- "assignees": [],
+ "assignee": {
+ "login": "andrewserong",
+ "id": 14988353,
+ "node_id": "MDQ6VXNlcjE0OTg4MzUz",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14988353?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/andrewserong",
+ "html_url": "https://github.com/andrewserong",
+ "followers_url": "https://api.github.com/users/andrewserong/followers",
+ "following_url": "https://api.github.com/users/andrewserong/following{/other_user}",
+ "gists_url": "https://api.github.com/users/andrewserong/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/andrewserong/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/andrewserong/subscriptions",
+ "organizations_url": "https://api.github.com/users/andrewserong/orgs",
+ "repos_url": "https://api.github.com/users/andrewserong/repos",
+ "events_url": "https://api.github.com/users/andrewserong/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/andrewserong/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "andrewserong",
+ "id": 14988353,
+ "node_id": "MDQ6VXNlcjE0OTg4MzUz",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14988353?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/andrewserong",
+ "html_url": "https://github.com/andrewserong",
+ "followers_url": "https://api.github.com/users/andrewserong/followers",
+ "following_url": "https://api.github.com/users/andrewserong/following{/other_user}",
+ "gists_url": "https://api.github.com/users/andrewserong/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/andrewserong/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/andrewserong/subscriptions",
+ "organizations_url": "https://api.github.com/users/andrewserong/orgs",
+ "repos_url": "https://api.github.com/users/andrewserong/repos",
+ "events_url": "https://api.github.com/users/andrewserong/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/andrewserong/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -9807,131 +10563,147 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 0,
- "created_at": "2021-07-28T18:51:55Z",
- "updated_at": "2021-08-03T20:17:16Z",
- "closed_at": "2021-08-03T18:50:17Z",
+ "comments": 1,
+ "created_at": "2023-09-27T05:29:32Z",
+ "updated_at": "2023-09-27T06:11:52Z",
+ "closed_at": "2023-09-27T06:11:20Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33734",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33734",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33734.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33734.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\n\r\nAdd context to block pattern titles.\r\n\r\nSee #33715\r\n\r\n## Types of changes\r\nEnhancement\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [ ] My code has proper inline documentation. \r\n- [ ] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54850",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54850",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54850.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54850.patch",
+ "merged_at": "2023-09-27T06:11:20Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\n\r\nBackport https://github.com/WordPress/wordpress-develop/pull/5326\r\n\r\nCheck that `$block['attrs']` is set and is an array before assigning to `$block_attributes` in the Background image block support.\r\n\r\n## Why?\r\n\r\n\r\nAs raised in https://core.trac.wordpress.org/ticket/59468 it is possible for this array key not to exist, so this check makes for safe accessing of the block attributes.\r\n\r\n## How?\r\n\r\n\r\nCheck that the `attrs` value is set and is an array before using it.\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n\r\nSmoke testing:\r\n\r\n1. Add a couple of Group blocks to a post or page\r\n2. Set one of the Group blocks to have a background image\r\n3. Ensure the background image is displayed correctly on the site frontend",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54850/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54850/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33733",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54847",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33733/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33733/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33733/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33733",
- "id": 954931785,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk4NzUzOTUx",
- "number": 33733,
- "title": "Template part selection popover - minor style updates for visiblity.",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54847/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54847/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54847/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54847",
+ "id": 1914507976,
+ "node_id": "PR_kwDOBNHdeM5bSOLb",
+ "number": 54847,
+ "title": "Components: move `ContextSystemProvider` out of `/ui`",
"user": {
- "login": "Addison-Stavlo",
- "id": 28742426,
- "node_id": "MDQ6VXNlcjI4NzQyNDI2",
- "avatar_url": "https://avatars.githubusercontent.com/u/28742426?v=4",
+ "login": "brookewp",
+ "id": 35543432,
+ "node_id": "MDQ6VXNlcjM1NTQzNDMy",
+ "avatar_url": "https://avatars.githubusercontent.com/u/35543432?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/Addison-Stavlo",
- "html_url": "https://github.com/Addison-Stavlo",
- "followers_url": "https://api.github.com/users/Addison-Stavlo/followers",
- "following_url": "https://api.github.com/users/Addison-Stavlo/following{/other_user}",
- "gists_url": "https://api.github.com/users/Addison-Stavlo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Addison-Stavlo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Addison-Stavlo/subscriptions",
- "organizations_url": "https://api.github.com/users/Addison-Stavlo/orgs",
- "repos_url": "https://api.github.com/users/Addison-Stavlo/repos",
- "events_url": "https://api.github.com/users/Addison-Stavlo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Addison-Stavlo/received_events",
+ "url": "https://api.github.com/users/brookewp",
+ "html_url": "https://github.com/brookewp",
+ "followers_url": "https://api.github.com/users/brookewp/followers",
+ "following_url": "https://api.github.com/users/brookewp/following{/other_user}",
+ "gists_url": "https://api.github.com/users/brookewp/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/brookewp/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/brookewp/subscriptions",
+ "organizations_url": "https://api.github.com/users/brookewp/orgs",
+ "repos_url": "https://api.github.com/users/brookewp/repos",
+ "events_url": "https://api.github.com/users/brookewp/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/brookewp/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 1604715381,
- "node_id": "MDU6TGFiZWwxNjA0NzE1Mzgx",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Full%20Site%20Editing",
- "name": "[Feature] Full Site Editing",
- "color": "fbca04",
+ "id": 930001208,
+ "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
+ "name": "[Type] Code Quality",
+ "color": "e5e04b",
"default": false,
- "description": ""
+ "description": "Issues or PRs that relate to code quality"
},
{
- "id": 2373088071,
- "node_id": "MDU6TGFiZWwyMzczMDg4MDcx",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Template-Part",
- "name": "[Block] Template-Part",
- "color": "6767e5",
+ "id": 997392122,
+ "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
+ "name": "[Package] Components",
+ "color": "ed2572",
"default": false,
- "description": ""
+ "description": "/packages/components"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "Addison-Stavlo",
- "id": 28742426,
- "node_id": "MDQ6VXNlcjI4NzQyNDI2",
- "avatar_url": "https://avatars.githubusercontent.com/u/28742426?v=4",
+ "login": "brookewp",
+ "id": 35543432,
+ "node_id": "MDQ6VXNlcjM1NTQzNDMy",
+ "avatar_url": "https://avatars.githubusercontent.com/u/35543432?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/Addison-Stavlo",
- "html_url": "https://github.com/Addison-Stavlo",
- "followers_url": "https://api.github.com/users/Addison-Stavlo/followers",
- "following_url": "https://api.github.com/users/Addison-Stavlo/following{/other_user}",
- "gists_url": "https://api.github.com/users/Addison-Stavlo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Addison-Stavlo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Addison-Stavlo/subscriptions",
- "organizations_url": "https://api.github.com/users/Addison-Stavlo/orgs",
- "repos_url": "https://api.github.com/users/Addison-Stavlo/repos",
- "events_url": "https://api.github.com/users/Addison-Stavlo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Addison-Stavlo/received_events",
+ "url": "https://api.github.com/users/brookewp",
+ "html_url": "https://github.com/brookewp",
+ "followers_url": "https://api.github.com/users/brookewp/followers",
+ "following_url": "https://api.github.com/users/brookewp/following{/other_user}",
+ "gists_url": "https://api.github.com/users/brookewp/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/brookewp/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/brookewp/subscriptions",
+ "organizations_url": "https://api.github.com/users/brookewp/orgs",
+ "repos_url": "https://api.github.com/users/brookewp/repos",
+ "events_url": "https://api.github.com/users/brookewp/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/brookewp/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "Addison-Stavlo",
- "id": 28742426,
- "node_id": "MDQ6VXNlcjI4NzQyNDI2",
- "avatar_url": "https://avatars.githubusercontent.com/u/28742426?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/Addison-Stavlo",
- "html_url": "https://github.com/Addison-Stavlo",
- "followers_url": "https://api.github.com/users/Addison-Stavlo/followers",
- "following_url": "https://api.github.com/users/Addison-Stavlo/following{/other_user}",
- "gists_url": "https://api.github.com/users/Addison-Stavlo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Addison-Stavlo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Addison-Stavlo/subscriptions",
- "organizations_url": "https://api.github.com/users/Addison-Stavlo/orgs",
- "repos_url": "https://api.github.com/users/Addison-Stavlo/repos",
- "events_url": "https://api.github.com/users/Addison-Stavlo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Addison-Stavlo/received_events",
+ "login": "brookewp",
+ "id": 35543432,
+ "node_id": "MDQ6VXNlcjM1NTQzNDMy",
+ "avatar_url": "https://avatars.githubusercontent.com/u/35543432?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/brookewp",
+ "html_url": "https://github.com/brookewp",
+ "followers_url": "https://api.github.com/users/brookewp/followers",
+ "following_url": "https://api.github.com/users/brookewp/following{/other_user}",
+ "gists_url": "https://api.github.com/users/brookewp/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/brookewp/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/brookewp/subscriptions",
+ "organizations_url": "https://api.github.com/users/brookewp/orgs",
+ "repos_url": "https://api.github.com/users/brookewp/repos",
+ "events_url": "https://api.github.com/users/brookewp/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/brookewp/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -9954,122 +10726,147 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
"comments": 2,
- "created_at": "2021-07-28T14:36:38Z",
- "updated_at": "2021-07-30T16:18:27Z",
- "closed_at": "2021-07-30T16:18:02Z",
+ "created_at": "2023-09-27T01:07:19Z",
+ "updated_at": "2023-09-27T19:16:54Z",
+ "closed_at": "2023-09-27T19:16:33Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33733",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33733",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33733.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33733.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\n\r\nRelated to discussion in https://github.com/WordPress/gutenberg/issues/29950. This PR adds some minor style changes to make previews more visible in the selection popover. While we may still need to reconsider the selection flow/component in the future, these minor changes should help improve the readability of the current state until a new design is introduced.\r\n\r\nCurrently on trunk, there are no borders (save hover and focus) to the items or background to the selection, making it difficult to tell where one preview starts and the other begins:\r\n\r\n![Screen Shot 2021-07-28 at 10 34 24 AM](https://user-images.githubusercontent.com/28742426/127341222-88fdae72-9307-409f-9576-ee0188e653c7.png)\r\n\r\nHere we try adding a gray border to allow the previews to stand out together with their title:\r\n\r\n![Screen Shot 2021-07-30 at 8 23 05 AM](https://user-images.githubusercontent.com/28742426/127652426-8cd19ad4-e29a-4707-b755-fda098ad2a8c.png)\r\n\r\n\r\n\r\n\r\n## How has this been tested?\r\n\r\n\r\n\r\nTest the template part selection component in the site and post editors. This can be accessed from a placeholder block's (insert header, footer, or template part) \"Choose existing\" option, or the \"replace\" option in the block toolbar of an existing template part.\r\n\r\n## Screenshots \r\n\r\n## Types of changes\r\n\r\n\r\n\r\n\r\n\r\n## Checklist:\r\n- [ ] My code is tested.\r\n- [ ] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [ ] My code has proper inline documentation. \r\n- [ ] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54847",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54847",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54847.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54847.patch",
+ "merged_at": "2023-09-27T19:16:33Z"
+ },
+ "body": "\r\n\r\n## What?\r\nThis expands on the work started in https://github.com/WordPress/gutenberg/pull/52953 to remove the `ui` folder. \r\n\r\n## Why?\r\n\r\n\r\nThere isn't a need for the `ui` folder anymore - more details can be found in above-mentioned PR.\r\n\r\n>For context, there is no longer a need to keep a separate /ui folder around, so we want to move toward removing this extra folder grouping.\r\nTo begin with, there are a lot of experimental components in this folder that are not used anywhere, and are no longer part of our overall component strategy. They add unnecessary overhead when auditing or just looking for components. \r\n\r\nThe next step will be to move anything still used from `ui/utils` to `packages/components/src/utils`, so the `ui` folder can be removed.\r\n\r\n## How?\r\n\r\n\r\nThis moves the `context` folder out of the `ui` folder and replaces the imports, links, and mentions of `ui/context`. \r\n\r\n## Testing Instructions\r\n\r\nTests pass and `npm run build` succeeds without error \r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54847/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54847/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33732",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54846",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33732/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33732/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33732/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33732",
- "id": 954881033,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk4NzA4OTkx",
- "number": 33732,
- "title": "[RNMobile] Use random `postId` in integration tests",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54846/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54846/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54846/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54846",
+ "id": 1914430492,
+ "node_id": "PR_kwDOBNHdeM5bR9sg",
+ "number": 54846,
+ "title": "Search block: allow space for input field only when form expanded",
"user": {
- "login": "fluiddot",
- "id": 14905380,
- "node_id": "MDQ6VXNlcjE0OTA1Mzgw",
- "avatar_url": "https://avatars.githubusercontent.com/u/14905380?v=4",
+ "login": "ramonjd",
+ "id": 6458278,
+ "node_id": "MDQ6VXNlcjY0NTgyNzg=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/6458278?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/fluiddot",
- "html_url": "https://github.com/fluiddot",
- "followers_url": "https://api.github.com/users/fluiddot/followers",
- "following_url": "https://api.github.com/users/fluiddot/following{/other_user}",
- "gists_url": "https://api.github.com/users/fluiddot/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/fluiddot/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/fluiddot/subscriptions",
- "organizations_url": "https://api.github.com/users/fluiddot/orgs",
- "repos_url": "https://api.github.com/users/fluiddot/repos",
- "events_url": "https://api.github.com/users/fluiddot/events{/privacy}",
- "received_events_url": "https://api.github.com/users/fluiddot/received_events",
+ "url": "https://api.github.com/users/ramonjd",
+ "html_url": "https://github.com/ramonjd",
+ "followers_url": "https://api.github.com/users/ramonjd/followers",
+ "following_url": "https://api.github.com/users/ramonjd/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ramonjd/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ramonjd/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ramonjd/subscriptions",
+ "organizations_url": "https://api.github.com/users/ramonjd/orgs",
+ "repos_url": "https://api.github.com/users/ramonjd/repos",
+ "events_url": "https://api.github.com/users/ramonjd/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ramonjd/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 982506020,
- "node_id": "MDU6TGFiZWw5ODI1MDYwMjA=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20i.e.%20Android%20or%20iOS",
- "name": "Mobile App - i.e. Android or iOS",
- "color": "a3ef7a",
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
"default": false,
- "description": "Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)"
+ "description": "An existing feature does not function as intended"
+ },
+ {
+ "id": 1539734701,
+ "node_id": "MDU6TGFiZWwxNTM5NzM0NzAx",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Search",
+ "name": "[Block] Search",
+ "color": "6767e5",
+ "default": false,
+ "description": "Affects the Search Block - used to display a search field"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "fluiddot",
- "id": 14905380,
- "node_id": "MDQ6VXNlcjE0OTA1Mzgw",
- "avatar_url": "https://avatars.githubusercontent.com/u/14905380?v=4",
+ "login": "ramonjd",
+ "id": 6458278,
+ "node_id": "MDQ6VXNlcjY0NTgyNzg=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/6458278?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/fluiddot",
- "html_url": "https://github.com/fluiddot",
- "followers_url": "https://api.github.com/users/fluiddot/followers",
- "following_url": "https://api.github.com/users/fluiddot/following{/other_user}",
- "gists_url": "https://api.github.com/users/fluiddot/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/fluiddot/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/fluiddot/subscriptions",
- "organizations_url": "https://api.github.com/users/fluiddot/orgs",
- "repos_url": "https://api.github.com/users/fluiddot/repos",
- "events_url": "https://api.github.com/users/fluiddot/events{/privacy}",
- "received_events_url": "https://api.github.com/users/fluiddot/received_events",
+ "url": "https://api.github.com/users/ramonjd",
+ "html_url": "https://github.com/ramonjd",
+ "followers_url": "https://api.github.com/users/ramonjd/followers",
+ "following_url": "https://api.github.com/users/ramonjd/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ramonjd/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ramonjd/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ramonjd/subscriptions",
+ "organizations_url": "https://api.github.com/users/ramonjd/orgs",
+ "repos_url": "https://api.github.com/users/ramonjd/repos",
+ "events_url": "https://api.github.com/users/ramonjd/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ramonjd/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "fluiddot",
- "id": 14905380,
- "node_id": "MDQ6VXNlcjE0OTA1Mzgw",
- "avatar_url": "https://avatars.githubusercontent.com/u/14905380?v=4",
+ "login": "ramonjd",
+ "id": 6458278,
+ "node_id": "MDQ6VXNlcjY0NTgyNzg=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/6458278?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/fluiddot",
- "html_url": "https://github.com/fluiddot",
- "followers_url": "https://api.github.com/users/fluiddot/followers",
- "following_url": "https://api.github.com/users/fluiddot/following{/other_user}",
- "gists_url": "https://api.github.com/users/fluiddot/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/fluiddot/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/fluiddot/subscriptions",
- "organizations_url": "https://api.github.com/users/fluiddot/orgs",
- "repos_url": "https://api.github.com/users/fluiddot/repos",
- "events_url": "https://api.github.com/users/fluiddot/events{/privacy}",
- "received_events_url": "https://api.github.com/users/fluiddot/received_events",
+ "url": "https://api.github.com/users/ramonjd",
+ "html_url": "https://github.com/ramonjd",
+ "followers_url": "https://api.github.com/users/ramonjd/followers",
+ "following_url": "https://api.github.com/users/ramonjd/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ramonjd/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ramonjd/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ramonjd/subscriptions",
+ "organizations_url": "https://api.github.com/users/ramonjd/orgs",
+ "repos_url": "https://api.github.com/users/ramonjd/repos",
+ "events_url": "https://api.github.com/users/ramonjd/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ramonjd/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -10092,122 +10889,107 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 3,
- "created_at": "2021-07-28T13:54:23Z",
- "updated_at": "2021-07-28T18:33:49Z",
- "closed_at": "2021-07-28T18:33:20Z",
- "author_association": "CONTRIBUTOR",
+ "comments": 8,
+ "created_at": "2023-09-26T23:21:13Z",
+ "updated_at": "2023-10-04T00:27:06Z",
+ "closed_at": "2023-09-27T03:18:03Z",
+ "author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33732",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33732",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33732.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33732.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\n\r\n\r\nWe were using the same `postId` value when initializing the editor in the integration tests, due to incoming changes related to the logic of loading the editor (https://github.com/WordPress/gutenberg/pull/33727), now we need to assure that each test uses a unique `postId` value.\r\n\r\n## How has this been tested?\r\n\r\n\r\n\r\n- Verify that all the tests pass by running the command `npm run native test` or by the CI check.\r\n\r\n## Screenshots \r\nN/A\r\n\r\n## Types of changes\r\n\r\n\r\n\r\n\r\nBug fix\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54846",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54846",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54846.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54846.patch",
+ "merged_at": "2023-09-27T03:18:03Z"
+ },
+ "body": "Resolves https://github.com/WordPress/gutenberg/issues/54842\r\n\r\n## What? 🙈 \r\nA follow up to https://github.com/WordPress/gutenberg/pull/54773\r\n\r\n1. When a search box has an expandable input field and is in \"button only\" mode, provide a max-width for the button and take away 100px when the form is expanded. \r\n2. When the search form is collapsed revert to max-width of 100%.\r\n\r\n## Why? 🙉 \r\n1. To avoid text wrapping and overflow in narrow viewport widths. See https://github.com/WordPress/gutenberg/pull/53373#discussion_r1285736216 for context\r\n2. To ensure the button fills its container. (First fix attempt in https://github.com/WordPress/gutenberg/pull/54773) The input is not there so we don't need the 100px.\r\n\r\n## How? 🙊 \r\nSee \"What\"\r\n\r\n## Testing Instructions\r\n1. Create or edit a navigation block in a theme header, and add a search block.\r\n2. Add a few search blocks in a post, some with lots of search button text and with the input field hidden/displayed. \r\n3. For icon-only buttons in the navigation block, the button should stretch the full width. See test steps in https://github.com/WordPress/gutenberg/pull/54773\r\n4. In narrow viewports the search button with text should not be cut off and single words shouldn't wrap (unless there are spaces between multiple words) See test steps in https://github.com/WordPress/gutenberg/pull/53373\r\n\r\n### Some example block code\r\n\r\n```html\r\n\r\n\r\n\r\n```\r\n\r\n\r\n\r\n\r\n\r\n\r\n## Screenshots or screencast \r\n\r\n\r\n\r\n\r\n### With icon as button\r\n\r\nhttps://github.com/WordPress/gutenberg/assets/6458278/702c7ce6-afd5-4956-9316-0f443dbc881b\r\n\r\n### With button text\r\n\r\nhttps://github.com/WordPress/gutenberg/assets/6458278/3c2e0250-e454-4632-bc87-b1b37493755c\r\n\r\n## No text overflow\r\n\r\n\r\n \r\n\r\nhttps://github.com/WordPress/gutenberg/assets/6458278/65e74997-44a8-4db3-a9b3-ab3a4f367df6\r\n\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54846/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54846/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33727",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54844",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33727/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33727/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33727/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33727",
- "id": 954756916,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk4NjAyMDQ5",
- "number": 33727,
- "title": "Avoid double parsing the content when loading the editor",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54844/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54844/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54844/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54844",
+ "id": 1914291830,
+ "node_id": "PR_kwDOBNHdeM5bRfjn",
+ "number": 54844,
+ "title": "Move mime-type collection generation to a function that can be tested…",
"user": {
- "login": "youknowriad",
- "id": 272444,
- "node_id": "MDQ6VXNlcjI3MjQ0NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
+ "login": "pbking",
+ "id": 146530,
+ "node_id": "MDQ6VXNlcjE0NjUzMA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/146530?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/youknowriad",
- "html_url": "https://github.com/youknowriad",
- "followers_url": "https://api.github.com/users/youknowriad/followers",
- "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
- "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
- "organizations_url": "https://api.github.com/users/youknowriad/orgs",
- "repos_url": "https://api.github.com/users/youknowriad/repos",
- "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
- "received_events_url": "https://api.github.com/users/youknowriad/received_events",
+ "url": "https://api.github.com/users/pbking",
+ "html_url": "https://github.com/pbking",
+ "followers_url": "https://api.github.com/users/pbking/followers",
+ "following_url": "https://api.github.com/users/pbking/following{/other_user}",
+ "gists_url": "https://api.github.com/users/pbking/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/pbking/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/pbking/subscriptions",
+ "organizations_url": "https://api.github.com/users/pbking/orgs",
+ "repos_url": "https://api.github.com/users/pbking/repos",
+ "events_url": "https://api.github.com/users/pbking/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/pbking/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 731693674,
- "node_id": "MDU6TGFiZWw3MzE2OTM2NzQ=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Performance",
- "name": "[Type] Performance",
- "color": "f3f4fe",
+ "id": 930001208,
+ "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
+ "name": "[Type] Code Quality",
+ "color": "e5e04b",
"default": false,
- "description": ""
+ "description": "Issues or PRs that relate to code quality"
+ },
+ {
+ "id": 4254348202,
+ "node_id": "LA_kwDOBNHdeM79lDOq",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Needs%20PHP%20backport",
+ "name": "Needs PHP backport",
+ "color": "64436E",
+ "default": false,
+ "description": "Needs PHP backport to Core"
}
],
"state": "closed",
"locked": false,
- "assignee": {
- "login": "youknowriad",
- "id": 272444,
- "node_id": "MDQ6VXNlcjI3MjQ0NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/youknowriad",
- "html_url": "https://github.com/youknowriad",
- "followers_url": "https://api.github.com/users/youknowriad/followers",
- "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
- "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
- "organizations_url": "https://api.github.com/users/youknowriad/orgs",
- "repos_url": "https://api.github.com/users/youknowriad/repos",
- "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
- "received_events_url": "https://api.github.com/users/youknowriad/received_events",
- "type": "User",
- "site_admin": false
- },
- "assignees": [
- {
- "login": "youknowriad",
- "id": 272444,
- "node_id": "MDQ6VXNlcjI3MjQ0NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/youknowriad",
- "html_url": "https://github.com/youknowriad",
- "followers_url": "https://api.github.com/users/youknowriad/followers",
- "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
- "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
- "organizations_url": "https://api.github.com/users/youknowriad/orgs",
- "repos_url": "https://api.github.com/users/youknowriad/repos",
- "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
- "received_events_url": "https://api.github.com/users/youknowriad/received_events",
- "type": "User",
- "site_admin": false
- }
- ],
+ "assignee": null,
+ "assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -10230,122 +11012,165 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 6,
- "created_at": "2021-07-28T11:26:41Z",
- "updated_at": "2021-07-29T09:33:48Z",
- "closed_at": "2021-07-29T09:33:20Z",
+ "comments": 3,
+ "created_at": "2023-09-26T20:54:48Z",
+ "updated_at": "2023-09-29T12:04:48Z",
+ "closed_at": "2023-09-27T15:58:30Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33727",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33727",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33727.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33727.patch"
- },
- "body": "In the couple last WP releases, we introduced the EntityProvider and the `useEntityBlockEditor` React hook which allows us to retrieve the \"blocks\" of a given post entity. This hook also makes it easy to create block editors for widgets screens, reusable blocks, templates parts... \r\n\r\nThe hook need to transform the \"content\" of the entity to \"blocks\" by parsing it on initial render if the blocks are not already parsed.\r\n\r\nThat said, historically in the post editor, parsing was done in the `setupEditor` action which is called in theory before that hook, the problem though is that the React effect is run before the `useSelect` call subscription triggers after `setupEditor` meaning the `blocks` will always be empty causing a double parsing.\r\n\r\nThe solution I came with is to avoid the parsing in `setupEditor` unless necessary. Ideally the `setupEditor` action shouldn't be needed at all and its logic moved to the components themselves. In other words, the \"editor\" should always be \"setup\"/\"ready\". This is something we've struggled with for a long time but I think we're making good progress towards that .\r\n\r\nRight now, parsing is still done in `setupEditor` when a \"template\" is provided, that said, this is rare and especially for long posts (where the performance issues happen).\r\n\r\n**Notes**\r\n\r\n - I had to change the order of some action calls in the `setupEditor` action. I don't think it's impactful but I know initialization is e2e tests heavily, so let's see the impact here.\r\n - This should result in a gain of half a second at least for long posts (like the one we test with)",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54844",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54844",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54844.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54844.patch",
+ "merged_at": "2023-09-27T15:58:30Z"
+ },
+ "body": "\r\n\r\n## What?\r\nRefactors the logic that determines which mime-types are expected based on the PHP version into a function so that it may be unit tested and given better comments.\r\n\r\n## How?\r\nPuts the existing logic into a static function that is used in place of the previous constant and added unit test coverage for that function.\r\n\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54844/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54844/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33725",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54843",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33725/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33725/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33725/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33725",
- "id": 954721914,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk4NTcxODcw",
- "number": 33725,
- "title": "Core Data: Deprecate `getAuthors` in favor of `getUsers`",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54843/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54843/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54843/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54843",
+ "id": 1914253536,
+ "node_id": "PR_kwDOBNHdeM5bRW9R",
+ "number": 54843,
+ "title": "Footnotes: Add aria-label to return links",
"user": {
- "login": "Mamaduka",
- "id": 240569,
- "node_id": "MDQ6VXNlcjI0MDU2OQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "login": "alexstine",
+ "id": 13755480,
+ "node_id": "MDQ6VXNlcjEzNzU1NDgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/13755480?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/Mamaduka",
- "html_url": "https://github.com/Mamaduka",
- "followers_url": "https://api.github.com/users/Mamaduka/followers",
- "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
- "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
- "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
- "repos_url": "https://api.github.com/users/Mamaduka/repos",
- "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
- "type": "User",
- "site_admin": false
- },
+ "url": "https://api.github.com/users/alexstine",
+ "html_url": "https://github.com/alexstine",
+ "followers_url": "https://api.github.com/users/alexstine/followers",
+ "following_url": "https://api.github.com/users/alexstine/following{/other_user}",
+ "gists_url": "https://api.github.com/users/alexstine/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/alexstine/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/alexstine/subscriptions",
+ "organizations_url": "https://api.github.com/users/alexstine/orgs",
+ "repos_url": "https://api.github.com/users/alexstine/repos",
+ "events_url": "https://api.github.com/users/alexstine/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/alexstine/received_events",
+ "type": "User",
+ "site_admin": false
+ },
"labels": [
{
- "id": 995368074,
- "node_id": "MDU6TGFiZWw5OTUzNjgwNzQ=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Core%20data",
- "name": "[Package] Core data",
- "color": "ed2572",
+ "id": 546517042,
+ "node_id": "MDU6TGFiZWw1NDY1MTcwNDI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Focus]%20Accessibility%20(a11y)",
+ "name": "[Focus] Accessibility (a11y)",
+ "color": "efde5d",
+ "default": false,
+ "description": "Changes that impact accessibility and need corresponding review (e.g. markup changes)."
+ },
+ {
+ "id": 644027893,
+ "node_id": "MDU6TGFiZWw2NDQwMjc4OTM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Needs%20Design%20Feedback",
+ "name": "Needs Design Feedback",
+ "color": "0e8a16",
+ "default": false,
+ "description": "Needs general design feedback."
+ },
+ {
+ "id": 1086171268,
+ "node_id": "MDU6TGFiZWwxMDg2MTcxMjY4",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Needs%20Accessibility%20Feedback",
+ "name": "Needs Accessibility Feedback",
+ "color": "ffbcbd",
+ "default": false,
+ "description": "Need input from accessibility"
+ },
+ {
+ "id": 5654261232,
+ "node_id": "LA_kwDOBNHdeM8AAAABUQUt8A",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Footnotes",
+ "name": "[Block] Footnotes",
+ "color": "6767e5",
"default": false,
- "description": "/packages/core-data"
+ "description": "Affects the Footnotes Block"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "Mamaduka",
- "id": 240569,
- "node_id": "MDQ6VXNlcjI0MDU2OQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "login": "alexstine",
+ "id": 13755480,
+ "node_id": "MDQ6VXNlcjEzNzU1NDgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/13755480?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/Mamaduka",
- "html_url": "https://github.com/Mamaduka",
- "followers_url": "https://api.github.com/users/Mamaduka/followers",
- "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
- "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
- "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
- "repos_url": "https://api.github.com/users/Mamaduka/repos",
- "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "url": "https://api.github.com/users/alexstine",
+ "html_url": "https://github.com/alexstine",
+ "followers_url": "https://api.github.com/users/alexstine/followers",
+ "following_url": "https://api.github.com/users/alexstine/following{/other_user}",
+ "gists_url": "https://api.github.com/users/alexstine/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/alexstine/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/alexstine/subscriptions",
+ "organizations_url": "https://api.github.com/users/alexstine/orgs",
+ "repos_url": "https://api.github.com/users/alexstine/repos",
+ "events_url": "https://api.github.com/users/alexstine/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/alexstine/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "Mamaduka",
- "id": 240569,
- "node_id": "MDQ6VXNlcjI0MDU2OQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "login": "alexstine",
+ "id": 13755480,
+ "node_id": "MDQ6VXNlcjEzNzU1NDgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/13755480?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/Mamaduka",
- "html_url": "https://github.com/Mamaduka",
- "followers_url": "https://api.github.com/users/Mamaduka/followers",
- "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
- "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
- "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
- "repos_url": "https://api.github.com/users/Mamaduka/repos",
- "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "url": "https://api.github.com/users/alexstine",
+ "html_url": "https://github.com/alexstine",
+ "followers_url": "https://api.github.com/users/alexstine/followers",
+ "following_url": "https://api.github.com/users/alexstine/following{/other_user}",
+ "gists_url": "https://api.github.com/users/alexstine/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/alexstine/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/alexstine/subscriptions",
+ "organizations_url": "https://api.github.com/users/alexstine/orgs",
+ "repos_url": "https://api.github.com/users/alexstine/repos",
+ "events_url": "https://api.github.com/users/alexstine/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/alexstine/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -10368,122 +11193,147 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 1,
- "created_at": "2021-07-28T10:42:36Z",
- "updated_at": "2021-07-28T18:00:34Z",
- "closed_at": "2021-07-28T18:00:04Z",
- "author_association": "MEMBER",
+ "comments": 21,
+ "created_at": "2023-09-26T20:30:03Z",
+ "updated_at": "2023-10-01T23:22:40Z",
+ "closed_at": "2023-09-28T05:44:03Z",
+ "author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33725",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33725",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33725.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33725.patch"
- },
- "body": "## Description\r\nDeprecates `getAuthors` in favor of `getUsers` and removes `__unstableGetAuthor` selector.\r\n\r\n## How has this been tested?\r\nRunning following code should display deprecation message in console:\r\n\r\n```js\r\nwp.data.select('core').getAuthors();\r\n```\r\n\r\n## Screenshots \r\n![CleanShot 2021-07-28 at 14 40 19](https://user-images.githubusercontent.com/240569/127309189-4b0bb6d5-d2cb-48ec-9699-1fc1b5e2a46b.png)\r\n\r\n## Types of changes\r\nDeprecation\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54843",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54843",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54843.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54843.patch",
+ "merged_at": "2023-09-28T05:44:03Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\n\r\nAdds `aria-label` to the front-end footnotes return links.\r\n\r\n## Why?\r\n\r\n\r\nLinks with icons are not accessible.\r\n\r\n## How?\r\n\r\n\r\nAdds the `aria-label` attribute.\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n\r\n1. Insert a footnotes block.\r\n2. Create a footnote from a paragraph block by selecting More and then Footnote in the block toolbar.\r\n3. Save.\r\n4. View the front-end.\r\n5. Notice how the link has `aria-label=\"Back to footnote reference X\"` for the number.\r\n\r\n### Testing Instructions for Keyboard\r\n\r\n\r\n## Screenshots or screencast \r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54843/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54843/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33721",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54841",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33721/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33721/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33721/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33721",
- "id": 954586831,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk4NDU3Nzkz",
- "number": 33721,
- "title": "E2E: Block Hierarchy Navigation wait for the column to be highlighted",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54841/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54841/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54841/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54841",
+ "id": 1914130281,
+ "node_id": "PR_kwDOBNHdeM5bQ75T",
+ "number": 54841,
+ "title": "Make the reset styles command consistent",
"user": {
- "login": "Mamaduka",
- "id": 240569,
- "node_id": "MDQ6VXNlcjI0MDU2OQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "login": "richtabor",
+ "id": 1813435,
+ "node_id": "MDQ6VXNlcjE4MTM0MzU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1813435?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/Mamaduka",
- "html_url": "https://github.com/Mamaduka",
- "followers_url": "https://api.github.com/users/Mamaduka/followers",
- "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
- "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
- "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
- "repos_url": "https://api.github.com/users/Mamaduka/repos",
- "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "url": "https://api.github.com/users/richtabor",
+ "html_url": "https://github.com/richtabor",
+ "followers_url": "https://api.github.com/users/richtabor/followers",
+ "following_url": "https://api.github.com/users/richtabor/following{/other_user}",
+ "gists_url": "https://api.github.com/users/richtabor/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/richtabor/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/richtabor/subscriptions",
+ "organizations_url": "https://api.github.com/users/richtabor/orgs",
+ "repos_url": "https://api.github.com/users/richtabor/repos",
+ "events_url": "https://api.github.com/users/richtabor/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/richtabor/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 1699237849,
- "node_id": "MDU6TGFiZWwxNjk5MjM3ODQ5",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20E2E%20Tests",
- "name": "[Package] E2E Tests",
+ "id": 793903067,
+ "node_id": "MDU6TGFiZWw3OTM5MDMwNjc=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Copy",
+ "name": "[Type] Copy",
+ "color": "e868f9",
+ "default": false,
+ "description": "Issues or PRs that need copy editing assistance"
+ },
+ {
+ "id": 5531793302,
+ "node_id": "LA_kwDOBNHdeM8AAAABSbh3lg",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Commands",
+ "name": "[Package] Commands",
"color": "ed2572",
"default": false,
- "description": "/packages/e2e-tests"
+ "description": "/packages/commands"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "Mamaduka",
- "id": 240569,
- "node_id": "MDQ6VXNlcjI0MDU2OQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "login": "richtabor",
+ "id": 1813435,
+ "node_id": "MDQ6VXNlcjE4MTM0MzU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1813435?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/Mamaduka",
- "html_url": "https://github.com/Mamaduka",
- "followers_url": "https://api.github.com/users/Mamaduka/followers",
- "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
- "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
- "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
- "repos_url": "https://api.github.com/users/Mamaduka/repos",
- "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "url": "https://api.github.com/users/richtabor",
+ "html_url": "https://github.com/richtabor",
+ "followers_url": "https://api.github.com/users/richtabor/followers",
+ "following_url": "https://api.github.com/users/richtabor/following{/other_user}",
+ "gists_url": "https://api.github.com/users/richtabor/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/richtabor/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/richtabor/subscriptions",
+ "organizations_url": "https://api.github.com/users/richtabor/orgs",
+ "repos_url": "https://api.github.com/users/richtabor/repos",
+ "events_url": "https://api.github.com/users/richtabor/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/richtabor/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "Mamaduka",
- "id": 240569,
- "node_id": "MDQ6VXNlcjI0MDU2OQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "login": "richtabor",
+ "id": 1813435,
+ "node_id": "MDQ6VXNlcjE4MTM0MzU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1813435?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/Mamaduka",
- "html_url": "https://github.com/Mamaduka",
- "followers_url": "https://api.github.com/users/Mamaduka/followers",
- "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
- "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
- "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
- "repos_url": "https://api.github.com/users/Mamaduka/repos",
- "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "url": "https://api.github.com/users/richtabor",
+ "html_url": "https://github.com/richtabor",
+ "followers_url": "https://api.github.com/users/richtabor/followers",
+ "following_url": "https://api.github.com/users/richtabor/following{/other_user}",
+ "gists_url": "https://api.github.com/users/richtabor/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/richtabor/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/richtabor/subscriptions",
+ "organizations_url": "https://api.github.com/users/richtabor/orgs",
+ "repos_url": "https://api.github.com/users/richtabor/repos",
+ "events_url": "https://api.github.com/users/richtabor/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/richtabor/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -10506,140 +11356,147 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 5,
- "created_at": "2021-07-28T08:00:11Z",
- "updated_at": "2021-07-28T10:43:49Z",
- "closed_at": "2021-07-28T10:43:28Z",
+ "comments": 2,
+ "created_at": "2023-09-26T19:03:11Z",
+ "updated_at": "2023-09-27T11:33:28Z",
+ "closed_at": "2023-09-27T11:33:05Z",
"author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33721",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33721",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33721.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33721.patch"
- },
- "body": "## Description\r\nThe \"Block Hierarchy Navigation\" e2e test [fails](https://github.com/WordPress/gutenberg/runs/3162134316) from time to time. Unfortunately, I'm unable to reproduce this locally.\r\n\r\nBased on the screenshot from the artifacts, it looks like block selection happens before navigation reaches the third and last column block.\r\n\r\nI'm adding an extra check to verify that the third block is highlighted before selecting it. This should also give keyboard navigation a little spare time to finish.\r\n\r\n## How has this been tested?\r\nLocally using the following command:\r\n\r\n```\r\nnpm run test-e2e -- packages/e2e-tests/specs/editor/various/block-hierarchy-navigation.test.js\r\n```\r\n\r\n## Screenshots \r\n![should navigate block hierarchy using only the keyboard](https://user-images.githubusercontent.com/240569/127285118-90c8af20-a50e-4729-927c-6fa68dd7bfc2.jpg)\r\n\r\n## Types of changes\r\nBugfix\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54841",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54841",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54841.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54841.patch",
+ "merged_at": "2023-09-27T11:33:05Z"
+ },
+ "body": "\r\n\r\n## What?\r\nCleaning up the \"Reset styles to defaults\" command to be consistent with resetting templates/template parts. \r\n\r\n## Testing Instructions\r\n\r\n1. Open the site editor.\r\n2. Make changes to global styles.\r\n3. Open the command palette.\r\n4. Search for \"reset\".\r\n5. See changes.\r\n\r\n## Screenshots or screencast \r\n\r\n| Before | After |\r\n| ------------- | ------------- |\r\n| | |\r\n\r\n\r\nRelated (the reset command for templates/parts): \r\n \r\n\r\n\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54841/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54841/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33717",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54840",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33717/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33717/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33717/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33717",
- "id": 954302691,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk4MjE5Mjg1",
- "number": 33717,
- "title": "Components: update snackbar to use framer motion instead of react spring",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54840/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54840/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54840/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54840",
+ "id": 1914088839,
+ "node_id": "PR_kwDOBNHdeM5bQyss",
+ "number": 54840,
+ "title": "Fix ToolSelector popover variant",
"user": {
- "login": "gwwar",
- "id": 1270189,
- "node_id": "MDQ6VXNlcjEyNzAxODk=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1270189?v=4",
+ "login": "richtabor",
+ "id": 1813435,
+ "node_id": "MDQ6VXNlcjE4MTM0MzU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1813435?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/gwwar",
- "html_url": "https://github.com/gwwar",
- "followers_url": "https://api.github.com/users/gwwar/followers",
- "following_url": "https://api.github.com/users/gwwar/following{/other_user}",
- "gists_url": "https://api.github.com/users/gwwar/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/gwwar/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/gwwar/subscriptions",
- "organizations_url": "https://api.github.com/users/gwwar/orgs",
- "repos_url": "https://api.github.com/users/gwwar/repos",
- "events_url": "https://api.github.com/users/gwwar/events{/privacy}",
- "received_events_url": "https://api.github.com/users/gwwar/received_events",
+ "url": "https://api.github.com/users/richtabor",
+ "html_url": "https://github.com/richtabor",
+ "followers_url": "https://api.github.com/users/richtabor/followers",
+ "following_url": "https://api.github.com/users/richtabor/following{/other_user}",
+ "gists_url": "https://api.github.com/users/richtabor/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/richtabor/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/richtabor/subscriptions",
+ "organizations_url": "https://api.github.com/users/richtabor/orgs",
+ "repos_url": "https://api.github.com/users/richtabor/repos",
+ "events_url": "https://api.github.com/users/richtabor/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/richtabor/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 531680825,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
- "name": "[Type] Enhancement",
- "color": "3993a3",
- "default": false,
- "description": "A suggestion for improvement."
- },
- {
- "id": 997392122,
- "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
- "name": "[Package] Components",
- "color": "ed2572",
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
"default": false,
- "description": "/packages/components"
+ "description": "An existing feature does not function as intended"
},
{
- "id": 1298994603,
- "node_id": "MDU6TGFiZWwxMjk4OTk0NjAz",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Edit%20Post",
- "name": "[Package] Edit Post",
- "color": "ed2572",
+ "id": 2706102777,
+ "node_id": "MDU6TGFiZWwyNzA2MTAyNzc3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Site%20Editor",
+ "name": "[Feature] Site Editor",
+ "color": "fbca04",
"default": false,
- "description": "packages/edit-post"
+ "description": "Related to the overarching Site Editor (formerly \"full site editing\")"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "gwwar",
- "id": 1270189,
- "node_id": "MDQ6VXNlcjEyNzAxODk=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1270189?v=4",
+ "login": "richtabor",
+ "id": 1813435,
+ "node_id": "MDQ6VXNlcjE4MTM0MzU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1813435?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/gwwar",
- "html_url": "https://github.com/gwwar",
- "followers_url": "https://api.github.com/users/gwwar/followers",
- "following_url": "https://api.github.com/users/gwwar/following{/other_user}",
- "gists_url": "https://api.github.com/users/gwwar/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/gwwar/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/gwwar/subscriptions",
- "organizations_url": "https://api.github.com/users/gwwar/orgs",
- "repos_url": "https://api.github.com/users/gwwar/repos",
- "events_url": "https://api.github.com/users/gwwar/events{/privacy}",
- "received_events_url": "https://api.github.com/users/gwwar/received_events",
+ "url": "https://api.github.com/users/richtabor",
+ "html_url": "https://github.com/richtabor",
+ "followers_url": "https://api.github.com/users/richtabor/followers",
+ "following_url": "https://api.github.com/users/richtabor/following{/other_user}",
+ "gists_url": "https://api.github.com/users/richtabor/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/richtabor/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/richtabor/subscriptions",
+ "organizations_url": "https://api.github.com/users/richtabor/orgs",
+ "repos_url": "https://api.github.com/users/richtabor/repos",
+ "events_url": "https://api.github.com/users/richtabor/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/richtabor/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "gwwar",
- "id": 1270189,
- "node_id": "MDQ6VXNlcjEyNzAxODk=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1270189?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/gwwar",
- "html_url": "https://github.com/gwwar",
- "followers_url": "https://api.github.com/users/gwwar/followers",
- "following_url": "https://api.github.com/users/gwwar/following{/other_user}",
- "gists_url": "https://api.github.com/users/gwwar/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/gwwar/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/gwwar/subscriptions",
- "organizations_url": "https://api.github.com/users/gwwar/orgs",
- "repos_url": "https://api.github.com/users/gwwar/repos",
- "events_url": "https://api.github.com/users/gwwar/events{/privacy}",
- "received_events_url": "https://api.github.com/users/gwwar/received_events",
+ "login": "richtabor",
+ "id": 1813435,
+ "node_id": "MDQ6VXNlcjE4MTM0MzU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1813435?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/richtabor",
+ "html_url": "https://github.com/richtabor",
+ "followers_url": "https://api.github.com/users/richtabor/followers",
+ "following_url": "https://api.github.com/users/richtabor/following{/other_user}",
+ "gists_url": "https://api.github.com/users/richtabor/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/richtabor/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/richtabor/subscriptions",
+ "organizations_url": "https://api.github.com/users/richtabor/orgs",
+ "repos_url": "https://api.github.com/users/richtabor/repos",
+ "events_url": "https://api.github.com/users/richtabor/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/richtabor/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -10662,104 +11519,102 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 18,
- "created_at": "2021-07-27T22:08:50Z",
- "updated_at": "2021-08-05T17:36:56Z",
- "closed_at": "2021-08-05T16:25:27Z",
- "author_association": "CONTRIBUTOR",
+ "comments": 8,
+ "created_at": "2023-09-26T18:38:46Z",
+ "updated_at": "2023-10-02T09:39:48Z",
+ "closed_at": "2023-09-29T15:29:40Z",
+ "author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33717",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33717",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33717.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33717.patch"
- },
- "body": "This PR experiments with using framer motion instead of react spring for the snackbar component. Since Framer Motion is ~30kb gzipped I also ~externalized it~ exported this from `@wordpress/components` once to avoid bloating each package that it's used in.\r\n\r\nOne benefit here is that framer motion supports `height: auto` which allows us to remove ref and component state management. 🤔 ~There's quite a bundle size jump here to consider for a single component, so I may explore trying to whittle down.~\r\n\r\nResults overall, are are encouraging. I'd like to see if we can update the Persistent List View to use drag and add animations for the drawers opening and closing next.\r\n\r\n| Size Impacts |\r\n|----|\r\n| |\r\n\r\n#### After - Motion:\r\n\r\nhttps://user-images.githubusercontent.com/1270189/127399049-aa5a91fe-88e9-4783-857e-7531e9adcf8b.mp4\r\n\r\n#### After - Reduce Motion\r\n\r\nhttps://user-images.githubusercontent.com/1270189/127397712-3a733583-5e04-485c-bf2f-791e01950e4d.mp4\r\n\r\n#### Before - Motion\r\n\r\nhttps://user-images.githubusercontent.com/1270189/127397745-b6b3c29f-5952-4e1a-87c4-cc27564ad7f7.mp4\r\n\r\n#### Before - Reduce Motion\r\n\r\nhttps://user-images.githubusercontent.com/1270189/127397786-38325ff9-563c-4446-a2a7-a0b528d19b80.mp4\r\n \r\n\r\n### Testing Instructions\r\n\r\nIn console type:\r\n```\r\nwp.data.dispatch('core/notices').createNotice(\r\n\t\t'info',\r\n\t\t'Post published.',\r\n\t\t{\r\n\t\t\ttype: 'snackbar',\r\n\t\t\tactions: [\r\n\t\t\t\t{\r\n\t\t\t\t\tonClick: () => {},\r\n\t\t\t\t\tlabel: 'View post'\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t}\r\n\t);\r\n```\r\nOr perform an action like publishing or updating a page.\r\n\r\nVerify that folks are happy with how framer motion is being exported.\r\n\r\n| Verify that there are no regressions in the preview panel |\r\n|-----|\r\n| |\r\n\r\n\r\n\r\n\r\n\r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54840",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54840",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54840.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54840.patch",
+ "merged_at": "2023-09-29T15:29:40Z"
+ },
+ "body": "\r\n\r\n## What?\r\nUse the proper popover variant for the ToolSelector in the editor header.\r\n\r\n## Why?\r\nIt's inconsistent with other popovers not connected to the block toolbar.\r\n\r\n## Testing Instructions\r\n\r\n1. Open a post or page.\r\n2. Select the \"Tools\" control in the editor header.\r\n3. See the lighter border with a shadow, instead of the hard dark line.\r\n\r\n\r\n## Screenshots or screencast \r\n\r\n| Before | After |\r\n| ------------- | ------------- |\r\n| | |\r\n\r\n\r\n\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54840/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54840/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33714",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54839",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33714/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33714/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33714/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33714",
- "id": 954094299,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk4MDQwNjEy",
- "number": 33714,
- "title": "components: Add new ColorPicker",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54839/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54839/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54839/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54839",
+ "id": 1914077343,
+ "node_id": "PR_kwDOBNHdeM5bQwIw",
+ "number": 54839,
+ "title": "Use \"Not synced\" in place of \"Standard\" nomenclature for patterns",
"user": {
- "login": "sarayourfriend",
- "id": 24264157,
- "node_id": "MDQ6VXNlcjI0MjY0MTU3",
- "avatar_url": "https://avatars.githubusercontent.com/u/24264157?v=4",
+ "login": "richtabor",
+ "id": 1813435,
+ "node_id": "MDQ6VXNlcjE4MTM0MzU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1813435?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/sarayourfriend",
- "html_url": "https://github.com/sarayourfriend",
- "followers_url": "https://api.github.com/users/sarayourfriend/followers",
- "following_url": "https://api.github.com/users/sarayourfriend/following{/other_user}",
- "gists_url": "https://api.github.com/users/sarayourfriend/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/sarayourfriend/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/sarayourfriend/subscriptions",
- "organizations_url": "https://api.github.com/users/sarayourfriend/orgs",
- "repos_url": "https://api.github.com/users/sarayourfriend/repos",
- "events_url": "https://api.github.com/users/sarayourfriend/events{/privacy}",
- "received_events_url": "https://api.github.com/users/sarayourfriend/received_events",
+ "url": "https://api.github.com/users/richtabor",
+ "html_url": "https://github.com/richtabor",
+ "followers_url": "https://api.github.com/users/richtabor/followers",
+ "following_url": "https://api.github.com/users/richtabor/following{/other_user}",
+ "gists_url": "https://api.github.com/users/richtabor/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/richtabor/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/richtabor/subscriptions",
+ "organizations_url": "https://api.github.com/users/richtabor/orgs",
+ "repos_url": "https://api.github.com/users/richtabor/repos",
+ "events_url": "https://api.github.com/users/richtabor/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/richtabor/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 531680825,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
- "name": "[Type] Enhancement",
- "color": "3993a3",
- "default": false,
- "description": "A suggestion for improvement."
- },
- {
- "id": 659839209,
- "node_id": "MDU6TGFiZWw2NTk4MzkyMDk=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20UI%20Components",
- "name": "[Feature] UI Components",
+ "id": 783337752,
+ "node_id": "MDU6TGFiZWw3ODMzMzc3NTI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Synced%20Patterns",
+ "name": "[Feature] Synced Patterns",
"color": "fbca04",
"default": false,
- "description": ""
+ "description": "Related to synced patterns (formerly reusable blocks)"
},
{
- "id": 997392122,
- "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
- "name": "[Package] Components",
- "color": "ed2572",
- "default": false,
- "description": "/packages/components"
- },
- {
- "id": 1607665481,
- "node_id": "MDU6TGFiZWwxNjA3NjY1NDgx",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Storybook",
- "name": "Storybook",
- "color": "81e2c7",
+ "id": 793903067,
+ "node_id": "MDU6TGFiZWw3OTM5MDMwNjc=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Copy",
+ "name": "[Type] Copy",
+ "color": "e868f9",
"default": false,
- "description": "Storybook and its stories for components"
+ "description": "Issues or PRs that need copy editing assistance"
},
{
- "id": 2555015900,
- "node_id": "MDU6TGFiZWwyNTU1MDE1OTAw",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Component%20System",
- "name": "[Feature] Component System",
+ "id": 1882657161,
+ "node_id": "MDU6TGFiZWwxODgyNjU3MTYx",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Patterns",
+ "name": "[Feature] Patterns",
"color": "fbca04",
"default": false,
- "description": "The next iteration on WordPress Components."
+ "description": "A collection of blocks that can be synced (previously reusable blocks) or unsynced"
}
],
"state": "closed",
@@ -10767,13 +11622,13 @@
"assignee": null,
"assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -10796,84 +11651,149 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 21,
- "created_at": "2021-07-27T17:16:54Z",
- "updated_at": "2021-08-12T13:12:16Z",
- "closed_at": "2021-08-10T13:59:00Z",
- "author_association": "CONTRIBUTOR",
+ "comments": 5,
+ "created_at": "2023-09-26T18:32:07Z",
+ "updated_at": "2023-09-29T12:04:36Z",
+ "closed_at": "2023-09-27T11:35:21Z",
+ "author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33714",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33714",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33714.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33714.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\nAdds a new vastly simplified ColorPicker implementation based on `react-colorful`.\r\n\r\n## How has this been tested?\r\nStorybook.\r\n\r\n## Screenshots \r\n\r\n\r\nhttps://user-images.githubusercontent.com/24264157/127386106-606631ef-2d8e-4c5a-973f-c288bddb947d.mov\r\n\r\n\r\n\r\n## Types of changes\r\nNew feature.\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54839",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54839",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54839.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54839.patch",
+ "merged_at": "2023-09-27T11:35:21Z"
+ },
+ "body": "\r\n\r\n## What?\r\nUses \"Not synced\" in place of \"Standard\" nomenclature for patterns that are not synced. This reduces potential confusion about the differences between patterns that are synced, and patterns that are not (currently called \"Standard\" patterns). I already made the change in `BlockPatternsSyncFilter` in https://github.com/WordPress/gutenberg/pull/54838.\r\n\r\n## How?\r\n\r\n\r\n## Testing Instructions\r\n\r\n 1. Open the site editor in the patterns view.\r\n2. See the ToggleGroup render Synced/Not synced.\r\n\r\n## Screenshots or screencast \r\n| Before | After |\r\n| ------------- | ------------- |\r\n| | |\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54839/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54839/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33713",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54838",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33713/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33713/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33713/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33713",
- "id": 954035586,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk3OTkwODk5",
- "number": 33713,
- "title": "Update bug issue template to use forms",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54838/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54838/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54838/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54838",
+ "id": 1914065955,
+ "node_id": "PR_kwDOBNHdeM5bQtkm",
+ "number": 54838,
+ "title": "Simplify BlockPatternsSyncFilter with clearer labels and additional context",
"user": {
- "login": "annezazu",
- "id": 26996883,
- "node_id": "MDQ6VXNlcjI2OTk2ODgz",
- "avatar_url": "https://avatars.githubusercontent.com/u/26996883?v=4",
+ "login": "richtabor",
+ "id": 1813435,
+ "node_id": "MDQ6VXNlcjE4MTM0MzU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1813435?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/annezazu",
- "html_url": "https://github.com/annezazu",
- "followers_url": "https://api.github.com/users/annezazu/followers",
- "following_url": "https://api.github.com/users/annezazu/following{/other_user}",
- "gists_url": "https://api.github.com/users/annezazu/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/annezazu/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/annezazu/subscriptions",
- "organizations_url": "https://api.github.com/users/annezazu/orgs",
- "repos_url": "https://api.github.com/users/annezazu/repos",
- "events_url": "https://api.github.com/users/annezazu/events{/privacy}",
- "received_events_url": "https://api.github.com/users/annezazu/received_events",
+ "url": "https://api.github.com/users/richtabor",
+ "html_url": "https://github.com/richtabor",
+ "followers_url": "https://api.github.com/users/richtabor/followers",
+ "following_url": "https://api.github.com/users/richtabor/following{/other_user}",
+ "gists_url": "https://api.github.com/users/richtabor/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/richtabor/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/richtabor/subscriptions",
+ "organizations_url": "https://api.github.com/users/richtabor/orgs",
+ "repos_url": "https://api.github.com/users/richtabor/repos",
+ "events_url": "https://api.github.com/users/richtabor/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/richtabor/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 1032028862,
- "node_id": "MDU6TGFiZWwxMDMyMDI4ODYy",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Project%20Management",
- "name": "[Type] Project Management",
- "color": "e55ead",
+ "id": 793903067,
+ "node_id": "MDU6TGFiZWw3OTM5MDMwNjc=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Copy",
+ "name": "[Type] Copy",
+ "color": "e868f9",
"default": false,
- "description": "Meta-issues related to project management of Gutenberg"
+ "description": "Issues or PRs that need copy editing assistance"
+ },
+ {
+ "id": 1248494790,
+ "node_id": "MDU6TGFiZWwxMjQ4NDk0Nzkw",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Block%20editor",
+ "name": "[Package] Block editor",
+ "color": "ed2572",
+ "default": false,
+ "description": "/packages/block-editor"
}
],
"state": "closed",
"locked": false,
- "assignee": null,
- "assignees": [],
- "milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
- "description": null,
- "creator": {
+ "assignee": {
+ "login": "richtabor",
+ "id": 1813435,
+ "node_id": "MDQ6VXNlcjE4MTM0MzU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1813435?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/richtabor",
+ "html_url": "https://github.com/richtabor",
+ "followers_url": "https://api.github.com/users/richtabor/followers",
+ "following_url": "https://api.github.com/users/richtabor/following{/other_user}",
+ "gists_url": "https://api.github.com/users/richtabor/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/richtabor/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/richtabor/subscriptions",
+ "organizations_url": "https://api.github.com/users/richtabor/orgs",
+ "repos_url": "https://api.github.com/users/richtabor/repos",
+ "events_url": "https://api.github.com/users/richtabor/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/richtabor/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "richtabor",
+ "id": 1813435,
+ "node_id": "MDQ6VXNlcjE4MTM0MzU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1813435?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/richtabor",
+ "html_url": "https://github.com/richtabor",
+ "followers_url": "https://api.github.com/users/richtabor/followers",
+ "following_url": "https://api.github.com/users/richtabor/following{/other_user}",
+ "gists_url": "https://api.github.com/users/richtabor/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/richtabor/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/richtabor/subscriptions",
+ "organizations_url": "https://api.github.com/users/richtabor/orgs",
+ "repos_url": "https://api.github.com/users/richtabor/repos",
+ "events_url": "https://api.github.com/users/richtabor/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/richtabor/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
"login": "github-actions[bot]",
"id": 41898282,
"node_id": "MDM6Qm90NDE4OTgyODI=",
@@ -10894,100 +11814,147 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 4,
- "created_at": "2021-07-27T16:02:51Z",
- "updated_at": "2021-08-02T17:06:37Z",
- "closed_at": "2021-07-29T14:48:58Z",
- "author_association": "CONTRIBUTOR",
+ "comments": 17,
+ "created_at": "2023-09-26T18:26:01Z",
+ "updated_at": "2023-10-04T21:58:09Z",
+ "closed_at": "2023-10-02T19:18:15Z",
+ "author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33713",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33713",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33713.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33713.patch"
- },
- "body": "## Description\r\nThis will help address part of this open issue to move bug reports to forms: https://github.com/WordPress/gutenberg/issues/33394 I followed the documentation linked and tried to match it to the current issue template as closely as possible. I purposefully left out adding labels and customizing the title as I still believe both of those are too complex decisions to make in such a generalized way. \r\n\r\nOf note:\r\n\r\n> If you want to use the same file name for your YAML issue form, you must delete the Markdown issue template when you commit the new file to your repository.\r\n\r\nThis PR doesn't include that file being removed but can be if we'd like to keep the same file name. I've never created one of these issue template forms before so might have approached this incorrectly :) Guidance appreciated. \r\n\r\n## Types of changes\r\n\r\nEnhancement to project management\r\n\r\n## Checklist:\r\n- [ ] My code is tested.\r\n- [ ] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [ ] My code has proper inline documentation. \r\n- [ ] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54838",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54838",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54838.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54838.patch",
+ "merged_at": "2023-10-02T19:18:15Z"
+ },
+ "body": "\r\n\r\n## What?\r\nA follow-up to https://github.com/WordPress/gutenberg/pull/54681 that:\r\n\r\n- Reduces individual labeling and help text with more context below (similar to the \"Tools\" control in the block editor header). \r\n- Renames \"Standard\" to \"Not synced\", which adds more context to what these patterns are - and reduces nomenclature. \r\n\r\nProps @jasmussen. \r\n\r\n## Testing Instructions\r\n\r\n1. Open a post or page.\r\n2. Open the pattern inserter.\r\n3. Select the \"Filter patterns\" control.\r\n4. See changes.\r\n\r\n## Screenshots or screencast \r\n\r\n### Before\r\n\r\n \r\n\r\n### After\r\n\r\n \r\n\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54838/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54838/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33708",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54835",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33708/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33708/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33708/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33708",
- "id": 953810575,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk3Nzk4MTc2",
- "number": 33708,
- "title": "Disable spellcheck and autocomplete in permalink slug field",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54835/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54835/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54835/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54835",
+ "id": 1913897482,
+ "node_id": "PR_kwDOBNHdeM5bQIj4",
+ "number": 54835,
+ "title": "Use instanceOf over property_exists.",
"user": {
- "login": "walbo",
- "id": 1415747,
- "node_id": "MDQ6VXNlcjE0MTU3NDc=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1415747?v=4",
+ "login": "spacedmonkey",
+ "id": 237508,
+ "node_id": "MDQ6VXNlcjIzNzUwOA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/237508?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/walbo",
- "html_url": "https://github.com/walbo",
- "followers_url": "https://api.github.com/users/walbo/followers",
- "following_url": "https://api.github.com/users/walbo/following{/other_user}",
- "gists_url": "https://api.github.com/users/walbo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/walbo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/walbo/subscriptions",
- "organizations_url": "https://api.github.com/users/walbo/orgs",
- "repos_url": "https://api.github.com/users/walbo/repos",
- "events_url": "https://api.github.com/users/walbo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/walbo/received_events",
+ "url": "https://api.github.com/users/spacedmonkey",
+ "html_url": "https://github.com/spacedmonkey",
+ "followers_url": "https://api.github.com/users/spacedmonkey/followers",
+ "following_url": "https://api.github.com/users/spacedmonkey/following{/other_user}",
+ "gists_url": "https://api.github.com/users/spacedmonkey/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/spacedmonkey/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/spacedmonkey/subscriptions",
+ "organizations_url": "https://api.github.com/users/spacedmonkey/orgs",
+ "repos_url": "https://api.github.com/users/spacedmonkey/repos",
+ "events_url": "https://api.github.com/users/spacedmonkey/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/spacedmonkey/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 531680825,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
- "name": "[Type] Enhancement",
- "color": "3993a3",
- "default": false,
- "description": "A suggestion for improvement."
- },
- {
- "id": 610403961,
- "node_id": "MDU6TGFiZWw2MTA0MDM5NjE=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Document%20Settings",
- "name": "[Feature] Document Settings",
- "color": "fbca04",
+ "id": 731693674,
+ "node_id": "MDU6TGFiZWw3MzE2OTM2NzQ=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Performance",
+ "name": "[Type] Performance",
+ "color": "f3f4fe",
"default": false,
- "description": ""
+ "description": "Related to performance efforts"
},
{
- "id": 1118625183,
- "node_id": "MDU6TGFiZWwxMTE4NjI1MTgz",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Permalink",
- "name": "[Feature] Permalink",
- "color": "fbca04",
+ "id": 4254348202,
+ "node_id": "LA_kwDOBNHdeM79lDOq",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Needs%20PHP%20backport",
+ "name": "Needs PHP backport",
+ "color": "64436E",
"default": false,
- "description": ""
+ "description": "Needs PHP backport to Core"
}
],
"state": "closed",
"locked": false,
- "assignee": null,
- "assignees": [],
+ "assignee": {
+ "login": "spacedmonkey",
+ "id": 237508,
+ "node_id": "MDQ6VXNlcjIzNzUwOA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/237508?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/spacedmonkey",
+ "html_url": "https://github.com/spacedmonkey",
+ "followers_url": "https://api.github.com/users/spacedmonkey/followers",
+ "following_url": "https://api.github.com/users/spacedmonkey/following{/other_user}",
+ "gists_url": "https://api.github.com/users/spacedmonkey/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/spacedmonkey/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/spacedmonkey/subscriptions",
+ "organizations_url": "https://api.github.com/users/spacedmonkey/orgs",
+ "repos_url": "https://api.github.com/users/spacedmonkey/repos",
+ "events_url": "https://api.github.com/users/spacedmonkey/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/spacedmonkey/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "spacedmonkey",
+ "id": 237508,
+ "node_id": "MDQ6VXNlcjIzNzUwOA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/237508?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/spacedmonkey",
+ "html_url": "https://github.com/spacedmonkey",
+ "followers_url": "https://api.github.com/users/spacedmonkey/followers",
+ "following_url": "https://api.github.com/users/spacedmonkey/following{/other_user}",
+ "gists_url": "https://api.github.com/users/spacedmonkey/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/spacedmonkey/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/spacedmonkey/subscriptions",
+ "organizations_url": "https://api.github.com/users/spacedmonkey/orgs",
+ "repos_url": "https://api.github.com/users/spacedmonkey/repos",
+ "events_url": "https://api.github.com/users/spacedmonkey/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/spacedmonkey/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -11010,60 +11977,85 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 0,
- "created_at": "2021-07-27T12:03:07Z",
- "updated_at": "2021-07-28T12:08:41Z",
- "closed_at": "2021-07-28T05:12:26Z",
- "author_association": "CONTRIBUTOR",
+ "comments": 5,
+ "created_at": "2023-09-26T16:34:27Z",
+ "updated_at": "2023-09-27T11:50:13Z",
+ "closed_at": "2023-09-27T11:12:45Z",
+ "author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33708",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33708",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33708.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33708.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\nPrevent unintended permalink slugs.\r\n\r\nFixes #33612\r\n\r\n\r\n## How has this been tested?\r\n\r\n\r\n\r\n\r\n## Screenshots \r\n\r\n## Types of changes\r\nEnhancement\r\n\r\n\r\n\r\n\r\n\r\n## Checklist:\r\n- [ ] My code is tested.\r\n- [ ] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [ ] My code has proper inline documentation. \r\n- [ ] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54835",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54835",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54835.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54835.patch",
+ "merged_at": "2023-09-27T11:12:44Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\nTrac ticket: https://core.trac.wordpress.org/ticket/59453#ticket\r\n\r\n`instanceOf` is better performance than `property_exists`\r\n\r\n## Why?\r\n\r\n\r\n## How?\r\n\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n\r\n### Testing Instructions for Keyboard\r\n\r\n\r\n## Screenshots or screencast \r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54835/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54835/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33707",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54834",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33707/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33707/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33707/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33707",
- "id": 953738028,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk3NzM0OTI5",
- "number": 33707,
- "title": "[Mobile] - Global styles: Check for undefined values and merge user colors",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54834/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54834/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54834/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54834",
+ "id": 1913848459,
+ "node_id": "PR_kwDOBNHdeM5bP94x",
+ "number": 54834,
+ "title": "fix: Prevent crash from invalid media URLs",
"user": {
- "login": "geriux",
- "id": 4885740,
- "node_id": "MDQ6VXNlcjQ4ODU3NDA=",
- "avatar_url": "https://avatars.githubusercontent.com/u/4885740?v=4",
+ "login": "dcalhoun",
+ "id": 438664,
+ "node_id": "MDQ6VXNlcjQzODY2NA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/438664?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/geriux",
- "html_url": "https://github.com/geriux",
- "followers_url": "https://api.github.com/users/geriux/followers",
- "following_url": "https://api.github.com/users/geriux/following{/other_user}",
- "gists_url": "https://api.github.com/users/geriux/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/geriux/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/geriux/subscriptions",
- "organizations_url": "https://api.github.com/users/geriux/orgs",
- "repos_url": "https://api.github.com/users/geriux/repos",
- "events_url": "https://api.github.com/users/geriux/events{/privacy}",
- "received_events_url": "https://api.github.com/users/geriux/received_events",
+ "url": "https://api.github.com/users/dcalhoun",
+ "html_url": "https://github.com/dcalhoun",
+ "followers_url": "https://api.github.com/users/dcalhoun/followers",
+ "following_url": "https://api.github.com/users/dcalhoun/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dcalhoun/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dcalhoun/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dcalhoun/subscriptions",
+ "organizations_url": "https://api.github.com/users/dcalhoun/orgs",
+ "repos_url": "https://api.github.com/users/dcalhoun/repos",
+ "events_url": "https://api.github.com/users/dcalhoun/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dcalhoun/received_events",
"type": "User",
"site_admin": false
},
"labels": [
+ {
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
+ "default": false,
+ "description": "An existing feature does not function as intended"
+ },
{
"id": 982506020,
"node_id": "MDU6TGFiZWw5ODI1MDYwMjA=",
@@ -11072,20 +12064,87 @@
"color": "a3ef7a",
"default": false,
"description": "Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)"
+ },
+ {
+ "id": 1105650457,
+ "node_id": "MDU6TGFiZWwxMTA1NjUwNDU3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Video",
+ "name": "[Block] Video",
+ "color": "6767e5",
+ "default": false,
+ "description": "Affects the Video Block"
+ },
+ {
+ "id": 1114123398,
+ "node_id": "MDU6TGFiZWwxMTE0MTIzMzk4",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Audio",
+ "name": "[Block] Audio",
+ "color": "6767e5",
+ "default": false,
+ "description": "Affects the Audio Block"
+ },
+ {
+ "id": 3639254262,
+ "node_id": "LA_kwDOBNHdeM7Y6pz2",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20Automation",
+ "name": "Mobile App - Automation",
+ "color": "669206",
+ "default": false,
+ "description": "Label used to initiate Mobile App PR Automation"
}
],
"state": "closed",
"locked": false,
- "assignee": null,
- "assignees": [],
+ "assignee": {
+ "login": "dcalhoun",
+ "id": 438664,
+ "node_id": "MDQ6VXNlcjQzODY2NA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/438664?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/dcalhoun",
+ "html_url": "https://github.com/dcalhoun",
+ "followers_url": "https://api.github.com/users/dcalhoun/followers",
+ "following_url": "https://api.github.com/users/dcalhoun/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dcalhoun/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dcalhoun/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dcalhoun/subscriptions",
+ "organizations_url": "https://api.github.com/users/dcalhoun/orgs",
+ "repos_url": "https://api.github.com/users/dcalhoun/repos",
+ "events_url": "https://api.github.com/users/dcalhoun/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dcalhoun/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "dcalhoun",
+ "id": 438664,
+ "node_id": "MDQ6VXNlcjQzODY2NA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/438664?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/dcalhoun",
+ "html_url": "https://github.com/dcalhoun",
+ "followers_url": "https://api.github.com/users/dcalhoun/followers",
+ "following_url": "https://api.github.com/users/dcalhoun/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dcalhoun/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dcalhoun/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dcalhoun/subscriptions",
+ "organizations_url": "https://api.github.com/users/dcalhoun/orgs",
+ "repos_url": "https://api.github.com/users/dcalhoun/repos",
+ "events_url": "https://api.github.com/users/dcalhoun/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dcalhoun/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -11108,131 +12167,116 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
"comments": 3,
- "created_at": "2021-07-27T10:28:27Z",
- "updated_at": "2021-07-28T14:33:42Z",
- "closed_at": "2021-07-28T14:33:16Z",
+ "created_at": "2023-09-26T16:06:19Z",
+ "updated_at": "2023-09-27T13:02:55Z",
+ "closed_at": "2023-09-27T13:02:21Z",
"author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33707",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33707",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33707.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33707.patch"
- },
- "body": "## Description\r\nWhile testing the mobile editor an issue was found when one of the Global styles values was undefined, causing it to crash. This PR checks those values before parsing the variables.\r\n\r\n## How has this been tested?\r\n\r\n### Test case 1 \r\n\r\nWith a simple site\r\n\r\n- Open the WordPress iOS app with metro running\r\n- Open and close the editor a couple of times\r\n- **Expect** the editor to work correctly without crashing\r\n\r\n### Test case 2\r\n\r\nWith a self-hosted site with WordPress 5.8 and Gutenberg 11.1 and a theme.json theme activated\r\n\r\n- Open the WordPress iOS app with metro running\r\n- Open the editor\r\n- **Expect** to see the theme colors (background, text)\r\n\r\n## Screenshots \r\n\r\nTest case 1|Test case 2\r\n-|-\r\n | \r\n\r\n## Types of changes\r\nBug fix\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [x] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54834",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54834",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54834.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54834.patch",
+ "merged_at": "2023-09-27T13:02:21Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\nPrevent crashes resulting from attempts to set an invalid URL for a video or\r\naudio file, e.g. `h://domain.org/video.mp4`.\r\n\r\n## Why?\r\n\r\nFixes https://github.com/wordpress-mobile/gutenberg-mobile/issues/6233. The crash is disruptive for users.\r\n\r\n## How?\r\n\r\nDetect and avoid sending URLs that do not begin with `http:` or `http://` to the\r\n`react-native-video` package as it will attempt and fail to load the URL as a\r\nlocal app bundle resource. Instead, display a notice to the user that the\r\nprovided URL is invalid.\r\n\r\nThe `isURL` utility considers URLs using uncommon protocols to be valid,\r\nas constructing `URL` with, say, `h://a-path.com` is valid.\r\nContrastingly, the `react-native-video` package [only considers](https://github.com/react-native-video/react-native-video/blob/81ae785090f5ce3d5e45cc51f68a3360a85be853/Video.js#L277) a URL\r\nusing the `http:` or `https:` protocols to be a \"network\" asset. This\r\nleads to an attempt to load the URL as a local asset, which fails as the\r\nasset does not exist in the app bundle.\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n1. Add a Video or Audio block.\r\n1. Select \"Insert from URL.\"\r\n1. Type an invalid URL, e.g. `h://wordpress.org/video.mp4`.\r\n1. Dismiss the bottom sheet.\r\n1. Verify the app does not crash and a helpful message is displayed.\r\n\r\n### Testing Instructions for Keyboard\r\n\r\nn/a\r\n\r\n## Screenshots or screencast \r\nn/a\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54834/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54834/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33703",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54832",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33703/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33703/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33703/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33703",
- "id": 953194000,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk3MjczNzI1",
- "number": 33703,
- "title": "Template Part placeholder - Add title step to creation flow.",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54832/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54832/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54832/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54832",
+ "id": 1913745257,
+ "node_id": "PR_kwDOBNHdeM5bPnIv",
+ "number": 54832,
+ "title": "Font Library: syntax refactor repace strpos with str_contains",
"user": {
- "login": "Addison-Stavlo",
- "id": 28742426,
- "node_id": "MDQ6VXNlcjI4NzQyNDI2",
- "avatar_url": "https://avatars.githubusercontent.com/u/28742426?v=4",
+ "login": "matiasbenedetto",
+ "id": 1310626,
+ "node_id": "MDQ6VXNlcjEzMTA2MjY=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1310626?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/Addison-Stavlo",
- "html_url": "https://github.com/Addison-Stavlo",
- "followers_url": "https://api.github.com/users/Addison-Stavlo/followers",
- "following_url": "https://api.github.com/users/Addison-Stavlo/following{/other_user}",
- "gists_url": "https://api.github.com/users/Addison-Stavlo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Addison-Stavlo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Addison-Stavlo/subscriptions",
- "organizations_url": "https://api.github.com/users/Addison-Stavlo/orgs",
- "repos_url": "https://api.github.com/users/Addison-Stavlo/repos",
- "events_url": "https://api.github.com/users/Addison-Stavlo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Addison-Stavlo/received_events",
+ "url": "https://api.github.com/users/matiasbenedetto",
+ "html_url": "https://github.com/matiasbenedetto",
+ "followers_url": "https://api.github.com/users/matiasbenedetto/followers",
+ "following_url": "https://api.github.com/users/matiasbenedetto/following{/other_user}",
+ "gists_url": "https://api.github.com/users/matiasbenedetto/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/matiasbenedetto/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/matiasbenedetto/subscriptions",
+ "organizations_url": "https://api.github.com/users/matiasbenedetto/orgs",
+ "repos_url": "https://api.github.com/users/matiasbenedetto/repos",
+ "events_url": "https://api.github.com/users/matiasbenedetto/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/matiasbenedetto/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 1604715381,
- "node_id": "MDU6TGFiZWwxNjA0NzE1Mzgx",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Full%20Site%20Editing",
- "name": "[Feature] Full Site Editing",
- "color": "fbca04",
+ "id": 930001208,
+ "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
+ "name": "[Type] Code Quality",
+ "color": "e5e04b",
"default": false,
- "description": ""
+ "description": "Issues or PRs that relate to code quality"
},
{
- "id": 2373088071,
- "node_id": "MDU6TGFiZWwyMzczMDg4MDcx",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Template-Part",
- "name": "[Block] Template-Part",
- "color": "6767e5",
+ "id": 4254348202,
+ "node_id": "LA_kwDOBNHdeM79lDOq",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Needs%20PHP%20backport",
+ "name": "Needs PHP backport",
+ "color": "64436E",
+ "default": false,
+ "description": "Needs PHP backport to Core"
+ },
+ {
+ "id": 4366600186,
+ "node_id": "LA_kwDOBNHdeM8AAAABBEUH-g",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Typography",
+ "name": "[Feature] Typography",
+ "color": "fbca04",
"default": false,
- "description": ""
+ "description": "Font and typography-related issues and PRs"
}
],
"state": "closed",
"locked": false,
- "assignee": {
- "login": "Addison-Stavlo",
- "id": 28742426,
- "node_id": "MDQ6VXNlcjI4NzQyNDI2",
- "avatar_url": "https://avatars.githubusercontent.com/u/28742426?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/Addison-Stavlo",
- "html_url": "https://github.com/Addison-Stavlo",
- "followers_url": "https://api.github.com/users/Addison-Stavlo/followers",
- "following_url": "https://api.github.com/users/Addison-Stavlo/following{/other_user}",
- "gists_url": "https://api.github.com/users/Addison-Stavlo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Addison-Stavlo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Addison-Stavlo/subscriptions",
- "organizations_url": "https://api.github.com/users/Addison-Stavlo/orgs",
- "repos_url": "https://api.github.com/users/Addison-Stavlo/repos",
- "events_url": "https://api.github.com/users/Addison-Stavlo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Addison-Stavlo/received_events",
- "type": "User",
- "site_admin": false
- },
- "assignees": [
- {
- "login": "Addison-Stavlo",
- "id": 28742426,
- "node_id": "MDQ6VXNlcjI4NzQyNDI2",
- "avatar_url": "https://avatars.githubusercontent.com/u/28742426?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/Addison-Stavlo",
- "html_url": "https://github.com/Addison-Stavlo",
- "followers_url": "https://api.github.com/users/Addison-Stavlo/followers",
- "following_url": "https://api.github.com/users/Addison-Stavlo/following{/other_user}",
- "gists_url": "https://api.github.com/users/Addison-Stavlo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Addison-Stavlo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Addison-Stavlo/subscriptions",
- "organizations_url": "https://api.github.com/users/Addison-Stavlo/orgs",
- "repos_url": "https://api.github.com/users/Addison-Stavlo/repos",
- "events_url": "https://api.github.com/users/Addison-Stavlo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Addison-Stavlo/received_events",
- "type": "User",
- "site_admin": false
- }
- ],
+ "assignee": null,
+ "assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -11255,56 +12299,72 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 5,
- "created_at": "2021-07-26T18:59:12Z",
- "updated_at": "2021-07-30T16:42:33Z",
- "closed_at": "2021-07-30T16:42:07Z",
+ "comments": 3,
+ "created_at": "2023-09-26T15:13:27Z",
+ "updated_at": "2023-09-29T12:04:11Z",
+ "closed_at": "2023-09-27T00:24:20Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33703",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33703",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33703.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33703.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\n\r\nRelated to discussion on #29950 - Adds a title step to the creation flow from the Template Part placeholder. Here we prompt the user with a modal (similar to the \"make template part\" flow from the block settings ellipsis menu) to change the name of the title from \"Untitled Template Part\". If the modal is cancelled, we revert to the placeholder and the template part is not created.\r\n\r\n![Screen Shot 2021-07-26 at 2 47 41 PM](https://user-images.githubusercontent.com/28742426/127043576-2263a093-c1ab-44a8-859b-d299bd937820.png)\r\n\r\n\r\n## How has this been tested?\r\n\r\n\r\n\r\nWith FSE enabled, test the following in both the Site and Post editor:\r\n* Insert a template part block placeholder (Header, Footer, or Template Part).\r\n* Select the \"New %s\" option. \r\n* A naming input should appear.\r\n* Cancelling (or clicking outside) the modal should revert the block back to the placeholder state.\r\n* \"Create\" should create the new template part with the name that was given in the input field.\r\n\r\n## Screenshots \r\n\r\n## Types of changes\r\n\r\n\r\nNew feature (non-breaking change which adds functionality) \r\n\r\n\r\n## Checklist:\r\n- [ ] My code is tested.\r\n- [ ] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [ ] My code has proper inline documentation. \r\n- [ ] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54832",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54832",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54832.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54832.patch",
+ "merged_at": "2023-09-27T00:24:20Z"
+ },
+ "body": "## What?\r\nsyntax refactor repace strpos with str_contains\r\nFollow up of this @anton-vlasenko comment: https://github.com/WordPress/gutenberg/pull/54067#issuecomment-1731798079\r\n\r\n## Why?\r\nto improve code readeability\r\n\r\n## How?\r\nrepacing strpos with str_contains\r\n\r\n\r\n## Testing Instructions\r\nrun php unit tests",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54832/reactions",
+ "total_count": 1,
+ "+1": 1,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54832/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33701",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54829",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33701/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33701/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33701/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33701",
- "id": 953174654,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk3MjU3OTQy",
- "number": 33701,
- "title": "Components: promote `ItemGroup`",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54829/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54829/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54829/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54829",
+ "id": 1913579217,
+ "node_id": "PR_kwDOBNHdeM5bPCly",
+ "number": 54829,
+ "title": "Font Library: refactor endpoint permissions",
"user": {
- "login": "ciampo",
- "id": 1083581,
- "node_id": "MDQ6VXNlcjEwODM1ODE=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1083581?v=4",
+ "login": "matiasbenedetto",
+ "id": 1310626,
+ "node_id": "MDQ6VXNlcjEzMTA2MjY=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1310626?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/ciampo",
- "html_url": "https://github.com/ciampo",
- "followers_url": "https://api.github.com/users/ciampo/followers",
- "following_url": "https://api.github.com/users/ciampo/following{/other_user}",
- "gists_url": "https://api.github.com/users/ciampo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/ciampo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/ciampo/subscriptions",
- "organizations_url": "https://api.github.com/users/ciampo/orgs",
- "repos_url": "https://api.github.com/users/ciampo/repos",
- "events_url": "https://api.github.com/users/ciampo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/ciampo/received_events",
+ "url": "https://api.github.com/users/matiasbenedetto",
+ "html_url": "https://github.com/matiasbenedetto",
+ "followers_url": "https://api.github.com/users/matiasbenedetto/followers",
+ "following_url": "https://api.github.com/users/matiasbenedetto/following{/other_user}",
+ "gists_url": "https://api.github.com/users/matiasbenedetto/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/matiasbenedetto/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/matiasbenedetto/subscriptions",
+ "organizations_url": "https://api.github.com/users/matiasbenedetto/orgs",
+ "repos_url": "https://api.github.com/users/matiasbenedetto/repos",
+ "events_url": "https://api.github.com/users/matiasbenedetto/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/matiasbenedetto/received_events",
"type": "User",
"site_admin": false
},
@@ -11314,90 +12374,41 @@
"node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
"url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
"name": "[Type] Enhancement",
- "color": "3993a3",
+ "color": "FEF2C0",
"default": false,
"description": "A suggestion for improvement."
},
{
- "id": 997392122,
- "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
- "name": "[Package] Components",
- "color": "ed2572",
- "default": false,
- "description": "/packages/components"
- },
- {
- "id": 1789345375,
- "node_id": "MDU6TGFiZWwxNzg5MzQ1Mzc1",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Experimental",
- "name": "[Type] Experimental",
- "color": "4109a0",
+ "id": 4254348202,
+ "node_id": "LA_kwDOBNHdeM79lDOq",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Needs%20PHP%20backport",
+ "name": "Needs PHP backport",
+ "color": "64436E",
"default": false,
- "description": "Experimental feature or API."
+ "description": "Needs PHP backport to Core"
},
{
- "id": 2555015900,
- "node_id": "MDU6TGFiZWwyNTU1MDE1OTAw",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Component%20System",
- "name": "[Feature] Component System",
+ "id": 4366600186,
+ "node_id": "LA_kwDOBNHdeM8AAAABBEUH-g",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Typography",
+ "name": "[Feature] Typography",
"color": "fbca04",
"default": false,
- "description": "The next iteration on WordPress Components."
+ "description": "Font and typography-related issues and PRs"
}
],
"state": "closed",
"locked": false,
- "assignee": {
- "login": "ciampo",
- "id": 1083581,
- "node_id": "MDQ6VXNlcjEwODM1ODE=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1083581?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/ciampo",
- "html_url": "https://github.com/ciampo",
- "followers_url": "https://api.github.com/users/ciampo/followers",
- "following_url": "https://api.github.com/users/ciampo/following{/other_user}",
- "gists_url": "https://api.github.com/users/ciampo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/ciampo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/ciampo/subscriptions",
- "organizations_url": "https://api.github.com/users/ciampo/orgs",
- "repos_url": "https://api.github.com/users/ciampo/repos",
- "events_url": "https://api.github.com/users/ciampo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/ciampo/received_events",
- "type": "User",
- "site_admin": false
- },
- "assignees": [
- {
- "login": "ciampo",
- "id": 1083581,
- "node_id": "MDQ6VXNlcjEwODM1ODE=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1083581?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/ciampo",
- "html_url": "https://github.com/ciampo",
- "followers_url": "https://api.github.com/users/ciampo/followers",
- "following_url": "https://api.github.com/users/ciampo/following{/other_user}",
- "gists_url": "https://api.github.com/users/ciampo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/ciampo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/ciampo/subscriptions",
- "organizations_url": "https://api.github.com/users/ciampo/orgs",
- "repos_url": "https://api.github.com/users/ciampo/repos",
- "events_url": "https://api.github.com/users/ciampo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/ciampo/received_events",
- "type": "User",
- "site_admin": false
- }
- ],
+ "assignee": null,
+ "assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -11420,131 +12431,107 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 2,
- "created_at": "2021-07-26T18:31:43Z",
- "updated_at": "2021-07-29T08:56:06Z",
- "closed_at": "2021-07-29T08:55:47Z",
+ "comments": 4,
+ "created_at": "2023-09-26T13:58:20Z",
+ "updated_at": "2023-10-02T09:39:54Z",
+ "closed_at": "2023-09-29T22:32:44Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33701",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33701",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33701.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33701.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\n\r\n\r\n- Promote the `ItemGroup` and `Item` components from the `packages/components/src/ui` folder to the `packages/components/src` folder\r\n- Refactor the folder structure, so that each component has its own folder\r\n- Fix a bug with the CSS pseudo-elements selectors, where the `[first|last]-of-type` selectors where causing an issue when mixing and matching different HTML element types (e.g. when one item has `isAction={true}` and the rest of the elements don't). To fix this bug, every `Item` is now wrapped in a `div` component to make sure that all children of `ItemGroup` are of the same type\r\n- Add README and JSDocs comments to types\r\n- Add a few basic unit tests\r\n- Export component from the `@wordpress/components` package\r\n\r\n## How has this been tested?\r\n\r\n\r\n\r\n\r\n- All tests pass\r\n- Run storybook locally, and make sure that the components behaves in the same way as it does currently on [production storybook](https://wordpress.github.io/gutenberg/?path=/story/components-experimental-itemgroup--default)\r\n\r\n## Screenshots \r\n\r\n \r\n\r\n\r\n## Types of changes\r\n\r\n\r\n\r\n\r\n\r\nRefactor\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [x] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54829",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54829",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54829.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54829.patch",
+ "merged_at": "2023-09-29T22:32:44Z"
+ },
+ "body": "## What?\r\nFont Library:\r\n- Refactor endpoint permissions.\r\n- Standardize the output of the install and uninstall endpoints.\r\n- Display a success or error notice on the frontend for install and uninstall actions.\r\n\r\n## Why?\r\n- To have a standard output for the endpoints for success and error cases.\r\n\r\n## How?\r\nRefactoring the endpoint responses.\r\n\r\n## Testing Instructions\r\n- Use the font library to install local and Google fonts.\r\n- Remove fonts\r\nCheck that the result is expected and you get the success or error notices.\r\n\r\n\r\nProps to @pbking and @jffng for the big help implementing this :)\r\n\r\n\r\nCloses: https://github.com/WordPress/gutenberg/issues/54751\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54829/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54829/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33696",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54827",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33696/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33696/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33696/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33696",
- "id": 952995508,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk3MTA2MzEx",
- "number": 33696,
- "title": "components: InputControl to TypeScript",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54827/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54827/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54827/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54827",
+ "id": 1913500812,
+ "node_id": "PR_kwDOBNHdeM5bOxam",
+ "number": 54827,
+ "title": "Bump gradle/gradle-build-action from 2.8.0 to 2.8.1",
"user": {
- "login": "sarayourfriend",
- "id": 24264157,
- "node_id": "MDQ6VXNlcjI0MjY0MTU3",
- "avatar_url": "https://avatars.githubusercontent.com/u/24264157?v=4",
+ "login": "dependabot[bot]",
+ "id": 49699333,
+ "node_id": "MDM6Qm90NDk2OTkzMzM=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/29110?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/sarayourfriend",
- "html_url": "https://github.com/sarayourfriend",
- "followers_url": "https://api.github.com/users/sarayourfriend/followers",
- "following_url": "https://api.github.com/users/sarayourfriend/following{/other_user}",
- "gists_url": "https://api.github.com/users/sarayourfriend/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/sarayourfriend/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/sarayourfriend/subscriptions",
- "organizations_url": "https://api.github.com/users/sarayourfriend/orgs",
- "repos_url": "https://api.github.com/users/sarayourfriend/repos",
- "events_url": "https://api.github.com/users/sarayourfriend/events{/privacy}",
- "received_events_url": "https://api.github.com/users/sarayourfriend/received_events",
- "type": "User",
+ "url": "https://api.github.com/users/dependabot%5Bbot%5D",
+ "html_url": "https://github.com/apps/dependabot",
+ "followers_url": "https://api.github.com/users/dependabot%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dependabot%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/dependabot%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/dependabot%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dependabot%5Bbot%5D/received_events",
+ "type": "Bot",
"site_admin": false
},
"labels": [
{
- "id": 930001208,
- "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
- "name": "[Type] Code Quality",
- "color": "e5e04b",
+ "id": 596512821,
+ "node_id": "MDU6TGFiZWw1OTY1MTI4MjE=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Build%20Tooling",
+ "name": "[Type] Build Tooling",
+ "color": "111111",
"default": false,
- "description": "Gotta shave those yaks."
+ "description": "Issues or PRs related to build tooling"
},
{
- "id": 997392122,
- "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
- "name": "[Package] Components",
- "color": "ed2572",
+ "id": 4662565393,
+ "node_id": "LA_kwDOBNHdeM8AAAABFekaEQ",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/GitHub%20Actions",
+ "name": "GitHub Actions",
+ "color": "000000",
"default": false,
- "description": "/packages/components"
+ "description": "Pull requests that update GitHub Actions code"
}
],
"state": "closed",
"locked": false,
- "assignee": {
- "login": "sarayourfriend",
- "id": 24264157,
- "node_id": "MDQ6VXNlcjI0MjY0MTU3",
- "avatar_url": "https://avatars.githubusercontent.com/u/24264157?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/sarayourfriend",
- "html_url": "https://github.com/sarayourfriend",
- "followers_url": "https://api.github.com/users/sarayourfriend/followers",
- "following_url": "https://api.github.com/users/sarayourfriend/following{/other_user}",
- "gists_url": "https://api.github.com/users/sarayourfriend/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/sarayourfriend/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/sarayourfriend/subscriptions",
- "organizations_url": "https://api.github.com/users/sarayourfriend/orgs",
- "repos_url": "https://api.github.com/users/sarayourfriend/repos",
- "events_url": "https://api.github.com/users/sarayourfriend/events{/privacy}",
- "received_events_url": "https://api.github.com/users/sarayourfriend/received_events",
- "type": "User",
- "site_admin": false
- },
- "assignees": [
- {
- "login": "sarayourfriend",
- "id": 24264157,
- "node_id": "MDQ6VXNlcjI0MjY0MTU3",
- "avatar_url": "https://avatars.githubusercontent.com/u/24264157?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/sarayourfriend",
- "html_url": "https://github.com/sarayourfriend",
- "followers_url": "https://api.github.com/users/sarayourfriend/followers",
- "following_url": "https://api.github.com/users/sarayourfriend/following{/other_user}",
- "gists_url": "https://api.github.com/users/sarayourfriend/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/sarayourfriend/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/sarayourfriend/subscriptions",
- "organizations_url": "https://api.github.com/users/sarayourfriend/orgs",
- "repos_url": "https://api.github.com/users/sarayourfriend/repos",
- "events_url": "https://api.github.com/users/sarayourfriend/events{/privacy}",
- "received_events_url": "https://api.github.com/users/sarayourfriend/received_events",
- "type": "User",
- "site_admin": false
- }
- ],
+ "assignee": null,
+ "assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -11567,56 +12554,72 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 2,
- "created_at": "2021-07-26T14:58:32Z",
- "updated_at": "2021-08-06T13:04:52Z",
- "closed_at": "2021-08-06T13:04:11Z",
+ "comments": 0,
+ "created_at": "2023-09-26T13:20:21Z",
+ "updated_at": "2023-09-28T13:59:02Z",
+ "closed_at": "2023-09-28T13:58:35Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33696",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33696",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33696.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33696.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\nI did this refactor while I was working on something else so I figured I might as well open a PR for it.\r\n\r\nIt just converts the InputControl to TypeScript and (I think) improves the way the reducer code is structured while we're at it.\r\n\r\n## How has this been tested?\r\nStorybook should work the same for InputControl, NumberControl and UnitControl, the last two depend on InputControl.\r\n\r\nTS build should pass as well.\r\n\r\n## Types of changes\r\nJanitorial\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [N/A] My code follows the accessibility standards. \r\n- [N/A] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54827",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54827",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54827.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54827.patch",
+ "merged_at": "2023-09-28T13:58:35Z"
+ },
+ "body": "Bumps [gradle/gradle-build-action](https://github.com/gradle/gradle-build-action) from 2.8.0 to 2.8.1.\n\nRelease notes \nSourced from gradle/gradle-build-action's releases .
\n\nv2.8.1 \nFixes an issue that prevented Dependency Graph submission when running on GitHub Enterprise Server.
\nFixes \n\nIncorrect endpoint used to submit Dependency Graph on GitHub Enterprise #885 \n \nChangelog \nhttps://github.com/gradle/gradle-build-action/compare/v2.8.0...v2.8.1
\n \n \n\nCommits \n\nb5126f3
Use github.getOctokit() for compat with GitHub Enterprise \nd8615cc
Document configuration to publish to scans.gradle.com \n444c20b
Test multiple dependency graphs on all os's \naea76e1
Dependency updates \n103e3a7
Build outputs \n73e3fc2
Bump the npm-dependencies group with 12 updates \nb063df0
Bump GE plugin versions \n5e3952d
Bump the github-actions group with 2 updates \ned940a3
Fix name of test dependency-graph workflow \n3bfe3a4
Clarify documentation \nAdditional commits viewable in compare view \n \n \n \n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=gradle/gradle-build-action&package-manager=github_actions&previous-version=2.8.0&new-version=2.8.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options \n \n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n ",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54827/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54827/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33680",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54825",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33680/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33680/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33680/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33680",
- "id": 952571352,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk2NzQ1NzI3",
- "number": 33680,
- "title": "Global Styles: Avoid rendering duplicate elements stylesheet",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54825/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54825/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54825/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54825",
+ "id": 1913485370,
+ "node_id": "PR_kwDOBNHdeM5bOuCc",
+ "number": 54825,
+ "title": "[RNMobile] Cover block: Avoid exception when adding media after setting the overlay color",
"user": {
- "login": "Mamaduka",
- "id": 240569,
- "node_id": "MDQ6VXNlcjI0MDU2OQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "login": "fluiddot",
+ "id": 14905380,
+ "node_id": "MDQ6VXNlcjE0OTA1Mzgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14905380?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/Mamaduka",
- "html_url": "https://github.com/Mamaduka",
- "followers_url": "https://api.github.com/users/Mamaduka/followers",
- "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
- "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
- "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
- "repos_url": "https://api.github.com/users/Mamaduka/repos",
- "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "url": "https://api.github.com/users/fluiddot",
+ "html_url": "https://github.com/fluiddot",
+ "followers_url": "https://api.github.com/users/fluiddot/followers",
+ "following_url": "https://api.github.com/users/fluiddot/following{/other_user}",
+ "gists_url": "https://api.github.com/users/fluiddot/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/fluiddot/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/fluiddot/subscriptions",
+ "organizations_url": "https://api.github.com/users/fluiddot/orgs",
+ "repos_url": "https://api.github.com/users/fluiddot/repos",
+ "events_url": "https://api.github.com/users/fluiddot/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/fluiddot/received_events",
"type": "User",
"site_admin": false
},
@@ -11628,70 +12631,79 @@
"name": "[Type] Bug",
"color": "d93f0b",
"default": false,
- "description": "An existing feature is broken."
+ "description": "An existing feature does not function as intended"
},
{
- "id": 1800807983,
- "node_id": "MDU6TGFiZWwxODAwODA3OTgz",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Global%20Styles",
- "name": "Global Styles",
- "color": "2100b7",
+ "id": 982506020,
+ "node_id": "MDU6TGFiZWw5ODI1MDYwMjA=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20i.e.%20Android%20or%20iOS",
+ "name": "Mobile App - i.e. Android or iOS",
+ "color": "a3ef7a",
+ "default": false,
+ "description": "Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)"
+ },
+ {
+ "id": 1101517892,
+ "node_id": "MDU6TGFiZWwxMTAxNTE3ODky",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Cover",
+ "name": "[Block] Cover",
+ "color": "6767e5",
"default": false,
- "description": ""
+ "description": "Affects the Cover Block - used to display content laid over a background image"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "Mamaduka",
- "id": 240569,
- "node_id": "MDQ6VXNlcjI0MDU2OQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "login": "fluiddot",
+ "id": 14905380,
+ "node_id": "MDQ6VXNlcjE0OTA1Mzgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14905380?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/Mamaduka",
- "html_url": "https://github.com/Mamaduka",
- "followers_url": "https://api.github.com/users/Mamaduka/followers",
- "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
- "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
- "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
- "repos_url": "https://api.github.com/users/Mamaduka/repos",
- "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "url": "https://api.github.com/users/fluiddot",
+ "html_url": "https://github.com/fluiddot",
+ "followers_url": "https://api.github.com/users/fluiddot/followers",
+ "following_url": "https://api.github.com/users/fluiddot/following{/other_user}",
+ "gists_url": "https://api.github.com/users/fluiddot/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/fluiddot/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/fluiddot/subscriptions",
+ "organizations_url": "https://api.github.com/users/fluiddot/orgs",
+ "repos_url": "https://api.github.com/users/fluiddot/repos",
+ "events_url": "https://api.github.com/users/fluiddot/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/fluiddot/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "Mamaduka",
- "id": 240569,
- "node_id": "MDQ6VXNlcjI0MDU2OQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "login": "fluiddot",
+ "id": 14905380,
+ "node_id": "MDQ6VXNlcjE0OTA1Mzgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14905380?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/Mamaduka",
- "html_url": "https://github.com/Mamaduka",
- "followers_url": "https://api.github.com/users/Mamaduka/followers",
- "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
- "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
- "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
- "repos_url": "https://api.github.com/users/Mamaduka/repos",
- "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "url": "https://api.github.com/users/fluiddot",
+ "html_url": "https://github.com/fluiddot",
+ "followers_url": "https://api.github.com/users/fluiddot/followers",
+ "following_url": "https://api.github.com/users/fluiddot/following{/other_user}",
+ "gists_url": "https://api.github.com/users/fluiddot/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/fluiddot/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/fluiddot/subscriptions",
+ "organizations_url": "https://api.github.com/users/fluiddot/orgs",
+ "repos_url": "https://api.github.com/users/fluiddot/repos",
+ "events_url": "https://api.github.com/users/fluiddot/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/fluiddot/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -11714,140 +12726,116 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 0,
- "created_at": "2021-07-26T07:00:39Z",
- "updated_at": "2021-07-28T10:08:42Z",
- "closed_at": "2021-07-28T10:08:15Z",
- "author_association": "MEMBER",
+ "comments": 1,
+ "created_at": "2023-09-26T13:12:19Z",
+ "updated_at": "2023-09-26T14:58:29Z",
+ "closed_at": "2023-09-26T14:58:00Z",
+ "author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33680",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33680",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33680.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33680.patch"
- },
- "body": "## Description\r\nRemoves WP Core filter for \"elements support\" to avoid rendering duplicate stylesheet.\r\n\r\nFixes #33669.\r\n\r\nSimilar PRs - #33005 and #33233.\r\n\r\n## How has this been tested?\r\n1. Add the Paragraph block.\r\n2. Select text and add a link.\r\n3. Set link color for the paragraph.\r\n4. Save post.\r\n5. On the front-end, WP shouldn't render duplicated stylesheet for link color.\r\n\r\n## Screenshots \r\n![CleanShot 2021-07-26 at 10 58 36](https://user-images.githubusercontent.com/240569/126946197-0c76e6d3-6d7a-4aaa-bb0d-2c2608fc790c.png)\r\n\r\n## Types of changes\r\nBugfix\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54825",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54825",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54825.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54825.patch",
+ "merged_at": "2023-09-26T14:57:59Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\n\r\nFixes an exception produced when adding media on a Cover block that already has an overlay color.\r\n\r\n## Why?\r\n\r\n\r\nThe exception addressed leads to a crash in the app.\r\n\r\n## How?\r\n\r\n\r\nThe exception is produced in the handler `onSelectMedia` due to a recent change in the shared function `attributesFromMedia` introduced in https://github.com/WordPress/gutenberg/pull/54054. Previous to the change, `attributesFromMedia` was returning a function that updated the attributes upon calling it, but now it just returns the attributes to update. The workaround for the native version is simply to collect the attributes from `attributesFromMedia` and update the attributes directly in the `onSelectMedia` handler.\r\n\r\nIdeally, we should update the native version of the block to match the logic of the web version. However, in the spirit of addressing the exception sooner than later, we could use this approach and work on the refactor in a separate PR.\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n1. Open/create a post.\r\n2. Add a Cover block.\r\n3. Select one of the colors displayed in the placeholder.\r\n4. Select the Cover block.\r\n5. Open the block settings.\r\n6. Tap on the \"Add image or video\" option.\r\n7. Tap on the \"WordPress Media Library\" option.\r\n8. Select an image.\r\n9. Observe that no exception is thrown.\r\n10. Observe that the image is set as the background.\r\n11. Observe that the overlay color matches the color selected.\r\n12. Observe that the overlay has 50% transparency.\r\n\r\n### Testing Instructions for Keyboard\r\n\r\nN/A\r\n\r\n## Screenshots or screencast \r\nN/A",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54825/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54825/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33679",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54823",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33679/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33679/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33679/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33679",
- "id": 952534040,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk2NzEzMjkw",
- "number": 33679,
- "title": "FontSizePicker: Use number values when the initial value is a number",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54823/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54823/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54823/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54823",
+ "id": 1913269746,
+ "node_id": "PR_kwDOBNHdeM5bN-r5",
+ "number": 54823,
+ "title": "Fix Search Block not updating in Nav block",
"user": {
- "login": "Mamaduka",
- "id": 240569,
- "node_id": "MDQ6VXNlcjI0MDU2OQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "login": "getdave",
+ "id": 444434,
+ "node_id": "MDQ6VXNlcjQ0NDQzNA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/444434?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/Mamaduka",
- "html_url": "https://github.com/Mamaduka",
- "followers_url": "https://api.github.com/users/Mamaduka/followers",
- "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
- "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
- "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
- "repos_url": "https://api.github.com/users/Mamaduka/repos",
- "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "url": "https://api.github.com/users/getdave",
+ "html_url": "https://github.com/getdave",
+ "followers_url": "https://api.github.com/users/getdave/followers",
+ "following_url": "https://api.github.com/users/getdave/following{/other_user}",
+ "gists_url": "https://api.github.com/users/getdave/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/getdave/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/getdave/subscriptions",
+ "organizations_url": "https://api.github.com/users/getdave/orgs",
+ "repos_url": "https://api.github.com/users/getdave/repos",
+ "events_url": "https://api.github.com/users/getdave/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/getdave/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 949438185,
- "node_id": "MDU6TGFiZWw5NDk0MzgxODU=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Regression",
- "name": "[Type] Regression",
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
"color": "d93f0b",
"default": false,
- "description": ""
+ "description": "An existing feature does not function as intended"
},
{
- "id": 997392122,
- "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
- "name": "[Package] Components",
- "color": "ed2572",
+ "id": 1225853227,
+ "node_id": "MDU6TGFiZWwxMjI1ODUzMjI3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Navigation",
+ "name": "[Block] Navigation",
+ "color": "6767e5",
"default": false,
- "description": "/packages/components"
+ "description": "Affects the Navigation Block"
},
{
- "id": 2463256422,
- "node_id": "MDU6TGFiZWwyNDYzMjU2NDIy",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Backport%20to%20WP%20Minor%20Release",
- "name": "Backport to WP Minor Release",
- "color": "491d8e",
+ "id": 1539734701,
+ "node_id": "MDU6TGFiZWwxNTM5NzM0NzAx",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Search",
+ "name": "[Block] Search",
+ "color": "6767e5",
"default": false,
- "description": "PRs to be back-ported to a WordPress minor release."
+ "description": "Affects the Search Block - used to display a search field"
}
],
"state": "closed",
"locked": false,
- "assignee": {
- "login": "Mamaduka",
- "id": 240569,
- "node_id": "MDQ6VXNlcjI0MDU2OQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/Mamaduka",
- "html_url": "https://github.com/Mamaduka",
- "followers_url": "https://api.github.com/users/Mamaduka/followers",
- "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
- "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
- "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
- "repos_url": "https://api.github.com/users/Mamaduka/repos",
- "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
- "type": "User",
- "site_admin": false
- },
- "assignees": [
- {
- "login": "Mamaduka",
- "id": 240569,
- "node_id": "MDQ6VXNlcjI0MDU2OQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/Mamaduka",
- "html_url": "https://github.com/Mamaduka",
- "followers_url": "https://api.github.com/users/Mamaduka/followers",
- "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
- "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
- "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
- "repos_url": "https://api.github.com/users/Mamaduka/repos",
- "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
- "type": "User",
- "site_admin": false
- }
- ],
+ "assignee": null,
+ "assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -11870,100 +12858,147 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 25,
- "created_at": "2021-07-26T06:02:26Z",
- "updated_at": "2021-07-30T11:21:57Z",
- "closed_at": "2021-07-30T11:21:33Z",
- "author_association": "MEMBER",
+ "comments": 3,
+ "created_at": "2023-09-26T11:10:14Z",
+ "updated_at": "2023-10-02T15:05:32Z",
+ "closed_at": "2023-09-27T20:15:57Z",
+ "author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33679",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33679",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33679.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33679.patch"
- },
- "body": "## Description\r\nUpdates `onChange` logic in FontSizePicker component. When the component detects that value or first object in `fonSizes` doesn't use units, it will pass the number value to the onChange callback.\r\n\r\nFixes #33651.\r\nFixes #33653.\r\n\r\n## How has this been tested?\r\nTested with plugin provided in original issue report - https://github.com/NasKadir123/textBlock\r\n\r\n## Types of changes\r\nBugfix \r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54823",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54823",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54823.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54823.patch",
+ "merged_at": "2023-09-27T20:15:57Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\n\r\nFixes Search blocks to allow them to have changes to their configuration when they are within a Navigation block.\r\n\r\nCloses https://github.com/WordPress/gutenberg/issues/53038\r\n\r\n## Why?\r\n\r\n\r\nBlocks should be configurable via their UI controls.\r\n\r\n## How?\r\n\r\n\r\nThere was a console error when inserting a Search block into Navigation block. This was referring to a `setState` in render.\r\n\r\nThe culprit was `setAttributes` called conditionally within the render method.\r\n\r\nMoving this code to an effect fixes the problem. This is likely because we cannot treat `setAttributes` like idiomatic React's \"setState\". `setAttributes` actually updates an external global store (Redux) and so it could caused other blocks to re-render. This is likely what triggers the console error.\r\n\r\nThe idea of attempting to derive the \"state\" of the block once it has been inserted seems to go against the React paradigm. The \"insert\" [is in fact an \"event\" and thus it might be better to handle this in a callback](https://react.dev/learn/you-might-not-need-an-effect) which inserts the block with a given state based on some context. Instead, we are inserting the block and _then_ trying to derive it's state which is problematic.\r\n\r\nHowever, we don't have such APIs available to us so moving to an effect is the best we can do for now.\r\n\r\n\r\n\r\n\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n\r\n- Add Nav block.\r\n- Add search block to the Nav block (you can find this at the bottom of the Link UI that appears).\r\n- Change configuration of the Search block.\r\n- Save the Navigation (top right \"Publish\" button in editor).\r\n- See that changes are persisted.\r\n- Reload editor.\r\n- See that changes are persisted.\r\n- Make some more changes.\r\n- Switch editor to \"Code\" view.\r\n- Switch back to \"Visual\" view.\r\n- See that changes are persisted.\r\n- Try anything listed in comments in https://github.com/WordPress/gutenberg/issues/53038 to try and replicate the original Issue.\r\n\r\n### Testing Instructions for Keyboard\r\n\r\n\r\n## Screenshots or screencast \r\n\r\nhttps://github.com/WordPress/gutenberg/assets/444434/40ac6056-d52f-4d85-bac5-aad463f3d95c\r\n\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54823/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54823/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33676",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54818",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33676/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33676/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33676/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33676",
- "id": 952252078,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk2NDg0NDQ2",
- "number": 33676,
- "title": "Scripts: Webpack config update to minimize CSS",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54818/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54818/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54818/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54818",
+ "id": 1913111756,
+ "node_id": "PR_kwDOBNHdeM5bNb4C",
+ "number": 54818,
+ "title": "Update ariakit to 0.3.3",
"user": {
- "login": "christianztamayo",
- "id": 2377217,
- "node_id": "MDQ6VXNlcjIzNzcyMTc=",
- "avatar_url": "https://avatars.githubusercontent.com/u/2377217?v=4",
+ "login": "ciampo",
+ "id": 1083581,
+ "node_id": "MDQ6VXNlcjEwODM1ODE=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1083581?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/christianztamayo",
- "html_url": "https://github.com/christianztamayo",
- "followers_url": "https://api.github.com/users/christianztamayo/followers",
- "following_url": "https://api.github.com/users/christianztamayo/following{/other_user}",
- "gists_url": "https://api.github.com/users/christianztamayo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/christianztamayo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/christianztamayo/subscriptions",
- "organizations_url": "https://api.github.com/users/christianztamayo/orgs",
- "repos_url": "https://api.github.com/users/christianztamayo/repos",
- "events_url": "https://api.github.com/users/christianztamayo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/christianztamayo/received_events",
- "type": "User",
- "site_admin": false
- },
- "labels": [
- {
- "id": 531680825,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
- "name": "[Type] Enhancement",
- "color": "3993a3",
- "default": false,
- "description": "A suggestion for improvement."
- },
+ "url": "https://api.github.com/users/ciampo",
+ "html_url": "https://github.com/ciampo",
+ "followers_url": "https://api.github.com/users/ciampo/followers",
+ "following_url": "https://api.github.com/users/ciampo/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ciampo/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ciampo/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ciampo/subscriptions",
+ "organizations_url": "https://api.github.com/users/ciampo/orgs",
+ "repos_url": "https://api.github.com/users/ciampo/repos",
+ "events_url": "https://api.github.com/users/ciampo/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ciampo/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
{
- "id": 978007737,
- "node_id": "MDU6TGFiZWw5NzgwMDc3Mzc=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Scripts",
- "name": "[Package] Scripts",
- "color": "ed2572",
+ "id": 546517042,
+ "node_id": "MDU6TGFiZWw1NDY1MTcwNDI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Focus]%20Accessibility%20(a11y)",
+ "name": "[Focus] Accessibility (a11y)",
+ "color": "efde5d",
"default": false,
- "description": "/packages/scripts"
+ "description": "Changes that impact accessibility and need corresponding review (e.g. markup changes)."
},
{
- "id": 1388646432,
- "node_id": "MDU6TGFiZWwxMzg4NjQ2NDMy",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/First-time%20Contributor",
- "name": "First-time Contributor",
- "color": "a0f762",
+ "id": 997392122,
+ "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
+ "name": "[Package] Components",
+ "color": "ed2572",
"default": false,
- "description": "Pull request opened by a first-time contributor to Gutenberg repository"
+ "description": "/packages/components"
}
],
"state": "closed",
"locked": false,
- "assignee": null,
- "assignees": [],
+ "assignee": {
+ "login": "ciampo",
+ "id": 1083581,
+ "node_id": "MDQ6VXNlcjEwODM1ODE=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1083581?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ciampo",
+ "html_url": "https://github.com/ciampo",
+ "followers_url": "https://api.github.com/users/ciampo/followers",
+ "following_url": "https://api.github.com/users/ciampo/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ciampo/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ciampo/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ciampo/subscriptions",
+ "organizations_url": "https://api.github.com/users/ciampo/orgs",
+ "repos_url": "https://api.github.com/users/ciampo/repos",
+ "events_url": "https://api.github.com/users/ciampo/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ciampo/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "ciampo",
+ "id": 1083581,
+ "node_id": "MDQ6VXNlcjEwODM1ODE=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1083581?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ciampo",
+ "html_url": "https://github.com/ciampo",
+ "followers_url": "https://api.github.com/users/ciampo/followers",
+ "following_url": "https://api.github.com/users/ciampo/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ciampo/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ciampo/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ciampo/subscriptions",
+ "organizations_url": "https://api.github.com/users/ciampo/orgs",
+ "repos_url": "https://api.github.com/users/ciampo/repos",
+ "events_url": "https://api.github.com/users/ciampo/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ciampo/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -11986,131 +13021,147 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 5,
- "created_at": "2021-07-25T11:14:35Z",
- "updated_at": "2021-07-29T10:44:46Z",
- "closed_at": "2021-07-28T12:06:28Z",
+ "comments": 3,
+ "created_at": "2023-09-26T09:38:28Z",
+ "updated_at": "2023-10-07T08:29:09Z",
+ "closed_at": "2023-09-26T13:20:33Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33676",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33676",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33676.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33676.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\n\r\nThe previous configuration does not have CSS minification included aside from the `sass-loader` built-in which only affects SCSS files. (Closes #33643, Related: #29624)\r\n\r\n## How has this been tested?\r\n\r\n\r\n\r\n- Followed reproduction steps on #33643 and checked that regular CSS are now minified\r\n- Ran the build on Gutenberg and made sure it's still working as expected\r\n\r\n## Types of changes\r\n\r\n\r\n\r\n\r\nAdded the optimize-css-assets-webpack-plugin to the minimizer config.\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [-] My code follows the accessibility standards. \r\n- [-] I've tested my changes with keyboard and screen readers. \r\n- [-] My code has proper inline documentation. \r\n- [-] I've included developer documentation if appropriate. \r\n- [-] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54818",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54818",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54818.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54818.patch",
+ "merged_at": "2023-09-26T13:20:33Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\n\r\nUpdate `@ariakit/react` from version `0.2.12` to the (currently latest) version `0.3.3`\r\n\r\n## Why?\r\n\r\n\r\nTo benefit from the latest additions (eg. providers) and bug fixes (eg. better interactions between `Menu` and third-party modals)\r\n\r\n## How?\r\n\r\n\r\nI manually updated `packages/components/package.json`, and then ran `npm install`.\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n\r\nFrom the [release notes](https://github.com/ariakit/ariakit/blob/main/packages/ariakit-react/CHANGELOG.md), the only breaking changes affect the `useSelectStore`, `useMenuStore` and `useComboboxStore` hooks, none of which are currently used in the project.\r\n\r\nWe should make sure that components using ariakit are still working as expected in Storybook and the editor:\r\n\r\n- `TabPanel`\r\n- `ToggleGroupControl`\r\n- `Toolbar`\r\n- `Tooltip`",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54818/reactions",
+ "total_count": 1,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 1,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54818/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33660",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54812",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33660/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33660/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33660/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33660",
- "id": 951727008,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk2MDY1NTQ4",
- "number": 33660,
- "title": "Only show rich preview for image and description if data is available",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54812/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54812/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54812/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54812",
+ "id": 1912643345,
+ "node_id": "PR_kwDOBNHdeM5bL1tC",
+ "number": 54812,
+ "title": "Plugin: Remove legacy logic for '__unstableResolvedAssets' setting",
"user": {
- "login": "getdave",
- "id": 444434,
- "node_id": "MDQ6VXNlcjQ0NDQzNA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/444434?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/getdave",
- "html_url": "https://github.com/getdave",
- "followers_url": "https://api.github.com/users/getdave/followers",
- "following_url": "https://api.github.com/users/getdave/following{/other_user}",
- "gists_url": "https://api.github.com/users/getdave/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/getdave/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/getdave/subscriptions",
- "organizations_url": "https://api.github.com/users/getdave/orgs",
- "repos_url": "https://api.github.com/users/getdave/repos",
- "events_url": "https://api.github.com/users/getdave/events{/privacy}",
- "received_events_url": "https://api.github.com/users/getdave/received_events",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 531680823,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
- "name": "[Type] Bug",
- "color": "d93f0b",
+ "id": 616662898,
+ "node_id": "MDU6TGFiZWw2MTY2NjI4OTg=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Gutenberg%20Plugin",
+ "name": "Gutenberg Plugin",
+ "color": "578eed",
"default": false,
- "description": "An existing feature is broken."
+ "description": "Issues or PRs related to Gutenberg Plugin management related efforts"
},
{
- "id": 1838782557,
- "node_id": "MDU6TGFiZWwxODM4NzgyNTU3",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Link%20Editing",
- "name": "[Feature] Link Editing",
- "color": "fbca04",
+ "id": 930001208,
+ "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
+ "name": "[Type] Code Quality",
+ "color": "e5e04b",
"default": false,
- "description": "Link components (LinkControl, URLInput) and integrations (RichText link formatting)"
+ "description": "Issues or PRs that relate to code quality"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "getdave",
- "id": 444434,
- "node_id": "MDQ6VXNlcjQ0NDQzNA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/444434?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/getdave",
- "html_url": "https://github.com/getdave",
- "followers_url": "https://api.github.com/users/getdave/followers",
- "following_url": "https://api.github.com/users/getdave/following{/other_user}",
- "gists_url": "https://api.github.com/users/getdave/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/getdave/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/getdave/subscriptions",
- "organizations_url": "https://api.github.com/users/getdave/orgs",
- "repos_url": "https://api.github.com/users/getdave/repos",
- "events_url": "https://api.github.com/users/getdave/events{/privacy}",
- "received_events_url": "https://api.github.com/users/getdave/received_events",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "getdave",
- "id": 444434,
- "node_id": "MDQ6VXNlcjQ0NDQzNA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/444434?v=4",
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/getdave",
- "html_url": "https://github.com/getdave",
- "followers_url": "https://api.github.com/users/getdave/followers",
- "following_url": "https://api.github.com/users/getdave/following{/other_user}",
- "gists_url": "https://api.github.com/users/getdave/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/getdave/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/getdave/subscriptions",
- "organizations_url": "https://api.github.com/users/getdave/orgs",
- "repos_url": "https://api.github.com/users/getdave/repos",
- "events_url": "https://api.github.com/users/getdave/events{/privacy}",
- "received_events_url": "https://api.github.com/users/getdave/received_events",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -12133,68 +13184,102 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 4,
- "created_at": "2021-07-23T16:35:12Z",
- "updated_at": "2021-07-29T15:51:36Z",
- "closed_at": "2021-07-29T15:51:10Z",
- "author_association": "CONTRIBUTOR",
+ "comments": 2,
+ "created_at": "2023-09-26T04:13:27Z",
+ "updated_at": "2023-09-27T06:12:36Z",
+ "closed_at": "2023-09-27T06:12:11Z",
+ "author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33660",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33660",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33660.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33660.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\n\r\nThe Link UI's rich preview feature for remote URLs was showing placeholders for image and description even thought that data did not exist in the rich preview data.\r\n\r\nThis would allow you to arrive at states such as:\r\n\r\n![image](https://user-images.githubusercontent.com/444434/126812983-e606765b-8166-4aa4-aebf-2bfe20a90129.png)\r\n\r\nThis PR corrects that by only showing the lower half of the rich preview if the necessary data is available. It will also only show the description or image if they are available.\r\n\r\n@javierarce I think this was actually an intentional feature. I know that because we encoded the feature into the tests!\r\n\r\nhttps://github.com/WordPress/gutenberg/blob/40a511ec0e89ae401d799c66625b6fe0db00aea5/packages/block-editor/src/components/link-control/test/index.js#L1960-L1961\r\n\r\nTherefore I'm checking in with you to make sure you're aware that this change is being made. Essentially if the content doesn't exist then we won't see a placeholder.\r\n\r\n## How has this been tested?\r\n\r\n\r\n\r\n\r\n* Create a link to a page which doesn't return a description or an image but which does return a title or an icon. Good example is https://twitter.com/.\r\n* Click on the link to show a link preview.\r\n* See that the placeholders for image and description are not shown once the fetching has finished.\r\n* Check another \"normal\" URL to make sure we haven't caused any regressions.\r\n\r\nNote we have quite a bit of test coverage here so it should 🤞 🤞 🤞 🤞 be safe.\r\n\r\n## Screenshots \r\n\r\n## Types of changes\r\n\r\n\r\n\r\n\r\n\r\n## Checklist:\r\n- [ ] My code is tested.\r\n- [ ] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [ ] My code has proper inline documentation. \r\n- [ ] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54812",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54812",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54812.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54812.patch",
+ "merged_at": "2023-09-27T06:12:11Z"
+ },
+ "body": "## What?\r\nThis is similar to #51100.\r\n\r\nRemoves legacy logic from the `__unstableResolvedAssets` setting from the WP 6.3 compat folder.\r\n\r\n## Why?\r\nThe same logic is already handled by the `_gutenberg_get_iframed_editor_assets_6_4` in the `lib/compat/wordpress-6.4/script-loader.php` directory, which overrides legacy settings. There's no need to run asset generation twice.\r\n\r\nRef: #54254.\r\n\r\n## Testing Instructions\r\nVerify iframe-related test pass. Smoke test the editors and asset loading.\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54812/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54812/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33657",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54802",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33657/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33657/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33657/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33657",
- "id": 951670686,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk2MDE4ODMz",
- "number": 33657,
- "title": "RNMobile: Try unifying the unit test command on mobile",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54802/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54802/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54802/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54802",
+ "id": 1912094758,
+ "node_id": "PR_kwDOBNHdeM5bJ_wn",
+ "number": 54802,
+ "title": "Font Library: avoid deprected error in test",
"user": {
- "login": "guarani",
- "id": 1898325,
- "node_id": "MDQ6VXNlcjE4OTgzMjU=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1898325?v=4",
+ "login": "matiasbenedetto",
+ "id": 1310626,
+ "node_id": "MDQ6VXNlcjEzMTA2MjY=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1310626?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/guarani",
- "html_url": "https://github.com/guarani",
- "followers_url": "https://api.github.com/users/guarani/followers",
- "following_url": "https://api.github.com/users/guarani/following{/other_user}",
- "gists_url": "https://api.github.com/users/guarani/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/guarani/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/guarani/subscriptions",
- "organizations_url": "https://api.github.com/users/guarani/orgs",
- "repos_url": "https://api.github.com/users/guarani/repos",
- "events_url": "https://api.github.com/users/guarani/events{/privacy}",
- "received_events_url": "https://api.github.com/users/guarani/received_events",
+ "url": "https://api.github.com/users/matiasbenedetto",
+ "html_url": "https://github.com/matiasbenedetto",
+ "followers_url": "https://api.github.com/users/matiasbenedetto/followers",
+ "following_url": "https://api.github.com/users/matiasbenedetto/following{/other_user}",
+ "gists_url": "https://api.github.com/users/matiasbenedetto/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/matiasbenedetto/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/matiasbenedetto/subscriptions",
+ "organizations_url": "https://api.github.com/users/matiasbenedetto/orgs",
+ "repos_url": "https://api.github.com/users/matiasbenedetto/repos",
+ "events_url": "https://api.github.com/users/matiasbenedetto/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/matiasbenedetto/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 982506020,
- "node_id": "MDU6TGFiZWw5ODI1MDYwMjA=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20i.e.%20Android%20or%20iOS",
- "name": "Mobile App - i.e. Android or iOS",
- "color": "a3ef7a",
+ "id": 615503111,
+ "node_id": "MDU6TGFiZWw2MTU1MDMxMTE=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Automated%20Testing",
+ "name": "[Type] Automated Testing",
+ "color": "111111",
"default": false,
- "description": "Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)"
+ "description": "Testing infrastructure changes impacting the execution of end-to-end (E2E) and/or unit tests."
+ },
+ {
+ "id": 4254348202,
+ "node_id": "LA_kwDOBNHdeM79lDOq",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Needs%20PHP%20backport",
+ "name": "Needs PHP backport",
+ "color": "64436E",
+ "default": false,
+ "description": "Needs PHP backport to Core"
+ },
+ {
+ "id": 4366600186,
+ "node_id": "LA_kwDOBNHdeM8AAAABBEUH-g",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Typography",
+ "name": "[Feature] Typography",
+ "color": "fbca04",
+ "default": false,
+ "description": "Font and typography-related issues and PRs"
}
],
"state": "closed",
@@ -12202,13 +13287,13 @@
"assignee": null,
"assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -12231,91 +13316,107 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
"comments": 3,
- "created_at": "2021-07-23T15:16:35Z",
- "updated_at": "2021-08-03T17:28:10Z",
- "closed_at": "2021-08-03T17:27:45Z",
+ "created_at": "2023-09-25T18:50:34Z",
+ "updated_at": "2023-09-29T12:04:17Z",
+ "closed_at": "2023-09-27T01:23:32Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33657",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33657",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33657.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33657.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\nUnify the the native unit test command.\r\n\r\nRelated https://github.com/wordpress-mobile/gutenberg-mobile/pull/3754\r\n\r\n## How has this been tested?\r\nRun the `npm run native test` command on a unit test:\r\n```\r\nnpm run native test packages/block-library/src/verse/test/edit.native.js\r\n```\r\nRun it on an integration test:\r\n```\r\nnpm run native test packages/block-library/src/cover/test/edit.native.js\r\n```\r\nRun it on any test and ensure the debugger connects properly:\r\n1. Put a `debugger;` statement in any unit test or integration test file e.g. `packages/block-library/src/verse/test/edit.native.js`\r\n2. Run the `:debug` variant of the command to run tests e.g. `npm run native test:debug packages/block-library/src/verse/test/edit.native.js`\r\n3. Open Google Chrome and enter `chrome://inspect`\r\n4. Click on the target\r\n5. Ensure that the debugger connects and stops at the `debugger;` statement\r\n\r\n## Types of changes\r\n- Updated unit test command and documentation\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [x] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54802",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54802",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54802.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54802.patch",
+ "merged_at": "2023-09-27T01:23:32Z"
+ },
+ "body": "\r\n## What?\r\navoid deprecation error while running test in PHP 8+\r\n\r\n## How?\r\ncalling the function with the missing parameter\r\n\r\n## Testing Instructions\r\n- Run PHP unit tests\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54802/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54802/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33652",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54793",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33652/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33652/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33652/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33652",
- "id": 951614964,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk1OTcxNTA5",
- "number": 33652,
- "title": "Improve display of LinkURL menu and fix spacing.",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54793/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54793/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54793/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54793",
+ "id": 1911800482,
+ "node_id": "PR_kwDOBNHdeM5bI_HR",
+ "number": 54793,
+ "title": "Update CODEOWNERS for `core/image` block",
"user": {
- "login": "mtias",
- "id": 548849,
- "node_id": "MDQ6VXNlcjU0ODg0OQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/548849?v=4",
+ "login": "michalczaplinski",
+ "id": 5417266,
+ "node_id": "MDQ6VXNlcjU0MTcyNjY=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/5417266?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/mtias",
- "html_url": "https://github.com/mtias",
- "followers_url": "https://api.github.com/users/mtias/followers",
- "following_url": "https://api.github.com/users/mtias/following{/other_user}",
- "gists_url": "https://api.github.com/users/mtias/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/mtias/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/mtias/subscriptions",
- "organizations_url": "https://api.github.com/users/mtias/orgs",
- "repos_url": "https://api.github.com/users/mtias/repos",
- "events_url": "https://api.github.com/users/mtias/events{/privacy}",
- "received_events_url": "https://api.github.com/users/mtias/received_events",
+ "url": "https://api.github.com/users/michalczaplinski",
+ "html_url": "https://github.com/michalczaplinski",
+ "followers_url": "https://api.github.com/users/michalczaplinski/followers",
+ "following_url": "https://api.github.com/users/michalczaplinski/following{/other_user}",
+ "gists_url": "https://api.github.com/users/michalczaplinski/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/michalczaplinski/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/michalczaplinski/subscriptions",
+ "organizations_url": "https://api.github.com/users/michalczaplinski/orgs",
+ "repos_url": "https://api.github.com/users/michalczaplinski/repos",
+ "events_url": "https://api.github.com/users/michalczaplinski/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/michalczaplinski/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 531680823,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
- "name": "[Type] Bug",
- "color": "d93f0b",
+ "id": 930001208,
+ "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
+ "name": "[Type] Code Quality",
+ "color": "e5e04b",
"default": false,
- "description": "An existing feature is broken."
+ "description": "Issues or PRs that relate to code quality"
},
{
- "id": 1838782557,
- "node_id": "MDU6TGFiZWwxODM4NzgyNTU3",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Link%20Editing",
- "name": "[Feature] Link Editing",
- "color": "fbca04",
- "default": false,
- "description": "Link components (LinkControl, URLInput) and integrations (RichText link formatting)"
- }
+ "id": 1101518360,
+ "node_id": "MDU6TGFiZWwxMTAxNTE4MzYw",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Image",
+ "name": "[Block] Image",
+ "color": "6767e5",
+ "default": false,
+ "description": "Affects the Image Block"
+ }
],
"state": "closed",
"locked": false,
"assignee": null,
"assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -12338,131 +13439,156 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 6,
- "created_at": "2021-07-23T14:09:31Z",
- "updated_at": "2021-07-30T14:06:43Z",
- "closed_at": "2021-07-30T13:16:01Z",
+ "comments": 0,
+ "created_at": "2023-09-25T15:44:27Z",
+ "updated_at": "2023-09-25T16:48:18Z",
+ "closed_at": "2023-09-25T16:47:56Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33652",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33652",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33652.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33652.patch"
- },
- "body": "There were some spacing issues on the Link URL menu that would make the icon shrink:\r\n\r\n \r\n\r\nWhich is corrected here. It also restores the true width of the icon (24px which was assumed to be 32 before?):\r\n\r\n \r\n\r\nThere's also some alignment issues that this corrects (note the bottom part with the toggle is now aligned):\r\n\r\n \r\n\r\ncc @javierarce \r\n\r\n(The middle one still seems like it has spacing issues on the result list, but given it's there to accommodate the hover effect I think we can leave it be for now.)",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54793",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54793",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54793.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54793.patch",
+ "merged_at": "2023-09-25T16:47:56Z"
+ },
+ "body": "Just adding @artemiomorales and myself to the CODEOWNERS for the Image block to keep an eye on the Lightbox-related issues.",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54793/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54793/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33629",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54792",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33629/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33629/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33629/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33629",
- "id": 950551877,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk1MDgxMzQ4",
- "number": 33629,
- "title": "[Block Library - Query Pagination Numbers]: Fix first page's link",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54792/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54792/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54792/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54792",
+ "id": 1911696692,
+ "node_id": "PR_kwDOBNHdeM5bIoMB",
+ "number": 54792,
+ "title": "[RNMobile] Add optional chaining to `reusableBlock.title` and `reusableBlock.content`",
"user": {
- "login": "ntsekouras",
- "id": 16275880,
- "node_id": "MDQ6VXNlcjE2Mjc1ODgw",
- "avatar_url": "https://avatars.githubusercontent.com/u/16275880?v=4",
+ "login": "SiobhyB",
+ "id": 2998162,
+ "node_id": "MDQ6VXNlcjI5OTgxNjI=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/2998162?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/ntsekouras",
- "html_url": "https://github.com/ntsekouras",
- "followers_url": "https://api.github.com/users/ntsekouras/followers",
- "following_url": "https://api.github.com/users/ntsekouras/following{/other_user}",
- "gists_url": "https://api.github.com/users/ntsekouras/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/ntsekouras/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/ntsekouras/subscriptions",
- "organizations_url": "https://api.github.com/users/ntsekouras/orgs",
- "repos_url": "https://api.github.com/users/ntsekouras/repos",
- "events_url": "https://api.github.com/users/ntsekouras/events{/privacy}",
- "received_events_url": "https://api.github.com/users/ntsekouras/received_events",
+ "url": "https://api.github.com/users/SiobhyB",
+ "html_url": "https://github.com/SiobhyB",
+ "followers_url": "https://api.github.com/users/SiobhyB/followers",
+ "following_url": "https://api.github.com/users/SiobhyB/following{/other_user}",
+ "gists_url": "https://api.github.com/users/SiobhyB/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/SiobhyB/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/SiobhyB/subscriptions",
+ "organizations_url": "https://api.github.com/users/SiobhyB/orgs",
+ "repos_url": "https://api.github.com/users/SiobhyB/repos",
+ "events_url": "https://api.github.com/users/SiobhyB/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/SiobhyB/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 531680823,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
- "name": "[Type] Bug",
- "color": "d93f0b",
+ "id": 930001208,
+ "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
+ "name": "[Type] Code Quality",
+ "color": "e5e04b",
"default": false,
- "description": "An existing feature is broken."
+ "description": "Issues or PRs that relate to code quality"
},
{
- "id": 2479589311,
- "node_id": "MDU6TGFiZWwyNDc5NTg5MzEx",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Query%20Pagination",
- "name": "[Block] Query Pagination",
- "color": "6767e5",
+ "id": 982506020,
+ "node_id": "MDU6TGFiZWw5ODI1MDYwMjA=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20i.e.%20Android%20or%20iOS",
+ "name": "Mobile App - i.e. Android or iOS",
+ "color": "a3ef7a",
"default": false,
- "description": ""
+ "description": "Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)"
+ },
+ {
+ "id": 3639254262,
+ "node_id": "LA_kwDOBNHdeM7Y6pz2",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20Automation",
+ "name": "Mobile App - Automation",
+ "color": "669206",
+ "default": false,
+ "description": "Label used to initiate Mobile App PR Automation"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "ntsekouras",
- "id": 16275880,
- "node_id": "MDQ6VXNlcjE2Mjc1ODgw",
- "avatar_url": "https://avatars.githubusercontent.com/u/16275880?v=4",
+ "login": "SiobhyB",
+ "id": 2998162,
+ "node_id": "MDQ6VXNlcjI5OTgxNjI=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/2998162?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/ntsekouras",
- "html_url": "https://github.com/ntsekouras",
- "followers_url": "https://api.github.com/users/ntsekouras/followers",
- "following_url": "https://api.github.com/users/ntsekouras/following{/other_user}",
- "gists_url": "https://api.github.com/users/ntsekouras/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/ntsekouras/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/ntsekouras/subscriptions",
- "organizations_url": "https://api.github.com/users/ntsekouras/orgs",
- "repos_url": "https://api.github.com/users/ntsekouras/repos",
- "events_url": "https://api.github.com/users/ntsekouras/events{/privacy}",
- "received_events_url": "https://api.github.com/users/ntsekouras/received_events",
+ "url": "https://api.github.com/users/SiobhyB",
+ "html_url": "https://github.com/SiobhyB",
+ "followers_url": "https://api.github.com/users/SiobhyB/followers",
+ "following_url": "https://api.github.com/users/SiobhyB/following{/other_user}",
+ "gists_url": "https://api.github.com/users/SiobhyB/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/SiobhyB/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/SiobhyB/subscriptions",
+ "organizations_url": "https://api.github.com/users/SiobhyB/orgs",
+ "repos_url": "https://api.github.com/users/SiobhyB/repos",
+ "events_url": "https://api.github.com/users/SiobhyB/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/SiobhyB/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "ntsekouras",
- "id": 16275880,
- "node_id": "MDQ6VXNlcjE2Mjc1ODgw",
- "avatar_url": "https://avatars.githubusercontent.com/u/16275880?v=4",
+ "login": "SiobhyB",
+ "id": 2998162,
+ "node_id": "MDQ6VXNlcjI5OTgxNjI=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/2998162?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/ntsekouras",
- "html_url": "https://github.com/ntsekouras",
- "followers_url": "https://api.github.com/users/ntsekouras/followers",
- "following_url": "https://api.github.com/users/ntsekouras/following{/other_user}",
- "gists_url": "https://api.github.com/users/ntsekouras/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/ntsekouras/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/ntsekouras/subscriptions",
- "organizations_url": "https://api.github.com/users/ntsekouras/orgs",
- "repos_url": "https://api.github.com/users/ntsekouras/repos",
- "events_url": "https://api.github.com/users/ntsekouras/events{/privacy}",
- "received_events_url": "https://api.github.com/users/ntsekouras/received_events",
+ "url": "https://api.github.com/users/SiobhyB",
+ "html_url": "https://github.com/SiobhyB",
+ "followers_url": "https://api.github.com/users/SiobhyB/followers",
+ "following_url": "https://api.github.com/users/SiobhyB/following{/other_user}",
+ "gists_url": "https://api.github.com/users/SiobhyB/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/SiobhyB/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/SiobhyB/subscriptions",
+ "organizations_url": "https://api.github.com/users/SiobhyB/orgs",
+ "repos_url": "https://api.github.com/users/SiobhyB/repos",
+ "events_url": "https://api.github.com/users/SiobhyB/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/SiobhyB/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -12485,158 +13611,107 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 2,
- "created_at": "2021-07-22T11:17:15Z",
- "updated_at": "2021-08-09T11:27:46Z",
- "closed_at": "2021-08-09T11:27:23Z",
+ "comments": 3,
+ "created_at": "2023-09-25T14:54:54Z",
+ "updated_at": "2023-09-27T10:45:51Z",
+ "closed_at": "2023-09-27T10:45:20Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33629",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33629",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33629.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33629.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\n\r\nFixes: https://github.com/WordPress/gutenberg/issues/32792\r\n\r\n`paginate_links` doesn't use the provided `format` when the page is `1`. This is great for the main query as it removes the extra query params making the URL shorter, but in the case of multiple custom queries is problematic. It results in returning an empty link which ends up with a link to the current page.\r\n\r\nA way to address this is to add a `fake` query arg with no value that is the same for all custom queries. This way the link is not empty and preserves all the other existent query args.\r\n\r\n\r\nReference: https://developer.wordpress.org/reference/functions/paginate_links/\r\n`$link = str_replace( '%_%', 1 == $n ? '' : $args['format'], $args['base'] );\r\n $link = str_replace( '%#%', $n, $link );`\r\n\r\n\r\n## How has this been tested?\r\n1. In page with many `Query Loop` blocks with `QueryPaginationNumbers` blocks check that by clicking another page number first, the pagination link for the first page (`1`), works as expected.\r\n2. This can be tested with a single custom `Query` in a page as well, but it's better to have multiple `Query Loop` blocks which can be both `custom` and ones that `inherit the global query`.\r\n\r\n## Notes\r\n1. The issue can be replicated only when we have no other query args, because in that case the `link` is not empty - thus the `hacky` approach here to add an empty `query arg`.\r\n\r\nI couldn't find any better alternative so a more elegant solution would be more than welcomed. We could also look at making some changes in core `paginate_links` but needs more exploration there. For example we could extend the `paginate_links` filter by passing the current `page number ($n)` and use this filter in the block??(🤔 ).\r\n\r\n\r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54792",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54792",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54792.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54792.patch",
+ "merged_at": "2023-09-27T10:45:20Z"
+ },
+ "body": "Potential fix for https://github.com/wordpress-mobile/gutenberg-mobile/issues/5496 and https://github.com/wordpress-mobile/WordPress-iOS/issues/21083\r\n\r\n* Gutenberg Mobile PR: https://github.com/wordpress-mobile/gutenberg-mobile/pull/6228\r\n\r\n## What?\r\n\r\nThis PR adds safety checks for the `title` and `content` properties within the `buildReusableBlockInserterItem` and `getUserPatterns` functions.\r\n\r\n## Why?\r\n\r\nWe've received multiple reports of Gutenberg Mobile crashing with the following error:\r\n\r\n```\r\nTypeError: Cannot read property 'raw' of undefined\r\n```\r\n\r\nEven after digging deeply into user reports and available logs, attempts to reproduce the crash have been unsuccessful. The main clues we have to go on are as follows:\r\n\r\n* The most recent logs vary, but usually reference `block-editor/src/store/selectors.js` or `block-editor/src/store/actions.js`.\r\n* The only reference of `raw` in those files is within `block-editor/src/store/selectors.js`.\r\n* While reviewing some logs, I noted that the crash occurs frequently while users are on pages with _unsynced_ patterns, so it feels logical that the reference to `raw` in `getUserPatterns` could be at fault.\r\n* A crash with a similar log went away after adding safety checks to one of those references in https://github.com/WordPress/gutenberg/pull/53721. Though, it's worth noting we're not clear if the crash was resolved or simply \"replaced\" with this newer crash.\r\n\r\nWith this PR, we're making another educated guess at the root cause of the crash in an attempt to fix it.\r\n\r\n## How?\r\n\r\nSimilar to https://github.com/WordPress/gutenberg/pull/53721, I'm proposing optional chaining be added in the three remaining places where `raw` appears without optional chaining in the `block-editor/src/store/selectors.js` file. Based on the code's logic, we can assume that `reusableBlock` will always be defined, so the chaining is added alongside `title` and `content`.\r\n\r\nBy using optional chaining, the code should gracefully handle scenarios where `title` or `content` might be undefined, potentially preventing a TypeError from being thrown.\r\n\r\n## Testing Instructions\r\n\r\n> **Note**\r\n> For testing on the web, Playground's PR previewer can be used: https://playground.wordpress.net/gutenberg.html\r\n\r\nAs the crash isn't easily reproducible, there isn't a straight forward way to ensure this PR fixes it. Instead, the logic of making these change should be verified.\r\n\r\nIn both the app and on the web, we should also ensure that there are no regressions related to both synced and unsynced patterns, especially those with no titles:\r\n\r\n* Publish a new synced or unsynced pattern with no title.\r\n* Begin a new post and add the synced or unsynced pattern to it.\r\n* Verify that there is no issue related to there being no title.\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54792/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54792/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33627",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54789",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33627/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33627/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33627/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33627",
- "id": 950476171,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk1MDE2NTU3",
- "number": 33627,
- "title": "Fix some JAWS bugs",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54789/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54789/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54789/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54789",
+ "id": 1911577751,
+ "node_id": "PR_kwDOBNHdeM5bIOCa",
+ "number": 54789,
+ "title": "Bump tj-actions/changed-files from 39.1.2 to 39.2.0",
"user": {
- "login": "alexstine",
- "id": 13755480,
- "node_id": "MDQ6VXNlcjEzNzU1NDgw",
- "avatar_url": "https://avatars.githubusercontent.com/u/13755480?v=4",
+ "login": "dependabot[bot]",
+ "id": 49699333,
+ "node_id": "MDM6Qm90NDk2OTkzMzM=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/29110?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/alexstine",
- "html_url": "https://github.com/alexstine",
- "followers_url": "https://api.github.com/users/alexstine/followers",
- "following_url": "https://api.github.com/users/alexstine/following{/other_user}",
- "gists_url": "https://api.github.com/users/alexstine/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/alexstine/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/alexstine/subscriptions",
- "organizations_url": "https://api.github.com/users/alexstine/orgs",
- "repos_url": "https://api.github.com/users/alexstine/repos",
- "events_url": "https://api.github.com/users/alexstine/events{/privacy}",
- "received_events_url": "https://api.github.com/users/alexstine/received_events",
- "type": "User",
+ "url": "https://api.github.com/users/dependabot%5Bbot%5D",
+ "html_url": "https://github.com/apps/dependabot",
+ "followers_url": "https://api.github.com/users/dependabot%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dependabot%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/dependabot%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/dependabot%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dependabot%5Bbot%5D/received_events",
+ "type": "Bot",
"site_admin": false
},
"labels": [
{
- "id": 531680823,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
- "name": "[Type] Bug",
- "color": "d93f0b",
- "default": false,
- "description": "An existing feature is broken."
- },
- {
- "id": 546517042,
- "node_id": "MDU6TGFiZWw1NDY1MTcwNDI=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Accessibility%20(a11y)",
- "name": "[Focus] Accessibility (a11y)",
- "color": "655104",
- "default": false,
- "description": "Changes that impact accessibility and need corresponding review (e.g. markup changes)."
- },
- {
- "id": 587343997,
- "node_id": "MDU6TGFiZWw1ODczNDM5OTc=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Status]%20In%20Progress",
- "name": "[Status] In Progress",
- "color": "0052cc",
- "default": false,
- "description": "Tracking issues with work in progress"
- },
- {
- "id": 1086171268,
- "node_id": "MDU6TGFiZWwxMDg2MTcxMjY4",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Needs%20Accessibility%20Feedback",
- "name": "Needs Accessibility Feedback",
- "color": "ffbcbd",
+ "id": 596512821,
+ "node_id": "MDU6TGFiZWw1OTY1MTI4MjE=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Build%20Tooling",
+ "name": "[Type] Build Tooling",
+ "color": "111111",
"default": false,
- "description": ""
+ "description": "Issues or PRs related to build tooling"
},
{
- "id": 1388646432,
- "node_id": "MDU6TGFiZWwxMzg4NjQ2NDMy",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/First-time%20Contributor",
- "name": "First-time Contributor",
- "color": "a0f762",
+ "id": 4662565393,
+ "node_id": "LA_kwDOBNHdeM8AAAABFekaEQ",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/GitHub%20Actions",
+ "name": "GitHub Actions",
+ "color": "000000",
"default": false,
- "description": "Pull request opened by a first-time contributor to Gutenberg repository"
+ "description": "Pull requests that update GitHub Actions code"
}
],
"state": "closed",
"locked": false,
- "assignee": {
- "login": "alexstine",
- "id": 13755480,
- "node_id": "MDQ6VXNlcjEzNzU1NDgw",
- "avatar_url": "https://avatars.githubusercontent.com/u/13755480?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/alexstine",
- "html_url": "https://github.com/alexstine",
- "followers_url": "https://api.github.com/users/alexstine/followers",
- "following_url": "https://api.github.com/users/alexstine/following{/other_user}",
- "gists_url": "https://api.github.com/users/alexstine/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/alexstine/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/alexstine/subscriptions",
- "organizations_url": "https://api.github.com/users/alexstine/orgs",
- "repos_url": "https://api.github.com/users/alexstine/repos",
- "events_url": "https://api.github.com/users/alexstine/events{/privacy}",
- "received_events_url": "https://api.github.com/users/alexstine/received_events",
- "type": "User",
- "site_admin": false
- },
- "assignees": [
- {
- "login": "alexstine",
- "id": 13755480,
- "node_id": "MDQ6VXNlcjEzNzU1NDgw",
- "avatar_url": "https://avatars.githubusercontent.com/u/13755480?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/alexstine",
- "html_url": "https://github.com/alexstine",
- "followers_url": "https://api.github.com/users/alexstine/followers",
- "following_url": "https://api.github.com/users/alexstine/following{/other_user}",
- "gists_url": "https://api.github.com/users/alexstine/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/alexstine/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/alexstine/subscriptions",
- "organizations_url": "https://api.github.com/users/alexstine/orgs",
- "repos_url": "https://api.github.com/users/alexstine/repos",
- "events_url": "https://api.github.com/users/alexstine/events{/privacy}",
- "received_events_url": "https://api.github.com/users/alexstine/received_events",
- "type": "User",
- "site_admin": false
- }
- ],
+ "assignee": null,
+ "assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -12659,86 +13734,216 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 6,
- "created_at": "2021-07-22T09:39:23Z",
- "updated_at": "2021-08-04T07:28:10Z",
- "closed_at": "2021-08-04T07:27:41Z",
+ "comments": 0,
+ "created_at": "2023-09-25T13:59:32Z",
+ "updated_at": "2023-09-28T14:02:18Z",
+ "closed_at": "2023-09-28T14:01:55Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33627",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33627",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33627.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33627.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\n\r\n\r\nFixes #29526\r\n\r\n1. JAWS will now have the ability to use Gutenberg navigation mode and here the blocks announced via Tab.\r\n2.Removed broken speak() function call that was only working part of the time.\r\n3. Remove the wordpress/a11y package. No longer needed.\r\n4.Replace `role=\"group\"` with `role=\"document\"` for better block editing experience in earlier versions of JAWS. \r\n \r\n## How has this been tested?\r\n\r\n\r\n\r\n\r\nI have tested using NVDA and JAWS on Windows 10. I tested using Voiceover on Mac. All seems to be in working order.\r\n\r\n## Screenshots \r\n\r\n## Types of changes\r\n\r\n\r\n\r\n\r\n\r\nHopefully some much needed Bug fixes.\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [x] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54789",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54789",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54789.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54789.patch",
+ "merged_at": "2023-09-28T14:01:55Z"
+ },
+ "body": "Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 39.1.2 to 39.2.0.\n\nRelease notes \nSourced from tj-actions/changed-files's releases .
\n\nv39.2.0 \nWhat's Changed \n\nFull Changelog : https://github.com/tj-actions/changed-files/compare/v39...v39.2.0
\n \n \n\nChangelog \nSourced from tj-actions/changed-files's changelog .
\n\nChangelog \n39.2.0 - (2023-09-22) \n🚀 Features \n\nAdd support for restricting the deleted files output to only deleted directories (e6ce728 ) - (Tonye Jack) \n \n🐛 Bug Fixes \n\nFixed test for windows\n(e94da5a ) - (Tonye Jack) \nFixed the test\n(a721d00 ) - (Tonye Jack) \n \n➕ Add \n\nAdded missing changes and modified dist assets.\n(8af3110 ) - (GitHub Action) \nAdded a test files\n(920856c ) - (Tonye Jack) \nAdded missing changes and modified dist assets.\n(8296c33 ) - (GitHub Action) \nAdded missing changes and modified dist assets.\n(2398551 ) - (GitHub Action) \nAdded missing changes and modified dist assets.\n(ff65504 ) - (GitHub Action) \nAdded missing changes and modified dist assets.\n(2325baa ) - (GitHub Action) \n \n➖ Remove \n\nDeleted the test3 directory\n(cd1e384 ) - (Tonye Jack) \nDeleted a single test file\n(a52f862 ) - (Tonye Jack) \nRemoved unused code\n(c98e6d2 ) - (Tonye Jack) \nRemoved unused code\n(060b3b9 ) - (Tonye Jack) \n \n🔄 Update \n\nUpdated README.md (#1602 ) \n \nCo-authored-by: jackton1 jackton1@users.noreply.github.com (8238a41 ) - (tj-actions[bot])
\n\nUpdate test\n(d2486b4 ) - (Tonye Jack) \nUpdated test\n(e7fd9e5 ) - (Tonye Jack) \n \n\n \n... (truncated)
\n \n\nCommits \n\n8238a41
Updated README.md (#1602 ) \naaf4339
Merge pull request #1601 from tj-actions/feat/add-support-for-restricting-the... \nd2486b4
Update test \ne7fd9e5
Updated test \ne3cc088
Merge branch 'main' into feat/add-support-for-restricting-the-deleted-files-o... \n72d7089
chore(deps): update actions/checkout digest to 8ade135 \ne94da5a
Fixed test for windows \na721d00
Fixed the test \n8af3110
Added missing changes and modified dist assets. \na351a30
Merge 62a23f82b163be6455968457151fa0094ec92a63 into 0b947ed818f8a396b19a26354... \nAdditional commits viewable in compare view \n \n \n \n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tj-actions/changed-files&package-manager=github_actions&previous-version=39.1.2&new-version=39.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options \n \n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n ",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54789/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54789/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33623",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54788",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33623/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33623/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33623/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33623",
- "id": 950451600,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njk0OTk1OTUy",
- "number": 33623,
- "title": "FormTokenField: Avoid error when maxLength value is hit",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54788/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54788/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54788/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54788",
+ "id": 1911577311,
+ "node_id": "PR_kwDOBNHdeM5bIN8K",
+ "number": 54788,
+ "title": "Bump actions/checkout from 4.0.0 to 4.1.0",
"user": {
- "login": "Mamaduka",
- "id": 240569,
- "node_id": "MDQ6VXNlcjI0MDU2OQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "login": "dependabot[bot]",
+ "id": 49699333,
+ "node_id": "MDM6Qm90NDk2OTkzMzM=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/29110?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/Mamaduka",
- "html_url": "https://github.com/Mamaduka",
- "followers_url": "https://api.github.com/users/Mamaduka/followers",
- "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
- "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
- "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
- "repos_url": "https://api.github.com/users/Mamaduka/repos",
- "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
- "type": "User",
+ "url": "https://api.github.com/users/dependabot%5Bbot%5D",
+ "html_url": "https://github.com/apps/dependabot",
+ "followers_url": "https://api.github.com/users/dependabot%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dependabot%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/dependabot%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/dependabot%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dependabot%5Bbot%5D/received_events",
+ "type": "Bot",
"site_admin": false
},
"labels": [
{
- "id": 531680823,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
- "name": "[Type] Bug",
- "color": "d93f0b",
+ "id": 596512821,
+ "node_id": "MDU6TGFiZWw1OTY1MTI4MjE=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Build%20Tooling",
+ "name": "[Type] Build Tooling",
+ "color": "111111",
"default": false,
- "description": "An existing feature is broken."
+ "description": "Issues or PRs related to build tooling"
},
{
- "id": 659839209,
- "node_id": "MDU6TGFiZWw2NTk4MzkyMDk=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20UI%20Components",
- "name": "[Feature] UI Components",
- "color": "fbca04",
+ "id": 4662565393,
+ "node_id": "LA_kwDOBNHdeM8AAAABFekaEQ",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/GitHub%20Actions",
+ "name": "GitHub Actions",
+ "color": "000000",
"default": false,
- "description": ""
- },
- {
- "id": 997392122,
- "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
- "name": "[Package] Components",
+ "description": "Pull requests that update GitHub Actions code"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 0,
+ "created_at": "2023-09-25T13:59:20Z",
+ "updated_at": "2023-09-28T14:02:41Z",
+ "closed_at": "2023-09-28T14:02:18Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54788",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54788",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54788.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54788.patch",
+ "merged_at": "2023-09-28T14:02:18Z"
+ },
+ "body": "Bumps [actions/checkout](https://github.com/actions/checkout) from 4.0.0 to 4.1.0.\n\nRelease notes \nSourced from actions/checkout's releases .
\n\nv4.1.0 \nWhat's Changed \n\nNew Contributors \n\nFull Changelog : https://github.com/actions/checkout/compare/v4.0.0...v4.1.0
\n \n \n\nChangelog \nSourced from actions/checkout's changelog .
\n\nChangelog \nv4.1.0 \n\nv4.0.0 \n\nv3.6.0 \n\nv3.5.3 \n\nv3.5.2 \n\nv3.5.1 \n\nv3.5.0 \n\nv3.4.0 \n\nv3.3.0 \n\nv3.2.0 \n\nv3.1.0 \n\nv3.0.2 \n\n \n... (truncated)
\n \n\nCommits \n\n \n \n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/checkout&package-manager=github_actions&previous-version=4.0.0&new-version=4.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options \n \n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n ",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54788/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54788/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54785",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54785/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54785/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54785/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54785",
+ "id": 1911450976,
+ "node_id": "PR_kwDOBNHdeM5bHyWq",
+ "number": 54785,
+ "title": "Try fixing the flaky 'Toolbar roving tabindex' e2e test",
+ "user": {
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
+ "default": false,
+ "description": "An existing feature does not function as intended"
+ },
+ {
+ "id": 1699237849,
+ "node_id": "MDU6TGFiZWwxNjk5MjM3ODQ5",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20E2E%20Tests",
+ "name": "[Package] E2E Tests",
"color": "ed2572",
"default": false,
- "description": "/packages/components"
+ "description": "/packages/e2e-tests"
}
],
"state": "closed",
@@ -12786,13 +13991,13 @@
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -12815,69 +14020,353 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 2,
- "created_at": "2021-07-22T09:08:55Z",
- "updated_at": "2021-07-28T14:45:54Z",
- "closed_at": "2021-07-28T14:45:29Z",
+ "comments": 4,
+ "created_at": "2023-09-25T12:54:06Z",
+ "updated_at": "2023-10-04T14:18:40Z",
+ "closed_at": "2023-09-26T06:50:32Z",
"author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33623",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33623",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33623.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33623.patch"
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54785",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54785",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54785.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54785.patch",
+ "merged_at": "2023-09-26T06:50:32Z"
+ },
+ "body": "## What?\r\nPR tries to fix the flaky e2e test - `ensures base block toolbars use roving tabindex`, which has been failing recently.\r\n\r\nFailure reports:\r\n\r\n* https://github.com/WordPress/gutenberg/actions/runs/6257434872/job/16989799230\r\n* https://github.com/WordPress/gutenberg/actions/runs/6263647737/job/17008506615?pr=54695#step:7:21\r\n* https://github.com/WordPress/gutenberg/actions/runs/6264468875/job/17011238781?pr=54695\r\n* https://github.com/WordPress/gutenberg/actions/runs/6298998901/job/17098912446\r\n\r\n## Why?\r\nThe [previous attempt](https://github.com/WordPress/gutenberg/pull/51600) wasn't enough; the user preferences sometimes still leak between e2e tests.\r\n\r\n## How?\r\nExplicitly turn off 'fixedToolbar' before running the tests.\r\n\r\n## Testing Instructions\r\n```\r\nnpm run test:e2e:playwright -- test/e2e/specs/editor/various/toolbar-roving-tabindex.spec.js\r\n```\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54785/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54785/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54784",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54784/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54784/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54784/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54784",
+ "id": 1911445934,
+ "node_id": "PR_kwDOBNHdeM5bHxPY",
+ "number": 54784,
+ "title": "Performance Tests: Support the Site Editor's legacy spinner",
+ "user": {
+ "login": "WunderBart",
+ "id": 1451471,
+ "node_id": "MDQ6VXNlcjE0NTE0NzE=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1451471?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/WunderBart",
+ "html_url": "https://github.com/WunderBart",
+ "followers_url": "https://api.github.com/users/WunderBart/followers",
+ "following_url": "https://api.github.com/users/WunderBart/following{/other_user}",
+ "gists_url": "https://api.github.com/users/WunderBart/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/WunderBart/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/WunderBart/subscriptions",
+ "organizations_url": "https://api.github.com/users/WunderBart/orgs",
+ "repos_url": "https://api.github.com/users/WunderBart/repos",
+ "events_url": "https://api.github.com/users/WunderBart/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/WunderBart/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 731693674,
+ "node_id": "MDU6TGFiZWw3MzE2OTM2NzQ=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Performance",
+ "name": "[Type] Performance",
+ "color": "f3f4fe",
+ "default": false,
+ "description": "Related to performance efforts"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "WunderBart",
+ "id": 1451471,
+ "node_id": "MDQ6VXNlcjE0NTE0NzE=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1451471?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/WunderBart",
+ "html_url": "https://github.com/WunderBart",
+ "followers_url": "https://api.github.com/users/WunderBart/followers",
+ "following_url": "https://api.github.com/users/WunderBart/following{/other_user}",
+ "gists_url": "https://api.github.com/users/WunderBart/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/WunderBart/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/WunderBart/subscriptions",
+ "organizations_url": "https://api.github.com/users/WunderBart/orgs",
+ "repos_url": "https://api.github.com/users/WunderBart/repos",
+ "events_url": "https://api.github.com/users/WunderBart/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/WunderBart/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "WunderBart",
+ "id": 1451471,
+ "node_id": "MDQ6VXNlcjE0NTE0NzE=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1451471?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/WunderBart",
+ "html_url": "https://github.com/WunderBart",
+ "followers_url": "https://api.github.com/users/WunderBart/followers",
+ "following_url": "https://api.github.com/users/WunderBart/following{/other_user}",
+ "gists_url": "https://api.github.com/users/WunderBart/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/WunderBart/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/WunderBart/subscriptions",
+ "organizations_url": "https://api.github.com/users/WunderBart/orgs",
+ "repos_url": "https://api.github.com/users/WunderBart/repos",
+ "events_url": "https://api.github.com/users/WunderBart/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/WunderBart/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
},
- "body": "## Description\r\nSets no-operation function as a `onChange` default for the `TokenInput` component.\r\n\r\nCodeSandbox showcasing the issue - https://codesandbox.io/s/formtokenfield-dv9nb\r\n\r\nFixes #18463.\r\n\r\n## How has this been tested?\r\nTemporarily added `maxLength` to the `FlatTermSelector` component for testings, but probably there's a better way to do it.\r\n\r\n## Types of changes\r\nBugfix\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "comments": 4,
+ "created_at": "2023-09-25T12:51:18Z",
+ "updated_at": "2023-09-25T14:35:13Z",
+ "closed_at": "2023-09-25T14:34:48Z",
+ "author_association": "MEMBER",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54784",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54784",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54784.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54784.patch",
+ "merged_at": "2023-09-25T14:34:48Z"
+ },
+ "body": "## What?\r\n\r\nThis is needed for older branches where the current `loader` element is referred to as `spinner`. We need to be able to compare the current code to the older one (e.g. iframed vs legacy canvas) so some elements that are now legacy still need support in the performance tests. \r\n\r\nWithout this selector, this locator resolves immediately because it doesn't find a spinner element. This can cause the consequent canvas body click to timeout (flaky). See the attached trace as an example (taken from a failed CI job):\r\n\r\n👉 [trace.zip](https://github.com/WordPress/gutenberg/files/12715138/trace.zip) (_open via https://trace.playwright.dev/_)",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54784/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54784/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33573",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54782",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33573/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33573/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33573/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33573",
- "id": 948722800,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NjkzNTI0NDk3",
- "number": 33573,
- "title": "Update docs to reflect new automated process for feature grouping",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54782/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54782/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54782/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54782",
+ "id": 1911176810,
+ "node_id": "PR_kwDOBNHdeM5bG1f8",
+ "number": 54782,
+ "title": "Update pattern import menu item",
"user": {
- "login": "getdave",
- "id": 444434,
- "node_id": "MDQ6VXNlcjQ0NDQzNA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/444434?v=4",
+ "login": "jameskoster",
+ "id": 846565,
+ "node_id": "MDQ6VXNlcjg0NjU2NQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/846565?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/getdave",
- "html_url": "https://github.com/getdave",
- "followers_url": "https://api.github.com/users/getdave/followers",
- "following_url": "https://api.github.com/users/getdave/following{/other_user}",
- "gists_url": "https://api.github.com/users/getdave/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/getdave/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/getdave/subscriptions",
- "organizations_url": "https://api.github.com/users/getdave/orgs",
- "repos_url": "https://api.github.com/users/getdave/repos",
- "events_url": "https://api.github.com/users/getdave/events{/privacy}",
- "received_events_url": "https://api.github.com/users/getdave/received_events",
+ "url": "https://api.github.com/users/jameskoster",
+ "html_url": "https://github.com/jameskoster",
+ "followers_url": "https://api.github.com/users/jameskoster/followers",
+ "following_url": "https://api.github.com/users/jameskoster/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jameskoster/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jameskoster/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jameskoster/subscriptions",
+ "organizations_url": "https://api.github.com/users/jameskoster/orgs",
+ "repos_url": "https://api.github.com/users/jameskoster/repos",
+ "events_url": "https://api.github.com/users/jameskoster/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jameskoster/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 567484057,
- "node_id": "MDU6TGFiZWw1Njc0ODQwNTc=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Documentation",
- "name": "[Type] Developer Documentation",
- "color": "bfd4f2",
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
+ "default": false,
+ "description": "An existing feature does not function as intended"
+ },
+ {
+ "id": 3500693107,
+ "node_id": "LA_kwDOBNHdeM7QqFZz",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Pattern",
+ "name": "[Block] Pattern",
+ "color": "6767e5",
"default": false,
- "description": ""
+ "description": "Affects the Patterns Block"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
},
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 9,
+ "created_at": "2023-09-25T10:28:52Z",
+ "updated_at": "2023-10-05T11:16:35Z",
+ "closed_at": "2023-09-26T09:39:37Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54782",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54782",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54782.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54782.patch",
+ "merged_at": "2023-09-26T09:39:37Z"
+ },
+ "body": "Follow-up to https://github.com/WordPress/gutenberg/pull/54337.\r\n\r\n## What?\r\nUpdate the appearance / label of the pattern import menu item.\r\n\r\n### Before\r\n \r\n\r\n\r\n### After\r\n \r\n\r\n## Why?\r\nThe `upload` icon is more indicative of the action. The shorter label is less noisy and a bit easier to interpret at a glance. ",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54782/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54782/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54775",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54775/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54775/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54775/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54775",
+ "id": 1910951375,
+ "node_id": "PR_kwDOBNHdeM5bGFNj",
+ "number": 54775,
+ "title": "Upgrade wp-prettier to v3.0.3 (final)",
+ "user": {
+ "login": "jsnajdr",
+ "id": 664258,
+ "node_id": "MDQ6VXNlcjY2NDI1OA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/664258?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jsnajdr",
+ "html_url": "https://github.com/jsnajdr",
+ "followers_url": "https://api.github.com/users/jsnajdr/followers",
+ "following_url": "https://api.github.com/users/jsnajdr/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jsnajdr/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jsnajdr/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jsnajdr/subscriptions",
+ "organizations_url": "https://api.github.com/users/jsnajdr/orgs",
+ "repos_url": "https://api.github.com/users/jsnajdr/repos",
+ "events_url": "https://api.github.com/users/jsnajdr/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jsnajdr/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
{
"id": 596512821,
"node_id": "MDU6TGFiZWw1OTY1MTI4MjE=",
@@ -12885,70 +14374,7524 @@
"name": "[Type] Build Tooling",
"color": "111111",
"default": false,
- "description": ""
- },
- {
- "id": 2551400612,
- "node_id": "MDU6TGFiZWwyNTUxNDAwNjEy",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/developer-docs",
- "name": "developer-docs",
- "color": "1d76db",
- "default": false,
- "description": "Issues that impact the block editor developer documentation site"
+ "description": "Issues or PRs related to build tooling"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "getdave",
- "id": 444434,
- "node_id": "MDQ6VXNlcjQ0NDQzNA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/444434?v=4",
+ "login": "jsnajdr",
+ "id": 664258,
+ "node_id": "MDQ6VXNlcjY2NDI1OA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/664258?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/getdave",
- "html_url": "https://github.com/getdave",
- "followers_url": "https://api.github.com/users/getdave/followers",
- "following_url": "https://api.github.com/users/getdave/following{/other_user}",
- "gists_url": "https://api.github.com/users/getdave/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/getdave/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/getdave/subscriptions",
- "organizations_url": "https://api.github.com/users/getdave/orgs",
- "repos_url": "https://api.github.com/users/getdave/repos",
- "events_url": "https://api.github.com/users/getdave/events{/privacy}",
- "received_events_url": "https://api.github.com/users/getdave/received_events",
+ "url": "https://api.github.com/users/jsnajdr",
+ "html_url": "https://github.com/jsnajdr",
+ "followers_url": "https://api.github.com/users/jsnajdr/followers",
+ "following_url": "https://api.github.com/users/jsnajdr/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jsnajdr/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jsnajdr/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jsnajdr/subscriptions",
+ "organizations_url": "https://api.github.com/users/jsnajdr/orgs",
+ "repos_url": "https://api.github.com/users/jsnajdr/repos",
+ "events_url": "https://api.github.com/users/jsnajdr/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jsnajdr/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "getdave",
- "id": 444434,
- "node_id": "MDQ6VXNlcjQ0NDQzNA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/444434?v=4",
+ "login": "jsnajdr",
+ "id": 664258,
+ "node_id": "MDQ6VXNlcjY2NDI1OA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/664258?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/getdave",
- "html_url": "https://github.com/getdave",
- "followers_url": "https://api.github.com/users/getdave/followers",
- "following_url": "https://api.github.com/users/getdave/following{/other_user}",
- "gists_url": "https://api.github.com/users/getdave/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/getdave/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/getdave/subscriptions",
- "organizations_url": "https://api.github.com/users/getdave/orgs",
- "repos_url": "https://api.github.com/users/getdave/repos",
- "events_url": "https://api.github.com/users/getdave/events{/privacy}",
- "received_events_url": "https://api.github.com/users/getdave/received_events",
+ "url": "https://api.github.com/users/jsnajdr",
+ "html_url": "https://github.com/jsnajdr",
+ "followers_url": "https://api.github.com/users/jsnajdr/followers",
+ "following_url": "https://api.github.com/users/jsnajdr/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jsnajdr/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jsnajdr/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jsnajdr/subscriptions",
+ "organizations_url": "https://api.github.com/users/jsnajdr/orgs",
+ "repos_url": "https://api.github.com/users/jsnajdr/repos",
+ "events_url": "https://api.github.com/users/jsnajdr/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jsnajdr/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 4,
+ "created_at": "2023-09-25T08:23:47Z",
+ "updated_at": "2023-09-25T11:41:13Z",
+ "closed_at": "2023-09-25T11:40:46Z",
+ "author_association": "MEMBER",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54775",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54775",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54775.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54775.patch",
+ "merged_at": "2023-09-25T11:40:46Z"
+ },
+ "body": "Fixes https://github.com/WordPress/gutenberg/issues/54749.\r\n\r\nFinalizes the Prettier upgrade to 3.0.3. After a week without discovering any new bugs, I released final 3.0.3 version of `wp-prettier` (previous releases were betas), and updated Gutenberg's `package.json` files to use the final version.\r\n\r\nI also added the reformatting commits for 3.0.3 (#54539) and 2.8.5 (#49258) to the `.git-blame-ignore-revs` file.",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54775/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54775/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54773",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54773/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54773/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54773/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54773",
+ "id": 1910571897,
+ "node_id": "PR_kwDOBNHdeM5bEzDo",
+ "number": 54773,
+ "title": "Search block: update alignment and icon button width",
+ "user": {
+ "login": "ramonjd",
+ "id": 6458278,
+ "node_id": "MDQ6VXNlcjY0NTgyNzg=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/6458278?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ramonjd",
+ "html_url": "https://github.com/ramonjd",
+ "followers_url": "https://api.github.com/users/ramonjd/followers",
+ "following_url": "https://api.github.com/users/ramonjd/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ramonjd/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ramonjd/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ramonjd/subscriptions",
+ "organizations_url": "https://api.github.com/users/ramonjd/orgs",
+ "repos_url": "https://api.github.com/users/ramonjd/repos",
+ "events_url": "https://api.github.com/users/ramonjd/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ramonjd/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
+ "default": false,
+ "description": "An existing feature does not function as intended"
+ },
+ {
+ "id": 1539734701,
+ "node_id": "MDU6TGFiZWwxNTM5NzM0NzAx",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Search",
+ "name": "[Block] Search",
+ "color": "6767e5",
+ "default": false,
+ "description": "Affects the Search Block - used to display a search field"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "ramonjd",
+ "id": 6458278,
+ "node_id": "MDQ6VXNlcjY0NTgyNzg=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/6458278?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ramonjd",
+ "html_url": "https://github.com/ramonjd",
+ "followers_url": "https://api.github.com/users/ramonjd/followers",
+ "following_url": "https://api.github.com/users/ramonjd/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ramonjd/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ramonjd/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ramonjd/subscriptions",
+ "organizations_url": "https://api.github.com/users/ramonjd/orgs",
+ "repos_url": "https://api.github.com/users/ramonjd/repos",
+ "events_url": "https://api.github.com/users/ramonjd/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ramonjd/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "ramonjd",
+ "id": 6458278,
+ "node_id": "MDQ6VXNlcjY0NTgyNzg=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/6458278?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ramonjd",
+ "html_url": "https://github.com/ramonjd",
+ "followers_url": "https://api.github.com/users/ramonjd/followers",
+ "following_url": "https://api.github.com/users/ramonjd/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ramonjd/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ramonjd/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ramonjd/subscriptions",
+ "organizations_url": "https://api.github.com/users/ramonjd/orgs",
+ "repos_url": "https://api.github.com/users/ramonjd/repos",
+ "events_url": "https://api.github.com/users/ramonjd/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ramonjd/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 2,
+ "created_at": "2023-09-25T03:09:55Z",
+ "updated_at": "2023-09-26T03:16:56Z",
+ "closed_at": "2023-09-26T03:16:33Z",
+ "author_association": "MEMBER",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54773",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54773",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54773.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54773.patch",
+ "merged_at": "2023-09-26T03:16:33Z"
+ },
+ "body": "## What?\r\n1. Give the rich text button a CSS declaration of `text:center`\r\n2. Remove max-width change for buttons with icons only so that it doesn't affect search button icons in the header or in narrow widths\r\n\r\n\r\n## Why?\r\n1. In the editor, the button text was aligned left because it was being rendered as a text field (and not a button). In the frontend the text is centered because it's a button 😄 \r\n2. For search buttons with icons only, the `-100px` in the `calc()` formula was causing the button to be a bit squished\r\n\r\n## Testing Instructions\r\nI'm using 2023 to test, though this should work in other block themes.\r\n\r\nAdd a search block to a page. Use text for the button label and add a break point so you can see how the text is aligned.\r\n\r\nSave the page. The search block button text alignment in the editor should match the frontend.\r\n\r\n \r\n \r\n\r\nAdd a search block to a navigation block or in the header, or elsewhere where space is constricted.\r\n\r\nSelect button with icon and button only options for the search block. Save and check the frontend:\r\n\r\n| Before | After |\r\n| ------------- | ------------- |\r\n| | |\r\n\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54773/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54773/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54772",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54772/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54772/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54772/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54772",
+ "id": 1910567289,
+ "node_id": "PR_kwDOBNHdeM5bEyEC",
+ "number": 54772,
+ "title": "Fix a broken MD link in callout",
+ "user": {
+ "login": "leemyongpakvn",
+ "id": 3759923,
+ "node_id": "MDQ6VXNlcjM3NTk5MjM=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/3759923?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/leemyongpakvn",
+ "html_url": "https://github.com/leemyongpakvn",
+ "followers_url": "https://api.github.com/users/leemyongpakvn/followers",
+ "following_url": "https://api.github.com/users/leemyongpakvn/following{/other_user}",
+ "gists_url": "https://api.github.com/users/leemyongpakvn/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/leemyongpakvn/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/leemyongpakvn/subscriptions",
+ "organizations_url": "https://api.github.com/users/leemyongpakvn/orgs",
+ "repos_url": "https://api.github.com/users/leemyongpakvn/repos",
+ "events_url": "https://api.github.com/users/leemyongpakvn/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/leemyongpakvn/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 567484057,
+ "node_id": "MDU6TGFiZWw1Njc0ODQwNTc=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Developer%20Documentation",
+ "name": "[Type] Developer Documentation",
+ "color": "bfd4f2",
+ "default": false,
+ "description": "Documentation for developers"
+ },
+ {
+ "id": 1388646432,
+ "node_id": "MDU6TGFiZWwxMzg4NjQ2NDMy",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/First-time%20Contributor",
+ "name": "First-time Contributor",
+ "color": "a0f762",
+ "default": false,
+ "description": "Pull request opened by a first-time contributor to Gutenberg repository"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 2,
+ "created_at": "2023-09-25T03:03:58Z",
+ "updated_at": "2023-09-25T11:58:31Z",
+ "closed_at": "2023-09-25T11:58:01Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54772",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54772",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54772.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54772.patch",
+ "merged_at": "2023-09-25T11:58:01Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\nMarkDown link broken in callout div. Use pure HTML link to solve it.\r\n\r\n## Why?\r\n\r\n\r\n## How?\r\n\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\nUse MD editor Preview or Open https://developer.wordpress.org/block-editor/how-to-guides/block-tutorial/writing-your-first-block-type/ to see how MD link broken.\r\n\r\n### Testing Instructions for Keyboard\r\n\r\n\r\n## Screenshots or screencast \r\n![MD_link_broken_in_Callout](https://github.com/WordPress/gutenberg/assets/3759923/e7c40259-758b-47b1-a839-1c0a42544309)\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54772/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54772/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54769",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54769/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54769/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54769/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54769",
+ "id": 1910481291,
+ "node_id": "PR_kwDOBNHdeM5bEf7l",
+ "number": 54769,
+ "title": "Site Editor: remove `overflow: hidden` from the entity title in the site editor sidebar",
+ "user": {
+ "login": "ramonjd",
+ "id": 6458278,
+ "node_id": "MDQ6VXNlcjY0NTgyNzg=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/6458278?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ramonjd",
+ "html_url": "https://github.com/ramonjd",
+ "followers_url": "https://api.github.com/users/ramonjd/followers",
+ "following_url": "https://api.github.com/users/ramonjd/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ramonjd/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ramonjd/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ramonjd/subscriptions",
+ "organizations_url": "https://api.github.com/users/ramonjd/orgs",
+ "repos_url": "https://api.github.com/users/ramonjd/repos",
+ "events_url": "https://api.github.com/users/ramonjd/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ramonjd/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
+ "default": false,
+ "description": "An existing feature does not function as intended"
+ },
+ {
+ "id": 2706102777,
+ "node_id": "MDU6TGFiZWwyNzA2MTAyNzc3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Site%20Editor",
+ "name": "[Feature] Site Editor",
+ "color": "fbca04",
+ "default": false,
+ "description": "Related to the overarching Site Editor (formerly \"full site editing\")"
+ },
+ {
+ "id": 5999214352,
+ "node_id": "LA_kwDOBNHdeM8AAAABZZS_EA",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/OS%20Issues",
+ "name": "OS Issues",
+ "color": "0052cc",
+ "default": false,
+ "description": "Issues or PRs that are related to OS specific problems"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "ramonjd",
+ "id": 6458278,
+ "node_id": "MDQ6VXNlcjY0NTgyNzg=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/6458278?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ramonjd",
+ "html_url": "https://github.com/ramonjd",
+ "followers_url": "https://api.github.com/users/ramonjd/followers",
+ "following_url": "https://api.github.com/users/ramonjd/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ramonjd/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ramonjd/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ramonjd/subscriptions",
+ "organizations_url": "https://api.github.com/users/ramonjd/orgs",
+ "repos_url": "https://api.github.com/users/ramonjd/repos",
+ "events_url": "https://api.github.com/users/ramonjd/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ramonjd/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "ramonjd",
+ "id": 6458278,
+ "node_id": "MDQ6VXNlcjY0NTgyNzg=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/6458278?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ramonjd",
+ "html_url": "https://github.com/ramonjd",
+ "followers_url": "https://api.github.com/users/ramonjd/followers",
+ "following_url": "https://api.github.com/users/ramonjd/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ramonjd/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ramonjd/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ramonjd/subscriptions",
+ "organizations_url": "https://api.github.com/users/ramonjd/orgs",
+ "repos_url": "https://api.github.com/users/ramonjd/repos",
+ "events_url": "https://api.github.com/users/ramonjd/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ramonjd/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 4,
+ "created_at": "2023-09-25T01:09:59Z",
+ "updated_at": "2023-10-03T23:36:38Z",
+ "closed_at": "2023-09-25T06:04:13Z",
+ "author_association": "MEMBER",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54769",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54769",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54769.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54769.patch",
+ "merged_at": "2023-09-25T06:04:13Z"
+ },
+ "body": "## What?\r\nResolves https://github.com/WordPress/gutenberg/issues/52218\r\n\r\nRemoving `overflow: hidden` from `.edit-site-sidebar-navigation-screen__title`, which is the entity title in the site editor sidebar.\r\n\r\n## Why?\r\n1. It doesn't appear to be required to hide text overflow in general (checked in modern browsers)\r\n2. In Windows Edge the descender segment of letters are cut off, e.g., for \"g\", \"p\", \"y\" and so on.\r\n\r\n\r\n\r\n## Testing Instructions\r\n1. In Windows Edge, head on over to `/wp-admin/site-editor.php` and view a single entity (page, template, pattern etc) that has characters with descenders. \r\n2. Check those descenders are not cut off.\r\n3. Try with a long entity title and in narrow viewport widths\r\n4. Ensure there are no side-effects for other major browsers.\r\n\r\n### Testing Instructions for Keyboard\r\n\r\n\r\n## Screenshots or screencast \r\n\r\n| Before | After |\r\n| ------------- | ------------- |\r\n| | |\r\n| | |\r\n\r\n\r\nAlso check long entity titles:\r\n\r\n \r\n\r\nAnd in mobile view:\r\n\r\n\r\nhttps://github.com/WordPress/gutenberg/assets/6458278/a061b3fa-b4c3-43f2-bb89-bd1adb65c26f\r\n\r\n\r\n\r\n\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54769/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54769/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54765",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54765/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54765/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54765/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54765",
+ "id": 1910168419,
+ "node_id": "PR_kwDOBNHdeM5bDh5X",
+ "number": 54765,
+ "title": "`SlotFill`: Pass `Component` instance to unregisterSlot.",
+ "user": {
+ "login": "torounit",
+ "id": 1908815,
+ "node_id": "MDQ6VXNlcjE5MDg4MTU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1908815?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/torounit",
+ "html_url": "https://github.com/torounit",
+ "followers_url": "https://api.github.com/users/torounit/followers",
+ "following_url": "https://api.github.com/users/torounit/following{/other_user}",
+ "gists_url": "https://api.github.com/users/torounit/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/torounit/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/torounit/subscriptions",
+ "organizations_url": "https://api.github.com/users/torounit/orgs",
+ "repos_url": "https://api.github.com/users/torounit/repos",
+ "events_url": "https://api.github.com/users/torounit/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/torounit/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
+ "default": false,
+ "description": "An existing feature does not function as intended"
+ },
+ {
+ "id": 997392122,
+ "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
+ "name": "[Package] Components",
+ "color": "ed2572",
+ "default": false,
+ "description": "/packages/components"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "torounit",
+ "id": 1908815,
+ "node_id": "MDQ6VXNlcjE5MDg4MTU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1908815?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/torounit",
+ "html_url": "https://github.com/torounit",
+ "followers_url": "https://api.github.com/users/torounit/followers",
+ "following_url": "https://api.github.com/users/torounit/following{/other_user}",
+ "gists_url": "https://api.github.com/users/torounit/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/torounit/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/torounit/subscriptions",
+ "organizations_url": "https://api.github.com/users/torounit/orgs",
+ "repos_url": "https://api.github.com/users/torounit/repos",
+ "events_url": "https://api.github.com/users/torounit/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/torounit/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "torounit",
+ "id": 1908815,
+ "node_id": "MDQ6VXNlcjE5MDg4MTU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1908815?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/torounit",
+ "html_url": "https://github.com/torounit",
+ "followers_url": "https://api.github.com/users/torounit/followers",
+ "following_url": "https://api.github.com/users/torounit/following{/other_user}",
+ "gists_url": "https://api.github.com/users/torounit/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/torounit/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/torounit/subscriptions",
+ "organizations_url": "https://api.github.com/users/torounit/orgs",
+ "repos_url": "https://api.github.com/users/torounit/repos",
+ "events_url": "https://api.github.com/users/torounit/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/torounit/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 2,
+ "created_at": "2023-09-24T09:29:14Z",
+ "updated_at": "2023-09-28T02:48:57Z",
+ "closed_at": "2023-09-28T02:48:29Z",
+ "author_association": "MEMBER",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54765",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54765",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54765.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54765.patch",
+ "merged_at": "2023-09-28T02:48:29Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\npart of https://github.com/WordPress/gutenberg/pull/51350.\r\n\r\nhttps://github.com/WordPress/gutenberg/pull/51350#discussion_r1239378390\r\n\r\nWhen the slot name is updated, unregisterSlot is executed and the instance is unregistered, but it is not working correctly because the component instance is not passed. Fix this issue.\r\n\r\n## Why?\r\n\r\n\r\nbug fix.\r\n\r\n## How?\r\n\r\n\r\nadd `this` .\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n\r\n```\r\nnpm run test:unit -- --testPathPattern packages/components/src/slot-fill\r\n```\r\n\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54765/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54765/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54760",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54760/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54760/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54760/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54760",
+ "id": 1909956841,
+ "node_id": "PR_kwDOBNHdeM5bC4p7",
+ "number": 54760,
+ "title": "test: E2E tests require supported iOS version",
+ "user": {
+ "login": "dcalhoun",
+ "id": 438664,
+ "node_id": "MDQ6VXNlcjQzODY2NA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/438664?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/dcalhoun",
+ "html_url": "https://github.com/dcalhoun",
+ "followers_url": "https://api.github.com/users/dcalhoun/followers",
+ "following_url": "https://api.github.com/users/dcalhoun/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dcalhoun/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dcalhoun/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dcalhoun/subscriptions",
+ "organizations_url": "https://api.github.com/users/dcalhoun/orgs",
+ "repos_url": "https://api.github.com/users/dcalhoun/repos",
+ "events_url": "https://api.github.com/users/dcalhoun/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dcalhoun/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 615503111,
+ "node_id": "MDU6TGFiZWw2MTU1MDMxMTE=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Automated%20Testing",
+ "name": "[Type] Automated Testing",
+ "color": "111111",
+ "default": false,
+ "description": "Testing infrastructure changes impacting the execution of end-to-end (E2E) and/or unit tests."
+ },
+ {
+ "id": 982506020,
+ "node_id": "MDU6TGFiZWw5ODI1MDYwMjA=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20i.e.%20Android%20or%20iOS",
+ "name": "Mobile App - i.e. Android or iOS",
+ "color": "a3ef7a",
+ "default": false,
+ "description": "Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)"
+ },
+ {
+ "id": 3639254262,
+ "node_id": "LA_kwDOBNHdeM7Y6pz2",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20Automation",
+ "name": "Mobile App - Automation",
+ "color": "669206",
+ "default": false,
+ "description": "Label used to initiate Mobile App PR Automation"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "dcalhoun",
+ "id": 438664,
+ "node_id": "MDQ6VXNlcjQzODY2NA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/438664?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/dcalhoun",
+ "html_url": "https://github.com/dcalhoun",
+ "followers_url": "https://api.github.com/users/dcalhoun/followers",
+ "following_url": "https://api.github.com/users/dcalhoun/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dcalhoun/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dcalhoun/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dcalhoun/subscriptions",
+ "organizations_url": "https://api.github.com/users/dcalhoun/orgs",
+ "repos_url": "https://api.github.com/users/dcalhoun/repos",
+ "events_url": "https://api.github.com/users/dcalhoun/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dcalhoun/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "dcalhoun",
+ "id": 438664,
+ "node_id": "MDQ6VXNlcjQzODY2NA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/438664?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/dcalhoun",
+ "html_url": "https://github.com/dcalhoun",
+ "followers_url": "https://api.github.com/users/dcalhoun/followers",
+ "following_url": "https://api.github.com/users/dcalhoun/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dcalhoun/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dcalhoun/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dcalhoun/subscriptions",
+ "organizations_url": "https://api.github.com/users/dcalhoun/orgs",
+ "repos_url": "https://api.github.com/users/dcalhoun/repos",
+ "events_url": "https://api.github.com/users/dcalhoun/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dcalhoun/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 2,
+ "created_at": "2023-09-23T18:15:03Z",
+ "updated_at": "2023-09-25T17:12:49Z",
+ "closed_at": "2023-09-25T17:12:23Z",
+ "author_association": "MEMBER",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54760",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54760",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54760.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54760.patch",
+ "merged_at": "2023-09-25T17:12:23Z"
+ },
+ "body": "\n\n## What?\n\nUpdate local Appium capabilities utilities to require a simulator with a\nsupported iOS version.\n\n## Why?\n\nAppium 1 does not support newer versions of iOS. This improves automatic\nsimulator selection logic to avoid loading incompatible iOS simulators\nand provide helpful error messages during compatibility failures.\n\nThis logic can be removed or simplified once we upgrade to Appium 2.\n\n\n## How?\n\nLimit automatic iOS simulator selection to compatible OS versions, e.g. iOS 15.\n\n## Testing Instructions\n\n\n\n\n1. Ensure a compatible iOS 15 simulator is installed on your machine.\n1. Check out this branch.\n1. `npm run native test:e2e:ios:local -- gutenberg-editor-heading-@canary.test.js`\n1. Verify the tests succeed on an iOS simulator.\n\n### Testing Instructions for Keyboard\n\nn/a\n\n## Screenshots or screencast \nn/a\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54760/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54760/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54744",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54744/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54744/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54744/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54744",
+ "id": 1909391762,
+ "node_id": "PR_kwDOBNHdeM5bBEqR",
+ "number": 54744,
+ "title": "(chore) Revert the 16.7 RC2 release in order to release it again due to wrong changelog",
+ "user": {
+ "login": "fullofcaffeine",
+ "id": 81248,
+ "node_id": "MDQ6VXNlcjgxMjQ4",
+ "avatar_url": "https://avatars.githubusercontent.com/u/81248?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/fullofcaffeine",
+ "html_url": "https://github.com/fullofcaffeine",
+ "followers_url": "https://api.github.com/users/fullofcaffeine/followers",
+ "following_url": "https://api.github.com/users/fullofcaffeine/following{/other_user}",
+ "gists_url": "https://api.github.com/users/fullofcaffeine/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/fullofcaffeine/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/fullofcaffeine/subscriptions",
+ "organizations_url": "https://api.github.com/users/fullofcaffeine/orgs",
+ "repos_url": "https://api.github.com/users/fullofcaffeine/repos",
+ "events_url": "https://api.github.com/users/fullofcaffeine/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/fullofcaffeine/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 3,
+ "created_at": "2023-09-22T19:03:43Z",
+ "updated_at": "2023-09-22T19:43:49Z",
+ "closed_at": "2023-09-22T19:30:09Z",
+ "author_association": "MEMBER",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54744",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54744",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54744.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54744.patch",
+ "merged_at": "2023-09-22T19:30:08Z"
+ },
+ "body": "## What?\r\n\r\nRevert the changelog and version bump commits in trunk.\r\n\r\n## Why?\r\n\r\nI released 16.7 RC2 today, but the changelog generated was wrong due to two commits listed there not being included in the release branch:\r\n\r\nhttps://github.com/WordPress/gutenberg/pull/52674 and https://github.com/WordPress/gutenberg/pull/54720., but they were still listed in the changelog.\r\n\r\nSince it's an RC, I think the cleanest way to go is to revert and release it again, or the asset s attached in the release will still contain the wrong changelog.\r\n\r\n## How?\r\n\r\n- Revert the changelog and bump commits for 16.7 RC2 in the `trunk` branch (this PR)\r\n- Revert the equivalent commits in the release/16.7 branch (already done, see linked commits below)\r\n- Remove the 16.7.2-rc.2 tag (done)\r\n- Remove the 16.7.2-rc.2 release (done)\r\n- Release again (Build Plugin Zip) (todo)\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n\r\n### Testing Instructions for Keyboard\r\n\r\n\r\n## Screenshots or screencast \r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54744/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54744/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54743",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54743/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54743/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54743/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54743",
+ "id": 1909274603,
+ "node_id": "PR_kwDOBNHdeM5bAsBl",
+ "number": 54743,
+ "title": "`Modal`: Accessibly hide/show outer modal when nested",
+ "user": {
+ "login": "stokesman",
+ "id": 9000376,
+ "node_id": "MDQ6VXNlcjkwMDAzNzY=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/9000376?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/stokesman",
+ "html_url": "https://github.com/stokesman",
+ "followers_url": "https://api.github.com/users/stokesman/followers",
+ "following_url": "https://api.github.com/users/stokesman/following{/other_user}",
+ "gists_url": "https://api.github.com/users/stokesman/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/stokesman/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/stokesman/subscriptions",
+ "organizations_url": "https://api.github.com/users/stokesman/orgs",
+ "repos_url": "https://api.github.com/users/stokesman/repos",
+ "events_url": "https://api.github.com/users/stokesman/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/stokesman/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 546517042,
+ "node_id": "MDU6TGFiZWw1NDY1MTcwNDI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Focus]%20Accessibility%20(a11y)",
+ "name": "[Focus] Accessibility (a11y)",
+ "color": "efde5d",
+ "default": false,
+ "description": "Changes that impact accessibility and need corresponding review (e.g. markup changes)."
+ },
+ {
+ "id": 997392122,
+ "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
+ "name": "[Package] Components",
+ "color": "ed2572",
+ "default": false,
+ "description": "/packages/components"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "stokesman",
+ "id": 9000376,
+ "node_id": "MDQ6VXNlcjkwMDAzNzY=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/9000376?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/stokesman",
+ "html_url": "https://github.com/stokesman",
+ "followers_url": "https://api.github.com/users/stokesman/followers",
+ "following_url": "https://api.github.com/users/stokesman/following{/other_user}",
+ "gists_url": "https://api.github.com/users/stokesman/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/stokesman/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/stokesman/subscriptions",
+ "organizations_url": "https://api.github.com/users/stokesman/orgs",
+ "repos_url": "https://api.github.com/users/stokesman/repos",
+ "events_url": "https://api.github.com/users/stokesman/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/stokesman/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "stokesman",
+ "id": 9000376,
+ "node_id": "MDQ6VXNlcjkwMDAzNzY=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/9000376?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/stokesman",
+ "html_url": "https://github.com/stokesman",
+ "followers_url": "https://api.github.com/users/stokesman/followers",
+ "following_url": "https://api.github.com/users/stokesman/following{/other_user}",
+ "gists_url": "https://api.github.com/users/stokesman/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/stokesman/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/stokesman/subscriptions",
+ "organizations_url": "https://api.github.com/users/stokesman/orgs",
+ "repos_url": "https://api.github.com/users/stokesman/repos",
+ "events_url": "https://api.github.com/users/stokesman/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/stokesman/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 2,
+ "created_at": "2023-09-22T17:25:31Z",
+ "updated_at": "2023-09-28T16:22:21Z",
+ "closed_at": "2023-09-28T16:21:58Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54743",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54743",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54743.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54743.patch",
+ "merged_at": "2023-09-28T16:21:58Z"
+ },
+ "body": "## What?\r\nUpdates the existing logic for accessibly isolating the `Modal` component so that it works for nested modals. More specifically, when the nested modal is opened the \"opener\" modal has its `aria-hidden` attribute set to `\"true\"`.\r\n\r\n## Why?\r\nIt seems like how it’s supposed to work and we added a test for it in #54569.\r\n\r\n## How?\r\n- Executes the isolation logic every time a `Modal` mounts/unmounts instead of only for the first/final modal.\r\n- Revises tracking of hidden elements to use a 2d array to support levels of isolation.\r\n\r\n## Testing Instructions\r\n1. Open a post or page.\r\n2. Paste and execute the following snippet in the javascript console.\r\n```javascript\r\n( ( {\r\n\tcomponents: { Button, Modal },\r\n\teditPost: { PluginDocumentSettingPanel },\r\n\telement: { createElement: el, Fragment, useState },\r\n\tplugins: { registerPlugin }\r\n} ) => {\r\n\tregisterPlugin( 'modal-nesting-demo', {\r\n\t\trender: () => el( PluginDocumentSettingPanel, {\r\n\t\t\tname: 'modal-nesting-demo',\r\n\t\t\ttitle: 'Modal nesting demo',\r\n\t\t\tchildren: el( ModalNesting )\r\n\t\t} ),\r\n\t} );\r\n\r\n\tfunction ModalNesting() {\r\n\t\tconst [ isOpen, setOpen ] = useState( false );\r\n\t\tconst [ isInnerOpen, setIsInnerOpen ] = useState( false );\r\n\t\treturn (\r\n\t\t\tel( Fragment, null,\r\n\t\t\t\tel( Button, { variant: \"primary\", onClick: () => setOpen( true ) }, \"Open Modal\" ),\r\n\t\t\t\tisOpen && (\r\n\t\t\t\t\tel( Modal, {\r\n\t\t\t\t\t\tonRequestClose: () => setOpen( false ),\r\n\t\t\t\t\t\tstyle: { maxWidth: '600px' },\r\n\t\t\t\t\t\ttitle: 'Nested modals vs. a11y isolation',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t\tel( 'p', null, 'This modal should be accessibly hidden when the nested modal is open. When the nested modal is closed this modal should again be accessible while the rest of the tree remains inaccessible until this modal is closed.' ),\r\n\r\n\t\t\t\t\t\tisInnerOpen && el(\r\n\t\t\t\t\t\t\tModal,\r\n\t\t\t\t\t\t\t{ onRequestClose: () => setIsInnerOpen( false ), title: '🪧 Nested' },\r\n\t\t\t\t\t\t\tel( 'p', null, 'Nothing to see here.' ),\r\n\t\t\t\t\t\t),\r\n\r\n\t\t\t\t\t\tel( Button, { variant: \"secondary\", onClick: () => setIsInnerOpen( true ) }, 'Open Nested'),\r\n\t\t\t\t\t)\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n} )( wp );\r\n```\r\n3. Press the \"Open Modal\" button added to the post settings (\"Editor Settings\" > \"Modal nesting demo\").\r\n4. Note the Modal is opened and verify the rest of the page is no longer in the accessibility tree.\r\n5. Press the \"Open Nested\" button.\r\n6. Note the nested modal is opened and verify the outer modal is no longer in the accessibility tree.\r\n7. Close the nested modal.\r\n8. Verify the original modal is returned to the accessibility tree while the rest of the page is not.\r\n9. Close the modal.\r\n10. Verify the rest of the page is returned to the accessibility tree.\r\n\r\n### Testing Instructions for Keyboard\r\nI tried to make the instructions above applicable for keyboard use.\r\n\r\n## Screenshots or screencast \r\n\r\nhttps://github.com/WordPress/gutenberg/assets/9000376/7041978b-0155-4fc3-8ca6-03db7479716f\r\n\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54743/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54743/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54740",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54740/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54740/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54740/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54740",
+ "id": 1909190458,
+ "node_id": "PR_kwDOBNHdeM5bAaMl",
+ "number": 54740,
+ "title": "Deprecating `isPressed` in `Button` component",
+ "user": {
+ "login": "andrewhayward",
+ "id": 159848,
+ "node_id": "MDQ6VXNlcjE1OTg0OA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/159848?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/andrewhayward",
+ "html_url": "https://github.com/andrewhayward",
+ "followers_url": "https://api.github.com/users/andrewhayward/followers",
+ "following_url": "https://api.github.com/users/andrewhayward/following{/other_user}",
+ "gists_url": "https://api.github.com/users/andrewhayward/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/andrewhayward/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/andrewhayward/subscriptions",
+ "organizations_url": "https://api.github.com/users/andrewhayward/orgs",
+ "repos_url": "https://api.github.com/users/andrewhayward/repos",
+ "events_url": "https://api.github.com/users/andrewhayward/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/andrewhayward/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 531680825,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
+ "name": "[Type] Enhancement",
+ "color": "FEF2C0",
+ "default": false,
+ "description": "A suggestion for improvement."
+ },
+ {
+ "id": 997392122,
+ "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
+ "name": "[Package] Components",
+ "color": "ed2572",
+ "default": false,
+ "description": "/packages/components"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "andrewhayward",
+ "id": 159848,
+ "node_id": "MDQ6VXNlcjE1OTg0OA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/159848?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/andrewhayward",
+ "html_url": "https://github.com/andrewhayward",
+ "followers_url": "https://api.github.com/users/andrewhayward/followers",
+ "following_url": "https://api.github.com/users/andrewhayward/following{/other_user}",
+ "gists_url": "https://api.github.com/users/andrewhayward/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/andrewhayward/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/andrewhayward/subscriptions",
+ "organizations_url": "https://api.github.com/users/andrewhayward/orgs",
+ "repos_url": "https://api.github.com/users/andrewhayward/repos",
+ "events_url": "https://api.github.com/users/andrewhayward/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/andrewhayward/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "andrewhayward",
+ "id": 159848,
+ "node_id": "MDQ6VXNlcjE1OTg0OA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/159848?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/andrewhayward",
+ "html_url": "https://github.com/andrewhayward",
+ "followers_url": "https://api.github.com/users/andrewhayward/followers",
+ "following_url": "https://api.github.com/users/andrewhayward/following{/other_user}",
+ "gists_url": "https://api.github.com/users/andrewhayward/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/andrewhayward/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/andrewhayward/subscriptions",
+ "organizations_url": "https://api.github.com/users/andrewhayward/orgs",
+ "repos_url": "https://api.github.com/users/andrewhayward/repos",
+ "events_url": "https://api.github.com/users/andrewhayward/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/andrewhayward/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 4,
+ "created_at": "2023-09-22T16:16:36Z",
+ "updated_at": "2023-10-03T12:25:04Z",
+ "closed_at": "2023-09-27T11:55:15Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54740",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54740",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54740.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54740.patch",
+ "merged_at": "2023-09-27T11:55:15Z"
+ },
+ "body": "## What?\r\nThis PR starts the deprecation of `isPressed` on the `Button` component, deferring to the native `aria-pressed` attribute instead. While it does not externally change the API, internally it converts `isPressed` into `aria-pressed`, such that using the latter is equivalent to the former. As such, `aria-pressed` can be used instead of `isPressed` should a consumer so desire.\r\n\r\n## Why?\r\nWhen the `isPressed` prop is used on `Button`, `aria-pressed` is explicitly set accordingly. But sometimes `Button` is used for roles other than `button`, such as `option` and `checkbox`, where `aria-pressed` is not appropriate. Instead consumers should be able to decide for themselves the appropriate semantics.\r\n\r\n## How?\r\nThe `isPressed` prop is marked as deprecated, and transformed into `aria-pressed`. The value of `aria-pressed` is then used instead to determine how the component should be styled.\r\n\r\n## Testing Instructions\r\nUnit tests have been added to confirm that the legacy `isPressed` behaviour continues, and that using `aria-pressed` directly behaves in the same way.\r\n\r\nThe only potential scope for issues is where a consumer has already set `aria-pressed` on a `Button`, but not `isPressed`, as this could affect the visual appearance due to the added `is-pressed` class.",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54740/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54740/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54736",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54736/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54736/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54736/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54736",
+ "id": 1908928247,
+ "node_id": "PR_kwDOBNHdeM5a_h2F",
+ "number": 54736,
+ "title": "Format Library: Try to fix highlight popover jumping",
+ "user": {
+ "login": "t-hamano",
+ "id": 54422211,
+ "node_id": "MDQ6VXNlcjU0NDIyMjEx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/54422211?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/t-hamano",
+ "html_url": "https://github.com/t-hamano",
+ "followers_url": "https://api.github.com/users/t-hamano/followers",
+ "following_url": "https://api.github.com/users/t-hamano/following{/other_user}",
+ "gists_url": "https://api.github.com/users/t-hamano/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/t-hamano/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/t-hamano/subscriptions",
+ "organizations_url": "https://api.github.com/users/t-hamano/orgs",
+ "repos_url": "https://api.github.com/users/t-hamano/repos",
+ "events_url": "https://api.github.com/users/t-hamano/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/t-hamano/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
+ "default": false,
+ "description": "An existing feature does not function as intended"
+ },
+ {
+ "id": 1140833299,
+ "node_id": "MDU6TGFiZWwxMTQwODMzMjk5",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Format%20library",
+ "name": "[Package] Format library",
+ "color": "ed2572",
+ "default": false,
+ "description": "/packages/format-library"
+ },
+ {
+ "id": 3553027981,
+ "node_id": "LA_kwDOBNHdeM7TxueN",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Colors",
+ "name": "[Feature] Colors",
+ "color": "fbca04",
+ "default": false,
+ "description": "Color management"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "t-hamano",
+ "id": 54422211,
+ "node_id": "MDQ6VXNlcjU0NDIyMjEx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/54422211?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/t-hamano",
+ "html_url": "https://github.com/t-hamano",
+ "followers_url": "https://api.github.com/users/t-hamano/followers",
+ "following_url": "https://api.github.com/users/t-hamano/following{/other_user}",
+ "gists_url": "https://api.github.com/users/t-hamano/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/t-hamano/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/t-hamano/subscriptions",
+ "organizations_url": "https://api.github.com/users/t-hamano/orgs",
+ "repos_url": "https://api.github.com/users/t-hamano/repos",
+ "events_url": "https://api.github.com/users/t-hamano/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/t-hamano/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "t-hamano",
+ "id": 54422211,
+ "node_id": "MDQ6VXNlcjU0NDIyMjEx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/54422211?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/t-hamano",
+ "html_url": "https://github.com/t-hamano",
+ "followers_url": "https://api.github.com/users/t-hamano/followers",
+ "following_url": "https://api.github.com/users/t-hamano/following{/other_user}",
+ "gists_url": "https://api.github.com/users/t-hamano/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/t-hamano/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/t-hamano/subscriptions",
+ "organizations_url": "https://api.github.com/users/t-hamano/orgs",
+ "repos_url": "https://api.github.com/users/t-hamano/repos",
+ "events_url": "https://api.github.com/users/t-hamano/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/t-hamano/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 11,
+ "created_at": "2023-09-22T13:37:25Z",
+ "updated_at": "2023-09-29T12:04:42Z",
+ "closed_at": "2023-09-27T11:42:49Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54736",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54736",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54736.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54736.patch",
+ "merged_at": "2023-09-27T11:42:49Z"
+ },
+ "body": "Fixes: #49286\r\n\r\n## What?\r\n\r\nThis PR attempts to resolve an issue where popovers jump when applying inline highlighting to text.\r\n\r\n## Why?\r\n\r\nThis popover caches the `popoverAnchor` to maintain its position and prevent \"jumping\" when the inline highlight is applied.\r\n\r\nHowever, as mentioned in [this comment](https://github.com/WordPress/gutenberg/issues/49286#issuecomment-1497592542) by @ciampo, when text is surrounded by the `mark` element, the position seems to be out of sync for some reason.\r\n\r\n## How?\r\n\r\nI'm not sure if this approach is ideal, but caching only `getBoundingClientRect()` seems to solve the problem. If you have a more ideal approach, please let me know.\r\n\r\n## Testing Instructions\r\n\r\n- Enter text on the block editor.\r\n- Select some text and choose \"Highlight\" from the block toolbar.\r\n- Choose a palette, select a custom color, or enter a HEX color in the color popover.\r\n- The popover should be in the same position.",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54736/reactions",
+ "total_count": 1,
+ "+1": 1,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54736/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54734",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54734/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54734/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54734/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54734",
+ "id": 1908876899,
+ "node_id": "PR_kwDOBNHdeM5a_Wuo",
+ "number": 54734,
+ "title": "FormTokenField: Add `box-sizing` reset style and reset default padding",
+ "user": {
+ "login": "t-hamano",
+ "id": 54422211,
+ "node_id": "MDQ6VXNlcjU0NDIyMjEx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/54422211?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/t-hamano",
+ "html_url": "https://github.com/t-hamano",
+ "followers_url": "https://api.github.com/users/t-hamano/followers",
+ "following_url": "https://api.github.com/users/t-hamano/following{/other_user}",
+ "gists_url": "https://api.github.com/users/t-hamano/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/t-hamano/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/t-hamano/subscriptions",
+ "organizations_url": "https://api.github.com/users/t-hamano/orgs",
+ "repos_url": "https://api.github.com/users/t-hamano/repos",
+ "events_url": "https://api.github.com/users/t-hamano/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/t-hamano/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
+ "default": false,
+ "description": "An existing feature does not function as intended"
+ },
+ {
+ "id": 997392122,
+ "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
+ "name": "[Package] Components",
+ "color": "ed2572",
+ "default": false,
+ "description": "/packages/components"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "t-hamano",
+ "id": 54422211,
+ "node_id": "MDQ6VXNlcjU0NDIyMjEx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/54422211?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/t-hamano",
+ "html_url": "https://github.com/t-hamano",
+ "followers_url": "https://api.github.com/users/t-hamano/followers",
+ "following_url": "https://api.github.com/users/t-hamano/following{/other_user}",
+ "gists_url": "https://api.github.com/users/t-hamano/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/t-hamano/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/t-hamano/subscriptions",
+ "organizations_url": "https://api.github.com/users/t-hamano/orgs",
+ "repos_url": "https://api.github.com/users/t-hamano/repos",
+ "events_url": "https://api.github.com/users/t-hamano/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/t-hamano/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "t-hamano",
+ "id": 54422211,
+ "node_id": "MDQ6VXNlcjU0NDIyMjEx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/54422211?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/t-hamano",
+ "html_url": "https://github.com/t-hamano",
+ "followers_url": "https://api.github.com/users/t-hamano/followers",
+ "following_url": "https://api.github.com/users/t-hamano/following{/other_user}",
+ "gists_url": "https://api.github.com/users/t-hamano/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/t-hamano/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/t-hamano/subscriptions",
+ "organizations_url": "https://api.github.com/users/t-hamano/orgs",
+ "repos_url": "https://api.github.com/users/t-hamano/repos",
+ "events_url": "https://api.github.com/users/t-hamano/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/t-hamano/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 2,
+ "created_at": "2023-09-22T13:07:03Z",
+ "updated_at": "2023-09-22T15:05:10Z",
+ "closed_at": "2023-09-22T15:04:45Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54734",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54734",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54734.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54734.patch",
+ "merged_at": "2023-09-22T15:04:45Z"
+ },
+ "body": "## What?\r\n\r\nThis PR resolves the following three issues in the `FormTokenField` component:\r\n\r\n- The suggestion list has default padding of `ul` element on the left side\r\n- The suggestion list items are not as high as expected.\r\n\r\nAs a result, the same problem is resolved for the `ComboBoxControl` that includes this component.\r\n\r\n| Before | After |\r\n|--------|--------|\r\n| ![form-token-field-before](https://github.com/WordPress/gutenberg/assets/54422211/a8795ac1-d02b-4d55-9b34-025c18ee39a2) | ![form-token-field-after](https://github.com/WordPress/gutenberg/assets/54422211/6b1270ae-65ff-43db-9b37-9edb1cd51eab) |\r\n| ![combo-box-control-before](https://github.com/WordPress/gutenberg/assets/54422211/6104fb5b-c238-458d-a5be-3f6321b86f5b) | ![combo-box-control-after](https://github.com/WordPress/gutenberg/assets/54422211/ac4c0411-7240-4827-a085-aeae8722d461) | \r\n\r\n## Why?\r\n\r\nThis issue does not occur on the block editor. Because reset styles such as post editor and WP-Admin are applied to these elements.\r\n\r\n## How?\r\n\r\nAdded styles to fix unintended appearance.\r\n\r\n## Testing Instructions\r\n\r\n- Run Storybook.\r\n- In the `FormTokenField` and `ComboBoxControl` components, enter characters that match the suggestion list.\r\n- Confirm that the suggestion list is displayed as you intended.\r\n- Inject WordPress style from the top toolbar.\r\n- There should be no change in the appearance of the component.",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54734/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54734/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54733",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54733/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54733/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54733/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54733",
+ "id": 1908871072,
+ "node_id": "PR_kwDOBNHdeM5a_Vd6",
+ "number": 54733,
+ "title": "createResolversCacheMiddleware: remove dependency on core/data store",
+ "user": {
+ "login": "jsnajdr",
+ "id": 664258,
+ "node_id": "MDQ6VXNlcjY2NDI1OA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/664258?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jsnajdr",
+ "html_url": "https://github.com/jsnajdr",
+ "followers_url": "https://api.github.com/users/jsnajdr/followers",
+ "following_url": "https://api.github.com/users/jsnajdr/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jsnajdr/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jsnajdr/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jsnajdr/subscriptions",
+ "organizations_url": "https://api.github.com/users/jsnajdr/orgs",
+ "repos_url": "https://api.github.com/users/jsnajdr/repos",
+ "events_url": "https://api.github.com/users/jsnajdr/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jsnajdr/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 930001208,
+ "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
+ "name": "[Type] Code Quality",
+ "color": "e5e04b",
+ "default": false,
+ "description": "Issues or PRs that relate to code quality"
+ },
+ {
+ "id": 937321166,
+ "node_id": "MDU6TGFiZWw5MzczMjExNjY=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Data",
+ "name": "[Package] Data",
+ "color": "ed2572",
+ "default": false,
+ "description": "/packages/data"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "jsnajdr",
+ "id": 664258,
+ "node_id": "MDQ6VXNlcjY2NDI1OA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/664258?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jsnajdr",
+ "html_url": "https://github.com/jsnajdr",
+ "followers_url": "https://api.github.com/users/jsnajdr/followers",
+ "following_url": "https://api.github.com/users/jsnajdr/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jsnajdr/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jsnajdr/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jsnajdr/subscriptions",
+ "organizations_url": "https://api.github.com/users/jsnajdr/orgs",
+ "repos_url": "https://api.github.com/users/jsnajdr/repos",
+ "events_url": "https://api.github.com/users/jsnajdr/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jsnajdr/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "jsnajdr",
+ "id": 664258,
+ "node_id": "MDQ6VXNlcjY2NDI1OA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/664258?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jsnajdr",
+ "html_url": "https://github.com/jsnajdr",
+ "followers_url": "https://api.github.com/users/jsnajdr/followers",
+ "following_url": "https://api.github.com/users/jsnajdr/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jsnajdr/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jsnajdr/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jsnajdr/subscriptions",
+ "organizations_url": "https://api.github.com/users/jsnajdr/orgs",
+ "repos_url": "https://api.github.com/users/jsnajdr/repos",
+ "events_url": "https://api.github.com/users/jsnajdr/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jsnajdr/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 4,
+ "created_at": "2023-09-22T13:03:20Z",
+ "updated_at": "2023-09-25T12:57:31Z",
+ "closed_at": "2023-09-25T12:57:05Z",
+ "author_association": "MEMBER",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54733",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54733",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54733.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54733.patch",
+ "merged_at": "2023-09-25T12:57:05Z"
+ },
+ "body": "The `core/data` store is a legacy store that provides access to \"resolution state\" of other stores' resolvers, and exists only to provide backward compatibility. The supported way to access store's \"resolution state\" is to use its metadata selectors like `hasFinishedResolution`.\r\n\r\nThis PR removes the `core/data` dependency from the resolvers cache middleware, which is used by all stores, and select directly from related stores instead.\r\n\r\nI'm also changing the code slightly to reduce one level of indentation, and removing unneeded optional chaining when looking at `value.status`.\r\n\r\n**How to test:**\r\nSufficiently covered by existing unit tests.",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54733/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54733/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54728",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54728/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54728/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54728/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54728",
+ "id": 1908745994,
+ "node_id": "PR_kwDOBNHdeM5a-6NH",
+ "number": 54728,
+ "title": "[Site Editor]: Update copy of using the default template in a page",
+ "user": {
+ "login": "ntsekouras",
+ "id": 16275880,
+ "node_id": "MDQ6VXNlcjE2Mjc1ODgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/16275880?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ntsekouras",
+ "html_url": "https://github.com/ntsekouras",
+ "followers_url": "https://api.github.com/users/ntsekouras/followers",
+ "following_url": "https://api.github.com/users/ntsekouras/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ntsekouras/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ntsekouras/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ntsekouras/subscriptions",
+ "organizations_url": "https://api.github.com/users/ntsekouras/orgs",
+ "repos_url": "https://api.github.com/users/ntsekouras/repos",
+ "events_url": "https://api.github.com/users/ntsekouras/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ntsekouras/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
+ "default": false,
+ "description": "An existing feature does not function as intended"
+ },
+ {
+ "id": 2706102777,
+ "node_id": "MDU6TGFiZWwyNzA2MTAyNzc3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Site%20Editor",
+ "name": "[Feature] Site Editor",
+ "color": "fbca04",
+ "default": false,
+ "description": "Related to the overarching Site Editor (formerly \"full site editing\")"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "ntsekouras",
+ "id": 16275880,
+ "node_id": "MDQ6VXNlcjE2Mjc1ODgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/16275880?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ntsekouras",
+ "html_url": "https://github.com/ntsekouras",
+ "followers_url": "https://api.github.com/users/ntsekouras/followers",
+ "following_url": "https://api.github.com/users/ntsekouras/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ntsekouras/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ntsekouras/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ntsekouras/subscriptions",
+ "organizations_url": "https://api.github.com/users/ntsekouras/orgs",
+ "repos_url": "https://api.github.com/users/ntsekouras/repos",
+ "events_url": "https://api.github.com/users/ntsekouras/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ntsekouras/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "ntsekouras",
+ "id": 16275880,
+ "node_id": "MDQ6VXNlcjE2Mjc1ODgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/16275880?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ntsekouras",
+ "html_url": "https://github.com/ntsekouras",
+ "followers_url": "https://api.github.com/users/ntsekouras/followers",
+ "following_url": "https://api.github.com/users/ntsekouras/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ntsekouras/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ntsekouras/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ntsekouras/subscriptions",
+ "organizations_url": "https://api.github.com/users/ntsekouras/orgs",
+ "repos_url": "https://api.github.com/users/ntsekouras/repos",
+ "events_url": "https://api.github.com/users/ntsekouras/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ntsekouras/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 4,
+ "created_at": "2023-09-22T11:38:35Z",
+ "updated_at": "2023-10-05T10:44:53Z",
+ "closed_at": "2023-09-22T13:54:48Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54728",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54728",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54728.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54728.patch",
+ "merged_at": "2023-09-22T13:54:48Z"
+ },
+ "body": "\r\n\r\n## What?\r\nResolves: https://github.com/WordPress/gutenberg/issues/54572\r\n\r\nThis PR just updates the copy of the `reset` button that results in using the default template of a page, based on the template hierarchy.\r\n\r\n\r\n\r\n\r\n## Testing Instructions\r\nIn site editor go to a page that has not the default template assigned(or just use the `swap template` button) and observe that the copy to use the default template has been changed from `Reset` to `Use default template`.\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54728/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54728/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54722",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54722/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54722/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54722/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54722",
+ "id": 1908593506,
+ "node_id": "PR_kwDOBNHdeM5a-Yxv",
+ "number": 54722,
+ "title": "Editor: Always render the 'Switch to Draft' button to avoid focus loss",
+ "user": {
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 546517042,
+ "node_id": "MDU6TGFiZWw1NDY1MTcwNDI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Focus]%20Accessibility%20(a11y)",
+ "name": "[Focus] Accessibility (a11y)",
+ "color": "efde5d",
+ "default": false,
+ "description": "Changes that impact accessibility and need corresponding review (e.g. markup changes)."
+ },
+ {
+ "id": 644027893,
+ "node_id": "MDU6TGFiZWw2NDQwMjc4OTM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Needs%20Design%20Feedback",
+ "name": "Needs Design Feedback",
+ "color": "0e8a16",
+ "default": false,
+ "description": "Needs general design feedback."
+ },
+ {
+ "id": 1013395453,
+ "node_id": "MDU6TGFiZWwxMDEzMzk1NDUz",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Editor",
+ "name": "[Package] Editor",
+ "color": "ed2572",
+ "default": false,
+ "description": "/packages/editor"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 34,
+ "created_at": "2023-09-22T09:55:09Z",
+ "updated_at": "2023-10-06T10:17:19Z",
+ "closed_at": "2023-09-26T09:33:24Z",
+ "author_association": "MEMBER",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54722",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54722",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54722.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54722.patch",
+ "merged_at": "2023-09-26T09:33:24Z"
+ },
+ "body": "## What?\r\nFixes #51901.\r\n\r\nPR updates the `PostSwitchToDraftButton` component always to render to button, but using a disabled state when switching to draft isn't possible.\r\n\r\n## Why?\r\nSee #51901.\r\n\r\n> Instead, with the new placement of the Switch to Draft button in the settings panel, users are now forced to navigate almost the entire editor UI to go back where they were.\r\n\r\n> The expected behavior is that focus is returned to the UI control that opened the modal dialog. As such, the 'Switch to Draft' button should not be removed from the DOM. Ideally, it shoul dstay in the DOM, be still focusable, use an aria-disabled attribute and 'noop'. See: ARIA Authoring Practices: [Focusability of disabled controls](https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/#focusabilityofdisabledcontrols).\r\n\r\n## How?\r\n* Updates button to use `aria-disabled` instead of `disabled` prop.\r\n* Noops the `onClick` callback when the button is disabled.\r\n\r\n## Testing Instructions\r\n1. Open a published or scheduled post.\r\n2. Navigate to the \"Switch to Draft\" button in document settings.\r\n3. Switch the post to draft.\r\n4. Verify that the button is visible, but has a disabled state.\r\n\r\n### Testing Instructions for Keyboard\r\nSame\r\n\r\n## Screenshots or screencast \r\n\r\nhttps://github.com/WordPress/gutenberg/assets/240569/e830a441-7d75-4ea6-bd3d-5e37e4d99d05\r\n\r\n\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54722/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54722/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54709",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54709/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54709/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54709/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54709",
+ "id": 1908050987,
+ "node_id": "PR_kwDOBNHdeM5a8j9H",
+ "number": 54709,
+ "title": "Use consistent capitalization for template parts in Site Editor constants",
+ "user": {
+ "login": "ramonjd",
+ "id": 6458278,
+ "node_id": "MDQ6VXNlcjY0NTgyNzg=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/6458278?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ramonjd",
+ "html_url": "https://github.com/ramonjd",
+ "followers_url": "https://api.github.com/users/ramonjd/followers",
+ "following_url": "https://api.github.com/users/ramonjd/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ramonjd/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ramonjd/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ramonjd/subscriptions",
+ "organizations_url": "https://api.github.com/users/ramonjd/orgs",
+ "repos_url": "https://api.github.com/users/ramonjd/repos",
+ "events_url": "https://api.github.com/users/ramonjd/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ramonjd/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 793903067,
+ "node_id": "MDU6TGFiZWw3OTM5MDMwNjc=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Copy",
+ "name": "[Type] Copy",
+ "color": "e868f9",
+ "default": false,
+ "description": "Issues or PRs that need copy editing assistance"
+ },
+ {
+ "id": 2409818939,
+ "node_id": "MDU6TGFiZWwyNDA5ODE4OTM5",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Edit%20Site",
+ "name": "[Package] Edit Site",
+ "color": "ed2572",
+ "default": false,
+ "description": "/packages/edit-site"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "ramonjd",
+ "id": 6458278,
+ "node_id": "MDQ6VXNlcjY0NTgyNzg=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/6458278?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ramonjd",
+ "html_url": "https://github.com/ramonjd",
+ "followers_url": "https://api.github.com/users/ramonjd/followers",
+ "following_url": "https://api.github.com/users/ramonjd/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ramonjd/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ramonjd/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ramonjd/subscriptions",
+ "organizations_url": "https://api.github.com/users/ramonjd/orgs",
+ "repos_url": "https://api.github.com/users/ramonjd/repos",
+ "events_url": "https://api.github.com/users/ramonjd/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ramonjd/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "ramonjd",
+ "id": 6458278,
+ "node_id": "MDQ6VXNlcjY0NTgyNzg=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/6458278?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ramonjd",
+ "html_url": "https://github.com/ramonjd",
+ "followers_url": "https://api.github.com/users/ramonjd/followers",
+ "following_url": "https://api.github.com/users/ramonjd/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ramonjd/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ramonjd/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ramonjd/subscriptions",
+ "organizations_url": "https://api.github.com/users/ramonjd/orgs",
+ "repos_url": "https://api.github.com/users/ramonjd/repos",
+ "events_url": "https://api.github.com/users/ramonjd/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ramonjd/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 3,
+ "created_at": "2023-09-22T01:47:52Z",
+ "updated_at": "2023-10-05T11:16:29Z",
+ "closed_at": "2023-09-22T02:37:37Z",
+ "author_association": "MEMBER",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54709",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54709",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54709.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54709.patch",
+ "merged_at": "2023-09-22T02:37:37Z"
+ },
+ "body": "\r\n\r\n\r\n\r\n## What?\r\nBased on the efforts in https://github.com/WordPress/gutenberg/pull/51761, remove caps case from Template Part and prefer sentence case. As all instances of this string are stand alone, it's okay to have Template capitalized as it's the start of a sentence.\r\n\r\n\r\n## Testing Instructions\r\nInstances where the constant `POST_TYPE_LABELS[ TEMPLATE_PART_POST_TYPE ]` is used, the output should be \"Template part\" and not \"Template Part\".\r\n\r\nThank you!\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54709/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54709/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54707",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54707/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54707/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54707/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54707",
+ "id": 1907926577,
+ "node_id": "PR_kwDOBNHdeM5a8J1e",
+ "number": 54707,
+ "title": "Docs: Remove outdated info ",
+ "user": {
+ "login": "brookewp",
+ "id": 35543432,
+ "node_id": "MDQ6VXNlcjM1NTQzNDMy",
+ "avatar_url": "https://avatars.githubusercontent.com/u/35543432?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/brookewp",
+ "html_url": "https://github.com/brookewp",
+ "followers_url": "https://api.github.com/users/brookewp/followers",
+ "following_url": "https://api.github.com/users/brookewp/following{/other_user}",
+ "gists_url": "https://api.github.com/users/brookewp/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/brookewp/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/brookewp/subscriptions",
+ "organizations_url": "https://api.github.com/users/brookewp/orgs",
+ "repos_url": "https://api.github.com/users/brookewp/repos",
+ "events_url": "https://api.github.com/users/brookewp/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/brookewp/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 567484057,
+ "node_id": "MDU6TGFiZWw1Njc0ODQwNTc=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Developer%20Documentation",
+ "name": "[Type] Developer Documentation",
+ "color": "bfd4f2",
+ "default": false,
+ "description": "Documentation for developers"
+ },
+ {
+ "id": 997392122,
+ "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
+ "name": "[Package] Components",
+ "color": "ed2572",
+ "default": false,
+ "description": "/packages/components"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 2,
+ "created_at": "2023-09-21T23:45:26Z",
+ "updated_at": "2023-09-26T21:03:28Z",
+ "closed_at": "2023-09-26T21:03:05Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54707",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54707",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54707.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54707.patch",
+ "merged_at": "2023-09-26T21:03:05Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\n\r\nTooltip no longer uses our Popover component since the refactor in #48440, so this removes the info on our legacy tooltip in the Popover section of the components package README. \r\n\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54707/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54707/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54705",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54705/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54705/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54705/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54705",
+ "id": 1907739065,
+ "node_id": "PR_kwDOBNHdeM5a7iOO",
+ "number": 54705,
+ "title": "Site editor: use constants rather than hard coded template strings (round 3)",
+ "user": {
+ "login": "ramonjd",
+ "id": 6458278,
+ "node_id": "MDQ6VXNlcjY0NTgyNzg=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/6458278?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ramonjd",
+ "html_url": "https://github.com/ramonjd",
+ "followers_url": "https://api.github.com/users/ramonjd/followers",
+ "following_url": "https://api.github.com/users/ramonjd/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ramonjd/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ramonjd/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ramonjd/subscriptions",
+ "organizations_url": "https://api.github.com/users/ramonjd/orgs",
+ "repos_url": "https://api.github.com/users/ramonjd/repos",
+ "events_url": "https://api.github.com/users/ramonjd/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ramonjd/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 930001208,
+ "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
+ "name": "[Type] Code Quality",
+ "color": "e5e04b",
+ "default": false,
+ "description": "Issues or PRs that relate to code quality"
+ },
+ {
+ "id": 2706102777,
+ "node_id": "MDU6TGFiZWwyNzA2MTAyNzc3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Site%20Editor",
+ "name": "[Feature] Site Editor",
+ "color": "fbca04",
+ "default": false,
+ "description": "Related to the overarching Site Editor (formerly \"full site editing\")"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "ramonjd",
+ "id": 6458278,
+ "node_id": "MDQ6VXNlcjY0NTgyNzg=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/6458278?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ramonjd",
+ "html_url": "https://github.com/ramonjd",
+ "followers_url": "https://api.github.com/users/ramonjd/followers",
+ "following_url": "https://api.github.com/users/ramonjd/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ramonjd/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ramonjd/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ramonjd/subscriptions",
+ "organizations_url": "https://api.github.com/users/ramonjd/orgs",
+ "repos_url": "https://api.github.com/users/ramonjd/repos",
+ "events_url": "https://api.github.com/users/ramonjd/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ramonjd/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "ramonjd",
+ "id": 6458278,
+ "node_id": "MDQ6VXNlcjY0NTgyNzg=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/6458278?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ramonjd",
+ "html_url": "https://github.com/ramonjd",
+ "followers_url": "https://api.github.com/users/ramonjd/followers",
+ "following_url": "https://api.github.com/users/ramonjd/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ramonjd/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ramonjd/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ramonjd/subscriptions",
+ "organizations_url": "https://api.github.com/users/ramonjd/orgs",
+ "repos_url": "https://api.github.com/users/ramonjd/repos",
+ "events_url": "https://api.github.com/users/ramonjd/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ramonjd/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 3,
+ "created_at": "2023-09-21T20:51:21Z",
+ "updated_at": "2023-09-25T08:44:11Z",
+ "closed_at": "2023-09-22T01:25:27Z",
+ "author_association": "MEMBER",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54705",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54705",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54705.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54705.patch",
+ "merged_at": "2023-09-22T01:25:27Z"
+ },
+ "body": "\r\n\r\n## What?\r\nThis is a follow up to:\r\n- https://github.com/WordPress/gutenberg/pull/54586\r\n- https://github.com/WordPress/gutenberg/pull/54484\r\n\r\n## Why?\r\nTo centralize names for post types and so on. Ease of management. Giving search and replace a well-deserved rest.\r\n\r\n## How?\r\nReplacing the following strings with constants\r\n\r\n| String | Constant |\r\n| ------------- | ------------- |\r\n| 'wp_navigation' | `NAVIGATION_POST_TYPE` |\r\n| 'wp_template' | `TEMPLATE_POST_TYPE` |\r\n| 'wp_template_part' | `TEMPLATE_PART_POST_TYPE` |\r\n| 'wp_block' | `PATTERN_TYPES.user` |\r\n\r\n## Testing Instructions\r\n- CI tests should pass.\r\n- Check that the replaced strings match a constant.\r\n- Smoke test site editor, e.g., create and edit some templates. Rename them, delete them. All should work as expecte",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54705/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54705/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54696",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54696/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54696/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54696/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54696",
+ "id": 1907254306,
+ "node_id": "PR_kwDOBNHdeM5a54TS",
+ "number": 54696,
+ "title": "Follow ariakit best practices",
+ "user": {
+ "login": "ciampo",
+ "id": 1083581,
+ "node_id": "MDQ6VXNlcjEwODM1ODE=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1083581?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ciampo",
+ "html_url": "https://github.com/ciampo",
+ "followers_url": "https://api.github.com/users/ciampo/followers",
+ "following_url": "https://api.github.com/users/ciampo/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ciampo/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ciampo/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ciampo/subscriptions",
+ "organizations_url": "https://api.github.com/users/ciampo/orgs",
+ "repos_url": "https://api.github.com/users/ciampo/repos",
+ "events_url": "https://api.github.com/users/ciampo/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ciampo/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 546517042,
+ "node_id": "MDU6TGFiZWw1NDY1MTcwNDI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Focus]%20Accessibility%20(a11y)",
+ "name": "[Focus] Accessibility (a11y)",
+ "color": "efde5d",
+ "default": false,
+ "description": "Changes that impact accessibility and need corresponding review (e.g. markup changes)."
+ },
+ {
+ "id": 997392122,
+ "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
+ "name": "[Package] Components",
+ "color": "ed2572",
+ "default": false,
+ "description": "/packages/components"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "ciampo",
+ "id": 1083581,
+ "node_id": "MDQ6VXNlcjEwODM1ODE=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1083581?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ciampo",
+ "html_url": "https://github.com/ciampo",
+ "followers_url": "https://api.github.com/users/ciampo/followers",
+ "following_url": "https://api.github.com/users/ciampo/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ciampo/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ciampo/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ciampo/subscriptions",
+ "organizations_url": "https://api.github.com/users/ciampo/orgs",
+ "repos_url": "https://api.github.com/users/ciampo/repos",
+ "events_url": "https://api.github.com/users/ciampo/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ciampo/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "ciampo",
+ "id": 1083581,
+ "node_id": "MDQ6VXNlcjEwODM1ODE=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1083581?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ciampo",
+ "html_url": "https://github.com/ciampo",
+ "followers_url": "https://api.github.com/users/ciampo/followers",
+ "following_url": "https://api.github.com/users/ciampo/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ciampo/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ciampo/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ciampo/subscriptions",
+ "organizations_url": "https://api.github.com/users/ciampo/orgs",
+ "repos_url": "https://api.github.com/users/ciampo/repos",
+ "events_url": "https://api.github.com/users/ciampo/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ciampo/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 2,
+ "created_at": "2023-09-21T15:31:09Z",
+ "updated_at": "2023-10-07T08:28:45Z",
+ "closed_at": "2023-09-22T13:23:33Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54696",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54696",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54696.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54696.patch",
+ "merged_at": "2023-09-22T13:23:33Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\n\r\nRefactor the code to follow ariakit best practices\r\n\r\n## Why?\r\n\r\n\r\nWe should aim at using third-party dependencies the way they are intended.\r\n\r\nWhile working on #54612 I stumbled upon some console warning — this PR aims at fixing them so that when we upgrade to a more recent version of ariakit, those warnings will be gone.\r\n\r\n## How?\r\n\r\n\r\n- use the `render` prop instead of the `as` prop (which has been deprecated in one of the latest release) ([docs](https://ariakit.org/guide/composition))\r\n- use the `import * as Ariakit from '@ariakit/react'` statement for all imports, instead of importing the specific sub-folder ([docs](https://ariakit.org/guide/coding-guidelines#import-namespace))\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n\r\nNo changes are expected at runtime, all affected components should continue to work as previously.\r\n\r\nAll tests keep passing.",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54696/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54696/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54695",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54695/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54695/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54695/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54695",
+ "id": 1907219861,
+ "node_id": "PR_kwDOBNHdeM5a5wuq",
+ "number": 54695,
+ "title": "Editor: Use hooks instead of HoCs in 'PostSwitchToDraftButton'",
+ "user": {
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 531680825,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
+ "name": "[Type] Enhancement",
+ "color": "FEF2C0",
+ "default": false,
+ "description": "A suggestion for improvement."
+ },
+ {
+ "id": 593977130,
+ "node_id": "MDU6TGFiZWw1OTM5NzcxMzA=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Priority]%20Low",
+ "name": "[Priority] Low",
+ "color": "f9d0c4",
+ "default": false,
+ "description": "Used to indicate that the issue at hand isn't a top priority to address and can be handled later"
+ },
+ {
+ "id": 1013395453,
+ "node_id": "MDU6TGFiZWwxMDEzMzk1NDUz",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Editor",
+ "name": "[Package] Editor",
+ "color": "ed2572",
+ "default": false,
+ "description": "/packages/editor"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 1,
+ "created_at": "2023-09-21T15:13:33Z",
+ "updated_at": "2023-09-21T20:09:46Z",
+ "closed_at": "2023-09-21T20:09:21Z",
+ "author_association": "MEMBER",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54695",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54695",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54695.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54695.patch",
+ "merged_at": "2023-09-21T20:09:21Z"
+ },
+ "body": "## What?\r\nPR updates the `PostSwitchToDraftButton` component to use `data` hooks instead of HoCs.\r\n\r\n## Why?\r\nA micro-optimization makes the rendered component tree smaller.\r\n\r\nThis is similar to #53773.\r\n\r\n## Testing Instructions\r\n1. Open a post or page.\r\n2. Verify \"Switch to Draft\" action works as before.\r\n\r\n### Testing Instructions for Keyboard\r\nSame\r\n\r\n## Screenshots or screencast \r\n\r\n**Before**\r\n![CleanShot 2023-09-21 at 18 52 33](https://github.com/WordPress/gutenberg/assets/240569/a574c5a2-b35b-4b07-907b-f294aa683a1a)\r\n\r\n**After**\r\n![CleanShot 2023-09-21 at 19 08 30](https://github.com/WordPress/gutenberg/assets/240569/3292b12e-9f7b-4f8d-9705-db429963dcdf)\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54695/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54695/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54692",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54692/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54692/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54692/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54692",
+ "id": 1907160862,
+ "node_id": "PR_kwDOBNHdeM5a5jug",
+ "number": 54692,
+ "title": "Block Switcher: Use a different label for multi-selection",
+ "user": {
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 546517042,
+ "node_id": "MDU6TGFiZWw1NDY1MTcwNDI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Focus]%20Accessibility%20(a11y)",
+ "name": "[Focus] Accessibility (a11y)",
+ "color": "efde5d",
+ "default": false,
+ "description": "Changes that impact accessibility and need corresponding review (e.g. markup changes)."
+ },
+ {
+ "id": 1248494790,
+ "node_id": "MDU6TGFiZWwxMjQ4NDk0Nzkw",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Block%20editor",
+ "name": "[Package] Block editor",
+ "color": "ed2572",
+ "default": false,
+ "description": "/packages/block-editor"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "Mamaduka",
+ "id": 240569,
+ "node_id": "MDQ6VXNlcjI0MDU2OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Mamaduka",
+ "html_url": "https://github.com/Mamaduka",
+ "followers_url": "https://api.github.com/users/Mamaduka/followers",
+ "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
+ "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
+ "repos_url": "https://api.github.com/users/Mamaduka/repos",
+ "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 2,
+ "created_at": "2023-09-21T14:46:32Z",
+ "updated_at": "2023-09-21T20:09:28Z",
+ "closed_at": "2023-09-21T20:09:00Z",
+ "author_association": "MEMBER",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54692",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54692",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54692.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54692.patch",
+ "merged_at": "2023-09-21T20:09:00Z"
+ },
+ "body": "## What?\r\nCloses #51917.\r\n\r\nPR updates the Block Switcher label for multi-selection and removes a redundant block title in the description for single blocks.\r\n\r\n## Why?\r\nSee #51917.\r\n\r\n## Testing Instructions\r\n\r\n1. Create a new post.\r\n2. Add a few blocks of different types.\r\n3. Click in a Paragraph block.\r\n4. Select all the blocks by pressing Cmd/Ctrl + A twice.\r\n5. The block toolbar appears.\r\n6. Hover the Block Switcher button in the toolbar (the first button).\r\n7. Observe the tooltip text; it should be \"Multiple blocks selected\"\r\n\r\n### Testing Instructions for Keyboard\r\nSame\r\n\r\n## Screenshots or screencast \r\n![CleanShot 2023-09-21 at 18 27 16](https://github.com/WordPress/gutenberg/assets/240569/5de8f034-15e7-4f7a-91d7-9c43a321023e)\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54692/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54692/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54686",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54686/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54686/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54686/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54686",
+ "id": 1906980256,
+ "node_id": "PR_kwDOBNHdeM5a47-9",
+ "number": 54686,
+ "title": "Bump tj-actions/changed-files from 39.0.0 to 39.1.2",
+ "user": {
+ "login": "dependabot[bot]",
+ "id": 49699333,
+ "node_id": "MDM6Qm90NDk2OTkzMzM=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/29110?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/dependabot%5Bbot%5D",
+ "html_url": "https://github.com/apps/dependabot",
+ "followers_url": "https://api.github.com/users/dependabot%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dependabot%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/dependabot%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/dependabot%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dependabot%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 596512821,
+ "node_id": "MDU6TGFiZWw1OTY1MTI4MjE=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Build%20Tooling",
+ "name": "[Type] Build Tooling",
+ "color": "111111",
+ "default": false,
+ "description": "Issues or PRs related to build tooling"
+ },
+ {
+ "id": 4662565393,
+ "node_id": "LA_kwDOBNHdeM8AAAABFekaEQ",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/GitHub%20Actions",
+ "name": "GitHub Actions",
+ "color": "000000",
+ "default": false,
+ "description": "Pull requests that update GitHub Actions code"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 1,
+ "created_at": "2023-09-21T13:23:32Z",
+ "updated_at": "2023-09-22T15:10:20Z",
+ "closed_at": "2023-09-22T15:09:57Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54686",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54686",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54686.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54686.patch",
+ "merged_at": "2023-09-22T15:09:57Z"
+ },
+ "body": "Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 39.0.0 to 39.1.2.\n\nRelease notes \nSourced from tj-actions/changed-files's releases .
\n\nv39.1.2 \nWhat's Changed \n\nFull Changelog : https://github.com/tj-actions/changed-files/compare/v39...v39.1.2
\nv39.1.1 \nWhat's Changed \n\nNew Contributors \n\nFull Changelog : https://github.com/tj-actions/changed-files/compare/v39...v39.1.1
\nv39.1.0 \nWhat's Changed \n\nFull Changelog : https://github.com/tj-actions/changed-files/compare/v39...v39.1.0
\nv39.0.3 \nWhat's Changed \n\n\n \n... (truncated)
\n \n\nChangelog \nSourced from tj-actions/changed-files's changelog .
\n\nChangelog \n39.1.2 - (2023-09-20) \n⚙️ Miscellaneous Tasks \n\nAdd warrning message to diff error (#1593 ) (4196030 ) - (Tonye Jack) \ndeps: Update dependency @types/node
to v20.6.3 (bbe7960 ) - (renovate[bot]) \n \n⬆️ Upgrades \n\nUpgraded to v39.1.1 (#1591 ) \n \nCo-authored-by: jackton1 jackton1@users.noreply.github.com (159562d ) - (tj-actions[bot])
\n39.1.1 - (2023-09-19) \n🐛 Bug Fixes \n\nChanged_keys and modified_keys output to handle json and escape_json inputs (#1585 ) (951140b ) - (Arthur) \nError with test (#1589 ) (dbf0700 ) - (Tonye Jack) \n \n🔄 Update \n\nUpdate test.yml (a21a533 ) - (Tonye Jack) \nUpdated README.md (#1588 ) \n \nCo-authored-by: jackton1 jackton1@users.noreply.github.com (dacbaeb ) - (tj-actions[bot])
\n📚 Documentation \n\nAdd V0lantis as a contributor for bug (#1587 ) (36ab2fe ) - (allcontributors[bot]) \n \n⚙️ Miscellaneous Tasks \n\n⬆️ Upgrades \n\nUpgraded to v39.1.0 (#1583 ) \n \nCo-authored-by: jackton1 jackton1@users.noreply.github.com (fd73c12 ) - (tj-actions[bot])
\n39.1.0 - (2023-09-18) \n🚀 Features \n\nAdd support for returning YAML keys for paths that have changed (#1581 ) (5db7b57 ) - (Tonye Jack) \n \n\n \n... (truncated)
\n \n\nCommits \n\n \n \n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tj-actions/changed-files&package-manager=github_actions&previous-version=39.0.0&new-version=39.1.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options \n \n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n ",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54686/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54686/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54679",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54679/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54679/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54679/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54679",
+ "id": 1905915171,
+ "node_id": "PR_kwDOBNHdeM5a1UeG",
+ "number": 54679,
+ "title": "Site Editor: Reset 'Show template' toggle when leaving edit mode",
+ "user": {
+ "login": "ramonjd",
+ "id": 6458278,
+ "node_id": "MDQ6VXNlcjY0NTgyNzg=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/6458278?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ramonjd",
+ "html_url": "https://github.com/ramonjd",
+ "followers_url": "https://api.github.com/users/ramonjd/followers",
+ "following_url": "https://api.github.com/users/ramonjd/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ramonjd/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ramonjd/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ramonjd/subscriptions",
+ "organizations_url": "https://api.github.com/users/ramonjd/orgs",
+ "repos_url": "https://api.github.com/users/ramonjd/repos",
+ "events_url": "https://api.github.com/users/ramonjd/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ramonjd/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
+ "default": false,
+ "description": "An existing feature does not function as intended"
+ },
+ {
+ "id": 2706102777,
+ "node_id": "MDU6TGFiZWwyNzA2MTAyNzc3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Site%20Editor",
+ "name": "[Feature] Site Editor",
+ "color": "fbca04",
+ "default": false,
+ "description": "Related to the overarching Site Editor (formerly \"full site editing\")"
+ },
+ {
+ "id": 5663509033,
+ "node_id": "LA_kwDOBNHdeM8AAAABUZJKKQ",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Page%20Content%20Focus",
+ "name": "[Feature] Page Content Focus",
+ "color": "FBCA04",
+ "default": false,
+ "description": "Ability to toggle between focusing on editing the page and editing the template in the site editor."
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "ramonjd",
+ "id": 6458278,
+ "node_id": "MDQ6VXNlcjY0NTgyNzg=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/6458278?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ramonjd",
+ "html_url": "https://github.com/ramonjd",
+ "followers_url": "https://api.github.com/users/ramonjd/followers",
+ "following_url": "https://api.github.com/users/ramonjd/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ramonjd/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ramonjd/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ramonjd/subscriptions",
+ "organizations_url": "https://api.github.com/users/ramonjd/orgs",
+ "repos_url": "https://api.github.com/users/ramonjd/repos",
+ "events_url": "https://api.github.com/users/ramonjd/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ramonjd/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "ramonjd",
+ "id": 6458278,
+ "node_id": "MDQ6VXNlcjY0NTgyNzg=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/6458278?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ramonjd",
+ "html_url": "https://github.com/ramonjd",
+ "followers_url": "https://api.github.com/users/ramonjd/followers",
+ "following_url": "https://api.github.com/users/ramonjd/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ramonjd/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ramonjd/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ramonjd/subscriptions",
+ "organizations_url": "https://api.github.com/users/ramonjd/orgs",
+ "repos_url": "https://api.github.com/users/ramonjd/repos",
+ "events_url": "https://api.github.com/users/ramonjd/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ramonjd/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 2,
+ "created_at": "2023-09-21T01:12:52Z",
+ "updated_at": "2023-09-21T04:08:22Z",
+ "closed_at": "2023-09-21T04:07:54Z",
+ "author_association": "MEMBER",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54679",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54679",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54679.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54679.patch",
+ "merged_at": "2023-09-21T04:07:54Z"
+ },
+ "body": "\r\n\r\n\r\n## What?\r\nFollow up to:\r\n\r\n- https://github.com/WordPress/gutenberg/pull/52674\r\n\r\nThis commit:\r\n\r\n1. Resets the page content focus type if the canvas switches from edit mode. \r\n2. Refactors `use-page-content-blocks.js` to accept an object as an argument so that we can check in the editor if there are any page content blocks in the editor. If not, we do not render the show/hide template.\r\n\r\nNote: 1 is more glaring than 2. Happy to roll it back so we're only fixing the reset aspect. \r\n\r\n## Why?\r\n1. Previously, if the template was hidden it would display again when leaving canvas edit mode, but hide again when returning to edit mode.\r\n2. If there are no content blocks in the editor it doesn't make sense to show a toggle that does nothing.\r\n\r\n\r\n\r\n## Testing Instructions\r\n\r\n1. Go to Appearance → Editor → Pages, select or create a page, then edit it.\r\n2. In the Page settings sidebar, click on the Template dropdown and hide the template using the \"Template preview\" item. Navigate away from edit mode in the site editor by clicking on the WP logo. The template should reappear in view mode.\r\n4. Reenter the page. The template should still be visible and the \"Template preview\" item should be checked.\r\n5. Now create a new Page template with a paragraph block only. \r\n6. Apply that template to your page.\r\n7. Edit the page. The \"Template preview\" item should not be rendered since there are no post-title, post-content, or post-featured-image blocks in your template.\r\n\r\nRun the tests!\r\n\r\n```\r\nnpm run test:unit packages/edit-site/src/components/block-editor/block-editor-provider/test/use-page-content-blocks.js\r\n```\r\n\r\nhttps://github.com/WordPress/gutenberg/assets/6458278/03032218-8b88-4d91-9fc9-113f2c5f191b\r\n\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54679/reactions",
+ "total_count": 1,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 1,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54679/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54670",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54670/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54670/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54670/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54670",
+ "id": 1905421983,
+ "node_id": "PR_kwDOBNHdeM5azqeI",
+ "number": 54670,
+ "title": "Image: Fix duotone not being applied to lightbox image",
+ "user": {
+ "login": "artemiomorales",
+ "id": 5360536,
+ "node_id": "MDQ6VXNlcjUzNjA1MzY=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/5360536?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/artemiomorales",
+ "html_url": "https://github.com/artemiomorales",
+ "followers_url": "https://api.github.com/users/artemiomorales/followers",
+ "following_url": "https://api.github.com/users/artemiomorales/following{/other_user}",
+ "gists_url": "https://api.github.com/users/artemiomorales/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/artemiomorales/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/artemiomorales/subscriptions",
+ "organizations_url": "https://api.github.com/users/artemiomorales/orgs",
+ "repos_url": "https://api.github.com/users/artemiomorales/repos",
+ "events_url": "https://api.github.com/users/artemiomorales/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/artemiomorales/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
+ "default": false,
+ "description": "An existing feature does not function as intended"
+ },
+ {
+ "id": 1101518360,
+ "node_id": "MDU6TGFiZWwxMTAxNTE4MzYw",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Image",
+ "name": "[Block] Image",
+ "color": "6767e5",
+ "default": false,
+ "description": "Affects the Image Block"
+ },
+ {
+ "id": 5324461665,
+ "node_id": "LA_kwDOBNHdeM8AAAABPVzWYQ",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Interactivity%20API",
+ "name": "[Feature] Interactivity API",
+ "color": "fbca04",
+ "default": false,
+ "description": "Experimental API to add frontend interactivity to blocks."
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 1,
+ "created_at": "2023-09-20T17:18:55Z",
+ "updated_at": "2023-09-29T12:04:05Z",
+ "closed_at": "2023-09-25T17:04:23Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54670",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54670",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54670.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54670.patch",
+ "merged_at": "2023-09-25T17:04:23Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\nThe duotone filter was not being applied to the lightbox image. This PR fixes that.\r\n\r\n## Why?\r\n\r\nThe duotone compatibility was broken with the [recent lightbox changes](https://github.com/WordPress/gutenberg/pull/54071), and the lightbox should be compatible with all of the image's normal features.\r\n\r\n## How?\r\n\r\nIt moves the code to render the lightbox inside of a filter that will run after the duotone effects have been applied.\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n1. Insert an image in a post.\r\n2. Apply a duotone filter.\r\n3. Enable the lightbox using the block settings.\r\n4. Publish and view the post.\r\n5. Click on the image and see that the duotone has been applied to the image in the lightbox.",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54670/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54670/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54663",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54663/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54663/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54663/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54663",
+ "id": 1905040815,
+ "node_id": "PR_kwDOBNHdeM5ayXoB",
+ "number": 54663,
+ "title": "Update compact search control metrics",
+ "user": {
+ "login": "jameskoster",
+ "id": 846565,
+ "node_id": "MDQ6VXNlcjg0NjU2NQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/846565?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jameskoster",
+ "html_url": "https://github.com/jameskoster",
+ "followers_url": "https://api.github.com/users/jameskoster/followers",
+ "following_url": "https://api.github.com/users/jameskoster/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jameskoster/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jameskoster/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jameskoster/subscriptions",
+ "organizations_url": "https://api.github.com/users/jameskoster/orgs",
+ "repos_url": "https://api.github.com/users/jameskoster/repos",
+ "events_url": "https://api.github.com/users/jameskoster/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jameskoster/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 531680825,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
+ "name": "[Type] Enhancement",
+ "color": "FEF2C0",
+ "default": false,
+ "description": "A suggestion for improvement."
+ },
+ {
+ "id": 997392122,
+ "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
+ "name": "[Package] Components",
+ "color": "ed2572",
+ "default": false,
+ "description": "/packages/components"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 2,
+ "created_at": "2023-09-20T13:45:54Z",
+ "updated_at": "2023-09-21T12:47:51Z",
+ "closed_at": "2023-09-21T12:47:20Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54663",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54663",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54663.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54663.patch",
+ "merged_at": "2023-09-21T12:47:20Z"
+ },
+ "body": "Follow-up to https://github.com/WordPress/gutenberg/pull/54548.\r\n\r\n## What?\r\nUpdate `SizeControl` metrics when size is `compact`.\r\n\r\n## Why?\r\nBetter visual balance. The current spacing works well at 40/48px, but at the smaller 32px size it's a bit much.\r\n\r\n## Testing Instructions\r\n1. Run `npm run storybook:dev`, open `SearchControl` and set size to `compact`\r\n2. Observe the updated spacing\r\n\r\n### Before\r\n \r\n\r\n\r\n### After\r\n \r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54663/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54663/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54661",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54661/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54661/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54661/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54661",
+ "id": 1904979933,
+ "node_id": "PR_kwDOBNHdeM5ayKf-",
+ "number": 54661,
+ "title": "Bump actions/setup-java from 3.12.0 to 3.13.0",
+ "user": {
+ "login": "dependabot[bot]",
+ "id": 49699333,
+ "node_id": "MDM6Qm90NDk2OTkzMzM=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/29110?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/dependabot%5Bbot%5D",
+ "html_url": "https://github.com/apps/dependabot",
+ "followers_url": "https://api.github.com/users/dependabot%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dependabot%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/dependabot%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/dependabot%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dependabot%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 596512821,
+ "node_id": "MDU6TGFiZWw1OTY1MTI4MjE=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Build%20Tooling",
+ "name": "[Type] Build Tooling",
+ "color": "111111",
+ "default": false,
+ "description": "Issues or PRs related to build tooling"
+ },
+ {
+ "id": 4662565393,
+ "node_id": "LA_kwDOBNHdeM8AAAABFekaEQ",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/GitHub%20Actions",
+ "name": "GitHub Actions",
+ "color": "000000",
+ "default": false,
+ "description": "Pull requests that update GitHub Actions code"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 0,
+ "created_at": "2023-09-20T13:16:42Z",
+ "updated_at": "2023-09-22T00:18:14Z",
+ "closed_at": "2023-09-22T00:17:39Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54661",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54661",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54661.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54661.patch",
+ "merged_at": "2023-09-22T00:17:39Z"
+ },
+ "body": "Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3.12.0 to 3.13.0.\n\nRelease notes \nSourced from actions/setup-java's releases .
\n\nv3.13.0 \nWhat's changed \nIn the scope of this release, support for Dragonwell JDK was added by @Accelerator1996
in actions/setup-java#532
\nsteps:\n - name: Checkout\n uses: actions/checkout@v3\n - name: Setup-java\n uses: actions/setup-java@v3\n with:\n distribution: 'dragonwell'\n java-version: '17'\n
\nSeveral inaccuracies were also fixed:
\n\nNew Contributors \n\nFull Changelog : https://github.com/actions/setup-java/compare/v3...v3.13.0
\n \n \n\nCommits \n\n \n \n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/setup-java&package-manager=github_actions&previous-version=3.12.0&new-version=3.13.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options \n \n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n ",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54661/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54661/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54657",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54657/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54657/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54657/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54657",
+ "id": 1904604184,
+ "node_id": "PR_kwDOBNHdeM5aw4_U",
+ "number": 54657,
+ "title": "Scripts: Update webpack and related dependencies to the latest version",
+ "user": {
+ "login": "gziolo",
+ "id": 699132,
+ "node_id": "MDQ6VXNlcjY5OTEzMg==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/699132?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/gziolo",
+ "html_url": "https://github.com/gziolo",
+ "followers_url": "https://api.github.com/users/gziolo/followers",
+ "following_url": "https://api.github.com/users/gziolo/following{/other_user}",
+ "gists_url": "https://api.github.com/users/gziolo/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/gziolo/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/gziolo/subscriptions",
+ "organizations_url": "https://api.github.com/users/gziolo/orgs",
+ "repos_url": "https://api.github.com/users/gziolo/repos",
+ "events_url": "https://api.github.com/users/gziolo/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/gziolo/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 531680825,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
+ "name": "[Type] Enhancement",
+ "color": "FEF2C0",
+ "default": false,
+ "description": "A suggestion for improvement."
+ },
+ {
+ "id": 978007737,
+ "node_id": "MDU6TGFiZWw5NzgwMDc3Mzc=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Scripts",
+ "name": "[Package] Scripts",
+ "color": "ed2572",
+ "default": false,
+ "description": "/packages/scripts"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "gziolo",
+ "id": 699132,
+ "node_id": "MDQ6VXNlcjY5OTEzMg==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/699132?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/gziolo",
+ "html_url": "https://github.com/gziolo",
+ "followers_url": "https://api.github.com/users/gziolo/followers",
+ "following_url": "https://api.github.com/users/gziolo/following{/other_user}",
+ "gists_url": "https://api.github.com/users/gziolo/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/gziolo/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/gziolo/subscriptions",
+ "organizations_url": "https://api.github.com/users/gziolo/orgs",
+ "repos_url": "https://api.github.com/users/gziolo/repos",
+ "events_url": "https://api.github.com/users/gziolo/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/gziolo/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "gziolo",
+ "id": 699132,
+ "node_id": "MDQ6VXNlcjY5OTEzMg==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/699132?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/gziolo",
+ "html_url": "https://github.com/gziolo",
+ "followers_url": "https://api.github.com/users/gziolo/followers",
+ "following_url": "https://api.github.com/users/gziolo/following{/other_user}",
+ "gists_url": "https://api.github.com/users/gziolo/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/gziolo/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/gziolo/subscriptions",
+ "organizations_url": "https://api.github.com/users/gziolo/orgs",
+ "repos_url": "https://api.github.com/users/gziolo/repos",
+ "events_url": "https://api.github.com/users/gziolo/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/gziolo/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 4,
+ "created_at": "2023-09-20T09:42:16Z",
+ "updated_at": "2023-09-21T11:20:38Z",
+ "closed_at": "2023-09-21T11:17:43Z",
+ "author_association": "MEMBER",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54657",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54657",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54657.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54657.patch",
+ "merged_at": "2023-09-21T11:17:43Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\n\r\nLet's bring webpack and related dependencies to the latest version and apply them to WordPress core around 6.4 Beta 1:\r\n\r\n- `webpack` updated to the latest version\r\n- `browserslist` and `caniuse-lite` updated to the latest version\r\n- `react-refresh` updated to the latest version\r\n\r\nIn addition, it tries to fix https://github.com/WordPress/gutenberg/issues/53552 caused by the outdated version of `webpack-cli`:\r\n\r\n> When ncu was executed, @wordpress/scripts was displayed as ^26.9.0 → ^26.10.0, so ncu -u npm install was executed in sequence.\r\n> As a result, several npm modules were shown as deprecated as follows:\r\n> \r\n> npm WARN deprecated debuglog@1.0.1: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.\r\n> npm WARN deprecated readdir-scoped-modules@1.1.0: This functionality has been moved to @npmcli/fs\r\n> npm WARN deprecated @npmcli/move-file@1.1.2: This functionality has been moved to @npmcli/fs\r\n> npm WARN deprecated @npmcli/move-file@2.0.1: This functionality has been moved to @npmcli/fs\r\n\r\n## Why?\r\n\r\n\r\n> These issues has been resolved in https://github.com/webpack/webpack-cli/issues/3891, https://github.com/webpack/webpack-cli/issues/3892, and https://github.com/webpack/webpack-cli/issues/3893 reported in webpack-cli, so it is appropriate to replace it with the latest version.\r\n\r\n## How?\r\n\r\n\r\nIt brings `webpack-cli` to the latest version. There were some breaking changes in [v5.0.0](https://github.com/webpack/webpack-cli/releases/tag/webpack-cli%405.0.0), but they don't seem to have impact like:\r\n- remove the `--hot` option in favor of directly using the `HotModuleReplacement` plugin (only for build command, for serve it will work). I don't see the listed deprecated packages in the lock file anymore.\r\n\r\nThere was a recent version bump enforced for the `webpack` in the repository with https://github.com/WordPress/gutenberg/pull/49075, so here we follow-up with another version bump that also gets applied to `@wordpress/scripts`.\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n\r\n1. Run `nvm use` to switch to the currently supported Node.js and npm versions.\r\n2. Run `npm install` to install the latest version of dependencies.\r\n3. Run `npm run build` and confirm the the build finishes correctly.\r\n4. Run `npx wp-create-block example-static --no-wp-scripts` to confirm that Create Block still works.\r\n5. Run `cd example-statice` to enter the newly created project.\r\n6. Run `../node_modules/.bin/wp-scripts start --hot` to confirm that you can develop blocks with the dev server.\r\n7. Open the site at https://localhost:8888/wp-admin, go to the post editor and confirm that you can insert Example Static block.\r\n8. Edit the JS code of the block in the editor. It must be something controlled by React, for example `edit` function. See that the block gets automatically updated in the post editor after saving changes locally.\r\n\r\n## Screenshots or screencast \r\n\r\nI confirmed that React Fast Refresh still works with the updated `webpack-cli` and other dependencies:\r\n\r\n \r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54657/reactions",
+ "total_count": 1,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 1,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54657/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54655",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54655/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54655/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54655/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54655",
+ "id": 1904534595,
+ "node_id": "PR_kwDOBNHdeM5awp_T",
+ "number": 54655,
+ "title": "Font Library: move font uploads to a new tab",
+ "user": {
+ "login": "madhusudhand",
+ "id": 1935113,
+ "node_id": "MDQ6VXNlcjE5MzUxMTM=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1935113?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/madhusudhand",
+ "html_url": "https://github.com/madhusudhand",
+ "followers_url": "https://api.github.com/users/madhusudhand/followers",
+ "following_url": "https://api.github.com/users/madhusudhand/following{/other_user}",
+ "gists_url": "https://api.github.com/users/madhusudhand/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/madhusudhand/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/madhusudhand/subscriptions",
+ "organizations_url": "https://api.github.com/users/madhusudhand/orgs",
+ "repos_url": "https://api.github.com/users/madhusudhand/repos",
+ "events_url": "https://api.github.com/users/madhusudhand/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/madhusudhand/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
+ "default": false,
+ "description": "An existing feature does not function as intended"
+ },
+ {
+ "id": 4366600186,
+ "node_id": "LA_kwDOBNHdeM8AAAABBEUH-g",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Typography",
+ "name": "[Feature] Typography",
+ "color": "fbca04",
+ "default": false,
+ "description": "Font and typography-related issues and PRs"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 10,
+ "created_at": "2023-09-20T09:04:26Z",
+ "updated_at": "2023-09-29T12:05:25Z",
+ "closed_at": "2023-09-28T17:56:40Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54655",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54655",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54655.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54655.patch",
+ "merged_at": "2023-09-28T17:56:40Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\n\r\nAs suggested by the design, this change moves the font uploads section to a new tab and provides appropriate error messages when upload fails.\r\n\r\nIt also removes the use of snackbar.\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n\r\n1. Open font library modal from global style -> typography.\r\n2. Observe that the uploads section is now moved to a new tab.\r\n3. Try uploading fonts.\r\n4. Upon error, it should show an error in the same tab and should not invoke snackbar.\r\n\r\n## Screenshots or screencast \r\n\r\n \r\n\r\n## Related issues:\r\n\r\nFixes: #54504\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54655/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54655/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54654",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54654/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54654/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54654/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54654",
+ "id": 1904522215,
+ "node_id": "PR_kwDOBNHdeM5awnYE",
+ "number": 54654,
+ "title": "Removed unwanted space from the string",
+ "user": {
+ "login": "mujuonly",
+ "id": 459367,
+ "node_id": "MDQ6VXNlcjQ1OTM2Nw==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/459367?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/mujuonly",
+ "html_url": "https://github.com/mujuonly",
+ "followers_url": "https://api.github.com/users/mujuonly/followers",
+ "following_url": "https://api.github.com/users/mujuonly/following{/other_user}",
+ "gists_url": "https://api.github.com/users/mujuonly/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/mujuonly/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/mujuonly/subscriptions",
+ "organizations_url": "https://api.github.com/users/mujuonly/orgs",
+ "repos_url": "https://api.github.com/users/mujuonly/repos",
+ "events_url": "https://api.github.com/users/mujuonly/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/mujuonly/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 930001208,
+ "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
+ "name": "[Type] Code Quality",
+ "color": "e5e04b",
+ "default": false,
+ "description": "Issues or PRs that relate to code quality"
+ },
+ {
+ "id": 1101517892,
+ "node_id": "MDU6TGFiZWwxMTAxNTE3ODky",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Cover",
+ "name": "[Block] Cover",
+ "color": "6767e5",
+ "default": false,
+ "description": "Affects the Cover Block - used to display content laid over a background image"
+ },
+ {
+ "id": 1225853227,
+ "node_id": "MDU6TGFiZWwxMjI1ODUzMjI3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Navigation",
+ "name": "[Block] Navigation",
+ "color": "6767e5",
+ "default": false,
+ "description": "Affects the Navigation Block"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "alexstine",
+ "id": 13755480,
+ "node_id": "MDQ6VXNlcjEzNzU1NDgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/13755480?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/alexstine",
+ "html_url": "https://github.com/alexstine",
+ "followers_url": "https://api.github.com/users/alexstine/followers",
+ "following_url": "https://api.github.com/users/alexstine/following{/other_user}",
+ "gists_url": "https://api.github.com/users/alexstine/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/alexstine/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/alexstine/subscriptions",
+ "organizations_url": "https://api.github.com/users/alexstine/orgs",
+ "repos_url": "https://api.github.com/users/alexstine/repos",
+ "events_url": "https://api.github.com/users/alexstine/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/alexstine/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "alexstine",
+ "id": 13755480,
+ "node_id": "MDQ6VXNlcjEzNzU1NDgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/13755480?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/alexstine",
+ "html_url": "https://github.com/alexstine",
+ "followers_url": "https://api.github.com/users/alexstine/followers",
+ "following_url": "https://api.github.com/users/alexstine/following{/other_user}",
+ "gists_url": "https://api.github.com/users/alexstine/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/alexstine/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/alexstine/subscriptions",
+ "organizations_url": "https://api.github.com/users/alexstine/orgs",
+ "repos_url": "https://api.github.com/users/alexstine/repos",
+ "events_url": "https://api.github.com/users/alexstine/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/alexstine/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 5,
+ "created_at": "2023-09-20T08:57:57Z",
+ "updated_at": "2023-10-04T11:05:25Z",
+ "closed_at": "2023-09-23T02:30:34Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54654",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54654",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54654.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54654.patch",
+ "merged_at": "2023-09-23T02:30:34Z"
+ },
+ "body": "\r\n## What?\r\nRemoved unwanted space in the string\r\n\r\n\r\n## Why?\r\nUnwanted space at the end of the string shows warning at translation.\r\n\r\n## How?\r\nRemoved unwanted space in the string\r\n\r\n## Testing Instructions\r\nText correction only\r\n\r\n\r\n### Testing Instructions for Keyboard\r\nText correction only\r\n\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54654/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54654/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54639",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54639/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54639/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54639/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54639",
+ "id": 1903879155,
+ "node_id": "PR_kwDOBNHdeM5aubqB",
+ "number": 54639,
+ "title": "Image: Ensure `false` values are preserved in memory when defined in `theme.json`",
+ "user": {
+ "login": "artemiomorales",
+ "id": 5360536,
+ "node_id": "MDQ6VXNlcjUzNjA1MzY=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/5360536?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/artemiomorales",
+ "html_url": "https://github.com/artemiomorales",
+ "followers_url": "https://api.github.com/users/artemiomorales/followers",
+ "following_url": "https://api.github.com/users/artemiomorales/following{/other_user}",
+ "gists_url": "https://api.github.com/users/artemiomorales/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/artemiomorales/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/artemiomorales/subscriptions",
+ "organizations_url": "https://api.github.com/users/artemiomorales/orgs",
+ "repos_url": "https://api.github.com/users/artemiomorales/repos",
+ "events_url": "https://api.github.com/users/artemiomorales/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/artemiomorales/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
+ "default": false,
+ "description": "An existing feature does not function as intended"
+ },
+ {
+ "id": 1101518360,
+ "node_id": "MDU6TGFiZWwxMTAxNTE4MzYw",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Image",
+ "name": "[Block] Image",
+ "color": "6767e5",
+ "default": false,
+ "description": "Affects the Image Block"
+ },
+ {
+ "id": 1800807983,
+ "node_id": "MDU6TGFiZWwxODAwODA3OTgz",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Global%20Styles",
+ "name": "Global Styles",
+ "color": "2100b7",
+ "default": false,
+ "description": "Anything related to the broader Global Styles efforts, including Styles Engine and theme.json"
+ },
+ {
+ "id": 5324461665,
+ "node_id": "LA_kwDOBNHdeM8AAAABPVzWYQ",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Interactivity%20API",
+ "name": "[Feature] Interactivity API",
+ "color": "fbca04",
+ "default": false,
+ "description": "Experimental API to add frontend interactivity to blocks."
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 4,
+ "created_at": "2023-09-20T00:08:25Z",
+ "updated_at": "2023-09-29T12:04:30Z",
+ "closed_at": "2023-09-27T11:19:12Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54639",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54639",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54639.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54639.patch",
+ "merged_at": "2023-09-27T11:19:12Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\nThis PR ensures `false` values are preserved in our in-memory representation of `theme.json` settings when constructing the Global Styles UI.\r\n\r\n## Why?\r\n\r\nAddresses https://github.com/WordPress/gutenberg/issues/54638\r\n\r\nBy making the in-memory settings match the settings provided in the `theme.json`, I believe this will help us achieve consistency in https://github.com/WordPress/gutenberg/issues/54544 and https://github.com/WordPress/gutenberg/issues/54635.\r\n\r\nLargely I'm opening this PR to discuss what the expected behavior should be, and to see if this is an appropriate change.\r\n\r\n## How?\r\n\r\nIt modifies the conditional in `useGlobalSetting` of [packages/block-editor/src/components/global-styles/hooks.js](https://github.com/WordPress/gutenberg/blob/23bb9301902bb5825480240bd5aaec9d3cc3c380/packages/block-editor/src/components/global-styles/hooks.js#L91).\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n1. In the [screen-block.js file](https://github.com/WordPress/gutenberg/blob/23bb9301902bb5825480240bd5aaec9d3cc3c380/packages/edit-site/src/components/global-styles/screen-block.js#L95), add a console.log for `rawSettings` around line 95.\r\n2. Open your web inspector and go to the Image settings in the Global Styles.\r\n3. See that the `lightbox.allowEditing: true` from the default Gutenberg `theme.json` is visible in the logged statement as expected.\r\n\r\n \r\n\r\n4. Modify your theme's `theme.json` to include the following setting to overwrite the default `allowEditing` value:\r\n```\r\n\"settings\": {\r\n \"blocks\": {\r\n \"core/image\": {\r\n \"lightbox\": {\r\n \"allowEditing\" false\r\n }\r\n }\r\n }\r\n}\r\n```\r\n5. Revisit the Image settings in the Global Styles, and see that the `rawSettings` value is preserved.\r\n\r\n \r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54639/reactions",
+ "total_count": 2,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 2,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54639/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54637",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54637/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54637/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54637/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54637",
+ "id": 1903854433,
+ "node_id": "PR_kwDOBNHdeM5auWbY",
+ "number": 54637,
+ "title": "Use `wp_get_inline_script_tag()` in `build_dropdown_script_block_core_categories()`",
+ "user": {
+ "login": "westonruter",
+ "id": 134745,
+ "node_id": "MDQ6VXNlcjEzNDc0NQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/134745?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/westonruter",
+ "html_url": "https://github.com/westonruter",
+ "followers_url": "https://api.github.com/users/westonruter/followers",
+ "following_url": "https://api.github.com/users/westonruter/following{/other_user}",
+ "gists_url": "https://api.github.com/users/westonruter/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/westonruter/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/westonruter/subscriptions",
+ "organizations_url": "https://api.github.com/users/westonruter/orgs",
+ "repos_url": "https://api.github.com/users/westonruter/repos",
+ "events_url": "https://api.github.com/users/westonruter/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/westonruter/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 531680825,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
+ "name": "[Type] Enhancement",
+ "color": "FEF2C0",
+ "default": false,
+ "description": "A suggestion for improvement."
+ },
+ {
+ "id": 1113238583,
+ "node_id": "MDU6TGFiZWwxMTEzMjM4NTgz",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Categories",
+ "name": "[Block] Categories",
+ "color": "6767e5",
+ "default": false,
+ "description": "Affects the Categories Block"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 2,
+ "created_at": "2023-09-19T23:30:07Z",
+ "updated_at": "2023-09-21T17:53:36Z",
+ "closed_at": "2023-09-21T17:50:09Z",
+ "author_association": "MEMBER",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54637",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54637",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54637.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54637.patch",
+ "merged_at": "2023-09-21T17:50:09Z"
+ },
+ "body": "See Core-58664. By using `wp_get_inline_script_tag()` instead of manually constructing `script` tags, key benefits can be gained, for example being able to use Strict CSP. This change was originally in https://github.com/WordPress/wordpress-develop/pull/4773 but it needed to be upstreamed in Gutenberg.",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54637/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54637/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54622",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54622/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54622/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54622/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54622",
+ "id": 1903645061,
+ "node_id": "PR_kwDOBNHdeM5atoz3",
+ "number": 54622,
+ "title": "Default suggested links to pages",
+ "user": {
+ "login": "draganescu",
+ "id": 107534,
+ "node_id": "MDQ6VXNlcjEwNzUzNA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/107534?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/draganescu",
+ "html_url": "https://github.com/draganescu",
+ "followers_url": "https://api.github.com/users/draganescu/followers",
+ "following_url": "https://api.github.com/users/draganescu/following{/other_user}",
+ "gists_url": "https://api.github.com/users/draganescu/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/draganescu/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/draganescu/subscriptions",
+ "organizations_url": "https://api.github.com/users/draganescu/orgs",
+ "repos_url": "https://api.github.com/users/draganescu/repos",
+ "events_url": "https://api.github.com/users/draganescu/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/draganescu/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 531680825,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
+ "name": "[Type] Enhancement",
+ "color": "FEF2C0",
+ "default": false,
+ "description": "A suggestion for improvement."
+ },
+ {
+ "id": 644027893,
+ "node_id": "MDU6TGFiZWw2NDQwMjc4OTM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Needs%20Design%20Feedback",
+ "name": "Needs Design Feedback",
+ "color": "0e8a16",
+ "default": false,
+ "description": "Needs general design feedback."
+ },
+ {
+ "id": 1225853227,
+ "node_id": "MDU6TGFiZWwxMjI1ODUzMjI3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Navigation",
+ "name": "[Block] Navigation",
+ "color": "6767e5",
+ "default": false,
+ "description": "Affects the Navigation Block"
+ },
+ {
+ "id": 1838782557,
+ "node_id": "MDU6TGFiZWwxODM4NzgyNTU3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Link%20Editing",
+ "name": "[Feature] Link Editing",
+ "color": "fbca04",
+ "default": false,
+ "description": "Link components (LinkControl, URLInput) and integrations (RichText link formatting)"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 20,
+ "created_at": "2023-09-19T19:59:22Z",
+ "updated_at": "2023-10-02T11:30:06Z",
+ "closed_at": "2023-10-02T11:24:13Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54622",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54622",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54622.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54622.patch",
+ "merged_at": "2023-10-02T11:24:13Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\n\r\nCloses #53904 - defaults suggestions in LinkUI to pages.\r\n\r\n~~This change applies in all linking instances where linking UI shows suggestions, not only in the navigation block as the original issue asks.\r\n\r\nI think this is good for consistency and also because the mixed suggestions seem less likely to be helpful.~~\r\n\r\n## Why?\r\n\r\n\r\nBecause most linking is either towards pages or external links. ~~For taxonomy links or posts it is far more likely to need to filter by search term.~~\r\n\r\nPages are generally few in number and therefore it makes sense to always default to suggesting existing pages.\r\n\r\n## How?\r\n\r\n\r\nThis is how the suggestions are setup and shown in the navigation link block, part of the navigation block:\r\n\r\n![Untitled-2023-09-28-1158(1)](https://github.com/WordPress/gutenberg/assets/107534/c9497cae-9a77-4029-a1d8-3da32a936f24)\r\n\r\n~~This exploration changes how the core data (!) `fetchLinkSuggestions` ... util? works. This currently searches through everything and tries to show _something_.\r\n\r\nThe change defaults to always showing pages if the call is for \"initial suggestions\" - which also means:\r\n\r\n- if there are no pages there are no suggestions\r\n- there will always be the same suggestions~~\r\n\r\nThe PR introduces a new member of the search options object that gets eventually used by `fetchLinkSuggestions`. This new `initialSuggestionsSearchOptions` member overrides all the options in `searchOptions;` for the initial suggestions.\r\n\r\nThe navigation link block now uses this to default to suggesting a max of 20 pages initially for the custom link variation.\r\n\r\n\r\n## Testing Instructions\r\n\r\n0. Make sure you have some published pages, then\r\n1. In a post \r\n2. Add a navigation block\r\n3. Notice when adding items the suggestions are only pages\r\n\r\n### Testing Instructions for Keyboard\r\n\r\n\r\nN/A\r\n\r\n## Screenshots or screencast \r\n\r\nhttps://github.com/WordPress/gutenberg/assets/107534/052de3bb-a75b-48a4-b3f6-d1f2dc615ff0\r\n\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54622/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54622/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54613",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54613/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54613/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54613/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54613",
+ "id": 1903321813,
+ "node_id": "PR_kwDOBNHdeM5asjCB",
+ "number": 54613,
+ "title": "Add a brief description to the Footnotes block",
+ "user": {
+ "login": "aurooba",
+ "id": 6925260,
+ "node_id": "MDQ6VXNlcjY5MjUyNjA=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/6925260?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/aurooba",
+ "html_url": "https://github.com/aurooba",
+ "followers_url": "https://api.github.com/users/aurooba/followers",
+ "following_url": "https://api.github.com/users/aurooba/following{/other_user}",
+ "gists_url": "https://api.github.com/users/aurooba/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/aurooba/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/aurooba/subscriptions",
+ "organizations_url": "https://api.github.com/users/aurooba/orgs",
+ "repos_url": "https://api.github.com/users/aurooba/repos",
+ "events_url": "https://api.github.com/users/aurooba/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/aurooba/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 531680825,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
+ "name": "[Type] Enhancement",
+ "color": "FEF2C0",
+ "default": false,
+ "description": "A suggestion for improvement."
+ },
+ {
+ "id": 5654261232,
+ "node_id": "LA_kwDOBNHdeM8AAAABUQUt8A",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Footnotes",
+ "name": "[Block] Footnotes",
+ "color": "6767e5",
+ "default": false,
+ "description": "Affects the Footnotes Block"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 3,
+ "created_at": "2023-09-19T16:12:11Z",
+ "updated_at": "2023-10-07T20:55:36Z",
+ "closed_at": "2023-09-27T01:52:50Z",
+ "author_association": "MEMBER",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54613",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54613",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54613.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54613.patch",
+ "merged_at": "2023-09-27T01:52:50Z"
+ },
+ "body": "\r\n\r\n## What and Why?\r\n\r\nI noticed there was no description for the Footnotes block. This PR adds a brief one in a similar style to other Core Block descriptions: `Display footnotes added to the page.`. Happy to adjust based on feedback!\r\n\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54613/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54613/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54609",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54609/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54609/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54609/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54609",
+ "id": 1903191219,
+ "node_id": "PR_kwDOBNHdeM5asG2a",
+ "number": 54609,
+ "title": "Add template replace flow to template inspector",
+ "user": {
+ "login": "scruffian",
+ "id": 275961,
+ "node_id": "MDQ6VXNlcjI3NTk2MQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/275961?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/scruffian",
+ "html_url": "https://github.com/scruffian",
+ "followers_url": "https://api.github.com/users/scruffian/followers",
+ "following_url": "https://api.github.com/users/scruffian/following{/other_user}",
+ "gists_url": "https://api.github.com/users/scruffian/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/scruffian/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/scruffian/subscriptions",
+ "organizations_url": "https://api.github.com/users/scruffian/orgs",
+ "repos_url": "https://api.github.com/users/scruffian/repos",
+ "events_url": "https://api.github.com/users/scruffian/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/scruffian/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 531680825,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
+ "name": "[Type] Enhancement",
+ "color": "FEF2C0",
+ "default": false,
+ "description": "A suggestion for improvement."
+ },
+ {
+ "id": 2706102777,
+ "node_id": "MDU6TGFiZWwyNzA2MTAyNzc3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Site%20Editor",
+ "name": "[Feature] Site Editor",
+ "color": "fbca04",
+ "default": false,
+ "description": "Related to the overarching Site Editor (formerly \"full site editing\")"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "scruffian",
+ "id": 275961,
+ "node_id": "MDQ6VXNlcjI3NTk2MQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/275961?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/scruffian",
+ "html_url": "https://github.com/scruffian",
+ "followers_url": "https://api.github.com/users/scruffian/followers",
+ "following_url": "https://api.github.com/users/scruffian/following{/other_user}",
+ "gists_url": "https://api.github.com/users/scruffian/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/scruffian/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/scruffian/subscriptions",
+ "organizations_url": "https://api.github.com/users/scruffian/orgs",
+ "repos_url": "https://api.github.com/users/scruffian/repos",
+ "events_url": "https://api.github.com/users/scruffian/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/scruffian/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "scruffian",
+ "id": 275961,
+ "node_id": "MDQ6VXNlcjI3NTk2MQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/275961?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/scruffian",
+ "html_url": "https://github.com/scruffian",
+ "followers_url": "https://api.github.com/users/scruffian/followers",
+ "following_url": "https://api.github.com/users/scruffian/following{/other_user}",
+ "gists_url": "https://api.github.com/users/scruffian/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/scruffian/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/scruffian/subscriptions",
+ "organizations_url": "https://api.github.com/users/scruffian/orgs",
+ "repos_url": "https://api.github.com/users/scruffian/repos",
+ "events_url": "https://api.github.com/users/scruffian/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/scruffian/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 11,
+ "created_at": "2023-09-19T15:01:58Z",
+ "updated_at": "2023-10-04T09:37:57Z",
+ "closed_at": "2023-10-03T20:13:49Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54609",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54609",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54609.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54609.patch",
+ "merged_at": "2023-10-03T20:13:49Z"
+ },
+ "body": "\r\n\r\n## What?\r\nAdd template replace flow to template inspector - fixes https://github.com/WordPress/gutenberg/issues/54562\r\n\r\n## Why?\r\nTwenty Twenty-Four is exploring adding alternate template types for the home, index, single and page templates. While the effort in https://github.com/WordPress/gutenberg/pull/51477 brings alternate template selection to pages, templates still do not have this capability.\r\n\r\nThere's currently not a method for someone to swap a template directly with another templateType.\r\n\r\n## How?\r\nAdd a new ReplaceTemplateButton component which opens a modal of available templates and lets a user pick the correct on.\r\n\r\n## Testing Instructions\r\n1. Open the Site Editor and go to the template inspector.\r\n2. You should see a button that allows you to replace your current template\r\n3. This button should open a modal allowing you to select a different template\r\n4. When you select a different template, the contents of your old template should be replace with the one you selected and the entity should be dirty.\r\n\r\n## Screenshots or screencast \r\n\r\n\r\n\r\nhttps://github.com/WordPress/gutenberg/assets/107534/391a3c24-4b5d-4754-b51b-4c99851097b2\r\n\r\n\r\n\r\n\r\nThis work is heavily based on https://github.com/WordPress/gutenberg/pull/51477",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54609/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54609/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54606",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54606/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54606/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54606/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54606",
+ "id": 1903085418,
+ "node_id": "PR_kwDOBNHdeM5arv4p",
+ "number": 54606,
+ "title": "Replace turbo-combine-reducers with combineReducers from Redux",
+ "user": {
+ "login": "jsnajdr",
+ "id": 664258,
+ "node_id": "MDQ6VXNlcjY2NDI1OA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/664258?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jsnajdr",
+ "html_url": "https://github.com/jsnajdr",
+ "followers_url": "https://api.github.com/users/jsnajdr/followers",
+ "following_url": "https://api.github.com/users/jsnajdr/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jsnajdr/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jsnajdr/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jsnajdr/subscriptions",
+ "organizations_url": "https://api.github.com/users/jsnajdr/orgs",
+ "repos_url": "https://api.github.com/users/jsnajdr/repos",
+ "events_url": "https://api.github.com/users/jsnajdr/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jsnajdr/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 937321166,
+ "node_id": "MDU6TGFiZWw5MzczMjExNjY=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Data",
+ "name": "[Package] Data",
+ "color": "ed2572",
+ "default": false,
+ "description": "/packages/data"
+ },
+ {
+ "id": 2427431264,
+ "node_id": "MDU6TGFiZWwyNDI3NDMxMjY0",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Security",
+ "name": "[Type] Security",
+ "color": "dd6c0f",
+ "default": false,
+ "description": "Related to security concerns or efforts"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "jsnajdr",
+ "id": 664258,
+ "node_id": "MDQ6VXNlcjY2NDI1OA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/664258?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jsnajdr",
+ "html_url": "https://github.com/jsnajdr",
+ "followers_url": "https://api.github.com/users/jsnajdr/followers",
+ "following_url": "https://api.github.com/users/jsnajdr/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jsnajdr/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jsnajdr/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jsnajdr/subscriptions",
+ "organizations_url": "https://api.github.com/users/jsnajdr/orgs",
+ "repos_url": "https://api.github.com/users/jsnajdr/repos",
+ "events_url": "https://api.github.com/users/jsnajdr/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jsnajdr/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "jsnajdr",
+ "id": 664258,
+ "node_id": "MDQ6VXNlcjY2NDI1OA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/664258?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jsnajdr",
+ "html_url": "https://github.com/jsnajdr",
+ "followers_url": "https://api.github.com/users/jsnajdr/followers",
+ "following_url": "https://api.github.com/users/jsnajdr/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jsnajdr/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jsnajdr/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jsnajdr/subscriptions",
+ "organizations_url": "https://api.github.com/users/jsnajdr/orgs",
+ "repos_url": "https://api.github.com/users/jsnajdr/repos",
+ "events_url": "https://api.github.com/users/jsnajdr/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jsnajdr/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 5,
+ "created_at": "2023-09-19T14:10:19Z",
+ "updated_at": "2023-09-29T18:38:38Z",
+ "closed_at": "2023-09-29T18:38:10Z",
+ "author_association": "MEMBER",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54606",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54606",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54606.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54606.patch",
+ "merged_at": "2023-09-29T18:38:09Z"
+ },
+ "body": "This is still an experiment, I'm opening a PR mainly to get performance test results.\r\n\r\nThere are two major problems with `combineReducers` in Redux.\r\n\r\nFirst, it doesn't allow slice reducers to ever return `undefined` state. `undefined` means uninitialized and every reducer is supposed to return an \"initialized\" inital state when `undefined` state is passed. We have many reducers that use `undefined`, and this PR has to modify them to use `null` instead. Otherwise, `combineReducers` will throw an exception and the app will crash. The prohibition on `undefined` will be a breaking change that we probably can't afford to do.\r\n\r\nSecond, it logs a warning when the combined reducer function is called with a state that contains unknown keys, with no reducer for them. For example, consider combining `foo` and `bar` reducers with `combineReducers( { foo, bar } )`. Then, when you pass an object with shape `{ foo, bar, baz }` as `state`, `combineReducers` doesn't like the `baz` field, because there is no sub-reducer to pass it to. The warning is:\r\n```\r\nUnexpected key \"baz\" found in preloadedState argument passed to createStore.\r\nExpected to find one of the known reducer keys instead: \"foo\", \"bar\".\r\nUnexpected keys will be ignored.\r\n```\r\n\r\nThe `core/blocks` store very often uses an enhancer pattern that leads to these \"unexpected key\" warnings:\r\n```js\r\nfunction withIgnoredBlockChange( reducer ) {\r\n return ( state, action ) => {\r\n const nextState = reducer( state, action );\r\n if ( nextState !== state ) {\r\n nextState.isIgnoredChange = action.type === 'RECEIVE_BLOCKS';\r\n }\r\n return nextState;\r\n };\r\n}\r\n```\r\nThis enhancer calls the inner reducer and then adds the `isIgnoredChange` field to the existing ones. If the inner reducer is a result of `combineReducers`, it will complain about the unknown key. Although everything works, there's nothing really wrong with this pattern.\r\n\r\nFor these two reasons, we'll probably have to write our own version of `combineReducers`.\r\n\r\nFixes #42513.",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54606/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54606/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54597",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54597/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54597/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54597/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54597",
+ "id": 1902793171,
+ "node_id": "PR_kwDOBNHdeM5aqwIe",
+ "number": 54597,
+ "title": "Move dependencies to the right place",
+ "user": {
+ "login": "scruffian",
+ "id": 275961,
+ "node_id": "MDQ6VXNlcjI3NTk2MQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/275961?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/scruffian",
+ "html_url": "https://github.com/scruffian",
+ "followers_url": "https://api.github.com/users/scruffian/followers",
+ "following_url": "https://api.github.com/users/scruffian/following{/other_user}",
+ "gists_url": "https://api.github.com/users/scruffian/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/scruffian/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/scruffian/subscriptions",
+ "organizations_url": "https://api.github.com/users/scruffian/orgs",
+ "repos_url": "https://api.github.com/users/scruffian/repos",
+ "events_url": "https://api.github.com/users/scruffian/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/scruffian/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 930001208,
+ "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
+ "name": "[Type] Code Quality",
+ "color": "e5e04b",
+ "default": false,
+ "description": "Issues or PRs that relate to code quality"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "scruffian",
+ "id": 275961,
+ "node_id": "MDQ6VXNlcjI3NTk2MQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/275961?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/scruffian",
+ "html_url": "https://github.com/scruffian",
+ "followers_url": "https://api.github.com/users/scruffian/followers",
+ "following_url": "https://api.github.com/users/scruffian/following{/other_user}",
+ "gists_url": "https://api.github.com/users/scruffian/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/scruffian/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/scruffian/subscriptions",
+ "organizations_url": "https://api.github.com/users/scruffian/orgs",
+ "repos_url": "https://api.github.com/users/scruffian/repos",
+ "events_url": "https://api.github.com/users/scruffian/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/scruffian/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "scruffian",
+ "id": 275961,
+ "node_id": "MDQ6VXNlcjI3NTk2MQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/275961?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/scruffian",
+ "html_url": "https://github.com/scruffian",
+ "followers_url": "https://api.github.com/users/scruffian/followers",
+ "following_url": "https://api.github.com/users/scruffian/following{/other_user}",
+ "gists_url": "https://api.github.com/users/scruffian/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/scruffian/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/scruffian/subscriptions",
+ "organizations_url": "https://api.github.com/users/scruffian/orgs",
+ "repos_url": "https://api.github.com/users/scruffian/repos",
+ "events_url": "https://api.github.com/users/scruffian/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/scruffian/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 2,
+ "created_at": "2023-09-19T11:46:09Z",
+ "updated_at": "2023-09-26T13:00:55Z",
+ "closed_at": "2023-09-26T13:00:24Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54597",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54597",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54597.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54597.patch",
+ "merged_at": "2023-09-26T13:00:24Z"
+ },
+ "body": "\r\n\r\n## What?\r\nMoving the dependency declarations to the right place.\r\n\r\n## Why?\r\nCode quality\r\n\r\n## How?\r\nRefactor\r\n\r\n## Testing Instructions\r\nEverything should work as before.\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54597/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54597/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54573",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54573/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54573/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54573/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54573",
+ "id": 1901569913,
+ "node_id": "PR_kwDOBNHdeM5amm8F",
+ "number": 54573,
+ "title": "Remove unused components from `ui/`",
+ "user": {
+ "login": "brookewp",
+ "id": 35543432,
+ "node_id": "MDQ6VXNlcjM1NTQzNDMy",
+ "avatar_url": "https://avatars.githubusercontent.com/u/35543432?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/brookewp",
+ "html_url": "https://github.com/brookewp",
+ "followers_url": "https://api.github.com/users/brookewp/followers",
+ "following_url": "https://api.github.com/users/brookewp/following{/other_user}",
+ "gists_url": "https://api.github.com/users/brookewp/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/brookewp/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/brookewp/subscriptions",
+ "organizations_url": "https://api.github.com/users/brookewp/orgs",
+ "repos_url": "https://api.github.com/users/brookewp/repos",
+ "events_url": "https://api.github.com/users/brookewp/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/brookewp/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 531680825,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
+ "name": "[Type] Enhancement",
+ "color": "FEF2C0",
+ "default": false,
+ "description": "A suggestion for improvement."
+ },
+ {
+ "id": 997392122,
+ "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
+ "name": "[Package] Components",
+ "color": "ed2572",
+ "default": false,
+ "description": "/packages/components"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "brookewp",
+ "id": 35543432,
+ "node_id": "MDQ6VXNlcjM1NTQzNDMy",
+ "avatar_url": "https://avatars.githubusercontent.com/u/35543432?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/brookewp",
+ "html_url": "https://github.com/brookewp",
+ "followers_url": "https://api.github.com/users/brookewp/followers",
+ "following_url": "https://api.github.com/users/brookewp/following{/other_user}",
+ "gists_url": "https://api.github.com/users/brookewp/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/brookewp/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/brookewp/subscriptions",
+ "organizations_url": "https://api.github.com/users/brookewp/orgs",
+ "repos_url": "https://api.github.com/users/brookewp/repos",
+ "events_url": "https://api.github.com/users/brookewp/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/brookewp/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "brookewp",
+ "id": 35543432,
+ "node_id": "MDQ6VXNlcjM1NTQzNDMy",
+ "avatar_url": "https://avatars.githubusercontent.com/u/35543432?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/brookewp",
+ "html_url": "https://github.com/brookewp",
+ "followers_url": "https://api.github.com/users/brookewp/followers",
+ "following_url": "https://api.github.com/users/brookewp/following{/other_user}",
+ "gists_url": "https://api.github.com/users/brookewp/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/brookewp/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/brookewp/subscriptions",
+ "organizations_url": "https://api.github.com/users/brookewp/orgs",
+ "repos_url": "https://api.github.com/users/brookewp/repos",
+ "events_url": "https://api.github.com/users/brookewp/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/brookewp/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 2,
+ "created_at": "2023-09-18T19:04:04Z",
+ "updated_at": "2023-09-21T20:06:53Z",
+ "closed_at": "2023-09-21T20:06:19Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54573",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54573",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54573.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54573.patch",
+ "merged_at": "2023-09-21T20:06:19Z"
+ },
+ "body": "## What?\r\n\r\n\r\nThis expands on the work started in #52953 to remove unused components from the `packages/components/src/ui` folder. \r\n\r\n## Why?\r\n\r\n\r\nThese components (`ui/tooltip` and `ui/shortcut`) are not publicly exported and are relatively unused. There was one internal use of `ui/tooltip`, which is replaced in this PR. \r\n\r\n## How?\r\n\r\n\r\nBy replacing the only internal usage of `ui/tooltip` with our Tooltip component and deleting the unused components. \r\n\r\n## Testing Instructions\r\n\r\n`npm run build` without errors \r\n\r\n### Colorpicker: \r\n\r\n1. `npm run storybook:dev` \r\n2. Navigate to the `ColorPicker` component \r\n3. Ensure the tooltip for the copy button appears* and behaves the same as trunk\r\n\r\n*The placement will look off in Storybook unless the sidebar is hidden (key-down `S` to hide) or the story is opened in isolation. The tooltip background is also black instead of grey, but that reflects a design change made earlier: #50792",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54573/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54573/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54553",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54553/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54553/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54553/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54553",
+ "id": 1900781960,
+ "node_id": "PR_kwDOBNHdeM5aj6lU",
+ "number": 54553,
+ "title": "Remove base url from link control search results ",
+ "user": {
+ "login": "getdave",
+ "id": 444434,
+ "node_id": "MDQ6VXNlcjQ0NDQzNA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/444434?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/getdave",
+ "html_url": "https://github.com/getdave",
+ "followers_url": "https://api.github.com/users/getdave/followers",
+ "following_url": "https://api.github.com/users/getdave/following{/other_user}",
+ "gists_url": "https://api.github.com/users/getdave/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/getdave/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/getdave/subscriptions",
+ "organizations_url": "https://api.github.com/users/getdave/orgs",
+ "repos_url": "https://api.github.com/users/getdave/repos",
+ "events_url": "https://api.github.com/users/getdave/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/getdave/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 531680825,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
+ "name": "[Type] Enhancement",
+ "color": "FEF2C0",
+ "default": false,
+ "description": "A suggestion for improvement."
+ },
+ {
+ "id": 1838782557,
+ "node_id": "MDU6TGFiZWwxODM4NzgyNTU3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Link%20Editing",
+ "name": "[Feature] Link Editing",
+ "color": "fbca04",
+ "default": false,
+ "description": "Link components (LinkControl, URLInput) and integrations (RichText link formatting)"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "getdave",
+ "id": 444434,
+ "node_id": "MDQ6VXNlcjQ0NDQzNA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/444434?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/getdave",
+ "html_url": "https://github.com/getdave",
+ "followers_url": "https://api.github.com/users/getdave/followers",
+ "following_url": "https://api.github.com/users/getdave/following{/other_user}",
+ "gists_url": "https://api.github.com/users/getdave/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/getdave/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/getdave/subscriptions",
+ "organizations_url": "https://api.github.com/users/getdave/orgs",
+ "repos_url": "https://api.github.com/users/getdave/repos",
+ "events_url": "https://api.github.com/users/getdave/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/getdave/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "getdave",
+ "id": 444434,
+ "node_id": "MDQ6VXNlcjQ0NDQzNA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/444434?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/getdave",
+ "html_url": "https://github.com/getdave",
+ "followers_url": "https://api.github.com/users/getdave/followers",
+ "following_url": "https://api.github.com/users/getdave/following{/other_user}",
+ "gists_url": "https://api.github.com/users/getdave/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/getdave/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/getdave/subscriptions",
+ "organizations_url": "https://api.github.com/users/getdave/orgs",
+ "repos_url": "https://api.github.com/users/getdave/repos",
+ "events_url": "https://api.github.com/users/getdave/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/getdave/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 14,
+ "created_at": "2023-09-18T12:00:19Z",
+ "updated_at": "2023-10-02T09:39:24Z",
+ "closed_at": "2023-09-21T10:28:41Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54553",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54553",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54553.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54553.patch",
+ "merged_at": "2023-09-21T10:28:41Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\n\r\nRemoves the site's `baseURL` (if available) from the Link Control search results:\r\n\r\nCloses https://github.com/WordPress/gutenberg/issues/52572\r\n\r\n## Why?\r\n\r\n\r\nPolish to limit UI noise. See Issue.\r\n\r\n## How?\r\n\r\n\r\nDisplay only the _path_ of the search result URL if the type is anything other than a manually entered URL.\r\n\r\nProps to @Mamaduka for this suggested approach.\r\n\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n\r\n- Repeat the below in Post, Widget and Site editors\r\n- Make sure you have some Posts and Pages\r\n- Open Editor\r\n- Add text block.\r\n- Create a link and search for one of the Pages/Posts\r\n- See results with the site's base URL stripped off (i.e. `localhost:8888/sample-page` becomes `/sample-page/`).\r\n- Verify that manually entering a URL such as `https://wordpress.org/hello-world` does _not_ strip the site URL.\r\n\r\n### Testing Instructions for Keyboard\r\n\r\n\r\n## Screenshots or screencast \r\n\r\n \r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54553/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54553/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54516",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54516/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54516/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54516/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54516",
+ "id": 1899016673,
+ "node_id": "PR_kwDOBNHdeM5aeOUd",
+ "number": 54516,
+ "title": "Docs: Remove the Full Site Editing doc.",
+ "user": {
+ "login": "ndiego",
+ "id": 4832319,
+ "node_id": "MDQ6VXNlcjQ4MzIzMTk=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/4832319?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ndiego",
+ "html_url": "https://github.com/ndiego",
+ "followers_url": "https://api.github.com/users/ndiego/followers",
+ "following_url": "https://api.github.com/users/ndiego/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ndiego/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ndiego/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ndiego/subscriptions",
+ "organizations_url": "https://api.github.com/users/ndiego/orgs",
+ "repos_url": "https://api.github.com/users/ndiego/repos",
+ "events_url": "https://api.github.com/users/ndiego/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ndiego/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 567484057,
+ "node_id": "MDU6TGFiZWw1Njc0ODQwNTc=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Developer%20Documentation",
+ "name": "[Type] Developer Documentation",
+ "color": "bfd4f2",
+ "default": false,
+ "description": "Documentation for developers"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "ndiego",
+ "id": 4832319,
+ "node_id": "MDQ6VXNlcjQ4MzIzMTk=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/4832319?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ndiego",
+ "html_url": "https://github.com/ndiego",
+ "followers_url": "https://api.github.com/users/ndiego/followers",
+ "following_url": "https://api.github.com/users/ndiego/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ndiego/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ndiego/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ndiego/subscriptions",
+ "organizations_url": "https://api.github.com/users/ndiego/orgs",
+ "repos_url": "https://api.github.com/users/ndiego/repos",
+ "events_url": "https://api.github.com/users/ndiego/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ndiego/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "ndiego",
+ "id": 4832319,
+ "node_id": "MDQ6VXNlcjQ4MzIzMTk=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/4832319?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ndiego",
+ "html_url": "https://github.com/ndiego",
+ "followers_url": "https://api.github.com/users/ndiego/followers",
+ "following_url": "https://api.github.com/users/ndiego/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ndiego/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ndiego/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ndiego/subscriptions",
+ "organizations_url": "https://api.github.com/users/ndiego/orgs",
+ "repos_url": "https://api.github.com/users/ndiego/repos",
+ "events_url": "https://api.github.com/users/ndiego/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ndiego/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 0,
+ "created_at": "2023-09-15T20:06:54Z",
+ "updated_at": "2023-09-22T15:51:13Z",
+ "closed_at": "2023-09-22T15:50:49Z",
+ "author_association": "MEMBER",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54516",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54516",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54516.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54516.patch",
+ "merged_at": "2023-09-22T15:50:49Z"
+ },
+ "body": "\r\n\r\n## What?\r\nThis PR removes the [Full Site Editing doc](https://developer.wordpress.org/block-editor/getting-started/full-site-editing/) from the Block Editor Handbook. \r\n\r\n## Why?\r\nThis doc is extremely out-of-date, and the term \"Full Site Editing\" is [being loosely deprecated](https://make.wordpress.org/updates/2022/11/04/site-editor-a-more-user-friendly-name/) now that the Site Editor has evolved and Phase 2 is complete. Furthermore, the FSE Outreach Program is [also being phased out](https://make.wordpress.org/core/2023/09/07/evolving-the-fse-outreach-program/). \r\n\r\nWith the [other improvements](https://github.com/WordPress/gutenberg/issues/54124) being made to the Getting Started section of the BEH, it makes sense to remove this page finally.\r\n\r\n## How?\r\nRemove the doc and update the manifest and toc.\r\n\r\nAlso, changes made to the `/docs` here on GitHub are \"non-destructive\", meaning that if a page is removed here, it still needs to be manually removed from the site. Therefore, once this PR is merged, a PR will be created in https://github.com/WordPress/wporg-mu-plugins/ to handle redirects. Once that is in place, the [Full Site Editing doc](https://developer.wordpress.org/block-editor/getting-started/full-site-editing/) will then be manually removed from https://developer.wordpress.org/block-editor\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54516/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54516/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54505",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54505/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54505/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54505/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54505",
+ "id": 1898557392,
+ "node_id": "PR_kwDOBNHdeM5acqap",
+ "number": 54505,
+ "title": "Footnotes: avoid regexes in entity provider",
+ "user": {
+ "login": "ellatrix",
+ "id": 4710635,
+ "node_id": "MDQ6VXNlcjQ3MTA2MzU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/4710635?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ellatrix",
+ "html_url": "https://github.com/ellatrix",
+ "followers_url": "https://api.github.com/users/ellatrix/followers",
+ "following_url": "https://api.github.com/users/ellatrix/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ellatrix/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ellatrix/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ellatrix/subscriptions",
+ "organizations_url": "https://api.github.com/users/ellatrix/orgs",
+ "repos_url": "https://api.github.com/users/ellatrix/repos",
+ "events_url": "https://api.github.com/users/ellatrix/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ellatrix/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 930001208,
+ "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
+ "name": "[Type] Code Quality",
+ "color": "e5e04b",
+ "default": false,
+ "description": "Issues or PRs that relate to code quality"
+ },
+ {
+ "id": 5654261232,
+ "node_id": "LA_kwDOBNHdeM8AAAABUQUt8A",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Footnotes",
+ "name": "[Block] Footnotes",
+ "color": "6767e5",
+ "default": false,
+ "description": "Affects the Footnotes Block"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 2,
+ "created_at": "2023-09-15T14:37:16Z",
+ "updated_at": "2023-09-20T13:32:27Z",
+ "closed_at": "2023-09-20T13:31:59Z",
+ "author_association": "MEMBER",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54505",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54505",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54505.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54505.patch",
+ "merged_at": "2023-09-20T13:31:59Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\nThis can be done better with rich text values.\r\n\r\nWe need to check performance but it might not be too bad with the block caching. I did leave the `indexOf( 'data-fn' )` checks in place though, so it should be the same if no footnotes are present.\r\n\r\nIdeally this value would be in the store and we wouldn't have to parse and serialise...\r\n\r\n## Why?\r\n\r\nRegexes are fragile.\r\n\r\n## How?\r\n\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n\r\n### Testing Instructions for Keyboard\r\n\r\n\r\n## Screenshots or screencast \r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54505/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54505/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54494",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54494/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54494/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54494/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54494",
+ "id": 1898041643,
+ "node_id": "PR_kwDOBNHdeM5aa59I",
+ "number": 54494,
+ "title": "Update the default JSX pragma to React instead of @wordpress/element",
+ "user": {
+ "login": "youknowriad",
+ "id": 272444,
+ "node_id": "MDQ6VXNlcjI3MjQ0NA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/youknowriad",
+ "html_url": "https://github.com/youknowriad",
+ "followers_url": "https://api.github.com/users/youknowriad/followers",
+ "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
+ "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
+ "organizations_url": "https://api.github.com/users/youknowriad/orgs",
+ "repos_url": "https://api.github.com/users/youknowriad/repos",
+ "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/youknowriad/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 596512821,
+ "node_id": "MDU6TGFiZWw1OTY1MTI4MjE=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Build%20Tooling",
+ "name": "[Type] Build Tooling",
+ "color": "111111",
+ "default": false,
+ "description": "Issues or PRs related to build tooling"
+ },
+ {
+ "id": 1293579839,
+ "node_id": "MDU6TGFiZWwxMjkzNTc5ODM5",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Needs%20Dev%20Note",
+ "name": "Needs Dev Note",
+ "color": "b910f2",
+ "default": false,
+ "description": "Requires a developer note for a major WordPress release cycle"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "youknowriad",
+ "id": 272444,
+ "node_id": "MDQ6VXNlcjI3MjQ0NA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/youknowriad",
+ "html_url": "https://github.com/youknowriad",
+ "followers_url": "https://api.github.com/users/youknowriad/followers",
+ "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
+ "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
+ "organizations_url": "https://api.github.com/users/youknowriad/orgs",
+ "repos_url": "https://api.github.com/users/youknowriad/repos",
+ "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/youknowriad/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "youknowriad",
+ "id": 272444,
+ "node_id": "MDQ6VXNlcjI3MjQ0NA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/272444?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/youknowriad",
+ "html_url": "https://github.com/youknowriad",
+ "followers_url": "https://api.github.com/users/youknowriad/followers",
+ "following_url": "https://api.github.com/users/youknowriad/following{/other_user}",
+ "gists_url": "https://api.github.com/users/youknowriad/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/youknowriad/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/youknowriad/subscriptions",
+ "organizations_url": "https://api.github.com/users/youknowriad/orgs",
+ "repos_url": "https://api.github.com/users/youknowriad/repos",
+ "events_url": "https://api.github.com/users/youknowriad/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/youknowriad/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 10,
+ "created_at": "2023-09-15T09:19:37Z",
+ "updated_at": "2023-09-28T11:56:22Z",
+ "closed_at": "2023-09-28T09:46:18Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54494",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54494",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54494.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54494.patch",
+ "merged_at": "2023-09-28T09:46:18Z"
+ },
+ "body": "See #54074 for the reasoning/discussions\r\n\r\nThis PR implements the change proposed in #54074 to switch the default JSX pragma from @wordpress/element to React. In addition to the current changes, we may want to update our documentation and the files where we currently import `@wordpress/element` and might not need to. I decided to not update these in the same PR to ensure/clarify that with this change, everything continues to work exactly the same without any change to the code base. Also updating documentation and code will quickly result in conflicts unless we merge those PRs quickly, so I'm leaving them separate until the decision is made to merge the current PR.\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54494/reactions",
+ "total_count": 2,
+ "+1": 2,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54494/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54489",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54489/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54489/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54489/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54489",
+ "id": 1897751694,
+ "node_id": "PR_kwDOBNHdeM5aZ7i-",
+ "number": 54489,
+ "title": "Background image block support: Add tests, adjust injection logic slightly",
+ "user": {
+ "login": "andrewserong",
+ "id": 14988353,
+ "node_id": "MDQ6VXNlcjE0OTg4MzUz",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14988353?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/andrewserong",
+ "html_url": "https://github.com/andrewserong",
+ "followers_url": "https://api.github.com/users/andrewserong/followers",
+ "following_url": "https://api.github.com/users/andrewserong/following{/other_user}",
+ "gists_url": "https://api.github.com/users/andrewserong/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/andrewserong/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/andrewserong/subscriptions",
+ "organizations_url": "https://api.github.com/users/andrewserong/orgs",
+ "repos_url": "https://api.github.com/users/andrewserong/repos",
+ "events_url": "https://api.github.com/users/andrewserong/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/andrewserong/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 1894493554,
+ "node_id": "MDU6TGFiZWwxODk0NDkzNTU0",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Design%20Tools",
+ "name": "[Feature] Design Tools",
+ "color": "fbca04",
+ "default": false,
+ "description": "Tools that impact the appearance of blocks both to expand the number of tools and improve the experi"
+ },
+ {
+ "id": 3659584252,
+ "node_id": "LA_kwDOBNHdeM7aINL8",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Backport%20from%20WordPress%20Core",
+ "name": "Backport from WordPress Core",
+ "color": "6FCDF3",
+ "default": false,
+ "description": "Pull request that needs to be backported to the a Gutenberg release from WordPress Core"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "andrewserong",
+ "id": 14988353,
+ "node_id": "MDQ6VXNlcjE0OTg4MzUz",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14988353?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/andrewserong",
+ "html_url": "https://github.com/andrewserong",
+ "followers_url": "https://api.github.com/users/andrewserong/followers",
+ "following_url": "https://api.github.com/users/andrewserong/following{/other_user}",
+ "gists_url": "https://api.github.com/users/andrewserong/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/andrewserong/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/andrewserong/subscriptions",
+ "organizations_url": "https://api.github.com/users/andrewserong/orgs",
+ "repos_url": "https://api.github.com/users/andrewserong/repos",
+ "events_url": "https://api.github.com/users/andrewserong/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/andrewserong/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "andrewserong",
+ "id": 14988353,
+ "node_id": "MDQ6VXNlcjE0OTg4MzUz",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14988353?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/andrewserong",
+ "html_url": "https://github.com/andrewserong",
+ "followers_url": "https://api.github.com/users/andrewserong/followers",
+ "following_url": "https://api.github.com/users/andrewserong/following{/other_user}",
+ "gists_url": "https://api.github.com/users/andrewserong/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/andrewserong/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/andrewserong/subscriptions",
+ "organizations_url": "https://api.github.com/users/andrewserong/orgs",
+ "repos_url": "https://api.github.com/users/andrewserong/repos",
+ "events_url": "https://api.github.com/users/andrewserong/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/andrewserong/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 3,
+ "created_at": "2023-09-15T05:52:10Z",
+ "updated_at": "2023-09-25T23:55:59Z",
+ "closed_at": "2023-09-25T23:55:38Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54489",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54489",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54489.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54489.patch",
+ "merged_at": "2023-09-25T23:55:38Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\n\r\nPart of: https://github.com/WordPress/gutenberg/issues/54336\r\n\r\nAdd PHP tests for the background image block support.\r\n\r\nAlso, adjust the style injection slightly, so that if the existing style attribute ends in a semi-colon, we still inject the newly created styles.\r\n\r\n## Why?\r\n\r\n\r\nWhile working on the backport for the background image block support over in https://github.com/WordPress/wordpress-develop/pull/5209, I added some tests, and noticed the logic for injecting the style tag needed adjusting slightly. While in Gutenberg, inline styles don't include a trailing semi-colon, I thought it'd be good to factor it in, just in case, for the future reliability of the support and interacting with other styles.\r\n\r\nAlso, it's good to add tests for features!\r\n\r\n## How?\r\n\r\n\r\n* Ensure that we append to the style attribute irrespective of whether or not a semi-colon already exists at the end of the current value.\r\n* Add PHP tests for the background image support to cover injecting when no style tag exists, when a style tag exists with a single rule in it, and when there are multiple rules with a trailing semi-colon. Also check that the background image will not be output if the block does not have support for it.\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n\r\n1. Smoke test that the background image support still works as expected in the block editor (Add a Group block, add a background image to it, save the post, and view on the site frontend — then add some styles to the Group block, like text color, and repeat).\r\n2. Check that tests pass, or to run `npm run test:unit:php:base -- --filter WP_Block_Supports_Background_Test` locally to confirm.",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54489/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54489/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54473",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54473/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54473/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54473/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54473",
+ "id": 1897152368,
+ "node_id": "PR_kwDOBNHdeM5aX8MR",
+ "number": 54473,
+ "title": "Adding label/description to `BlockEditor/DuotoneControl`",
+ "user": {
+ "login": "andrewhayward",
+ "id": 159848,
+ "node_id": "MDQ6VXNlcjE1OTg0OA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/159848?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/andrewhayward",
+ "html_url": "https://github.com/andrewhayward",
+ "followers_url": "https://api.github.com/users/andrewhayward/followers",
+ "following_url": "https://api.github.com/users/andrewhayward/following{/other_user}",
+ "gists_url": "https://api.github.com/users/andrewhayward/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/andrewhayward/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/andrewhayward/subscriptions",
+ "organizations_url": "https://api.github.com/users/andrewhayward/orgs",
+ "repos_url": "https://api.github.com/users/andrewhayward/repos",
+ "events_url": "https://api.github.com/users/andrewhayward/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/andrewhayward/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 531680825,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
+ "name": "[Type] Enhancement",
+ "color": "FEF2C0",
+ "default": false,
+ "description": "A suggestion for improvement."
+ },
+ {
+ "id": 997392122,
+ "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
+ "name": "[Package] Components",
+ "color": "ed2572",
+ "default": false,
+ "description": "/packages/components"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "andrewhayward",
+ "id": 159848,
+ "node_id": "MDQ6VXNlcjE1OTg0OA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/159848?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/andrewhayward",
+ "html_url": "https://github.com/andrewhayward",
+ "followers_url": "https://api.github.com/users/andrewhayward/followers",
+ "following_url": "https://api.github.com/users/andrewhayward/following{/other_user}",
+ "gists_url": "https://api.github.com/users/andrewhayward/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/andrewhayward/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/andrewhayward/subscriptions",
+ "organizations_url": "https://api.github.com/users/andrewhayward/orgs",
+ "repos_url": "https://api.github.com/users/andrewhayward/repos",
+ "events_url": "https://api.github.com/users/andrewhayward/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/andrewhayward/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "andrewhayward",
+ "id": 159848,
+ "node_id": "MDQ6VXNlcjE1OTg0OA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/159848?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/andrewhayward",
+ "html_url": "https://github.com/andrewhayward",
+ "followers_url": "https://api.github.com/users/andrewhayward/followers",
+ "following_url": "https://api.github.com/users/andrewhayward/following{/other_user}",
+ "gists_url": "https://api.github.com/users/andrewhayward/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/andrewhayward/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/andrewhayward/subscriptions",
+ "organizations_url": "https://api.github.com/users/andrewhayward/orgs",
+ "repos_url": "https://api.github.com/users/andrewhayward/repos",
+ "events_url": "https://api.github.com/users/andrewhayward/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/andrewhayward/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 2,
+ "created_at": "2023-09-14T19:11:03Z",
+ "updated_at": "2023-09-28T09:55:53Z",
+ "closed_at": "2023-09-28T09:55:23Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54473",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54473",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54473.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54473.patch",
+ "merged_at": "2023-09-28T09:55:23Z"
+ },
+ "body": "## What?\r\nThis PR ensures that the main duotone picker found in the image duotone filter panel has an identifying label and relevant description.\r\n\r\n \r\n\r\n## Why?\r\nAs per #54055, every `DuotonePicker` needs to have an appropriate contextual label.\r\n\r\n## How?\r\nAn ID is generated and assigned to the node containing the popup description. This is linked to the `DuotonePicker` with an `aria-describedby` props. Additionally, an `aria-label` is applied to the `DuotonePicker` matching the tooltip display value.\r\n\r\nThe `DuotonePicker` component is updated to accept the additional `aria-describedby` prop. (And, as a bonus, the 'unset' option gets a label.)\r\n\r\n## Testing Instructions\r\n* Add an image in the editor\r\n* Open the 'Apply duotone filter' popup\r\n* Confirm that the duotone picker has an `aria-describedby` attribute, and that this points to the description\r\n* Confirm that the duotone picker has an `aria-label` attribute\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54473/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54473/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54471",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54471/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54471/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54471/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54471",
+ "id": 1897032936,
+ "node_id": "PR_kwDOBNHdeM5aXiZR",
+ "number": 54471,
+ "title": "Modal: add `contentWidth` prop to support a selection of preset modal sizes",
+ "user": {
+ "login": "chad1008",
+ "id": 13856531,
+ "node_id": "MDQ6VXNlcjEzODU2NTMx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/13856531?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/chad1008",
+ "html_url": "https://github.com/chad1008",
+ "followers_url": "https://api.github.com/users/chad1008/followers",
+ "following_url": "https://api.github.com/users/chad1008/following{/other_user}",
+ "gists_url": "https://api.github.com/users/chad1008/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/chad1008/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/chad1008/subscriptions",
+ "organizations_url": "https://api.github.com/users/chad1008/orgs",
+ "repos_url": "https://api.github.com/users/chad1008/repos",
+ "events_url": "https://api.github.com/users/chad1008/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/chad1008/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 531680825,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
+ "name": "[Type] Enhancement",
+ "color": "FEF2C0",
+ "default": false,
+ "description": "A suggestion for improvement."
+ },
+ {
+ "id": 997392122,
+ "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
+ "name": "[Package] Components",
+ "color": "ed2572",
+ "default": false,
+ "description": "/packages/components"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "chad1008",
+ "id": 13856531,
+ "node_id": "MDQ6VXNlcjEzODU2NTMx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/13856531?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/chad1008",
+ "html_url": "https://github.com/chad1008",
+ "followers_url": "https://api.github.com/users/chad1008/followers",
+ "following_url": "https://api.github.com/users/chad1008/following{/other_user}",
+ "gists_url": "https://api.github.com/users/chad1008/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/chad1008/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/chad1008/subscriptions",
+ "organizations_url": "https://api.github.com/users/chad1008/orgs",
+ "repos_url": "https://api.github.com/users/chad1008/repos",
+ "events_url": "https://api.github.com/users/chad1008/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/chad1008/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "chad1008",
+ "id": 13856531,
+ "node_id": "MDQ6VXNlcjEzODU2NTMx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/13856531?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/chad1008",
+ "html_url": "https://github.com/chad1008",
+ "followers_url": "https://api.github.com/users/chad1008/followers",
+ "following_url": "https://api.github.com/users/chad1008/following{/other_user}",
+ "gists_url": "https://api.github.com/users/chad1008/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/chad1008/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/chad1008/subscriptions",
+ "organizations_url": "https://api.github.com/users/chad1008/orgs",
+ "repos_url": "https://api.github.com/users/chad1008/repos",
+ "events_url": "https://api.github.com/users/chad1008/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/chad1008/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 18,
+ "created_at": "2023-09-14T17:43:21Z",
+ "updated_at": "2023-09-29T20:38:24Z",
+ "closed_at": "2023-09-29T20:37:59Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54471",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54471",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54471.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54471.patch",
+ "merged_at": "2023-09-29T20:37:59Z"
+ },
+ "body": "\r\n\r\n## What?\r\nImplements a new prop for `Modal` that constrains the content width to one of a selection of preset sizes.\r\n\r\n## Why?\r\nConsumers were finding they often needed to manually set a max width on the child elements they provided to `Modal` to prevent them from pushing `Modal`'s size to the full with of the viewport.\r\n\r\n## How?\r\nThe optional new prop accepts values of `small`, `medium`, and `large`. If provided, the width of the `Modal`'s contents will be limited to `300px`, `600px`, or `900px`, respectively. (Note: these are just my initial values, and can most certainly be changed as needed when this PR is reviewed).\r\n\r\nThe value provided to the prop is used to add an additional class name to the relevant DOM element, but this class is only added if `isFullscreen` is `false`, so full screen modals will not be affected. Further, the styles implementing this change are limited to larger screens, so the automatically full screen `Modal` rendering on mobile devices should not be affected either.\r\n\r\n\r\n- [ ] TODO: rebase and refactor changes in #54518 to use the new APIs proposed in this PR\r\n---\r\n\r\ndropping a ping for some folks who may want to weigh in on any design considerations for this one: @jordesign @koster @SaxonF\r\n\r\n## Testing Instructions\r\n`npm run storybook:dev`\r\n\r\n- Open `Modal`'s new `With contentWidth: small` story and test the `contentWidth` control.\r\n- Confirm that both `isFullScreen` behaves as expected with the new prop applied\r\n- Confirm smaller viewports still render the modal in full screen, regardless of the new prop's value\r\n\r\n### Testing Instructions for Keyboard\r\nn/a\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54471/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54471/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54464",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54464/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54464/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54464/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54464",
+ "id": 1896554647,
+ "node_id": "PR_kwDOBNHdeM5aV66-",
+ "number": 54464,
+ "title": "Bump shivammathur/setup-php from 2.25.5 to 2.26.0",
+ "user": {
+ "login": "dependabot[bot]",
+ "id": 49699333,
+ "node_id": "MDM6Qm90NDk2OTkzMzM=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/29110?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/dependabot%5Bbot%5D",
+ "html_url": "https://github.com/apps/dependabot",
+ "followers_url": "https://api.github.com/users/dependabot%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/dependabot%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dependabot%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dependabot%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dependabot%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/dependabot%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/dependabot%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/dependabot%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dependabot%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 596512821,
+ "node_id": "MDU6TGFiZWw1OTY1MTI4MjE=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Build%20Tooling",
+ "name": "[Type] Build Tooling",
+ "color": "111111",
+ "default": false,
+ "description": "Issues or PRs related to build tooling"
+ },
+ {
+ "id": 4662565393,
+ "node_id": "LA_kwDOBNHdeM8AAAABFekaEQ",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/GitHub%20Actions",
+ "name": "GitHub Actions",
+ "color": "000000",
+ "default": false,
+ "description": "Pull requests that update GitHub Actions code"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 1,
+ "created_at": "2023-09-14T13:14:57Z",
+ "updated_at": "2023-09-22T00:17:47Z",
+ "closed_at": "2023-09-22T00:17:15Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54464",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54464",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54464.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54464.patch",
+ "merged_at": "2023-09-22T00:17:15Z"
+ },
+ "body": "Bumps [shivammathur/setup-php](https://github.com/shivammathur/setup-php) from 2.25.5 to 2.26.0.\n\nRelease notes \nSourced from shivammathur/setup-php's releases .
\n\n2.26.0 \nChangelog \nMicrosoft SQL Server extensions. (#758 , #766 ) \nThe latest supported version of sqlsrv
and pdo_sqlsrv
for the PHP version will be installed.\nAlso, on Windows, these extensions will be installed from microsoft/msphpsql
GitHub releases and will fallback to pecl
.
\n- name: Setup PHP\n uses: shivammathur/setup-php@v2\n with:\n php-version: '8.2'\n extensions: sqlsrv, pdo_sqlsrv\n
\nPHP 8.4 Support (#762 ) \nAdded support for PHP 8.4.0-dev
from the master branch of php/php-src
for all supported OS.\nNote : PHP 8.3.0-dev
is now built from the new PHP-8.3
branch.
\n- name: Setup PHP\n uses: shivammathur/setup-php@v2\n with:\n php-version: '8.4'\n
\nFixes \nBlackfire Player \nResolved issues affecting the blackfire-player
on Linux and macOS. It now installs the uuid
extension that is required for the tool.\nDropped support for it on Windows as uuid
extension is not available for the OS.
\n- name: Setup PHP\n uses: shivammathur/setup-php@v2\n with:\n tools: blackfire-player\n
\nUpdates \nUpdate actions/checkout \nUpdated the use of actions/checkout
to v4 in the documentation and workflows.
\n- name: Checkout\n uses: actions/checkout@v4\n
\nUpdate Node.js Version \nNote : Node.js 16 reached End-of-Life on 2023-09-11 (Ref ).
\nUpdated action.yml
to use the node20
binary. If you use setup-php
on a self-hosted runner, please make sure it is v2.308.0 or newer to use this release or the major version tag v2
.
\nNode.js Dependencies \n\n \n... (truncated)
\n \n\nCommits \n\n7fdd3ec
Fix blackfire-player on Linux and macOS \n0de5aa9
Bump version to 2.26.0 \na6e0b14
Bump Node.js dependencies \n5d259c6
Bump node version to 20 in action.yml \n6207829
Update use of actions/checkout to v4 \n319feb8
Add support to install sqlsrv and pdo_sqlsrv from GitHub releases \n661ad4b
Fix enabling latest pecl extensions \n04c15e2
Remove hardcoded latest version for sqlsrv and pdo_sqlsrv \n5aa416d
Merge pull request #766 from GrahamCampbell/patch-1 \na9a661c
Use sqlsvr 5.11.1 on PHP 8 \nAdditional commits viewable in compare view \n \n \n \n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=shivammathur/setup-php&package-manager=github_actions&previous-version=2.25.5&new-version=2.26.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options \n \n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n ",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54464/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54464/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54437",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54437/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54437/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54437/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54437",
+ "id": 1894957653,
+ "node_id": "PR_kwDOBNHdeM5aQhZz",
+ "number": 54437,
+ "title": "[RNMobile] Upgrade `compileSdkVersion` to 34 (Android)",
+ "user": {
+ "login": "fluiddot",
+ "id": 14905380,
+ "node_id": "MDQ6VXNlcjE0OTA1Mzgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14905380?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/fluiddot",
+ "html_url": "https://github.com/fluiddot",
+ "followers_url": "https://api.github.com/users/fluiddot/followers",
+ "following_url": "https://api.github.com/users/fluiddot/following{/other_user}",
+ "gists_url": "https://api.github.com/users/fluiddot/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/fluiddot/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/fluiddot/subscriptions",
+ "organizations_url": "https://api.github.com/users/fluiddot/orgs",
+ "repos_url": "https://api.github.com/users/fluiddot/repos",
+ "events_url": "https://api.github.com/users/fluiddot/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/fluiddot/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 596512821,
+ "node_id": "MDU6TGFiZWw1OTY1MTI4MjE=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Build%20Tooling",
+ "name": "[Type] Build Tooling",
+ "color": "111111",
+ "default": false,
+ "description": "Issues or PRs related to build tooling"
+ },
+ {
+ "id": 982506020,
+ "node_id": "MDU6TGFiZWw5ODI1MDYwMjA=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20i.e.%20Android%20or%20iOS",
+ "name": "Mobile App - i.e. Android or iOS",
+ "color": "a3ef7a",
+ "default": false,
+ "description": "Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)"
+ },
+ {
+ "id": 3639254262,
+ "node_id": "LA_kwDOBNHdeM7Y6pz2",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20Automation",
+ "name": "Mobile App - Automation",
+ "color": "669206",
+ "default": false,
+ "description": "Label used to initiate Mobile App PR Automation"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "fluiddot",
+ "id": 14905380,
+ "node_id": "MDQ6VXNlcjE0OTA1Mzgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14905380?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/fluiddot",
+ "html_url": "https://github.com/fluiddot",
+ "followers_url": "https://api.github.com/users/fluiddot/followers",
+ "following_url": "https://api.github.com/users/fluiddot/following{/other_user}",
+ "gists_url": "https://api.github.com/users/fluiddot/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/fluiddot/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/fluiddot/subscriptions",
+ "organizations_url": "https://api.github.com/users/fluiddot/orgs",
+ "repos_url": "https://api.github.com/users/fluiddot/repos",
+ "events_url": "https://api.github.com/users/fluiddot/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/fluiddot/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "fluiddot",
+ "id": 14905380,
+ "node_id": "MDQ6VXNlcjE0OTA1Mzgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14905380?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/fluiddot",
+ "html_url": "https://github.com/fluiddot",
+ "followers_url": "https://api.github.com/users/fluiddot/followers",
+ "following_url": "https://api.github.com/users/fluiddot/following{/other_user}",
+ "gists_url": "https://api.github.com/users/fluiddot/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/fluiddot/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/fluiddot/subscriptions",
+ "organizations_url": "https://api.github.com/users/fluiddot/orgs",
+ "repos_url": "https://api.github.com/users/fluiddot/repos",
+ "events_url": "https://api.github.com/users/fluiddot/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/fluiddot/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 1,
+ "created_at": "2023-09-13T17:26:56Z",
+ "updated_at": "2023-09-25T12:06:57Z",
+ "closed_at": "2023-09-25T12:06:29Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54437",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54437",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54437.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54437.patch",
+ "merged_at": "2023-09-25T12:06:29Z"
+ },
+ "body": "Related PRs:\r\n* https://github.com/wordpress-mobile/gutenberg-mobile/pull/6196\r\n* https://github.com/wordpress-mobile/WordPress-Android/pull/19182\r\n\r\n\r\n\r\n## What?\r\n\r\n\r\nUpgrades the `compileSdkVersion` to 34 as part of the support for Android 14.\r\n\r\n## Why?\r\n\r\n\r\nCloses https://github.com/wordpress-mobile/gutenberg-mobile/issues/6142.\r\n\r\n## How?\r\n\r\n\r\nUpdates the value in all references of `compileSdkVersion`:\r\n- `react-native-aztec`\r\n- `react-native-bridge`\r\n- `react-native-editor`\r\n\r\nBump `AztecEditor-Android` version to `1.8.0`, which also uses version 34 of `compileSdkVersion`.\r\n\r\n**⚠️ NOTE:** In past PRs where we upgraded Android ([example](https://github.com/WordPress/gutenberg/pull/50731)), we also updated the React Native third-party libraries:\r\n- Libraries published via [react-native-libraries-publisher](https://github.com/wordpress-mobile/react-native-libraries-publisher/blob/2746ac55f78dd540efb2fa8089f1e05a2f7899a0/package.json#L3-L12)\r\n- [react-native-slider](https://github.com/wordpress-mobile/react-native-slider)\r\n- [react-native-video](https://github.com/wordpress-mobile/react-native-video)\r\n\r\nI assume that since we are only updating the `compileSdkVersion` and not `targetSdkVersion`, it's safe to leave them with an older version. But once we fully upgrade to Android 14, we'd need to update them.\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n* Observe that all CI jobs pass.\r\n* Smoke test the editor on Android.\r\n\r\n### Testing Instructions for Keyboard\r\n\r\nN/A\r\n\r\n## Screenshots or screencast \r\nN/A",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54437/reactions",
+ "total_count": 2,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 2,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54437/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54408",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54408/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54408/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54408/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54408",
+ "id": 1893604996,
+ "node_id": "PR_kwDOBNHdeM5aL6kq",
+ "number": 54408,
+ "title": "HTML block: Fix accessibility issues on back-end",
+ "user": {
+ "login": "alexstine",
+ "id": 13755480,
+ "node_id": "MDQ6VXNlcjEzNzU1NDgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/13755480?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/alexstine",
+ "html_url": "https://github.com/alexstine",
+ "followers_url": "https://api.github.com/users/alexstine/followers",
+ "following_url": "https://api.github.com/users/alexstine/following{/other_user}",
+ "gists_url": "https://api.github.com/users/alexstine/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/alexstine/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/alexstine/subscriptions",
+ "organizations_url": "https://api.github.com/users/alexstine/orgs",
+ "repos_url": "https://api.github.com/users/alexstine/repos",
+ "events_url": "https://api.github.com/users/alexstine/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/alexstine/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 546517042,
+ "node_id": "MDU6TGFiZWw1NDY1MTcwNDI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Focus]%20Accessibility%20(a11y)",
+ "name": "[Focus] Accessibility (a11y)",
+ "color": "efde5d",
+ "default": false,
+ "description": "Changes that impact accessibility and need corresponding review (e.g. markup changes)."
+ },
+ {
+ "id": 997392122,
+ "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
+ "name": "[Package] Components",
+ "color": "ed2572",
+ "default": false,
+ "description": "/packages/components"
+ },
+ {
+ "id": 1086171268,
+ "node_id": "MDU6TGFiZWwxMDg2MTcxMjY4",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Needs%20Accessibility%20Feedback",
+ "name": "Needs Accessibility Feedback",
+ "color": "ffbcbd",
+ "default": false,
+ "description": "Need input from accessibility"
+ },
+ {
+ "id": 1101519982,
+ "node_id": "MDU6TGFiZWwxMTAxNTE5OTgy",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20HTML",
+ "name": "[Block] HTML",
+ "color": "6767e5",
+ "default": false,
+ "description": "Affects the the HTML Block"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "alexstine",
+ "id": 13755480,
+ "node_id": "MDQ6VXNlcjEzNzU1NDgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/13755480?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/alexstine",
+ "html_url": "https://github.com/alexstine",
+ "followers_url": "https://api.github.com/users/alexstine/followers",
+ "following_url": "https://api.github.com/users/alexstine/following{/other_user}",
+ "gists_url": "https://api.github.com/users/alexstine/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/alexstine/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/alexstine/subscriptions",
+ "organizations_url": "https://api.github.com/users/alexstine/orgs",
+ "repos_url": "https://api.github.com/users/alexstine/repos",
+ "events_url": "https://api.github.com/users/alexstine/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/alexstine/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "alexstine",
+ "id": 13755480,
+ "node_id": "MDQ6VXNlcjEzNzU1NDgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/13755480?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/alexstine",
+ "html_url": "https://github.com/alexstine",
+ "followers_url": "https://api.github.com/users/alexstine/followers",
+ "following_url": "https://api.github.com/users/alexstine/following{/other_user}",
+ "gists_url": "https://api.github.com/users/alexstine/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/alexstine/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/alexstine/subscriptions",
+ "organizations_url": "https://api.github.com/users/alexstine/orgs",
+ "repos_url": "https://api.github.com/users/alexstine/repos",
+ "events_url": "https://api.github.com/users/alexstine/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/alexstine/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 3,
+ "created_at": "2023-09-13T02:18:36Z",
+ "updated_at": "2023-09-20T14:46:27Z",
+ "closed_at": "2023-09-20T14:45:59Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54408",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54408",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54408.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54408.patch",
+ "merged_at": "2023-09-20T14:45:59Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\n\r\nFixes back-end accessibility of the HTML block.\r\n\r\n## Why?\r\n\r\n\r\nMy PR does not fully fix this issue but I make good progress.\r\n\r\nhttps://github.com/WordPress/gutenberg/issues/46846\r\n\r\n## How?\r\n\r\n\r\n- Manage focus when HTML toolbar button is selected.\r\n- Manage focus when Preview button is selected.\r\n- Announce via description instructions on how to use the preview when it is selected.\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n\r\n1. Insert a HTML block.\r\n2. Type some code.\r\n3. Press Alt+F10 to focus the toolbar.\r\n4. Select Preview.\r\n5. Notice how focus moves to the block wrapper and you should be able to see the `aria-describedby` attribute which matches the ID of the block description.\r\n6. Press Alt+F10.\r\n7. Select HTML.\r\n8. Focus should now be placed in the HTML text area.\r\n\r\n### Notes\r\n\r\nWondering why the focus return from toolbar does not work for this block. Might be worth investigating this so focus does not need to be managed in the block itself.\r\n\r\n### Testing Instructions for Keyboard\r\n\r\n\r\n## Screenshots or screencast \r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54408/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54408/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54382",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54382/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54382/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54382/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54382",
+ "id": 1892520419,
+ "node_id": "PR_kwDOBNHdeM5aIUs_",
+ "number": 54382,
+ "title": "[RNMobile] Limit inner blocks nesting depth to avoid call stack size exceeded crash",
+ "user": {
+ "login": "fluiddot",
+ "id": 14905380,
+ "node_id": "MDQ6VXNlcjE0OTA1Mzgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14905380?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/fluiddot",
+ "html_url": "https://github.com/fluiddot",
+ "followers_url": "https://api.github.com/users/fluiddot/followers",
+ "following_url": "https://api.github.com/users/fluiddot/following{/other_user}",
+ "gists_url": "https://api.github.com/users/fluiddot/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/fluiddot/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/fluiddot/subscriptions",
+ "organizations_url": "https://api.github.com/users/fluiddot/orgs",
+ "repos_url": "https://api.github.com/users/fluiddot/repos",
+ "events_url": "https://api.github.com/users/fluiddot/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/fluiddot/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
+ "default": false,
+ "description": "An existing feature does not function as intended"
+ },
+ {
+ "id": 982506020,
+ "node_id": "MDU6TGFiZWw5ODI1MDYwMjA=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20i.e.%20Android%20or%20iOS",
+ "name": "Mobile App - i.e. Android or iOS",
+ "color": "a3ef7a",
+ "default": false,
+ "description": "Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)"
+ },
+ {
+ "id": 3639254262,
+ "node_id": "LA_kwDOBNHdeM7Y6pz2",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20Automation",
+ "name": "Mobile App - Automation",
+ "color": "669206",
+ "default": false,
+ "description": "Label used to initiate Mobile App PR Automation"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "fluiddot",
+ "id": 14905380,
+ "node_id": "MDQ6VXNlcjE0OTA1Mzgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14905380?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/fluiddot",
+ "html_url": "https://github.com/fluiddot",
+ "followers_url": "https://api.github.com/users/fluiddot/followers",
+ "following_url": "https://api.github.com/users/fluiddot/following{/other_user}",
+ "gists_url": "https://api.github.com/users/fluiddot/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/fluiddot/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/fluiddot/subscriptions",
+ "organizations_url": "https://api.github.com/users/fluiddot/orgs",
+ "repos_url": "https://api.github.com/users/fluiddot/repos",
+ "events_url": "https://api.github.com/users/fluiddot/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/fluiddot/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "fluiddot",
+ "id": 14905380,
+ "node_id": "MDQ6VXNlcjE0OTA1Mzgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14905380?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/fluiddot",
+ "html_url": "https://github.com/fluiddot",
+ "followers_url": "https://api.github.com/users/fluiddot/followers",
+ "following_url": "https://api.github.com/users/fluiddot/following{/other_user}",
+ "gists_url": "https://api.github.com/users/fluiddot/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/fluiddot/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/fluiddot/subscriptions",
+ "organizations_url": "https://api.github.com/users/fluiddot/orgs",
+ "repos_url": "https://api.github.com/users/fluiddot/repos",
+ "events_url": "https://api.github.com/users/fluiddot/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/fluiddot/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 9,
+ "created_at": "2023-09-12T13:24:15Z",
+ "updated_at": "2023-10-06T14:24:11Z",
+ "closed_at": "2023-09-26T08:30:51Z",
+ "author_association": "CONTRIBUTOR",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54382",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54382",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54382.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54382.patch",
+ "merged_at": "2023-09-26T08:30:51Z"
+ },
+ "body": "**Related PRs:**\r\n* https://github.com/wordpress-mobile/gutenberg-mobile/pull/6191\r\n* https://github.com/wordpress-mobile/WordPress-Android/pull/19163\r\n* https://github.com/wordpress-mobile/WordPress-iOS/pull/21553\r\n\r\n\r\n\r\n## What?\r\n\r\n\r\nLimits `InnerBlock` component to render blocks that are deeply nested, in order to prevent a crash related to exceeding the maximum call stack trace set by the Hermes engine.\r\n\r\n## Why?\r\n\r\nFixes https://github.com/wordpress-mobile/WordPress-Android/issues/18750.\r\nFixes https://github.com/wordpress-mobile/gutenberg-mobile/issues/6123\r\n\r\n## How?\r\n\r\n\r\nIn the `InnerBlocks` component we check the number of parent blocks associated with the block, this determines the nesting depth level. If it exceeds a threshold defined [here](https://github.com/WordPress/gutenberg/blob/e028e9ada1c06cb8e31e9b848e492ad37422ba65/packages/block-editor/src/components/inner-blocks/warning-max-depth-exceeded.native.js#L78-L82), we render a warning message box instead of rendering the inner blocks.\r\n\r\nhttps://github.com/WordPress/gutenberg/blob/e028e9ada1c06cb8e31e9b848e492ad37422ba65/packages/block-editor/src/components/inner-blocks/index.native.js#L130-L139\r\n\r\nAdditionally, I extracted the UI elements used in [the \"missing\" block](https://github.com/WordPress/gutenberg/blob/trunk/packages/block-library/src/missing/edit.native.js) (i.e. the block used to render unsupported blocks) into a separate component (`BlockFallbackWebVersion`). In a separate PR, I'll update that block to use this new component.\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n\r\n#### The warning IS NOT displayed when NOT exceeding the threshold\r\n1. In the web version of the editor, create a post with the following HTML:\r\n\r\nDeeply nested block structure (8 levels) \r\n\r\n```\r\n\r\nGroup block \r\n\r\n\r\n\r\n\r\n
Level 1
\r\n\r\n\r\n\r\n
\r\n
Level 2
\r\n\r\n\r\n\r\n
\r\n
Level 3
\r\n\r\n\r\n\r\n
\r\n
Level 4
\r\n\r\n\r\n\r\n
\r\n
Level 5
\r\n\r\n\r\n\r\n
\r\n
Level 6
\r\n\r\n\r\n\r\n
\r\n
Level 7
\r\n\r\n\r\n\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n```\r\n\r\n \r\n\r\n2. Open the post in the app.\r\n3. Scroll down the content.\r\n4. Observe that all blocks are rendered and that no warning message box is displayed.\r\n\r\n#### The warning IS displayed when exceeding the limit\r\n1. In the web version of the editor, create a post with the following HTML in a WPCOM site:\r\n\r\nDeeply nested block structure (20 levels) \r\n\r\n```\r\n\r\n\r\n
Level 1
\r\n\r\n\r\n\r\n
\r\n
Level 2
\r\n\r\n\r\n\r\n
\r\n
Level 3
\r\n\r\n\r\n\r\n
\r\n
Level 4
\r\n\r\n\r\n\r\n
\r\n
Level 5
\r\n\r\n\r\n\r\n
\r\n
Level 6
\r\n\r\n\r\n\r\n
\r\n
Level 7
\r\n\r\n\r\n\r\n
\r\n
Level 8
\r\n\r\n\r\n\r\n
\r\n
Level 9
\r\n\r\n\r\n\r\n
\r\n
Level 10
\r\n\r\n\r\n\r\n
\r\n
Level 11
\r\n\r\n\r\n\r\n
\r\n
Level 12
\r\n\r\n\r\n\r\n
\r\n
Level 13
\r\n\r\n\r\n\r\n
\r\n
Level 14
\r\n\r\n\r\n\r\n
\r\n
Level 15
\r\n\r\n\r\n\r\n
\r\n
Level 16
\r\n\r\n\r\n\r\n
\r\n
Level 17
\r\n\r\n\r\n\r\n
\r\n
Level 18
\r\n\r\n\r\n\r\n
\r\n
Level 19
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n```\r\n\r\n \r\n\r\n2. Open the post in the app.\r\n3. Observe that no crash is produced.\r\n4. Scroll down the content.\r\n5. Observe that starting at level 10, a warning message box is displayed within the block list.\r\n6. Tap on the warning twice.\r\n7. Observe that a bottom sheet is displayed explaining the problem.\r\n8. Observe that two options are presented, one for editing using the web editor and another one for ungrouping the block.\r\n9. Tap on the \"Edit using web editor\" option.\r\n10. Observe that UBE (Unsupported Block Editor) opens with the content that is not rendered in the native editor.\r\n11. Modify the content and tap on \"Continue\".\r\n12. Preview the post and observe the post reflects recent modifications.\r\n13. Back in the editor tap on the warning message box again.\r\n14. Tap on the \"Ungroup block\" option.\r\n15. Observe that a new block appears in the block list. This block should be the one that wasn't previously rendered due to being below level 10.\r\n16. Observe that the warning message box is still present.\r\n17. Tap on the warning message box and then the \"Dismiss\" option.\r\n18. Observe that the bottom sheet closes.\r\n19. Save the post.\r\n20. Observe that no crash is produced.\r\n\r\n#### Option for editing using the web editor is not present in self-hosted sites without Jetpack\r\n1. In the web version of the editor, create a post with the following HTML in a self-hosted site without Jetpack:\r\n\r\nDeeply nested block structure (20 levels) \r\n\r\n```\r\n\r\n\r\n
Level 1
\r\n\r\n\r\n\r\n
\r\n
Level 2
\r\n\r\n\r\n\r\n
\r\n
Level 3
\r\n\r\n\r\n\r\n
\r\n
Level 4
\r\n\r\n\r\n\r\n
\r\n
Level 5
\r\n\r\n\r\n\r\n
\r\n
Level 6
\r\n\r\n\r\n\r\n
\r\n
Level 7
\r\n\r\n\r\n\r\n
\r\n
Level 8
\r\n\r\n\r\n\r\n
\r\n
Level 9
\r\n\r\n\r\n\r\n
\r\n
Level 10
\r\n\r\n\r\n\r\n
\r\n
Level 11
\r\n\r\n\r\n\r\n
\r\n
Level 12
\r\n\r\n\r\n\r\n
\r\n
Level 13
\r\n\r\n\r\n\r\n
\r\n
Level 14
\r\n\r\n\r\n\r\n
\r\n
Level 15
\r\n\r\n\r\n\r\n
\r\n
Level 16
\r\n\r\n\r\n\r\n
\r\n
Level 17
\r\n\r\n\r\n\r\n
\r\n
Level 18
\r\n\r\n\r\n\r\n
\r\n
Level 19
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n```\r\n\r\n \r\n\r\n2. Open the post in the app.\r\n3. Observe that no crash is produced.\r\n4. Scroll down the content.\r\n5. Observe that starting at level 10, a warning message box is displayed within the block list.\r\n6. Tap on the warning twice.\r\n7. Observe that a bottom sheet is displayed explaining the problem.\r\n8. Observe that the message doesn't mention the web editor.\r\n9. Observe that only the \"Ungroup block\" option is presented.\r\n10. Tap on the \"Ungroup block\" option.\r\n11. Observe that a new block appears in the block list. This block should be the one that wasn't previously rendered due to being below level 10.\r\n12. Observe that the warning message box is still present.\r\n13. Tap on the warning message box and then the \"Dismiss\" option.\r\n14. Observe that the bottom sheet closes.\r\n15. Save the post.\r\n16. Observe that no crash is produced.\r\n\r\n#### Self-hosted site with Jetpack\r\n\r\n1. In the web version of the editor, create a post with the following HTML in a self-hosted site with Jetpack:\r\n\r\nDeeply nested block structure (20 levels) \r\n\r\n```\r\n\r\n\r\n
Level 1
\r\n\r\n\r\n\r\n
\r\n
Level 2
\r\n\r\n\r\n\r\n
\r\n
Level 3
\r\n\r\n\r\n\r\n
\r\n
Level 4
\r\n\r\n\r\n\r\n
\r\n
Level 5
\r\n\r\n\r\n\r\n
\r\n
Level 6
\r\n\r\n\r\n\r\n
\r\n
Level 7
\r\n\r\n\r\n\r\n
\r\n
Level 8
\r\n\r\n\r\n\r\n
\r\n
Level 9
\r\n\r\n\r\n\r\n
\r\n
Level 10
\r\n\r\n\r\n\r\n
\r\n
Level 11
\r\n\r\n\r\n\r\n
\r\n
Level 12
\r\n\r\n\r\n\r\n
\r\n
Level 13
\r\n\r\n\r\n\r\n
\r\n
Level 14
\r\n\r\n\r\n\r\n
\r\n
Level 15
\r\n\r\n\r\n\r\n
\r\n
Level 16
\r\n\r\n\r\n\r\n
\r\n
Level 17
\r\n\r\n\r\n\r\n
\r\n
Level 18
\r\n\r\n\r\n\r\n
\r\n
Level 19
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n```\r\n\r\n \r\n\r\n2. Go to Jetpack/Settings and uncheck the option \"Allow users to log in to this site using WordPress.com accounts\" under the \"WordPress.com login\" section.\r\n3. Open the post in the app.\r\n4. Observe that no crash is produced.\r\n5. Scroll down the content.\r\n6. Observe that starting at level 10, a warning message box is displayed within the block list.\r\n7. Tap on the warning twice.\r\n8. Observe that a bottom sheet is displayed explaining the problem.\r\n9. Observe that a note is included mentioning to allow `WordPress.com` login to edit using UBE.\r\n10. Tap on the \"Open Jetpack Security settings\" option.\r\n11. Enable \"Allow `WordPress.com` login\".\r\n12. Tap on the warning message box again.\r\n13. Observe that the option \"Edit using web editor\" is now presented.\r\n14. Tap on the \"Edit using web editor\" option.\r\n15. Observe that UBE (Unsupported Block Editor) opens with the content that is not rendered in the native editor.\r\n16. Modify the content and tap on \"Continue\".\r\n17. Preview the post and observe the post reflects recent modifications.\r\n18. Back in the editor tap on the warning message box again.\r\n19. Tap on the \"Ungroup block\" option.\r\n20. Observe that a new block appears in the block list. This block should be the one that wasn't previously rendered due to being below level 10.\r\n21. Observe that the warning message box is still present.\r\n22. Tap on the warning message box and then the \"Dismiss\" option.\r\n23. Observe that the bottom sheet closes.\r\n24. Save the post.\r\n25. Observe that no crash is produced.\r\n\r\n#### Unsupported Block Editing\r\n\r\nSince we are using UBE in the warning message box, it would be great to cover [some of the test cases of that feature](https://github.com/wordpress-mobile/test-cases/blob/trunk/test-cases/gutenberg/unsupported-block-editing.md).\r\n\r\n### Testing Instructions for Keyboard\r\n\r\nN/A\r\n\r\n## Screenshots or screencast \r\n\r\n| Light mode | Dark mode |\r\n|--------|--------|\r\n| | |\r\n| | | \r\n\r\n| WPCOM site | Self-hosted site without Jetpack |\r\n|--------|--------|\r\n| | | ",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54382/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54382/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54376",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54376/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54376/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54376/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54376",
+ "id": 1892044282,
+ "node_id": "PR_kwDOBNHdeM5aGrrh",
+ "number": 54376,
+ "title": "Mobile - Add support visual test themes",
+ "user": {
+ "login": "geriux",
+ "id": 4885740,
+ "node_id": "MDQ6VXNlcjQ4ODU3NDA=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/4885740?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/geriux",
+ "html_url": "https://github.com/geriux",
+ "followers_url": "https://api.github.com/users/geriux/followers",
+ "following_url": "https://api.github.com/users/geriux/following{/other_user}",
+ "gists_url": "https://api.github.com/users/geriux/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/geriux/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/geriux/subscriptions",
+ "organizations_url": "https://api.github.com/users/geriux/orgs",
+ "repos_url": "https://api.github.com/users/geriux/repos",
+ "events_url": "https://api.github.com/users/geriux/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/geriux/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 615503111,
+ "node_id": "MDU6TGFiZWw2MTU1MDMxMTE=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Automated%20Testing",
+ "name": "[Type] Automated Testing",
+ "color": "111111",
+ "default": false,
+ "description": "Testing infrastructure changes impacting the execution of end-to-end (E2E) and/or unit tests."
+ },
+ {
+ "id": 982506020,
+ "node_id": "MDU6TGFiZWw5ODI1MDYwMjA=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20i.e.%20Android%20or%20iOS",
+ "name": "Mobile App - i.e. Android or iOS",
+ "color": "a3ef7a",
+ "default": false,
+ "description": "Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 3,
+ "created_at": "2023-09-12T09:09:58Z",
+ "updated_at": "2023-09-29T16:38:03Z",
+ "closed_at": "2023-09-29T16:37:28Z",
+ "author_association": "MEMBER",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54376",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54376",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54376.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54376.patch",
+ "merged_at": "2023-09-29T16:37:28Z"
+ },
+ "body": "**Related PRs:**\r\n- https://github.com/wordpress-mobile/gutenberg-mobile/pull/6187\r\n\r\n## What?\r\nThis PR adds support to test themes in our E2E Visual testing environment.\r\n\r\n## Why?\r\nTo prevent regressions related to theme colors, font size, and line height customization.\r\n\r\n## How?\r\nThis is a follow-up of https://github.com/WordPress/gutenberg/pull/53434 that added the functionality to pass arguments during app launch.\r\n\r\nWe are adding `rawStyles` and `rawFeatures` in `initializeEditor` that then passes them through the `launchApp` util.\r\n\r\nIt also includes the native changes needed so the demo app supports these new arguments.\r\n\r\n## Testing Instructions\r\nCI checks should pass.\r\n\r\n### Testing Instructions for Keyboard\r\nN/A\r\n\r\n## Screenshots or screencast \r\nN/A",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54376/reactions",
+ "total_count": 1,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 1,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54376/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54339",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54339/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54339/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54339/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54339",
+ "id": 1889643004,
+ "node_id": "PR_kwDOBNHdeM5Z-iVw",
+ "number": 54339,
+ "title": "Fix overwriting of published post meta when previewing footnote changes",
+ "user": {
+ "login": "adamsilverstein",
+ "id": 2676022,
+ "node_id": "MDQ6VXNlcjI2NzYwMjI=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/2676022?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/adamsilverstein",
+ "html_url": "https://github.com/adamsilverstein",
+ "followers_url": "https://api.github.com/users/adamsilverstein/followers",
+ "following_url": "https://api.github.com/users/adamsilverstein/following{/other_user}",
+ "gists_url": "https://api.github.com/users/adamsilverstein/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/adamsilverstein/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/adamsilverstein/subscriptions",
+ "organizations_url": "https://api.github.com/users/adamsilverstein/orgs",
+ "repos_url": "https://api.github.com/users/adamsilverstein/repos",
+ "events_url": "https://api.github.com/users/adamsilverstein/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/adamsilverstein/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
+ "default": false,
+ "description": "An existing feature does not function as intended"
+ },
+ {
+ "id": 5654261232,
+ "node_id": "LA_kwDOBNHdeM8AAAABUQUt8A",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Footnotes",
+ "name": "[Block] Footnotes",
+ "color": "6767e5",
+ "default": false,
+ "description": "Affects the Footnotes Block"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
+ "description": null,
+ "creator": {
+ "login": "github-actions[bot]",
+ "id": 41898282,
+ "node_id": "MDM6Qm90NDE4OTgyODI=",
+ "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-actions%5Bbot%5D",
+ "html_url": "https://github.com/apps/github-actions",
+ "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 160,
+ "state": "open",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
+ "closed_at": null
+ },
+ "comments": 3,
+ "created_at": "2023-09-11T04:37:55Z",
+ "updated_at": "2023-10-05T11:11:58Z",
+ "closed_at": "2023-09-27T05:13:08Z",
+ "author_association": "MEMBER",
+ "active_lock_reason": null,
+ "draft": false,
+ "pull_request": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54339",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54339",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54339.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54339.patch",
+ "merged_at": "2023-09-27T05:13:08Z"
+ },
+ "body": "Fixes bug discovered in https://github.com/WordPress/gutenberg/pull/52988\r\n\r\n\r\n\r\n## What?\r\n\r\n\r\n## Why?\r\n\r\n\r\n## How?\r\n\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n\r\n### Testing Instructions for Keyboard\r\n\r\n\r\n## Screenshots or screencast \r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54339/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54339/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
+ },
+ {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54322",
+ "repository_url": "https://api.github.com/repos/WordPress/gutenberg",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54322/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54322/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54322/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54322",
+ "id": 1888421866,
+ "node_id": "PR_kwDOBNHdeM5Z6tSD",
+ "number": 54322,
+ "title": "Table of contents block accessibility improvements",
+ "user": {
+ "login": "alexstine",
+ "id": 13755480,
+ "node_id": "MDQ6VXNlcjEzNzU1NDgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/13755480?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/alexstine",
+ "html_url": "https://github.com/alexstine",
+ "followers_url": "https://api.github.com/users/alexstine/followers",
+ "following_url": "https://api.github.com/users/alexstine/following{/other_user}",
+ "gists_url": "https://api.github.com/users/alexstine/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/alexstine/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/alexstine/subscriptions",
+ "organizations_url": "https://api.github.com/users/alexstine/orgs",
+ "repos_url": "https://api.github.com/users/alexstine/repos",
+ "events_url": "https://api.github.com/users/alexstine/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/alexstine/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 546517042,
+ "node_id": "MDU6TGFiZWw1NDY1MTcwNDI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Focus]%20Accessibility%20(a11y)",
+ "name": "[Focus] Accessibility (a11y)",
+ "color": "efde5d",
+ "default": false,
+ "description": "Changes that impact accessibility and need corresponding review (e.g. markup changes)."
+ },
+ {
+ "id": 1086171268,
+ "node_id": "MDU6TGFiZWwxMDg2MTcxMjY4",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Needs%20Accessibility%20Feedback",
+ "name": "Needs Accessibility Feedback",
+ "color": "ffbcbd",
+ "default": false,
+ "description": "Need input from accessibility"
+ },
+ {
+ "id": 2770139461,
+ "node_id": "MDU6TGFiZWwyNzcwMTM5NDYx",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Table%20of%20contents",
+ "name": "[Block] Table of contents",
+ "color": "6767e5",
+ "default": false,
+ "description": "Affects the Table of contents Block"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "alexstine",
+ "id": 13755480,
+ "node_id": "MDQ6VXNlcjEzNzU1NDgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/13755480?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/alexstine",
+ "html_url": "https://github.com/alexstine",
+ "followers_url": "https://api.github.com/users/alexstine/followers",
+ "following_url": "https://api.github.com/users/alexstine/following{/other_user}",
+ "gists_url": "https://api.github.com/users/alexstine/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/alexstine/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/alexstine/subscriptions",
+ "organizations_url": "https://api.github.com/users/alexstine/orgs",
+ "repos_url": "https://api.github.com/users/alexstine/repos",
+ "events_url": "https://api.github.com/users/alexstine/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/alexstine/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "alexstine",
+ "id": 13755480,
+ "node_id": "MDQ6VXNlcjEzNzU1NDgw",
+ "avatar_url": "https://avatars.githubusercontent.com/u/13755480?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/alexstine",
+ "html_url": "https://github.com/alexstine",
+ "followers_url": "https://api.github.com/users/alexstine/followers",
+ "following_url": "https://api.github.com/users/alexstine/following{/other_user}",
+ "gists_url": "https://api.github.com/users/alexstine/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/alexstine/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/alexstine/subscriptions",
+ "organizations_url": "https://api.github.com/users/alexstine/orgs",
+ "repos_url": "https://api.github.com/users/alexstine/repos",
+ "events_url": "https://api.github.com/users/alexstine/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/alexstine/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -12971,122 +21914,107 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 1,
- "created_at": "2021-07-20T14:39:26Z",
- "updated_at": "2021-07-30T08:47:57Z",
- "closed_at": "2021-07-30T08:47:30Z",
+ "comments": 8,
+ "created_at": "2023-09-08T22:21:13Z",
+ "updated_at": "2023-09-27T01:01:44Z",
+ "closed_at": "2023-09-27T01:01:20Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33573",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33573",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33573.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33573.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\nIn https://github.com/WordPress/gutenberg/pull/33229 we added automation to the release tooling to attempt to auto-categorize the grouping of PRs by \"feature\".\r\n\r\nThis PR updates the docs to reflect that and to add information on exactly how you should look to curate the changelog in response to what the script will output.\r\n\r\n## How has this been tested?\r\nReading and checking for accuracy.\r\n\r\n## Screenshots \r\n\r\n## Types of changes\r\n\r\n\r\n\r\n\r\n\r\n## Checklist:\r\n- [ ] My code is tested.\r\n- [ ] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [ ] My code has proper inline documentation. \r\n- [ ] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54322",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54322",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54322.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54322.patch",
+ "merged_at": "2023-09-27T01:01:20Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\n\r\nThis PR fixes some accessibility issues in the table of contents block, front-end and back-end.\r\n\r\n## Why?\r\n\r\n\r\nAccessibility is important.\r\n\r\n## How?\r\n\r\n\r\n- Remove inert.\r\n- Disable the ability to click links in the back-end block.\r\n- Add `aria-label` to front-end `` tag.\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n\r\n1. Insert a Table of Contents block.\r\n2. Verify the block is keyboard accessible with arrow keys.\r\n3. Verify clicking the links is disabled.\r\n4. Verify that screen readers get a disabled announcement through `aria-disabled=\"true\"` attribute.\r\n5. Check the front end for the `aria-label=\"Table of Contents\"` attribute.\r\n\r\n### Testing Instructions for Keyboard\r\n\r\n\r\nVerify in the back-end that Up and Down Arrow keys allow you to navigate the block content.\r\n\r\n## Screenshots or screencast \r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54322/reactions",
+ "total_count": 3,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 3,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54322/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33513",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54151",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33513/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33513/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33513/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33513",
- "id": 946389939,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NjkxNTcxMzgw",
- "number": 33513,
- "title": "Correct `function_exists()` check typo introduced in #33331.",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54151/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54151/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54151/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54151",
+ "id": 1880250729,
+ "node_id": "PR_kwDOBNHdeM5Ze7UQ",
+ "number": 54151,
+ "title": "[Mobile] - GutenbergDemo app: Enable Hermes",
"user": {
- "login": "desrosj",
- "id": 359867,
- "node_id": "MDQ6VXNlcjM1OTg2Nw==",
- "avatar_url": "https://avatars.githubusercontent.com/u/359867?v=4",
+ "login": "geriux",
+ "id": 4885740,
+ "node_id": "MDQ6VXNlcjQ4ODU3NDA=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/4885740?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/desrosj",
- "html_url": "https://github.com/desrosj",
- "followers_url": "https://api.github.com/users/desrosj/followers",
- "following_url": "https://api.github.com/users/desrosj/following{/other_user}",
- "gists_url": "https://api.github.com/users/desrosj/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/desrosj/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/desrosj/subscriptions",
- "organizations_url": "https://api.github.com/users/desrosj/orgs",
- "repos_url": "https://api.github.com/users/desrosj/repos",
- "events_url": "https://api.github.com/users/desrosj/events{/privacy}",
- "received_events_url": "https://api.github.com/users/desrosj/received_events",
+ "url": "https://api.github.com/users/geriux",
+ "html_url": "https://github.com/geriux",
+ "followers_url": "https://api.github.com/users/geriux/followers",
+ "following_url": "https://api.github.com/users/geriux/following{/other_user}",
+ "gists_url": "https://api.github.com/users/geriux/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/geriux/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/geriux/subscriptions",
+ "organizations_url": "https://api.github.com/users/geriux/orgs",
+ "repos_url": "https://api.github.com/users/geriux/repos",
+ "events_url": "https://api.github.com/users/geriux/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/geriux/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 531680823,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
- "name": "[Type] Bug",
- "color": "d93f0b",
+ "id": 982506020,
+ "node_id": "MDU6TGFiZWw5ODI1MDYwMjA=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20i.e.%20Android%20or%20iOS",
+ "name": "Mobile App - i.e. Android or iOS",
+ "color": "a3ef7a",
+ "default": false,
+ "description": "Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)"
+ },
+ {
+ "id": 1789344476,
+ "node_id": "MDU6TGFiZWwxNzg5MzQ0NDc2",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Feature",
+ "name": "[Type] Feature",
+ "color": "2e8daa",
"default": false,
- "description": "An existing feature is broken."
+ "description": "New feature to highlight in changelogs."
}
],
"state": "closed",
"locked": false,
- "assignee": {
- "login": "desrosj",
- "id": 359867,
- "node_id": "MDQ6VXNlcjM1OTg2Nw==",
- "avatar_url": "https://avatars.githubusercontent.com/u/359867?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/desrosj",
- "html_url": "https://github.com/desrosj",
- "followers_url": "https://api.github.com/users/desrosj/followers",
- "following_url": "https://api.github.com/users/desrosj/following{/other_user}",
- "gists_url": "https://api.github.com/users/desrosj/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/desrosj/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/desrosj/subscriptions",
- "organizations_url": "https://api.github.com/users/desrosj/orgs",
- "repos_url": "https://api.github.com/users/desrosj/repos",
- "events_url": "https://api.github.com/users/desrosj/events{/privacy}",
- "received_events_url": "https://api.github.com/users/desrosj/received_events",
- "type": "User",
- "site_admin": false
- },
- "assignees": [
- {
- "login": "desrosj",
- "id": 359867,
- "node_id": "MDQ6VXNlcjM1OTg2Nw==",
- "avatar_url": "https://avatars.githubusercontent.com/u/359867?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/desrosj",
- "html_url": "https://github.com/desrosj",
- "followers_url": "https://api.github.com/users/desrosj/followers",
- "following_url": "https://api.github.com/users/desrosj/following{/other_user}",
- "gists_url": "https://api.github.com/users/desrosj/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/desrosj/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/desrosj/subscriptions",
- "organizations_url": "https://api.github.com/users/desrosj/orgs",
- "repos_url": "https://api.github.com/users/desrosj/repos",
- "events_url": "https://api.github.com/users/desrosj/events{/privacy}",
- "received_events_url": "https://api.github.com/users/desrosj/received_events",
- "type": "User",
- "site_admin": false
- }
- ],
+ "assignee": null,
+ "assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -13109,131 +22037,156 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
"comments": 2,
- "created_at": "2021-07-16T15:23:00Z",
- "updated_at": "2021-08-05T13:18:11Z",
- "closed_at": "2021-08-05T13:15:38Z",
- "author_association": "CONTRIBUTOR",
+ "created_at": "2023-09-04T13:06:13Z",
+ "updated_at": "2023-09-28T10:47:23Z",
+ "closed_at": "2023-09-28T10:46:56Z",
+ "author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33513",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33513",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33513.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33513.patch"
- },
- "body": "## Description\r\nThis corrects a `function_exists()` check introduced in #33331.\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [ ] My code has proper inline documentation. \r\n- [ ] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54151",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54151",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54151.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54151.patch",
+ "merged_at": "2023-09-28T10:46:56Z"
+ },
+ "body": "**Related PRs:**\r\n- https://github.com/wordpress-mobile/gutenberg-mobile/pull/6154\r\n\r\n## What?\r\nThis PR adds support to use Hermes on the iOS Demo App.\r\n\r\n## Why?\r\nWe are already using Hermes in the host iOS app, so it makes sense to use it in the Demo app as well, as this is where we run our E2E tests and typically build some features. This approach ensures that we test and develop using the same engine.\r\n\r\n## How?\r\nIt updates the bundle scripts to use Hermes functionalities like bytecode bundles.\r\n\r\nRemoves the Reanimated patch since it's not needed anymore.\r\n\r\nDue to the cache we have for npm modules, it updates to a minor version of `react-native-url-polyfill` to trigger a new installation of npm modules. This update includes some fixes and does not introduce any breaking changes.\r\n\r\n## Testing Instructions\r\nCI checks should pass.\r\n\r\nLocal build should run with metro.\r\n\r\n## Screenshots or screencast \r\nN/A",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54151/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54151/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33426",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54110",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33426/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33426/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33426/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33426",
- "id": 944506962,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njg5OTgwNDk2",
- "number": 33426,
- "title": "[RNMobile] Embed block: Implement specific Embed preview",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54110/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54110/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54110/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54110",
+ "id": 1877364093,
+ "node_id": "PR_kwDOBNHdeM5ZVgx0",
+ "number": 54110,
+ "title": "Adds 'nofollow' setting to Button block",
"user": {
- "login": "fluiddot",
- "id": 14905380,
- "node_id": "MDQ6VXNlcjE0OTA1Mzgw",
- "avatar_url": "https://avatars.githubusercontent.com/u/14905380?v=4",
+ "login": "bangank36",
+ "id": 10071857,
+ "node_id": "MDQ6VXNlcjEwMDcxODU3",
+ "avatar_url": "https://avatars.githubusercontent.com/u/10071857?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/fluiddot",
- "html_url": "https://github.com/fluiddot",
- "followers_url": "https://api.github.com/users/fluiddot/followers",
- "following_url": "https://api.github.com/users/fluiddot/following{/other_user}",
- "gists_url": "https://api.github.com/users/fluiddot/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/fluiddot/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/fluiddot/subscriptions",
- "organizations_url": "https://api.github.com/users/fluiddot/orgs",
- "repos_url": "https://api.github.com/users/fluiddot/repos",
- "events_url": "https://api.github.com/users/fluiddot/events{/privacy}",
- "received_events_url": "https://api.github.com/users/fluiddot/received_events",
+ "url": "https://api.github.com/users/bangank36",
+ "html_url": "https://github.com/bangank36",
+ "followers_url": "https://api.github.com/users/bangank36/followers",
+ "following_url": "https://api.github.com/users/bangank36/following{/other_user}",
+ "gists_url": "https://api.github.com/users/bangank36/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/bangank36/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/bangank36/subscriptions",
+ "organizations_url": "https://api.github.com/users/bangank36/orgs",
+ "repos_url": "https://api.github.com/users/bangank36/repos",
+ "events_url": "https://api.github.com/users/bangank36/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/bangank36/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 982506020,
- "node_id": "MDU6TGFiZWw5ODI1MDYwMjA=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20i.e.%20Android%20or%20iOS",
- "name": "Mobile App - i.e. Android or iOS",
- "color": "a3ef7a",
+ "id": 1112969457,
+ "node_id": "MDU6TGFiZWwxMTEyOTY5NDU3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Buttons",
+ "name": "[Block] Buttons",
+ "color": "6767e5",
"default": false,
- "description": "Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)"
+ "description": "Affects the Buttons Block"
},
{
- "id": 1078477350,
- "node_id": "MDU6TGFiZWwxMDc4NDc3MzUw",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Embed",
- "name": "[Block] Embed",
- "color": "6767e5",
+ "id": 1789344476,
+ "node_id": "MDU6TGFiZWwxNzg5MzQ0NDc2",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Feature",
+ "name": "[Type] Feature",
+ "color": "2e8daa",
+ "default": false,
+ "description": "New feature to highlight in changelogs."
+ },
+ {
+ "id": 1838782557,
+ "node_id": "MDU6TGFiZWwxODM4NzgyNTU3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Link%20Editing",
+ "name": "[Feature] Link Editing",
+ "color": "fbca04",
"default": false,
- "description": ""
+ "description": "Link components (LinkControl, URLInput) and integrations (RichText link formatting)"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "fluiddot",
- "id": 14905380,
- "node_id": "MDQ6VXNlcjE0OTA1Mzgw",
- "avatar_url": "https://avatars.githubusercontent.com/u/14905380?v=4",
+ "login": "bangank36",
+ "id": 10071857,
+ "node_id": "MDQ6VXNlcjEwMDcxODU3",
+ "avatar_url": "https://avatars.githubusercontent.com/u/10071857?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/fluiddot",
- "html_url": "https://github.com/fluiddot",
- "followers_url": "https://api.github.com/users/fluiddot/followers",
- "following_url": "https://api.github.com/users/fluiddot/following{/other_user}",
- "gists_url": "https://api.github.com/users/fluiddot/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/fluiddot/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/fluiddot/subscriptions",
- "organizations_url": "https://api.github.com/users/fluiddot/orgs",
- "repos_url": "https://api.github.com/users/fluiddot/repos",
- "events_url": "https://api.github.com/users/fluiddot/events{/privacy}",
- "received_events_url": "https://api.github.com/users/fluiddot/received_events",
+ "url": "https://api.github.com/users/bangank36",
+ "html_url": "https://github.com/bangank36",
+ "followers_url": "https://api.github.com/users/bangank36/followers",
+ "following_url": "https://api.github.com/users/bangank36/following{/other_user}",
+ "gists_url": "https://api.github.com/users/bangank36/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/bangank36/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/bangank36/subscriptions",
+ "organizations_url": "https://api.github.com/users/bangank36/orgs",
+ "repos_url": "https://api.github.com/users/bangank36/repos",
+ "events_url": "https://api.github.com/users/bangank36/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/bangank36/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "fluiddot",
- "id": 14905380,
- "node_id": "MDQ6VXNlcjE0OTA1Mzgw",
- "avatar_url": "https://avatars.githubusercontent.com/u/14905380?v=4",
+ "login": "bangank36",
+ "id": 10071857,
+ "node_id": "MDQ6VXNlcjEwMDcxODU3",
+ "avatar_url": "https://avatars.githubusercontent.com/u/10071857?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/fluiddot",
- "html_url": "https://github.com/fluiddot",
- "followers_url": "https://api.github.com/users/fluiddot/followers",
- "following_url": "https://api.github.com/users/fluiddot/following{/other_user}",
- "gists_url": "https://api.github.com/users/fluiddot/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/fluiddot/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/fluiddot/subscriptions",
- "organizations_url": "https://api.github.com/users/fluiddot/orgs",
- "repos_url": "https://api.github.com/users/fluiddot/repos",
- "events_url": "https://api.github.com/users/fluiddot/events{/privacy}",
- "received_events_url": "https://api.github.com/users/fluiddot/received_events",
+ "url": "https://api.github.com/users/bangank36",
+ "html_url": "https://github.com/bangank36",
+ "followers_url": "https://api.github.com/users/bangank36/followers",
+ "following_url": "https://api.github.com/users/bangank36/following{/other_user}",
+ "gists_url": "https://api.github.com/users/bangank36/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/bangank36/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/bangank36/subscriptions",
+ "organizations_url": "https://api.github.com/users/bangank36/orgs",
+ "repos_url": "https://api.github.com/users/bangank36/repos",
+ "events_url": "https://api.github.com/users/bangank36/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/bangank36/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -13256,149 +22209,107 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 7,
- "created_at": "2021-07-14T14:48:06Z",
- "updated_at": "2021-08-11T11:42:39Z",
- "closed_at": "2021-08-11T10:08:58Z",
+ "comments": 3,
+ "created_at": "2023-09-01T12:47:04Z",
+ "updated_at": "2023-09-21T12:12:52Z",
+ "closed_at": "2023-09-21T12:12:24Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33426",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33426",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33426.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33426.patch"
- },
- "body": "`gutenberg-mobile` PR: https://github.com/wordpress-mobile/gutenberg-mobile/pull/3725\r\n`WordPress-iOS` PR: https://github.com/wordpress-mobile/WordPress-iOS/pull/16866\r\n`WordPress-Android` PR: https://github.com/wordpress-mobile/WordPress-Android/pull/15051\r\n\r\n\r\n\r\n\r\n\r\n## Description\r\n\r\n\r\nThis PR includes the `react-native-webview` native module to render the HTML of the embed preview.\r\n\r\nFollowing the implementation of the web version, a native version of the `SandBox` component has been implemented. In the following sections, I briefly describe the key points of this component and how it has been addressed for the native version.\r\n\r\nDetails \r\n\r\n# Embed preview component\r\n\r\n## Interactive flag and overlay\r\n\r\n**✅ It doesn't require further implementation.**\r\n\r\nRelated code \r\n\r\nhttps://github.com/WordPress/gutenberg/blob/105dc1dfe41ed8fe85c147c1c3c204f9fb683990/packages/block-library/src/embed/embed-preview.js#L45-L52\r\nhttps://github.com/WordPress/gutenberg/blob/105dc1dfe41ed8fe85c147c1c3c204f9fb683990/packages/block-library/src/embed/embed-preview.js#L101-L108\r\n\r\n \r\n\r\nThis is mainly used to show/hide an overlay view, as far as I checked, the purpose of this logic is to prevent the user to interact with the preview unless the block and the Iframe are focused. In native, this is not necessary as we can easily control the interaction via the `pointerEvents` prop of the `View` component and the `isSelected` prop.\r\n\r\n## Sandbox classnames\r\n\r\n**🔧 This will be addressed in this issue: https://github.com/wordpress-mobile/gutenberg-mobile/issues/3284**\r\n\r\nRelated code \r\n\r\nhttps://github.com/WordPress/gutenberg/blob/105dc1dfe41ed8fe85c147c1c3c204f9fb683990/packages/block-library/src/embed/embed-preview.js#L81-L85\r\nhttps://github.com/WordPress/gutenberg/blob/105dc1dfe41ed8fe85c147c1c3c204f9fb683990/packages/block-library/src/embed/embed-preview.js#L100\r\n\r\n \r\n\r\nI'm not sure if they're required in native, but it would be worth investigating it, maybe we would need them for the alignment.\r\n\r\n## `WpEmbedPreview` component\r\n\r\n**🔧 This will be addressed in this issue: https://github.com/wordpress-mobile/gutenberg-mobile/issues/3744.**\r\n\r\nRelated code \r\n\r\nhttps://github.com/WordPress/gutenberg/blob/105dc1dfe41ed8fe85c147c1c3c204f9fb683990/packages/block-library/src/embed/embed-preview.js#L92-L93\r\n\r\n \r\n\r\nThis PR doesn't support yet WordPress embeds.\r\n\r\n## Not previewable case\r\n\r\n**🔧 This will be addressed in this issue: https://github.com/wordpress-mobile/gutenberg-mobile/issues/3277**\r\n\r\nRelated code \r\n\r\nhttps://github.com/WordPress/gutenberg/blob/105dc1dfe41ed8fe85c147c1c3c204f9fb683990/packages/block-library/src/embed/embed-preview.js#L122-L138\r\n\r\n \r\n\r\nWe're currently displaying the unavailable preview fallback, now that we support previews, we should update this component.\r\n\r\n# Sandbox component\r\n\r\n## [`FocusableIframe` component](https://github.com/WordPress/gutenberg/blob/trunk/packages/components/src/focusable-iframe/index.js)\r\n\r\n**✅ It doesn't require further implementation.**\r\n\r\nRelated code \r\n\r\nhttps://github.com/WordPress/gutenberg/blob/105dc1dfe41ed8fe85c147c1c3c204f9fb683990/packages/components/src/sandbox/index.js#L241-L249\r\n\r\n \r\n\r\nThis component is mainly used in the web version to determine if the Iframe has been focused and notify the embed preview component. In the embed preview, the focus event is used for controlling the preview interaction, as we're going to control it in a different way, implementing this component won't be necessary for the native version.\r\n\r\n## Resize JS observer\r\n\r\n**✅ It doesn't require further implementation.**\r\n\r\nRelated code \r\n\r\nhttps://github.com/WordPress/gutenberg/blob/105dc1dfe41ed8fe85c147c1c3c204f9fb683990/packages/components/src/sandbox/index.js#L16-L73\r\n\r\n \r\n\r\nThis JS code is used to listen for size changes within the preview, initially, we can use the same version in native. The only tweak I introduced is the object used to notify upstream, on native is `ReactNativeWebView`.\r\n\r\nhttps://github.com/WordPress/gutenberg/blob/0d35c24bfd797185926e465eb040d935834e6454/packages/components/src/sandbox/index.native.js#L27\r\n\r\n## Iframe style\r\n\r\n**🔧 This will be addressed in this issue: https://github.com/wordpress-mobile/gutenberg-mobile/issues/3284**\r\n\r\nRelated code \r\n\r\nhttps://github.com/WordPress/gutenberg/blob/105dc1dfe41ed8fe85c147c1c3c204f9fb683990/packages/components/src/sandbox/index.js#L75-L96\r\n\r\n \r\n\r\nThis is the style object used as the base style for the preview. I noticed that it references the class name `wp-has-aspect-ratio`, we should check what's the purpose of this and if required implement it in the native version.\r\n\r\n## `isFrameAccessible` function\r\n\r\n**✅ It doesn't require further implementation.**\r\n\r\nRelated code \r\n\r\nhttps://github.com/WordPress/gutenberg/blob/105dc1dfe41ed8fe85c147c1c3c204f9fb683990/packages/components/src/sandbox/index.js#L110-L116\r\n\r\n \r\n\r\nNot required because the webview component is always accessible.\r\n\r\n## [`trySandbox` function](https://github.com/WordPress/gutenberg/blob/105dc1dfe41ed8fe85c147c1c3c204f9fb683990/packages/components/src/sandbox/index.js#L118-L176)\r\n\r\n### `contentDocument` ref\r\n\r\n**✅ It doesn't require further implementation.**\r\n\r\nRelated code \r\n\r\nhttps://github.com/WordPress/gutenberg/blob/105dc1dfe41ed8fe85c147c1c3c204f9fb683990/packages/components/src/sandbox/index.js#L123-L124\r\nhttps://github.com/WordPress/gutenberg/blob/105dc1dfe41ed8fe85c147c1c3c204f9fb683990/packages/components/src/sandbox/index.js#L170-L175\r\n\r\n \r\n\r\nIt's used for injecting the HTML to the IFrame in the web version, initially, it won't be necessary for the native version as we use the `source` prop of the `webview` component.\r\n\r\nHowever, I noticed that the `body` property is extracted from this value so we should investigate if it's required.\r\n\r\n**EDIT:** This is not required in the mobile version.\r\n\r\nhttps://github.com/WordPress/gutenberg/blob/105dc1dfe41ed8fe85c147c1c3c204f9fb683990/packages/components/src/sandbox/index.js#L128\r\n\r\n### `ownerDocument` ref - Language value\r\n\r\n**🔧 Being addressed in `rnmobile/embed-block-preview-locale` branch.**\r\n\r\nRelated code \r\n\r\nhttps://github.com/WordPress/gutenberg/blob/105dc1dfe41ed8fe85c147c1c3c204f9fb683990/packages/components/src/sandbox/index.js#L139\r\n\r\n \r\n\r\nUsed to extract the language from the browser so it's not necessary for the native version. For now, in the native version, the language is fixed to `en` but we should fetch it from the device via the locale.\r\n\r\nhttps://github.com/WordPress/gutenberg/blob/0d35c24bfd797185926e465eb040d935834e6454/packages/components/src/sandbox/index.native.js#L111-L112\r\n\r\n### `data-resizable-iframe-connected` attribute\r\n\r\n**✅ It doesn't require further implementation.**\r\n\r\nRelated code \r\n\r\nhttps://github.com/WordPress/gutenberg/blob/105dc1dfe41ed8fe85c147c1c3c204f9fb683990/packages/components/src/sandbox/index.js#L126-L131\r\nhttps://github.com/WordPress/gutenberg/blob/105dc1dfe41ed8fe85c147c1c3c204f9fb683990/packages/components/src/sandbox/index.js#L153\r\nhttps://github.com/WordPress/gutenberg/blob/105dc1dfe41ed8fe85c147c1c3c204f9fb683990/packages/components/src/sandbox/index.js#L66\r\n\r\n \r\n\r\nLooks like it's used to know if the resize observer has been initialized, we should investigate if it's required.\r\n\r\n**EDIT:** This is not required in the mobile version.\r\n\r\n### HTML Doc\r\n\r\n**✅ It doesn't require further implementation.**\r\n\r\nRelated code \r\n\r\nhttps://github.com/WordPress/gutenberg/blob/105dc1dfe41ed8fe85c147c1c3c204f9fb683990/packages/components/src/sandbox/index.js#L137-L168\r\n\r\n \r\n\r\nThis is the HTML injected into the webview, the current code is ok but I included the following meta tag to fit the content:\r\n\r\nhttps://github.com/WordPress/gutenberg/blob/0d35c24bfd797185926e465eb040d935834e6454/packages/components/src/sandbox/index.native.js#L122-L125\r\n\r\n## Resize message handling\r\n\r\n**✅ It doesn't require further implementation.**\r\n\r\nRelated code \r\n\r\nhttps://github.com/WordPress/gutenberg/blob/105dc1dfe41ed8fe85c147c1c3c204f9fb683990/packages/components/src/sandbox/index.js#L185-L210\r\n\r\n \r\n\r\nThis is the callback used for handling resize events from the resize JS observer. I'd like to note that I removed a part that is used to verify that the origin of the message is the resize observer, in native, this is not really necessary as the resize message it's the only one that we're receiving.\r\n\r\n## Load event listener\r\n\r\n**✅ It doesn't require further implementation.**\r\n\r\nRelated code \r\n\r\nhttps://github.com/WordPress/gutenberg/blob/105dc1dfe41ed8fe85c147c1c3c204f9fb683990/packages/components/src/sandbox/index.js#L215-L219\r\n\r\n \r\n\r\nThe load event is used to call the `trySandbox` function after the load in the web version, as far as I checked, this is not required but it would be nice to investigate it further.\r\n\r\n**EDIT:** This is not required in the mobile version.\r\n\r\n## Message event listener\r\n\r\n**✅ It doesn't require further implementation.**\r\n\r\nRelated code \r\n\r\nhttps://github.com/WordPress/gutenberg/blob/105dc1dfe41ed8fe85c147c1c3c204f9fb683990/packages/components/src/sandbox/index.js#L220\r\n\r\n \r\n\r\nIn this case, we use the webview component message system so it's not required.\r\n\r\n## IFrame extra props\r\n\r\n**✅ It doesn't require further implementation.**\r\n\r\nRelated code \r\n\r\nhttps://github.com/WordPress/gutenberg/blob/105dc1dfe41ed8fe85c147c1c3c204f9fb683990/packages/components/src/sandbox/index.js#L241-L249\r\n\r\n \r\n\r\nIn the web version, we have the following extra props passed to the Iframe:\r\n- `className=\"components-sandbox\"`\r\n- `sandbox=\"allow-scripts allow-same-origin allow-presentation\"`\r\n- Size (width and height)\r\n\r\nWe should verify if they're required in the native version.\r\n\r\n**NOTE:** The size in the native version is handled by passing an inline style with the aspect ratio calculated from the preview size.\r\n\r\nhttps://github.com/WordPress/gutenberg/blob/0d35c24bfd797185926e465eb040d935834e6454/packages/components/src/sandbox/index.native.js#L188-L190\r\n\r\n**EDIT:** This is not required in the mobile version.\r\n\r\n \r\n\r\n## How has this been tested?\r\n\r\n\r\n\r\n\r\n### Test all providers\r\n1. Switch to HTML mode\r\n2. Add the following HTML which includes all providers\r\nHTML code \r\n\r\n```\r\n\r\n\r\nhttps://www.amazon.com/dp/B086V2NKW6/ref=cm_sw_em_r_mt_dp_T9CZKRCGX4XFCGT31VAM\r\n
Amazon Kindle instant previews \r\n\r\n\r\n\r\n\r\nhttps://animoto.com/play/sbONyhv5XN2fn26GGA061A\r\n
\r\n\r\n\r\n\r\n\r\nhttps://cloudup.com/iGdvFflihj0\r\n
CloudUp \r\n\r\n\r\n\r\n\r\nhttps://poll.fm/10575316\r\n
Crowdsignal \r\n\r\n\r\n\r\n\r\nhttps://www.dailymotion.com/video/x7zktsb\r\n
Dailymotion \r\n\r\n\r\n\r\n\r\nhttps://www.facebook.com/WordPress/posts/10157978031167911?cft_[0]=AZVvIZnOgLmO0aGMW4l_KcldOSSTnnoKogx7sWLpwpMpQjGresqAxd8KVMTBbKyX95DiRBKMPVZKmVUYHpvuK2AK73LkLoLxKRXHhHR73LMAAdy8X13RWJuUbTE4ISBAOQ96wDsk6Fz-VNRLG8Vp-2vJiXSVd4sfYiuGEkNizSmaXg& _tn_=%2CO%2CP-R \r\n
Facebook \r\n\r\n\r\n\r\n\r\nhttps://flic.kr/p/2h93TrK\r\n
Flickr \r\n\r\n\r\n\r\n\r\nhttps://media.giphy.com/media/1d7F9xyq6j7C1ojbC5/giphy.gif\r\n
Giphy \r\n\r\n\r\n\r\nImgur provider doesn’t work: https://imgur.com/gallery/Tfj5BzO
\r\n\r\n\r\n\r\nhttps://imgur.com/gallery/Tfj5BzO
\r\n\r\n\r\n\r\n\r\nhttps://www.instagram.com/p/Bl6LgZgFDOm\r\n
Instagram \r\n\r\n\r\n\r\n\r\nhttps://issuu.com/sneha-3213/docs/react_native_0.64.2_released_discover_what_s_new_\r\n
Issuu \r\n\r\n\r\n\r\n\r\nhttps://www.kickstarter.com/projects/elanlee/exploding-kittens?ref=discovery&term=exploding%20kittens\r\n
Kickstarter \r\n\r\n\r\n\r\nMeetup.com provider doesn’t work: https://www.meetup.com/es/The-Reno-WordPress-Meetup-Group/events/smpbksycckblc/
\r\n\r\n\r\n\r\nhttps://www.meetup.com/es/The-Reno-WordPress-Meetup-Group/events/smpbksycckblc/
\r\n\r\n\r\n\r\n\r\nhttps://www.mixcloud.com/maxvibes/nu-jazz-lounge/\r\n
Mixcloud \r\n\r\n\r\n\r\n\r\nhttps://www.reddit.com/r/reactnative/comments/oovdxz/typescript_or_javascript_for_rn/?utm_source=share&utm_medium=web2x&context=3\r\n
Reddit \r\n\r\n\r\n\r\n\r\nhttps://www.reverbnation.com/hmsurf/song/27456133-sids-lesson\r\n
Reverbnation \r\n\r\n\r\n\r\n\r\nhttps://www.scribd.com/document/430258318/Professional-Javascript\r\n
Scribd \r\n\r\n\r\n\r\n\r\nhttps://www.slideshare.net/brianhousand/game-on-iagc-2016\r\n
Slideshare \r\n\r\n\r\n\r\n\r\nhttps://soundcloud.com/dillonfrancis/daft-punk-harder-better-faster-stronger-dillon-francis-remix\r\n
Soundcloud \r\n\r\n\r\n\r\n\r\nhttps://speakerdeck.com/notwaldorf/how-to-train-your-dragon-web-standard\r\n
Speakerdeck \r\n\r\n\r\n\r\n\r\nhttps://open.spotify.com/track/5sICkBXVmaCQk5aISGR3x1\r\n
Spotify \r\n\r\n\r\n\r\n\r\nhttps://www.ted.com/talks/max_hawkins_i_let_algorithms_randomize_my_life_for_two_years?utm_source=tedcomshare&utm_medium=social&utm_campaign=tedspread\r\n
Ted \r\n\r\n\r\n\r\n\r\nhttps://www.tiktok.com/@25pesetas/video/6946150795909893381\r\n
Tiktok \r\n\r\n\r\n\r\n\r\nhttps://popelickva.tumblr.com/post/646024560144171008/the-sega-cd-version-of-monkey-island-has-some\r\n
Tumblr \r\n\r\n\r\n\r\n\r\nhttps://twitter.com/automattic/status/1395447061336711181\r\n
Twitter \r\n\r\n\r\n\r\n\r\nhttps://vimeo.com/278150343\r\n
Vimeo \r\n\r\n\r\n\r\n\r\nhttps://videopress.com/v/rFm2ce4R\r\n
WordPress.tv \r\n\r\n\r\n\r\n\r\nhttps://www.youtube.com/watch?v=ssfHW5lwFZg\r\n
YouTube \r\n\r\n\r\n\r\n\r\nhttps://www.screencast.com/t/F6R333xrD3BQ\r\n
Screencast \r\n\r\n\r\n\r\n\r\nhttps://wordpress.org/news/2021/07/tatum/\r\n
WP-embed (not supported yet) \r\n\r\n\r\n\r\n\r\nhttps://www.educreations.com/lesson/view/science/25630392/?s=UkHL9p&ref=app\r\n
Educreations \r\n\r\n\r\n\r\n\r\nhttps://sproutvideo-example.vids.io/videos/189bdbb01e1ce7c790/video-websites-by-sproutvideo\r\n
SproutVideo \r\n\r\n\r\n\r\n\r\nhttp://automattic-2.wistia.com/medias/mqf9c9147u\r\n
Wistia \r\n\r\n```\r\n\r\n \r\n\r\n3. Observer that embed blocks are displaying a preview for each provider.\r\n **NOTE:** The following providers are not working on both platforms:\r\n - Facebook\r\n - Imgur\r\n - Meetup.com\r\n\r\n### Interaction is disabled\r\n1. Add an Embed block\r\n2. Set a URL that can be previewed (example: https://www.youtube.com/watch?v=ssfHW5lwFZg)\r\n3. Observe that the content preview is displayed\r\n4. Tap on any UI element (like the play button) within the preview content\r\n5. Observe that interaction is disabled\r\n\r\n### Inline preview disabled in production mode\r\n1. Use an installable build to test production mode\r\n2. Add an Embed block\r\n2. Set a URL that can be previewed (example: https://www.youtube.com/watch?v=ssfHW5lwFZg)\r\n3. Observe that the block's content displays a message that inline preview is coming soon and the text \"PREVIEW POST\"\r\n4. Tap on the block to edit it\r\n5. Observe that an info modal shows up explaining that previews are coming soon\r\n6. Observe that tapping on the dismiss button closes the modal\r\n7. Tap on the block again to open the previous modal\r\n8. Tap on \"Preview post\"\r\n9. Observe that the modal is closed and the preview modal is opened displaying the embed block\r\n\r\n### Performance\r\n\r\n**Preparation:**\r\n1. Add a high number of embed blocks that will display a preview like the previous HTML code from \"Test all providers\" test case\r\n2. Save the post/page\r\n\r\n#### Opening a post/page\r\n1. Open the post/page\r\n2. Observe that performance is not degraded when loading a high number of embed blocks\r\n\r\n#### Scrolling content\r\n1. Open the post/page\r\n2. Scroll the post/page content from top to bottom and vice-versa\r\n3. Observe that performance is not degraded when scrolling\r\n\r\n## Screenshots \r\n\r\niOS|Android\r\n--|--\r\n|\r\n\r\n## Types of changes\r\n\r\n\r\n\r\n\r\nNew feature\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54110",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54110",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54110.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54110.patch",
+ "merged_at": "2023-09-21T12:12:24Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\nAdd the ability to toggle the `nofollow` for Button's link. \r\n\r\nPartial implementation of https://github.com/WordPress/gutenberg/issues/54091\r\nPrior art for Rich text link https://github.com/WordPress/gutenberg/pull/53945\r\n\r\n## Why?\r\n\r\nCheck https://github.com/WordPress/gutenberg/pull/53945#issue-1866939265\r\n\r\n## How?\r\n\r\n- Place the `nofollow` option in the `Advanced` settings area\r\n- Update the [linkValue](https://github.com/WordPress/gutenberg/blob/0792221dd597290fe512b109a1469f2057f0dda4/packages/block-library/src/button/edit.js#L154) for persisting the Advanced settings state\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n- Open Post Editor\r\n- Add new Button block\r\n- Add a link to the Button\r\n- Click Edit link\r\n- Toggle the `opensInNewTab` and `nofollow` \r\n- Check and confirm whether the `rel` and `target` attributes has been inserted correctly\r\n\r\n| opensInNewWindow | nofollow | Generated |\r\n| --------------------------- | --------------------- | ---------------------------------------- |\r\n| ✅ | ❌ | `target=\"_blank\" rel=\"noreferrer noopener\"` |\r\n| ❌ | ✅ | `target=\"\" rel=\"nofollow\"` |\r\n| ✅ | ✅ | `target=\"_blank\" rel=\"noreferrer noopener nofollow\"` |\r\n| ❌ | ❌ | `target=\"\" rel=\"\"` |\r\n\r\n### Testings\r\n- Verify and update these e2e tests\r\n `npm run test:e2e:playwright -- test/e2e/specs/editor/blocks/links.spec.js`\r\n `npm run test:e2e:playwright -- test/e2e/specs/editor/blocks/buttons.spec.js`\r\n\r\n- Insert new unit testing for updateLinkAttributes\r\n `npm run test:unit -- packages/block-library/src/button`\r\n\r\n### Testing Instructions for Keyboard\r\n\r\n\r\n## Screenshots or screencast \r\n\r\nhttps://github.com/WordPress/gutenberg/assets/10071857/de3bcbc1-6bb7-45e8-b6eb-d7da7e6d974e\r\n\r\ncc: @getdave \r\n\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54110/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54110/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33418",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54054",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33418/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33418/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33418/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33418",
- "id": 944243830,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njg5NzUzODQ2",
- "number": 33418,
- "title": "Refactor the HierarchicalTermSelector so that it does not cause unnecessary loading of terms.",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54054/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54054/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54054/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54054",
+ "id": 1873499766,
+ "node_id": "PR_kwDOBNHdeM5ZIYVr",
+ "number": 54054,
+ "title": "Set custom color when applying initial background image",
"user": {
- "login": "torounit",
- "id": 1908815,
- "node_id": "MDQ6VXNlcjE5MDg4MTU=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1908815?v=4",
+ "login": "draganescu",
+ "id": 107534,
+ "node_id": "MDQ6VXNlcjEwNzUzNA==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/107534?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/torounit",
- "html_url": "https://github.com/torounit",
- "followers_url": "https://api.github.com/users/torounit/followers",
- "following_url": "https://api.github.com/users/torounit/following{/other_user}",
- "gists_url": "https://api.github.com/users/torounit/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/torounit/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/torounit/subscriptions",
- "organizations_url": "https://api.github.com/users/torounit/orgs",
- "repos_url": "https://api.github.com/users/torounit/repos",
- "events_url": "https://api.github.com/users/torounit/events{/privacy}",
- "received_events_url": "https://api.github.com/users/torounit/received_events",
+ "url": "https://api.github.com/users/draganescu",
+ "html_url": "https://github.com/draganescu",
+ "followers_url": "https://api.github.com/users/draganescu/followers",
+ "following_url": "https://api.github.com/users/draganescu/following{/other_user}",
+ "gists_url": "https://api.github.com/users/draganescu/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/draganescu/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/draganescu/subscriptions",
+ "organizations_url": "https://api.github.com/users/draganescu/orgs",
+ "repos_url": "https://api.github.com/users/draganescu/repos",
+ "events_url": "https://api.github.com/users/draganescu/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/draganescu/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 596964332,
- "node_id": "MDU6TGFiZWw1OTY5NjQzMzI=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/General%20Interface",
- "name": "General Interface",
- "color": "bfdadc",
- "default": false,
- "description": "Parts of the UI which don't fall neatly under other labels."
- },
- {
- "id": 731693674,
- "node_id": "MDU6TGFiZWw3MzE2OTM2NzQ=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Performance",
- "name": "[Type] Performance",
- "color": "f3f4fe",
- "default": false,
- "description": ""
- },
- {
- "id": 1013395453,
- "node_id": "MDU6TGFiZWwxMDEzMzk1NDUz",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Editor",
- "name": "[Package] Editor",
- "color": "ed2572",
+ "id": 531680825,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
+ "name": "[Type] Enhancement",
+ "color": "FEF2C0",
"default": false,
- "description": "/packages/editor"
+ "description": "A suggestion for improvement."
},
{
- "id": 1293579839,
- "node_id": "MDU6TGFiZWwxMjkzNTc5ODM5",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Needs%20Dev%20Note",
- "name": "Needs Dev Note",
- "color": "b910f2",
+ "id": 1101517892,
+ "node_id": "MDU6TGFiZWwxMTAxNTE3ODky",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Cover",
+ "name": "[Block] Cover",
+ "color": "6767e5",
"default": false,
- "description": ""
+ "description": "Affects the Cover Block - used to display content laid over a background image"
}
],
"state": "closed",
"locked": false,
- "assignee": {
- "login": "torounit",
- "id": 1908815,
- "node_id": "MDQ6VXNlcjE5MDg4MTU=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1908815?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/torounit",
- "html_url": "https://github.com/torounit",
- "followers_url": "https://api.github.com/users/torounit/followers",
- "following_url": "https://api.github.com/users/torounit/following{/other_user}",
- "gists_url": "https://api.github.com/users/torounit/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/torounit/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/torounit/subscriptions",
- "organizations_url": "https://api.github.com/users/torounit/orgs",
- "repos_url": "https://api.github.com/users/torounit/repos",
- "events_url": "https://api.github.com/users/torounit/events{/privacy}",
- "received_events_url": "https://api.github.com/users/torounit/received_events",
- "type": "User",
- "site_admin": false
- },
- "assignees": [
- {
- "login": "torounit",
- "id": 1908815,
- "node_id": "MDQ6VXNlcjE5MDg4MTU=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1908815?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/torounit",
- "html_url": "https://github.com/torounit",
- "followers_url": "https://api.github.com/users/torounit/followers",
- "following_url": "https://api.github.com/users/torounit/following{/other_user}",
- "gists_url": "https://api.github.com/users/torounit/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/torounit/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/torounit/subscriptions",
- "organizations_url": "https://api.github.com/users/torounit/orgs",
- "repos_url": "https://api.github.com/users/torounit/repos",
- "events_url": "https://api.github.com/users/torounit/events{/privacy}",
- "received_events_url": "https://api.github.com/users/torounit/received_events",
- "type": "User",
- "site_admin": false
- }
- ],
+ "assignee": null,
+ "assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -13421,77 +22332,84 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 17,
- "created_at": "2021-07-14T09:44:47Z",
- "updated_at": "2021-08-04T03:04:55Z",
- "closed_at": "2021-07-28T05:23:06Z",
- "author_association": "MEMBER",
+ "comments": 14,
+ "created_at": "2023-08-30T11:41:33Z",
+ "updated_at": "2023-09-22T16:51:21Z",
+ "closed_at": "2023-09-22T16:50:57Z",
+ "author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33418",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33418",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33418.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33418.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\n\r\nRelated: #10169, #16268\r\n\r\n* Refactor the HierarchicalTermSelector so that it does not cause unnecessary loading of terms. Use the data from the first set of terms we get.\r\n* Changed from class components to functional components.\r\n\r\n\r\n\r\n## How has this been tested?\r\n1. Go edit post.\r\n2. Close and open the panel for categories.\r\n3. Check request for wp-api.\r\n\r\n## Screenshots \r\n\r\n## Types of changes\r\n\r\nBug fix\r\n\r\n\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [x] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/54054",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/54054",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/54054.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/54054.patch",
+ "merged_at": "2023-09-22T16:50:57Z"
+ },
+ "body": "Closes #44167\r\n\r\nThe original attempt was using `colorThief` (#22564) and there is another PR (#46908) which I learned after doing this one doing the same thing.\r\n\r\nAnyway 😬 this PR aims to land the feature.\r\n\r\n\r\n\r\nhttps://github.com/WordPress/gutenberg/assets/107534/62be4171-4549-46eb-859f-e61e88ce02e4\r\n\r\n\r\n\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/54054/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/54054/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33392",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/53981",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33392/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33392/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33392/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33392",
- "id": 943611535,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njg5MjE4MDcy",
- "number": 33392,
- "title": "Template: Only show post template actions to users with correct capabilities",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/53981/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/53981/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/53981/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/53981",
+ "id": 1869129204,
+ "node_id": "PR_kwDOBNHdeM5Y5rfG",
+ "number": 53981,
+ "title": "Post Title block should use esc_url()",
"user": {
- "login": "walbo",
- "id": 1415747,
- "node_id": "MDQ6VXNlcjE0MTU3NDc=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1415747?v=4",
+ "login": "tellyworth",
+ "id": 7200686,
+ "node_id": "MDQ6VXNlcjcyMDA2ODY=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/7200686?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/walbo",
- "html_url": "https://github.com/walbo",
- "followers_url": "https://api.github.com/users/walbo/followers",
- "following_url": "https://api.github.com/users/walbo/following{/other_user}",
- "gists_url": "https://api.github.com/users/walbo/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/walbo/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/walbo/subscriptions",
- "organizations_url": "https://api.github.com/users/walbo/orgs",
- "repos_url": "https://api.github.com/users/walbo/repos",
- "events_url": "https://api.github.com/users/walbo/events{/privacy}",
- "received_events_url": "https://api.github.com/users/walbo/received_events",
+ "url": "https://api.github.com/users/tellyworth",
+ "html_url": "https://github.com/tellyworth",
+ "followers_url": "https://api.github.com/users/tellyworth/followers",
+ "following_url": "https://api.github.com/users/tellyworth/following{/other_user}",
+ "gists_url": "https://api.github.com/users/tellyworth/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/tellyworth/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/tellyworth/subscriptions",
+ "organizations_url": "https://api.github.com/users/tellyworth/orgs",
+ "repos_url": "https://api.github.com/users/tellyworth/repos",
+ "events_url": "https://api.github.com/users/tellyworth/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/tellyworth/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 531680823,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
- "name": "[Type] Bug",
- "color": "d93f0b",
- "default": false,
- "description": "An existing feature is broken."
- },
- {
- "id": 2978205898,
- "node_id": "MDU6TGFiZWwyOTc4MjA1ODk4",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Template%20Editing%20Mode",
- "name": "[Feature] Template Editing Mode",
- "color": "FBCA04",
+ "id": 930001208,
+ "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
+ "name": "[Type] Code Quality",
+ "color": "e5e04b",
"default": false,
- "description": ""
+ "description": "Issues or PRs that relate to code quality"
}
],
"state": "closed",
@@ -13499,13 +22417,13 @@
"assignee": null,
"assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -13528,68 +22446,84 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 5,
- "created_at": "2021-07-13T16:29:08Z",
- "updated_at": "2021-08-09T16:51:20Z",
- "closed_at": "2021-08-09T16:31:48Z",
+ "comments": 1,
+ "created_at": "2023-08-28T07:11:17Z",
+ "updated_at": "2023-10-02T07:59:52Z",
+ "closed_at": "2023-10-02T07:59:25Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33392",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33392",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33392.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33392.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\nPost template actions shows on user that doesn't have correct capabilities. Ex editors has a `New` button but when they try to create a new template nothing happens. (See screenshot)\r\n\r\n## How has this been tested?\r\nLocally with a `editor` user and with a `adminitrator` user.\r\n\r\n## Screenshots \r\n### Before\r\n![template-new](https://user-images.githubusercontent.com/1415747/125489869-5bb2340b-29c9-402f-92ec-b79612a61d84.gif)\r\n\r\n### After\r\n![image](https://user-images.githubusercontent.com/1415747/126469473-ba4e2d7e-0a16-47c2-b62a-d0c78464ca3b.png)\r\n\r\n\r\n## Types of changes\r\nBug fix. Only show post template actions for users with correct capabilities\r\n\r\n\r\n\r\n\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [ ] My code has proper inline documentation. \r\n- [ ] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/53981",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/53981",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/53981.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/53981.patch",
+ "merged_at": "2023-10-02T07:59:25Z"
+ },
+ "body": "\r\n\r\n## What?\r\nThis PR adds URL escaping to the html output rendered by the Post Title block. It is not an issue of security, only of code quality.\r\n\r\n## Why?\r\nGood WP coding standards require the use of `esc_url()` when outputting a URL. This applies even to URLs generated by core functions such as `get_the_permalink()`; see for reference the Twenty Twenty One theme, which does exactly that:\r\n\r\nhttps://github.com/WordPress/twentytwentyone/blob/ba9f20cad89163761185c0467b346ba42541ae22/template-parts/content/content.php#L19\r\n\r\nThe Post Title block currently fails to escape the URL.\r\n\r\nFor the record, the Post Title block also fails to escape the title itself; however this is correct behaviour as per the docs: https://developer.wordpress.org/reference/functions/the_title/#more-information. Personally I think that position ought to be reconsidered, but that's a whole other issue, so I have intentionally left it as-is for this PR.\r\n\r\nRelated: #53838.\r\n\r\n## How?\r\nThe only change in this PR is adding the `esc_url()` call.\r\n\r\n## Testing Instructions\r\n1. Open any page with a Post Title block.\r\n2. Verify that the `href` in the link tag for the `#wp-block-post-title` is correct.\r\n\r\n## Screenshots or screencast \r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/53981/reactions",
+ "total_count": 1,
+ "+1": 1,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/53981/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33308",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/53928",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33308/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33308/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33308/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33308",
- "id": 940125152,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njg2MjQzNDQ3",
- "number": 33308,
- "title": "link fix: block editor Sidebar Tutorial",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/53928/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/53928/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/53928/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/53928",
+ "id": 1865715250,
+ "node_id": "PR_kwDOBNHdeM5YuVnr",
+ "number": 53928,
+ "title": "Add a unit test for the \"ValidBlockLibraryFunctionNameSniff\" sniff",
"user": {
- "login": "rbrishabh",
- "id": 22501334,
- "node_id": "MDQ6VXNlcjIyNTAxMzM0",
- "avatar_url": "https://avatars.githubusercontent.com/u/22501334?v=4",
+ "login": "anton-vlasenko",
+ "id": 43744263,
+ "node_id": "MDQ6VXNlcjQzNzQ0MjYz",
+ "avatar_url": "https://avatars.githubusercontent.com/u/43744263?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/rbrishabh",
- "html_url": "https://github.com/rbrishabh",
- "followers_url": "https://api.github.com/users/rbrishabh/followers",
- "following_url": "https://api.github.com/users/rbrishabh/following{/other_user}",
- "gists_url": "https://api.github.com/users/rbrishabh/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/rbrishabh/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/rbrishabh/subscriptions",
- "organizations_url": "https://api.github.com/users/rbrishabh/orgs",
- "repos_url": "https://api.github.com/users/rbrishabh/repos",
- "events_url": "https://api.github.com/users/rbrishabh/events{/privacy}",
- "received_events_url": "https://api.github.com/users/rbrishabh/received_events",
+ "url": "https://api.github.com/users/anton-vlasenko",
+ "html_url": "https://github.com/anton-vlasenko",
+ "followers_url": "https://api.github.com/users/anton-vlasenko/followers",
+ "following_url": "https://api.github.com/users/anton-vlasenko/following{/other_user}",
+ "gists_url": "https://api.github.com/users/anton-vlasenko/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/anton-vlasenko/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/anton-vlasenko/subscriptions",
+ "organizations_url": "https://api.github.com/users/anton-vlasenko/orgs",
+ "repos_url": "https://api.github.com/users/anton-vlasenko/repos",
+ "events_url": "https://api.github.com/users/anton-vlasenko/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/anton-vlasenko/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 567484057,
- "node_id": "MDU6TGFiZWw1Njc0ODQwNTc=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Documentation",
- "name": "[Type] Developer Documentation",
- "color": "bfd4f2",
+ "id": 930001208,
+ "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
+ "name": "[Type] Code Quality",
+ "color": "e5e04b",
"default": false,
- "description": ""
+ "description": "Issues or PRs that relate to code quality"
}
],
"state": "closed",
@@ -13597,13 +22531,13 @@
"assignee": null,
"assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -13626,140 +22560,167 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 1,
- "created_at": "2021-07-08T18:41:23Z",
- "updated_at": "2021-07-30T16:18:04Z",
- "closed_at": "2021-07-30T16:17:40Z",
+ "comments": 3,
+ "created_at": "2023-08-24T18:57:56Z",
+ "updated_at": "2023-09-27T10:13:22Z",
+ "closed_at": "2023-09-27T10:12:49Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33308",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33308",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33308.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33308.patch"
- },
- "body": "Fixes #33265\r\nHey @talldan! how does this look?\r\nlet me know if this needs any changes! thanks!",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/53928",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/53928",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/53928.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/53928.patch",
+ "merged_at": "2023-09-27T10:12:49Z"
+ },
+ "body": "\r\n\r\n## What?\r\nThis PR aims to add a unit test for the recently introduced `ValidBlockLibraryFunctionNameSniff` sniff.\r\nIt also brings a few other minor improvements.\r\nFixes https://github.com/WordPress/gutenberg/issues/53731.\r\n\r\n## Why?\r\nIt's considered best practice to write unit tests for PHPCS sniffs.\r\nAdditionally, as Gutenberg moves toward bumping the minimum supported PHP version, this package should also be updated.\r\n\r\n\r\n## How?\r\n\r\n\r\n - [x] Add a unit test for the `ValidBlockLibraryFunctionNameSniff` sniff.\r\n - [x] Bump the minimum required PHP version to 7.0.\r\n - [x] Refine `phpcs.xml.dist` by only excluding necessary rules.\r\n - [x] Update WPCS to 3.0.\r\n - [x] Refactor `ValidBlockLibraryFunctionNameSniff::processFunctionToken()`: eliminate the need to loop through all available prefixes once the function name is confirmed as valid; this results in a minor performance improvement.\r\n - [x] Remove `dealerdirect/phpcodesniffer-composer-installer` from the list of dependencies per WPCS 3.0 [upgrade guide](https://github.com/WordPress/WordPress-Coding-Standards/wiki/Upgrade-Guide-to-WordPressCS-3.0.0-for-ruleset-maintainers).\r\n\r\n## Testing Instructions\r\n\r\n1. Ensure that GitHub CI jobs pass.\r\n2. Navigate to `test/php/gutenberg-coding-standards/`.\r\n3. Run `composer update`.\r\n4. Run `composer run check-all`.\r\n\r\nEnsure that the PHPUnit tests in the console pass. PHPUnit should report 0 assertions, but that is expected.\r\n\r\n`Note`: The unit tests will not work on PHP 8.0 and above. This is because the latest stable version of the `squizlabs/php_codesniffer` package [doesn't support](https://packagist.org/packages/squizlabs/php_codesniffer#3.7.2) PHPUnit 8.x. Also, PHPUnit 7.x [is not compatible](https://phpunit.de/supported-versions.html) with PHP 8.0. The unit tests have been confirmed to work on PHP 7.3.\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/53928/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/53928/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33119",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/53819",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33119/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33119/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33119/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33119",
- "id": 934255450,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NjgxMzQ1NjIy",
- "number": 33119,
- "title": "[RNMobile] Add new block type badge to block inserter list",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/53819/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/53819/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/53819/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/53819",
+ "id": 1857377862,
+ "node_id": "PR_kwDOBNHdeM5YSM5b",
+ "number": 53819,
+ "title": "InputControl-based components: Add opt-in prop for next 40px default size",
"user": {
- "login": "dcalhoun",
- "id": 438664,
- "node_id": "MDQ6VXNlcjQzODY2NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/438664?v=4",
+ "login": "mirka",
+ "id": 555336,
+ "node_id": "MDQ6VXNlcjU1NTMzNg==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/555336?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/dcalhoun",
- "html_url": "https://github.com/dcalhoun",
- "followers_url": "https://api.github.com/users/dcalhoun/followers",
- "following_url": "https://api.github.com/users/dcalhoun/following{/other_user}",
- "gists_url": "https://api.github.com/users/dcalhoun/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/dcalhoun/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/dcalhoun/subscriptions",
- "organizations_url": "https://api.github.com/users/dcalhoun/orgs",
- "repos_url": "https://api.github.com/users/dcalhoun/repos",
- "events_url": "https://api.github.com/users/dcalhoun/events{/privacy}",
- "received_events_url": "https://api.github.com/users/dcalhoun/received_events",
+ "url": "https://api.github.com/users/mirka",
+ "html_url": "https://github.com/mirka",
+ "followers_url": "https://api.github.com/users/mirka/followers",
+ "following_url": "https://api.github.com/users/mirka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/mirka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/mirka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/mirka/subscriptions",
+ "organizations_url": "https://api.github.com/users/mirka/orgs",
+ "repos_url": "https://api.github.com/users/mirka/repos",
+ "events_url": "https://api.github.com/users/mirka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/mirka/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 596962434,
- "node_id": "MDU6TGFiZWw1OTY5NjI0MzQ=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Inserter",
- "name": "[Feature] Inserter",
- "color": "fbca04",
- "default": false,
- "description": ""
- },
- {
- "id": 982506020,
- "node_id": "MDU6TGFiZWw5ODI1MDYwMjA=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20i.e.%20Android%20or%20iOS",
- "name": "Mobile App - i.e. Android or iOS",
- "color": "a3ef7a",
+ "id": 531680825,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
+ "name": "[Type] Enhancement",
+ "color": "FEF2C0",
"default": false,
- "description": "Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)"
+ "description": "A suggestion for improvement."
},
{
- "id": 1789344476,
- "node_id": "MDU6TGFiZWwxNzg5MzQ0NDc2",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Feature",
- "name": "[Type] Feature",
- "color": "2e8daa",
+ "id": 997392122,
+ "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
+ "name": "[Package] Components",
+ "color": "ed2572",
"default": false,
- "description": "New feature to highlight in changelogs."
+ "description": "/packages/components"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "dcalhoun",
- "id": 438664,
- "node_id": "MDQ6VXNlcjQzODY2NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/438664?v=4",
+ "login": "mirka",
+ "id": 555336,
+ "node_id": "MDQ6VXNlcjU1NTMzNg==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/555336?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/dcalhoun",
- "html_url": "https://github.com/dcalhoun",
- "followers_url": "https://api.github.com/users/dcalhoun/followers",
- "following_url": "https://api.github.com/users/dcalhoun/following{/other_user}",
- "gists_url": "https://api.github.com/users/dcalhoun/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/dcalhoun/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/dcalhoun/subscriptions",
- "organizations_url": "https://api.github.com/users/dcalhoun/orgs",
- "repos_url": "https://api.github.com/users/dcalhoun/repos",
- "events_url": "https://api.github.com/users/dcalhoun/events{/privacy}",
- "received_events_url": "https://api.github.com/users/dcalhoun/received_events",
+ "url": "https://api.github.com/users/mirka",
+ "html_url": "https://github.com/mirka",
+ "followers_url": "https://api.github.com/users/mirka/followers",
+ "following_url": "https://api.github.com/users/mirka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/mirka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/mirka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/mirka/subscriptions",
+ "organizations_url": "https://api.github.com/users/mirka/orgs",
+ "repos_url": "https://api.github.com/users/mirka/repos",
+ "events_url": "https://api.github.com/users/mirka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/mirka/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "dcalhoun",
- "id": 438664,
- "node_id": "MDQ6VXNlcjQzODY2NA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/438664?v=4",
+ "login": "mirka",
+ "id": 555336,
+ "node_id": "MDQ6VXNlcjU1NTMzNg==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/555336?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/dcalhoun",
- "html_url": "https://github.com/dcalhoun",
- "followers_url": "https://api.github.com/users/dcalhoun/followers",
- "following_url": "https://api.github.com/users/dcalhoun/following{/other_user}",
- "gists_url": "https://api.github.com/users/dcalhoun/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/dcalhoun/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/dcalhoun/subscriptions",
- "organizations_url": "https://api.github.com/users/dcalhoun/orgs",
- "repos_url": "https://api.github.com/users/dcalhoun/repos",
- "events_url": "https://api.github.com/users/dcalhoun/events{/privacy}",
- "received_events_url": "https://api.github.com/users/dcalhoun/received_events",
+ "url": "https://api.github.com/users/mirka",
+ "html_url": "https://github.com/mirka",
+ "followers_url": "https://api.github.com/users/mirka/followers",
+ "following_url": "https://api.github.com/users/mirka/following{/other_user}",
+ "gists_url": "https://api.github.com/users/mirka/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/mirka/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/mirka/subscriptions",
+ "organizations_url": "https://api.github.com/users/mirka/orgs",
+ "repos_url": "https://api.github.com/users/mirka/repos",
+ "events_url": "https://api.github.com/users/mirka/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/mirka/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ {
+ "login": "chad1008",
+ "id": 13856531,
+ "node_id": "MDQ6VXNlcjEzODU2NTMx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/13856531?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/chad1008",
+ "html_url": "https://github.com/chad1008",
+ "followers_url": "https://api.github.com/users/chad1008/followers",
+ "following_url": "https://api.github.com/users/chad1008/following{/other_user}",
+ "gists_url": "https://api.github.com/users/chad1008/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/chad1008/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/chad1008/subscriptions",
+ "organizations_url": "https://api.github.com/users/chad1008/orgs",
+ "repos_url": "https://api.github.com/users/chad1008/repos",
+ "events_url": "https://api.github.com/users/chad1008/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/chad1008/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -13782,122 +22743,156 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 7,
- "created_at": "2021-07-01T01:06:56Z",
- "updated_at": "2021-08-03T19:31:40Z",
- "closed_at": "2021-08-03T19:31:03Z",
+ "comments": 12,
+ "created_at": "2023-08-18T23:01:11Z",
+ "updated_at": "2023-10-06T07:57:51Z",
+ "closed_at": "2023-09-29T14:05:12Z",
"author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33119",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33119",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33119.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33119.patch"
- },
- "body": "* **Gutenberg:** Self\r\n* **Gutenberg Mobile:** https://github.com/wordpress-mobile/gutenberg-mobile/pull/3720\r\n* **WPiOS:** https://github.com/wordpress-mobile/WordPress-iOS/pull/16857\r\n* **WPAndroid:** https://github.com/wordpress-mobile/WordPress-Android/pull/15038\r\n\r\n## Description\r\nFixes #30627. Add new block type badge to the native block inserter list. A \"new\" badge is displayed for block types configured as new. The configuration resides in the JavaScript and is provided to the native host app for storage. Once a given block type is inserted, it is no longer considered new. \r\n\r\nhttps://github.com/WordPress/gutenberg/issues/33528 is planned to further improve this feature by having publishing multiple posts also remove the \"new\" badge from block types. That feature is not included in this PR. \r\n\r\n## How has this been tested?\r\n1. Delete previous WP app installations from device. \r\n2. Install WPiOS/WPAndroid build from sibling PRs. \r\n3. Log into account and open the Gutenberg Editor. \r\n4. ℹ️ **Expected:** Block inserter tooltip displayed.1 \r\n4. Tap + button to open block inserter. \r\n5. ℹ️ **Expected:** Observe a \"new\" badge on the Embed, Search, and Audio blocks. \r\n6. Inserting one of these blocks. \r\n7. Reopen the block inserter. \r\n8. ℹ️ **Expected:** The block inserted no longer has a \"new\" badge. \r\n9. Exit the Gutenberg Editor. \r\n10. Reopen the Gutenberg Editor. \r\n12. ℹ️ **Expected:** Block inserter tooltip not displayed. \r\n11. Open the block inserter. \r\n12. ℹ️ **Expected:** The block inserted still does not have a \"new\" badge, but the other unused block types do have a \"new\" badge. \r\n\r\n[1]: ⚠️ The Editor Onboarding features, including the \"new\" block badge, is only visible for user's within in the \"cohort.\" This consists of 50% of users based upon the user's ID. If the user is not in the cohort, the \"new\" block badge should not show up. \r\n\r\n## Screenshots \r\n| iOS | Android |\r\n| --- | --- |\r\n| ![ios-new-block](https://user-images.githubusercontent.com/438664/128043293-446b3868-7356-4c02-98f3-a92611fd3685.PNG) | ![android-new-block](https://user-images.githubusercontent.com/438664/128042132-111011d9-1e6b-42fc-99aa-9d5439e7b006.jpg) |\r\n| ![ios-new-block-dark](https://user-images.githubusercontent.com/438664/128043346-51be74ff-4dde-4492-b4d2-de96be518e68.PNG) | ![android-new-block-dark](https://user-images.githubusercontent.com/438664/128042089-fa336025-85d8-4fd6-80d4-02948bd08f90.jpg) |\r\n\r\n## Types of changes\r\nNew feature\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/53819",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/53819",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/53819.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/53819.patch",
+ "merged_at": "2023-09-29T14:05:12Z"
+ },
+ "body": "Part of #46741\r\n\r\n## What?\r\n\r\nFor all the InputControl-based components listed below:\r\n\r\n- Adds a `__next40pxDefaultSize` prop to opt into the next 40px default size.\r\n- Mark the `__next36pxDefaultSize` as deprecated, and alias to the 40px prop.\r\n\r\n### InputControl-based components\r\n\r\n- InputControl\r\n- NumberControl\r\n- UnitControl\r\n- SelectControl\r\n- CustomSelectControl\r\n- TreeSelect\r\n\r\n### Silently upsized components\r\n\r\nThe following usages were upsized/tweaked to reflect the size change from 36px to 40px.\r\n\r\n- DateTimePicker / TimePicker\r\n\r\n ![Upsized TimePicker control](https://github.com/WordPress/gutenberg/assets/555336/cad7e00b-93d0-4f48-b15b-0d228dd21bc3)\r\n\r\n- Block editor ▸ Position control (Add a Row block and find the Position control in the block inspector)\r\n\r\n ![Upsized position control](https://github.com/WordPress/gutenberg/assets/555336/a1a60410-9218-44b6-ad4e-3342e701d1bd)\r\n\r\n- Block library ▸ RSS block\r\n\r\n ![Upsized elements in RSS block](https://github.com/WordPress/gutenberg/assets/555336/4fea95bb-bcd1-4d5d-b4b0-ba57a807bd89)\r\n\r\n Similar placeholder components in other core blocks are not upsized yet — this should be done separately.\r\n\r\n- Block library ▸ Template Part ▸ Advanced ▸ Import controls (Open a template in the Site Editor, add a new template part, and see the Advanced section in the block inspector)\r\n\r\n \r\n Testable with diff \r\n \r\n\r\n ```diff\r\n diff --git a/packages/block-library/src/template-part/edit/import-controls.js b/packages/block-library/src/template-part/edit/import-controls.js\r\n index ca9708f657..bcabc14c58 100644\r\n --- a/packages/block-library/src/template-part/edit/import-controls.js\r\n +++ b/packages/block-library/src/template-part/edit/import-controls.js\r\n @@ -79,7 +79,7 @@ export function TemplatePartImportControls( { area, setAttributes } ) {\r\n \t}\r\n \r\n \tif ( hasResolved && ! options.length ) {\r\n -\t\treturn null;\r\n +\t\t// return null;\r\n \t}\r\n \r\n \tasync function createFromWidgets( event ) {\r\n @@ -143,10 +143,28 @@ export function TemplatePartImportControls( { area, setAttributes } ) {\r\n \t\t\t\t\r\n \t\t\t\t\t setSelectedSidebar( value ) }\r\n -\t\t\t\t\t\tdisabled={ ! options.length }\r\n +\t\t\t\t\t\t// disabled={ ! options.length }\r\n \t\t\t\t\t\t__next40pxDefaultSize\r\n \t\t\t\t\t\t__nextHasNoMarginBottom\r\n \t\t\t\t\t/>\r\n ```\r\n
\r\n \r\n\r\n ![Upsized import controls for Template Part block in block inspector](https://github.com/WordPress/gutenberg/assets/555336/17fb4ba5-7693-4e75-8b0c-86265a0458db)\r\n\r\n The other components in the Advanced section are not upsized yet — this should be done separately.\r\n\r\n## Why?\r\n\r\nWe need to supersede the outdated `__next36pxDefaultSize` props and transition to the new 40px default sizes.\r\n\r\nApologies for the relatively large surface area of this PR, since this needs to be done in one go.\r\n\r\n## How?\r\n\r\nSee code comments for noteworthy details.\r\n\r\n## Testing Instructions\r\n\r\n1. `npm run storybook:dev`\r\n2. When `__next36pxDefaultSize` has a defined value, there should be a deprecation warning in the console. When it's truthy, it should work the same as `__next40pxDefaultSize` (i.e. should have 40px height and not 36px).\r\n3. When `__next40pxDefaultSize` is falsey, it should have no effect on the existing size variations. When it's truthy, it should make the `default` size variant be equivalent to the `__unstable-large` variant.\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/53819/reactions",
+ "total_count": 1,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 1,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/53819/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33086",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/53602",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33086/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33086/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33086/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33086",
- "id": 933440008,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NjgwNjQ1Njkx",
- "number": 33086,
- "title": "Enable rich previews for internal links",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/53602/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/53602/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/53602/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/53602",
+ "id": 1848026278,
+ "node_id": "PR_kwDOBNHdeM5Xynj1",
+ "number": 53602,
+ "title": "Block custom CSS: Fix incorrect CSS when multiple root selectors",
"user": {
- "login": "getdave",
- "id": 444434,
- "node_id": "MDQ6VXNlcjQ0NDQzNA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/444434?v=4",
+ "login": "t-hamano",
+ "id": 54422211,
+ "node_id": "MDQ6VXNlcjU0NDIyMjEx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/54422211?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/getdave",
- "html_url": "https://github.com/getdave",
- "followers_url": "https://api.github.com/users/getdave/followers",
- "following_url": "https://api.github.com/users/getdave/following{/other_user}",
- "gists_url": "https://api.github.com/users/getdave/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/getdave/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/getdave/subscriptions",
- "organizations_url": "https://api.github.com/users/getdave/orgs",
- "repos_url": "https://api.github.com/users/getdave/repos",
- "events_url": "https://api.github.com/users/getdave/events{/privacy}",
- "received_events_url": "https://api.github.com/users/getdave/received_events",
+ "url": "https://api.github.com/users/t-hamano",
+ "html_url": "https://github.com/t-hamano",
+ "followers_url": "https://api.github.com/users/t-hamano/followers",
+ "following_url": "https://api.github.com/users/t-hamano/following{/other_user}",
+ "gists_url": "https://api.github.com/users/t-hamano/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/t-hamano/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/t-hamano/subscriptions",
+ "organizations_url": "https://api.github.com/users/t-hamano/orgs",
+ "repos_url": "https://api.github.com/users/t-hamano/repos",
+ "events_url": "https://api.github.com/users/t-hamano/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/t-hamano/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 1838782557,
- "node_id": "MDU6TGFiZWwxODM4NzgyNTU3",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Link%20Editing",
- "name": "[Feature] Link Editing",
- "color": "fbca04",
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
"default": false,
- "description": "Link components (LinkControl, URLInput) and integrations (RichText link formatting)"
+ "description": "An existing feature does not function as intended"
+ },
+ {
+ "id": 1800807983,
+ "node_id": "MDU6TGFiZWwxODAwODA3OTgz",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Global%20Styles",
+ "name": "Global Styles",
+ "color": "2100b7",
+ "default": false,
+ "description": "Anything related to the broader Global Styles efforts, including Styles Engine and theme.json"
+ },
+ {
+ "id": 4254348202,
+ "node_id": "LA_kwDOBNHdeM79lDOq",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Needs%20PHP%20backport",
+ "name": "Needs PHP backport",
+ "color": "64436E",
+ "default": false,
+ "description": "Needs PHP backport to Core"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "getdave",
- "id": 444434,
- "node_id": "MDQ6VXNlcjQ0NDQzNA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/444434?v=4",
+ "login": "t-hamano",
+ "id": 54422211,
+ "node_id": "MDQ6VXNlcjU0NDIyMjEx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/54422211?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/getdave",
- "html_url": "https://github.com/getdave",
- "followers_url": "https://api.github.com/users/getdave/followers",
- "following_url": "https://api.github.com/users/getdave/following{/other_user}",
- "gists_url": "https://api.github.com/users/getdave/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/getdave/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/getdave/subscriptions",
- "organizations_url": "https://api.github.com/users/getdave/orgs",
- "repos_url": "https://api.github.com/users/getdave/repos",
- "events_url": "https://api.github.com/users/getdave/events{/privacy}",
- "received_events_url": "https://api.github.com/users/getdave/received_events",
+ "url": "https://api.github.com/users/t-hamano",
+ "html_url": "https://github.com/t-hamano",
+ "followers_url": "https://api.github.com/users/t-hamano/followers",
+ "following_url": "https://api.github.com/users/t-hamano/following{/other_user}",
+ "gists_url": "https://api.github.com/users/t-hamano/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/t-hamano/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/t-hamano/subscriptions",
+ "organizations_url": "https://api.github.com/users/t-hamano/orgs",
+ "repos_url": "https://api.github.com/users/t-hamano/repos",
+ "events_url": "https://api.github.com/users/t-hamano/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/t-hamano/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "getdave",
- "id": 444434,
- "node_id": "MDQ6VXNlcjQ0NDQzNA==",
- "avatar_url": "https://avatars.githubusercontent.com/u/444434?v=4",
+ "login": "t-hamano",
+ "id": 54422211,
+ "node_id": "MDQ6VXNlcjU0NDIyMjEx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/54422211?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/getdave",
- "html_url": "https://github.com/getdave",
- "followers_url": "https://api.github.com/users/getdave/followers",
- "following_url": "https://api.github.com/users/getdave/following{/other_user}",
- "gists_url": "https://api.github.com/users/getdave/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/getdave/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/getdave/subscriptions",
- "organizations_url": "https://api.github.com/users/getdave/orgs",
- "repos_url": "https://api.github.com/users/getdave/repos",
- "events_url": "https://api.github.com/users/getdave/events{/privacy}",
- "received_events_url": "https://api.github.com/users/getdave/received_events",
+ "url": "https://api.github.com/users/t-hamano",
+ "html_url": "https://github.com/t-hamano",
+ "followers_url": "https://api.github.com/users/t-hamano/followers",
+ "following_url": "https://api.github.com/users/t-hamano/following{/other_user}",
+ "gists_url": "https://api.github.com/users/t-hamano/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/t-hamano/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/t-hamano/subscriptions",
+ "organizations_url": "https://api.github.com/users/t-hamano/orgs",
+ "repos_url": "https://api.github.com/users/t-hamano/repos",
+ "events_url": "https://api.github.com/users/t-hamano/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/t-hamano/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -13920,131 +22915,107 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 3,
- "created_at": "2021-06-30T08:29:04Z",
- "updated_at": "2021-07-30T10:03:59Z",
- "closed_at": "2021-07-30T10:03:32Z",
+ "comments": 12,
+ "created_at": "2023-08-12T13:51:17Z",
+ "updated_at": "2023-10-04T15:22:05Z",
+ "closed_at": "2023-09-29T11:31:06Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33086",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33086",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33086.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33086.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\nThis PR enables rich previews in the link UI for _internal_ links. Currently we have a \"middleman\" method which short-circuits any attempts to fetch rich previews for internal URLs. However based on discussion in https://github.com/WordPress/gutenberg/issues/32689 this is not needed as the only thing that originally made me think those requests did not work was the `wp-env` environment setup.\r\n\r\nCloses https://github.com/WordPress/gutenberg/issues/32689\r\n\r\n## How has this been tested?\r\n\r\n### Testing environment\r\n\r\n⚠️ **Please do not use `wp-env` to test this PR.**\r\n\r\nThe best way to test this is on a site that is accessible to the internet or has a local hosts file mapping to ensure traffic can be routed to it. I recommend MAMP or Local by Flywheel (which is now free!). \r\n\r\nIf you attempt to test this using the default `wp-env` setup on `localhost:8888` then **it will not work**. That's _not_ a failure of the code, it's just a facet of the way WP ENV and Docker work.\r\n\r\nAside: you _could_ use ngrok if using `wp-env` but it's fairly \"involved\".\r\n\r\n### Awareness of caching\r\n\r\nAlso when testing this be aware that there are x2 caches involved:\r\n\r\n* Local in memory cache - will cache a request for a rich preview until you refresh the page.\r\n* Server side transient cache - will cache a request for a given URL for 1hr. You can turn this off by [shortcutting this conditional](https://github.com/WordPress/gutenberg/blob/a125447b6383e0a186e3614fdd886c61f2651a1c/lib/class-wp-rest-url-details-controller.php#L123) to make testing easier.\r\n\r\n### Testing Steps\r\n\r\n* Install the Gutenberg Plugin generated by GitHub action for this PR. You can [follow these steps](https://make.wordpress.org/design/2021/03/03/testing-a-gutenberg-pull-request-pr/) to guide you.\r\n* Ensure your site is **accessible to the internet**.\r\n* Go to the Customizer and set a `Site Icon` under `Site Identity`.\r\n* Create and publish a few Posts/Pages - make sure you assign a featured image and add a title, excerpt and some post content. I used FakerPress Plugin to do this for me.\r\n* Create a _fresh_ Post with some text.\r\n* Create a link to one of the Posts you previously created.\r\n* Click away from the link to close the link UI.\r\n* Click on the same link again to open the rich preview.\r\n* You should see a rich preview of that URL even though it is internal. By default you should see:\r\n - correct page title\r\n - correct site icon\r\n\r\n**Note**: unfortunately out of the box WP doesn't set a meta description or a reference to the canonical image for the page so we cannot reliably retrieve these items to display in the rich preview. @hellofromtonya any idea why this is? Why don't we set these by default?\r\n\r\n### Bonus: testing even richer previews!\r\n\r\nIn order to prove this feature _does_ work if the correct meta data is made available in the page HTML, you can install a SEO Plugin to set these items for you.\r\n\r\n* Try installing ~Yoast SEO~ (don't install Yoast as they [overide the inline link UI](https://github.com/Yoast/wordpress-seo/blob/13c4be0b65b5d7efd7bc87ff211dc063f9879465/packages/js/src/inline-links/inline.js#L259-L264) so they won't get rich previews) **The SEO Framework** Plugin.\r\n* Remember the notes above regarding caches. You will probably want to disable these at this point to ensure you are seeing the latest data rather than a cache.\r\n* Retry the above and see the new previews with more metadata including:\r\n - image of the page\r\n - description of the page.\r\n\r\n\r\n## Screenshots \r\n\r\n### Out of the box (no SEO Plugin)\r\n\r\nhttps://user-images.githubusercontent.com/444434/127491380-e40c7ef8-cfb4-4641-aa23-d1bc8fa7baa4.mov\r\n\r\n### With SEO Plugin \r\n\r\n\r\nhttps://user-images.githubusercontent.com/444434/127491423-e8a3639c-a8f4-46db-9c64-938793e0d1c4.mp4\r\n\r\n\r\n\r\n\r\n\r\n## Types of changes\r\nNew feature (non-breaking change which adds functionality)\r\n\r\n## Checklist:\r\n- [ ] My code is tested.\r\n- [ ] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [ ] My code has proper inline documentation. \r\n- [ ] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/53602",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/53602",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/53602.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/53602.patch",
+ "merged_at": "2023-09-29T11:31:06Z"
+ },
+ "body": "Fixes: #53597\r\n\r\n## What?\r\n\r\n\r\n### 🤖 Generated by Copilot at 65d02b2 \r\n\r\nThis pull request refactors the PHP and JS functions that process nested CSS rules for global styles, and adds a unit test for the PHP function. The refactor fixes a bug that caused invalid CSS output when multiple root selectors were present, and improves the code readability and consistency.\r\n\r\n## Why?\r\n\r\n~The custom CSS for the block uses `__experimentSelector` in block.json as the root selector.~ The custom CSS for the block uses the selector obtained via the [Selectors API](https://github.com/WordPress/gutenberg/blob/trunk/docs/reference-guides/block-api/block-selectors.md) as the root selector. For the List block, for example, there will be multiple selectors separated by commas, such as `ul,ol`.\r\n\r\nHowever, when nested CSS is defined in the global styles or `css` properties in `theme.json`, the current implementation does not take multiple selectors into account and treats them as a single selector, causing the issue reported in #53597.\r\n\r\n## How?\r\n\r\nWhen generating nested CSS, I first convert the root selectors into an array by splitting them with commas. Then, the nested selector is added to each root selector, which is an element of the array, and converted back into a comma-separated string.\r\n\r\n## Testing Instructions\r\n\r\n### preparation\r\n\r\n- Activate emptytheme.\r\n- If you have customized global styles, reset them once.\r\n- Insert two types of Listing blocks in the post editor.\r\n\r\n```html\r\n\r\n\r\nList Item \r\n\r\n\r\n\r\nList Item \r\n\r\n\r\n\r\nList Item \r\n \r\n\r\n\r\n\r\n\r\nList Item \r\n\r\n\r\n\r\nList Item \r\n\r\n\r\n\r\nList Item \r\n \r\n\r\n```\r\n\r\n### Via theme.json\r\n\r\n- Update theme.json as follows:\r\n\r\n```json\r\n{\r\n\t\"version\": 2,\r\n\t\"settings\": {\r\n\t\t\"layout\": {\r\n\t\t\t\"contentSize\": \"840px\",\r\n\t\t\t\"wideSize\": \"1100px\"\r\n\t\t}\r\n\t},\r\n\t\"styles\": {\r\n\t\t\"blocks\": {\r\n\t\t\t\"core/list\": {\r\n\t\t\t\t\"css\": \"background: #ccc; & ::marker{ color: red;}\"\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n```\r\n\r\nThe gray background color and red marker style should be correctly applied to both the Ordered and Unordered lists.\r\n\r\n### Via the Site Editor\r\n\r\n- Undo theme.json.\r\n- Go to the Site Editor and access the Additional CSS menu for the List block from the Global Styles menu.\r\n- Enter the following styles: `background: #ccc; & ::marker{ color: red;}`\r\n- The gray background color and red marker style should be correctly applied to both the Ordered and Unordered lists.\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/53602/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/53602/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33076",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/53267",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33076/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33076/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33076/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33076",
- "id": 933014755,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NjgwMjg3MDQ0",
- "number": 33076,
- "title": "Template Mode: Add busy state to template creation modal",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/53267/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/53267/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/53267/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/53267",
+ "id": 1832963140,
+ "node_id": "PR_kwDOBNHdeM5W_5YT",
+ "number": 53267,
+ "title": "E2E Utils: Allow overriding username/password",
"user": {
- "login": "Mamaduka",
- "id": 240569,
- "node_id": "MDQ6VXNlcjI0MDU2OQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
+ "login": "juhi123",
+ "id": 8724401,
+ "node_id": "MDQ6VXNlcjg3MjQ0MDE=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/8724401?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/Mamaduka",
- "html_url": "https://github.com/Mamaduka",
- "followers_url": "https://api.github.com/users/Mamaduka/followers",
- "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
- "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
- "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
- "repos_url": "https://api.github.com/users/Mamaduka/repos",
- "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
+ "url": "https://api.github.com/users/juhi123",
+ "html_url": "https://github.com/juhi123",
+ "followers_url": "https://api.github.com/users/juhi123/followers",
+ "following_url": "https://api.github.com/users/juhi123/following{/other_user}",
+ "gists_url": "https://api.github.com/users/juhi123/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/juhi123/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/juhi123/subscriptions",
+ "organizations_url": "https://api.github.com/users/juhi123/orgs",
+ "repos_url": "https://api.github.com/users/juhi123/repos",
+ "events_url": "https://api.github.com/users/juhi123/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/juhi123/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 531680825,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
- "name": "[Type] Enhancement",
- "color": "3993a3",
+ "id": 531680823,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
+ "name": "[Type] Bug",
+ "color": "d93f0b",
"default": false,
- "description": "A suggestion for improvement."
+ "description": "An existing feature does not function as intended"
},
{
- "id": 2978205898,
- "node_id": "MDU6TGFiZWwyOTc4MjA1ODk4",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Template%20Editing%20Mode",
- "name": "[Feature] Template Editing Mode",
- "color": "FBCA04",
+ "id": 1267969886,
+ "node_id": "MDU6TGFiZWwxMjY3OTY5ODg2",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20E2E%20Test%20Utils",
+ "name": "[Package] E2E Test Utils",
+ "color": "ed2572",
"default": false,
- "description": ""
+ "description": "/packages/e2e-test-utils"
}
],
"state": "closed",
"locked": false,
- "assignee": {
- "login": "Mamaduka",
- "id": 240569,
- "node_id": "MDQ6VXNlcjI0MDU2OQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/Mamaduka",
- "html_url": "https://github.com/Mamaduka",
- "followers_url": "https://api.github.com/users/Mamaduka/followers",
- "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
- "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
- "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
- "repos_url": "https://api.github.com/users/Mamaduka/repos",
- "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
- "type": "User",
- "site_admin": false
- },
- "assignees": [
- {
- "login": "Mamaduka",
- "id": 240569,
- "node_id": "MDQ6VXNlcjI0MDU2OQ==",
- "avatar_url": "https://avatars.githubusercontent.com/u/240569?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/Mamaduka",
- "html_url": "https://github.com/Mamaduka",
- "followers_url": "https://api.github.com/users/Mamaduka/followers",
- "following_url": "https://api.github.com/users/Mamaduka/following{/other_user}",
- "gists_url": "https://api.github.com/users/Mamaduka/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/Mamaduka/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/Mamaduka/subscriptions",
- "organizations_url": "https://api.github.com/users/Mamaduka/orgs",
- "repos_url": "https://api.github.com/users/Mamaduka/repos",
- "events_url": "https://api.github.com/users/Mamaduka/events{/privacy}",
- "received_events_url": "https://api.github.com/users/Mamaduka/received_events",
- "type": "User",
- "site_admin": false
- }
- ],
+ "assignee": null,
+ "assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -14067,56 +23038,72 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 5,
- "created_at": "2021-06-29T18:53:51Z",
- "updated_at": "2021-08-12T08:12:44Z",
- "closed_at": "2021-08-11T13:12:10Z",
- "author_association": "MEMBER",
+ "comments": 0,
+ "created_at": "2023-08-02T11:05:53Z",
+ "updated_at": "2023-10-02T14:50:40Z",
+ "closed_at": "2023-10-02T14:50:16Z",
+ "author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33076",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33076",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33076.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33076.patch"
- },
- "body": "## Description\r\nAdds busy state to the \"Create custom template\" modal — part of #32813.\r\n\r\nWhile this improves UX, it's not much. \r\n\r\nThe \"Edit\" template action is much faster, even when using network throttling. I think bottleneck here might be `getEditedPostTemplate()`. The selector has to re-fetch all the templates and find the new one by slug.\r\n\r\nhttps://github.com/WordPress/gutenberg/blob/a125447b6383e0a186e3614fdd886c61f2651a1c/packages/edit-post/src/editor.js#L98-L101\r\n\r\n## How has this been tested?\r\n1. Enable TT1 Blocks theme.\r\n2. Create page.\r\n3. Throttle network to 3G via DevTools.\r\n4. Create a new template.\r\n5. Name input filed should be disabled.\r\n6. Create button should have a busy state.\r\n\r\n## Screenshots \r\n\r\nhttps://user-images.githubusercontent.com/240569/123904119-01415700-d981-11eb-8074-1e10100c0f7a.mp4\r\n\r\n## Types of changes\r\nNew feature\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/53267",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/53267",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/53267.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/53267.patch",
+ "merged_at": "2023-10-02T14:50:15Z"
+ },
+ "body": "\r\n\r\n## What?\r\n`WP_ADMIN_USER` was hardcoded in [config.ts](https://github.com/WordPress/gutenberg/blob/trunk/packages/e2e-test-utils-playwright/src/config.ts#L2). Fixes #52598 \r\n\r\n## Why?\r\nBecause of hardcoded values, the credential variables was not passing through `.env` file and was giving 400 error\r\n\r\n## How?\r\n\r\n\r\n## Testing Instructions\r\nAdd `.env` file in your test directory and run the tests, don't forget to add `require( 'dotenv' ).config();` in your playwright.config.ts\r\n\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/53267/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/53267/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33057",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/53026",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33057/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33057/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33057/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33057",
- "id": 932056398,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njc5NDU4NTIz",
- "number": 33057,
- "title": "[RNMobile] Prevent \"Undo Level\" after Setting Featured Image via Image Block",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/53026/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/53026/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/53026/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/53026",
+ "id": 1824164198,
+ "node_id": "PR_kwDOBNHdeM5WiPas",
+ "number": 53026,
+ "title": "Image: Fix layout shift when lightbox is opened and closed",
"user": {
- "login": "SiobhyB",
- "id": 2998162,
- "node_id": "MDQ6VXNlcjI5OTgxNjI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/2998162?v=4",
+ "login": "c4rl0sbr4v0",
+ "id": 37012961,
+ "node_id": "MDQ6VXNlcjM3MDEyOTYx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/37012961?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/SiobhyB",
- "html_url": "https://github.com/SiobhyB",
- "followers_url": "https://api.github.com/users/SiobhyB/followers",
- "following_url": "https://api.github.com/users/SiobhyB/following{/other_user}",
- "gists_url": "https://api.github.com/users/SiobhyB/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/SiobhyB/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/SiobhyB/subscriptions",
- "organizations_url": "https://api.github.com/users/SiobhyB/orgs",
- "repos_url": "https://api.github.com/users/SiobhyB/repos",
- "events_url": "https://api.github.com/users/SiobhyB/events{/privacy}",
- "received_events_url": "https://api.github.com/users/SiobhyB/received_events",
+ "url": "https://api.github.com/users/c4rl0sbr4v0",
+ "html_url": "https://github.com/c4rl0sbr4v0",
+ "followers_url": "https://api.github.com/users/c4rl0sbr4v0/followers",
+ "following_url": "https://api.github.com/users/c4rl0sbr4v0/following{/other_user}",
+ "gists_url": "https://api.github.com/users/c4rl0sbr4v0/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/c4rl0sbr4v0/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/c4rl0sbr4v0/subscriptions",
+ "organizations_url": "https://api.github.com/users/c4rl0sbr4v0/orgs",
+ "repos_url": "https://api.github.com/users/c4rl0sbr4v0/repos",
+ "events_url": "https://api.github.com/users/c4rl0sbr4v0/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/c4rl0sbr4v0/received_events",
"type": "User",
"site_admin": false
},
@@ -14126,27 +23113,18 @@
"node_id": "MDU6TGFiZWw1MzE2ODA4MjM=",
"url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Bug",
"name": "[Type] Bug",
- "color": "d93f0b",
- "default": false,
- "description": "An existing feature is broken."
- },
- {
- "id": 982506020,
- "node_id": "MDU6TGFiZWw5ODI1MDYwMjA=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20i.e.%20Android%20or%20iOS",
- "name": "Mobile App - i.e. Android or iOS",
- "color": "a3ef7a",
+ "color": "d93f0b",
"default": false,
- "description": "Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)"
+ "description": "An existing feature does not function as intended"
},
{
- "id": 1022744205,
- "node_id": "MDU6TGFiZWwxMDIyNzQ0MjA1",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Block%20library",
- "name": "[Package] Block library",
- "color": "ed2572",
+ "id": 1086171268,
+ "node_id": "MDU6TGFiZWwxMDg2MTcxMjY4",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Needs%20Accessibility%20Feedback",
+ "name": "Needs Accessibility Feedback",
+ "color": "ffbcbd",
"default": false,
- "description": "/packages/block-library"
+ "description": "Need input from accessibility"
},
{
"id": 1101518360,
@@ -14155,70 +23133,81 @@
"name": "[Block] Image",
"color": "6767e5",
"default": false,
- "description": ""
- },
- {
- "id": 1141559759,
- "node_id": "MDU6TGFiZWwxMTQxNTU5NzU5",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20History",
- "name": "[Feature] History",
- "color": "fbca04",
- "default": false,
- "description": "History, undo, redo, revisions, autosave."
+ "description": "Affects the Image Block"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "SiobhyB",
- "id": 2998162,
- "node_id": "MDQ6VXNlcjI5OTgxNjI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/2998162?v=4",
+ "login": "artemiomorales",
+ "id": 5360536,
+ "node_id": "MDQ6VXNlcjUzNjA1MzY=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/5360536?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/SiobhyB",
- "html_url": "https://github.com/SiobhyB",
- "followers_url": "https://api.github.com/users/SiobhyB/followers",
- "following_url": "https://api.github.com/users/SiobhyB/following{/other_user}",
- "gists_url": "https://api.github.com/users/SiobhyB/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/SiobhyB/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/SiobhyB/subscriptions",
- "organizations_url": "https://api.github.com/users/SiobhyB/orgs",
- "repos_url": "https://api.github.com/users/SiobhyB/repos",
- "events_url": "https://api.github.com/users/SiobhyB/events{/privacy}",
- "received_events_url": "https://api.github.com/users/SiobhyB/received_events",
+ "url": "https://api.github.com/users/artemiomorales",
+ "html_url": "https://github.com/artemiomorales",
+ "followers_url": "https://api.github.com/users/artemiomorales/followers",
+ "following_url": "https://api.github.com/users/artemiomorales/following{/other_user}",
+ "gists_url": "https://api.github.com/users/artemiomorales/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/artemiomorales/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/artemiomorales/subscriptions",
+ "organizations_url": "https://api.github.com/users/artemiomorales/orgs",
+ "repos_url": "https://api.github.com/users/artemiomorales/repos",
+ "events_url": "https://api.github.com/users/artemiomorales/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/artemiomorales/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "SiobhyB",
- "id": 2998162,
- "node_id": "MDQ6VXNlcjI5OTgxNjI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/2998162?v=4",
+ "login": "artemiomorales",
+ "id": 5360536,
+ "node_id": "MDQ6VXNlcjUzNjA1MzY=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/5360536?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/SiobhyB",
- "html_url": "https://github.com/SiobhyB",
- "followers_url": "https://api.github.com/users/SiobhyB/followers",
- "following_url": "https://api.github.com/users/SiobhyB/following{/other_user}",
- "gists_url": "https://api.github.com/users/SiobhyB/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/SiobhyB/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/SiobhyB/subscriptions",
- "organizations_url": "https://api.github.com/users/SiobhyB/orgs",
- "repos_url": "https://api.github.com/users/SiobhyB/repos",
- "events_url": "https://api.github.com/users/SiobhyB/events{/privacy}",
- "received_events_url": "https://api.github.com/users/SiobhyB/received_events",
+ "url": "https://api.github.com/users/artemiomorales",
+ "html_url": "https://github.com/artemiomorales",
+ "followers_url": "https://api.github.com/users/artemiomorales/followers",
+ "following_url": "https://api.github.com/users/artemiomorales/following{/other_user}",
+ "gists_url": "https://api.github.com/users/artemiomorales/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/artemiomorales/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/artemiomorales/subscriptions",
+ "organizations_url": "https://api.github.com/users/artemiomorales/orgs",
+ "repos_url": "https://api.github.com/users/artemiomorales/repos",
+ "events_url": "https://api.github.com/users/artemiomorales/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/artemiomorales/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ {
+ "login": "c4rl0sbr4v0",
+ "id": 37012961,
+ "node_id": "MDQ6VXNlcjM3MDEyOTYx",
+ "avatar_url": "https://avatars.githubusercontent.com/u/37012961?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/c4rl0sbr4v0",
+ "html_url": "https://github.com/c4rl0sbr4v0",
+ "followers_url": "https://api.github.com/users/c4rl0sbr4v0/followers",
+ "following_url": "https://api.github.com/users/c4rl0sbr4v0/following{/other_user}",
+ "gists_url": "https://api.github.com/users/c4rl0sbr4v0/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/c4rl0sbr4v0/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/c4rl0sbr4v0/subscriptions",
+ "organizations_url": "https://api.github.com/users/c4rl0sbr4v0/orgs",
+ "repos_url": "https://api.github.com/users/c4rl0sbr4v0/repos",
+ "events_url": "https://api.github.com/users/c4rl0sbr4v0/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/c4rl0sbr4v0/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -14241,131 +23230,107 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 24,
- "created_at": "2021-06-28T22:57:48Z",
- "updated_at": "2021-08-09T13:14:07Z",
- "closed_at": "2021-08-09T13:13:40Z",
+ "comments": 28,
+ "created_at": "2023-07-27T11:21:24Z",
+ "updated_at": "2023-09-29T12:05:19Z",
+ "closed_at": "2023-09-28T17:12:42Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33057",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33057",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33057.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33057.patch"
- },
- "body": "This PR is intended as a temporary workaround for https://github.com/WordPress/gutenberg/issues/32937\r\n\r\n`gutenberg-mobile`: https://github.com/wordpress-mobile/gutenberg-mobile/pull/3682\r\n\r\n## Description\r\n\r\nAs outlined in https://github.com/WordPress/gutenberg/issues/32937, the undo/redo functionality doesn't work as expected after setting a featured image via the image block.\r\n\r\nAfter setting a featured image via the block and then tapping undo, it appears as though the action has successfully reverted, as the **Featured** banner is removed from the block. However, the image still remains as the post's featured image.\r\n\r\nWith this PR, the issue is worked around by preventing an \"undo level\" from being created after a featured image is set via the image block. Tapping **undo** or **redo** immediately after setting a featured image via the image block should no longer have any effect.\r\n\r\nNote, this PR doesn't solve the original issue. In fact, it will introduce a new UX issue, since the undo/redo buttons won’t work as the user would expect i.e. an undo will revert changes they made just before setting a featured image, rather than the featured setting, and may be confusing. However, this inconvenience should be considered preferable to the current experience in production, where changes to the featured image via the image block are not saved, despite the UI indicating the undo is successful. \r\n\r\nThe **Future Considerations** section of this PR can be referred to for further hopes/considerations for any future iterations.\r\n\r\n## How has this been tested?\r\n\r\n* In the app, navigate to _Home_ → _Blog Posts_ to create a new blog post, one which doesn't already have a featured image set.\r\n* Add a new image block and upload an image to it.\r\n* Tap the image block's cog/gear icon to access its settings and then tap the **Set as Featured** button at the bottom.\r\n* Verify that you see a confirmation message about the newly set featured image and that the block now has a **Featured** banner overlaying it.\r\n* Tap the **undo** button in the app's toolbar.\r\n* With this PR, tapping undo should have _no effect_ on the post's featured image. Verify that tapping **undo** or **redo** _doesn't_ change the featured image by observing whether there are any changes to the **Featured** banner and verifying that the image remains the same via _Post Settings_.\r\n\r\n## Screenshots \r\n\r\nThe following screenshots show the before and after footer in the image settings, with the updated footer noting that the undo/redo buttons won't work as expected for users:\r\n\r\n| Before | After |\r\n| ------------- | ------------- |\r\n| | |\r\n\r\n## Types of changes\r\n\r\nThis PR introduces a bug fix (a non-breaking change that fixes an issue), with the following main changes to the code:\r\n\r\n* [A call to `editEntityRecord` is currently triggered](https://github.com/WordPress/gutenberg/pull/33057/files#diff-d45b169f7a1824d1f08790b97680e012bb30be66ed5714994a3959ba23cdee94R96) whenever a request to change the featured image is received from the apps (i.e. when the `Set/Remove as Featured` button is tapped from the image block). That action creator [includes an `undoIgnore` parameter](https://developer.wordpress.org/block-editor/reference-guides/data/data-core/#editEntityRecord) that makes it possible to ignore an edit in the undo history. For our purposes, that parameter is set to true so that a new undo level *isn't* created after the featured image is updated via the app.\r\n* Additional text has also been added to the bottom of the image block's settings. [The additional text](https://github.com/WordPress/gutenberg/pull/33057/files#diff-7126ae03000a022bcefa0d2a5fb03b6aca56ed4047e3a49d2131babf229cf6c1R568) reads as follows: `Changes to featured image will not be affected by the undo/redo buttons `\r\n\r\n## Future Considerations\r\n\r\nAs a more permanent fix for the original problem, the team discussed adding side effects to the undo/redo buttons, however, this deviates a lot from existing patterns in Gutenberg and is something we decided against pursuing.\r\n\r\nThe ideal fix would involve completely refactoring the existing data flow so that Gutenberg’s store is the primary location that the apps read from. A refactor would involve the following non-trivial changes:\r\n\r\n* Refactoring the _Post Settings_ flow will require changes in the Android and iOS codebases, with careful testing to account for all the unknowns. There’s also the possibility of this raising a wider architectural debate around the _Post Settings_ panel in the apps, potentially including redesigning the whole user flow.\r\n* The logic around a confirmation dialog currently exists on the native side of each app ([here](https://github.com/wordpress-mobile/WordPress-Android/blob/develop/libs/editor/WordPressEditor/src/main/java/org/wordpress/android/editor/gutenberg/GutenbergEditorFragment.java#L820) for Android and [here](https://href.li/?https://github.com/wordpress-mobile/WordPress-iOS/pull/16427/files#diff-beacfffc3f8a87edf94895da980a81e356f1b5aa7998f70791bc7baec9a11731R695) for iOS). This will need to be refactored so that it lives on the JS side. Again, this would be a desirable endpoint that would actually aid in implementing [this enhancement](https://github.com/WordPress/gutenberg/issues/30410). It has also been suggested that the confirmation dialog could be removed completely, which would be an interesting idea to explore with the design team.\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [x] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/53026",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/53026",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/53026.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/53026.patch",
+ "merged_at": "2023-09-28T17:12:42Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\nCurrently, opening and closing the lightbox causes the website layout to shift, which can cause the zoom animation to appear broken, particularly on mobile. It is also possible to scroll the webpage while the lightbox is open by directly manipulating the scrollbar or using a mobile device, which is not in line with web standards.\r\n\r\nThis PR improves the lightbox implementation by removing the layout shift and updating the scroll handling so that the lightbox behaves reliably whenever a scroll is performed.\r\n\r\n## Why?\r\n\r\nWe want to offer a polished lightbox experience, and the current experience appears broken in some cases. \r\n\r\n## How?\r\nThis PR removes `overflow: hidden` from the styles and updates the callback for the scroll handling.\r\n\r\nNote: Expected behavior is that scrolling will be disabled on both desktop and mobile.\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n\r\n1. Insert an image in a post and add enough content to ensure that the scrollbar will be visible.\r\n2. Enable the lightbox using the block settings.\r\n4. Publish and view the post on desktop.\r\n5. Click on the image to open and close the lightbox — make sure that the scrollbar remains intact and that there is no layout shift.\r\n6. Attempt scrolling while the lightbox is open using the mousewheel, `up` and `down` arrow keys, the `PageUp` and `PageDown` keys, and by directly clicking and dragging the scrollbar — verify that the lightbox stays open and doesn't scroll when performing any of those actions.\r\n7. On mobile devices, test that scrolling is disabled and that the lightbox remains open when attempting to scroll using touch input. Test also that pinch to zoom while the lightbox is open works reasonably well.\r\n\r\n## Screenshare\r\n\r\n### Layout Shift Demonstration\r\n\r\n#### Before the Fix\r\n\r\nhttps://github.com/WordPress/gutenberg/assets/5360536/3789a30b-5df3-42d3-85aa-c4369f61bd77\r\n\r\n#### After the Fix\r\n\r\nhttps://github.com/WordPress/gutenberg/assets/5360536/3682b764-17a0-4964-9d9f-2f9cdc4f777f\r\n\r\n\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/53026/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/53026/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/33021",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/52988",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33021/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33021/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/33021/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33021",
- "id": 931251741,
- "node_id": "MDExOlB1bGxSZXF1ZXN0Njc4Nzc0OTI4",
- "number": 33021,
- "title": "Fix navigation margin collapsing.",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/52988/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/52988/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/52988/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/52988",
+ "id": 1822727095,
+ "node_id": "PR_kwDOBNHdeM5WdYrK",
+ "number": 52988,
+ "title": "Footnotes: use core’s meta revisioning if available",
"user": {
- "login": "jasmussen",
- "id": 1204802,
- "node_id": "MDQ6VXNlcjEyMDQ4MDI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1204802?v=4",
+ "login": "adamsilverstein",
+ "id": 2676022,
+ "node_id": "MDQ6VXNlcjI2NzYwMjI=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/2676022?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/jasmussen",
- "html_url": "https://github.com/jasmussen",
- "followers_url": "https://api.github.com/users/jasmussen/followers",
- "following_url": "https://api.github.com/users/jasmussen/following{/other_user}",
- "gists_url": "https://api.github.com/users/jasmussen/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/jasmussen/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/jasmussen/subscriptions",
- "organizations_url": "https://api.github.com/users/jasmussen/orgs",
- "repos_url": "https://api.github.com/users/jasmussen/repos",
- "events_url": "https://api.github.com/users/jasmussen/events{/privacy}",
- "received_events_url": "https://api.github.com/users/jasmussen/received_events",
+ "url": "https://api.github.com/users/adamsilverstein",
+ "html_url": "https://github.com/adamsilverstein",
+ "followers_url": "https://api.github.com/users/adamsilverstein/followers",
+ "following_url": "https://api.github.com/users/adamsilverstein/following{/other_user}",
+ "gists_url": "https://api.github.com/users/adamsilverstein/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/adamsilverstein/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/adamsilverstein/subscriptions",
+ "organizations_url": "https://api.github.com/users/adamsilverstein/orgs",
+ "repos_url": "https://api.github.com/users/adamsilverstein/repos",
+ "events_url": "https://api.github.com/users/adamsilverstein/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/adamsilverstein/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 1105588141,
- "node_id": "MDU6TGFiZWwxMTA1NTg4MTQx",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Columns",
- "name": "[Block] Columns",
- "color": "6767e5",
+ "id": 531680825,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
+ "name": "[Type] Enhancement",
+ "color": "FEF2C0",
"default": false,
- "description": ""
+ "description": "A suggestion for improvement."
},
{
- "id": 1225853227,
- "node_id": "MDU6TGFiZWwxMjI1ODUzMjI3",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Navigation",
- "name": "[Block] Navigation",
+ "id": 5654261232,
+ "node_id": "LA_kwDOBNHdeM8AAAABUQUt8A",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Footnotes",
+ "name": "[Block] Footnotes",
"color": "6767e5",
"default": false,
- "description": ""
+ "description": "Affects the Footnotes Block"
}
],
"state": "closed",
"locked": false,
- "assignee": {
- "login": "jasmussen",
- "id": 1204802,
- "node_id": "MDQ6VXNlcjEyMDQ4MDI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1204802?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/jasmussen",
- "html_url": "https://github.com/jasmussen",
- "followers_url": "https://api.github.com/users/jasmussen/followers",
- "following_url": "https://api.github.com/users/jasmussen/following{/other_user}",
- "gists_url": "https://api.github.com/users/jasmussen/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/jasmussen/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/jasmussen/subscriptions",
- "organizations_url": "https://api.github.com/users/jasmussen/orgs",
- "repos_url": "https://api.github.com/users/jasmussen/repos",
- "events_url": "https://api.github.com/users/jasmussen/events{/privacy}",
- "received_events_url": "https://api.github.com/users/jasmussen/received_events",
- "type": "User",
- "site_admin": false
- },
- "assignees": [
- {
- "login": "jasmussen",
- "id": 1204802,
- "node_id": "MDQ6VXNlcjEyMDQ4MDI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1204802?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/jasmussen",
- "html_url": "https://github.com/jasmussen",
- "followers_url": "https://api.github.com/users/jasmussen/followers",
- "following_url": "https://api.github.com/users/jasmussen/following{/other_user}",
- "gists_url": "https://api.github.com/users/jasmussen/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/jasmussen/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/jasmussen/subscriptions",
- "organizations_url": "https://api.github.com/users/jasmussen/orgs",
- "repos_url": "https://api.github.com/users/jasmussen/repos",
- "events_url": "https://api.github.com/users/jasmussen/events{/privacy}",
- "received_events_url": "https://api.github.com/users/jasmussen/received_events",
- "type": "User",
- "site_admin": false
- }
- ],
+ "assignee": null,
+ "assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -14388,122 +23353,185 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 2,
- "created_at": "2021-06-28T07:15:15Z",
- "updated_at": "2021-08-10T10:46:43Z",
- "closed_at": "2021-08-10T10:46:21Z",
- "author_association": "CONTRIBUTOR",
+ "comments": 37,
+ "created_at": "2023-07-26T15:59:00Z",
+ "updated_at": "2023-10-03T08:36:46Z",
+ "closed_at": "2023-09-29T16:40:05Z",
+ "author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/33021",
- "html_url": "https://github.com/WordPress/gutenberg/pull/33021",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/33021.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/33021.patch"
- },
- "body": "## Description\r\n\r\nFixes #33002, but is blocked on #32659 landing first.\r\n\r\nWhen the navigation block is used inside a columns block, menu items collapse like so:\r\n\r\n \r\n\r\nThis is because navigation menu items have low specificity margins and paddings, and those paddings are overridden by some classic styles we have in place. Observe:\r\n\r\n![issue](https://user-images.githubusercontent.com/1204802/123594207-b9d79100-d7ef-11eb-9901-15ef72d3ab81.gif)\r\n\r\nThese styles specifically:\r\n\r\n \r\n\r\nThose styles exist to unset the auto margins classic themes use to center in the main column, and since they have high specificity, they win this battle.\r\n\r\nIn #32659, `:where` is introduced to lower the specificity of the two \"reset\" stylesheets we have. The behavior is best demonstrated in [this codepen](https://codepen.io/joen/pen/abJVrGX), but it can be described as lowering the specificity to a \"use these styles if nothing else styles it\", which makes it a great tool to provide default styles or baseline styles. This PR does the same for this rule, fixing the problem:\r\n\r\n \r\n\r\nNote that this PR alone will only fix the issue for block themes. In order for the problem to also be fixed for classic themes, the specificity of the resets will also need to be reduced, or _they_ will take precedence. So #32659 will need to land as well. \r\n\r\n**Why not just increase specificity?**\r\n\r\nThis has been our go-to so far, but as more and more properties are absorbed by global styles, this strategy won't work. For global styles to be able to affect paddings and margins of blocks, those block need to have minimal specificity or the global styles won't work at all. See also #32574.\r\n\r\n\r\n## How has this been tested?\r\n\r\nInsert two navigation blocks, one of them inside a column. Both navigation blocks should have the same margin between them.\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [x] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/52988",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/52988",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/52988.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/52988.patch",
+ "merged_at": "2023-09-29T16:40:05Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\nSee:\r\nhttps://core.trac.wordpress.org/ticket/20564 and\r\nhttps://github.com/WordPress/wordpress-develop/pull/4859\r\n\r\n## Why?\r\n\r\n\r\n## How?\r\n\r\n\r\n## Testing Instructions\r\n\r\n\r\n\r\n\r\n\r\n### Testing Instructions for Keyboard\r\n\r\n\r\n## Screenshots or screencast \r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/52988/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/52988/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/32659",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/52674",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/32659/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/32659/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/32659/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/32659",
- "id": 920292495,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NjY5NDYzNDEx",
- "number": 32659,
- "title": "Try: Reduce specificity of reset & classic styles.",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/52674/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/52674/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/52674/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/52674",
+ "id": 1807031001,
+ "node_id": "PR_kwDOBNHdeM5VoaGD",
+ "number": 52674,
+ "title": "Site Editor: Add 'Show template' toggle when editing pages",
"user": {
- "login": "jasmussen",
- "id": 1204802,
- "node_id": "MDQ6VXNlcjEyMDQ4MDI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1204802?v=4",
+ "login": "noisysocks",
+ "id": 612155,
+ "node_id": "MDQ6VXNlcjYxMjE1NQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/612155?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/jasmussen",
- "html_url": "https://github.com/jasmussen",
- "followers_url": "https://api.github.com/users/jasmussen/followers",
- "following_url": "https://api.github.com/users/jasmussen/following{/other_user}",
- "gists_url": "https://api.github.com/users/jasmussen/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/jasmussen/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/jasmussen/subscriptions",
- "organizations_url": "https://api.github.com/users/jasmussen/orgs",
- "repos_url": "https://api.github.com/users/jasmussen/repos",
- "events_url": "https://api.github.com/users/jasmussen/events{/privacy}",
- "received_events_url": "https://api.github.com/users/jasmussen/received_events",
+ "url": "https://api.github.com/users/noisysocks",
+ "html_url": "https://github.com/noisysocks",
+ "followers_url": "https://api.github.com/users/noisysocks/followers",
+ "following_url": "https://api.github.com/users/noisysocks/following{/other_user}",
+ "gists_url": "https://api.github.com/users/noisysocks/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/noisysocks/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/noisysocks/subscriptions",
+ "organizations_url": "https://api.github.com/users/noisysocks/orgs",
+ "repos_url": "https://api.github.com/users/noisysocks/repos",
+ "events_url": "https://api.github.com/users/noisysocks/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/noisysocks/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 1999059055,
- "node_id": "MDU6TGFiZWwxOTk5MDU5MDU1",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/CSS%20Styling",
- "name": "CSS Styling",
- "color": "63e2d2",
+ "id": 644027893,
+ "node_id": "MDU6TGFiZWw2NDQwMjc4OTM=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Needs%20Design%20Feedback",
+ "name": "Needs Design Feedback",
+ "color": "0e8a16",
+ "default": false,
+ "description": "Needs general design feedback."
+ },
+ {
+ "id": 1789344476,
+ "node_id": "MDU6TGFiZWwxNzg5MzQ0NDc2",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Feature",
+ "name": "[Type] Feature",
+ "color": "2e8daa",
+ "default": false,
+ "description": "New feature to highlight in changelogs."
+ },
+ {
+ "id": 2706102777,
+ "node_id": "MDU6TGFiZWwyNzA2MTAyNzc3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Site%20Editor",
+ "name": "[Feature] Site Editor",
+ "color": "fbca04",
+ "default": false,
+ "description": "Related to the overarching Site Editor (formerly \"full site editing\")"
+ },
+ {
+ "id": 5663509033,
+ "node_id": "LA_kwDOBNHdeM8AAAABUZJKKQ",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Page%20Content%20Focus",
+ "name": "[Feature] Page Content Focus",
+ "color": "FBCA04",
"default": false,
- "description": "Related to editor and front end styles, CSS-specific issues."
+ "description": "Ability to toggle between focusing on editing the page and editing the template in the site editor."
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "jasmussen",
- "id": 1204802,
- "node_id": "MDQ6VXNlcjEyMDQ4MDI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1204802?v=4",
+ "login": "noisysocks",
+ "id": 612155,
+ "node_id": "MDQ6VXNlcjYxMjE1NQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/612155?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/jasmussen",
- "html_url": "https://github.com/jasmussen",
- "followers_url": "https://api.github.com/users/jasmussen/followers",
- "following_url": "https://api.github.com/users/jasmussen/following{/other_user}",
- "gists_url": "https://api.github.com/users/jasmussen/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/jasmussen/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/jasmussen/subscriptions",
- "organizations_url": "https://api.github.com/users/jasmussen/orgs",
- "repos_url": "https://api.github.com/users/jasmussen/repos",
- "events_url": "https://api.github.com/users/jasmussen/events{/privacy}",
- "received_events_url": "https://api.github.com/users/jasmussen/received_events",
+ "url": "https://api.github.com/users/noisysocks",
+ "html_url": "https://github.com/noisysocks",
+ "followers_url": "https://api.github.com/users/noisysocks/followers",
+ "following_url": "https://api.github.com/users/noisysocks/following{/other_user}",
+ "gists_url": "https://api.github.com/users/noisysocks/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/noisysocks/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/noisysocks/subscriptions",
+ "organizations_url": "https://api.github.com/users/noisysocks/orgs",
+ "repos_url": "https://api.github.com/users/noisysocks/repos",
+ "events_url": "https://api.github.com/users/noisysocks/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/noisysocks/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "jasmussen",
- "id": 1204802,
- "node_id": "MDQ6VXNlcjEyMDQ4MDI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1204802?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/jasmussen",
- "html_url": "https://github.com/jasmussen",
- "followers_url": "https://api.github.com/users/jasmussen/followers",
- "following_url": "https://api.github.com/users/jasmussen/following{/other_user}",
- "gists_url": "https://api.github.com/users/jasmussen/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/jasmussen/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/jasmussen/subscriptions",
- "organizations_url": "https://api.github.com/users/jasmussen/orgs",
- "repos_url": "https://api.github.com/users/jasmussen/repos",
- "events_url": "https://api.github.com/users/jasmussen/events{/privacy}",
- "received_events_url": "https://api.github.com/users/jasmussen/received_events",
+ "login": "noisysocks",
+ "id": 612155,
+ "node_id": "MDQ6VXNlcjYxMjE1NQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/612155?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/noisysocks",
+ "html_url": "https://github.com/noisysocks",
+ "followers_url": "https://api.github.com/users/noisysocks/followers",
+ "following_url": "https://api.github.com/users/noisysocks/following{/other_user}",
+ "gists_url": "https://api.github.com/users/noisysocks/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/noisysocks/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/noisysocks/subscriptions",
+ "organizations_url": "https://api.github.com/users/noisysocks/orgs",
+ "repos_url": "https://api.github.com/users/noisysocks/repos",
+ "events_url": "https://api.github.com/users/noisysocks/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/noisysocks/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ {
+ "login": "ramonjd",
+ "id": 6458278,
+ "node_id": "MDQ6VXNlcjY0NTgyNzg=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/6458278?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ramonjd",
+ "html_url": "https://github.com/ramonjd",
+ "followers_url": "https://api.github.com/users/ramonjd/followers",
+ "following_url": "https://api.github.com/users/ramonjd/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ramonjd/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ramonjd/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ramonjd/subscriptions",
+ "organizations_url": "https://api.github.com/users/ramonjd/orgs",
+ "repos_url": "https://api.github.com/users/ramonjd/repos",
+ "events_url": "https://api.github.com/users/ramonjd/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ramonjd/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -14526,149 +23554,98 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 35,
- "created_at": "2021-06-14T10:55:33Z",
- "updated_at": "2021-08-09T07:00:20Z",
- "closed_at": "2021-08-09T06:59:54Z",
- "author_association": "CONTRIBUTOR",
+ "comments": 22,
+ "created_at": "2023-07-17T05:53:14Z",
+ "updated_at": "2023-09-25T07:20:42Z",
+ "closed_at": "2023-09-20T22:57:45Z",
+ "author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/32659",
- "html_url": "https://github.com/WordPress/gutenberg/pull/32659",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/32659.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/32659.patch"
- },
- "body": "## Description\r\n\r\nWe have two stylesheets that are created to normalize the editing canvas: `reset.scss` and `classic.scss`.\r\n\r\n- The first one exists because the editing canvas in the post editor is not inside an iframe, so it is subject to CSS bleed from wp-admin and other styles. The reset unsets a number of element styles to provide a blank canvas to build theme styles on.\r\n- The other one, `classic.scss` is loaded for classic themes, and primarily serves to provide left/right/wide/full-wide alignment styles. Block themes do not need these, as those alignments are served by a `layout` property and handled by the system.\r\n\r\nIn both cases, while the styles are necessary, they should have as low specificity as is possible. The lower the specificity, the easier it is for a theme to style things in a nice way. \r\n\r\nThere is a new selector, called `:where`, which is able to provide default styles with lowered specificity. Some of the details on how that works are outlined in [this article](https://css-tricks.com/almanac/selectors/w/where/), but you can also check out [this codepen for an example](https://codepen.io/joen/pen/abJVrGX). That selector is theoretically ideal for these resets, because it allows us to reduce the specificity quite a bit, letting both theme and block styles win any specificity fight they get into. In this PR, I tried employing that selector for those resets. \r\n\r\nOverall, it worked very well, especially for the reset which just feels perfect. Here's before and after using \"empty theme\" — and they should look identical, only with the new version having lower specificity:\r\n\r\n \r\n\r\nAfter:\r\n\r\n \r\n\r\nFor other themes, here I tested TT1, it solved [this problem](https://github.com/WordPress/gutenberg/pull/32574#pullrequestreview-682298435) surfaced by @carolinan, where `margin-left: auto; margin-right: auto;` overrides the default navigation item margin, causing them to collapse. Before:\r\n\r\n \r\n\r\n(don't mind the padding, that's a separate issue)\r\n\r\nAfter:\r\n\r\n \r\n\r\n_In these screenshots, the navigation menu is justified right_.\r\n\r\nThe primary \"gotcha\" I encountered is that themes commonly apply a `margin-left: 0;` on `ol` and `ul` elements, which seems an innocent and sensible change over the defaults. The problem is that for classic themes, the `margin-left: auto; margin-right: auto;` rules exist (along with a `max-width`) to center a _block_ inside a post content column that supports wide and fullwide images. When left margins are zeroed out, it effectively means a left-aligned list block. In trunk, the auto-margins win due to their intrinsic specificity. But with the lowered specificity of this branch, the zero margin now wins. \r\n\r\nFor that reason, I included [a targeted](https://github.com/WordPress/gutenberg/compare/try/reduced-specificity-resets?expand=1#diff-5763ee427967f4474bd5a1cd169547cd483a1955b2b705e8c61b898da999f5cbR11) rule for `ol` and `ul` elements, to keep their specificity. It's not an inclusion I love, but it feels necessary as the change feels very common. What do you think?\r\n\r\n## How has this been tested?\r\n\r\n- Please test a variety of blocks and content in this branch. The demo content is good, but please at least include a justified-right navigation block, an image, and a list block. \r\n- Please test wide and fullwide blocks.\r\n- Please test primarily in classic themes like TT1 or older.\r\n- Please also test Empty Theme and verify that before and after are identical.\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [x] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/52674",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/52674",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/52674.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/52674.patch",
+ "merged_at": "2023-09-20T22:57:45Z"
+ },
+ "body": "## What?\r\nFirst pass at adding a _Show template_ toggle to the site editor when editing a page. Toggling this hides the blocks belonging to the template entirely so that you're left with a minimal interface that mimics the post editor.\r\n\r\n## Why?\r\nAllows users to focus on their content when desired. Moreover, it is small a step towards one day unifying the post editor and site editor. See item 3 in https://github.com/WordPress/gutenberg/issues/41717.\r\n\r\n## How?\r\nWe re-use the approach that the site editor has for editing a `wp_navigation` CPT but instead of creating a fake `core/navigation` block we create a fake `core/group` block containing a `core/post-title, `core/post-content` and `core/post-featured-image`. These blocks are shown in the same order they appear in the template and do not appear if the template doesn't have it.\r\n\r\n## Testing Instructions\r\n\r\n1. Go to Appearance → Editor → Pages, select or create a page, then edit it.\r\n2. In the Page settings sidebar, click on the Template dropdown and toggle \"Show template\" and \"Hide template\"\r\n3. Check that the page content blocks are the same between hide/show modes.\r\n4. Hide the template and then navigate away from edit mode in the site editor by clicking on the WP logo. The template should reappear in view mode.\r\n5. Navigate to another section, e.g., Patterns, then return to the same page you edited previously\r\n6. The page blocks should appear as expected\r\n\r\nRun some tests:\r\n\r\n```\r\nnpm run test:unit packages/edit-site/src/components/block-editor/block-editor-provider/test/use-page-content-blocks.js\r\n```\r\n\r\n## Screenshots or screencast \r\n\r\nhttps://github.com/WordPress/gutenberg/assets/6458278/41792555-9c99-4b5e-86a2-24638352f361\r\n\r\n\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/52674/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/52674/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/32392",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/51884",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/32392/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/32392/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/32392/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/32392",
- "id": 909265961,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NjU5ODY1MDk0",
- "number": 32392,
- "title": "Dimensions Panel: Add new ToolsPanel component and update spacing supports",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/51884/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/51884/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/51884/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/51884",
+ "id": 1773627556,
+ "node_id": "PR_kwDOBNHdeM5T3KQR",
+ "number": 51884,
+ "title": "Fix e2e test: ”WP Editor Meta Boxes > Should save the changes”",
"user": {
- "login": "aaronrobertshaw",
- "id": 60436221,
- "node_id": "MDQ6VXNlcjYwNDM2MjIx",
- "avatar_url": "https://avatars.githubusercontent.com/u/60436221?v=4",
+ "login": "stokesman",
+ "id": 9000376,
+ "node_id": "MDQ6VXNlcjkwMDAzNzY=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/9000376?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/aaronrobertshaw",
- "html_url": "https://github.com/aaronrobertshaw",
- "followers_url": "https://api.github.com/users/aaronrobertshaw/followers",
- "following_url": "https://api.github.com/users/aaronrobertshaw/following{/other_user}",
- "gists_url": "https://api.github.com/users/aaronrobertshaw/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/aaronrobertshaw/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/aaronrobertshaw/subscriptions",
- "organizations_url": "https://api.github.com/users/aaronrobertshaw/orgs",
- "repos_url": "https://api.github.com/users/aaronrobertshaw/repos",
- "events_url": "https://api.github.com/users/aaronrobertshaw/events{/privacy}",
- "received_events_url": "https://api.github.com/users/aaronrobertshaw/received_events",
+ "url": "https://api.github.com/users/stokesman",
+ "html_url": "https://github.com/stokesman",
+ "followers_url": "https://api.github.com/users/stokesman/followers",
+ "following_url": "https://api.github.com/users/stokesman/following{/other_user}",
+ "gists_url": "https://api.github.com/users/stokesman/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/stokesman/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/stokesman/subscriptions",
+ "organizations_url": "https://api.github.com/users/stokesman/orgs",
+ "repos_url": "https://api.github.com/users/stokesman/repos",
+ "events_url": "https://api.github.com/users/stokesman/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/stokesman/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 531680825,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
- "name": "[Type] Enhancement",
- "color": "3993a3",
- "default": false,
- "description": "A suggestion for improvement."
- },
- {
- "id": 546156315,
- "node_id": "MDU6TGFiZWw1NDYxNTYzMTU=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Block%20API",
- "name": "[Feature] Block API",
- "color": "fbca04",
- "default": false,
- "description": ""
- },
- {
- "id": 1800807983,
- "node_id": "MDU6TGFiZWwxODAwODA3OTgz",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Global%20Styles",
- "name": "Global Styles",
- "color": "2100b7",
- "default": false,
- "description": ""
- },
- {
- "id": 1894493554,
- "node_id": "MDU6TGFiZWwxODk0NDkzNTU0",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Design%20Tools",
- "name": "[Feature] Design Tools",
- "color": "f7f771",
+ "id": 615503111,
+ "node_id": "MDU6TGFiZWw2MTU1MDMxMTE=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Automated%20Testing",
+ "name": "[Type] Automated Testing",
+ "color": "111111",
"default": false,
- "description": "Tools that manipulate visual aspects of blocks."
+ "description": "Testing infrastructure changes impacting the execution of end-to-end (E2E) and/or unit tests."
}
],
"state": "closed",
"locked": false,
- "assignee": {
- "login": "aaronrobertshaw",
- "id": 60436221,
- "node_id": "MDQ6VXNlcjYwNDM2MjIx",
- "avatar_url": "https://avatars.githubusercontent.com/u/60436221?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/aaronrobertshaw",
- "html_url": "https://github.com/aaronrobertshaw",
- "followers_url": "https://api.github.com/users/aaronrobertshaw/followers",
- "following_url": "https://api.github.com/users/aaronrobertshaw/following{/other_user}",
- "gists_url": "https://api.github.com/users/aaronrobertshaw/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/aaronrobertshaw/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/aaronrobertshaw/subscriptions",
- "organizations_url": "https://api.github.com/users/aaronrobertshaw/orgs",
- "repos_url": "https://api.github.com/users/aaronrobertshaw/repos",
- "events_url": "https://api.github.com/users/aaronrobertshaw/events{/privacy}",
- "received_events_url": "https://api.github.com/users/aaronrobertshaw/received_events",
- "type": "User",
- "site_admin": false
- },
- "assignees": [
- {
- "login": "aaronrobertshaw",
- "id": 60436221,
- "node_id": "MDQ6VXNlcjYwNDM2MjIx",
- "avatar_url": "https://avatars.githubusercontent.com/u/60436221?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/aaronrobertshaw",
- "html_url": "https://github.com/aaronrobertshaw",
- "followers_url": "https://api.github.com/users/aaronrobertshaw/followers",
- "following_url": "https://api.github.com/users/aaronrobertshaw/following{/other_user}",
- "gists_url": "https://api.github.com/users/aaronrobertshaw/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/aaronrobertshaw/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/aaronrobertshaw/subscriptions",
- "organizations_url": "https://api.github.com/users/aaronrobertshaw/orgs",
- "repos_url": "https://api.github.com/users/aaronrobertshaw/repos",
- "events_url": "https://api.github.com/users/aaronrobertshaw/events{/privacy}",
- "received_events_url": "https://api.github.com/users/aaronrobertshaw/received_events",
- "type": "User",
- "site_admin": false
- }
- ],
+ "assignee": null,
+ "assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -14691,82 +23668,147 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 58,
- "created_at": "2021-06-02T09:02:27Z",
- "updated_at": "2021-08-12T15:13:34Z",
- "closed_at": "2021-08-10T23:44:00Z",
+ "comments": 3,
+ "created_at": "2023-06-26T01:19:08Z",
+ "updated_at": "2023-09-20T14:12:17Z",
+ "closed_at": "2023-09-20T14:11:51Z",
"author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/32392",
- "html_url": "https://github.com/WordPress/gutenberg/pull/32392",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/32392.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/32392.patch"
- },
- "body": "Part of: https://github.com/WordPress/gutenberg/issues/28356\r\n\r\n## Description\r\n\r\n- Adds new `ToolsPanel` components\r\n- Uses the new components to refactor spacing block supports into a \"Dimensions\" panel.\r\n\r\nThe new panel component offers progressive discovery options for `ToolsPanelItem` wrapped components e.g. those provided through block supports. \r\n\r\nIt uses callbacks passed as props on the panel's children to check for values, handle child selection/deselection in the menu etc. In the case of block support controls, the `onDeselect` callback can reset the block attribute value. \r\n\r\nThe `ToolsPanel` automatically generates its menu from children that register themselves via the panel's context. The initial state managing which controls are displayed and therefore selected in the menu is based off the `hasValue` callback and an `isShownByDefault` prop.\r\n\r\nA custom `resetAll` callback is passed to the panel and called when the associated menu item is selected. For the a panel displaying block support controls such as the dimensions panel, the `resetAll` callback will reset all block attributes for the dimensions related support. \r\n\r\n#### G2 Components\r\nThe [demo typography panel](https://g2-components.xyz/?path=/story/designtools-presentation-typographypanel--default) from the G2 project still needs a few underlying components and systems to be imported into Gutenberg. The approach in this PR works now and may unblock other block supports work.\r\n\r\nNew designs/G2 components for the individual block support controls can be iterated on separately.\r\n\r\n## How has this been tested?\r\nProgrammatic tests are available for the new panel: \r\n- `npm run test-unit packages/components/src/tools-panel/test/`\r\n\r\nStorybook: \r\n- `npm run storybook:dev`\r\n- http://localhost:50240/?path=/story/components-toolspanel--default\r\n\r\nManual testing is required for the updates switching the spacing block support UI to the new panel and \"Dimensions\" naming.\r\n\r\n#### Testing Setup\r\n\r\nThe easiest block to test with is the group block. \r\n\r\n1. Turn on `settings.spacing.customMargin` under your theme.json file.\r\n2. Update the group block's `block.json` and turn on margin support under `supports.spacing`.\r\n3. Add new `__experimentalDefaultControls` flag under `settings.spacing` in block.json to specify which block support controls are displayed by default.\r\n\r\nThe example below configures only the padding control to show by default.\r\n```json\r\n\t\t\"spacing\": {\r\n\t\t\t\"margin\": true,\r\n\t\t\t\"padding\": true,\r\n\t\t\t\"__experimentalDefaultControls\": {\r\n\t\t\t\t\"padding\": true\r\n\t\t\t}\r\n\t\t},\r\n```\r\n\r\n#### Testing Instructions\r\n\r\nThe following instructions assume the padding control was enabled by default as per the snippet above.\r\n\r\n1. Edit a post, add a group block and select it\r\n2. Confirm there is a new \"Dimensions\" panel in the sidebar in place of the old \"Spacing\" panel\r\n3. Ensure the padding control is already displayed in the Dimensions panel\r\n4. Select margin control for display via the \"Dimensions\" panel's \"more\" menu\r\n5. Adjust padding and margin, confirming they update the block appropriately\r\n6. Open the more menu and toggle off the padding control\r\n7. Confirm the padding control is no longer shown\r\n8. Open the more menu once more and toggle off the margin control\r\n9. The margin control should be removed as well\r\n10. Toggle both controls back on and confirm they've been reset\r\n11. Adjust both padding and margin values, then select the \"reset all\" option from the more menu\r\n12. Confirm only the padding control is displayed but has been cleared\r\n13. Toggling margin back on and adjust both values again, then save\r\n14. Confirm margin and padding are displayed correctly on the frontend\r\n15. Reload the editor and confirm that the \"Dimensions\" panel has both fields displayed\r\n16. Choose the \"Reset all\" option from the panel menu again and save\r\n17. Reload both the editor and frontend checking the padding and margin were cleared\r\n18. Open the full site editor, open the Global Styles sidebar, then the \"By block type\" tab\r\n19. Expand the Group block's panel and confirm the \"Dimensions\" panel is present with both margin and padding shown by default. \r\n\r\n## Screenshots \r\n#### With Default Controls\r\n \r\n\r\n#### Without Default Controls\r\n \r\n\r\n\r\n## Types of changes\r\nNew feature.\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [x] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/51884",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/51884",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/51884.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/51884.patch",
+ "merged_at": "2023-09-20T14:11:51Z"
+ },
+ "body": "## What?\r\nAn improvement of an e2e test.\r\n\r\n## Why?\r\nTo help restore the original intent of the test, reduce some potential for flakiness and abide by Playwright recommendations.\r\n\r\n## How?\r\n- Changes from deprecated page-based methods to locator-based ones, e.g. page.click() -> locator.click()\r\n- Restores a `page.reload()` that was lost and eliminates a bit of cruft that was introduced in the migration from Puppeteer #41519\r\n- Eliminates a step that seems to have been introduced only to patch a problem caused by the previous point #43708\r\n- Introduces a wait to avoid some potential flakiness.\r\n\r\n## Testing Instructions\r\n```\r\nnpm run test:e2e:playwright -- wp-editor-meta-box\r\n```\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/51884/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/51884/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/31774",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/51350",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/31774/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/31774/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/31774/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/31774",
- "id": 890567655,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NjQzNTcwNzYw",
- "number": 31774,
- "title": "[Button Block]: Add padding block support",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/51350/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/51350/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/51350/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/51350",
+ "id": 1748280657,
+ "node_id": "PR_kwDOBNHdeM5Sime6",
+ "number": 51350,
+ "title": "SlotFill: Migrate to Typescript.",
"user": {
- "login": "stacimc",
- "id": 63313398,
- "node_id": "MDQ6VXNlcjYzMzEzMzk4",
- "avatar_url": "https://avatars.githubusercontent.com/u/63313398?v=4",
+ "login": "torounit",
+ "id": 1908815,
+ "node_id": "MDQ6VXNlcjE5MDg4MTU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1908815?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/torounit",
+ "html_url": "https://github.com/torounit",
+ "followers_url": "https://api.github.com/users/torounit/followers",
+ "following_url": "https://api.github.com/users/torounit/following{/other_user}",
+ "gists_url": "https://api.github.com/users/torounit/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/torounit/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/torounit/subscriptions",
+ "organizations_url": "https://api.github.com/users/torounit/orgs",
+ "repos_url": "https://api.github.com/users/torounit/repos",
+ "events_url": "https://api.github.com/users/torounit/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/torounit/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 930001208,
+ "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
+ "name": "[Type] Code Quality",
+ "color": "e5e04b",
+ "default": false,
+ "description": "Issues or PRs that relate to code quality"
+ },
+ {
+ "id": 997392122,
+ "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
+ "name": "[Package] Components",
+ "color": "ed2572",
+ "default": false,
+ "description": "/packages/components"
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "torounit",
+ "id": 1908815,
+ "node_id": "MDQ6VXNlcjE5MDg4MTU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1908815?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/stacimc",
- "html_url": "https://github.com/stacimc",
- "followers_url": "https://api.github.com/users/stacimc/followers",
- "following_url": "https://api.github.com/users/stacimc/following{/other_user}",
- "gists_url": "https://api.github.com/users/stacimc/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/stacimc/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/stacimc/subscriptions",
- "organizations_url": "https://api.github.com/users/stacimc/orgs",
- "repos_url": "https://api.github.com/users/stacimc/repos",
- "events_url": "https://api.github.com/users/stacimc/events{/privacy}",
- "received_events_url": "https://api.github.com/users/stacimc/received_events",
+ "url": "https://api.github.com/users/torounit",
+ "html_url": "https://github.com/torounit",
+ "followers_url": "https://api.github.com/users/torounit/followers",
+ "following_url": "https://api.github.com/users/torounit/following{/other_user}",
+ "gists_url": "https://api.github.com/users/torounit/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/torounit/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/torounit/subscriptions",
+ "organizations_url": "https://api.github.com/users/torounit/orgs",
+ "repos_url": "https://api.github.com/users/torounit/repos",
+ "events_url": "https://api.github.com/users/torounit/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/torounit/received_events",
"type": "User",
"site_admin": false
},
- "labels": [
+ "assignees": [
{
- "id": 1112969457,
- "node_id": "MDU6TGFiZWwxMTEyOTY5NDU3",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Buttons",
- "name": "[Block] Buttons",
- "color": "6767e5",
- "default": false,
- "description": ""
+ "login": "torounit",
+ "id": 1908815,
+ "node_id": "MDQ6VXNlcjE5MDg4MTU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/1908815?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/torounit",
+ "html_url": "https://github.com/torounit",
+ "followers_url": "https://api.github.com/users/torounit/followers",
+ "following_url": "https://api.github.com/users/torounit/following{/other_user}",
+ "gists_url": "https://api.github.com/users/torounit/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/torounit/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/torounit/subscriptions",
+ "organizations_url": "https://api.github.com/users/torounit/orgs",
+ "repos_url": "https://api.github.com/users/torounit/repos",
+ "events_url": "https://api.github.com/users/torounit/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/torounit/received_events",
+ "type": "User",
+ "site_admin": false
}
],
- "state": "closed",
- "locked": false,
- "assignee": null,
- "assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -14789,149 +23831,147 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 11,
- "created_at": "2021-05-12T23:38:47Z",
- "updated_at": "2021-08-02T06:34:50Z",
- "closed_at": "2021-07-29T01:55:06Z",
- "author_association": "CONTRIBUTOR",
+ "comments": 9,
+ "created_at": "2023-06-08T16:22:56Z",
+ "updated_at": "2023-09-28T13:40:55Z",
+ "closed_at": "2023-09-28T13:40:30Z",
+ "author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/31774",
- "html_url": "https://github.com/WordPress/gutenberg/pull/31774",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/31774.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/31774.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\n\r\nAdds padding support to the Button block using the spacing block support.\r\nIssue #31731\r\n\r\n**Notes:**\r\nThe block support currently allows arbitrarily large padding values which can cause blocks implementing it to overflow the page. See #31773\r\n\r\n## How has this been tested?\r\n\r\n\r\n\r\nManually.\r\n\r\n**Test Setup**\r\nYour theme will need to opt into padding support. You can do this by updating your `theme.json` to enable padding under the spacing control, in either your default settings or the block context for button:\r\n```\r\n\"settings\": {\r\n \"spacing\": {\r\n \"customPadding\": true,\r\n \"units\": [\r\n \"px\",\r\n \"em\",\r\n \"rem\",\r\n \"vh\",\r\n \"vw\"\r\n ]\r\n }\r\n}\r\n```\r\n\r\n**Test Instructions**\r\n\r\n1. Create a post, add a buttons block with a button.\r\n2. Select the button block and confirm padding controls in the sidebar work, adjusting units/padding per side.\r\n3. Add another button and confirm that its padding is default. Update its padding and verify that it does not affect the padding of the first button.\r\n3. Save the post and confirm the padding is visually correct on the frontend.\r\n\r\n## Screenshots \r\n![Screen Capture on 2021-05-27 at 13-55-29](https://user-images.githubusercontent.com/63313398/119896035-522ddd80-bef3-11eb-889e-417861d7ea9a.gif)\r\n\r\n## Types of changes\r\n\r\n\r\n\r\n\r\n\r\n## Checklist:\r\n- [ ] My code is tested.\r\n- [ ] My code follows the WordPress code style. \r\n- [ ] My code follows the accessibility standards. \r\n- [ ] I've tested my changes with keyboard and screen readers. \r\n- [ ] My code has proper inline documentation. \r\n- [ ] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/51350",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/51350",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/51350.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/51350.patch",
+ "merged_at": "2023-09-28T13:40:30Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\npart of #35744. Replaced some class Component with functional components.\r\n\r\n## Why?\r\n\r\n\r\n\r\nSee https://github.com/WordPress/gutenberg/issues/35744\r\n\r\n## How?\r\n* Refactored the component TypeScript\r\n\r\n## Testing Instructions\r\n* `npm run test:unit -- --testPathPattern packages/components/src/slot-fill/`\r\n\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/51350/reactions",
+ "total_count": 1,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 1,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/51350/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/31634",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/50231",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/31634/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/31634/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/31634/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/31634",
- "id": 882056479,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NjM1NjE3NTQ3",
- "number": 31634,
- "title": "[Block Library - Post Featured Image]: Add basic dimension controls",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/50231/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/50231/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/50231/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/50231",
+ "id": 1691621350,
+ "node_id": "PR_kwDOBNHdeM5Pi4Ji",
+ "number": 50231,
+ "title": "Add some @types packages as proper dependencies",
"user": {
- "login": "ntsekouras",
- "id": 16275880,
- "node_id": "MDQ6VXNlcjE2Mjc1ODgw",
- "avatar_url": "https://avatars.githubusercontent.com/u/16275880?v=4",
+ "login": "noahtallen",
+ "id": 6265975,
+ "node_id": "MDQ6VXNlcjYyNjU5NzU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/6265975?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/ntsekouras",
- "html_url": "https://github.com/ntsekouras",
- "followers_url": "https://api.github.com/users/ntsekouras/followers",
- "following_url": "https://api.github.com/users/ntsekouras/following{/other_user}",
- "gists_url": "https://api.github.com/users/ntsekouras/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/ntsekouras/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/ntsekouras/subscriptions",
- "organizations_url": "https://api.github.com/users/ntsekouras/orgs",
- "repos_url": "https://api.github.com/users/ntsekouras/repos",
- "events_url": "https://api.github.com/users/ntsekouras/events{/privacy}",
- "received_events_url": "https://api.github.com/users/ntsekouras/received_events",
+ "url": "https://api.github.com/users/noahtallen",
+ "html_url": "https://github.com/noahtallen",
+ "followers_url": "https://api.github.com/users/noahtallen/followers",
+ "following_url": "https://api.github.com/users/noahtallen/following{/other_user}",
+ "gists_url": "https://api.github.com/users/noahtallen/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/noahtallen/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/noahtallen/subscriptions",
+ "organizations_url": "https://api.github.com/users/noahtallen/orgs",
+ "repos_url": "https://api.github.com/users/noahtallen/repos",
+ "events_url": "https://api.github.com/users/noahtallen/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/noahtallen/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 531680825,
- "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
- "name": "[Type] Enhancement",
- "color": "3993a3",
+ "id": 596512821,
+ "node_id": "MDU6TGFiZWw1OTY1MTI4MjE=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Build%20Tooling",
+ "name": "[Type] Build Tooling",
+ "color": "111111",
"default": false,
- "description": "A suggestion for improvement."
+ "description": "Issues or PRs related to build tooling"
},
{
- "id": 1022744205,
- "node_id": "MDU6TGFiZWwxMDIyNzQ0MjA1",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Block%20library",
- "name": "[Package] Block library",
+ "id": 997392122,
+ "node_id": "MDU6TGFiZWw5OTczOTIxMjI=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Components",
+ "name": "[Package] Components",
"color": "ed2572",
"default": false,
- "description": "/packages/block-library"
- },
- {
- "id": 1894493554,
- "node_id": "MDU6TGFiZWwxODk0NDkzNTU0",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Design%20Tools",
- "name": "[Feature] Design Tools",
- "color": "f7f771",
- "default": false,
- "description": "Tools that manipulate visual aspects of blocks."
- },
- {
- "id": 2085610453,
- "node_id": "MDU6TGFiZWwyMDg1NjEwNDUz",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Post%20Featured%20Image",
- "name": "[Block] Post Featured Image",
- "color": "6767e5",
- "default": false,
- "description": ""
+ "description": "/packages/components"
}
],
"state": "closed",
"locked": false,
"assignee": {
- "login": "ntsekouras",
- "id": 16275880,
- "node_id": "MDQ6VXNlcjE2Mjc1ODgw",
- "avatar_url": "https://avatars.githubusercontent.com/u/16275880?v=4",
+ "login": "noahtallen",
+ "id": 6265975,
+ "node_id": "MDQ6VXNlcjYyNjU5NzU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/6265975?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/ntsekouras",
- "html_url": "https://github.com/ntsekouras",
- "followers_url": "https://api.github.com/users/ntsekouras/followers",
- "following_url": "https://api.github.com/users/ntsekouras/following{/other_user}",
- "gists_url": "https://api.github.com/users/ntsekouras/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/ntsekouras/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/ntsekouras/subscriptions",
- "organizations_url": "https://api.github.com/users/ntsekouras/orgs",
- "repos_url": "https://api.github.com/users/ntsekouras/repos",
- "events_url": "https://api.github.com/users/ntsekouras/events{/privacy}",
- "received_events_url": "https://api.github.com/users/ntsekouras/received_events",
+ "url": "https://api.github.com/users/noahtallen",
+ "html_url": "https://github.com/noahtallen",
+ "followers_url": "https://api.github.com/users/noahtallen/followers",
+ "following_url": "https://api.github.com/users/noahtallen/following{/other_user}",
+ "gists_url": "https://api.github.com/users/noahtallen/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/noahtallen/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/noahtallen/subscriptions",
+ "organizations_url": "https://api.github.com/users/noahtallen/orgs",
+ "repos_url": "https://api.github.com/users/noahtallen/repos",
+ "events_url": "https://api.github.com/users/noahtallen/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/noahtallen/received_events",
"type": "User",
"site_admin": false
},
"assignees": [
{
- "login": "ntsekouras",
- "id": 16275880,
- "node_id": "MDQ6VXNlcjE2Mjc1ODgw",
- "avatar_url": "https://avatars.githubusercontent.com/u/16275880?v=4",
+ "login": "noahtallen",
+ "id": 6265975,
+ "node_id": "MDQ6VXNlcjYyNjU5NzU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/6265975?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/ntsekouras",
- "html_url": "https://github.com/ntsekouras",
- "followers_url": "https://api.github.com/users/ntsekouras/followers",
- "following_url": "https://api.github.com/users/ntsekouras/following{/other_user}",
- "gists_url": "https://api.github.com/users/ntsekouras/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/ntsekouras/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/ntsekouras/subscriptions",
- "organizations_url": "https://api.github.com/users/ntsekouras/orgs",
- "repos_url": "https://api.github.com/users/ntsekouras/repos",
- "events_url": "https://api.github.com/users/ntsekouras/events{/privacy}",
- "received_events_url": "https://api.github.com/users/ntsekouras/received_events",
+ "url": "https://api.github.com/users/noahtallen",
+ "html_url": "https://github.com/noahtallen",
+ "followers_url": "https://api.github.com/users/noahtallen/followers",
+ "following_url": "https://api.github.com/users/noahtallen/following{/other_user}",
+ "gists_url": "https://api.github.com/users/noahtallen/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/noahtallen/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/noahtallen/subscriptions",
+ "organizations_url": "https://api.github.com/users/noahtallen/orgs",
+ "repos_url": "https://api.github.com/users/noahtallen/repos",
+ "events_url": "https://api.github.com/users/noahtallen/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/noahtallen/received_events",
"type": "User",
"site_admin": false
}
],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -14954,56 +23994,72 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 21,
- "created_at": "2021-05-09T09:22:15Z",
- "updated_at": "2021-07-31T08:57:37Z",
- "closed_at": "2021-07-30T20:03:45Z",
- "author_association": "CONTRIBUTOR",
+ "comments": 10,
+ "created_at": "2023-05-02T00:47:45Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "closed_at": "2023-10-04T20:47:03Z",
+ "author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/31634",
- "html_url": "https://github.com/WordPress/gutenberg/pull/31634",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/31634.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/31634.patch"
- },
- "body": "\r\n\r\n\r\n\r\n## Description\r\nResolves: https://github.com/WordPress/gutenberg/issues/27620\r\n\r\nThis PR enables basic dimension controls (`width`, `height`) and allow `object-fit` properties to be configured. \r\nI believe landing at least a basic handling for now like this would be okay for now and gives value, in order to make it to 5.8.\r\n\r\n## Notes\r\n1. The `scale` control from the design does not exists now, so I've added some adhoc styles. We might improve those styles or consider adding a new component to match the design.\r\n2. In order to set some `object-fit` properties we need to have set both `width` and `height` (see [comment](https://github.com/WordPress/gutenberg/issues/27620#issuecomment-833336369)).\r\n3. In `scale` control I've implemented `toggle/unset` functionality. We can keep this or add a `reset/clear` button.\r\n4. `height` in percentage (`%`) feels a bit unintuitive IMO - any suggestions?\r\n\r\n## Testing instructions\r\n1. Insert `Post Featured Image` block (single or in a `Query` block) and set `width`, `height` and `scale`. What feels natural to me is having `width` in `%` and `height` in `px`, but this is just subjective.\r\n2. Observe editor and front-end changes.\r\n\r\n\r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/50231",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/50231",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/50231.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/50231.patch",
+ "merged_at": "2023-10-04T20:47:03Z"
+ },
+ "body": "\r\n\r\n## What?\r\nThis partially addresses #50157. It moves some `@types` dependencies to the main dep field of `@wordpress/components`.\r\n\r\n## Why?\r\nWhen publishing a package, dev dependencies are never installed by 3rd party consumers. However, when we import a type from an external dep in our own published types, that external dep must be installable by our 3rd party consumers, or they'll get errors in `tsc` about missing packages. As a result, those `@types/` packages we reference in our published build types must be normal dependencies in the specific package, rather than dev dependencies in the root package.json.\r\n\r\n(The approach of adding all `@types` packages to the root package.json only works when we _only_ use our type info internally -- we'll need to adjust this approach now that we're publishing our own type information more frequently.)\r\n\r\n## How?\r\nSee above\r\n\r\n## Testing Instructions\r\nCI\r\n\r\n### Testing Instructions for Keyboard\r\n\r\n\r\n## Screenshots or screencast \r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/50231/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/50231/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/31345",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/50219",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/31345/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/31345/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/31345/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/31345",
- "id": 871207978,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NjI2MjY1NDU2",
- "number": 31345,
- "title": "[RNMobile] Parent PR: Add Setting to Set/Remove a Featured Image Directly from Image Block (iOS Only)",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/50219/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/50219/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/50219/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/50219",
+ "id": 1690814911,
+ "node_id": "PR_kwDOBNHdeM5PgHjf",
+ "number": 50219,
+ "title": "Show confirmation dialog when moving a post to the trash",
"user": {
- "login": "SiobhyB",
- "id": 2998162,
- "node_id": "MDQ6VXNlcjI5OTgxNjI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/2998162?v=4",
+ "login": "mtias",
+ "id": 548849,
+ "node_id": "MDQ6VXNlcjU0ODg0OQ==",
+ "avatar_url": "https://avatars.githubusercontent.com/u/548849?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/SiobhyB",
- "html_url": "https://github.com/SiobhyB",
- "followers_url": "https://api.github.com/users/SiobhyB/followers",
- "following_url": "https://api.github.com/users/SiobhyB/following{/other_user}",
- "gists_url": "https://api.github.com/users/SiobhyB/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/SiobhyB/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/SiobhyB/subscriptions",
- "organizations_url": "https://api.github.com/users/SiobhyB/orgs",
- "repos_url": "https://api.github.com/users/SiobhyB/repos",
- "events_url": "https://api.github.com/users/SiobhyB/events{/privacy}",
- "received_events_url": "https://api.github.com/users/SiobhyB/received_events",
+ "url": "https://api.github.com/users/mtias",
+ "html_url": "https://github.com/mtias",
+ "followers_url": "https://api.github.com/users/mtias/followers",
+ "following_url": "https://api.github.com/users/mtias/following{/other_user}",
+ "gists_url": "https://api.github.com/users/mtias/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/mtias/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/mtias/subscriptions",
+ "organizations_url": "https://api.github.com/users/mtias/orgs",
+ "repos_url": "https://api.github.com/users/mtias/repos",
+ "events_url": "https://api.github.com/users/mtias/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/mtias/received_events",
"type": "User",
"site_admin": false
},
@@ -15013,81 +24069,41 @@
"node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
"url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
"name": "[Type] Enhancement",
- "color": "3993a3",
+ "color": "FEF2C0",
"default": false,
"description": "A suggestion for improvement."
},
{
- "id": 982506020,
- "node_id": "MDU6TGFiZWw5ODI1MDYwMjA=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/Mobile%20App%20-%20i.e.%20Android%20or%20iOS",
- "name": "Mobile App - i.e. Android or iOS",
- "color": "a3ef7a",
+ "id": 610403961,
+ "node_id": "MDU6TGFiZWw2MTA0MDM5NjE=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Feature]%20Document%20Settings",
+ "name": "[Feature] Document Settings",
+ "color": "fbca04",
"default": false,
- "description": "Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)"
+ "description": "Document settings experience"
},
{
- "id": 1101518360,
- "node_id": "MDU6TGFiZWwxMTAxNTE4MzYw",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Image",
- "name": "[Block] Image",
- "color": "6767e5",
+ "id": 1013395453,
+ "node_id": "MDU6TGFiZWwxMDEzMzk1NDUz",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Editor",
+ "name": "[Package] Editor",
+ "color": "ed2572",
"default": false,
- "description": ""
+ "description": "/packages/editor"
}
],
"state": "closed",
"locked": false,
- "assignee": {
- "login": "SiobhyB",
- "id": 2998162,
- "node_id": "MDQ6VXNlcjI5OTgxNjI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/2998162?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/SiobhyB",
- "html_url": "https://github.com/SiobhyB",
- "followers_url": "https://api.github.com/users/SiobhyB/followers",
- "following_url": "https://api.github.com/users/SiobhyB/following{/other_user}",
- "gists_url": "https://api.github.com/users/SiobhyB/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/SiobhyB/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/SiobhyB/subscriptions",
- "organizations_url": "https://api.github.com/users/SiobhyB/orgs",
- "repos_url": "https://api.github.com/users/SiobhyB/repos",
- "events_url": "https://api.github.com/users/SiobhyB/events{/privacy}",
- "received_events_url": "https://api.github.com/users/SiobhyB/received_events",
- "type": "User",
- "site_admin": false
- },
- "assignees": [
- {
- "login": "SiobhyB",
- "id": 2998162,
- "node_id": "MDQ6VXNlcjI5OTgxNjI=",
- "avatar_url": "https://avatars.githubusercontent.com/u/2998162?v=4",
- "gravatar_id": "",
- "url": "https://api.github.com/users/SiobhyB",
- "html_url": "https://github.com/SiobhyB",
- "followers_url": "https://api.github.com/users/SiobhyB/followers",
- "following_url": "https://api.github.com/users/SiobhyB/following{/other_user}",
- "gists_url": "https://api.github.com/users/SiobhyB/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/SiobhyB/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/SiobhyB/subscriptions",
- "organizations_url": "https://api.github.com/users/SiobhyB/orgs",
- "repos_url": "https://api.github.com/users/SiobhyB/repos",
- "events_url": "https://api.github.com/users/SiobhyB/events{/privacy}",
- "received_events_url": "https://api.github.com/users/SiobhyB/received_events",
- "type": "User",
- "site_admin": false
- }
- ],
+ "assignee": null,
+ "assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -15110,77 +24126,93 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 1,
- "created_at": "2021-04-29T16:18:14Z",
- "updated_at": "2021-08-02T16:26:34Z",
- "closed_at": "2021-08-02T16:26:05Z",
- "author_association": "CONTRIBUTOR",
+ "comments": 6,
+ "created_at": "2023-05-01T13:32:45Z",
+ "updated_at": "2023-10-04T17:55:14Z",
+ "closed_at": "2023-10-04T17:54:44Z",
+ "author_association": "MEMBER",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/31345",
- "html_url": "https://github.com/WordPress/gutenberg/pull/31345",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/31345.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/31345.patch"
- },
- "body": "Fixes the iOS side of the following issue: wordpress-mobile/gutenberg-mobile#1011\r\n\r\n`gutenberg-mobile`: https://github.com/wordpress-mobile/gutenberg-mobile/pull/3449\r\n`WordPress-iOS`: https://github.com/wordpress-mobile/WordPress-iOS/pull/16427\r\n\r\n## Description\r\n\r\nIntroduces an option to set/remove an image as featured from the image block's settings, with a \"featured\" banner to denote when an image is already featured. The end goal is to make it easier for users to both identify and set/remove featured images directly from the post editor.\r\n\r\nThis PR builds on the work done in https://github.com/WordPress/gutenberg/pull/30806 and https://github.com/WordPress/gutenberg/pull/28854 to introduce this functionality to Android. For iOS, the work has been split up into the following PRs:\r\n\r\nGutenberg PR | Gutenberg Mobile PR | iOS PR | Merged\r\n-- | -- | -- | --\r\n[Display a `Featured` banner over any image block containing a post's featured image](https://github.com/WordPress/gutenberg/pull/31347) | https://github.com/wordpress-mobile/gutenberg-mobile/pull/3390 | https://github.com/wordpress-mobile/WordPress-iOS/pull/16332 | ✅ \r\n[Include a `Set/Remove as Featured` option in the image block's settings](https://github.com/WordPress/gutenberg/pull/31415) | https://github.com/wordpress-mobile/gutenberg-mobile/pull/3450 | https://github.com/wordpress-mobile/WordPress-iOS/pull/16426 | ✅ \r\n\r\n_- Once the PR has been merged it will be updated with a_ ✅ \r\n\r\n## How has this been tested? Screenshots? Types of changes?\r\n\r\nPlease refer to the first PR in each row (the Gutenberg PR) for test cases, screenshots, and further details of the types of changes involved.\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [x] I've tested my changes with keyboard and screen readers. \r\n- [x] My code has proper inline documentation. \r\n- [x] I've included developer documentation if appropriate. \r\n- [x] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/50219",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/50219",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/50219.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/50219.patch",
+ "merged_at": "2023-10-04T17:54:44Z"
+ },
+ "body": "Working on #50217 it became apparent that we show a confirmation step for switching a post back to a draft state but we don't show one for moving a post to the trash bin.\r\n\r\nFixes #19125.\r\nFixes #34436.\r\n\r\n \r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/50219/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/50219/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
},
{
- "url": "https://api.github.com/repos/WordPress/gutenberg/issues/30542",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/45147",
"repository_url": "https://api.github.com/repos/WordPress/gutenberg",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/30542/labels{/name}",
- "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/30542/comments",
- "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/30542/events",
- "html_url": "https://github.com/WordPress/gutenberg/pull/30542",
- "id": 851617346,
- "node_id": "MDExOlB1bGxSZXF1ZXN0NjEwMDA5NDAx",
- "number": 30542,
- "title": "Refactor MetaBoxesArea to to functional components using hooks.",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/issues/45147/labels{/name}",
+ "comments_url": "https://api.github.com/repos/WordPress/gutenberg/issues/45147/comments",
+ "events_url": "https://api.github.com/repos/WordPress/gutenberg/issues/45147/events",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/45147",
+ "id": 1416265579,
+ "node_id": "PR_kwDOBNHdeM5BLSzO",
+ "number": 45147,
+ "title": "Login/out: add spacing support",
"user": {
- "login": "torounit",
- "id": 1908815,
- "node_id": "MDQ6VXNlcjE5MDg4MTU=",
- "avatar_url": "https://avatars.githubusercontent.com/u/1908815?v=4",
+ "login": "carolinan",
+ "id": 7422055,
+ "node_id": "MDQ6VXNlcjc0MjIwNTU=",
+ "avatar_url": "https://avatars.githubusercontent.com/u/7422055?v=4",
"gravatar_id": "",
- "url": "https://api.github.com/users/torounit",
- "html_url": "https://github.com/torounit",
- "followers_url": "https://api.github.com/users/torounit/followers",
- "following_url": "https://api.github.com/users/torounit/following{/other_user}",
- "gists_url": "https://api.github.com/users/torounit/gists{/gist_id}",
- "starred_url": "https://api.github.com/users/torounit/starred{/owner}{/repo}",
- "subscriptions_url": "https://api.github.com/users/torounit/subscriptions",
- "organizations_url": "https://api.github.com/users/torounit/orgs",
- "repos_url": "https://api.github.com/users/torounit/repos",
- "events_url": "https://api.github.com/users/torounit/events{/privacy}",
- "received_events_url": "https://api.github.com/users/torounit/received_events",
+ "url": "https://api.github.com/users/carolinan",
+ "html_url": "https://github.com/carolinan",
+ "followers_url": "https://api.github.com/users/carolinan/followers",
+ "following_url": "https://api.github.com/users/carolinan/following{/other_user}",
+ "gists_url": "https://api.github.com/users/carolinan/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/carolinan/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/carolinan/subscriptions",
+ "organizations_url": "https://api.github.com/users/carolinan/orgs",
+ "repos_url": "https://api.github.com/users/carolinan/repos",
+ "events_url": "https://api.github.com/users/carolinan/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/carolinan/received_events",
"type": "User",
"site_admin": false
},
"labels": [
{
- "id": 930001208,
- "node_id": "MDU6TGFiZWw5MzAwMDEyMDg=",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Code%20Quality",
- "name": "[Type] Code Quality",
- "color": "e5e04b",
+ "id": 531680825,
+ "node_id": "MDU6TGFiZWw1MzE2ODA4MjU=",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Type]%20Enhancement",
+ "name": "[Type] Enhancement",
+ "color": "FEF2C0",
"default": false,
- "description": "Gotta shave those yaks."
+ "description": "A suggestion for improvement."
},
{
- "id": 1298994603,
- "node_id": "MDU6TGFiZWwxMjk4OTk0NjAz",
- "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Package]%20Edit%20Post",
- "name": "[Package] Edit Post",
- "color": "ed2572",
+ "id": 2986845394,
+ "node_id": "MDU6TGFiZWwyOTg2ODQ1Mzk0",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/labels/[Block]%20Login/out",
+ "name": "[Block] Login/out",
+ "color": "6767e5",
"default": false,
- "description": "packages/edit-post"
+ "description": "Affects the Login/out Block"
}
],
"state": "closed",
@@ -15188,13 +24220,13 @@
"assignee": null,
"assignees": [],
"milestone": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156",
- "html_url": "https://github.com/WordPress/gutenberg/milestone/156",
- "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/156/labels",
- "id": 7010087,
- "node_id": "MI_kwDOBNHdeM4Aavcn",
- "number": 156,
- "title": "Gutenberg 11.3",
+ "url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215",
+ "html_url": "https://github.com/WordPress/gutenberg/milestone/215",
+ "labels_url": "https://api.github.com/repos/WordPress/gutenberg/milestones/215/labels",
+ "id": 9943059,
+ "node_id": "MI_kwDOBNHdeM4Al7gT",
+ "number": 215,
+ "title": "Gutenberg 16.8",
"description": null,
"creator": {
"login": "github-actions[bot]",
@@ -15217,26 +24249,42 @@
"site_admin": false
},
"open_issues": 0,
- "closed_issues": 113,
+ "closed_issues": 160,
"state": "open",
- "created_at": "2021-07-28T05:12:51Z",
- "updated_at": "2021-08-11T14:18:41Z",
- "due_on": "2021-08-11T07:00:00Z",
+ "created_at": "2023-09-20T13:32:26Z",
+ "updated_at": "2023-10-04T20:47:35Z",
+ "due_on": "2023-10-02T07:00:00Z",
"closed_at": null
},
- "comments": 7,
- "created_at": "2021-04-06T16:55:51Z",
- "updated_at": "2021-08-02T16:23:34Z",
- "closed_at": "2021-08-02T16:23:07Z",
- "author_association": "MEMBER",
+ "comments": 4,
+ "created_at": "2022-10-20T09:15:56Z",
+ "updated_at": "2023-09-27T07:12:37Z",
+ "closed_at": "2023-09-27T07:12:15Z",
+ "author_association": "CONTRIBUTOR",
"active_lock_reason": null,
+ "draft": false,
"pull_request": {
- "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/30542",
- "html_url": "https://github.com/WordPress/gutenberg/pull/30542",
- "diff_url": "https://github.com/WordPress/gutenberg/pull/30542.diff",
- "patch_url": "https://github.com/WordPress/gutenberg/pull/30542.patch"
- },
- "body": "\r\n\r\n## Description\r\n\r\n\r\nRelated: #22890 his PR refactors the `MetaBoxesArea` component into a function component using React hooks.\r\n\r\n## How has this been tested?\r\n\r\n\r\n\r\n\r\nShow block editor and check custom field metabox and others.\r\n\r\n## Checklist:\r\n- [x] My code is tested.\r\n- [x] My code follows the WordPress code style. \r\n- [x] My code follows the accessibility standards. \r\n- [x] I've tested my changes with keyboard and screen readers. \r\n- [ ] My code has proper inline documentation. \r\n- [ ] I've included developer documentation if appropriate. \r\n- [ ] I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all `*.native.js` files for terms that need renaming or removal). \r\n",
- "performed_via_github_app": null
+ "url": "https://api.github.com/repos/WordPress/gutenberg/pulls/45147",
+ "html_url": "https://github.com/WordPress/gutenberg/pull/45147",
+ "diff_url": "https://github.com/WordPress/gutenberg/pull/45147.diff",
+ "patch_url": "https://github.com/WordPress/gutenberg/pull/45147.patch",
+ "merged_at": "2023-09-27T07:12:15Z"
+ },
+ "body": "\r\n\r\n## What?\r\n\r\nAdds margin and padding support to the login/out block.\r\n\r\n## Why?\r\n\r\nFor consistency. Part of https://github.com/WordPress/gutenberg/pull/45147.\r\n\r\n## How?\r\n\r\nThe PR adds spacing support to block.json.\r\n\r\n## Testing Instructions\r\n\r\nMake sure that the active theme supports spacing, for example, in theme.json.\r\nCreate a new post or page.\r\nAdd login/out block.\r\nConfirm that there is a dimension panel, and that the margin and padding settings are available but not enabled by default.\r\nTest the margin and padding settings in the editor and front.\r\n\r\n-Go to the Site Editor, add a login/out block, and change the margin and padding via the block settings in the Styles sidebar.\r\n-Adjust the spacing and margin via theme.json.\r\n\r\nExample theme.json code: add this to styles > blocks:\r\n\r\n```\r\n\"core/loginout\": {\r\n\t\t\t\t\"spacing\": {\r\n\t\t\t\t\t\"padding\": {\r\n\t\t\t\t\t\t\"top\": \"15px\",\r\n\t\t\t\t\t\t\"right\": \"15px\",\r\n\t\t\t\t\t\t\"bottom\": \"15px\",\r\n\t\t\t\t\t\t\"left\": \"15px\"\r\n\t\t\t\t\t},\r\n\t\t\t\t\t\"margin\": {\r\n\t\t\t\t\t\t\"top\": \"150px\",\r\n\t\t\t\t\t\t\"right\": \"15px\",\r\n\t\t\t\t\t\t\"bottom\": \"150px\",\r\n\t\t\t\t\t\t\"left\": \"15px\"\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n```\r\n\r\n## Screenshots or screencast \r\n\r\nhttps://github.com/WordPress/gutenberg/assets/7422055/8b985ecc-87fe-44e4-8b74-5d34c1223007\r\n",
+ "reactions": {
+ "url": "https://api.github.com/repos/WordPress/gutenberg/issues/45147/reactions",
+ "total_count": 0,
+ "+1": 0,
+ "-1": 0,
+ "laugh": 0,
+ "hooray": 0,
+ "confused": 0,
+ "heart": 0,
+ "rocket": 0,
+ "eyes": 0
+ },
+ "timeline_url": "https://api.github.com/repos/WordPress/gutenberg/issues/45147/timeline",
+ "performed_via_github_app": null,
+ "state_reason": null
}
]
diff --git a/changelog.txt b/changelog.txt
index b3750479e99fac..b8946492403702 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,5 +1,361 @@
== Changelog ==
+= 17.1.4 =
+
+## Changelog
+
+### Bug Fixes
+
+#### Block Library
+- Post Template: Fix incorrect offset query. ([56440](https://github.com/WordPress/gutenberg/pull/56440))
+
+## Contributors
+
+The following contributors merged PRs in this release:
+
+@t-hamano
+
+
+= 17.2.0-rc.1 =
+
+
+
+## Changelog
+
+### Features
+
+#### Modules API
+- Interactivity API: Use modules instead of scripts in the frontend. ([56143](https://github.com/WordPress/gutenberg/pull/56143))
+
+
+### Enhancements
+
+- Add translator comments for strings containing date formats. ([56531](https://github.com/WordPress/gutenberg/pull/56531))
+- Block Settings: Only display parent block selector on small screens. ([56431](https://github.com/WordPress/gutenberg/pull/56431))
+- Block Theme Preview: Display the theme name on the activate button. ([55752](https://github.com/WordPress/gutenberg/pull/55752))
+- Core data revisions: Extend support to other post types. ([56353](https://github.com/WordPress/gutenberg/pull/56353))
+- Improve tooltip for parent blocks on the block toolbar. ([56146](https://github.com/WordPress/gutenberg/pull/56146))
+- Simplify template author token. ([56566](https://github.com/WordPress/gutenberg/pull/56566))
+- Style engine: Allow CSS var output for fontSize and fontFamily and update documentation. ([56528](https://github.com/WordPress/gutenberg/pull/56528))
+- Try: Change "Detach pattern" to "Detach". ([56323](https://github.com/WordPress/gutenberg/pull/56323))
+- useEntityRecord: Improve unit tests. ([56415](https://github.com/WordPress/gutenberg/pull/56415))
+
+#### Components
+- Add focus rings to focusable disabled buttons. ([56383](https://github.com/WordPress/gutenberg/pull/56383))
+- DropdownMenu V2 tweaks. ([56041](https://github.com/WordPress/gutenberg/pull/56041))
+- DropdownMenu V2: Add support for rendering in legacy popover slot. ([56342](https://github.com/WordPress/gutenberg/pull/56342))
+- FormToggle: Refine animation. ([56515](https://github.com/WordPress/gutenberg/pull/56515))
+- Slot: Add styles prop to bubblesVirtually version. ([56428](https://github.com/WordPress/gutenberg/pull/56428))
+- Tabs: Cleanup and improvements. ([56224](https://github.com/WordPress/gutenberg/pull/56224))
+- Try Ariakit Select for new CustomSelectControl component. ([55790](https://github.com/WordPress/gutenberg/pull/55790))
+
+#### Data Views
+- Data list view: Make filter row, table header, and pagination sticky. ([56157](https://github.com/WordPress/gutenberg/pull/56157))
+- Simplify dataviews view button. ([56485](https://github.com/WordPress/gutenberg/pull/56485))
+- Update data view menu item actions. ([56398](https://github.com/WordPress/gutenberg/pull/56398))
+
+#### Global Styles
+- Global style revisions: Redesign style revision items. ([55913](https://github.com/WordPress/gutenberg/pull/55913))
+- Global styles revisions: Migrate API call to getRevisions(). ([56349](https://github.com/WordPress/gutenberg/pull/56349))
+- Style Revisions: Remove style revisions dropdown menu. ([56454](https://github.com/WordPress/gutenberg/pull/56454))
+
+#### Site Editor
+- Add 'View site' action to 'Site updated' snackbar. ([52693](https://github.com/WordPress/gutenberg/pull/52693))
+- Add the Post Author component to the Page sidebar. ([56368](https://github.com/WordPress/gutenberg/pull/56368))
+- Redirect to main page menu if page record not found. ([56177](https://github.com/WordPress/gutenberg/pull/56177))
+
+#### Block Editor
+- Drag and drop: Allow dragging to the beginning and end of a document. ([56070](https://github.com/WordPress/gutenberg/pull/56070))
+- List View: Expand state if a block is dragged to within a collapsed block in the editor canvas. ([56493](https://github.com/WordPress/gutenberg/pull/56493))
+
+#### Layout
+- Add layout classes to legacy Group inner container. ([56130](https://github.com/WordPress/gutenberg/pull/56130))
+- Add setting to disable custom content size controls. ([56236](https://github.com/WordPress/gutenberg/pull/56236))
+
+#### Patterns
+- Small tweaks to CreatePatternModal. ([56016](https://github.com/WordPress/gutenberg/pull/56016))
+- Update Labels in Block Inserter (block patterns tab). ([55986](https://github.com/WordPress/gutenberg/pull/55986))
+
+#### Icons
+- Update trash icon. ([56569](https://github.com/WordPress/gutenberg/pull/56569))
+
+#### Block Library
+- Disable block renaming support for Nav Link block. ([56425](https://github.com/WordPress/gutenberg/pull/56425))
+
+#### Distraction Free
+- Add top toolbar to distraction free mode. ([56295](https://github.com/WordPress/gutenberg/pull/56295))
+
+#### CSS & Styling
+- Gallery Block: Use styled scrollbars for image captions. ([56252](https://github.com/WordPress/gutenberg/pull/56252))
+
+#### Typography
+- Font Library: Remove insecure properties. ([56230](https://github.com/WordPress/gutenberg/pull/56230))
+
+
+### New APIs
+
+- Revisions: Add new selectors to fetch entity revisions. ([54046](https://github.com/WordPress/gutenberg/pull/54046))
+
+#### Interactivity API
+- Migration to the new `store()` API. ([55459](https://github.com/WordPress/gutenberg/pull/55459))
+
+
+### Bug Fixes
+
+- Block Editor: Undeprecate the '__experimentalImageSizeControl' component. ([56414](https://github.com/WordPress/gutenberg/pull/56414))
+- Core data: Harmonize getRevision selector and resolver function signatures. ([56416](https://github.com/WordPress/gutenberg/pull/56416))
+- Editor styles: Scope without adding specificity. ([56564](https://github.com/WordPress/gutenberg/pull/56564))
+- Fix Restore Post title placeholder. ([56580](https://github.com/WordPress/gutenberg/pull/56580))
+- Post Schedule Panel: Remove text overflow ellipsis. ([56319](https://github.com/WordPress/gutenberg/pull/56319))
+- PostCSS style transformation: Fail gracefully instead of throwing an error. ([56093](https://github.com/WordPress/gutenberg/pull/56093))
+- Rich text: Pad multiple spaces through en/em replacement. ([56341](https://github.com/WordPress/gutenberg/pull/56341))
+- Site Editor Sidebar: Fix actions vertical alignment. ([56218](https://github.com/WordPress/gutenberg/pull/56218))
+- Site Editor: Add a fallback template showing the title and content for the post only mode. ([56509](https://github.com/WordPress/gutenberg/pull/56509))
+- useEntityRecord: Do not trigger REST API requests when disabled. ([56108](https://github.com/WordPress/gutenberg/pull/56108))
+
+#### Block Library
+- File block: Remove anchor tag when copy pasting to file name. ([56508](https://github.com/WordPress/gutenberg/pull/56508))
+- Fix label of columns inspector panel. ([56647](https://github.com/WordPress/gutenberg/pull/56647))
+- Post Template: Fix incorrect offset query. ([56440](https://github.com/WordPress/gutenberg/pull/56440))
+
+#### Block Editor
+- (RichText)(Workaround)(17.1.x) Fallback to a string arg in `collapseWhiteSpace()` if `value` is not a string. ([56570](https://github.com/WordPress/gutenberg/pull/56570))
+- Cover block: Pass dropZoneElement reference to fix dragging within cover block area. ([56312](https://github.com/WordPress/gutenberg/pull/56312))
+- useMovingAnimation: Clear translate3d rule when animation is finished. ([56410](https://github.com/WordPress/gutenberg/pull/56410))
+
+#### Components
+- Design Tools: Fix last ToolsPanelItem styling. ([56536](https://github.com/WordPress/gutenberg/pull/56536))
+- Fix FormTokenField suggestions broken scrollbar when `__experimentalExpandOnFocus` is defined. ([56426](https://github.com/WordPress/gutenberg/pull/56426))
+- Tabs: Fix flaky unit tests. ([55950](https://github.com/WordPress/gutenberg/pull/55950))
+
+#### Global Styles
+- Additional CSS: Fix on change validation. ([56434](https://github.com/WordPress/gutenberg/pull/56434))
+- Global styles revisions: Update isResolving flag. ([56491](https://github.com/WordPress/gutenberg/pull/56491))
+- Spacing: Fix block error if spacing unit array empty in theme.json. ([56306](https://github.com/WordPress/gutenberg/pull/56306))
+
+#### CSS & Styling
+- Reduce specificity of default Cover text color styles. ([56411](https://github.com/WordPress/gutenberg/pull/56411))
+- Restore Post Title visual styles in Code View mode. ([56582](https://github.com/WordPress/gutenberg/pull/56582))
+
+#### Saving
+- Editor: Reinstate anonymous callback for saved post state. ([56529](https://github.com/WordPress/gutenberg/pull/56529))
+
+#### Post Editor
+- Save post button: Avoid extra re-renders when enablng/disabling tooltip. ([56502](https://github.com/WordPress/gutenberg/pull/56502))
+
+#### Plugin
+- Update Readme.txt tested up to 6.4. ([56427](https://github.com/WordPress/gutenberg/pull/56427))
+
+#### Site Editor
+- Fix template resolution for templates assigned as home page. ([56418](https://github.com/WordPress/gutenberg/pull/56418))
+
+#### Patterns
+- Fix issue with template in replace template screen. ([56407](https://github.com/WordPress/gutenberg/pull/56407))
+
+#### Layout
+- Fix issue where layout classnames are injected for blocks without layout support. ([56187](https://github.com/WordPress/gutenberg/pull/56187))
+
+#### Typography
+- Font Library: Fix fonts not displaying correctly. ([55393](https://github.com/WordPress/gutenberg/pull/55393))
+
+#### Colors
+- Duotone: Backport from Core to fix filters in classic themes. ([54778](https://github.com/WordPress/gutenberg/pull/54778))
+
+
+### Accessibility
+
+- Migrating `StyleBook` to use updated `Composite` implementation. ([55344](https://github.com/WordPress/gutenberg/pull/55344))
+
+#### Data Views
+- DataViews: Make disabled pagination buttons focusable. ([56422](https://github.com/WordPress/gutenberg/pull/56422))
+
+#### Block Library
+- Image Block: Enable image block to be selected correctly when clicked. ([56043](https://github.com/WordPress/gutenberg/pull/56043))
+
+#### Post Editor
+- Tooltip: Don't render buttons tooltip when show button text labels is enabled. ([55842](https://github.com/WordPress/gutenberg/pull/55842))
+
+#### Components
+- Improve `Button` saving state accessibility. ([55547](https://github.com/WordPress/gutenberg/pull/55547))
+
+#### Patterns
+- Fix focus loss after converting to a synced pattern. ([55473](https://github.com/WordPress/gutenberg/pull/55473))
+
+
+### Performance
+
+- Avoid calling postcss when not needed. ([56601](https://github.com/WordPress/gutenberg/pull/56601))
+- Block Editor: Optimize 'Connections' inspector controls. ([56443](https://github.com/WordPress/gutenberg/pull/56443))
+
+#### Global Styles
+- Make search more responsive for block type list. ([56139](https://github.com/WordPress/gutenberg/pull/56139))
+
+
+### Experiments
+
+#### Data Views
+- DataViews: Document `view.layout`. ([56637](https://github.com/WordPress/gutenberg/pull/56637))
+- DataViews: Extract common constants to file. ([56251](https://github.com/WordPress/gutenberg/pull/56251))
+- DataViews: Rename `InFilter` component to `FilterSummary`. ([56506](https://github.com/WordPress/gutenberg/pull/56506))
+- DataViews: Scope names of V2 UI components. ([56503](https://github.com/WordPress/gutenberg/pull/56503))
+- DataViews: Update field API to generate filters based on type. ([55996](https://github.com/WordPress/gutenberg/pull/55996))
+- DataViews: Update filter component. ([56110](https://github.com/WordPress/gutenberg/pull/56110))
+- Dataviews: Add confirmation step before deleting a page. ([56504](https://github.com/WordPress/gutenberg/pull/56504))
+- Dataviews: Add preview and grid view in templates list. ([56382](https://github.com/WordPress/gutenberg/pull/56382))
+- Dataviews: Grid layout refinements. ([56441](https://github.com/WordPress/gutenberg/pull/56441))
+- Dataviews: Remove link from author. ([56467](https://github.com/WordPress/gutenberg/pull/56467))
+- Dataviews: Update item actions in grid view. ([56501](https://github.com/WordPress/gutenberg/pull/56501))
+- Fix data view menu item radius. ([56395](https://github.com/WordPress/gutenberg/pull/56395))
+
+#### Post Editor
+- Render html in post titles in visual mode and edit HTML in post title in code view. ([54718](https://github.com/WordPress/gutenberg/pull/54718))
+
+
+### Documentation
+
+- Add the attributes definition page to the create block tutorial of the platform documentation. ([56429](https://github.com/WordPress/gutenberg/pull/56429))
+- Add the transforms page to the create block tutorial of the platform documentation. ([56559](https://github.com/WordPress/gutenberg/pull/56559))
+- Add thee block supports page to the create block tutorial of the framework docs. ([56483](https://github.com/WordPress/gutenberg/pull/56483))
+- Added clarifications and examples to "Get started with wp-scripts". ([56298](https://github.com/WordPress/gutenberg/pull/56298))
+- Block Editor: Fix typo in `URLInput`'s `onKeyDown` prop documentation. ([56322](https://github.com/WordPress/gutenberg/pull/56322))
+- Bring back non-JS tabs in block editor handbook. ([56561](https://github.com/WordPress/gutenberg/pull/56561))
+- Docs: Fix incorrect build script description in script package. ([56332](https://github.com/WordPress/gutenberg/pull/56332))
+- Docs: Fundamentals of Block Development - File structure of a block. ([56551](https://github.com/WordPress/gutenberg/pull/56551))
+- Docs: Fundamentals of Block Development - Registration of a block. ([56334](https://github.com/WordPress/gutenberg/pull/56334))
+- Docs: Fundamentals of Block Development - The block wrapper. ([56596](https://github.com/WordPress/gutenberg/pull/56596))
+- Docs: Fundamentals of Block Development - Working with Javascript in the Block Editor. ([56553](https://github.com/WordPress/gutenberg/pull/56553))
+- Docs: Fundamentals of Block Development - block.json. ([56435](https://github.com/WordPress/gutenberg/pull/56435))
+- Docs: Improve downloadBlob example. ([56225](https://github.com/WordPress/gutenberg/pull/56225))
+- Documentation - Block Editor Handbook - Add end user documentation about Block Editor as a resource on the Landing Page of the Block Editor Handbook. ([49854](https://github.com/WordPress/gutenberg/pull/49854))
+- Fix overly complex code example in ComboboxControl readme. ([56365](https://github.com/WordPress/gutenberg/pull/56365))
+- Fix version in useSetting deprecation notice. ([56377](https://github.com/WordPress/gutenberg/pull/56377))
+- Fundamentals block development - landing and first pages. ([56584](https://github.com/WordPress/gutenberg/pull/56584))
+- Fundamentals of Block Development - fix save definition. ([56605](https://github.com/WordPress/gutenberg/pull/56605))
+- Link preview image to live example using WordPress Playground. ([56292](https://github.com/WordPress/gutenberg/pull/56292))
+- NavigableContainers: Fix doc typo in onKeyDown prop. ([56352](https://github.com/WordPress/gutenberg/pull/56352))
+- Release docs: Add new section about troubleshooting the release. ([56436](https://github.com/WordPress/gutenberg/pull/56436))
+- Remove all {% codetabs %} instances and any vanilla JS references. ([56121](https://github.com/WordPress/gutenberg/pull/56121))
+- Simplify code example in ToggleControl component readme. ([56389](https://github.com/WordPress/gutenberg/pull/56389))
+- Text and Heading: Improve documentation around default values and truncation logic. ([56518](https://github.com/WordPress/gutenberg/pull/56518))
+- Theme JSON schema: Add heading/button key to color definition. ([55674](https://github.com/WordPress/gutenberg/pull/55674))
+- Update for 6.4.1 for versions in WP. ([56216](https://github.com/WordPress/gutenberg/pull/56216))
+- Update references to the gutenberg-examples repo to the new block-development-examples. ([56119](https://github.com/WordPress/gutenberg/pull/56119))
+- Update template name in `create-block` command. ([56281](https://github.com/WordPress/gutenberg/pull/56281))
+- Update webpack options for wp-scripts in README.md. ([56314](https://github.com/WordPress/gutenberg/pull/56314))
+- `BoxControl`: Update story and refactor to Typescript. ([56462](https://github.com/WordPress/gutenberg/pull/56462))
+
+
+### Code Quality
+
+- Blocks pkg: Remove 'browser' dependencies. ([56433](https://github.com/WordPress/gutenberg/pull/56433))
+- DataViews: Code Quality remove some unused props from action. ([56477](https://github.com/WordPress/gutenberg/pull/56477))
+- Editor: Move the template focus modes to the editor store. ([56472](https://github.com/WordPress/gutenberg/pull/56472))
+- Extract a PostPanelRow component from the different sidebar panels. ([56238](https://github.com/WordPress/gutenberg/pull/56238))
+- Interactivity API: Add missing changelog entry for the new `store()` API. ([56611](https://github.com/WordPress/gutenberg/pull/56611))
+- Migrating block editor `BlockPatternsList` component. ([56210](https://github.com/WordPress/gutenberg/pull/56210))
+- Move the DisableNonContentBlocks component to the editor package. ([56423](https://github.com/WordPress/gutenberg/pull/56423))
+- Post Schedule Panel: Fix Sass deprecation warning for division. ([56412](https://github.com/WordPress/gutenberg/pull/56412))
+- Remove compatibility layer for WP 6.2. ([56464](https://github.com/WordPress/gutenberg/pull/56464))
+- Unify the PostSchedule component between site and post editors. ([56196](https://github.com/WordPress/gutenberg/pull/56196))
+- Update: Refactor useAddedBy to use authorText and originalSource fields. ([56568](https://github.com/WordPress/gutenberg/pull/56568))
+
+#### Block Library
+- Add align support to the image block - alternative. ([55954](https://github.com/WordPress/gutenberg/pull/55954))
+- Backmerge block renaming fixes/refactors from 6.4 branch into Gutenberg trunk. ([56386](https://github.com/WordPress/gutenberg/pull/56386))
+- Pattern placeholder: Remove duplicate 'useDispatch' hook. ([56397](https://github.com/WordPress/gutenberg/pull/56397))
+
+#### Components
+- Remove incorrect version from deprecated `__nextHasNoMarginBottom` prop of `AnglePickerControl` Component. ([56336](https://github.com/WordPress/gutenberg/pull/56336))
+- Revert "DropdownMenu V2: Add support for rendering in legacy popover slot". ([56484](https://github.com/WordPress/gutenberg/pull/56484))
+
+#### Data Views
+- Dataviews: Ensure items and fields are using a unique id. ([56366](https://github.com/WordPress/gutenberg/pull/56366))
+
+#### Block Editor
+- useInnerBlocksProps: Stabilise dropZoneElement prop. ([56313](https://github.com/WordPress/gutenberg/pull/56313))
+
+#### Design Tools
+- Fix: Theme.json font settings in unit test. ([56309](https://github.com/WordPress/gutenberg/pull/56309))
+
+
+### Tools
+
+- Workflows: Update 'days-before-stale' for flaky test report issues. ([56585](https://github.com/WordPress/gutenberg/pull/56585))
+- scripts: Update `jest-dev-server` to v9. ([56552](https://github.com/WordPress/gutenberg/pull/56552))
+
+#### Testing
+- Dataviews: Add first end-to-end tests. ([56634](https://github.com/WordPress/gutenberg/pull/56634))
+- Migrate 'align hook' end-to-end tests to Playwright. ([56480](https://github.com/WordPress/gutenberg/pull/56480))
+- Migrate 'block directory' end-to-end tests to Playwright. ([56593](https://github.com/WordPress/gutenberg/pull/56593))
+- Migrate 'block icons' end-to-end tests to Playwright. ([56610](https://github.com/WordPress/gutenberg/pull/56610))
+- Migrate 'custom taxonomies' end-to-end test to Playwright. ([56486](https://github.com/WordPress/gutenberg/pull/56486))
+- Migrate 'sidebar permalink' end-to-end tests to Playwright. ([56253](https://github.com/WordPress/gutenberg/pull/56253))
+- Migrate Is Typing Test to Playwright. ([56616](https://github.com/WordPress/gutenberg/pull/56616))
+- Page spec: Merging create page and toggle preview tests. ([56129](https://github.com/WordPress/gutenberg/pull/56129))
+- Playwright Utils: Fix the method of getting post ID in 'publishPost'. ([56421](https://github.com/WordPress/gutenberg/pull/56421))
+- end-to-end tests: Merge Puppeteer into single job, split Playwright further. ([56363](https://github.com/WordPress/gutenberg/pull/56363))
+
+#### Build Tooling
+- Create block: Update `interactive-template` to the new `store()` API. ([56613](https://github.com/WordPress/gutenberg/pull/56613))
+
+
+### Security
+
+- WP_Theme_JSON_Gutenberg: Add nested indexed array schema sanitization. ([56447](https://github.com/WordPress/gutenberg/pull/56447))
+
+
+### Various
+
+- Add: Author text and original source to wp_template_part. ([56567](https://github.com/WordPress/gutenberg/pull/56567))
+- Migrating `BlockPatternSetup` to use updated `Composite` implementation. ([55425](https://github.com/WordPress/gutenberg/pull/55425))
+- Migrating `InserterListbox` to use updated Composite implementation. ([56246](https://github.com/WordPress/gutenberg/pull/56246))
+
+#### Data Views
+- Dataviews: All Templates: Add filters to template author. ([56338](https://github.com/WordPress/gutenberg/pull/56338))
+- Dataviews: All templates: Add: Sorting to template author and add author_text to the rest API. ([56333](https://github.com/WordPress/gutenberg/pull/56333))
+
+#### HTML API
+- Backport updates from Core. ([56578](https://github.com/WordPress/gutenberg/pull/56578))
+
+
+
+
+## Contributors
+
+The following contributors merged PRs in this release:
+
+@aaronrobertshaw @afercia @andrewhayward @andrewserong @annezazu @apeatling @arthur791004 @bph @brookewp @chad1008 @chiilog @ciampo @DAreRodz @dmsnell @draganescu @ellatrix @fabiankaegy @flootr @fluiddot @fullofcaffeine @geriux @getdave @glendaviesnz @jameskoster @jasmussen @jeryj @jffng @jorgefilipecosta @juanmaguitar @kevin940726 @luisherranz @MaggieCabrera @Mamaduka @matiasbenedetto @megane9988 @NekoJonez @ntsekouras @oandregal @ramonjd @richtabor @ryanwelcher @SavPhill @Soean @t-hamano @talldan @tellthemachines @youknowriad @zaguiini
+
+
+= 17.1.3 =
+
+
+## Changelog
+
+### Bug fixes
+
+#### Components
+- https://github.com/WordPress/gutenberg/pull/56570
+
+
+
+= 17.1.2 =
+
+## Changelog
+
+### Bug Fixes
+
+#### Block Editor
+
+- PostCSS style transformation: fail gracefully instead of throwing an error (https://github.com/WordPress/gutenberg/pull/56093)
+
+## Contributors
+
+The following contributors merged PRs in this release:
+
+@zaguiini
+
+
= 17.1.1 =
# Changelog
diff --git a/docs/getting-started/fundamentals/README.md b/docs/getting-started/fundamentals/README.md
new file mode 100644
index 00000000000000..26fc88981348b8
--- /dev/null
+++ b/docs/getting-started/fundamentals/README.md
@@ -0,0 +1,11 @@
+# Fundamentals of Block Development
+
+This section provides an introduction to the most relevant concepts in Block Development.
+
+In this section, you will learn:
+
+1. [**File structure of a block**](https://developer.wordpress.org/block-editor/getting-started/fundamentals/file-structure-of-a-block) - The purpose of each one of the types of files available for a block, the relationships between them, and their role in the output of the block.
+1. [**`block.json`**](https://developer.wordpress.org/block-editor/getting-started/fundamentals/block-json) - How a block is defined using its `block.json` metadata and some relevant properties of this file.
+1. [**Registration of a block**](https://developer.wordpress.org/block-editor/getting-started/fundamentals/registration-of-a-block) - How a block is registered in both the server and the client.
+1. [**Block wrapper**](https://developer.wordpress.org/block-editor/getting-started/fundamentals/block-wrapper) - How to set proper attributes to the block's markup wrapper.
+1. [**Javascript in the Block Editor**](https://developer.wordpress.org/block-editor/getting-started/fundamentals/javascript-in-the-block-editor) - How to work with Javascript for the Block Editor.
\ No newline at end of file
diff --git a/docs/getting-started/fundamentals/block-json.md b/docs/getting-started/fundamentals/block-json.md
new file mode 100644
index 00000000000000..5959547804290a
--- /dev/null
+++ b/docs/getting-started/fundamentals/block-json.md
@@ -0,0 +1,115 @@
+# block.json
+
+The `block.json` file simplifies the processs of defining and registering a block by using the same block's definition in JSON format to register the block in both the server and the client.
+
+[![Open block.json diagram in excalidraw](https://developer.wordpress.org/files/2023/11/block-json.png)](https://excalidraw.com/#json=v1GrIkGsYGKv8P14irBy6,Yy0vl8q7DTTL2VsH5Ww27A "Open block.json diagram in excalidraw")
+
+
+
+Besides simplifying a block's registration, using a `block.json` has [several benefits](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#benefits-using-the-metadata-file), including improved performance and development.
+
+At [**Metadata in block.json**](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/) you can find a detailed explanation of all the properties you can set in a `block.json` for a block. With these properties you can define things such as:
+
+- Basic metadata of the block
+- Files for the block's behavior, style, or output
+- Data Storage in the Block
+- Setting UI panels for the block
+
+## Basic metadata of the block
+
+Through properties of the `block.json`, we can define how the block will be uniquely identified, how it can be found, and the info displayed for the block in the Block Editor. Some of these properties are:
+
+- [`apiVersion`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#api-version): the version of [the API](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-api-versions/) used by the block (current version is 2).
+- [`name`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#name): a unique identifier for a block, including a namespace.
+- [`title`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#title): a display title for a block.
+- [`category`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#category): a block category for the block in the Inserter panel.
+- [`icon`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#icon): a [Dashicon](https://developer.wordpress.org/resource/dashicons) slug or a custom SVG icon.
+- [`description`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#description): a short description visible in the block inspector.
+- [`keywords`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#keywords): to locate the block in the inserter.
+- [`textdomain`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#text-domain): the plugin text-domain (important for things such as translations).
+
+## Files for the block's behavior, output, or style
+
+The [`editorScript`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#editor-script) and [`editorStyle`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#editor-style) properties allow defining Javascript and CSS files to be enqueued and loaded **only in the editor**.
+
+The [`script`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#script) and [`style`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#style) properties allow the definition of Javascript and CSS files to be enqueued and loaded **in both the editor and the front end**.
+
+The [`viewScript`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#view-script) property allow us to define the Javascript file or files to be enqueued and loaded **only in the front end**.
+
+All these properties (`editorScript`, `editorStyle`, `script` `style`,`viewScript`) accept as a value a [path for the file](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#wpdefinedpath) (prefixed with `file:`), a [handle registered with `wp_register_script` or `wp_register_style`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#wpdefinedasset), or an array with a mix of both.
+
+The [`render`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#render) property ([introduced on WordPress 6.1](https://make.wordpress.org/core/2022/10/12/block-api-changes-in-wordpress-6-1/)) sets the path of a `.php` template file that will render the markup returned to the front end. This only method will be used to return the markup for the block on request only if `$render_callback` function has not been passed to the `register_block_type` function.
+
+## Data Storage in the Block with `attributes`
+
+The [`attributes` property](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#attributes) allows a block to declare "variables" that store data or content for the block.
+
+_Example: Attributes as defined in block.json_
+```json
+"attributes": {
+ "fallbackCurrentYear": {
+ "type": "string"
+ },
+ "showStartingYear": {
+ "type": "boolean"
+ },
+ "startingYear": {
+ "type": "string"
+ }
+},
+```
+By default `attributes` are serialized and stored in the block's delimiter but this [can be configured](https://developer.wordpress.org/news/2023/09/understanding-block-attributes/).
+
+_Example: Atributes stored in the Markup representation of the block_
+```html
+
+© 2020–2023
+x
+```
+
+These [`attributes`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-edit-save/#attributes) are passed to the React component `Edit`(to display in the Block Editor) and the `save` function (to return the markup saved to the DB) of the block, and to any server-side render definition for the block (see `render` prop above).
+
+The `Edit` component receives exclusively the capability of updating the attributes via the [`setAttributes`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-edit-save/#setattributes) function.
+
+_See how the attributes are passed to the [`Edit` component](https://github.com/WordPress/block-development-examples/blob/trunk/plugins/copyright-date-block-09aac3/src/edit.js), [the `save` function](https://github.com/WordPress/block-development-examples/blob/trunk/plugins/copyright-date-block-09aac3/src/save.js) and [the `render.php`](https://github.com/WordPress/block-development-examples/blob/trunk/plugins/copyright-date-block-09aac3/src/render.php) in this [full block example](https://github.com/WordPress/block-development-examples/tree/trunk/plugins/copyright-date-block-09aac3) of the code above_
+
+
+Check the
attributes
reference page for full info about the Attributes API.
+
+
+[![Open Attributes diagram in excalidraw](https://developer.wordpress.org/files/2023/11/attributes.png)](https://excalidraw.com/#json=pSgCZy8q9GbH7r0oz2fL1,MFCLd6ddQHqi_UqNp5ZSgg "Open Attributes diagram in excalidraw")
+
+
+## Enable UI settings panels for the block with `supports`
+
+The [`supports`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#supports) property allows a block to declare support for certain features, enabling users to customize specific settings (like colors or margins) from the Settings Sidebar.
+
+_Example: Supports as defined in block.json_
+
+```json
+"supports": {
+ "color": {
+ "text": true,
+ "link": true,
+ "background": true
+ }
+}
+```
+
+The use of `supports` generates a set of properties that need to be manually added to the wrapping element of the block so they're properly stored as part of the block data.
+
+_Example: Supports custom settings stored in the Markup representation of the block_
+
+```html
+
+Hello World
+
+```
+
+_See the [full block example](https://github.com/WordPress/block-development-examples/tree/trunk/plugins/block-supports-6aa4dd) of the [code above](https://github.com/WordPress/block-development-examples/blob/trunk/plugins/block-supports-6aa4dd/src/block.json)_
+
+
+Check the
supports
reference page for full info about the Supports API.
+
diff --git a/docs/getting-started/fundamentals/block-wrapper.md b/docs/getting-started/fundamentals/block-wrapper.md
new file mode 100644
index 00000000000000..6ecebbe8303864
--- /dev/null
+++ b/docs/getting-started/fundamentals/block-wrapper.md
@@ -0,0 +1,114 @@
+# The block wrapper
+
+Each block's markup is wrapped by a container HTML tag that needs to have the proper attributes to fully work in the Block Editor and to reflect the proper block's style settings when rendered in the Block Editor and the front end. As developers, we have full control over the block's markup, and WordPress provides the tools to add the attributes that need to exist on the wrapper to our block's markup.
+
+Ensuring proper attributes to the block wrapper is especially important when using custom styling or features like `supports`.
+
+
+The use of supports
generates a set of properties that need to be manually added to the wrapping element of the block so they're properly stored as part of the block data
+
+
+A block can have three sets of markup defined, each one of them with a specific target and purpose:
+
+- The one for the **Block Editor**, defined through a `edit` React component passed to [`registerBlockType`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-registration/#registerblocktype) when registering the block in the client.
+- The one used to **save the block in the DB**, defined through a `save` function passed to `registerBlockType` when registering the block in the client.
+ - This markup will be returned to the front end on request if no dynamic render has been defined for the block.
+- The one used to **dynamically render the markup of the block** returned to the front end on request, defined through the `render_callback` on [`register_block_type`](https://developer.wordpress.org/reference/functions/register_block_type/) or the [`render`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#render) PHP file in `block.json`
+ - If defined, this server-side generated markup will be returned to the front end, ignoring the markup stored in DB.
+
+For the [`edit` React component and the `save` function](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-edit-save/), the block wrapper element should be a native DOM element (like ``) or a React component that forwards any additional props to native DOM elements. Using a
or component, for instance, would be invalid.
+
+
+## The Edit component's markup
+
+The [`useBlockProps()`](https://developer.wordpress.org/block-editor/reference-guides/packages/packages-block-editor/#useblockprops) hook available on the [`@wordpress/block-editor`](https://developer.wordpress.org/block-editor/reference-guides/packages/packages-block-editor) allows passing the required attributes for the Block Editor to the `edit` block's outer wrapper.
+
+Among other things, the `useBlockProps()` hook takes care of including in this wrapper:
+- An `id` for the block's markup
+- Some accesibility and `data-` attributes
+- Classes and inline styles reflecting custom settings, which include by default:
+ - The `wp-block` class
+ - A class that contains the name of the block with its namespace
+
+For example, for the following piece of code of a block's registration in the client...
+
+```js
+const Edit = () => Hello World - Block Editor
;
+
+registerBlockType( ..., {
+ edit: Edit
+} );
+```
+_(see the [code above](https://github.com/WordPress/block-development-examples/blob/trunk/plugins/minimal-block-ca6eda/src/index.js) in [an example](https://github.com/WordPress/block-development-examples/tree/trunk/plugins/minimal-block-ca6eda))_
+
+...the markup of the block in the Block Editor could look like this:
+```html
+Hello World - Block Editor
+```
+
+Any additional classes and attributes for the `Edit` component of the block should be passed as an argument of `useBlockProps` (see [example](https://github.com/WordPress/block-development-examples/blob/trunk/plugins/stylesheets-79a4c3/src/edit.js)). When you add `support` for any feature, they get added to the object returned by the `useBlockProps` hook.
+
+
+## The Save component's markup
+
+When saving the markup in the DB, it’s important to add the block props returned by `useBlockProps.save()` to the wrapper element of your block. `useBlockProps.save()` ensures that the block class name is rendered properly in addition to any HTML attribute injected by the block supports API.
+
+For example, for the following piece of code of a block's registration in the client that defines the markup desired for the DB (and returned to the front end by default)...
+
+```js
+const Edit = () => Hello World - Block Editor
;
+const save = () => Hello World - Frontend
;
+
+registerBlockType( ..., {
+ edit: Edit,
+ save,
+} );
+```
+
+_(see the [code above](https://github.com/WordPress/block-development-examples/blob/trunk/plugins/minimal-block-ca6eda/src/index.js) in [an example](https://github.com/WordPress/block-development-examples/tree/trunk/plugins/minimal-block-ca6eda))_
+
+
+...the markup of the block in the front end could look like this:
+```html
+Hello World – Frontend
+```
+
+Any additional classes and attributes for the `save` function of the block should be passed as an argument of `useBlockProps.save()` (see [example](https://github.com/WordPress/block-development-examples/blob/trunk/plugins/stylesheets-79a4c3/src/save.js)).
+
+When you add `support` for any feature, the proper classes get added to the object returned by the `useBlockProps.save()` hook.
+
+```html
+Hello World
+```
+
+_(check the [example](https://github.com/WordPress/block-development-examples/tree/trunk/plugins/block-supports-6aa4dd) that generated the HTML above in the front end)_
+
+## The server-side render markup
+
+Any markup in the server-side render definition for the block can use the [`get_block_wrapper_attributes()`](https://developer.wordpress.org/reference/functions/get_block_wrapper_attributes/) function to generate the string of attributes required to reflect the block settings (see [example](https://github.com/WordPress/block-development-examples/blob/f68640f42d993f0866d1879f67c73910285ca114/plugins/block-dynamic-rendering-64756b/src/render.php#L11)).
+
+```php
+>
+
+
+```
\ No newline at end of file
diff --git a/docs/getting-started/fundamentals/file-structure-of-a-block.md b/docs/getting-started/fundamentals/file-structure-of-a-block.md
new file mode 100644
index 00000000000000..660c7aa8aff8b8
--- /dev/null
+++ b/docs/getting-started/fundamentals/file-structure-of-a-block.md
@@ -0,0 +1,86 @@
+# File structure of a block
+
+It is recommended to **register blocks within plugins** to ensure they stay available when a theme gets switched. With the [`create-block` tool](https://developer.wordpress.org/block-editor/getting-started/devenv/get-started-with-create-block/) you can quickly scaffold the structure of the files required to create a plugin that registers a block.
+
+The files generated by `create-block` are a good reference of the files that can be involved in the definition and registration of a block.
+
+[![Open File Structure of a Block Diagram in excalidraw](https://developer.wordpress.org/files/2023/11/file-structure-block.png)](https://excalidraw.com/#json=YYpeR-kY1ZMhFKVZxGhMi,mVZewfwNAh_oL-7bj4gmdw "Open File Structure of a Block Diagram in excalidraw")
+
+### `.php`
+
+A block is usually added to the block editor using a WordPress plugin. In the main PHP file of the plugin the block is usually registered on the server side.
+
+
+
+### `package.json`
+
+[`package.json`](https://docs.npmjs.com/cli/v10/configuring-npm/package-json) is a configuration file for a Node.js project. In this file you define the NPM dependencies of the block and the scripts used for local work.
+
+### `src` folder
+
+In a standard project you'll place your block files in the `src` folder. By default, [the build process with `wp-scripts`](https://developer.wordpress.org/block-editor/getting-started/fundamentals/javascript-in-the-block-editor/#javascript-build-process) will take files from this folder and will generate the bundled files in the `build` folder.
+
+### `block.json`
+
+This file contains the [metadata of the block](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/), and it's used to simplify the definition and registration of the block both in the client and on the server.
+
+Among other data it provides properties to define the paths of the files involved in the block's behaviour, output and style. If there's a build process involved, this `block.json` along with the generated files are placed into a destination folder (usually the `build` folder) so the paths provided target to the bundled versions of these files.
+
+The most relevant properties that can be defined in a `block.json` to set the files involved in the block's behaviour, output or style are:
+- The [`editorScript`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#editor-script) property, usually set with the path of a bundled `index.js` file (output build from `src/index.js`).
+- The [`style`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#style) property, usually set with the path of a bundled `style-index.css` file (output build from `src/style.(css|scss|sass)`).
+- The [`editorStyle`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#editor-style) property, usually set with the path of a bundled `index.css` (output build from `src/editor.(css|scss|sass)`).
+- The [`render`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#render) property, usually set with the path of a bundled `render.php` (output copied from `src/render.php`).
+- The [`viewScript`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#view-script) property, usually set with the path of a bundled `view.js` (output copied from `src/view.php`).
+
+[![Open Build Output Diagram in excalidraw](https://developer.wordpress.org/files/2023/11/file-structure-build-output.png)](https://excalidraw.com/#json=c22LROgcG4JkD-7SkuE-N,rQW_ViJBq0Yk3qhCgqD6zQ "Open Build Output Diagram in excalidraw")
+
+### `index.js`
+
+The `index.js` file (or any other file defined in the `editorScript` property of `block.json`) is the entry point file for javascript that should only get loaded in the editor. It is responsible for calling the `registerBlockType` function to register the block on the client. In a standard structure it imports the `edit.js` and `save.js` files to get functions required in block registration.
+
+### `edit.js`
+
+The `edit.js` commonly gets used to contain the React component that gets used in the editor for our block. It usually exports a single component that then gets passed to the [`edit` property of the `registerBlockType`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-edit-save/#edit) function in the `index.js` file.
+
+### `save.js`
+
+The `save.js` exports the function that returns the static HTML markup that gets saved to the Database and that is passed to the [`save` property of the `registerBlockType`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-edit-save/#save) function in the `index.js` file.
+
+### `style.(css|scss|sass)`
+
+A `style` file with any of the extensions `.css`, `.scss` or `.sass`, contains the styles of the block that will be loaded in both the editor and the frontend. In the build process this file is converted into `style-index.css` which is usually defined at [`style`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#style) property in `block.json`
+
+
+
+
+### `editor.(css|scss|sass)`
+
+An `editor` file with any of the extensions `.css`, `.scss` or `.sass`, contains the additional styles applied to the block only in the editor’s context. In the build process this file is converted into `index.css` which is usually defined at [`editorStyle`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#editor-style) property in `block.json`
+
+### `render.php`
+
+The `render.php` file (or any other file defined in the [`render`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#render) property of `block.json`) defines the server side process that returns the markup for the block when there is a request from the frontend. If this file is defined, it will take precedence over any other ways to render the block's markup for the frontend.
+
+### `view.js`
+
+The `view.js` file (or any other file defined in the [`viewScript`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#view-script) property of `block.json`) will be loaded in the front-end when the block is displayed.
+
+### `build` folder
+
+In a standard project, the `build` folder contains the generated files in [the build process triggered by the `build` or `start` commands of `wp-scripts`](https://developer.wordpress.org/block-editor/getting-started/devenv/get-started-with-wp-scripts/#the-build-process-with-wp-scripts).
+
+
+
+## Additional resources
+
+- [Metadata in block.json](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/)
+- [`wp-scripts build`](https://developer.wordpress.org/block-editor/reference-guides/packages/packages-scripts/#build)
+- [`wp-scripts start`](https://developer.wordpress.org/block-editor/reference-guides/packages/packages-scripts/#start)
+- [How webpack and WordPress packages interact](https://developer.wordpress.org/news/2023/04/how-webpack-and-wordpress-packages-interact/) | Developer Blog
diff --git a/docs/getting-started/fundamentals/javascript-in-the-block-editor.md b/docs/getting-started/fundamentals/javascript-in-the-block-editor.md
new file mode 100644
index 00000000000000..73c6a6c56e6328
--- /dev/null
+++ b/docs/getting-started/fundamentals/javascript-in-the-block-editor.md
@@ -0,0 +1,51 @@
+# Working with Javascript for the Block Editor
+
+A JavaScript Build Process is recommended for most cases when working with Javascript for the Block Editor. With a build process, you'll be able to work with ESNext and JSX (among others) syntaxes and features in your code while producing code ready for the majority of the browsers.
+
+## JavaScript Build Process
+
+["ESNext"](https://developer.mozilla.org/en-US/docs/Web/JavaScript/JavaScript_technologies_overview#standardization_process) is a dynamic name that refers to Javascript's latest syntax and features. ["JSX"](https://react.dev/learn/writing-markup-with-jsx) is a custom syntax extension to JavaScript, created by React project, that allows you to write JavaScript using a familiar HTML tag-like syntax.
+
+Browsers cannot interpret or run ESNext and JSX syntaxes, so a transformation step is needed to convert these syntaxes to code that browsers can understand.
+
+["webpack"](https://webpack.js.org/concepts/why-webpack/) is a pluggable tool that processes JavaScript and creates a compiled bundle that runs in a browser. ["babel"](https://babeljs.io/) transforms JavaScript from one format to another. Babel is a webpack plugin to transform ESNext and JSX to production-ready JavaScript.
+
+[`@wordpress/scripts`](https://developer.wordpress.org/block-editor/reference-guides/packages/packages-scripts/) package abstracts these libraries away to standardize and simplify development, so you won’t need to handle the details for configuring webpack or babel. Check the [Get started with wp-scripts](https://developer.wordpress.org/block-editor/getting-started/devenv/get-started-with-wp-scripts/) intro guide.
+
+
+Among other things, with `wp-scripts` package you can use Javascript modules to distribute your code among different files and get a few bundled files at the end of the build process (see [example](https://github.com/WordPress/block-development-examples/tree/trunk/plugins/data-basics-59c8f8)).
+
+[![Build Process Diagram](https://developer.wordpress.org/files/2023/11/build-process.png)](https://excalidraw.com/#json=4aNG9JUti3pMnsfoga35b,ihEAI8p5dwkpjWr6gQmjuw "Open Build Process Diagram in Excalidraw")
+
+With the [proper `package.json` scripts](https://developer.wordpress.org/block-editor/getting-started/devenv/get-started-with-wp-scripts/#basic-usage) you can launch the build process with `wp-scripts` in production and development mode:
+
+- **`npm run build` for "production" mode build** - This process [minifies the code](https://developer.mozilla.org/en-US/docs/Glossary/Minification) so it downloads faster in the browser.
+- **`npm run start` for "development" mode build** - This process does not minify the code of the bundled files, provides [source maps files](https://firefox-source-docs.mozilla.org/devtools-user/debugger/how_to/use_a_source_map/index.html) for them, and additionally continues a running process to watch the source file for more changes and rebuilds as you develop.
+
+
+
+## Javascript without a build process
+
+Using Javascript without a build process may be another good option for code developments with few requirements (especially those not requiring JSX).
+
+Without a build process, you access the methods directly from the `wp` global object and must enqueue the script manually. [WordPress Javascript packages](https://developer.wordpress.org/block-editor/reference-guides/packages/) can be accessed through the `wp` [global variable](https://developer.mozilla.org/en-US/docs/Glossary/Global_variable) but every script that wants to use them through this `wp` object is responsible for adding [the handle of that package](https://developer.wordpress.org/block-editor/contributors/code/scripts/) to the dependency array when registered.
+
+So, for example if a script wants to register a block variation using the `registerBlockVariation` method out of the ["blocks" package](https://developer.wordpress.org/block-editor/reference-guides/packages/packages-blocks/), the `wp-blocks` handle would need to get added to the dependency array to ensure that `wp.blocks.registerBlockVariation` is defined when the script tries to access it (see [example](https://github.com/wptrainingteam/block-theme-examples/blob/master/example-block-variation/functions.php)).
+
+
+ Try running wp.data.select('core/editor').getBlocks())
in your browser's dev tools while editing a post or a site. The entire editor is available from the console.
+
+
+Use [`enqueue_block_editor_assets`](https://developer.wordpress.org/reference/hooks/enqueue_block_editor_assets/) hook coupled with the standard [`wp_enqueue_script`](https://developer.wordpress.org/reference/functions/wp_enqueue_script/) (and [`wp_register_script`](https://developer.wordpress.org/reference/functions/wp_register_script/)) to enqueue javascript assets for the Editor with access to these packages via `wp` (see [example](https://github.com/wptrainingteam/block-theme-examples/tree/master/example-block-variation)). Refer to [Enqueueing assets in the Editor](https://developer.wordpress.org/block-editor/how-to-guides/enqueueing-assets-in-the-editor/) for more info.
+
+## Additional resources
+
+- [Get started with wp-scripts](https://developer.wordpress.org/block-editor/getting-started/devenv/get-started-with-wp-scripts/)
+- [Enqueueing assets in the Editor](https://developer.wordpress.org/block-editor/how-to-guides/enqueueing-assets-in-the-editor/)
+- [Wordpress Packages handles](https://developer.wordpress.org/block-editor/contributors/code/scripts/)
+- [Javascript Reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript) | MDN Web Docs
+- [block-development-examples](https://github.com/WordPress/block-development-examples) | GitHub repository
+- [block-theme-examples](https://github.com/wptrainingteam/block-theme-examples) | GitHub repository
+- [How webpack and WordPress packages interact](https://developer.wordpress.org/news/2023/04/how-webpack-and-wordpress-packages-interact/) | Developer Blog
diff --git a/docs/getting-started/fundamentals/registration-of-a-block.md b/docs/getting-started/fundamentals/registration-of-a-block.md
new file mode 100644
index 00000000000000..a330d46e676d5c
--- /dev/null
+++ b/docs/getting-started/fundamentals/registration-of-a-block.md
@@ -0,0 +1,98 @@
+# Registration of a block
+
+A block is usually registered through a plugin on both the server and client-side using its `block.json` metadata.
+
+Although technically, blocks could be registered only in the client, **registering blocks on both the server and in the client is a strong recommendation**. Some server-side features like Dynamic Rendering, Block Supports, Block Hooks, or Block style variations require the block to "exist" on the server, and they won't work properly without server registration of the block.
+
+For example, to allow a block [to be styled via `theme.json`](https://developer.wordpress.org/themes/global-settings-and-styles/settings/blocks/), it needs to be registered on the server, otherwise, any styles assigned to it in `theme.json` will be ignored.
+
+[![Open Block Registration diagram in excalidraw](https://developer.wordpress.org/files/2023/11/block-registration-e1700493399839.png)](https://excalidraw.com/#json=PUQu7jpvbKsUHYfpHWn7s,61QnhpZtjykp3s44lbUN_g "Open Block Registration diagram in excalidraw")
+
+### Registration of the block with PHP (server-side)
+
+Block registration on the server usually takes place in the main plugin PHP file with the `register_block_type` function called on the [init hook](https://developer.wordpress.org/reference/hooks/init/).
+
+The [`register_block_type`](https://developer.wordpress.org/reference/functions/register_block_type/) function aims to simplify block type registration on the server by reading metadata stored in the `block.json` file.
+
+This function takes two params relevant in this context (`$block_type` accepts more types and variants):
+
+- `$block_type` (`string`) – path to the folder where the `block.json` file is located or full path to the metadata file if named differently.
+- `$args` (`array`) – an optional array of block type arguments. Default value: `[]`. Any arguments may be defined. However, the one described below is supported by default:
+ - `$render_callback` (`callable`) – callback used to render blocks of this block type, it's an alternative to the `render` field in `block.json`.
+
+As part of the build process, the `block.json` file is usually copied from the `src` folder to the `build` folder, so the path to the `block.json` of your registered block should refer to the `build` folder.
+
+`register_block_type` returns the registered block type (`WP_Block_Type`) on success or `false` on failure.
+
+**Example:**
+```php
+register_block_type(
+ __DIR__ . '/notice',
+ array(
+ 'render_callback' => 'render_block_core_notice',
+ )
+);
+```
+
+**Example:**
+```php
+function minimal_block_ca6eda___register_block() {
+ register_block_type( __DIR__ . '/build' );
+}
+
+add_action( 'init', 'minimal_block_ca6eda___register_block' );
+```
+_See the [full block example](https://github.com/WordPress/block-development-examples/tree/trunk/plugins/minimal-block-ca6eda) of the [code above](https://github.com/WordPress/block-development-examples/blob/trunk/plugins/minimal-block-ca6eda/index.php)_
+
+### Registration of the block with JavaScript (client-side)
+
+When the block is registered on the server, you only need to register the client-side settings on the client using the same block’s name.
+
+**Example:**
+
+```js
+registerBlockType( 'my-plugin/notice', {
+ edit: Edit,
+ // ...other client-side settings
+} );
+```
+
+Although registering the block also on the server with PHP is still recommended for the reasons mentioned at ["Benefits using the metadata file"](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-metadata/#benefits-using-the-metadata-file), if you want to register it only client-side you can use [`registerBlockType`](https://developer.wordpress.org/block-editor/reference-guides/packages/packages-blocks/#registerblocktype) method from `@wordpress/blocks` package to register a block type using the metadata loaded from `block.json` file.
+
+The function takes two params:
+
+- `$blockNameOrMetadata` (`string`|`Object`) – block type name or the metadata object loaded from the `block.json`
+- `$settings` (`Object`) – client-side block settings.
+
+
+
+The client-side block settings object passed as a second parameter includes two especially relevant properties:
+- `edit`: The React component that gets used in the editor for our block.
+- `save`: The function that returns the static HTML markup that gets saved to the Database.
+
+`registerBlockType` returns the registered block type (`WPBlock`) on success or `undefined` on failure.
+
+**Example:**
+
+```js
+import { registerBlockType } from '@wordpress/blocks';
+import { useBlockProps } from '@wordpress/block-editor';
+import metadata from './block.json';
+
+const Edit = () => Hello World - Block Editor
;
+const save = () => Hello World - Frontend
;
+
+registerBlockType( metadata.name, {
+ edit: Edit,
+ save,
+} );
+```
+_See the [code above](https://github.com/WordPress/block-development-examples/blob/trunk/plugins/minimal-block-ca6eda/src/index.js) in [an example](https://github.com/WordPress/block-development-examples/tree/trunk/plugins/minimal-block-ca6eda)_
+
+## Additional resources
+
+- [`register_block_type` PHP function](https://developer.wordpress.org/reference/functions/register_block_type/)
+- [`registerBlockType` JS function](https://developer.wordpress.org/block-editor/reference-guides/packages/packages-blocks/#registerblocktype)
+- [Why a block needs to be registered in both the server and the client?](https://github.com/WordPress/gutenberg/discussions/55884) | GitHub Discussion
diff --git a/docs/how-to-guides/themes/theme-json.md b/docs/how-to-guides/themes/theme-json.md
index 2a1161827c1369..1f7480649f6ab1 100644
--- a/docs/how-to-guides/themes/theme-json.md
+++ b/docs/how-to-guides/themes/theme-json.md
@@ -69,7 +69,8 @@ To address this need, we've started to experiment with CSS Custom Properties, ak
- **Presets**: [color palettes](/docs/how-to-guides/themes/theme-support.md#block-color-palettes), [font sizes](/docs/how-to-guides/themes/theme-support.md#block-font-sizes), or [gradients](/docs/how-to-guides/themes/theme-support.md#block-gradient-presets) declared by the theme are converted to CSS Custom Properties and enqueued both the front-end and the editors.
-#### Input
+{% codetabs %}
+{% Input %}
```json
{
@@ -93,7 +94,7 @@ To address this need, we've started to experiment with CSS Custom Properties, ak
}
```
-#### Output
+{% Output %}
```css
body {
@@ -102,10 +103,12 @@ body {
}
```
-- **Custom properties**: there's also a mechanism to create your own CSS Custom Properties.
+{% end %}
+- **Custom properties**: there's also a mechanism to create your own CSS Custom Properties.
-#### Input
+{% codetabs %}
+{% Input %}
```json
{
@@ -121,7 +124,7 @@ body {
}
```
-#### Output
+{% Output %}
```css
body {
@@ -130,6 +133,8 @@ body {
}
```
+{% end %}
+
## Specification
This specification is the same for the three different origins that use this format: core, themes, and users. Themes can override core's defaults by creating a file called `theme.json`. Users, via the site editor, will also be able to override theme's or core's preferences via an user interface that is being worked on.
@@ -161,8 +166,8 @@ The tabs below show WordPress 5.8 supported settings and the ones supported by t
The settings section has the following structure:
-
-#### WordPress
+{% codetabs %}
+{% WordPress %}
```json
{
@@ -226,7 +231,7 @@ The settings section has the following structure:
}
```
-#### Gutenberg
+{% Gutenberg %}
```json
{
@@ -304,6 +309,7 @@ The settings section has the following structure:
}
}
```
+{% end %}
Each block can configure any of these settings separately, providing a more fine-grained control over what exists via `add_theme_support`. The settings declared at the top-level affect to all blocks, unless a particular block overwrites it. It's a way to provide inheritance and configure all blocks at once.
@@ -370,7 +376,8 @@ The naming schema for the classes and the custom properties is as follows:
- Classes: `.has-{preset-slug}-{preset-category}` such as `.has-black-color`.
-#### Input
+{% codetabs %}
+{% Input %}
```json
{
@@ -483,7 +490,7 @@ The naming schema for the classes and the custom properties is as follows:
}
```
-#### Output
+{% Output %}
```css
/* Top-level custom properties */
@@ -532,6 +539,7 @@ body {
.wp-block-group.has-white-border-color { border-color: #444 !important; }
```
+{% end %}
To maintain backward compatibility, the presets declared via `add_theme_support` will also generate the CSS Custom Properties. If the `theme.json` contains any presets, these will take precedence over the ones declared via `add_theme_support`.
@@ -543,7 +551,8 @@ In addition to create CSS Custom Properties for the presets, the `theme.json` al
For example:
-#### Input
+{% codetabs %}
+{% Input %}
```json
{
@@ -568,7 +577,7 @@ For example:
}
```
-#### Output
+{% Output %}
```css
body {
@@ -582,6 +591,7 @@ body {
}
```
+{% end %}
Note that the name of the variable is created by adding `--` in between each nesting level and `camelCase` fields are transformed to `kebab-case`.
@@ -691,9 +701,8 @@ The tabs below show WordPress 5.8 supported styles and the ones supported by the
Each block declares which style properties it exposes via the [block supports mechanism](/docs/reference-guides/block-api/block-supports.md). The support declarations are used to automatically generate the UI controls for the block in the editor. Themes can use any style property via the `theme.json` for any block ― it's the theme's responsibility to verify that it works properly according to the block markup, etc.
-
-
-#### WordPress
+{% codetabs %}
+{% WordPress %}
```json
{
@@ -772,8 +781,7 @@ Each block declares which style properties it exposes via the [block supports me
}
}
```
-
-#### Gutenberg
+{% Gutenberg %}
```json
{
@@ -861,12 +869,13 @@ Each block declares which style properties it exposes via the [block supports me
}
}
```
-
+{% end %}
### Top-level styles
Styles found at the top-level will be enqueued using the `body` selector.
-#### Input
+{% codetabs %}
+{% Input %}
```json
{
@@ -879,7 +888,7 @@ Styles found at the top-level will be enqueued using the `body` selector.
}
```
-#### Output
+{% Output %}
```css
body {
@@ -887,14 +896,15 @@ body {
}
```
-
+{% end %}
### Block styles
Styles found within a block will be enqueued using the block selector.
By default, the block selector is generated based on its name such as `.wp-block-`. For example, `.wp-block-group` for the `core/group` block. There are some blocks that want to opt-out from this default behavior. They can do so by explicitly telling the system which selector to use for them via the `__experimentalSelector` key within the `supports` section of its `block.json` file. Note that the block needs to be registered server-side for the `__experimentalSelector` field to be available to the style engine.
-#### Input
+{% codetabs %}
+{% Input %}
```json
{
@@ -919,7 +929,7 @@ By default, the block selector is generated based on its name such as `.wp-block
}
```
-#### Output
+{% Output %}
```css
body {
@@ -932,7 +942,7 @@ p { /* The core/paragraph opts out from the default behaviour and uses p as a se
color: var( --wp--preset--color--tertiary );
}
```
-
+{% end %}
#### Referencing a style
@@ -980,7 +990,8 @@ Supported by WordPress:
If they're found in the top-level the element selector will be used. If they're found within a block, the selector to be used will be the element's appended to the corresponding block.
-#### Input
+{% codetabs %}
+{% Input %}
```json
{
@@ -1026,7 +1037,7 @@ If they're found in the top-level the element selector will be used. If they're
}
```
-#### Output
+{% Output %}
```css
body {
@@ -1048,7 +1059,7 @@ h3 {
font-size: var( --wp--preset--font-size--smaller );
}
```
-
+{% end %}
##### Element pseudo selectors
Pseudo selectors `:hover`, `:focus`, `:visited`, `:active`, `:link`, `:any-link` are supported by Gutenberg.
@@ -1217,8 +1228,8 @@ This is for clarity, but also because we want a mechanism to parse back a variab
For example:
-
-#### Input
+{% codetabs %}
+{% Input %}
```json
{
@@ -1234,7 +1245,7 @@ For example:
}
```
-#### Output
+{% Output %}
```css
body {
@@ -1242,7 +1253,7 @@ body {
--wp--custom--font-primary: "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif";
}
```
-
+{% end %}
A few notes about this process:
diff --git a/docs/manifest.json b/docs/manifest.json
index ba345e7716ee37..b8939951d71837 100644
--- a/docs/manifest.json
+++ b/docs/manifest.json
@@ -95,6 +95,42 @@
"markdown_source": "../docs/getting-started/create-block/submitting-to-block-directory.md",
"parent": "create-block"
},
+ {
+ "title": "Fundamentals of Block Development",
+ "slug": "fundamentals",
+ "markdown_source": "../docs/getting-started/fundamentals/README.md",
+ "parent": "getting-started"
+ },
+ {
+ "title": "File structure of a block",
+ "slug": "file-structure-of-a-block",
+ "markdown_source": "../docs/getting-started/fundamentals/file-structure-of-a-block.md",
+ "parent": "fundamentals"
+ },
+ {
+ "title": "block.json",
+ "slug": "block-json",
+ "markdown_source": "../docs/getting-started/fundamentals/block-json.md",
+ "parent": "fundamentals"
+ },
+ {
+ "title": "Registration of a block",
+ "slug": "registration-of-a-block",
+ "markdown_source": "../docs/getting-started/fundamentals/registration-of-a-block.md",
+ "parent": "fundamentals"
+ },
+ {
+ "title": "The block wrapper",
+ "slug": "block-wrapper",
+ "markdown_source": "../docs/getting-started/fundamentals/block-wrapper.md",
+ "parent": "fundamentals"
+ },
+ {
+ "title": "Working with Javascript for the Block Editor",
+ "slug": "javascript-in-the-block-editor",
+ "markdown_source": "../docs/getting-started/fundamentals/javascript-in-the-block-editor.md",
+ "parent": "fundamentals"
+ },
{
"title": "Glossary",
"slug": "glossary",
@@ -785,6 +821,12 @@
"markdown_source": "../packages/components/src/confirm-dialog/README.md",
"parent": "components"
},
+ {
+ "title": "CustomSelectControlV2",
+ "slug": "custom-select-control-v2",
+ "markdown_source": "../packages/components/src/custom-select-control-v2/README.md",
+ "parent": "components"
+ },
{
"title": "CustomSelectControl",
"slug": "custom-select-control",
@@ -1577,6 +1619,12 @@
"markdown_source": "../packages/data/README.md",
"parent": "packages"
},
+ {
+ "title": "@wordpress/dataviews",
+ "slug": "packages-dataviews",
+ "markdown_source": "../packages/dataviews/README.md",
+ "parent": "packages"
+ },
{
"title": "@wordpress/date",
"slug": "packages-date",
diff --git a/docs/reference-guides/block-api/block-metadata.md b/docs/reference-guides/block-api/block-metadata.md
index f380683f39ccdd..edc61d138128e6 100644
--- a/docs/reference-guides/block-api/block-metadata.md
+++ b/docs/reference-guides/block-api/block-metadata.md
@@ -77,65 +77,9 @@ Development is improved by using a defined schema definition file. Supported edi
"$schema": "https://schemas.wp.org/trunk/block.json"
```
-## Block registration
-
-### PHP (server-side)
-
-The [`register_block_type`](https://developer.wordpress.org/reference/functions/register_block_type/) function that aims to simplify the block type registration on the server, can read metadata stored in the `block.json` file.
-
-This function takes two params relevant in this context (`$block_type` accepts more types and variants):
-
-- `$block_type` (`string`) – path to the folder where the `block.json` file is located or full path to the metadata file if named differently.
-- `$args` (`array`) – an optional array of block type arguments. Default value: `[]`. Any arguments may be defined. However, the one described below is supported by default:
- - `$render_callback` (`callable`) – callback used to render blocks of this block type, it's an alternative to the `render` field in `block.json`.
-
-It returns the registered block type (`WP_Block_Type`) on success or `false` on failure.
-
-**Example:**
-
-```php
-register_block_type(
- __DIR__ . '/notice',
- array(
- 'render_callback' => 'render_block_core_notice',
- )
-);
-```
-
-### JavaScript (client-side)
-
-When the block is registered on the server, you only need to register the client-side settings on the client using the same block’s name.
-
-**Example:**
-
-```js
-registerBlockType( 'my-plugin/notice', {
- edit: Edit,
- // ...other client-side settings
-} );
-```
-
-Although registering the block also on the server with PHP is still recommended for the reasons above, if you want to register it only client-side you can now use `registerBlockType` method from `@wordpress/blocks` package to register a block type using the metadata loaded from `block.json` file.
-
-The function takes two params:
-
-- `$blockNameOrMetadata` (`string`|`Object`) – block type name (supported previously) or the metadata object loaded from the `block.json` file with a bundler (e.g., webpack) or a custom Babel plugin.
-- `$settings` (`Object`) – client-side block settings.
-
-It returns the registered block type (`WPBlock`) on success or `undefined` on failure.
-
-**Example:**
-
-```js
-import { registerBlockType } from '@wordpress/blocks';
-import Edit from './edit';
-import metadata from './block.json';
-
-registerBlockType( metadata, {
- edit: Edit,
- // ...other client-side settings
-} );
-```
+
## Block API
diff --git a/docs/reference-guides/block-api/block-supports.md b/docs/reference-guides/block-api/block-supports.md
index a58c56d7a8a94f..7fd0e68c9bd8c0 100644
--- a/docs/reference-guides/block-api/block-supports.md
+++ b/docs/reference-guides/block-api/block-supports.md
@@ -556,6 +556,7 @@ supports: {
- `allowVerticalAlignment`: type `boolean`, default value `true`
- `allowJustification`: type `boolean`, default value `true`
- `allowOrientation`: type `boolean`, default value `true`
+ - `allowCustomContentAndWideSize`: type `boolean`, default value `true`
This value only applies to blocks that are containers for inner blocks. If set to `true` the layout type will be `flow`. For other layout types it's necessary to set the `type` explicitly inside the `default` object.
@@ -615,6 +616,13 @@ For the `flex` layout type, determines display of the justification control in t
For the `flex` layout type only, determines display of the orientation control in the block toolbar.
+### layout.allowCustomContentAndWideSize
+
+- Type: `boolean`
+- Default value: `true`
+
+For the `constrained` layout type only, determines display of the custom content and wide size controls in the block sidebar.
+
## multiple
diff --git a/docs/reference-guides/core-blocks.md b/docs/reference-guides/core-blocks.md
index 10f0f76d9eb0d7..c68bb419467f36 100644
--- a/docs/reference-guides/core-blocks.md
+++ b/docs/reference-guides/core-blocks.md
@@ -378,7 +378,7 @@ Insert an image to make a visual statement. ([Source](https://github.com/WordPre
- **Name:** core/image
- **Category:** media
-- **Supports:** align (center, full, left, right, wide), anchor, color (~~background~~, ~~text~~), filter (duotone)
+- **Supports:** align (center, full, left, right, wide), anchor, color (~~background~~, ~~text~~), filter (duotone), interactivity
- **Attributes:** alt, aspectRatio, caption, height, href, id, lightbox, linkClass, linkDestination, linkTarget, rel, scale, sizeSlug, title, url, width
## Latest Comments
@@ -415,7 +415,7 @@ Create a list item. ([Source](https://github.com/WordPress/gutenberg/tree/trunk/
- **Name:** core/list-item
- **Category:** text
- **Parent:** core/list
-- **Supports:** typography (fontSize, lineHeight), ~~className~~
+- **Supports:** spacing (margin, padding), typography (fontSize, lineHeight), ~~className~~
- **Attributes:** content, placeholder
## Login/out
@@ -470,7 +470,7 @@ Add a page, link, or another item to your navigation. ([Source](https://github.c
- **Name:** core/navigation-link
- **Category:** design
- **Parent:** core/navigation
-- **Supports:** typography (fontSize, lineHeight), ~~html~~, ~~reusable~~
+- **Supports:** typography (fontSize, lineHeight), ~~html~~, ~~renaming~~, ~~reusable~~
- **Attributes:** description, id, isTopLevelLink, kind, label, opensInNewTab, rel, title, type, url
## Submenu
diff --git a/docs/reference-guides/data/data-core-edit-post.md b/docs/reference-guides/data/data-core-edit-post.md
index 7d6a1deed455b5..e09cf0caaec515 100644
--- a/docs/reference-guides/data/data-core-edit-post.md
+++ b/docs/reference-guides/data/data-core-edit-post.md
@@ -138,15 +138,9 @@ _Returns_
### isEditingTemplate
-Returns true if the template editing mode is enabled.
-
-_Parameters_
-
-- _state_ `Object`: Global application state.
-
-_Returns_
+> **Deprecated**
-- `boolean`: Whether we're editing the template.
+Returns true if the template editing mode is enabled.
### isEditorPanelEnabled
@@ -438,15 +432,9 @@ _Parameters_
### setIsEditingTemplate
-Returns an action object used to switch to template editing.
-
-_Parameters_
-
-- _value_ `boolean`: Is editing template.
+> **Deprecated**
-_Returns_
-
-- `Object`: Action object.
+Returns an action object used to switch to template editing.
### setIsInserterOpened
diff --git a/docs/reference-guides/data/data-core-edit-site.md b/docs/reference-guides/data/data-core-edit-site.md
index 21cd5b2beb7b69..7a0d67f9db0be0 100644
--- a/docs/reference-guides/data/data-core-edit-site.md
+++ b/docs/reference-guides/data/data-core-edit-site.md
@@ -132,11 +132,9 @@ _Returns_
### hasPageContentFocus
-Whether or not the editor allows only page content to be edited.
-
-_Parameters_
+> **Deprecated**
-- _state_ `Object`: Global application state.
+Whether or not the editor allows only page content to be edited.
_Returns_
diff --git a/docs/reference-guides/data/data-core-editor.md b/docs/reference-guides/data/data-core-editor.md
index 5dbcb095bbf085..fae5b8a78e2cfc 100644
--- a/docs/reference-guides/data/data-core-editor.md
+++ b/docs/reference-guides/data/data-core-editor.md
@@ -256,6 +256,18 @@ _Returns_
- `string`: Post type.
+### getCurrentTemplateId
+
+Returns the template ID currently being rendered/edited
+
+_Parameters_
+
+- _state_ `Object`: Global application state.
+
+_Returns_
+
+- `string?`: Template ID.
+
### getEditedPostAttribute
Returns a single attribute of the post being edited, preferring the unsaved edit if one exists, but falling back to the attribute for the last known saved state of the post.
@@ -501,6 +513,18 @@ _Related_
- getPreviousBlockClientId in core/block-editor store.
+### getRenderingMode
+
+Returns the post editor's rendering mode.
+
+_Parameters_
+
+- _state_ `Object`: Editor state.
+
+_Returns_
+
+- `string`: Rendering mode.
+
### getSelectedBlock
_Related_
@@ -535,10 +559,6 @@ Returns state object prior to a specified optimist transaction ID, or `null` if
Returns a suggested post format for the current post, inferred only if there is a single block within the post and it is of a type known to match a default post format. Returns null if the format cannot be determined.
-_Parameters_
-
-- _state_ `Object`: Global application state.
-
_Returns_
- `?string`: Suggested post format.
@@ -1241,6 +1261,19 @@ _Related_
- selectBlock in core/block-editor store.
+### setRenderingMode
+
+Returns an action used to set the rendering mode of the post editor. We support multiple rendering modes:
+
+- `all`: This is the default mode. It renders the post editor with all the features available. If a template is provided, it's preferred over the post.
+- `template-only`: This mode renders the editor with only the template blocks visible.
+- `post-only`: This mode extracts the post blocks from the template and renders only those. The idea is to allow the user to edit the post/page in isolation without the wrapping template.
+- `template-locked`: This mode renders both the template and the post blocks but the template blocks are locked and can't be edited. The post blocks are editable.
+
+_Parameters_
+
+- _mode_ `string`: Mode (one of 'template-only', 'post-only', 'template-locked' or 'all').
+
### setTemplateValidity
_Related_
diff --git a/docs/reference-guides/data/data-core.md b/docs/reference-guides/data/data-core.md
index b2a75638ace9fe..b80703dcc67b18 100644
--- a/docs/reference-guides/data/data-core.md
+++ b/docs/reference-guides/data/data-core.md
@@ -741,7 +741,7 @@ _Returns_
### receiveRevisions
-Returns an action object used in signalling that revisions have been received.
+Action triggered to receive revision items.
_Parameters_
@@ -753,10 +753,6 @@ _Parameters_
- _invalidateCache_ `?boolean`: Should invalidate query caches.
- _meta_ `?Object`: Meta information about pagination.
-_Returns_
-
-- `Object`: Action object.
-
### receiveThemeSupports
> **Deprecated** since WP 5.9, this is not useful anymore, use the selector direclty.
diff --git a/docs/reference-guides/theme-json-reference/theme-json-living.md b/docs/reference-guides/theme-json-reference/theme-json-living.md
index 492cdaf089cc4b..24a5845381bfda 100644
--- a/docs/reference-guides/theme-json-reference/theme-json-living.md
+++ b/docs/reference-guides/theme-json-reference/theme-json-living.md
@@ -129,6 +129,7 @@ Settings related to layout.
| contentSize | string | | |
| wideSize | string | | |
| allowEditing | boolean | true | |
+| allowCustomContentAndWideSize | boolean | true | |
---
diff --git a/docs/toc.json b/docs/toc.json
index 8a29d2d4f10aff..91017ce69643c3 100644
--- a/docs/toc.json
+++ b/docs/toc.json
@@ -46,6 +46,25 @@
}
]
},
+ {
+ "docs/getting-started/fundamentals/README.md": [
+ {
+ "docs/getting-started/fundamentals/file-structure-of-a-block.md": []
+ },
+ {
+ "docs/getting-started/fundamentals/block-json.md": []
+ },
+ {
+ "docs/getting-started/fundamentals/registration-of-a-block.md": []
+ },
+ {
+ "docs/getting-started/fundamentals/block-wrapper.md": []
+ },
+ {
+ "docs/getting-started/fundamentals/javascript-in-the-block-editor.md": []
+ }
+ ]
+ },
{ "docs/getting-started/glossary.md": [] },
{ "docs/getting-started/faq.md": [] }
]
diff --git a/gutenberg.php b/gutenberg.php
index a88e1537668887..2526aac3770548 100644
--- a/gutenberg.php
+++ b/gutenberg.php
@@ -3,9 +3,9 @@
* Plugin Name: Gutenberg
* Plugin URI: https://github.com/WordPress/gutenberg
* 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.2
+ * Requires at least: 6.3
* Requires PHP: 7.0
- * Version: 17.1.1
+ * Version: 17.2.0-rc.1
* Author: Gutenberg Team
* Text Domain: gutenberg
*
diff --git a/lib/block-supports/layout.php b/lib/block-supports/layout.php
index d35c963d0bed48..db02364b707901 100644
--- a/lib/block-supports/layout.php
+++ b/lib/block-supports/layout.php
@@ -819,7 +819,8 @@ function gutenberg_render_layout_support_flag( $block_content, $block ) {
break;
}
- if ( false !== strpos( $processor->get_attribute( 'class' ), $inner_block_wrapper_classes ) ) {
+ $class_attribute = $processor->get_attribute( 'class' );
+ if ( is_string( $class_attribute ) && false !== strpos( $class_attribute, $inner_block_wrapper_classes ) ) {
break;
}
} while ( $processor->next_tag() );
diff --git a/lib/block-supports/pattern.php b/lib/block-supports/pattern.php
new file mode 100644
index 00000000000000..a783135c793e3f
--- /dev/null
+++ b/lib/block-supports/pattern.php
@@ -0,0 +1,36 @@
+supports, array( '__experimentalConnections' ), false ) : false;
+
+ if ( $pattern_support ) {
+ if ( ! $block_type->uses_context ) {
+ $block_type->uses_context = array();
+ }
+
+ if ( ! in_array( 'pattern/overrides', $block_type->uses_context, true ) ) {
+ $block_type->uses_context[] = 'pattern/overrides';
+ }
+ }
+ }
+
+ // Register the block support.
+ WP_Block_Supports::get_instance()->register(
+ 'pattern',
+ array(
+ 'register_attribute' => 'gutenberg_register_pattern_support',
+ )
+ );
+}
diff --git a/lib/class-wp-theme-json-gutenberg.php b/lib/class-wp-theme-json-gutenberg.php
index 8c2857fa89d0ca..9311001f2edd14 100644
--- a/lib/class-wp-theme-json-gutenberg.php
+++ b/lib/class-wp-theme-json-gutenberg.php
@@ -383,9 +383,10 @@ class WP_Theme_JSON_Gutenberg {
'minHeight' => null,
),
'layout' => array(
- 'contentSize' => null,
- 'wideSize' => null,
- 'allowEditing' => null,
+ 'contentSize' => null,
+ 'wideSize' => null,
+ 'allowEditing' => null,
+ 'allowCustomContentAndWideSize' => null,
),
'lightbox' => array(
'enabled' => null,
@@ -425,6 +426,31 @@ class WP_Theme_JSON_Gutenberg {
),
);
+ const FONT_FAMILY_SCHEMA = array(
+ array(
+ 'fontFamily' => null,
+ 'name' => null,
+ 'slug' => null,
+ 'fontFace' => array(
+ array(
+ 'ascentOverride' => null,
+ 'descentOverride' => null,
+ 'fontDisplay' => null,
+ 'fontFamily' => null,
+ 'fontFeatureSettings' => null,
+ 'fontStyle' => null,
+ 'fontStretch' => null,
+ 'fontVariationSettings' => null,
+ 'fontWeight' => null,
+ 'lineGapOverride' => null,
+ 'sizeAdjust' => null,
+ 'src' => null,
+ 'unicodeRange' => null,
+ ),
+ ),
+ ),
+ );
+
/**
* The valid properties under the styles key.
*
@@ -549,6 +575,52 @@ class WP_Theme_JSON_Gutenberg {
'typography' => 'typography',
);
+ /**
+ * Return the input schema at the root and per origin.
+ *
+ * @since 6.5.0
+ *
+ * @param array $schema The base schema.
+ * @return array The schema at the root and per origin.
+ *
+ * Example:
+ * schema_in_root_and_per_origin(
+ * array(
+ * 'fontFamily' => null,
+ * 'slug' => null,
+ * )
+ * )
+ *
+ * Returns:
+ * array(
+ * 'fontFamily' => null,
+ * 'slug' => null,
+ * 'default' => array(
+ * 'fontFamily' => null,
+ * 'slug' => null,
+ * ),
+ * 'blocks' => array(
+ * 'fontFamily' => null,
+ * 'slug' => null,
+ * ),
+ * 'theme' => array(
+ * 'fontFamily' => null,
+ * 'slug' => null,
+ * ),
+ * 'custom' => array(
+ * 'fontFamily' => null,
+ * 'slug' => null,
+ * ),
+ * )
+ */
+ protected static function schema_in_root_and_per_origin( $schema ) {
+ $schema_in_root_and_per_origin = $schema;
+ foreach ( static::VALID_ORIGINS as $origin ) {
+ $schema_in_root_and_per_origin[ $origin ] = $schema;
+ }
+ return $schema_in_root_and_per_origin;
+ }
+
/**
* Returns a class name by an element name.
*
@@ -790,11 +862,12 @@ protected static function sanitize( $input, $valid_block_names, $valid_element_n
$schema_styles_blocks[ $block ]['variations'] = $schema_styles_variations;
}
- $schema['styles'] = static::VALID_STYLES;
- $schema['styles']['blocks'] = $schema_styles_blocks;
- $schema['styles']['elements'] = $schema_styles_elements;
- $schema['settings'] = static::VALID_SETTINGS;
- $schema['settings']['blocks'] = $schema_settings_blocks;
+ $schema['styles'] = static::VALID_STYLES;
+ $schema['styles']['blocks'] = $schema_styles_blocks;
+ $schema['styles']['elements'] = $schema_styles_elements;
+ $schema['settings'] = static::VALID_SETTINGS;
+ $schema['settings']['blocks'] = $schema_settings_blocks;
+ $schema['settings']['typography']['fontFamilies'] = static::schema_in_root_and_per_origin( static::FONT_FAMILY_SCHEMA );
// Remove anything that's not present in the schema.
foreach ( array( 'styles', 'settings' ) as $subtree ) {
@@ -966,18 +1039,39 @@ protected static function get_blocks_metadata() {
* @return array The modified $tree.
*/
protected static function remove_keys_not_in_schema( $tree, $schema ) {
- $tree = array_intersect_key( $tree, $schema );
+ if ( ! is_array( $tree ) ) {
+ return $tree;
+ }
- foreach ( $schema as $key => $data ) {
- if ( ! isset( $tree[ $key ] ) ) {
+ foreach ( $tree as $key => $value ) {
+ // Remove keys not in the schema or with null/empty values.
+ if ( ! array_key_exists( $key, $schema ) ) {
+ unset( $tree[ $key ] );
continue;
}
- if ( is_array( $schema[ $key ] ) && is_array( $tree[ $key ] ) ) {
- $tree[ $key ] = static::remove_keys_not_in_schema( $tree[ $key ], $schema[ $key ] );
+ // Check if the value is an array and requires further processing.
+ if ( is_array( $value ) && is_array( $schema[ $key ] ) ) {
+ // Determine if it is an associative or indexed array.
+ $schema_is_assoc = self::is_assoc( $value );
- if ( empty( $tree[ $key ] ) ) {
- unset( $tree[ $key ] );
+ if ( $schema_is_assoc ) {
+ // If associative, process as a single object.
+ $tree[ $key ] = self::remove_keys_not_in_schema( $value, $schema[ $key ] );
+
+ if ( empty( $tree[ $key ] ) ) {
+ unset( $tree[ $key ] );
+ }
+ } else {
+ // If indexed, process each item in the array.
+ foreach ( $value as $item_key => $item_value ) {
+ if ( isset( $schema[ $key ][0] ) && is_array( $schema[ $key ][0] ) ) {
+ $tree[ $key ][ $item_key ] = self::remove_keys_not_in_schema( $item_value, $schema[ $key ][0] );
+ } else {
+ // If the schema does not define a further structure, keep the value as is.
+ $tree[ $key ][ $item_key ] = $item_value;
+ }
+ }
}
} elseif ( is_array( $schema[ $key ] ) && ! is_array( $tree[ $key ] ) ) {
unset( $tree[ $key ] );
@@ -987,6 +1081,20 @@ protected static function remove_keys_not_in_schema( $tree, $schema ) {
return $tree;
}
+ /**
+ * Checks if the given array is associative.
+ *
+ * @since 6.5.0
+ * @param array $data The array to check.
+ * @return bool True if the array is associative, false otherwise.
+ */
+ protected static function is_assoc( $data ) {
+ if ( array() === $data ) {
+ return false;
+ }
+ return array_keys( $data ) !== range( 0, count( $data ) - 1 );
+ }
+
/**
* Returns the existing settings for each block.
*
diff --git a/lib/compat/wordpress-6.3/block-editor-settings.php b/lib/compat/wordpress-6.3/block-editor-settings.php
deleted file mode 100644
index b478d022c16dd9..00000000000000
--- a/lib/compat/wordpress-6.3/block-editor-settings.php
+++ /dev/null
@@ -1,89 +0,0 @@
-slug ) {
- $page_slug = 'page';
- }
- if ( 'single' === $template_type->slug ) {
- $post_slug = 'single';
- }
- }
-
- $what_post_type = get_post_type( $post_ID );
- switch ( $what_post_type ) {
- case 'page':
- $template_slug = $page_slug;
- break;
- default:
- $template_slug = $post_slug;
- break;
- }
- }
-
- $current_template = get_block_templates( array( 'slug__in' => array( $template_slug ) ) );
-
- if ( ! empty( $current_template ) ) {
- $template_blocks = parse_blocks( $current_template[0]->content );
- $post_content_block = gutenberg_find_first_block( 'core/post-content', $template_blocks );
-
- if ( isset( $post_content_block['attrs'] ) ) {
- $settings['postContentAttributes'] = $post_content_block['attrs'];
- }
- }
-
- return $settings;
-}
-
-add_filter( 'block_editor_settings_all', 'gutenberg_get_block_editor_settings_experimental', PHP_INT_MAX );
diff --git a/lib/compat/wordpress-6.3/block-patterns.php b/lib/compat/wordpress-6.3/block-patterns.php
deleted file mode 100644
index bf7ef632846c2d..00000000000000
--- a/lib/compat/wordpress-6.3/block-patterns.php
+++ /dev/null
@@ -1,165 +0,0 @@
-is_block_editor ) {
- return;
- }
- }
-
- $supports_core_patterns = get_theme_support( 'core-block-patterns' );
-
- /**
- * Filter to disable remote block patterns.
- *
- * @since 5.8.0
- *
- * @param bool $should_load_remote
- */
- $should_load_remote = apply_filters( 'should_load_remote_block_patterns', true );
-
- if ( $supports_core_patterns && $should_load_remote ) {
- $request = new WP_REST_Request( 'GET', '/wp/v2/pattern-directory/patterns' );
- $core_keyword_id = 11; // 11 is the ID for "core".
- $request->set_param( 'keyword', $core_keyword_id );
- $response = rest_do_request( $request );
- if ( $response->is_error() ) {
- return;
- }
- $patterns = $response->get_data();
-
- foreach ( $patterns as $pattern ) {
- $pattern['source'] = 'pattern-directory/core'; // Added in 6.3.0.
- $normalized_pattern = wp_normalize_remote_block_pattern( $pattern );
- $pattern_name = 'core/' . sanitize_title( $normalized_pattern['title'] );
- register_block_pattern( $pattern_name, (array) $normalized_pattern );
- }
- }
-}
-
-/**
- * Register `Featured` (category) patterns from wordpress.org/patterns.
- *
- * @since 5.9.0
- * @since 6.2.0 Normalize the pattern from the API (snake_case) to the format expected by `register_block_pattern` (camelCase).
- * @since 6.3.0 Add 'pattern-directory/featured' to the pattern's 'source'.
- */
-function gutenberg_load_remote_featured_patterns() {
- $supports_core_patterns = get_theme_support( 'core-block-patterns' );
-
- /** This filter is documented in wp-includes/block-patterns.php */
- $should_load_remote = apply_filters( 'should_load_remote_block_patterns', true );
-
- if ( ! $should_load_remote || ! $supports_core_patterns ) {
- return;
- }
-
- $request = new WP_REST_Request( 'GET', '/wp/v2/pattern-directory/patterns' );
- $featured_cat_id = 26; // This is the `Featured` category id from pattern directory.
- $request->set_param( 'category', $featured_cat_id );
- $response = rest_do_request( $request );
- if ( $response->is_error() ) {
- return;
- }
- $patterns = $response->get_data();
- $registry = WP_Block_Patterns_Registry::get_instance();
- foreach ( $patterns as $pattern ) {
- $pattern['source'] = 'pattern-directory/featured'; // Added in 6.3.0.
- $normalized_pattern = wp_normalize_remote_block_pattern( $pattern );
- $pattern_name = sanitize_title( $normalized_pattern['title'] );
- // Some patterns might be already registered as core patterns with the `core` prefix.
- $is_registered = $registry->is_registered( $pattern_name ) || $registry->is_registered( "core/$pattern_name" );
- if ( ! $is_registered ) {
- register_block_pattern( $pattern_name, (array) $normalized_pattern );
- }
- }
-}
-
-/**
- * Registers patterns from Pattern Directory provided by a theme's
- * `theme.json` file.
- *
- * @since 6.0.0
- * @since 6.2.0 Normalize the pattern from the API (snake_case) to the format expected by `register_block_pattern` (camelCase).
- * @since 6.3.0 Add 'pattern-directory/theme' to the pattern's 'source'.
- * @access private
- */
-function gutenberg_register_remote_theme_patterns() {
- /** This filter is documented in wp-includes/block-patterns.php */
- if ( ! apply_filters( 'should_load_remote_block_patterns', true ) ) {
- return;
- }
-
- if ( ! wp_theme_has_theme_json() ) {
- return;
- }
-
- $pattern_settings = gutenberg_get_theme_directory_pattern_slugs();
- if ( empty( $pattern_settings ) ) {
- return;
- }
-
- $request = new WP_REST_Request( 'GET', '/wp/v2/pattern-directory/patterns' );
- $request['slug'] = $pattern_settings;
- $response = rest_do_request( $request );
- if ( $response->is_error() ) {
- return;
- }
- $patterns = $response->get_data();
- $patterns_registry = WP_Block_Patterns_Registry::get_instance();
- foreach ( $patterns as $pattern ) {
- $pattern['source'] = 'pattern-directory/theme'; // Added in 6.3.0.
- $normalized_pattern = wp_normalize_remote_block_pattern( $pattern );
- $pattern_name = sanitize_title( $normalized_pattern['title'] );
- // Some patterns might be already registered as core patterns with the `core` prefix.
- $is_registered = $patterns_registry->is_registered( $pattern_name ) || $patterns_registry->is_registered( "core/$pattern_name" );
- if ( ! $is_registered ) {
- register_block_pattern( $pattern_name, (array) $normalized_pattern );
- }
- }
-}
diff --git a/lib/compat/wordpress-6.3/block-template-utils.php b/lib/compat/wordpress-6.3/block-template-utils.php
deleted file mode 100644
index d5f69593e473f5..00000000000000
--- a/lib/compat/wordpress-6.3/block-template-utils.php
+++ /dev/null
@@ -1,150 +0,0 @@
- _x( 'Index', 'Template name', 'gutenberg' ),
- 'description' => __(
- 'Used as a fallback template for all pages when a more specific template is not defined.',
- 'gutenberg'
- ),
- );
- }
- if ( isset( $default_template_types['home'] ) ) {
- $default_template_types['home'] = array(
- 'title' => _x( 'Blog Home', 'Template name', 'gutenberg' ),
- 'description' => __(
- 'Displays the latest posts as either the site homepage or as the "Posts page" as defined under reading settings. If it exists, the Front Page template overrides this template when posts are shown on the homepage.',
- 'gutenberg'
- ),
- );
- }
- if ( isset( $default_template_types['front-page'] ) ) {
- $default_template_types['front-page'] = array(
- 'title' => _x( 'Front Page', 'Template name', 'gutenberg' ),
- 'description' => __(
- "Displays your site's homepage, whether it is set to display latest posts or a static page. The Front Page template takes precedence over all templates.",
- 'gutenberg'
- ),
- );
- }
- if ( isset( $default_template_types['singular'] ) ) {
- $default_template_types['singular'] = array(
- 'title' => _x( 'Single Entries', 'Template name', 'gutenberg' ),
- 'description' => __(
- 'Displays any single entry, such as a post or a page. This template will serve as a fallback when a more specific template (e.g. Single Post, Page, or Attachment) cannot be found.',
- 'gutenberg'
- ),
- );
- }
- if ( isset( $default_template_types['single'] ) ) {
- $default_template_types['single'] = array(
- 'title' => _x( 'Single Posts', 'Template name', 'gutenberg' ),
- 'description' => __( 'Displays single posts on your website unless a custom template has been applied to that post or a dedicated template exists.', 'gutenberg' ),
- );
- }
- if ( isset( $default_template_types['page'] ) ) {
- $default_template_types['page'] = array(
- 'title' => _x( 'Pages', 'Template name', 'gutenberg' ),
- 'description' => __( 'Display all static pages unless a custom template has been applied or a dedicated template exists.', 'gutenberg' ),
- );
- }
- if ( isset( $default_template_types['archive'] ) ) {
- $default_template_types['archive'] = array(
- 'title' => _x( 'All Archives', 'Template name', 'gutenberg' ),
- 'description' => __(
- 'Displays any archive, including posts by a single author, category, tag, taxonomy, custom post type, and date. This template will serve as a fallback when more specific templates (e.g. Category or Tag) cannot be found.',
- 'gutenberg'
- ),
- );
- }
- if ( isset( $default_template_types['author'] ) ) {
- $default_template_types['author'] = array(
- 'title' => _x( 'Author Archives', 'Template name', 'gutenberg' ),
- 'description' => __(
- "Displays a single author's post archive. This template will serve as a fallback when a more a specific template (e.g. Author: Admin) cannot be found.",
- 'gutenberg'
- ),
- );
- }
- if ( isset( $default_template_types['category'] ) ) {
- $default_template_types['category'] = array(
- 'title' => _x( 'Category Archives', 'Template name', 'gutenberg' ),
- 'description' => __(
- 'Displays a post category archive. This template will serve as a fallback when more specific template (e.g. Category: Recipes) cannot be found.',
- 'gutenberg'
- ),
- );
- }
- if ( isset( $default_template_types['taxonomy'] ) ) {
- $default_template_types['taxonomy'] = array(
- 'title' => _x( 'Taxonomy', 'Template name', 'gutenberg' ),
- 'description' => __(
- 'Displays a custom taxonomy archive. Like categories and tags, taxonomies have terms which you use to classify things. For example: a taxonomy named "Art" can have multiple terms, such as "Modern" and "18th Century." This template will serve as a fallback when a more specific template (e.g. Taxonomy: Art) cannot be found.',
- 'gutenberg'
- ),
- );
- }
- if ( isset( $default_template_types['date'] ) ) {
- $default_template_types['date'] = array(
- 'title' => _x( 'Date Archives', 'Template name', 'gutenberg' ),
- 'description' => __( 'Displays a post archive when a specific date is visited (e.g. example.com/2023/).', 'gutenberg' ),
- );
- }
- if ( isset( $default_template_types['tag'] ) ) {
- $default_template_types['tag'] = array(
- 'title' => _x( 'Tag Archives', 'Template name', 'gutenberg' ),
- 'description' => __(
- 'Displays a post tag archive. This template will serve as a fallback when more specific template (e.g. Tag: Pizza) cannot be found.',
- 'gutenberg'
- ),
- );
- }
- if ( isset( $default_template_types['attachment'] ) ) {
- $default_template_types['attachment'] = array(
- 'title' => _x( 'Attachment Pages', 'Template name', 'gutenberg' ),
- 'description' => __( 'Displays when a visitor views the dedicated page that exists for any media attachment.', 'gutenberg' ),
- );
- }
- if ( isset( $default_template_types['search'] ) ) {
- $default_template_types['search'] = array(
- 'title' => _x( 'Search Results', 'Template name', 'gutenberg' ),
- 'description' => __( 'Displays when a visitor performs a search on your website.', 'gutenberg' ),
- );
- }
- if ( isset( $default_template_types['privacy-policy'] ) ) {
- $default_template_types['privacy-policy'] = array(
- 'title' => _x( 'Privacy Policy', 'Template name', 'gutenberg' ),
- 'description' => __(
- "Displays your site's Privacy Policy page.",
- 'gutenberg'
- ),
- );
- }
- if ( isset( $default_template_types['404'] ) ) {
- $default_template_types['404'] = array(
- 'title' => _x( 'Page: 404', 'Template name', 'gutenberg' ),
- 'description' => __( 'Displays when a visitor views a non-existent page, such as a dead link or a mistyped URL.', 'gutenberg' ),
- );
- }
-
- return $default_template_types;
-}
-add_filter( 'default_template_types', 'gutenberg_get_default_block_template_types', 10 );
diff --git a/lib/compat/wordpress-6.3/blocks.php b/lib/compat/wordpress-6.3/blocks.php
deleted file mode 100644
index 001416b42566f7..00000000000000
--- a/lib/compat/wordpress-6.3/blocks.php
+++ /dev/null
@@ -1,122 +0,0 @@
-= 6.3.
- *
- * @see https://github.com/WordPress/gutenberg/pull/46496
- *
- * @param array $settings Current block type settings.
- * @param array $metadata Block metadata as read in via block.json.
- *
- * @return array Filtered block type settings.
- */
-function gutenberg_add_selectors_property_to_block_type_settings( $settings, $metadata ) {
- if ( ! isset( $settings['selectors'] ) && isset( $metadata['selectors'] ) ) {
- $settings['selectors'] = $metadata['selectors'];
- }
-
- return $settings;
-}
-add_filter( 'block_type_metadata_settings', 'gutenberg_add_selectors_property_to_block_type_settings', 10, 2 );
-
-/**
- * Renames Reusable block CPT to Pattern.
- *
- * Note: This should be removed when the minimum required WP version is >= 6.3.
- *
- * @see https://github.com/WordPress/gutenberg/pull/51144
- *
- * @param array $args Register post type args.
- * @param string $post_type The post type string.
- *
- * @return array Register post type args.
- */
-function gutenberg_rename_reusable_block_cpt_to_pattern( $args, $post_type ) {
- if ( 'wp_block' === $post_type ) {
- $args['labels']['name'] = _x( 'Patterns', 'post type general name' );
- $args['labels']['singular_name'] = _x( 'Pattern', 'post type singular name' );
- $args['labels']['add_new_item'] = __( 'Add new Pattern' );
- $args['labels']['new_item'] = __( 'New Pattern' );
- $args['labels']['edit_item'] = __( 'Edit Block Pattern' );
- $args['labels']['view_item'] = __( 'View Pattern' );
- $args['labels']['view_items'] = __( 'View Patterns' );
- $args['labels']['all_items'] = __( 'All Patterns' );
- $args['labels']['search_items'] = __( 'Search Patterns' );
- $args['labels']['not_found'] = __( 'No Patterns found.' );
- $args['labels']['not_found_in_trash'] = __( 'No Patterns found in Trash.' );
- $args['labels']['filter_items_list'] = __( 'Filter Patterns list' );
- $args['labels']['items_list_navigation'] = __( 'Patterns list navigation' );
- $args['labels']['items_list'] = __( 'Patterns list' );
- $args['labels']['item_published'] = __( 'Pattern published.' );
- $args['labels']['item_published_privately'] = __( 'Pattern published privately.' );
- $args['labels']['item_reverted_to_draft'] = __( 'Pattern reverted to draft.' );
- $args['labels']['item_scheduled'] = __( 'Pattern scheduled.' );
- $args['labels']['item_updated'] = __( 'Pattern updated.' );
- $args['rest_controller_class'] = 'Gutenberg_REST_Blocks_Controller';
- }
-
- return $args;
-}
-
-add_filter( 'register_post_type_args', 'gutenberg_rename_reusable_block_cpt_to_pattern', 10, 2 );
-
-/**
- * Adds custom fields support to the wp_block post type so an unsynced option can be added.
- *
- * Note: This should be removed when the minimum required WP version is >= 6.3.
- *
- * @see https://github.com/WordPress/gutenberg/pull/51144
- *
- * @param array $args Register post type args.
- * @param string $post_type The post type string.
- *
- * @return array Register post type args.
- */
-function gutenberg_add_custom_fields_to_wp_block( $args, $post_type ) {
- if ( 'wp_block' === $post_type ) {
- array_push( $args['supports'], 'custom-fields' );
- }
-
- return $args;
-}
-add_filter( 'register_post_type_args', 'gutenberg_add_custom_fields_to_wp_block', 10, 2 );
-
-/**
- * Adds wp_pattern_sync_status meta fields to the wp_block post type so an unsynced option can be added.
- *
- * Note: This should be removed when the minimum required WP version is >= 6.3.
- *
- * @see https://github.com/WordPress/gutenberg/pull/51144
- *
- * @return void
- */
-function gutenberg_wp_block_register_post_meta() {
- $post_type = 'wp_block';
- register_post_meta(
- $post_type,
- 'wp_pattern_sync_status',
- array(
- 'auth_callback' => function () {
- return current_user_can( 'edit_posts' );
- },
- 'sanitize_callback' => 'sanitize_text_field',
- 'single' => true,
- 'type' => 'string',
- 'show_in_rest' => array(
- 'schema' => array(
- 'type' => 'string',
- 'enum' => array( 'partial', 'unsynced' ),
- ),
- ),
- )
- );
-}
-add_action( 'init', 'gutenberg_wp_block_register_post_meta' );
diff --git a/lib/compat/wordpress-6.3/class-gutenberg-classic-to-block-menu-converter.php b/lib/compat/wordpress-6.3/class-gutenberg-classic-to-block-menu-converter.php
deleted file mode 100644
index 8677f9abaee170..00000000000000
--- a/lib/compat/wordpress-6.3/class-gutenberg-classic-to-block-menu-converter.php
+++ /dev/null
@@ -1,123 +0,0 @@
-term_id, array( 'update_post_term_cache' => false ) );
-
- if ( empty( $menu_items ) ) {
- return array();
- }
-
- // Set up the $menu_item variables.
- // Adds the class property classes for the current context, if applicable.
- _wp_menu_item_classes_by_context( $menu_items );
-
- $menu_items_by_parent_id = static::group_by_parent_id( $menu_items );
-
- $first_menu_item = isset( $menu_items_by_parent_id[0] )
- ? $menu_items_by_parent_id[0]
- : array();
-
- $inner_blocks = static::to_blocks(
- $first_menu_item,
- $menu_items_by_parent_id
- );
-
- return serialize_blocks( $inner_blocks );
- }
-
- /**
- * Returns an array of menu items grouped by the id of the parent menu item.
- *
- * @param array $menu_items An array of menu items.
- * @return array
- */
- private static function group_by_parent_id( $menu_items ) {
- $menu_items_by_parent_id = array();
-
- foreach ( $menu_items as $menu_item ) {
- $menu_items_by_parent_id[ $menu_item->menu_item_parent ][] = $menu_item;
- }
-
- return $menu_items_by_parent_id;
- }
-
- /**
- * Turns menu item data into a nested array of parsed blocks
- *
- * @param array $menu_items An array of menu items that represent
- * an individual level of a menu.
- * @param array $menu_items_by_parent_id An array keyed by the id of the
- * parent menu where each element is an
- * array of menu items that belong to
- * that parent.
- * @return array An array of parsed block data.
- */
- private static function to_blocks( $menu_items, $menu_items_by_parent_id ) {
-
- if ( empty( $menu_items ) ) {
- return array();
- }
-
- $blocks = array();
-
- foreach ( $menu_items as $menu_item ) {
- $class_name = ! empty( $menu_item->classes ) ? implode( ' ', (array) $menu_item->classes ) : null;
- $id = ( null !== $menu_item->object_id && 'custom' !== $menu_item->object ) ? $menu_item->object_id : null;
- $opens_in_new_tab = null !== $menu_item->target && '_blank' === $menu_item->target;
- $rel = ( null !== $menu_item->xfn && '' !== $menu_item->xfn ) ? $menu_item->xfn : null;
- $kind = null !== $menu_item->type ? str_replace( '_', '-', $menu_item->type ) : 'custom';
-
- $block = array(
- 'blockName' => isset( $menu_items_by_parent_id[ $menu_item->ID ] ) ? 'core/navigation-submenu' : 'core/navigation-link',
- 'attrs' => array(
- 'className' => $class_name,
- 'description' => $menu_item->description,
- 'id' => $id,
- 'kind' => $kind,
- 'label' => $menu_item->title,
- 'opensInNewTab' => $opens_in_new_tab,
- 'rel' => $rel,
- 'title' => $menu_item->attr_title,
- 'type' => $menu_item->object,
- 'url' => $menu_item->url,
- ),
- );
-
- $block['innerBlocks'] = isset( $menu_items_by_parent_id[ $menu_item->ID ] )
- ? static::to_blocks( $menu_items_by_parent_id[ $menu_item->ID ], $menu_items_by_parent_id )
- : array();
- $block['innerContent'] = array_map( 'serialize_block', $block['innerBlocks'] );
-
- $blocks[] = $block;
- }
-
- return $blocks;
- }
-}
diff --git a/lib/compat/wordpress-6.3/class-gutenberg-navigation-fallback.php b/lib/compat/wordpress-6.3/class-gutenberg-navigation-fallback.php
deleted file mode 100644
index fcd70da61f57ed..00000000000000
--- a/lib/compat/wordpress-6.3/class-gutenberg-navigation-fallback.php
+++ /dev/null
@@ -1,237 +0,0 @@
- 'wp_navigation',
- 'no_found_rows' => true,
- 'update_post_meta_cache' => false,
- 'update_post_term_cache' => false,
- 'order' => 'DESC',
- 'orderby' => 'date',
- 'post_status' => 'publish',
- 'posts_per_page' => 1,
- );
-
- $navigation_post = new WP_Query( $parsed_args );
-
- if ( count( $navigation_post->posts ) > 0 ) {
- return $navigation_post->posts[0];
- }
-
- return null;
- }
-
- /**
- * Creates a Navigation Menu post from a Classic Menu.
- *
- * @return int|WP_Error The post ID of the default fallback menu or a WP_Error object.
- */
- private static function create_classic_menu_fallback() {
- // See if we have a classic menu.
- $classic_nav_menu = static::get_fallback_classic_menu();
-
- if ( ! $classic_nav_menu ) {
- return new WP_Error( 'no_classic_menus', __( 'No Classic Menus found.', 'gutenberg' ) );
- }
-
- // If there is a classic menu then convert it to blocks.
- $classic_nav_menu_blocks = Gutenberg_Classic_To_Block_Menu_Converter::convert( $classic_nav_menu );
-
- if ( empty( $classic_nav_menu_blocks ) ) {
- return new WP_Error( 'cannot_convert_classic_menu', __( 'Unable to convert Classic Menu to blocks.', 'gutenberg' ) );
- }
-
- // Create a new navigation menu from the classic menu.
- $classic_menu_fallback = wp_insert_post(
- array(
- 'post_content' => $classic_nav_menu_blocks,
- 'post_title' => $classic_nav_menu->name,
- 'post_name' => $classic_nav_menu->slug,
- 'post_status' => 'publish',
- 'post_type' => 'wp_navigation',
- ),
- true // So that we can check whether the result is an error.
- );
-
- return $classic_menu_fallback;
- }
-
- /**
- * Determine the most appropriate classic navigation menu to use as a fallback.
- *
- * @return WP_Term|null The most appropriate classic navigation menu to use as a fallback.
- */
- private static function get_fallback_classic_menu() {
- $classic_nav_menus = wp_get_nav_menus();
-
- if ( ! $classic_nav_menus || is_wp_error( $classic_nav_menus ) ) {
- return null;
- }
-
- $nav_menu = static::get_nav_menu_at_primary_location();
-
- if ( $nav_menu ) {
- return $nav_menu;
- }
-
- $nav_menu = static::get_nav_menu_with_primary_slug( $classic_nav_menus );
-
- if ( $nav_menu ) {
- return $nav_menu;
- }
-
- return static::get_most_recently_created_nav_menu( $classic_nav_menus );
- }
-
-
- /**
- * Sorts the classic menus and returns the most recently created one.
- *
- * @param WP_Term[] $classic_nav_menus Array of classic nav menu term objects.
- * @return WP_Term The most recently created classic nav menu.
- */
- private static function get_most_recently_created_nav_menu( $classic_nav_menus ) {
- usort(
- $classic_nav_menus,
- static function ( $a, $b ) {
- return $b->term_id - $a->term_id;
- }
- );
-
- return $classic_nav_menus[0];
- }
-
- /**
- * Returns the classic menu with the slug `primary` if it exists.
- *
- * @param WP_Term[] $classic_nav_menus Array of classic nav menu term objects.
- * @return WP_Term|null The classic nav menu with the slug `primary` or null.
- */
- private static function get_nav_menu_with_primary_slug( $classic_nav_menus ) {
- foreach ( $classic_nav_menus as $classic_nav_menu ) {
- if ( 'primary' === $classic_nav_menu->slug ) {
- return $classic_nav_menu;
- }
- }
-
- return null;
- }
-
-
- /**
- * Gets the classic menu assigned to the `primary` navigation menu location
- * if it exists.
- *
- * @return WP_Term|null The classic nav menu assigned to the `primary` location or null.
- */
- private static function get_nav_menu_at_primary_location() {
- $locations = get_nav_menu_locations();
-
- if ( isset( $locations['primary'] ) ) {
- $primary_menu = wp_get_nav_menu_object( $locations['primary'] );
-
- if ( $primary_menu ) {
- return $primary_menu;
- }
- }
-
- return null;
- }
-
- /**
- * Creates a default Navigation Block Menu fallback.
- *
- * @return int|WP_Error The post ID of the default fallback menu or a WP_Error object.
- */
- private static function create_default_fallback() {
-
- $default_blocks = static::get_default_fallback_blocks();
-
- // Create a new navigation menu from the fallback blocks.
- $default_fallback = wp_insert_post(
- array(
- 'post_content' => $default_blocks,
- 'post_title' => _x( 'Navigation', 'Title of a Navigation menu', 'gutenberg' ),
- 'post_name' => 'navigation',
- 'post_status' => 'publish',
- 'post_type' => 'wp_navigation',
- ),
- true // So that we can check whether the result is an error.
- );
-
- return $default_fallback;
- }
-
- /**
- * Gets the rendered markup for the default fallback blocks.
- *
- * @return string default blocks markup to use a the fallback.
- */
- private static function get_default_fallback_blocks() {
- $registry = WP_Block_Type_Registry::get_instance();
-
- // If `core/page-list` is not registered then use empty blocks.
- return $registry->is_registered( 'core/page-list' ) ? '' : '';
- }
-}
diff --git a/lib/compat/wordpress-6.3/class-gutenberg-rest-block-patterns-controller-6-3.php b/lib/compat/wordpress-6.3/class-gutenberg-rest-block-patterns-controller-6-3.php
deleted file mode 100644
index 0a5b026cded3b9..00000000000000
--- a/lib/compat/wordpress-6.3/class-gutenberg-rest-block-patterns-controller-6-3.php
+++ /dev/null
@@ -1,198 +0,0 @@
-get_fields_for_response( $request );
- $keys = array(
- 'name' => 'name',
- 'title' => 'title',
- 'description' => 'description',
- 'viewportWidth' => 'viewport_width',
- 'blockTypes' => 'block_types',
- 'postTypes' => 'post_types',
- 'categories' => 'categories',
- 'keywords' => 'keywords',
- 'content' => 'content',
- 'inserter' => 'inserter',
- 'templateTypes' => 'template_types',
- 'source' => 'source',
- );
- $data = array();
- foreach ( $keys as $item_key => $rest_key ) {
- if ( isset( $item[ $item_key ] ) && rest_is_field_included( $rest_key, $fields ) ) {
- $data[ $rest_key ] = $item[ $item_key ];
- }
- }
- $context = ! empty( $request['context'] ) ? $request['context'] : 'view';
- $data = $this->add_additional_fields_to_object( $data, $request );
- $data = $this->filter_response_by_context( $data, $context );
- return rest_ensure_response( $data );
- }
-
- /**
- * Retrieves the block pattern schema, conforming to JSON Schema.
- *
- * @since 6.0.0
- * @since 6.1.0 Added `post_types` property.
- * @since 6.3.0 Added `source` property.
- *
- * @return array Item schema data.
- */
- public function get_item_schema() {
- if ( $this->schema ) {
- return $this->add_additional_fields_schema( $this->schema );
- }
-
- $schema = array(
- '$schema' => 'http://json-schema.org/draft-04/schema#',
- 'title' => 'block-pattern',
- 'type' => 'object',
- 'properties' => array(
- 'name' => array(
- 'description' => __( 'The pattern name.', 'gutenberg' ),
- 'type' => 'string',
- 'readonly' => true,
- 'context' => array( 'view', 'edit', 'embed' ),
- ),
- 'title' => array(
- 'description' => __( 'The pattern title, in human readable format.', 'gutenberg' ),
- 'type' => 'string',
- 'readonly' => true,
- 'context' => array( 'view', 'edit', 'embed' ),
- ),
- 'description' => array(
- 'description' => __( 'The pattern detailed description.', 'gutenberg' ),
- 'type' => 'string',
- 'readonly' => true,
- 'context' => array( 'view', 'edit', 'embed' ),
- ),
- 'viewport_width' => array(
- 'description' => __( 'The pattern viewport width for inserter preview.', 'gutenberg' ),
- 'type' => 'number',
- 'readonly' => true,
- 'context' => array( 'view', 'edit', 'embed' ),
- ),
- 'block_types' => array(
- 'description' => __( 'Block types that the pattern is intended to be used with.', 'gutenberg' ),
- 'type' => 'array',
- 'readonly' => true,
- 'context' => array( 'view', 'edit', 'embed' ),
- ),
- 'post_types' => array(
- 'description' => __( 'An array of post types that the pattern is restricted to be used with.', 'gutenberg' ),
- 'type' => 'array',
- 'readonly' => true,
- 'context' => array( 'view', 'edit', 'embed' ),
- ),
- 'categories' => array(
- 'description' => __( 'The pattern category slugs.', 'gutenberg' ),
- 'type' => 'array',
- 'readonly' => true,
- 'context' => array( 'view', 'edit', 'embed' ),
- ),
- 'keywords' => array(
- 'description' => __( 'The pattern keywords.', 'gutenberg' ),
- 'type' => 'array',
- 'readonly' => true,
- 'context' => array( 'view', 'edit', 'embed' ),
- ),
- 'template_types' => array(
- 'description' => __( 'An array of template types where the pattern fits.', 'gutenberg' ),
- 'type' => 'array',
- 'readonly' => true,
- 'context' => array( 'view', 'edit', 'embed' ),
- ),
- 'content' => array(
- 'description' => __( 'The pattern content.', 'gutenberg' ),
- 'type' => 'string',
- 'readonly' => true,
- 'context' => array( 'view', 'edit', 'embed' ),
- ),
- 'inserter' => array(
- 'description' => __( 'Determines whether the pattern is visible in inserter.', 'gutenberg' ),
- 'type' => 'boolean',
- 'readonly' => true,
- 'context' => array( 'view', 'edit', 'embed' ),
- ),
- 'source' => array(
- 'description' => __( 'Where the pattern comes from e.g. core', 'gutenberg' ),
- 'type' => 'string',
- 'readonly' => true,
- 'context' => array( 'view', 'edit', 'embed' ),
- 'enum' => array(
- 'core',
- 'plugin',
- 'theme',
- 'pattern-directory/core',
- 'pattern-directory/theme',
- 'pattern-directory/featured',
- ),
- ),
- ),
- );
-
- $this->schema = $schema;
-
- return $this->add_additional_fields_schema( $this->schema );
- }
-
- /**
- * Retrieves all block patterns.
- *
- * @since 6.0.0
- * @since 6.2.0 Added migration for old core pattern categories to the new ones.
- *
- * @param WP_REST_Request $request Full details about the request.
- * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
- */
- public function get_items( $request ) {
- if ( ! $this->remote_patterns_loaded ) {
- // Load block patterns from w.org.
- gutenberg_load_remote_block_patterns(); // Patterns with the `core` keyword.
- gutenberg_load_remote_featured_patterns(); // Patterns in the `featured` category.
- gutenberg_register_remote_theme_patterns(); // Patterns requested by current theme.
-
- $this->remote_patterns_loaded = true;
- }
-
- $response = array();
- $patterns = WP_Block_Patterns_Registry::get_instance()->get_all_registered();
- foreach ( $patterns as $pattern ) {
- $migrated_pattern = $this->migrate_pattern_categories( $pattern );
- $prepared_pattern = $this->prepare_item_for_response( $migrated_pattern, $request );
- $response[] = $this->prepare_response_for_collection( $prepared_pattern );
- }
- return rest_ensure_response( $response );
- }
-}
diff --git a/lib/compat/wordpress-6.3/class-gutenberg-rest-blocks-controller.php b/lib/compat/wordpress-6.3/class-gutenberg-rest-blocks-controller.php
deleted file mode 100644
index 5279a2c3a829ec..00000000000000
--- a/lib/compat/wordpress-6.3/class-gutenberg-rest-blocks-controller.php
+++ /dev/null
@@ -1,51 +0,0 @@
-parent_post_type = 'wp_global_styles';
- $this->rest_base = 'revisions';
- $this->parent_base = 'global-styles';
- $this->namespace = 'wp/v2';
- }
-
- /**
- * Registers the controllers routes.
- *
- * @return void
- */
- public function register_routes() {
- register_rest_route(
- $this->namespace,
- '/' . $this->parent_base . '/(?P[\d]+)/' . $this->rest_base,
- array(
- 'args' => array(
- 'parent' => array(
- 'description' => __( 'The ID for the parent of the revision.', 'gutenberg' ),
- 'type' => 'integer',
- ),
- ),
- array(
- 'methods' => WP_REST_Server::READABLE,
- 'callback' => array( $this, 'get_items' ),
- 'permission_callback' => array( $this, 'get_item_permissions_check' ),
- 'args' => $this->get_collection_params(),
- ),
- 'schema' => array( $this, 'get_public_item_schema' ),
- )
- );
- }
-
- /**
- * Retrieves the query params for collections.
- *
- * Inherits from WP_REST_Controller::get_collection_params(),
- * also reflects changes to return value WP_REST_Revisions_Controller::get_collection_params().
- *
- * @since 6.3.0
- *
- * @return array Collection parameters.
- */
- public function get_collection_params() {
- $collection_params = parent::get_collection_params();
- $collection_params['context']['default'] = 'view';
- $collection_params['offset'] = array(
- 'description' => __( 'Offset the result set by a specific number of items.' ),
- 'type' => 'integer',
- );
- unset( $collection_params['search'] );
- unset( $collection_params['per_page']['default'] );
-
- return $collection_params;
- }
-
- /**
- * Returns decoded JSON from post content string,
- * or a 404 if not found.
- *
- * @since 6.3.0
- *
- * @param string $raw_json Encoded JSON from global styles custom post content.
- * @return Array|WP_Error
- */
- protected function get_decoded_global_styles_json( $raw_json ) {
- $decoded_json = json_decode( $raw_json, true );
-
- if ( is_array( $decoded_json ) && isset( $decoded_json['isGlobalStylesUserThemeJSON'] ) && true === $decoded_json['isGlobalStylesUserThemeJSON'] ) {
- return $decoded_json;
- }
-
- return new WP_Error(
- 'rest_global_styles_not_found',
- __( 'Cannot find user global styles revisions.' ),
- array( 'status' => 404 )
- );
- }
-
- /**
- * Returns revisions of the given global styles config custom post type.
- *
- * @since 6.3.0
- *
- * @param WP_REST_Request $request The request instance.
- *
- * @return WP_REST_Response|WP_Error
- */
- public function get_items( $request ) {
- $parent = $this->get_parent( $request['parent'] );
-
- if ( is_wp_error( $parent ) ) {
- return $parent;
- }
-
- $global_styles_config = $this->get_decoded_global_styles_json( $parent->post_content );
-
- if ( is_wp_error( $global_styles_config ) ) {
- return $global_styles_config;
- }
-
- if ( wp_revisions_enabled( $parent ) ) {
- $registered = $this->get_collection_params();
- $query_args = array(
- 'post_parent' => $parent->ID,
- 'post_type' => 'revision',
- 'post_status' => 'inherit',
- 'posts_per_page' => -1,
- 'orderby' => 'date ID',
- 'order' => 'DESC',
- );
-
- $parameter_mappings = array(
- 'offset' => 'offset',
- 'page' => 'paged',
- 'per_page' => 'posts_per_page',
- );
-
- foreach ( $parameter_mappings as $api_param => $wp_param ) {
- if ( isset( $registered[ $api_param ], $request[ $api_param ] ) ) {
- $query_args[ $wp_param ] = $request[ $api_param ];
- }
- }
-
- $revisions_query = new WP_Query();
- $revisions = $revisions_query->query( $query_args );
- $offset = isset( $query_args['offset'] ) ? (int) $query_args['offset'] : 0;
- $page = (int) $query_args['paged'];
- $total_revisions = $revisions_query->found_posts;
-
- if ( $total_revisions < 1 ) {
- // Out-of-bounds, run the query again without LIMIT for total count.
- unset( $query_args['paged'], $query_args['offset'] );
- $count_query = new WP_Query();
- $count_query->query( $query_args );
-
- $total_revisions = $count_query->found_posts;
- }
-
- if ( $revisions_query->query_vars['posts_per_page'] > 0 ) {
- $max_pages = ceil( $total_revisions / (int) $revisions_query->query_vars['posts_per_page'] );
- } else {
- $max_pages = $total_revisions > 0 ? 1 : 0;
- }
- if ( $total_revisions > 0 ) {
- if ( $offset >= $total_revisions ) {
- return new WP_Error(
- 'rest_revision_invalid_offset_number',
- __( 'The offset number requested is larger than or equal to the number of available revisions.', 'gutenberg' ),
- array( 'status' => 400 )
- );
- } elseif ( ! $offset && $page > $max_pages ) {
- return new WP_Error(
- 'rest_revision_invalid_page_number',
- __( 'The page number requested is larger than the number of pages available.', 'gutenberg' ),
- array( 'status' => 400 )
- );
- }
- }
- } else {
- $revisions = array();
- $total_revisions = 0;
- $max_pages = 0;
- $page = (int) $request['page'];
- }
-
- $response = array();
-
- foreach ( $revisions as $revision ) {
- $data = $this->prepare_item_for_response( $revision, $request );
- $response[] = $this->prepare_response_for_collection( $data );
- }
-
- $response = rest_ensure_response( $response );
-
- $response->header( 'X-WP-Total', (int) $total_revisions );
- $response->header( 'X-WP-TotalPages', (int) $max_pages );
-
- $request_params = $request->get_query_params();
- $base_path = rest_url( sprintf( '%s/%s/%d/%s', $this->namespace, $this->parent_base, $request['parent'], $this->rest_base ) );
- $base = add_query_arg( urlencode_deep( $request_params ), $base_path );
-
- if ( $page > 1 ) {
- $prev_page = $page - 1;
-
- if ( $prev_page > $max_pages ) {
- $prev_page = $max_pages;
- }
-
- $prev_link = add_query_arg( 'page', $prev_page, $base );
- $response->link_header( 'prev', $prev_link );
- }
- if ( $max_pages > $page ) {
- $next_page = $page + 1;
- $next_link = add_query_arg( 'page', $next_page, $base );
-
- $response->link_header( 'next', $next_link );
- }
-
- return $response;
- }
-
- /**
- * A direct copy of WP_REST_Revisions_Controller->prepare_date_response().
- * Checks the post_date_gmt or modified_gmt and prepare any post or
- * modified date for single post output.
- *
- * @since 6.3.0
- *
- * @param string $date_gmt GMT publication time.
- * @param string|null $date Optional. Local publication time. Default null.
- * @return string|null ISO8601/RFC3339 formatted datetime, otherwise null.
- */
- protected function prepare_date_response( $date_gmt, $date = null ) {
- if ( '0000-00-00 00:00:00' === $date_gmt ) {
- return null;
- }
-
- if ( isset( $date ) ) {
- return mysql_to_rfc3339( $date );
- }
-
- return mysql_to_rfc3339( $date_gmt );
- }
-
- /**
- * Prepares the revision for the REST response.
- *
- * @since 6.3.0
- *
- * @param WP_Post $post Post revision object.
- * @param WP_REST_Request $request Request object.
- * @return WP_REST_Response|WP_Error Response object.
- */
- public function prepare_item_for_response( $post, $request ) {
- $parent = $this->get_parent( $request['parent'] );
- $global_styles_config = $this->get_decoded_global_styles_json( $post->post_content );
-
- if ( is_wp_error( $global_styles_config ) ) {
- return $global_styles_config;
- }
-
- $fields = $this->get_fields_for_response( $request );
- $data = array();
-
- if ( ! empty( $global_styles_config['styles'] ) || ! empty( $global_styles_config['settings'] ) ) {
- $global_styles_config = ( new WP_Theme_JSON_Gutenberg( $global_styles_config, 'custom' ) )->get_raw_data();
- if ( rest_is_field_included( 'settings', $fields ) ) {
- $data['settings'] = ! empty( $global_styles_config['settings'] ) ? $global_styles_config['settings'] : new stdClass();
- }
- if ( rest_is_field_included( 'styles', $fields ) ) {
- $data['styles'] = ! empty( $global_styles_config['styles'] ) ? $global_styles_config['styles'] : new stdClass();
- }
- }
-
- if ( rest_is_field_included( 'author', $fields ) ) {
- $data['author'] = (int) $post->post_author;
- }
-
- if ( rest_is_field_included( 'date', $fields ) ) {
- $data['date'] = $this->prepare_date_response( $post->post_date_gmt, $post->post_date );
- }
-
- if ( rest_is_field_included( 'date_gmt', $fields ) ) {
- $data['date_gmt'] = $this->prepare_date_response( $post->post_date_gmt );
- }
-
- if ( rest_is_field_included( 'id', $fields ) ) {
- $data['id'] = (int) $post->ID;
- }
-
- if ( rest_is_field_included( 'modified', $fields ) ) {
- $data['modified'] = $this->prepare_date_response( $post->post_modified_gmt, $post->post_modified );
- }
-
- if ( rest_is_field_included( 'modified_gmt', $fields ) ) {
- $data['modified_gmt'] = $this->prepare_date_response( $post->post_modified_gmt );
- }
-
- if ( rest_is_field_included( 'parent', $fields ) ) {
- $data['parent'] = (int) $parent->ID;
- }
-
- $context = ! empty( $request['context'] ) ? $request['context'] : 'view';
- $data = $this->add_additional_fields_to_object( $data, $request );
- $data = $this->filter_response_by_context( $data, $context );
-
- return rest_ensure_response( $data );
- }
-
- /**
- * Retrieves the revision's schema, conforming to JSON Schema.
- *
- * @since 6.3.0
- *
- * @return array Item schema data.
- */
- public function get_item_schema() {
- if ( $this->schema ) {
- return $this->add_additional_fields_schema( $this->schema );
- }
-
- $schema = array(
- '$schema' => 'http://json-schema.org/draft-04/schema#',
- 'title' => "{$this->parent_post_type}-revision",
- 'type' => 'object',
- // Base properties for every Revision.
- 'properties' => array(
-
- /*
- * Adds settings and styles from the WP_REST_Revisions_Controller item fields.
- * Leaves out GUID as global styles shouldn't be accessible via URL.
- */
- 'author' => array(
- 'description' => __( 'The ID for the author of the revision.', 'gutenberg' ),
- 'type' => 'integer',
- 'context' => array( 'view', 'edit', 'embed' ),
- ),
- 'date' => array(
- 'description' => __( "The date the revision was published, in the site's timezone.", 'gutenberg' ),
- 'type' => 'string',
- 'format' => 'date-time',
- 'context' => array( 'view', 'edit', 'embed' ),
- ),
- 'date_gmt' => array(
- 'description' => __( 'The date the revision was published, as GMT.', 'gutenberg' ),
- 'type' => 'string',
- 'format' => 'date-time',
- 'context' => array( 'view', 'edit' ),
- ),
- 'id' => array(
- 'description' => __( 'Unique identifier for the revision.', 'gutenberg' ),
- 'type' => 'integer',
- 'context' => array( 'view', 'edit', 'embed' ),
- ),
- 'modified' => array(
- 'description' => __( "The date the revision was last modified, in the site's timezone.", 'gutenberg' ),
- 'type' => 'string',
- 'format' => 'date-time',
- 'context' => array( 'view', 'edit' ),
- ),
- 'modified_gmt' => array(
- 'description' => __( 'The date the revision was last modified, as GMT.', 'gutenberg' ),
- 'type' => 'string',
- 'format' => 'date-time',
- 'context' => array( 'view', 'edit' ),
- ),
- 'parent' => array(
- 'description' => __( 'The ID for the parent of the revision.', 'gutenberg' ),
- 'type' => 'integer',
- 'context' => array( 'view', 'edit', 'embed' ),
- ),
-
- // Adds settings and styles from the WP_REST_Global_Styles_Controller parent schema.
- 'styles' => array(
- 'description' => __( 'Global styles.', 'gutenberg' ),
- 'type' => array( 'object' ),
- 'context' => array( 'view', 'edit' ),
- ),
- 'settings' => array(
- 'description' => __( 'Global settings.', 'gutenberg' ),
- 'type' => array( 'object' ),
- 'context' => array( 'view', 'edit' ),
- ),
- ),
- );
-
- $this->schema = $schema;
-
- return $this->add_additional_fields_schema( $this->schema );
- }
-
- /**
- * Checks if a given request has access to read a single global style.
- *
- * @since 6.3.0
- *
- * @param WP_REST_Request $request Full details about the request.
- * @return true|WP_Error True if the request has read access, WP_Error object otherwise.
- */
- public function get_item_permissions_check( $request ) {
- $post = $this->get_parent( $request['parent'] );
- if ( is_wp_error( $post ) ) {
- return $post;
- }
-
- /*
- * The same check as WP_REST_Global_Styles_Controller->get_item_permissions_check.
- */
- if ( ! current_user_can( 'read_post', $post->ID ) ) {
- return new WP_Error(
- 'rest_cannot_view',
- __( 'Sorry, you are not allowed to view revisions for this global style.', 'gutenberg' ),
- array( 'status' => rest_authorization_required_code() )
- );
- }
-
- return true;
- }
-
- /**
- * Get the parent post, if the ID is valid. Copied from WP_REST_Revisions_Controller.
- *
- * @since 6.3.0
- *
- * @param int $parent_post_id Supplied ID.
- * @return WP_Post|WP_Error Post object if ID is valid, WP_Error otherwise.
- */
- protected function get_parent( $parent_post_id ) {
- $error = new WP_Error(
- 'rest_post_invalid_parent',
- __( 'Invalid post parent ID.', 'gutenberg' ),
- array( 'status' => 404 )
- );
-
- if ( (int) $parent_post_id <= 0 ) {
- return $error;
- }
-
- $parent_post = get_post( (int) $parent_post_id );
-
- if ( empty( $parent_post ) || empty( $parent_post->ID )
- || $this->parent_post_type !== $parent_post->post_type
- ) {
- return $error;
- }
-
- return $parent_post;
- }
-}
diff --git a/lib/compat/wordpress-6.3/class-gutenberg-rest-navigation-fallback-controller.php b/lib/compat/wordpress-6.3/class-gutenberg-rest-navigation-fallback-controller.php
deleted file mode 100644
index 2cac70f2ea1c34..00000000000000
--- a/lib/compat/wordpress-6.3/class-gutenberg-rest-navigation-fallback-controller.php
+++ /dev/null
@@ -1,178 +0,0 @@
-namespace = 'wp-block-editor/v1';
- $this->rest_base = 'navigation-fallback';
- $this->post_type = 'wp_navigation';
- }
-
- /**
- * Registers the controllers routes.
- *
- * @return void
- */
- public function register_routes() {
-
- // Lists a single nav item based on the given id or slug.
- register_rest_route(
- $this->namespace,
- '/' . $this->rest_base,
- array(
- array(
- 'methods' => WP_REST_Server::READABLE,
- 'callback' => array( $this, 'get_item' ),
- 'permission_callback' => array( $this, 'get_item_permissions_check' ),
- 'args' => $this->get_endpoint_args_for_item_schema( WP_REST_Server::READABLE ),
- ),
- 'schema' => array( $this, 'get_item_schema' ),
- )
- );
- }
-
- /**
- * Checks if a given request has access to read fallbacks.
- *
- * @param WP_REST_Request $request Full details about the request.
- * @return true|WP_Error True if the request has read access, WP_Error object otherwise.
- */
- public function get_item_permissions_check( $request ) {
-
- $post_type = get_post_type_object( $this->post_type );
-
- // Getting fallbacks requires creating and reading `wp_navigation` posts.
- if ( ! current_user_can( $post_type->cap->create_posts ) || ! current_user_can( 'edit_theme_options' ) || ! current_user_can( 'edit_posts' ) ) {
- return new WP_Error(
- 'rest_cannot_create',
- __( 'Sorry, you are not allowed to create Navigation Menus as this user.', 'gutenberg' ),
- array( 'status' => rest_authorization_required_code() )
- );
- }
-
- if ( 'edit' === $request['context'] && ! current_user_can( $post_type->cap->edit_posts ) ) {
- return new WP_Error(
- 'rest_forbidden_context',
- __( 'Sorry, you are not allowed to edit Navigation Menus as this user.', 'gutenberg' ),
- array( 'status' => rest_authorization_required_code() )
- );
- }
-
- return true;
- }
-
- /**
- * Gets the most appropriate fallback Navigation Menu.
- *
- * @param WP_REST_Request $request Full details about the request.
- *
- * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
- */
- public function get_item( $request ) {
- $post = Gutenberg_Navigation_Fallback::get_fallback();
-
- if ( empty( $post ) ) {
- return rest_ensure_response( new WP_Error( 'no_fallback_menu', __( 'No fallback menu found.', 'gutenberg' ), array( 'status' => 404 ) ) );
- }
-
- $response = $this->prepare_item_for_response( $post, $request );
-
- return $response;
- }
-
- /**
- * Retrieves the fallbacks' schema, conforming to JSON Schema.
- *
- * @return array Item schema data.
- */
- public function get_item_schema() {
- if ( $this->schema ) {
- return $this->add_additional_fields_schema( $this->schema );
- }
-
- $this->schema = array(
- '$schema' => 'http://json-schema.org/draft-04/schema#',
- 'title' => 'navigation-fallback',
- 'type' => 'object',
- 'properties' => array(
- 'id' => array(
- 'description' => __( 'The unique identifier for the Navigation Menu.', 'gutenberg' ),
- 'type' => 'integer',
- 'context' => array( 'view', 'edit', 'embed' ),
- 'readonly' => true,
- ),
- ),
- );
-
- return $this->add_additional_fields_schema( $this->schema );
- }
-
- /**
- * Matches the post data to the schema we want.
- *
- * @param WP_Post $item The wp_navigation Post object whose response is being prepared.
- * @param WP_REST_Request $request Request object.
- * @return WP_REST_Response $response The response data.
- */
- public function prepare_item_for_response( $item, $request ) {
- $data = array();
-
- $fields = $this->get_fields_for_response( $request );
-
- if ( rest_is_field_included( 'id', $fields ) ) {
- $data['id'] = (int) $item->ID;
- }
-
- $context = ! empty( $request['context'] ) ? $request['context'] : 'view';
- $data = $this->add_additional_fields_to_object( $data, $request );
- $data = $this->filter_response_by_context( $data, $context );
-
- $response = rest_ensure_response( $data );
-
- if ( rest_is_field_included( '_links', $fields ) || rest_is_field_included( '_embedded', $fields ) ) {
- $links = $this->prepare_links( $item );
- $response->add_links( $links );
- }
-
- return $response;
- }
-
- /**
- * Prepares the links for the request.
- *
- * @param WP_Post $post the Navigation Menu post object.
- * @return array Links for the given request.
- */
- private function prepare_links( $post ) {
- return array(
- 'self' => array(
- 'href' => rest_url( rest_get_route_for_post( $post->ID ) ),
- 'embeddable' => true,
- ),
- );
- }
-}
diff --git a/lib/compat/wordpress-6.3/class-gutenberg-rest-templates-controller-6-3.php b/lib/compat/wordpress-6.3/class-gutenberg-rest-templates-controller-6-3.php
deleted file mode 100644
index a92cbd1e2c1716..00000000000000
--- a/lib/compat/wordpress-6.3/class-gutenberg-rest-templates-controller-6-3.php
+++ /dev/null
@@ -1,68 +0,0 @@
-namespace,
- '/' . $this->rest_base . '/lookup',
- array(
- array(
- 'methods' => WP_REST_Server::READABLE,
- 'callback' => array( $this, 'get_template_fallback' ),
- 'permission_callback' => array( $this, 'get_item_permissions_check' ),
- 'args' => array(
- 'slug' => array(
- 'description' => __( 'The slug of the template to get the fallback for', 'gutenberg' ),
- 'type' => 'string',
- 'required' => true,
- ),
- 'is_custom' => array(
- 'description' => __( 'Indicates if a template is custom or part of the template hierarchy', 'gutenberg' ),
- 'type' => 'boolean',
- ),
- 'template_prefix' => array(
- 'description' => __( 'The template prefix for the created template. This is used to extract the main template type ex. in `taxonomy-books` we extract the `taxonomy`', 'gutenberg' ),
- 'type' => 'string',
- ),
- ),
- ),
- )
- );
- parent::register_routes();
- // Get fallback template content.
- }
-
- /**
- * Returns the fallback template for a given slug.
- *
- * @param WP_REST_Request $request The request instance.
- *
- * @return WP_REST_Response|WP_Error
- */
- public function get_template_fallback( $request ) {
- $hierarchy = get_template_hierarchy( $request['slug'], $request['is_custom'], $request['template_prefix'] );
- $fallback_template = null;
- do {
- $fallback_template = resolve_block_template( $request['slug'], $hierarchy, '' );
- array_shift( $hierarchy );
- } while ( ! empty( $hierarchy ) && empty( $fallback_template->content ) );
- $response = $this->prepare_item_for_response( $fallback_template, $request );
- return rest_ensure_response( $response );
- }
-}
diff --git a/lib/compat/wordpress-6.3/footnotes.php b/lib/compat/wordpress-6.3/footnotes.php
deleted file mode 100644
index 6225b280e1b6c2..00000000000000
--- a/lib/compat/wordpress-6.3/footnotes.php
+++ /dev/null
@@ -1,32 +0,0 @@
-\s*\d+ \s*_',
- '',
- $content
- );
-}
-
-add_filter( 'the_content', 'gutenberg_trim_footnotes' );
diff --git a/lib/compat/wordpress-6.3/get-global-styles-and-settings.php b/lib/compat/wordpress-6.3/get-global-styles-and-settings.php
deleted file mode 100644
index 009fa6253f79d4..00000000000000
--- a/lib/compat/wordpress-6.3/get-global-styles-and-settings.php
+++ /dev/null
@@ -1,114 +0,0 @@
-selectors );
-
- // Root Selector.
-
- // Calculated before returning as it can be used as fallback for
- // feature selectors later on.
- $root_selector = null;
-
- if ( $has_selectors && isset( $block_type->selectors['root'] ) ) {
- // Use the selectors API if available.
- $root_selector = $block_type->selectors['root'];
- } elseif ( isset( $block_type->supports['__experimentalSelector'] ) && is_string( $block_type->supports['__experimentalSelector'] ) ) {
- // Use the old experimental selector supports property if set.
- $root_selector = $block_type->supports['__experimentalSelector'];
- } else {
- // If no root selector found, generate default block class selector.
- $block_name = str_replace( '/', '-', str_replace( 'core/', '', $block_type->name ) );
- $root_selector = ".wp-block-{$block_name}";
- }
-
- // Return selector if it's the root target we are looking for.
- if ( 'root' === $target ) {
- return $root_selector;
- }
-
- // If target is not `root` we have a feature or subfeature as the target.
- // If the target is a string convert to an array.
- if ( is_string( $target ) ) {
- $target = explode( '.', $target );
- }
-
- // Feature Selectors ( May fallback to root selector ).
- if ( 1 === count( $target ) ) {
- $fallback_selector = $fallback ? $root_selector : null;
-
- // Prefer the selectors API if available.
- if ( $has_selectors ) {
- // Look for selector under `feature.root`.
- $path = array_merge( $target, array( 'root' ) );
- $feature_selector = _wp_array_get( $block_type->selectors, $path, null );
-
- if ( $feature_selector ) {
- return $feature_selector;
- }
-
- // Check if feature selector is set via shorthand.
- $feature_selector = _wp_array_get( $block_type->selectors, $target, null );
-
- return is_string( $feature_selector ) ? $feature_selector : $fallback_selector;
- }
-
- // Try getting old experimental supports selector value.
- $path = array_merge( $target, array( '__experimentalSelector' ) );
- $feature_selector = _wp_array_get( $block_type->supports, $path, null );
-
- // Nothing to work with, provide fallback or null.
- if ( null === $feature_selector ) {
- return $fallback_selector;
- }
-
- // Scope the feature selector by the block's root selector.
- return WP_Theme_JSON_Gutenberg::scope_selector( $root_selector, $feature_selector );
- }
-
- // Subfeature selector
- // This may fallback either to parent feature or root selector.
- $subfeature_selector = null;
-
- // Use selectors API if available.
- if ( $has_selectors ) {
- $subfeature_selector = _wp_array_get( $block_type->selectors, $target, null );
- }
-
- // Only return if we have a subfeature selector.
- if ( $subfeature_selector ) {
- return $subfeature_selector;
- }
-
- // To this point we don't have a subfeature selector. If a fallback
- // has been requested, remove subfeature from target path and return
- // results of a call for the parent feature's selector.
- if ( $fallback ) {
- return wp_get_block_css_selector( $block_type, $target[0], $fallback );
- }
-
- // We tried...
- return null;
- }
-}
diff --git a/lib/compat/wordpress-6.3/kses.php b/lib/compat/wordpress-6.3/kses.php
deleted file mode 100644
index b0b7356d2dac1c..00000000000000
--- a/lib/compat/wordpress-6.3/kses.php
+++ /dev/null
@@ -1,29 +0,0 @@
-post_type || 'wp_template_part' === $post->post_type ) {
- $post_type_object = get_post_type_object( $post->post_type );
- $slug = urlencode( get_stylesheet() . '//' . $post->post_name );
- $link = admin_url( sprintf( $post_type_object->_edit_link, $slug ) );
- }
-
- return $link;
-}
-
-add_filter( 'get_edit_post_link', 'gutenberg_update_get_edit_post_link', 10, 2 );
-
-
-
-/**
- * Modifies the edit link for the `wp_navigation` custom post type.
- *
- * This has not been backported to Core.
- *
- * @param string $link The edit link.
- * @param int $post_id Post ID.
- * @return string|null The edit post link for the given post. Null if the post type does not exist
- * or does not allow an editing UI.
- */
-function gutenberg_update_navigation_get_edit_post_link( $link, $post_id ) {
- $post = get_post( $post_id );
-
- if ( 'wp_navigation' === $post->post_type ) {
- $post_type_object = get_post_type_object( $post->post_type );
- $id = $post->ID;
- $link = admin_url( sprintf( $post_type_object->_edit_link, $id ) );
- }
-
- return $link;
-}
-add_filter( 'get_edit_post_link', 'gutenberg_update_navigation_get_edit_post_link', 10, 2 );
diff --git a/lib/compat/wordpress-6.3/navigation-block-preloading.php b/lib/compat/wordpress-6.3/navigation-block-preloading.php
deleted file mode 100644
index 22b4a97526793e..00000000000000
--- a/lib/compat/wordpress-6.3/navigation-block-preloading.php
+++ /dev/null
@@ -1,48 +0,0 @@
-name ) && 'core/edit-site' !== $context->name ) {
- return $preload_paths;
- }
-
- $navigation_rest_route = rest_get_route_for_post_type_items(
- 'wp_navigation'
- );
-
- // Preload the OPTIONS request for all Navigation posts request.
- $preload_paths[] = array( $navigation_rest_route, 'OPTIONS' );
-
- // Preload request for all menus in Browse Mode sidebar "Navigation" section.
- $preload_paths[] = array(
- add_query_arg(
- array(
- 'context' => 'edit',
- 'per_page' => 100,
- 'order' => 'desc',
- 'orderby' => 'date',
- 'status[0]' => 'publish',
- 'status[1]' => 'draft',
- ),
- $navigation_rest_route
- ),
- 'GET',
- );
-
- return $preload_paths;
-}
-add_filter( 'block_editor_rest_api_preload_paths', 'gutenberg_preload_navigation_posts', 10, 2 );
diff --git a/lib/compat/wordpress-6.3/navigation-fallback.php b/lib/compat/wordpress-6.3/navigation-fallback.php
deleted file mode 100644
index 5cc84f4a1c848c..00000000000000
--- a/lib/compat/wordpress-6.3/navigation-fallback.php
+++ /dev/null
@@ -1,54 +0,0 @@
- $post_type,
- 'postId' => '%s',
- 'canvas' => 'edit',
- )
- );
- $args['_edit_link'] = $template_edit_link;
- }
-
- if ( in_array( $post_type, array( 'wp_global_styles' ), true ) ) {
- $args['_edit_link'] = '/site-editor.php?canvas=edit';
- }
-
- if ( 'wp_navigation' === $post_type ) {
- $navigation_edit_link = 'site-editor.php?' . build_query(
- array(
- 'postId' => '%s',
- 'postType' => 'wp_navigation',
- 'canvas' => 'edit',
- )
- );
- $args['_edit_link'] = $navigation_edit_link;
- }
-
- return $args;
-}
-add_filter( 'register_post_type_args', 'gutenberg_update_templates_template_parts_rest_controller', 10, 2 );
-
-if ( ! function_exists( 'add_modified_wp_template_schema' ) ) {
- /**
- * Add the `modified` value to the `wp_template` schema.
- *
- * @since 6.3.0 Added 'modified' property and response value.
- */
- function add_modified_wp_template_schema() {
- register_rest_field(
- array( 'wp_template', 'wp_template_part' ),
- 'modified',
- array(
- 'schema' => array(
- 'description' => __( "The date the template was last modified, in the site's timezone.", 'gutenberg' ),
- 'type' => 'string',
- 'format' => 'date-time',
- 'context' => array( 'view', 'edit' ),
- 'readonly' => true,
- ),
- 'get_callback' => function ( $template_object ) {
- if ( ! empty( $template_object['wp_id'] ) ) {
- $post = get_post( $template_object['wp_id'] );
- if ( $post && isset( $post->post_modified ) ) {
- return mysql_to_rfc3339( $post->post_modified );
- }
- }
- return null;
- },
- )
- );
- }
-}
-add_filter( 'rest_api_init', 'add_modified_wp_template_schema' );
-
-/**
- * Registers the Navigation Fallbacks REST API routes.
- */
-function gutenberg_register_rest_navigation_fallbacks() {
- $editor_settings = new Gutenberg_REST_Navigation_Fallback_Controller();
- $editor_settings->register_routes();
-}
-add_action( 'rest_api_init', 'gutenberg_register_rest_navigation_fallbacks' );
-
-/**
- * Add extra collection params to themes requests.
- *
- * @param array $query_params JSON Schema-formatted collection parameters.
- * @return array Updated parameters.
- */
-function gutenberg_themes_collection_params_6_3( $query_params ) {
- $query_params['is_block_theme'] = array(
- 'description' => __( 'Whether the theme is a block-based theme.' ),
- 'type' => 'boolean',
- 'readonly' => true,
- );
- return $query_params;
-}
-add_filter( 'rest_themes_collection_params', 'gutenberg_themes_collection_params_6_3' );
-
-/**
- * Updates REST API response for the themes and adds the `is_block_theme` flag.
- *
- * @param WP_REST_Response $response The response object.
- * @param WP_Theme $theme Theme object used to create response.
- * @return WP_REST_Response $response Updated response object.
- */
-function gutenberg_modify_rest_themes_response( $response, $theme ) {
- $response->data['is_block_theme'] = $theme->is_block_theme();
- return $response;
-}
-add_filter( 'rest_prepare_theme', 'gutenberg_modify_rest_themes_response', 10, 2 );
diff --git a/lib/compat/wordpress-6.3/script-loader.php b/lib/compat/wordpress-6.3/script-loader.php
deleted file mode 100644
index c8de16efd06875..00000000000000
--- a/lib/compat/wordpress-6.3/script-loader.php
+++ /dev/null
@@ -1,14 +0,0 @@
-errors() ) ) {
- if ( current_filter() === 'template' ) {
- $theme_path = $wp_theme->get_template();
- } else {
- $theme_path = $wp_theme->get_stylesheet();
- }
-
- return sanitize_text_field( $theme_path );
- }
-
- return $current_stylesheet;
-}
-
-/**
- * Adds a middleware to the REST API to set the theme for the preview.
- */
-function gutenberg_attach_theme_preview_middleware() {
- // Don't allow non-admins to preview themes.
- if ( ! current_user_can( 'switch_themes' ) ) {
- return;
- }
-
- wp_add_inline_script(
- 'wp-api-fetch',
- sprintf(
- 'wp.apiFetch.use( wp.apiFetch.createThemePreviewMiddleware( %s ) );',
- wp_json_encode( sanitize_text_field( $_GET['wp_theme_preview'] ) )
- ),
- 'after'
- );
-}
-
-if ( ! function_exists( 'add_live_preview_button' ) ) {
- /**
- * Temporary function to add a live preview button to block themes.
- * Remove when https://core.trac.wordpress.org/ticket/58190 lands.
- */
- function add_live_preview_button() {
- global $pagenow;
- if ( 'themes.php' === $pagenow ) {
- ?>
-
-
-
- next_tag( array( 'class' => 'wp-group-block' ) ) ) {
+ * if ( $tags->next_tag( array( 'class_name' => 'wp-group-block' ) ) ) {
* $tags->set_attribute( 'title', 'This groups the contained content.' );
* $tags->remove_attribute( 'data-test-id' );
* }
@@ -2031,8 +2031,8 @@ public function set_attribute( $name, $value ) {
*
* @see https://html.spec.whatwg.org/#attributes-2
*
- * @TODO as the only regex pattern maybe we should take it out? are
- * Unicode patterns available broadly in Core?
+ * @todo As the only regex pattern maybe we should take it out?
+ * Are Unicode patterns available broadly in Core?
*/
if ( preg_match(
'~[' .
diff --git a/lib/compat/wordpress-6.4/html-api/class-wp-html-processor.php b/lib/compat/wordpress-6.4/html-api/class-wp-html-processor.php
index e53e64c80e2e02..d1c8b9e82c708a 100644
--- a/lib/compat/wordpress-6.4/html-api/class-wp-html-processor.php
+++ b/lib/compat/wordpress-6.4/html-api/class-wp-html-processor.php
@@ -103,12 +103,16 @@
*
* The following list specifies the HTML tags that _are_ supported:
*
+ * - Containers: ADDRESS, BLOCKQUOTE, DETAILS, DIALOG, DIV, FOOTER, HEADER, MAIN, MENU, SPAN, SUMMARY.
+ * - Form elements: BUTTON, FIELDSET, SEARCH.
+ * - Formatting elements: B, BIG, CODE, EM, FONT, I, SMALL, STRIKE, STRONG, TT, U.
+ * - Heading elements: HGROUP.
* - Links: A.
- * - The formatting elements: B, BIG, CODE, EM, FONT, I, SMALL, STRIKE, STRONG, TT, U.
- * - Containers: DIV, FIGCAPTION, FIGURE, SPAN.
- * - Form elements: BUTTON.
+ * - Lists: DL.
+ * - Media elements: FIGCAPTION, FIGURE, IMG.
* - Paragraph: P.
- * - Void elements: IMG.
+ * - Sectioning elements: ARTICLE, ASIDE, NAV, SECTION
+ * - Deprecated elements: CENTER, DIR
*
* ### Supported markup
*
@@ -346,7 +350,7 @@ public function get_last_error() {
/**
* Finds the next tag matching the $query.
*
- * @TODO: Support matching the class name and tag name.
+ * @todo Support matching the class name and tag name.
*
* @since 6.4.0
*
@@ -555,9 +559,9 @@ public function step( $node_to_process = self::PROCESS_NEXT_NODE ) {
* Breadcrumbs start at the outermost parent and descend toward the matched element.
* They always include the entire path from the root HTML node to the matched element.
*
- * @TODO: It could be more efficient to expose a generator-based version of this function
- * to avoid creating the array copy on tag iteration. If this is done, it would likely
- * be more useful to walk up the stack when yielding instead of starting at the top.
+ * @todo It could be more efficient to expose a generator-based version of this function
+ * to avoid creating the array copy on tag iteration. If this is done, it would likely
+ * be more useful to walk up the stack when yielding instead of starting at the top.
*
* Example
*
@@ -625,11 +629,29 @@ private function step_in_body() {
* > "fieldset", "figcaption", "figure", "footer", "header", "hgroup",
* > "main", "menu", "nav", "ol", "p", "search", "section", "summary", "ul"
*/
+ case '+ADDRESS':
+ case '+ARTICLE':
+ case '+ASIDE':
case '+BLOCKQUOTE':
+ case '+CENTER':
+ case '+DETAILS':
+ case '+DIALOG':
+ case '+DIR':
case '+DIV':
+ case '+DL':
+ case '+FIELDSET':
case '+FIGCAPTION':
case '+FIGURE':
+ case '+FOOTER':
+ case '+HEADER':
+ case '+HGROUP':
+ case '+MAIN':
+ case '+MENU':
+ case '+NAV':
case '+P':
+ case '+SEARCH':
+ case '+SECTION':
+ case '+SUMMARY':
if ( $this->state->stack_of_open_elements->has_p_in_button_scope() ) {
$this->close_a_p_element();
}
@@ -643,11 +665,29 @@ private function step_in_body() {
* > "figcaption", "figure", "footer", "header", "hgroup", "listing", "main",
* > "menu", "nav", "ol", "pre", "search", "section", "summary", "ul"
*/
+ case '-ADDRESS':
+ case '-ARTICLE':
+ case '-ASIDE':
case '-BLOCKQUOTE':
case '-BUTTON':
+ case '-CENTER':
+ case '-DETAILS':
+ case '-DIALOG':
+ case '-DIR':
case '-DIV':
+ case '-DL':
+ case '-FIELDSET':
case '-FIGCAPTION':
case '-FIGURE':
+ case '-FOOTER':
+ case '-HEADER':
+ case '-HGROUP':
+ case '-MAIN':
+ case '-MENU':
+ case '-NAV':
+ case '-SEARCH':
+ case '-SECTION':
+ case '-SUMMARY':
if ( ! $this->state->stack_of_open_elements->has_element_in_scope( $tag_name ) ) {
// @TODO: Report parse error.
// Ignore the token.
diff --git a/lib/compat/wordpress-6.5/class-wp-navigation-block-renderer.php b/lib/compat/wordpress-6.5/class-wp-navigation-block-renderer.php
index e2eb4e10414fe8..9c2314ebe6890c 100644
--- a/lib/compat/wordpress-6.5/class-wp-navigation-block-renderer.php
+++ b/lib/compat/wordpress-6.5/class-wp-navigation-block-renderer.php
@@ -429,25 +429,25 @@ private static function get_responsive_container_markup( $attributes, $inner_blo
$close_button_directives = '';
if ( $should_load_view_script ) {
$open_button_directives = '
- data-wp-on--click="actions.core.navigation.openMenuOnClick"
- data-wp-on--keydown="actions.core.navigation.handleMenuKeydown"
+ data-wp-on--click="actions.openMenuOnClick"
+ data-wp-on--keydown="actions.handleMenuKeydown"
';
$responsive_container_directives = '
- data-wp-class--has-modal-open="selectors.core.navigation.isMenuOpen"
- data-wp-class--is-menu-open="selectors.core.navigation.isMenuOpen"
- data-wp-effect="effects.core.navigation.initMenu"
- data-wp-on--keydown="actions.core.navigation.handleMenuKeydown"
- data-wp-on--focusout="actions.core.navigation.handleMenuFocusout"
+ data-wp-class--has-modal-open="state.isMenuOpen"
+ data-wp-class--is-menu-open="state.isMenuOpen"
+ data-wp-watch="callbacks.initMenu"
+ data-wp-on--keydown="actions.handleMenuKeydown"
+ data-wp-on--focusout="actions.handleMenuFocusout"
tabindex="-1"
';
$responsive_dialog_directives = '
- data-wp-bind--aria-modal="selectors.core.navigation.ariaModal"
- data-wp-bind--aria-label="selectors.core.navigation.ariaLabel"
- data-wp-bind--role="selectors.core.navigation.roleAttribute"
- data-wp-effect="effects.core.navigation.focusFirstElement"
+ data-wp-bind--aria-modal="state.ariaModal"
+ data-wp-bind--aria-label="state.ariaLabel"
+ data-wp-bind--role="state.roleAttribute"
+ data-wp-watch="callbacks.focusFirstElement"
';
$close_button_directives = '
- data-wp-on--click="actions.core.navigation.closeMenuOnClick"
+ data-wp-on--click="actions.closeMenuOnClick"
';
}
@@ -521,19 +521,15 @@ private static function get_nav_element_directives( $should_load_view_script ) {
// When adding to this array be mindful of security concerns.
$nav_element_context = wp_json_encode(
array(
- 'core' => array(
- 'navigation' => array(
- 'overlayOpenedBy' => array(),
- 'type' => 'overlay',
- 'roleAttribute' => '',
- 'ariaLabel' => __( 'Menu' ),
- ),
- ),
+ 'overlayOpenedBy' => array(),
+ 'type' => 'overlay',
+ 'roleAttribute' => '',
+ 'ariaLabel' => __( 'Menu' ),
),
JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_AMP
);
return '
- data-wp-interactive
+ data-wp-interactive=\'{"namespace":"core/navigation"}\'
data-wp-context=\'' . $nav_element_context . '\'
';
}
@@ -547,20 +543,28 @@ private static function get_nav_element_directives( $should_load_view_script ) {
*/
private static function handle_view_script_loading( $attributes, $block, $inner_blocks ) {
$should_load_view_script = static::should_load_view_script( $attributes, $inner_blocks );
+ $is_gutenberg_plugin = defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN;
+ $view_js_file = 'wp-block-navigation-view';
+ $script_handles = $block->block_type->view_script_handles;
- $view_js_file = 'wp-block-navigation-view';
-
- // If the script already exists, there is no point in removing it from viewScript.
- if ( ! wp_script_is( $view_js_file ) ) {
- $script_handles = $block->block_type->view_script_handles;
-
- // If the script is not needed, and it is still in the `view_script_handles`, remove it.
- if ( ! $should_load_view_script && in_array( $view_js_file, $script_handles, true ) ) {
- $block->block_type->view_script_handles = array_diff( $script_handles, array( $view_js_file ) );
+ if ( $is_gutenberg_plugin ) {
+ if ( $should_load_view_script ) {
+ gutenberg_enqueue_module( '@wordpress/block-library/navigation-block' );
}
- // If the script is needed, but it was previously removed, add it again.
- if ( $should_load_view_script && ! in_array( $view_js_file, $script_handles, true ) ) {
- $block->block_type->view_script_handles = array_merge( $script_handles, array( $view_js_file ) );
+ // Remove the view script because we are using the module.
+ $block->block_type->view_script_handles = array_diff( $script_handles, array( $view_js_file ) );
+ } else {
+ // If the script already exists, there is no point in removing it from viewScript.
+ if ( ! wp_script_is( $view_js_file ) ) {
+
+ // If the script is not needed, and it is still in the `view_script_handles`, remove it.
+ if ( ! $should_load_view_script && in_array( $view_js_file, $script_handles, true ) ) {
+ $block->block_type->view_script_handles = array_diff( $script_handles, array( $view_js_file ) );
+ }
+ // If the script is needed, but it was previously removed, add it again.
+ if ( $should_load_view_script && ! in_array( $view_js_file, $script_handles, true ) ) {
+ $block->block_type->view_script_handles = array_merge( $script_handles, array( $view_js_file ) );
+ }
}
}
}
diff --git a/lib/compat/wordpress-6.5/rest-api.php b/lib/compat/wordpress-6.5/rest-api.php
index dd372eff7943b7..3b82815c41e420 100644
--- a/lib/compat/wordpress-6.5/rest-api.php
+++ b/lib/compat/wordpress-6.5/rest-api.php
@@ -19,3 +19,124 @@ function gutenberg_register_global_styles_revisions_endpoints() {
}
add_action( 'rest_api_init', 'gutenberg_register_global_styles_revisions_endpoints' );
+
+/**
+ * Registers additional fields for wp_template and wp_template_part rest api.
+ *
+ * @access private
+ * @internal
+ *
+ * @param array $template_object Template object.
+ * @return string Original source of the template one of theme, plugin, site, or user.
+ */
+function _gutenberg_get_wp_templates_original_source_field( $template_object ) {
+ if ( 'wp_template' === $template_object['type'] || 'wp_template_part' === $template_object['type'] ) {
+ // Added by theme.
+ // Template originally provided by a theme, but customized by a user.
+ // Templates originally didn't have the 'origin' field so identify
+ // older customized templates by checking for no origin and a 'theme'
+ // or 'custom' source.
+ if ( $template_object['has_theme_file'] &&
+ ( 'theme' === $template_object['origin'] || (
+ empty( $template_object['origin'] ) && in_array(
+ $template_object['source'],
+ array(
+ 'theme',
+ 'custom',
+ ),
+ true
+ ) )
+ )
+ ) {
+ return 'theme';
+ }
+
+ // Added by plugin.
+ if ( $template_object['has_theme_file'] && 'plugin' === $template_object['origin'] ) {
+ return 'plugin';
+ }
+
+ // Added by site.
+ // Template was created from scratch, but has no author. Author support
+ // was only added to templates in WordPress 5.9. Fallback to showing the
+ // site logo and title.
+ if ( empty( $template_object['has_theme_file'] ) && 'custom' === $template_object['source'] && empty( $template_object['author'] ) ) {
+ return 'site';
+ }
+ }
+
+ // Added by user.
+ return 'user';
+}
+
+/**
+ * Registers additional fields for wp_template and wp_template_part rest api.
+ *
+ * @access private
+ * @internal
+ *
+ * @param array $template_object Template object.
+ * @return string Human readable text for the author.
+ */
+function _gutenberg_get_wp_templates_author_text_field( $template_object ) {
+ $original_source = _gutenberg_get_wp_templates_original_source_field( $template_object );
+ switch ( $original_source ) {
+ case 'theme':
+ $theme_name = wp_get_theme( $template_object['theme'] )->get( 'Name' );
+ return empty( $theme_name ) ? $template_object['theme'] : $theme_name;
+ case 'plugin':
+ $plugins = get_plugins();
+ $plugin = $plugins[ plugin_basename( sanitize_text_field( $template_object['theme'] . '.php' ) ) ];
+ return empty( $plugin['Name'] ) ? $template_object['theme'] : $plugin['Name'];
+ case 'site':
+ return get_bloginfo( 'name' );
+ case 'user':
+ return get_user_by( 'id', $template_object['author'] )->get( 'display_name' );
+ }
+}
+
+/**
+ * Registers additional fields for wp_template and wp_template_part rest api.
+ *
+ * @access private
+ * @internal
+ */
+function _gutenberg_register_wp_templates_additional_fields() {
+ register_rest_field(
+ array( 'wp_template', 'wp_template_part' ),
+ 'author_text',
+ array(
+ 'get_callback' => '_gutenberg_get_wp_templates_author_text_field',
+ 'update_callback' => null,
+ 'schema' => array(
+ 'type' => 'string',
+ 'description' => __( 'Human readable text for the author.', 'gutenberg' ),
+ 'readonly' => true,
+ 'context' => array( 'view', 'edit', 'embed' ),
+ ),
+ )
+ );
+
+ register_rest_field(
+ array( 'wp_template', 'wp_template_part' ),
+ 'original_source',
+ array(
+ 'get_callback' => '_gutenberg_get_wp_templates_original_source_field',
+ 'update_callback' => null,
+ 'schema' => array(
+ 'description' => __( 'Where the template originally comes from e.g. \'theme\'', 'gutenberg' ),
+ 'type' => 'string',
+ 'readonly' => true,
+ 'context' => array( 'view', 'edit', 'embed' ),
+ 'enum' => array(
+ 'theme',
+ 'plugin',
+ 'site',
+ 'user',
+ ),
+ ),
+ )
+ );
+}
+
+add_action( 'rest_api_init', '_gutenberg_register_wp_templates_additional_fields' );
diff --git a/lib/experimental/blocks.php b/lib/experimental/blocks.php
index f9f2412ae51205..88e46b478389d2 100644
--- a/lib/experimental/blocks.php
+++ b/lib/experimental/blocks.php
@@ -82,7 +82,10 @@ function wp_enqueue_block_view_script( $block_name, $args ) {
$gutenberg_experiments = get_option( 'gutenberg-experiments' );
-if ( $gutenberg_experiments && array_key_exists( 'gutenberg-connections', $gutenberg_experiments ) ) {
+if ( $gutenberg_experiments && (
+ array_key_exists( 'gutenberg-connections', $gutenberg_experiments ) ||
+ array_key_exists( 'gutenberg-pattern-partial-syncing', $gutenberg_experiments )
+) ) {
/**
* Renders the block meta attributes.
*
@@ -132,9 +135,8 @@ function gutenberg_render_block_connections( $block_content, $block, $block_inst
continue;
}
- // If the source value is not "meta_fields", skip it because the only supported
- // connection source is meta (custom fields) for now.
- if ( 'meta_fields' !== $attribute_value['source'] ) {
+ // Skip if the source value is not "meta_fields" or "pattern_attributes".
+ if ( 'meta_fields' !== $attribute_value['source'] && 'pattern_attributes' !== $attribute_value['source'] ) {
continue;
}
@@ -143,16 +145,28 @@ function gutenberg_render_block_connections( $block_content, $block, $block_inst
continue;
}
- // If the attribute does not specify the name of the custom field, skip it.
- if ( ! isset( $attribute_value['value'] ) ) {
- continue;
+ if ( 'pattern_attributes' === $attribute_value['source'] ) {
+ if ( ! _wp_array_get( $block_instance->attributes, array( 'metadata', 'id' ), false ) ) {
+ continue;
+ }
+
+ $custom_value = $connection_sources[ $attribute_value['source'] ]( $block_instance );
+ } else {
+ // If the attribute does not specify the name of the custom field, skip it.
+ if ( ! isset( $attribute_value['value'] ) ) {
+ continue;
+ }
+
+ // Get the content from the connection source.
+ $custom_value = $connection_sources[ $attribute_value['source'] ](
+ $block_instance,
+ $attribute_value['value']
+ );
}
- // Get the content from the connection source.
- $custom_value = $connection_sources[ $attribute_value['source'] ](
- $block_instance,
- $attribute_value['value']
- );
+ if ( false === $custom_value ) {
+ continue;
+ }
$tags = new WP_HTML_Tag_Processor( $block_content );
$found = $tags->next_tag(
@@ -181,5 +195,6 @@ function gutenberg_render_block_connections( $block_content, $block, $block_inst
return $block_content;
}
+
add_filter( 'render_block', 'gutenberg_render_block_connections', 10, 3 );
}
diff --git a/lib/experimental/class-gutenberg-rest-template-revision-count.php b/lib/experimental/class-gutenberg-rest-template-revision-count.php
index f3080f27af3d7c..17fb34e05ecfe1 100644
--- a/lib/experimental/class-gutenberg-rest-template-revision-count.php
+++ b/lib/experimental/class-gutenberg-rest-template-revision-count.php
@@ -13,7 +13,7 @@
* When merging into core, prepare_revision_links() should be merged with
* WP_REST_Templates_Controller::prepare_links().
*/
-class Gutenberg_REST_Template_Revision_Count extends Gutenberg_REST_Templates_Controller_6_3 {
+class Gutenberg_REST_Template_Revision_Count extends WP_REST_Templates_Controller {
/**
* Add revisions to the response.
*
diff --git a/lib/experimental/connection-sources/index.php b/lib/experimental/connection-sources/index.php
index b63abcad96f628..bf89ba177b6e94 100644
--- a/lib/experimental/connection-sources/index.php
+++ b/lib/experimental/connection-sources/index.php
@@ -6,10 +6,14 @@
*/
return array(
- 'name' => 'meta',
- 'meta_fields' => function ( $block_instance, $meta_field ) {
+ 'name' => 'meta',
+ 'meta_fields' => function ( $block_instance, $meta_field ) {
// We should probably also check if the meta field exists but for now it's okay because
// if it doesn't, `get_post_meta()` will just return an empty string.
return get_post_meta( $block_instance->context['postId'], $meta_field, true );
},
+ 'pattern_attributes' => function ( $block_instance ) {
+ $block_id = $block_instance->attributes['metadata']['id'];
+ return _wp_array_get( $block_instance->context, array( 'pattern/overrides', $block_id ), false );
+ },
);
diff --git a/lib/experimental/editor-settings.php b/lib/experimental/editor-settings.php
index 2c7d6310005bfa..5f61684e8b1342 100644
--- a/lib/experimental/editor-settings.php
+++ b/lib/experimental/editor-settings.php
@@ -33,6 +33,10 @@ function gutenberg_enable_experiments() {
if ( gutenberg_is_experiment_enabled( 'gutenberg-no-tinymce' ) ) {
wp_add_inline_script( 'wp-block-library', 'window.__experimentalDisableTinymce = true', 'before' );
}
+
+ if ( $gutenberg_experiments && array_key_exists( 'gutenberg-pattern-partial-syncing', $gutenberg_experiments ) ) {
+ wp_add_inline_script( 'wp-block-editor', 'window.__experimentalPatternPartialSyncing = true', 'before' );
+ }
}
add_action( 'admin_init', 'gutenberg_enable_experiments' );
diff --git a/lib/experimental/fonts/font-library/class-wp-font-family-utils.php b/lib/experimental/fonts/font-library/class-wp-font-family-utils.php
index 8a8ee1d4ddb5f1..7d954e79e96a3c 100644
--- a/lib/experimental/fonts/font-library/class-wp-font-family-utils.php
+++ b/lib/experimental/fonts/font-library/class-wp-font-family-utils.php
@@ -90,4 +90,36 @@ public static function has_font_mime_type( $filepath ) {
return in_array( $filetype['type'], $allowed_mime_types, true );
}
+
+ /**
+ * Format font family to make it valid CSS.
+ *
+ * @since 6.5.0
+ *
+ * @param string $font_family Font family attribute.
+ * @return string The formatted font family attribute.
+ */
+ public static function format_font_family( $font_family ) {
+ if ( $font_family ) {
+ $font_families = explode( ',', $font_family );
+ $wrapped_font_families = array_map(
+ function ( $family ) {
+ $trimmed = trim( $family );
+ if ( ! empty( $trimmed ) && strpos( $trimmed, ' ' ) !== false && strpos( $trimmed, "'" ) === false && strpos( $trimmed, '"' ) === false ) {
+ return "'" . $trimmed . "'";
+ }
+ return $trimmed;
+ },
+ $font_families
+ );
+
+ if ( count( $wrapped_font_families ) === 1 ) {
+ $font_family = $wrapped_font_families[0];
+ } else {
+ $font_family = implode( ', ', $wrapped_font_families );
+ }
+ }
+
+ return $font_family;
+ }
}
diff --git a/lib/experimental/fonts/font-library/class-wp-font-family.php b/lib/experimental/fonts/font-library/class-wp-font-family.php
index 309b1c8b7902b5..58d4f476e834d1 100644
--- a/lib/experimental/fonts/font-library/class-wp-font-family.php
+++ b/lib/experimental/fonts/font-library/class-wp-font-family.php
@@ -308,6 +308,7 @@ private function sanitize() {
),
),
);
+
// Creates a new WP_Theme_JSON object with the new fonts to
// leverage sanitization and validation.
$fonts_json = WP_Theme_JSON_Gutenberg::remove_insecure_properties( $fonts_json );
@@ -316,7 +317,10 @@ private function sanitize() {
$sanitized_font = ! empty( $theme_data['settings']['typography']['fontFamilies'] )
? $theme_data['settings']['typography']['fontFamilies'][0]
: array();
- $this->data = $sanitized_font;
+
+ $sanitized_font['slug'] = _wp_to_kebab_case( $sanitized_font['slug'] );
+ $sanitized_font['fontFamily'] = WP_Font_Family_Utils::format_font_family( $sanitized_font['fontFamily'] );
+ $this->data = $sanitized_font;
return $this->data;
}
diff --git a/lib/experimental/interactivity-api/class-wp-interactivity-store.php b/lib/experimental/interactivity-api/class-wp-interactivity-store.php
index 89cb58700554a9..c53701b14e8aff 100644
--- a/lib/experimental/interactivity-api/class-wp-interactivity-store.php
+++ b/lib/experimental/interactivity-api/class-wp-interactivity-store.php
@@ -62,7 +62,7 @@ public static function render() {
return;
}
echo sprintf(
- '',
+ '',
wp_json_encode( self::$store, JSON_HEX_TAG | JSON_HEX_AMP )
);
}
diff --git a/lib/experimental/interactivity-api/modules.php b/lib/experimental/interactivity-api/modules.php
new file mode 100644
index 00000000000000..0695da26f4b1b3
--- /dev/null
+++ b/lib/experimental/interactivity-api/modules.php
@@ -0,0 +1,21 @@
+=' );
- if ( $supports_defer ) {
- // Defer execution of @wordpress/interactivity package but continue loading in head.
- wp_script_add_data( 'wp-interactivity', 'strategy', 'defer' );
- wp_script_add_data( 'wp-interactivity', 'group', 0 );
- } else {
- // Move the @wordpress/interactivity package to the footer.
- wp_script_add_data( 'wp-interactivity', 'group', 1 );
- }
-
- // Move all the view scripts of the interactive blocks to the footer.
- $registered_blocks = \WP_Block_Type_Registry::get_instance()->get_all_registered();
- foreach ( array_values( $registered_blocks ) as $block ) {
- if ( isset( $block->supports['interactivity'] ) && $block->supports['interactivity'] ) {
- foreach ( $block->view_script_handles as $handle ) {
- // Note that all block view scripts are already made defer by default.
- wp_script_add_data( $handle, 'group', $supports_defer ? 0 : 1 );
- }
- }
- }
-}
-add_action( 'wp_enqueue_scripts', 'gutenberg_interactivity_move_interactive_scripts_to_the_footer', 11 );
diff --git a/lib/experimental/modules/class-gutenberg-modules.php b/lib/experimental/modules/class-gutenberg-modules.php
new file mode 100644
index 00000000000000..5f847fa8c897ad
--- /dev/null
+++ b/lib/experimental/modules/class-gutenberg-modules.php
@@ -0,0 +1,218 @@
+ isset( $dependencies['static'] ) || isset( $dependencies['dynamic'] ) ? $dependencies['static'] ?? array() : $dependencies,
+ 'dynamic' => isset( $dependencies['dynamic'] ) ? $dependencies['dynamic'] : array(),
+ );
+
+ self::$registered[ $module_identifier ] = array(
+ 'src' => $src,
+ 'version' => $version,
+ 'dependencies' => $deps,
+ );
+ }
+ }
+
+ /**
+ * Enqueues a module in the page.
+ *
+ * @param string $module_identifier The identifier of the module.
+ */
+ public static function enqueue( $module_identifier ) {
+ // Add the module to the queue if it's not already there.
+ if ( ! in_array( $module_identifier, self::$enqueued, true ) ) {
+ self::$enqueued[] = $module_identifier;
+ }
+ }
+
+ /**
+ * Returns the import map array.
+ *
+ * @return array Associative array with 'imports' key mapping to an array of module identifiers and their respective source strings.
+ */
+ public static function get_import_map() {
+ $imports = array();
+ foreach ( self::get_dependencies( self::$enqueued, array( 'static', 'dynamic' ) ) as $module_identifier => $module ) {
+ $imports[ $module_identifier ] = $module['src'] . self::get_version_query_string( $module['version'] );
+ }
+ return array( 'imports' => $imports );
+ }
+
+ /**
+ * Prints the import map.
+ */
+ public static function print_import_map() {
+ $import_map = self::get_import_map();
+ if ( ! empty( $import_map['imports'] ) ) {
+ echo '';
+ }
+ }
+
+ /**
+ * Prints all the enqueued modules using
HTML;
diff --git a/packages/e2e-tests/plugins/interactive-blocks/store-tag/view.js b/packages/e2e-tests/plugins/interactive-blocks/store-tag/view.js
index 140cab6463137f..0faa9625cedd78 100644
--- a/packages/e2e-tests/plugins/interactive-blocks/store-tag/view.js
+++ b/packages/e2e-tests/plugins/interactive-blocks/store-tag/view.js
@@ -1,24 +1,24 @@
-( ( { wp } ) => {
- /**
- * WordPress dependencies
- */
- const { store } = wp.interactivity;
+/**
+ * WordPress dependencies
+ */
+import { store } from '@wordpress/interactivity';
- store( {
- state: {
- counter: {
- // `value` is defined in the server.
- double: ( { state } ) => state.counter.value * 2,
- clicks: 0,
+const { state } = store( 'store-tag', {
+ state: {
+ counter: {
+ // `value` is defined in the server.
+ get double() {
+ return state.counter.value * 2;
},
+ clicks: 0,
},
- actions: {
- counter: {
- increment: ( { state } ) => {
- state.counter.value += 1;
- state.counter.clicks += 1;
- },
+ },
+ actions: {
+ counter: {
+ increment() {
+ state.counter.value += 1;
+ state.counter.clicks += 1;
},
},
- } );
-} )( window );
+ },
+} );
diff --git a/packages/e2e-tests/plugins/interactive-blocks/tovdom-islands/render.php b/packages/e2e-tests/plugins/interactive-blocks/tovdom-islands/render.php
index a3ebb7a87424e4..7b1bc6513977b8 100644
--- a/packages/e2e-tests/plugins/interactive-blocks/tovdom-islands/render.php
+++ b/packages/e2e-tests/plugins/interactive-blocks/tovdom-islands/render.php
@@ -5,7 +5,9 @@
* @package gutenberg-test-interactive-blocks
*/
+gutenberg_enqueue_module( 'tovdom-islands-view' );
?>
+
@@ -13,7 +15,7 @@
-
+
This should not be shown because it is inside an island.
@@ -21,7 +23,7 @@
-
+
-
-
+
+
-
+
-
+
{
- const { store, directive, createElement } = wp.interactivity;
+/**
+ * WordPress dependencies
+ */
+import { store, directive, createElement as h } from '@wordpress/interactivity';
- // Fake `data-wp-show-mock` directive to test when things are removed from the
- // DOM. Replace with `data-wp-show` when it's ready.
- directive(
- 'show-mock',
- ( {
- directives: {
- "show-mock": { default: showMock },
- },
- element,
- evaluate,
- } ) => {
- if ( ! evaluate( showMock ) )
- element.props.children =
- createElement( "template", null, element.props.children );
+// Fake `data-wp-show-mock` directive to test when things are removed from the
+// DOM. Replace with `data-wp-show` when it's ready.
+directive(
+ 'show-mock',
+ ( { directives: { 'show-mock': showMock }, element, evaluate } ) => {
+ const entry = showMock.find( ( { suffix } ) => suffix === 'default' );
+
+ if ( ! evaluate( entry ) ) {
+ element.props.children = h(
+ 'template',
+ null,
+ element.props.children
+ );
}
- );
+ }
+);
- store( {
- state: {
- falseValue: false,
- },
- } );
-} )( window );
+store( 'tovdom-islands', {
+ state: {
+ falseValue: false,
+ },
+} );
diff --git a/packages/e2e-tests/plugins/interactive-blocks/tovdom/render.php b/packages/e2e-tests/plugins/interactive-blocks/tovdom/render.php
index 952a4f6c0a455d..309b42a5829359 100644
--- a/packages/e2e-tests/plugins/interactive-blocks/tovdom/render.php
+++ b/packages/e2e-tests/plugins/interactive-blocks/tovdom/render.php
@@ -8,9 +8,11 @@
$plugin_url = plugin_dir_url( __DIR__ );
$src_proc_ins = $plugin_url . 'tovdom/processing-instructions.js';
$src_cdata = $plugin_url . 'tovdom/cdata.js';
+
+gutenberg_enqueue_module( 'tovdom-view' );
?>
-
+
diff --git a/packages/e2e-tests/plugins/interactive-blocks/tovdom/view.js b/packages/e2e-tests/plugins/interactive-blocks/tovdom/view.js
index 734ccbd801bb1e..75987cf19c5c74 100644
--- a/packages/e2e-tests/plugins/interactive-blocks/tovdom/view.js
+++ b/packages/e2e-tests/plugins/interactive-blocks/tovdom/view.js
@@ -1,5 +1,6 @@
-( ( { wp } ) => {
- const { store } = wp.interactivity;
+/**
+ * WordPress dependencies
+ */
+import { store } from '@wordpress/interactivity';
- store( {} );
-} )( window );
+store( 'tovdom', {} );
diff --git a/packages/e2e-tests/specs/editor/plugins/__snapshots__/align-hook.test.js.snap b/packages/e2e-tests/specs/editor/plugins/__snapshots__/align-hook.test.js.snap
deleted file mode 100644
index 6c04d30c41be9d..00000000000000
--- a/packages/e2e-tests/specs/editor/plugins/__snapshots__/align-hook.test.js.snap
+++ /dev/null
@@ -1,43 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`Align Hook Works As Expected Block with align array Correctly applies the selected alignment and correctly removes the alignment 1`] = `
-"
-
Test Align Hook
-"
-`;
-
-exports[`Align Hook Works As Expected Block with align array Correctly applies the selected alignment and correctly removes the alignment 2`] = `
-"
-
Test Align Hook
-"
-`;
-
-exports[`Align Hook Works As Expected Block with align true Correctly applies the selected alignment and correctly removes the alignment 1`] = `
-"
-
Test Align Hook
-"
-`;
-
-exports[`Align Hook Works As Expected Block with align true Correctly applies the selected alignment and correctly removes the alignment 2`] = `
-"
-
Test Align Hook
-"
-`;
-
-exports[`Align Hook Works As Expected Block with default align Correctly applies the selected alignment and correctly removes the alignment 1`] = `
-"
-
Test Align Hook
-"
-`;
-
-exports[`Align Hook Works As Expected Block with default align Correctly applies the selected alignment and correctly removes the alignment 2`] = `
-"
-
Test Align Hook
-"
-`;
-
-exports[`Align Hook Works As Expected Block with no alignment set Does not save any alignment related attribute or class 1`] = `
-"
-
Test Align Hook
-"
-`;
diff --git a/packages/e2e-tests/specs/editor/plugins/__snapshots__/block-directory-add.test.js.snap b/packages/e2e-tests/specs/editor/plugins/__snapshots__/block-directory-add.test.js.snap
deleted file mode 100644
index 2c06020e52c787..00000000000000
--- a/packages/e2e-tests/specs/editor/plugins/__snapshots__/block-directory-add.test.js.snap
+++ /dev/null
@@ -1,3 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`adding blocks from block directory Should be able to add (the first) block. 1`] = `""`;
diff --git a/packages/e2e-tests/specs/editor/plugins/align-hook.test.js b/packages/e2e-tests/specs/editor/plugins/align-hook.test.js
deleted file mode 100644
index 9246144d810e08..00000000000000
--- a/packages/e2e-tests/specs/editor/plugins/align-hook.test.js
+++ /dev/null
@@ -1,234 +0,0 @@
-/**
- * WordPress dependencies
- */
-import {
- activatePlugin,
- createNewPost,
- deactivatePlugin,
- getAllBlocks,
- getEditedPostContent,
- insertBlock,
- selectBlockByClientId,
- setPostContent,
- clickBlockToolbarButton,
-} from '@wordpress/e2e-test-utils';
-
-const alignLabels = {
- none: 'None',
- left: 'Align left',
- center: 'Align center',
- right: 'Align right',
- wide: 'Wide width',
- full: 'Full width',
-};
-
-/**
- * Helper function to get the `labels` of align control. It actually evaluates the
- * basic label of the button without the `info` text node if exists.
- *
- * @param {Object} options Options for the util function
- * @param {boolean} [options.getActiveButtonLabels=false] Flag for returning the active buttons labels only.
- * @return {string[]} The matched labels.
- */
-const getAlignmentToolbarLabels = async ( {
- getActiveButtonLabels = false,
-} = {} ) => {
- const selector = `.components-dropdown-menu__menu button${
- getActiveButtonLabels ? '.is-active' : ''
- } .components-menu-item__item`;
- return page.evaluate( ( _selector ) => {
- return (
- Array.from( document.querySelectorAll( _selector ) )
- /**
- * We neede this for now because conditionally there could be two nodes
- * with the same class(). This should be removed when the following
- * issue is resolved.
- *
- * @see https://github.com/WordPress/gutenberg/issues/34838
- */
- .filter( ( contentNode ) => ! contentNode.childElementCount )
- .map( ( contentNode ) => {
- return contentNode.innerText;
- } )
- );
- }, selector );
-};
-
-const expectActiveButtonLabelToBe = async ( expected ) => {
- await clickBlockToolbarButton( 'Align' );
- const activeButtonLabels = await getAlignmentToolbarLabels( {
- getActiveButtonLabels: true,
- } );
- expect( activeButtonLabels ).toHaveLength( 1 );
- expect( activeButtonLabels[ 0 ] ).toEqual( expected );
-};
-
-const createShowsTheExpectedButtonsTest = ( blockName, buttonLabels ) => {
- it( 'Shows the expected buttons on the alignment toolbar', async () => {
- await insertBlock( blockName );
- await clickBlockToolbarButton( 'Align' );
- expect( await getAlignmentToolbarLabels() ).toEqual(
- expect.arrayContaining( buttonLabels )
- );
- } );
-};
-
-const createAppliesNoneAlignmentByDefaultTest = ( blockName ) => {
- it( 'applies none alignment by default', async () => {
- await insertBlock( blockName );
- await expectActiveButtonLabelToBe( alignLabels.none );
- } );
-};
-
-const verifyMarkupIsValid = async ( htmlMarkup ) => {
- await setPostContent( htmlMarkup );
- const blocks = await getAllBlocks();
- expect( blocks ).toHaveLength( 1 );
- expect( blocks[ 0 ].isValid ).toBeTruthy();
-};
-
-const createCorrectlyAppliesAndRemovesAlignmentTest = (
- blockName,
- alignment
-) => {
- it( 'Correctly applies the selected alignment and correctly removes the alignment', async () => {
- const BUTTON_XPATH = `//button[contains(@class,'components-dropdown-menu__menu-item')]//span[contains(text(), '${ alignLabels[ alignment ] }')]`;
-
- // Set the specified alignment.
- await insertBlock( blockName );
- await clickBlockToolbarButton( 'Align' );
- await ( await page.$x( BUTTON_XPATH ) )[ 0 ].click();
-
- // Verify the button of the specified alignment is pressed.
- await expectActiveButtonLabelToBe( alignLabels[ alignment ] );
-
- let htmlMarkup = await getEditedPostContent();
-
- // Verify the markup of the selected alignment was generated.
- expect( htmlMarkup ).toMatchSnapshot();
-
- // Verify the markup can be correctly parsed.
- await verifyMarkupIsValid( htmlMarkup );
-
- await selectBlockByClientId( ( await getAllBlocks() )[ 0 ].clientId );
-
- // Remove the alignment.
- await clickBlockToolbarButton( 'Align' );
- await ( await page.$x( BUTTON_XPATH ) )[ 0 ].click();
-
- // Verify 'none' alignment button is in pressed state.
- await expectActiveButtonLabelToBe( alignLabels.none );
-
- // Verify alignment markup was removed from the block.
- htmlMarkup = await getEditedPostContent();
- expect( htmlMarkup ).toMatchSnapshot();
-
- // verify the markup when no alignment is set is valid
- await verifyMarkupIsValid( htmlMarkup );
-
- await selectBlockByClientId( ( await getAllBlocks() )[ 0 ].clientId );
-
- // Verify alignment `none` button is in pressed state after parsing the block.
- await expectActiveButtonLabelToBe( alignLabels.none );
- } );
-};
-
-describe( 'Align Hook Works As Expected', () => {
- beforeAll( async () => {
- await activatePlugin( 'gutenberg-test-align-hook' );
- } );
-
- beforeEach( async () => {
- await createNewPost();
- } );
-
- afterAll( async () => {
- await deactivatePlugin( 'gutenberg-test-align-hook' );
- } );
-
- describe( 'Block with no alignment set', () => {
- const BLOCK_NAME = 'Test No Alignment Set';
- it( 'Shows no alignment buttons on the alignment toolbar', async () => {
- await insertBlock( BLOCK_NAME );
- const CHANGE_ALIGNMENT_BUTTON_SELECTOR =
- '.block-editor-block-toolbar .components-dropdown-menu__toggle[aria-label="Align"]';
- const changeAlignmentButton = await page.$(
- CHANGE_ALIGNMENT_BUTTON_SELECTOR
- );
- expect( changeAlignmentButton ).toBe( null );
- } );
-
- it( 'Does not save any alignment related attribute or class', async () => {
- await insertBlock( BLOCK_NAME );
- expect( await getEditedPostContent() ).toMatchSnapshot();
- } );
- } );
-
- describe( 'Block with align true', () => {
- const BLOCK_NAME = 'Test Align True';
-
- createShowsTheExpectedButtonsTest(
- BLOCK_NAME,
- Object.values( alignLabels )
- );
-
- createAppliesNoneAlignmentByDefaultTest( BLOCK_NAME );
-
- createCorrectlyAppliesAndRemovesAlignmentTest( BLOCK_NAME, 'right' );
- } );
-
- describe( 'Block with align array', () => {
- const BLOCK_NAME = 'Test Align Array';
-
- createShowsTheExpectedButtonsTest( BLOCK_NAME, [
- alignLabels.none,
- alignLabels.left,
- alignLabels.center,
- ] );
-
- createAppliesNoneAlignmentByDefaultTest( BLOCK_NAME );
-
- createCorrectlyAppliesAndRemovesAlignmentTest( BLOCK_NAME, 'center' );
- } );
-
- describe( 'Block with default align', () => {
- const BLOCK_NAME = 'Test Default Align';
- const SELECTED_ALIGNMENT_CONTROL_SELECTOR =
- '//div[contains(@class, "components-dropdown-menu__menu")]//button[contains(@class, "is-active")]/span[text()="Align right"]';
- createShowsTheExpectedButtonsTest(
- BLOCK_NAME,
- Object.values( alignLabels )
- );
-
- it( 'Applies the selected alignment by default', async () => {
- await insertBlock( BLOCK_NAME );
- // Verify the correct alignment button is pressed.
- await clickBlockToolbarButton( 'Align' );
- const selectedAlignmentControls = await page.$x(
- SELECTED_ALIGNMENT_CONTROL_SELECTOR
- );
- expect( selectedAlignmentControls ).toHaveLength( 1 );
- } );
-
- it( 'The default markup does not contain the alignment attribute but contains the alignment class', async () => {
- await insertBlock( BLOCK_NAME );
- const markup = await getEditedPostContent();
- expect( markup ).not.toContain( '"align":"right"' );
- expect( markup ).toContain( 'alignright' );
- } );
-
- it( 'Can remove the default alignment and the align attribute equals none but alignnone class is not applied', async () => {
- await insertBlock( BLOCK_NAME );
- // Remove the alignment.
- await clickBlockToolbarButton( 'Align' );
- const [ selectedAlignmentControl ] = await page.$x(
- SELECTED_ALIGNMENT_CONTROL_SELECTOR
- );
- await selectedAlignmentControl.click();
- const markup = await getEditedPostContent();
- expect( markup ).toContain( '"align":""' );
- } );
-
- createCorrectlyAppliesAndRemovesAlignmentTest( BLOCK_NAME, 'center' );
- } );
-} );
diff --git a/packages/e2e-tests/specs/editor/plugins/block-directory-add.test.js b/packages/e2e-tests/specs/editor/plugins/block-directory-add.test.js
deleted file mode 100644
index 2e969d17915924..00000000000000
--- a/packages/e2e-tests/specs/editor/plugins/block-directory-add.test.js
+++ /dev/null
@@ -1,205 +0,0 @@
-/**
- * WordPress dependencies
- */
-import {
- createNewPost,
- searchForBlock,
- insertBlockDirectoryBlock,
- setUpResponseMocking,
- getEditedPostContent,
- createJSONResponse,
-} from '@wordpress/e2e-test-utils';
-
-const BLOCK1_NAME = 'block-directory-test-block/main-block';
-
-// Urls to mock.
-const SEARCH_URLS = [
- '/wp/v2/block-directory/search',
- `rest_route=${ encodeURIComponent( '/wp/v2/block-directory/search' ) }`,
-];
-
-const BLOCK_TYPE_URLS = [
- `/wp/v2/block-types/${ BLOCK1_NAME }`,
- `rest_route=${ encodeURIComponent(
- `/wp/v2/block-types/${ BLOCK1_NAME }`
- ) }`,
-];
-
-const INSTALL_URLS = [
- '/wp/v2/plugins',
- `rest_route=${ encodeURIComponent( '/wp/v2/plugins' ) }`,
-];
-
-// Example Blocks.
-const MOCK_BLOCK1 = {
- name: BLOCK1_NAME,
- title: 'Block Directory Test Block',
- description: 'This plugin is useful for the block.',
- id: 'block-directory-test-block',
- rating: 0,
- rating_count: 0,
- active_installs: 0,
- author_block_rating: 0,
- author_block_count: 1,
- author: 'No Author',
- icon: 'block-default',
- assets: [
- 'https://fake_url.com/block.js', // We will mock this.
- ],
- humanized_updated: '5 months ago',
- links: {},
-};
-
-const MOCK_INSTALLED_BLOCK_PLUGIN_DETAILS = {
- plugin: 'block-directory-test-block',
- status: 'active',
- name: 'Block Directory',
- plugin_uri: '',
- author: 'No Author',
- author_uri: '',
- description: {
- raw: 'This plugin is useful for the block.',
- rendered: 'This plugin is useful for the block.',
- },
- version: '1.0',
- network_only: false,
- requires_wp: '',
- requires_php: '',
- text_domain: 'block-directory-test-block',
- _links: {
- self: [
- {
- href: '',
- },
- ],
- },
-};
-
-const MOCK_BLOCK2 = {
- ...MOCK_BLOCK1,
- name: 'block-directory-test-block/secondary-block',
- title: 'Block Directory Test Block - Pt Deux',
- id: 'block-directory-test-secondary-block',
-};
-
-// Block that will be registered.
-const block = `( function() {
- var registerBlockType = wp.blocks.registerBlockType;
- var el = wp.element.createElement;
-
- registerBlockType( '${ MOCK_BLOCK1.name }', {
- title: 'Test Block for Block Directory',
- icon: 'hammer',
- category: 'text',
- attributes: {},
- edit: function( props ) {
- return el( 'p', null, 'Test Copy' );
- },
- save: function() {
- return null;
- },
- } );
-} )();`;
-
-const MOCK_EMPTY_RESPONSES = [
- {
- match: ( request ) =>
- matchUrl( request.url(), SEARCH_URLS ) &&
- request.method() === 'GET',
- onRequestMatch: createJSONResponse( [] ),
- },
-];
-
-const MOCK_BLOCKS_RESPONSES = [
- {
- // Mock response for search with the block.
- match: ( request ) =>
- matchUrl( request.url(), SEARCH_URLS ) &&
- request.method() === 'GET',
- onRequestMatch: createJSONResponse( [ MOCK_BLOCK1, MOCK_BLOCK2 ] ),
- },
- {
- // Mock response for block type.
- match: ( request ) => matchUrl( request.url(), BLOCK_TYPE_URLS ),
- onRequestMatch: createJSONResponse( {} ),
- },
- {
- // Mock response for install.
- match: ( request ) => matchUrl( request.url(), INSTALL_URLS ),
- onRequestMatch: createJSONResponse(
- MOCK_INSTALLED_BLOCK_PLUGIN_DETAILS
- ),
- },
- {
- // Mock the response for the js asset once it gets injected.
- match: ( request ) => request.url().includes( MOCK_BLOCK1.assets[ 0 ] ),
- onRequestMatch: createResponse(
- Buffer.from( block, 'utf8' ),
- 'application/javascript; charset=utf-8'
- ),
- },
- {
- // Mock the post-new page as requested via apiFetch for determining new CSS/JS assets.
- match: ( request ) => request.url().includes( '/post-new.php' ),
- onRequestMatch: createResponse(
- `
`,
- 'text/html; charset=UTF-8'
- ),
- },
-];
-
-function getResponseObject( obj, contentType ) {
- return {
- status: 200,
- contentType,
- body: obj,
- };
-}
-
-function createResponse( mockResponse, contentType ) {
- return async ( request ) =>
- request.respond( getResponseObject( mockResponse, contentType ) );
-}
-
-const matchUrl = ( reqUrl, urls ) => {
- return urls.some( ( el ) => reqUrl.indexOf( el ) >= 0 );
-};
-
-describe( 'adding blocks from block directory', () => {
- beforeAll( async () => {
- await createNewPost();
- } );
-
- it( 'Should show an empty state when no plugin is found.', async () => {
- // Be super weird so there won't be a matching block installed.
- const impossibleBlockName = '@#$@@Dsdsdfw2#$@';
-
- // Return an empty list of plugins.
- await setUpResponseMocking( MOCK_EMPTY_RESPONSES );
-
- // Search for the block via the inserter.
- await searchForBlock( impossibleBlockName );
-
- const selectorContent = await page.evaluate(
- () =>
- document.querySelector( '.block-editor-inserter__main-area' )
- .innerHTML
- );
- expect( selectorContent ).toContain(
- 'block-editor-inserter__no-results'
- );
- } );
-
- it( 'Should be able to add (the first) block.', async () => {
- // Setup our mocks.
- await setUpResponseMocking( MOCK_BLOCKS_RESPONSES );
-
- // Search for the block via the inserter.
- await insertBlockDirectoryBlock( MOCK_BLOCK1.title );
-
- await page.waitForSelector( `div[data-type="${ MOCK_BLOCK1.name }"]` );
-
- // The block will auto select and get added, make sure we see it in the content.
- expect( await getEditedPostContent() ).toMatchSnapshot();
- } );
-} );
diff --git a/packages/e2e-tests/specs/editor/plugins/block-icons.test.js b/packages/e2e-tests/specs/editor/plugins/block-icons.test.js
deleted file mode 100644
index d70cf0e615753f..00000000000000
--- a/packages/e2e-tests/specs/editor/plugins/block-icons.test.js
+++ /dev/null
@@ -1,170 +0,0 @@
-/**
- * WordPress dependencies
- */
-import {
- activatePlugin,
- createNewPost,
- deactivatePlugin,
- insertBlock,
- pressKeyWithModifier,
- searchForBlock,
- openDocumentSettingsSidebar,
-} from '@wordpress/e2e-test-utils';
-
-const INSERTER_BUTTON_SELECTOR =
- '.block-editor-inserter__main-area .block-editor-block-types-list__item';
-const INSERTER_ICON_WRAPPER_SELECTOR = `${ INSERTER_BUTTON_SELECTOR } .block-editor-block-types-list__item-icon`;
-const INSERTER_ICON_SELECTOR = `${ INSERTER_BUTTON_SELECTOR } .block-editor-block-icon`;
-const INSPECTOR_ICON_SELECTOR = '.edit-post-sidebar .block-editor-block-icon';
-
-async function getInnerHTML( selector ) {
- return await page.$eval( selector, ( element ) => element.innerHTML );
-}
-
-async function getBackgroundColor( selector ) {
- return await page.$eval( selector, ( element ) => {
- return window.getComputedStyle( element ).backgroundColor;
- } );
-}
-
-async function getColor( selector ) {
- return await page.$eval( selector, ( element ) => {
- return window.getComputedStyle( element ).color;
- } );
-}
-
-async function getFirstInserterIcon() {
- return await getInnerHTML( INSERTER_ICON_SELECTOR );
-}
-
-async function selectFirstBlock() {
- await pressKeyWithModifier( 'access', 'o' );
- const navButtons = await page.$$(
- '.block-editor-list-view-block-select-button'
- );
- await navButtons[ 0 ].click();
-}
-
-describe( 'Correctly Renders Block Icons on Inserter and Inspector', () => {
- const dashIconRegex = /
.*?<\/span>/;
- const circleString =
- ' ';
- const svgIcon = new RegExp(
- `${ circleString }`
- );
-
- const validateSvgIcon = ( iconHtml ) => {
- expect( iconHtml ).toMatch( svgIcon );
- };
-
- const validateDashIcon = ( iconHtml ) => {
- expect( iconHtml ).toMatch( dashIconRegex );
- };
-
- beforeAll( async () => {
- await activatePlugin( 'gutenberg-test-block-icons' );
- } );
-
- beforeEach( async () => {
- await createNewPost();
- } );
-
- afterAll( async () => {
- await deactivatePlugin( 'gutenberg-test-block-icons' );
- } );
-
- function testIconsOfBlock( blockName, blockTitle, validateIcon ) {
- it( 'Renders correctly the icon in the inserter', async () => {
- await searchForBlock( blockTitle );
- validateIcon( await getFirstInserterIcon() );
- } );
-
- it( 'Can insert the block', async () => {
- await insertBlock( blockTitle );
- expect(
- await getInnerHTML(
- `[data-type="${ blockName }"] [data-type="core/paragraph"]`
- )
- ).toEqual( blockTitle );
- } );
-
- it( 'Renders correctly the icon on the inspector', async () => {
- await insertBlock( blockTitle );
- await openDocumentSettingsSidebar();
- await selectFirstBlock();
- validateIcon( await getInnerHTML( INSPECTOR_ICON_SELECTOR ) );
- } );
- }
-
- describe( 'Block with svg icon', () => {
- const blockName = 'test/test-single-svg-icon';
- const blockTitle = 'TestSimpleSvgIcon';
- testIconsOfBlock( blockName, blockTitle, validateSvgIcon );
- } );
-
- describe( 'Block with dash icon', () => {
- const blockName = 'test/test-dash-icon';
- const blockTitle = 'TestDashIcon';
- testIconsOfBlock( blockName, blockTitle, validateDashIcon );
- } );
-
- describe( 'Block with function icon', () => {
- const blockName = 'test/test-function-icon';
- const blockTitle = 'TestFunctionIcon';
- testIconsOfBlock( blockName, blockTitle, validateSvgIcon );
- } );
-
- describe( 'Block with dash icon and background and foreground colors', () => {
- const blockTitle = 'TestDashIconColors';
- it( 'Renders the icon in the inserter with the correct colors', async () => {
- await searchForBlock( blockTitle );
- validateDashIcon( await getFirstInserterIcon() );
- expect(
- await getBackgroundColor( INSERTER_ICON_WRAPPER_SELECTOR )
- ).toEqual( 'rgb(1, 0, 0)' );
- expect( await getColor( INSERTER_ICON_WRAPPER_SELECTOR ) ).toEqual(
- 'rgb(254, 0, 0)'
- );
- } );
-
- it( 'Renders the icon in the inspector with the correct colors', async () => {
- await insertBlock( blockTitle );
- await openDocumentSettingsSidebar();
- await selectFirstBlock();
- validateDashIcon( await getInnerHTML( INSPECTOR_ICON_SELECTOR ) );
- expect(
- await getBackgroundColor( INSPECTOR_ICON_SELECTOR )
- ).toEqual( 'rgb(1, 0, 0)' );
- expect( await getColor( INSPECTOR_ICON_SELECTOR ) ).toEqual(
- 'rgb(254, 0, 0)'
- );
- } );
- } );
-
- describe( 'Block with svg icon and background color', () => {
- const blockTitle = 'TestSvgIconBackground';
- it( 'Renders the icon in the inserter with the correct background color and an automatically compute readable foreground color', async () => {
- await searchForBlock( blockTitle );
- validateSvgIcon( await getFirstInserterIcon() );
- expect(
- await getBackgroundColor( INSERTER_ICON_WRAPPER_SELECTOR )
- ).toEqual( 'rgb(1, 0, 0)' );
- expect( await getColor( INSERTER_ICON_WRAPPER_SELECTOR ) ).toEqual(
- 'rgb(248, 249, 249)'
- );
- } );
-
- it( 'Renders correctly the icon on the inspector', async () => {
- await insertBlock( blockTitle );
- await openDocumentSettingsSidebar();
- await selectFirstBlock();
- validateSvgIcon( await getInnerHTML( INSPECTOR_ICON_SELECTOR ) );
- expect(
- await getBackgroundColor( INSPECTOR_ICON_SELECTOR )
- ).toEqual( 'rgb(1, 0, 0)' );
- expect( await getColor( INSPECTOR_ICON_SELECTOR ) ).toEqual(
- 'rgb(248, 249, 249)'
- );
- } );
- } );
-} );
diff --git a/packages/e2e-tests/specs/editor/plugins/custom-taxonomies.test.js b/packages/e2e-tests/specs/editor/plugins/custom-taxonomies.test.js
deleted file mode 100644
index 3d65b1ebc98f76..00000000000000
--- a/packages/e2e-tests/specs/editor/plugins/custom-taxonomies.test.js
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * WordPress dependencies
- */
-import {
- activatePlugin,
- createNewPost,
- deactivatePlugin,
- findSidebarPanelWithTitle,
- openDocumentSettingsSidebar,
-} from '@wordpress/e2e-test-utils';
-
-describe( 'Custom Taxonomies labels are used', () => {
- beforeAll( async () => {
- await activatePlugin( 'gutenberg-test-custom-taxonomies' );
- } );
-
- beforeEach( async () => {
- await createNewPost();
- } );
-
- afterAll( async () => {
- await deactivatePlugin( 'gutenberg-test-custom-taxonomies' );
- } );
-
- it( 'Ensures the custom taxonomy labels are respected', async () => {
- // Open the Setting sidebar.
- await openDocumentSettingsSidebar();
-
- const openButton = await findSidebarPanelWithTitle( 'Model' );
- expect( openButton ).not.toBeFalsy();
-
- // Get the classes from the panel.
- const buttonClassName = await (
- await openButton.getProperty( 'className' )
- ).jsonValue();
-
- // Open the panel if needed.
- if ( -1 === buttonClassName.indexOf( 'is-opened' ) ) {
- await openButton.click();
- }
-
- // Check the add new button.
- const labelNew = await page.$x(
- "//label[@class='components-form-token-field__label' and contains(text(), 'Add New Model')]"
- );
- expect( labelNew ).not.toBeFalsy();
-
- // Fill with one entry.
- await page.type(
- 'input.components-form-token-field__input',
- 'Model 1'
- );
- await page.keyboard.press( 'Enter' );
-
- // Check the "Remove Model"
- const value = await page.$x(
- "//div[@class='components-form-token-field__input-container']//span//button[@aria-label='Remove Model']"
- );
- expect( value ).not.toBeFalsy();
- } );
-} );
diff --git a/packages/e2e-tests/specs/editor/plugins/innerblocks-locking-all-embed.js b/packages/e2e-tests/specs/editor/plugins/innerblocks-locking-all-embed.js
deleted file mode 100644
index a0a83fbf90e616..00000000000000
--- a/packages/e2e-tests/specs/editor/plugins/innerblocks-locking-all-embed.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * WordPress dependencies
- */
-import {
- activatePlugin,
- createNewPost,
- deactivatePlugin,
- insertBlock,
- createEmbeddingMatcher,
- createJSONResponse,
- setUpResponseMocking,
-} from '@wordpress/e2e-test-utils';
-
-const MOCK_RESPONSES = [
- {
- match: createEmbeddingMatcher( 'https://twitter.com/wordpress' ),
- onRequestMatch: createJSONResponse( {
- url: 'https://twitter.com/wordpress',
- html: 'Mock success response.
',
- type: 'rich',
- provider_name: 'Twitter',
- provider_url: 'https://twitter.com',
- version: '1.0',
- } ),
- },
-];
-
-describe( 'Embed block inside a locked all parent', () => {
- beforeAll( async () => {
- await activatePlugin( 'gutenberg-test-innerblocks-locking-all-embed' );
- } );
-
- beforeEach( async () => {
- await setUpResponseMocking( MOCK_RESPONSES );
- await createNewPost();
- } );
-
- afterAll( async () => {
- await deactivatePlugin(
- 'gutenberg-test-innerblocks-locking-all-embed'
- );
- } );
-
- it( 'embed block should be able to embed external content', async () => {
- await insertBlock( 'Test Inner Blocks Locking All Embed' );
- const embedInputSelector =
- '.components-placeholder__input[aria-label="Embed URL"]';
- await page.waitForSelector( embedInputSelector );
- await page.click( embedInputSelector );
- // This URL should not have a trailing slash.
- await page.keyboard.type( 'https://twitter.com/wordpress' );
- await page.keyboard.press( 'Enter' );
- // The twitter block should appear correctly.
- await page.waitForSelector( 'figure.wp-block-embed' );
- } );
-} );
diff --git a/packages/e2e-tests/specs/editor/various/is-typing.test.js b/packages/e2e-tests/specs/editor/various/is-typing.test.js
deleted file mode 100644
index c6208470ffb8e5..00000000000000
--- a/packages/e2e-tests/specs/editor/various/is-typing.test.js
+++ /dev/null
@@ -1,101 +0,0 @@
-/**
- * WordPress dependencies
- */
-import {
- clickBlockAppender,
- createNewPost,
- showBlockToolbar,
-} from '@wordpress/e2e-test-utils';
-
-describe( 'isTyping', () => {
- beforeEach( async () => {
- await createNewPost();
- } );
-
- it( 'should hide the toolbar when typing', async () => {
- const blockToolbarSelector = '.block-editor-block-toolbar';
-
- await clickBlockAppender();
-
- // Type in a paragraph.
- await page.keyboard.type( 'Type' );
-
- // Toolbar is hidden
- let blockToolbar = await page.$( blockToolbarSelector );
- expect( blockToolbar ).toBe( null );
-
- // Moving the mouse shows the toolbar.
- await showBlockToolbar();
-
- // Toolbar is visible.
- blockToolbar = await page.$( blockToolbarSelector );
- expect( blockToolbar ).not.toBe( null );
-
- // Typing again hides the toolbar
- await page.keyboard.type( ' and continue' );
-
- // Toolbar is hidden again
- blockToolbar = await page.$( blockToolbarSelector );
- expect( blockToolbar ).toBe( null );
- } );
-
- it( 'should not close the dropdown when typing in it', async () => {
- // Adds a Dropdown with an input to all blocks.
- await page.evaluate( () => {
- const { Dropdown, ToolbarButton, Fill } = wp.components;
- const { createElement: el, Fragment } = wp.element;
- function AddDropdown( BlockListBlock ) {
- return ( props ) => {
- return el(
- Fragment,
- {},
- el(
- Fill,
- { name: 'BlockControls' },
- el( Dropdown, {
- renderToggle: ( { onToggle } ) =>
- el(
- ToolbarButton,
- {
- onClick: onToggle,
- className: 'dropdown-open',
- },
- 'Open Dropdown'
- ),
- renderContent: () =>
- el( 'input', {
- className: 'dropdown-input',
- } ),
- } )
- ),
- el( BlockListBlock, props )
- );
- };
- }
-
- wp.hooks.addFilter(
- 'editor.BlockListBlock',
- 'e2e-test/add-dropdown',
- AddDropdown
- );
- } );
-
- await clickBlockAppender();
-
- // Type in a paragraph.
- await page.keyboard.type( 'Type' );
-
- // Show Toolbar.
- await showBlockToolbar();
-
- // Open the dropdown.
- await page.click( '.dropdown-open' );
-
- // Type inside the dropdown's input
- await page.type( '.dropdown-input', 'Random' );
-
- // The input should still be visible.
- const input = await page.$( '.dropdown-input' );
- expect( input ).not.toBe( null );
- } );
-} );
diff --git a/packages/e2e-tests/specs/site-editor/multi-entity-saving.test.js b/packages/e2e-tests/specs/site-editor/multi-entity-saving.test.js
deleted file mode 100644
index fe5334d2a12769..00000000000000
--- a/packages/e2e-tests/specs/site-editor/multi-entity-saving.test.js
+++ /dev/null
@@ -1,239 +0,0 @@
-/**
- * WordPress dependencies
- */
-import {
- createNewPost,
- disablePrePublishChecks,
- getOption,
- insertBlock,
- publishPost,
- setOption,
- trashAllPosts,
- activateTheme,
- clickButton,
- createReusableBlock,
- deleteAllTemplates,
- canvas,
-} from '@wordpress/e2e-test-utils';
-
-describe( 'Multi-entity save flow', () => {
- // Selectors - usable between Post/Site editors.
- const checkedBoxSelector = '.components-checkbox-control__checked';
- const checkboxInputSelector = '.components-checkbox-control__input';
- const entitiesSaveSelector = '.editor-entities-saved-states__save-button';
- const savePanelSelector = '.entities-saved-states__panel';
- const closePanelButtonSelector =
- '.editor-post-publish-panel__header-cancel-button button:not(:disabled)';
-
- // Reusable assertions across Post/Site editors.
- const assertAllBoxesChecked = async () => {
- const checkedBoxes = await page.$$( checkedBoxSelector );
- const checkboxInputs = await page.$$( checkboxInputSelector );
- expect( checkedBoxes.length - checkboxInputs.length ).toBe( 0 );
- };
- const assertExistence = async ( selector, shouldBePresent ) => {
- const element = await page.$( selector );
- if ( shouldBePresent ) {
- expect( element ).not.toBeNull();
- } else {
- expect( element ).toBeNull();
- }
- };
-
- let originalSiteTitle, originalBlogDescription;
-
- beforeAll( async () => {
- await activateTheme( 'emptytheme' );
- await deleteAllTemplates( 'wp_template' );
- await deleteAllTemplates( 'wp_template_part' );
- await trashAllPosts( 'wp_block' );
-
- // Get the current Site Title and Site Tagline, so that we can reset
- // them back to the original values once the test suite has finished.
- originalSiteTitle = await getOption( 'blogname' );
- originalBlogDescription = await getOption( 'blogdescription' );
- } );
-
- afterAll( async () => {
- await activateTheme( 'twentytwentyone' );
-
- // Reset the Site Title and Site Tagline back to their original values.
- await setOption( 'blogname', originalSiteTitle );
- await setOption( 'blogdescription', originalBlogDescription );
- } );
-
- describe( 'Post Editor', () => {
- // Selectors - Post editor specific.
- const draftSavedSelector = '.editor-post-saved-state.is-saved';
- const multiSaveSelector =
- '.editor-post-publish-button__button.has-changes-dot';
- const savePostSelector = '.editor-post-publish-button__button';
- const enabledSavePostSelector = `${ savePostSelector }[aria-disabled=false]`;
- const publishA11ySelector =
- '.edit-post-layout__toggle-publish-panel-button';
- const saveA11ySelector =
- '.edit-post-layout__toggle-entities-saved-states-panel-button';
- const publishPanelSelector = '.editor-post-publish-panel';
-
- // Reusable assertions inside Post editor.
- const assertMultiSaveEnabled = async () => {
- const multiSaveButton =
- await page.waitForSelector( multiSaveSelector );
- expect( multiSaveButton ).not.toBeNull();
- };
- const assertMultiSaveDisabled = async () => {
- const multiSaveButton = await page.waitForSelector(
- multiSaveSelector,
- { hidden: true }
- );
- expect( multiSaveButton ).toBeNull();
- };
-
- it( 'Save flow should work as expected.', async () => {
- await createNewPost();
- // Edit the page some.
- await canvas().waitForSelector( '.editor-post-title' );
- await canvas().click( '.editor-post-title' );
- await page.keyboard.type( 'Test Post...' );
- await page.keyboard.press( 'Enter' );
-
- // Should not trigger multi-entity save button with only post edited.
- await assertMultiSaveDisabled();
-
- // Should only have publish panel a11y button active with only post edited.
- await assertExistence( publishA11ySelector, true );
- await assertExistence( saveA11ySelector, false );
- await assertExistence( publishPanelSelector, false );
- await assertExistence( savePanelSelector, false );
-
- // Add a reusable block and edit it.
- await createReusableBlock( 'Hi!', 'Test' );
- await canvas().waitForSelector( 'p[data-type="core/paragraph"]' );
- await canvas().click( 'p[data-type="core/paragraph"]' );
- await page.keyboard.type( 'Oh!' );
-
- // Should trigger multi-entity save button once template part edited.
- await assertMultiSaveEnabled();
-
- // Should only have save panel a11y button active after child entities edited.
- await assertExistence( publishA11ySelector, false );
- await assertExistence( saveA11ySelector, true );
- await assertExistence( publishPanelSelector, false );
- await assertExistence( savePanelSelector, false );
-
- // Opening panel has boxes checked by default.
- await page.click( savePostSelector );
- await page.waitForSelector( savePanelSelector );
- await assertAllBoxesChecked();
-
- // Should not show other panels (or their a11y buttons) while save panel opened.
- await assertExistence( publishA11ySelector, false );
- await assertExistence( saveA11ySelector, false );
- await assertExistence( publishPanelSelector, false );
-
- // Publish panel should open after saving.
- await page.click( entitiesSaveSelector );
- await page.waitForSelector( publishPanelSelector );
-
- // No other panels (or their a11y buttons) should be present with publish panel open.
- await assertExistence( publishA11ySelector, false );
- await assertExistence( saveA11ySelector, false );
- await assertExistence( savePanelSelector, false );
-
- // Close publish panel.
- const closePanelButton = await page.waitForSelector(
- closePanelButtonSelector
- );
- await closePanelButton.click();
-
- // Verify saving is disabled.
- const draftSaved = await page.waitForSelector( draftSavedSelector );
- expect( draftSaved ).not.toBeNull();
- await assertMultiSaveDisabled();
- await assertExistence( saveA11ySelector, false );
-
- await publishPost();
- // Wait for the success notice specifically for the published post.
- // `publishPost()` has a similar check but it only checks for the
- // existence of any snackbars. In this case, there's another "Site updated"
- // notice which will be sufficient for that and thus creating a false-positive.
- await page.waitForXPath(
- '//*[@id="a11y-speak-polite"][contains(text(), "Post published")]'
- );
-
- // Unselect the blocks to avoid clicking the block toolbar.
- await page.evaluate( () => {
- wp.data.dispatch( 'core/block-editor' ).clearSelectedBlock();
- } );
-
- // Update the post.
- await canvas().click( '.editor-post-title' );
- await page.keyboard.type( '...more title!' );
-
- // Verify update button is enabled.
- const enabledSaveButton = await page.waitForSelector(
- enabledSavePostSelector
- );
- expect( enabledSaveButton ).not.toBeNull();
- // Verify multi-entity saving not enabled.
- await assertMultiSaveDisabled();
- await assertExistence( saveA11ySelector, false );
-
- // Update reusable block again.
- await canvas().click( 'p[data-type="core/paragraph"]' );
- // We need to click again due to the clickthrough overlays in reusable blocks.
- await canvas().click( 'p[data-type="core/paragraph"]' );
- await page.keyboard.type( 'R!' );
-
- // Multi-entity saving should be enabled.
- await assertMultiSaveEnabled();
- await assertExistence( saveA11ySelector, true );
- } );
-
- it( 'Site blocks should save individually', async () => {
- await createNewPost();
- await disablePrePublishChecks();
-
- await insertBlock( 'Site Title' );
- // Ensure title is retrieved before typing.
- await page.waitForXPath(
- `//a[contains(text(), "${ originalSiteTitle }")]`
- );
- const editableSiteTitleSelector =
- '.wp-block-site-title a[contenteditable="true"]';
- await canvas().waitForSelector( editableSiteTitleSelector );
- await canvas().focus( editableSiteTitleSelector );
- await page.keyboard.type( '...' );
-
- await insertBlock( 'Site Tagline' );
- // Wait for the placeholder.
- await canvas().waitForXPath(
- '//span[@data-rich-text-placeholder="Write site tagline…"]'
- );
- const editableSiteTagLineSelector =
- '.wp-block-site-tagline[contenteditable="true"]';
- await canvas().waitForSelector( editableSiteTagLineSelector );
- await canvas().focus( editableSiteTagLineSelector );
- await page.keyboard.type( 'Just another WordPress site' );
-
- await clickButton( 'Publish' );
- await page.waitForSelector( savePanelSelector );
- let checkboxInputs = await page.$$( checkboxInputSelector );
- expect( checkboxInputs ).toHaveLength( 3 );
-
- await checkboxInputs[ 1 ].click();
- await page.click( entitiesSaveSelector );
-
- // Wait for the snackbar notice that the post has been published.
- await page.waitForSelector( '.components-snackbar' );
-
- await clickButton( 'Update…' );
- await page.waitForSelector( savePanelSelector );
-
- await page.waitForSelector( checkboxInputSelector );
- checkboxInputs = await page.$$( checkboxInputSelector );
-
- expect( checkboxInputs ).toHaveLength( 1 );
- } );
- } );
-} );
diff --git a/packages/e2e-tests/specs/site-editor/site-editor-export.test.js b/packages/e2e-tests/specs/site-editor/site-editor-export.test.js
deleted file mode 100644
index 0e560e9b7e0ade..00000000000000
--- a/packages/e2e-tests/specs/site-editor/site-editor-export.test.js
+++ /dev/null
@@ -1,63 +0,0 @@
-/**
- * External dependencies
- */
-import fs from 'fs';
-import path from 'path';
-import os from 'os';
-
-/**
- * WordPress dependencies
- */
-import {
- deleteAllTemplates,
- activateTheme,
- visitSiteEditor,
- enterEditMode,
- clickOnMoreMenuItem,
-} from '@wordpress/e2e-test-utils';
-
-async function waitForFileExists( filePath, timeout = 10000 ) {
- const start = Date.now();
- while ( ! fs.existsSync( filePath ) ) {
- // Puppeteer doesn't have an API for managing file downloads.
- // We are using `waitForTimeout` to add delays between check of file existence.
- // eslint-disable-next-line no-restricted-syntax
- await page.waitForTimeout( 1000 );
- if ( Date.now() - start > timeout ) {
- throw Error( 'waitForFileExists timeout' );
- }
- }
-}
-
-describe( 'Site Editor Templates Export', () => {
- beforeAll( async () => {
- await activateTheme( 'emptytheme' );
- await deleteAllTemplates( 'wp_template' );
- await deleteAllTemplates( 'wp_template_part' );
- } );
-
- afterAll( async () => {
- await activateTheme( 'twentytwentyone' );
- } );
-
- beforeEach( async () => {
- await visitSiteEditor();
- await enterEditMode();
- } );
-
- it( 'clicking export should download emptytheme.zip file', async () => {
- const directory = fs.mkdtempSync(
- path.join( os.tmpdir(), 'test-edit-site-export-' )
- );
- await page._client.send( 'Page.setDownloadBehavior', {
- behavior: 'allow',
- downloadPath: directory,
- } );
-
- await clickOnMoreMenuItem( 'Export', 'site-editor' );
- const filePath = path.join( directory, 'emptytheme.zip' );
- await waitForFileExists( filePath );
- expect( fs.existsSync( filePath ) ).toBe( true );
- fs.unlinkSync( filePath );
- } );
-} );
diff --git a/packages/edit-post/CHANGELOG.md b/packages/edit-post/CHANGELOG.md
index e8e0fa1632a7da..70c562e812f1ea 100644
--- a/packages/edit-post/CHANGELOG.md
+++ b/packages/edit-post/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 7.24.0 (2023-11-29)
+
## 7.23.0 (2023-11-16)
## 7.22.0 (2023-11-02)
diff --git a/packages/edit-post/package.json b/packages/edit-post/package.json
index 31c5c209fa96c2..0bc4376cedec94 100644
--- a/packages/edit-post/package.json
+++ b/packages/edit-post/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/edit-post",
- "version": "7.23.0",
+ "version": "7.24.0",
"description": "Edit Post module for WordPress.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/edit-post/src/components/device-preview/index.js b/packages/edit-post/src/components/device-preview/index.js
index ab38523969ace1..a10688d1850237 100644
--- a/packages/edit-post/src/components/device-preview/index.js
+++ b/packages/edit-post/src/components/device-preview/index.js
@@ -15,22 +15,27 @@ import { store as coreStore } from '@wordpress/core-data';
import { store as editPostStore } from '../../store';
export default function DevicePreview() {
- const { hasActiveMetaboxes, isPostSaveable, isViewable, deviceType } =
- useSelect( ( select ) => {
- const { getEditedPostAttribute } = select( editorStore );
- const { getPostType } = select( coreStore );
- const postType = getPostType( getEditedPostAttribute( 'type' ) );
+ const {
+ hasActiveMetaboxes,
+ isPostSaveable,
+ isViewable,
+ deviceType,
+ showIconLabels,
+ } = useSelect( ( select ) => {
+ const { getEditedPostAttribute } = select( editorStore );
+ const { getPostType } = select( coreStore );
+ const postType = getPostType( getEditedPostAttribute( 'type' ) );
- return {
- hasActiveMetaboxes: select( editPostStore ).hasMetaBoxes(),
- isPostSaveable: select( editorStore ).isEditedPostSaveable(),
- isViewable: postType?.viewable ?? false,
- deviceType:
- select(
- editPostStore
- ).__experimentalGetPreviewDeviceType(),
- };
- }, [] );
+ return {
+ hasActiveMetaboxes: select( editPostStore ).hasMetaBoxes(),
+ isPostSaveable: select( editorStore ).isEditedPostSaveable(),
+ isViewable: postType?.viewable ?? false,
+ deviceType:
+ select( editPostStore ).__experimentalGetPreviewDeviceType(),
+ showIconLabels:
+ select( editPostStore ).isFeatureActive( 'showIconLabels' ),
+ };
+ }, [] );
const { __experimentalSetPreviewDeviceType: setPreviewDeviceType } =
useDispatch( editPostStore );
@@ -41,6 +46,7 @@ export default function DevicePreview() {
deviceType={ deviceType }
setDeviceType={ setPreviewDeviceType }
label={ __( 'Preview' ) }
+ showIconLabels={ showIconLabels }
>
{ ( { onClose } ) =>
isViewable && (
diff --git a/packages/edit-post/src/components/header/document-actions/index.js b/packages/edit-post/src/components/header/document-actions/index.js
index 105b31e3122ac9..5ce58f179f3ab3 100644
--- a/packages/edit-post/src/components/header/document-actions/index.js
+++ b/packages/edit-post/src/components/header/document-actions/index.js
@@ -13,6 +13,7 @@ import {
import { layout, chevronLeftSmall, chevronRightSmall } from '@wordpress/icons';
import { store as commandsStore } from '@wordpress/commands';
import { displayShortcut } from '@wordpress/keycodes';
+import { store as editorStore } from '@wordpress/editor';
/**
* Internal dependencies
@@ -28,7 +29,7 @@ function DocumentActions() {
};
}, [] );
const { clearSelectedBlock } = useDispatch( blockEditorStore );
- const { setIsEditingTemplate } = useDispatch( editPostStore );
+ const { setRenderingMode } = useDispatch( editorStore );
const { open: openCommandCenter } = useDispatch( commandsStore );
if ( ! template ) {
@@ -48,7 +49,7 @@ function DocumentActions() {
className="edit-post-document-actions__back"
onClick={ () => {
clearSelectedBlock();
- setIsEditingTemplate( false );
+ setRenderingMode( 'post-only' );
} }
icon={ isRTL() ? chevronRightSmall : chevronLeftSmall }
>
diff --git a/packages/edit-post/src/components/header/header-toolbar/index.js b/packages/edit-post/src/components/header/header-toolbar/index.js
index 9c650f8660da18..9c007da8e115f0 100644
--- a/packages/edit-post/src/components/header/header-toolbar/index.js
+++ b/packages/edit-post/src/components/header/header-toolbar/index.js
@@ -105,6 +105,7 @@ function HeaderToolbar( { hasFixedToolbar, setListViewToggleElement } ) {
variant={ showIconLabels ? 'tertiary' : undefined }
aria-expanded={ isListViewOpen }
ref={ setListViewToggleElement }
+ size="compact"
/>
>
);
@@ -159,17 +160,20 @@ function HeaderToolbar( { hasFixedToolbar, setListViewToggleElement } ) {
showIconLabels ? 'tertiary' : undefined
}
disabled={ isTextModeEnabled }
+ size="compact"
/>
) }
{ overflowItems }
>
diff --git a/packages/edit-post/src/components/header/header-toolbar/style.scss b/packages/edit-post/src/components/header/header-toolbar/style.scss
index 960199a1564516..717d5cd760db58 100644
--- a/packages/edit-post/src/components/header/header-toolbar/style.scss
+++ b/packages/edit-post/src/components/header/header-toolbar/style.scss
@@ -39,9 +39,12 @@
// here to the original button styles
.edit-post-header-toolbar__left > .components-button.has-icon,
.edit-post-header-toolbar__left > .components-dropdown > .components-button.has-icon {
- height: $button-size;
- min-width: $button-size;
- padding: 6px;
+ // @todo: override toolbar group inherited paddings from components/block-tools/style.scss.
+ // This is best fixed by making the mover control area a proper single toolbar group.
+ // It needs specificity due to style inherited from .components-accessible-toolbar .components-button.has-icon.has-icon.
+ height: $button-size-compact;
+ min-width: $button-size-compact;
+ padding: 4px;
&.is-pressed {
background: $gray-900;
@@ -49,7 +52,7 @@
&:focus:not(:disabled) {
box-shadow: 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color), inset 0 0 0 $border-width $white;
- outline: 1px solid transparent;
+ outline: $border-width solid transparent;
}
&::before {
@@ -79,14 +82,15 @@
.edit-post-header-toolbar__left {
display: inline-flex;
align-items: center;
- padding-left: $grid-unit-10;
+ padding-left: $grid-unit-20;
+ gap: $grid-unit-10;
// Some plugins add buttons here despite best practices.
// Push them a bit rightwards to fit the top toolbar.
margin-right: $grid-unit-10;
- @include break-small() {
- padding-left: $grid-unit-30;
+ @include break-medium() {
+ padding-left: $grid-unit-50 * 0.5;
}
@include break-wide() {
@@ -95,16 +99,14 @@
}
.edit-post-header-toolbar .edit-post-header-toolbar__left > .edit-post-header-toolbar__inserter-toggle.has-icon {
- margin-right: $grid-unit-10;
- // Special dimensions for this button.
- min-width: 32px;
- width: 32px;
- height: 32px;
+ min-width: $button-size-compact;
+ width: $button-size-compact;
+ height: $button-size-compact;
padding: 0;
.show-icon-labels & {
width: auto;
- height: 36px;
+ height: $button-size-compact;
padding: 0 $grid-unit-10;
}
}
diff --git a/packages/edit-post/src/components/header/index.js b/packages/edit-post/src/components/header/index.js
index c1c8222394979d..8ac8e47e01dbaa 100644
--- a/packages/edit-post/src/components/header/index.js
+++ b/packages/edit-post/src/components/header/index.js
@@ -10,7 +10,11 @@ import {
privateApis as blockEditorPrivateApis,
store as blockEditorStore,
} from '@wordpress/block-editor';
-import { PostSavedState, PostPreviewButton } from '@wordpress/editor';
+import {
+ PostSavedState,
+ PostPreviewButton,
+ store as editorStore,
+} from '@wordpress/editor';
import { useEffect, useRef, useState } from '@wordpress/element';
import { useSelect } from '@wordpress/data';
import { __ } from '@wordpress/i18n';
@@ -73,7 +77,8 @@ function Header( {
blockSelectionStart:
select( blockEditorStore ).getBlockSelectionStart(),
hasActiveMetaboxes: select( editPostStore ).hasMetaBoxes(),
- isEditingTemplate: select( editPostStore ).isEditingTemplate(),
+ isEditingTemplate:
+ select( editorStore ).getRenderingMode() !== 'post-only',
isPublishSidebarOpened:
select( editPostStore ).isPublishSidebarOpened(),
hasFixedToolbar: getPreference( 'core/edit-post', 'fixedToolbar' ),
diff --git a/packages/edit-post/src/components/header/mode-switcher/index.js b/packages/edit-post/src/components/header/mode-switcher/index.js
index b8d7f912180b60..93c4ead745ffb4 100644
--- a/packages/edit-post/src/components/header/mode-switcher/index.js
+++ b/packages/edit-post/src/components/header/mode-switcher/index.js
@@ -44,7 +44,8 @@ function ModeSwitcher() {
select( editorStore ).getEditorSettings().richEditingEnabled,
isCodeEditingEnabled:
select( editorStore ).getEditorSettings().codeEditingEnabled,
- isEditingTemplate: select( editPostStore ).isEditingTemplate(),
+ isEditingTemplate:
+ select( editorStore ).getRenderingMode() !== 'post-only',
mode: select( editPostStore ).getEditorMode(),
} ),
[]
diff --git a/packages/edit-post/src/components/header/more-menu/index.js b/packages/edit-post/src/components/header/more-menu/index.js
index 6085ce65e51e5e..3ac1178b8815a9 100644
--- a/packages/edit-post/src/components/header/more-menu/index.js
+++ b/packages/edit-post/src/components/header/more-menu/index.js
@@ -26,6 +26,7 @@ const MoreMenu = ( { showIconLabels } ) => {
toggleProps={ {
showTooltip: ! showIconLabels,
...( showIconLabels && { variant: 'tertiary' } ),
+ size: 'compact',
} }
>
{ ( { onClose } ) => (
diff --git a/packages/edit-post/src/components/header/style.scss b/packages/edit-post/src/components/header/style.scss
index 382364b3e35800..6e634427e21986 100644
--- a/packages/edit-post/src/components/header/style.scss
+++ b/packages/edit-post/src/components/header/style.scss
@@ -93,11 +93,7 @@
padding-right: $grid-unit-20 - ($grid-unit-15 * 0.5);
}
- gap: $grid-unit-05;
-
- @include break-small() {
- gap: $grid-unit-10;
- }
+ gap: $grid-unit-10;
}
.edit-post-header-preview__grouping-external {
diff --git a/packages/edit-post/src/components/header/writing-menu/index.js b/packages/edit-post/src/components/header/writing-menu/index.js
index de6acf67c19834..26cc6bc5871650 100644
--- a/packages/edit-post/src/components/header/writing-menu/index.js
+++ b/packages/edit-post/src/components/header/writing-menu/index.js
@@ -1,7 +1,7 @@
/**
* WordPress dependencies
*/
-import { useSelect, useDispatch, useRegistry } from '@wordpress/data';
+import { useDispatch, useRegistry } from '@wordpress/data';
import { MenuGroup } from '@wordpress/components';
import { __, _x } from '@wordpress/i18n';
import { useViewportMatch } from '@wordpress/compose';
@@ -10,7 +10,6 @@ import {
PreferenceToggleMenuItem,
store as preferencesStore,
} from '@wordpress/preferences';
-import { store as blockEditorStore } from '@wordpress/block-editor';
/**
* Internal dependencies
@@ -19,11 +18,6 @@ import { store as postEditorStore } from '../../../store';
function WritingMenu() {
const registry = useRegistry();
- const isDistractionFree = useSelect(
- ( select ) =>
- select( blockEditorStore ).getSettings().isDistractionFree,
- []
- );
const { setIsInserterOpened, setIsListViewOpened, closeGeneralSidebar } =
useDispatch( postEditorStore );
@@ -38,6 +32,10 @@ function WritingMenu() {
} );
};
+ const turnOffDistractionFree = () => {
+ setPreference( 'core/edit-post', 'distractionFree', false );
+ };
+
const isLargeViewport = useViewportMatch( 'medium' );
if ( ! isLargeViewport ) {
return null;
@@ -47,8 +45,8 @@ function WritingMenu() {
+
-
);
}
diff --git a/packages/edit-post/src/components/layout/index.js b/packages/edit-post/src/components/layout/index.js
index 9c854dc33636db..bbf33613cb4241 100644
--- a/packages/edit-post/src/components/layout/index.js
+++ b/packages/edit-post/src/components/layout/index.js
@@ -165,7 +165,8 @@ function Layout() {
const postTypeLabel = getPostTypeLabel();
return {
- isTemplateMode: select( editPostStore ).isEditingTemplate(),
+ isTemplateMode:
+ select( editorStore ).getRenderingMode() !== 'post-only',
hasFixedToolbar:
select( editPostStore ).isFeatureActive( 'fixedToolbar' ),
sidebarIsOpened: !! (
diff --git a/packages/edit-post/src/components/preferences-modal/index.js b/packages/edit-post/src/components/preferences-modal/index.js
index c08dda81f8e594..833a10fce13c33 100644
--- a/packages/edit-post/src/components/preferences-modal/index.js
+++ b/packages/edit-post/src/components/preferences-modal/index.js
@@ -76,6 +76,10 @@ export default function EditPostPreferencesModal() {
closeGeneralSidebar();
};
+ const turnOffDistractionFree = () => {
+ setPreference( 'core/edit-post', 'distractionFree', false );
+ };
+
const sections = useMemo(
() => [
{
@@ -86,49 +90,16 @@ export default function EditPostPreferencesModal() {
{ isLargeViewport && (
) }
-
-
-
-
-
+
-
{ showBlockBreadcrumbsOption && (
) }
- >
- ),
- },
- {
- name: 'blocks',
- tabLabel: __( 'Blocks' ),
- content: (
- <>
-
-
-
-
-
-
-
- >
- ),
- },
- {
- name: 'panels',
- tabLabel: __( 'Panels' ),
- content: (
- <>
@@ -242,12 +159,108 @@ export default function EditPostPreferencesModal() {
/>
-
+ >
+ ),
+ },
+ {
+ name: 'appearance',
+ tabLabel: __( 'Appearance' ),
+ content: (
+
+
+
+
+
+
+ ),
+ },
+ {
+ name: 'accessibility',
+ tabLabel: __( 'Accessibility' ),
+ content: (
+ <>
+
+
+
+
+
+
+ >
+ ),
+ },
+ {
+ name: 'blocks',
+ tabLabel: __( 'Blocks' ),
+ content: (
+ <>
+
+
+
+
+
+
>
),
},
diff --git a/packages/edit-post/src/components/preferences-modal/test/index.js b/packages/edit-post/src/components/preferences-modal/test/index.js
index a0946b478d8f23..01ac1a88fbe7d8 100644
--- a/packages/edit-post/src/components/preferences-modal/test/index.js
+++ b/packages/edit-post/src/components/preferences-modal/test/index.js
@@ -1,13 +1,12 @@
/**
* External dependencies
*/
-import { render, screen, within } from '@testing-library/react';
+import { render, screen } from '@testing-library/react';
/**
* WordPress dependencies
*/
import { useSelect } from '@wordpress/data';
-import { useViewportMatch } from '@wordpress/compose';
/**
* Internal dependencies
@@ -19,56 +18,6 @@ jest.mock( '@wordpress/data/src/components/use-select', () => jest.fn() );
jest.mock( '@wordpress/compose/src/hooks/use-viewport-match', () => jest.fn() );
describe( 'EditPostPreferencesModal', () => {
- describe( 'should match snapshot when the modal is active', () => {
- afterEach( () => {
- useViewportMatch.mockClear();
- } );
- it( 'large viewports', async () => {
- useSelect.mockImplementation( () => [ true, true, false ] );
- useViewportMatch.mockImplementation( () => true );
- render( );
- const tabPanel = await screen.findByRole( 'tabpanel', {
- name: 'General',
- } );
-
- expect(
- within( tabPanel ).getByLabelText(
- 'Include pre-publish checklist'
- )
- ).toBeInTheDocument();
- } );
- it( 'small viewports', async () => {
- useSelect.mockImplementation( () => [ true, true, false ] );
- useViewportMatch.mockImplementation( () => false );
- render( );
-
- // The tabpanel is not rendered in small viewports.
- expect(
- screen.queryByRole( 'tabpanel', {
- name: 'General',
- } )
- ).not.toBeInTheDocument();
-
- const dialog = screen.getByRole( 'dialog', {
- name: 'Preferences',
- } );
-
- // Checkbox toggle controls are not rendered in small viewports.
- expect(
- within( dialog ).queryByLabelText(
- 'Include pre-publish checklist'
- )
- ).not.toBeInTheDocument();
-
- // Individual preference nav buttons are rendered in small viewports.
- expect(
- within( dialog ).getByRole( 'button', {
- name: 'General',
- } )
- ).toBeInTheDocument();
- } );
- } );
-
it( 'should not render when the modal is not active', () => {
useSelect.mockImplementation( () => [ false, false, false ] );
render( );
diff --git a/packages/edit-post/src/components/sidebar/settings-header/index.js b/packages/edit-post/src/components/sidebar/settings-header/index.js
index f4f7a34db0bc3d..fb2bf8f486f51c 100644
--- a/packages/edit-post/src/components/sidebar/settings-header/index.js
+++ b/packages/edit-post/src/components/sidebar/settings-header/index.js
@@ -18,12 +18,12 @@ const SettingsHeader = ( { sidebarName } ) => {
const openBlockSettings = () => openGeneralSidebar( 'edit-post/block' );
const { documentLabel, isTemplateMode } = useSelect( ( select ) => {
- const postTypeLabel = select( editorStore ).getPostTypeLabel();
+ const { getPostTypeLabel, getRenderingMode } = select( editorStore );
return {
// translators: Default label for the Document sidebar tab, not selected.
- documentLabel: postTypeLabel || _x( 'Document', 'noun' ),
- isTemplateMode: select( editPostStore ).isEditingTemplate(),
+ documentLabel: getPostTypeLabel() || _x( 'Document', 'noun' ),
+ isTemplateMode: getRenderingMode() !== 'post-only',
};
}, [] );
diff --git a/packages/edit-post/src/components/sidebar/settings-sidebar/index.js b/packages/edit-post/src/components/sidebar/settings-sidebar/index.js
index 8450fec0225932..42ad255d79e053 100644
--- a/packages/edit-post/src/components/sidebar/settings-sidebar/index.js
+++ b/packages/edit-post/src/components/sidebar/settings-sidebar/index.js
@@ -11,6 +11,7 @@ import { isRTL, __ } from '@wordpress/i18n';
import { drawerLeft, drawerRight } from '@wordpress/icons';
import { store as interfaceStore } from '@wordpress/interface';
import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
+import { store as editorStore } from '@wordpress/editor';
/**
* Internal dependencies
@@ -63,7 +64,8 @@ const SettingsSidebar = () => {
return {
sidebarName: sidebar,
keyboardShortcut: shortcut,
- isTemplateMode: select( editPostStore ).isEditingTemplate(),
+ isTemplateMode:
+ select( editorStore ).getRenderingMode() !== 'post-only',
};
},
[]
diff --git a/packages/edit-post/src/components/start-page-options/index.js b/packages/edit-post/src/components/start-page-options/index.js
index 77264d27a5e7df..0ef3e166e8ee1a 100644
--- a/packages/edit-post/src/components/start-page-options/index.js
+++ b/packages/edit-post/src/components/start-page-options/index.js
@@ -90,11 +90,11 @@ function StartPageOptionsModal( { onClose } ) {
export default function StartPageOptions() {
const [ isClosed, setIsClosed ] = useState( false );
const shouldEnableModal = useSelect( ( select ) => {
- const { isCleanNewPost } = select( editorStore );
- const { isEditingTemplate, isFeatureActive } = select( editPostStore );
+ const { isCleanNewPost, getRenderingMode } = select( editorStore );
+ const { isFeatureActive } = select( editPostStore );
return (
- ! isEditingTemplate() &&
+ getRenderingMode() === 'post-only' &&
! isFeatureActive( 'welcomeGuide' ) &&
isCleanNewPost()
);
diff --git a/packages/edit-post/src/components/text-editor/index.js b/packages/edit-post/src/components/text-editor/index.js
index b4b2ad64133a82..871273c4a9e83c 100644
--- a/packages/edit-post/src/components/text-editor/index.js
+++ b/packages/edit-post/src/components/text-editor/index.js
@@ -3,13 +3,14 @@
*/
import {
PostTextEditor,
- PostTitle,
+ PostTitleRaw,
store as editorStore,
} from '@wordpress/editor';
import { Button } from '@wordpress/components';
import { useDispatch, useSelect } from '@wordpress/data';
import { __ } from '@wordpress/i18n';
import { displayShortcut } from '@wordpress/keycodes';
+import { useEffect, useRef } from '@wordpress/element';
/**
* Internal dependencies
@@ -22,6 +23,23 @@ export default function TextEditor() {
}, [] );
const { switchEditorMode } = useDispatch( editPostStore );
+ const { isWelcomeGuideVisible } = useSelect( ( select ) => {
+ const { isFeatureActive } = select( editPostStore );
+
+ return {
+ isWelcomeGuideVisible: isFeatureActive( 'welcomeGuide' ),
+ };
+ }, [] );
+
+ const titleRef = useRef();
+
+ useEffect( () => {
+ if ( isWelcomeGuideVisible ) {
+ return;
+ }
+ titleRef?.current?.focus();
+ }, [ isWelcomeGuideVisible ] );
+
return (
{ isRichEditingEnabled && (
@@ -37,7 +55,7 @@ export default function TextEditor() {
) }
diff --git a/packages/edit-post/src/components/text-editor/style.scss b/packages/edit-post/src/components/text-editor/style.scss
index 925e88df27180b..c02e983057e6ef 100644
--- a/packages/edit-post/src/components/text-editor/style.scss
+++ b/packages/edit-post/src/components/text-editor/style.scss
@@ -5,7 +5,8 @@
flex-grow: 1;
// Post title.
- .editor-post-title {
+ .editor-post-title:not(.is-raw-text),
+ .editor-post-title.is-raw-text textarea {
max-width: none;
line-height: $default-line-height;
@@ -14,6 +15,7 @@
font-weight: normal;
border: $border-width solid $gray-600;
+ border-radius: 0;
// Same padding as body.
padding: $grid-unit-20;
diff --git a/packages/edit-post/src/components/view-link/index.js b/packages/edit-post/src/components/view-link/index.js
index 10b10d8af1ee3d..3ebf78b851e1f7 100644
--- a/packages/edit-post/src/components/view-link/index.js
+++ b/packages/edit-post/src/components/view-link/index.js
@@ -8,18 +8,28 @@ import { store as editorStore } from '@wordpress/editor';
import { store as coreStore } from '@wordpress/core-data';
import { useSelect } from '@wordpress/data';
+/**
+ * Internal dependencies
+ */
+import { store as editPostStore } from '../../store';
+
export default function ViewLink() {
- const { permalink, isPublished, label } = useSelect( ( select ) => {
- // Grab post type to retrieve the view_item label.
- const postTypeSlug = select( editorStore ).getCurrentPostType();
- const postType = select( coreStore ).getPostType( postTypeSlug );
+ const { permalink, isPublished, label, showIconLabels } = useSelect(
+ ( select ) => {
+ // Grab post type to retrieve the view_item label.
+ const postTypeSlug = select( editorStore ).getCurrentPostType();
+ const postType = select( coreStore ).getPostType( postTypeSlug );
- return {
- permalink: select( editorStore ).getPermalink(),
- isPublished: select( editorStore ).isCurrentPostPublished(),
- label: postType?.labels.view_item,
- };
- }, [] );
+ return {
+ permalink: select( editorStore ).getPermalink(),
+ isPublished: select( editorStore ).isCurrentPostPublished(),
+ label: postType?.labels.view_item,
+ showIconLabels:
+ select( editPostStore ).isFeatureActive( 'showIconLabels' ),
+ };
+ },
+ []
+ );
// Only render the view button if the post is published and has a permalink.
if ( ! isPublished || ! permalink ) {
@@ -32,6 +42,7 @@ export default function ViewLink() {
label={ label || __( 'View post' ) }
href={ permalink }
target="_blank"
+ showTooltip={ ! showIconLabels }
/>
);
}
diff --git a/packages/edit-post/src/components/visual-editor/index.js b/packages/edit-post/src/components/visual-editor/index.js
index 25dcf941970aca..3c5ba8d0373049 100644
--- a/packages/edit-post/src/components/visual-editor/index.js
+++ b/packages/edit-post/src/components/visual-editor/index.js
@@ -6,24 +6,21 @@ import classnames from 'classnames';
/**
* WordPress dependencies
*/
-import { PostTitle, store as editorStore } from '@wordpress/editor';
import {
- BlockList,
+ store as editorStore,
+ privateApis as editorPrivateApis,
+} from '@wordpress/editor';
+import {
BlockTools,
- store as blockEditorStore,
__unstableUseTypewriter as useTypewriter,
- __unstableUseTypingObserver as useTypingObserver,
__experimentalUseResizeCanvas as useResizeCanvas,
- useSettings,
- __experimentalRecursionProvider as RecursionProvider,
privateApis as blockEditorPrivateApis,
} from '@wordpress/block-editor';
-import { useEffect, useRef, useMemo } from '@wordpress/element';
+import { useRef, useMemo } from '@wordpress/element';
import { __unstableMotion as motion } from '@wordpress/components';
import { useSelect } from '@wordpress/data';
import { useMergeRefs } from '@wordpress/compose';
-import { parse, store as blocksStore } from '@wordpress/blocks';
-import { store as coreStore } from '@wordpress/core-data';
+import { store as blocksStore } from '@wordpress/blocks';
/**
* Internal dependencies
@@ -31,128 +28,41 @@ import { store as coreStore } from '@wordpress/core-data';
import { store as editPostStore } from '../../store';
import { unlock } from '../../lock-unlock';
-const {
- LayoutStyle,
- useLayoutClasses,
- useLayoutStyles,
- ExperimentalBlockCanvas: BlockCanvas,
-} = unlock( blockEditorPrivateApis );
+const { ExperimentalBlockCanvas: BlockCanvas } = unlock(
+ blockEditorPrivateApis
+);
+const { EditorCanvas } = unlock( editorPrivateApis );
const isGutenbergPlugin = process.env.IS_GUTENBERG_PLUGIN ? true : false;
-/**
- * Given an array of nested blocks, find the first Post Content
- * block inside it, recursing through any nesting levels,
- * and return its attributes.
- *
- * @param {Array} blocks A list of blocks.
- *
- * @return {Object | undefined} The Post Content block.
- */
-function getPostContentAttributes( blocks ) {
- for ( let i = 0; i < blocks.length; i++ ) {
- if ( blocks[ i ].name === 'core/post-content' ) {
- return blocks[ i ].attributes;
- }
- if ( blocks[ i ].innerBlocks.length ) {
- const nestedPostContent = getPostContentAttributes(
- blocks[ i ].innerBlocks
- );
-
- if ( nestedPostContent ) {
- return nestedPostContent;
- }
- }
- }
-}
-
-function checkForPostContentAtRootLevel( blocks ) {
- for ( let i = 0; i < blocks.length; i++ ) {
- if ( blocks[ i ].name === 'core/post-content' ) {
- return true;
- }
- }
- return false;
-}
-
export default function VisualEditor( { styles } ) {
const {
deviceType,
isWelcomeGuideVisible,
isTemplateMode,
- postContentAttributes,
- editedPostTemplate = {},
- wrapperBlockName,
- wrapperUniqueId,
isBlockBasedTheme,
hasV3BlocksOnly,
} = useSelect( ( select ) => {
- const {
- isFeatureActive,
- isEditingTemplate,
- getEditedPostTemplate,
- __experimentalGetPreviewDeviceType,
- } = select( editPostStore );
- const { getCurrentPostId, getCurrentPostType, getEditorSettings } =
- select( editorStore );
+ const { isFeatureActive, __experimentalGetPreviewDeviceType } =
+ select( editPostStore );
+ const { getEditorSettings, getRenderingMode } = select( editorStore );
const { getBlockTypes } = select( blocksStore );
- const _isTemplateMode = isEditingTemplate();
- const postTypeSlug = getCurrentPostType();
- let _wrapperBlockName;
-
- if ( postTypeSlug === 'wp_block' ) {
- _wrapperBlockName = 'core/block';
- } else if ( ! _isTemplateMode ) {
- _wrapperBlockName = 'core/post-content';
- }
-
const editorSettings = getEditorSettings();
- const supportsTemplateMode = editorSettings.supportsTemplateMode;
- const postType = select( coreStore ).getPostType( postTypeSlug );
- const canEditTemplate = select( coreStore ).canUser(
- 'create',
- 'templates'
- );
return {
deviceType: __experimentalGetPreviewDeviceType(),
isWelcomeGuideVisible: isFeatureActive( 'welcomeGuide' ),
- isTemplateMode: _isTemplateMode,
- postContentAttributes: getEditorSettings().postContentAttributes,
- // Post template fetch returns a 404 on classic themes, which
- // messes with e2e tests, so check it's a block theme first.
- editedPostTemplate:
- postType?.viewable && supportsTemplateMode && canEditTemplate
- ? getEditedPostTemplate()
- : undefined,
- wrapperBlockName: _wrapperBlockName,
- wrapperUniqueId: getCurrentPostId(),
+ isTemplateMode: getRenderingMode() !== 'post-only',
isBlockBasedTheme: editorSettings.__unstableIsBlockBasedTheme,
hasV3BlocksOnly: getBlockTypes().every( ( type ) => {
return type.apiVersion >= 3;
} ),
};
}, [] );
- const { isCleanNewPost } = useSelect( editorStore );
const hasMetaBoxes = useSelect(
( select ) => select( editPostStore ).hasMetaBoxes(),
[]
);
- const {
- hasRootPaddingAwareAlignments,
- isFocusMode,
- themeHasDisabledLayoutStyles,
- themeSupportsLayout,
- } = useSelect( ( select ) => {
- const _settings = select( blockEditorStore ).getSettings();
- return {
- themeHasDisabledLayoutStyles: _settings.disableLayoutStyles,
- themeSupportsLayout: _settings.supportsLayout,
- isFocusMode: _settings.focusMode,
- hasRootPaddingAwareAlignments:
- _settings.__experimentalFeatures?.useRootPaddingAwareAlignments,
- };
- }, [] );
const desktopCanvasStyles = {
height: '100%',
width: '100%',
@@ -171,7 +81,6 @@ export default function VisualEditor( { styles } ) {
borderBottom: 0,
};
const resizedCanvasStyles = useResizeCanvas( deviceType, isTemplateMode );
- const [ globalLayoutSettings ] = useSettings( 'layout' );
const previewMode = 'is-' + deviceType.toLowerCase() + '-preview';
let animatedStyles = isTemplateMode
@@ -192,143 +101,19 @@ export default function VisualEditor( { styles } ) {
const ref = useRef();
const contentRef = useMergeRefs( [ ref, useTypewriter() ] );
- // fallbackLayout is used if there is no Post Content,
- // and for Post Title.
- const fallbackLayout = useMemo( () => {
- if ( isTemplateMode ) {
- return { type: 'default' };
- }
-
- if ( themeSupportsLayout ) {
- // We need to ensure support for wide and full alignments,
- // so we add the constrained type.
- return { ...globalLayoutSettings, type: 'constrained' };
- }
- // Set default layout for classic themes so all alignments are supported.
- return { type: 'default' };
- }, [ isTemplateMode, themeSupportsLayout, globalLayoutSettings ] );
-
- const newestPostContentAttributes = useMemo( () => {
- if ( ! editedPostTemplate?.content && ! editedPostTemplate?.blocks ) {
- return postContentAttributes;
- }
- // When in template editing mode, we can access the blocks directly.
- if ( editedPostTemplate?.blocks ) {
- return getPostContentAttributes( editedPostTemplate?.blocks );
- }
- // If there are no blocks, we have to parse the content string.
- // Best double-check it's a string otherwise the parse function gets unhappy.
- const parseableContent =
- typeof editedPostTemplate?.content === 'string'
- ? editedPostTemplate?.content
- : '';
-
- return getPostContentAttributes( parse( parseableContent ) ) || {};
- }, [
- editedPostTemplate?.content,
- editedPostTemplate?.blocks,
- postContentAttributes,
- ] );
-
- const hasPostContentAtRootLevel = useMemo( () => {
- if ( ! editedPostTemplate?.content && ! editedPostTemplate?.blocks ) {
- return false;
- }
- // When in template editing mode, we can access the blocks directly.
- if ( editedPostTemplate?.blocks ) {
- return checkForPostContentAtRootLevel( editedPostTemplate?.blocks );
- }
- // If there are no blocks, we have to parse the content string.
- // Best double-check it's a string otherwise the parse function gets unhappy.
- const parseableContent =
- typeof editedPostTemplate?.content === 'string'
- ? editedPostTemplate?.content
- : '';
-
- return (
- checkForPostContentAtRootLevel( parse( parseableContent ) ) || false
- );
- }, [ editedPostTemplate?.content, editedPostTemplate?.blocks ] );
-
- const { layout = {}, align = '' } = newestPostContentAttributes || {};
-
- const postContentLayoutClasses = useLayoutClasses(
- newestPostContentAttributes,
- 'core/post-content'
- );
-
- const blockListLayoutClass = classnames(
- {
- 'is-layout-flow': ! themeSupportsLayout,
- },
- themeSupportsLayout && postContentLayoutClasses,
- align && `align${ align }`
- );
-
- const postContentLayoutStyles = useLayoutStyles(
- newestPostContentAttributes,
- 'core/post-content',
- '.block-editor-block-list__layout.is-root-container'
- );
-
- // Update type for blocks using legacy layouts.
- const postContentLayout = useMemo( () => {
- return layout &&
- ( layout?.type === 'constrained' ||
- layout?.inherit ||
- layout?.contentSize ||
- layout?.wideSize )
- ? { ...globalLayoutSettings, ...layout, type: 'constrained' }
- : { ...globalLayoutSettings, ...layout, type: 'default' };
- }, [
- layout?.type,
- layout?.inherit,
- layout?.contentSize,
- layout?.wideSize,
- globalLayoutSettings,
- ] );
-
- // If there is a Post Content block we use its layout for the block list;
- // if not, this must be a classic theme, in which case we use the fallback layout.
- const blockListLayout = postContentAttributes
- ? postContentLayout
- : fallbackLayout;
-
- const postEditorLayout =
- blockListLayout?.type === 'default' && ! hasPostContentAtRootLevel
- ? fallbackLayout
- : blockListLayout;
-
- const observeTypingRef = useTypingObserver();
- const titleRef = useRef();
- useEffect( () => {
- if ( isWelcomeGuideVisible || ! isCleanNewPost() ) {
- return;
- }
- titleRef?.current?.focus();
- }, [ isWelcomeGuideVisible, isCleanNewPost ] );
-
styles = useMemo(
() => [
...styles,
{
// We should move this in to future to the body.
- css:
- `.edit-post-visual-editor__post-title-wrapper{margin-top:4rem}` +
- ( paddingBottom
- ? `body{padding-bottom:${ paddingBottom }}`
- : '' ),
+ css: paddingBottom
+ ? `body{padding-bottom:${ paddingBottom }}`
+ : '',
},
],
[ styles ]
);
- // Add some styles for alignwide/alignfull Post Content and its children.
- const alignCSS = `.is-root-container.alignwide { max-width: var(--wp--style--global--wide-size); margin-left: auto; margin-right: auto;}
- .is-root-container.alignwide:where(.is-layout-flow) > :not(.alignleft):not(.alignright) { max-width: var(--wp--style--global--wide-size);}
- .is-root-container.alignfull { max-width: none; margin-left: auto; margin-right: auto;}
- .is-root-container.alignfull:where(.is-layout-flow) > :not(.alignleft):not(.alignright) { max-width: none;}`;
-
const isToBeIframed =
( ( hasV3BlocksOnly || ( isGutenbergPlugin && isBlockBasedTheme ) ) &&
! hasMetaBoxes ) ||
@@ -361,65 +146,18 @@ export default function VisualEditor( { styles } ) {
styles={ styles }
height="100%"
>
- { themeSupportsLayout &&
- ! themeHasDisabledLayoutStyles &&
- ! isTemplateMode && (
- <>
-
-
- { align && (
-
- ) }
- { postContentLayoutStyles && (
-
- ) }
- >
- ) }
- { ! isTemplateMode && (
-
- ) }
-
-
-
+
diff --git a/packages/edit-post/src/components/visual-editor/style.scss b/packages/edit-post/src/components/visual-editor/style.scss
index 237bbf25f2c79a..46838c97f8799c 100644
--- a/packages/edit-post/src/components/visual-editor/style.scss
+++ b/packages/edit-post/src/components/visual-editor/style.scss
@@ -38,21 +38,6 @@
// See also https://www.w3.org/TR/CSS22/visudet.html#the-height-property.
}
-// Ideally this wrapper div is not needed but if we want to match the positioning of blocks
-// .block-editor-block-list__layout and block-editor-block-list__block
-// We need to have two DOM elements.
-.edit-post-visual-editor__post-title-wrapper {
- .editor-post-title {
- // Center.
- margin-left: auto;
- margin-right: auto;
- }
-
- // Add extra margin at the top, to push down the Title area in the post editor.
- margin-top: 4rem;
- margin-bottom: var(--wp--style--block-gap);
-}
-
.edit-post-visual-editor__content-area {
width: 100%;
height: 100%;
diff --git a/packages/edit-post/src/components/welcome-guide/index.js b/packages/edit-post/src/components/welcome-guide/index.js
index 3be635c81e316e..2809d9daa88a0a 100644
--- a/packages/edit-post/src/components/welcome-guide/index.js
+++ b/packages/edit-post/src/components/welcome-guide/index.js
@@ -2,6 +2,7 @@
* WordPress dependencies
*/
import { useSelect } from '@wordpress/data';
+import { store as editorStore } from '@wordpress/editor';
/**
* Internal dependencies
@@ -12,8 +13,9 @@ import { store as editPostStore } from '../../store';
export default function WelcomeGuide() {
const { isActive, isTemplateMode } = useSelect( ( select ) => {
- const { isFeatureActive, isEditingTemplate } = select( editPostStore );
- const _isTemplateMode = isEditingTemplate();
+ const { isFeatureActive } = select( editPostStore );
+ const { getRenderingMode } = select( editorStore );
+ const _isTemplateMode = getRenderingMode() !== 'post-only';
const feature = _isTemplateMode
? 'welcomeGuideTemplate'
: 'welcomeGuide';
diff --git a/packages/edit-post/src/editor.js b/packages/edit-post/src/editor.js
index d1ef111e7dc4c3..2394ebb3a3a742 100644
--- a/packages/edit-post/src/editor.js
+++ b/packages/edit-post/src/editor.js
@@ -9,7 +9,7 @@ import {
store as editorStore,
privateApis as editorPrivateApis,
} from '@wordpress/editor';
-import { useMemo } from '@wordpress/element';
+import { useEffect, useMemo } from '@wordpress/element';
import { SlotFillProvider } from '@wordpress/components';
import { store as coreStore } from '@wordpress/core-data';
import { store as preferencesStore } from '@wordpress/preferences';
@@ -36,13 +36,11 @@ function Editor( { postId, postType, settings, initialEdits, ...props } ) {
hiddenBlockTypes,
blockTypes,
keepCaretInsideBlock,
- isTemplateMode,
template,
} = useSelect(
( select ) => {
const {
isFeatureActive,
- isEditingTemplate,
getEditedPostTemplate,
getHiddenBlockTypes,
} = select( editPostStore );
@@ -81,7 +79,6 @@ function Editor( { postId, postType, settings, initialEdits, ...props } ) {
hiddenBlockTypes: getHiddenBlockTypes(),
blockTypes: getBlockTypes(),
keepCaretInsideBlock: isFeatureActive( 'keepCaretInsideBlock' ),
- isTemplateMode: isEditingTemplate(),
template:
supportsTemplateMode && isViewable && canEditTemplate
? getEditedPostTemplate()
@@ -145,6 +142,12 @@ function Editor( { postId, postType, settings, initialEdits, ...props } ) {
keepCaretInsideBlock,
] );
+ // The default mode of the post editor is "post-only" mode.
+ const { setRenderingMode } = useDispatch( editorStore );
+ useEffect( () => {
+ setRenderingMode( 'post-only' );
+ }, [ setRenderingMode ] );
+
if ( ! post ) {
return null;
}
@@ -156,7 +159,7 @@ function Editor( { postId, postType, settings, initialEdits, ...props } ) {
post={ post }
initialEdits={ initialEdits }
useSubRegistry={ false }
- __unstableTemplate={ isTemplateMode ? template : undefined }
+ __unstableTemplate={ template }
{ ...props }
>
diff --git a/packages/edit-post/src/index.js b/packages/edit-post/src/index.js
index fe967eeeed337f..64ddf1d9fb08ba 100644
--- a/packages/edit-post/src/index.js
+++ b/packages/edit-post/src/index.js
@@ -15,6 +15,7 @@ import {
registerLegacyWidgetBlock,
registerWidgetGroupBlock,
} from '@wordpress/widgets';
+import { store as editorStore } from '@wordpress/editor';
/**
* Internal dependencies
@@ -93,7 +94,7 @@ export function initializeEditor(
'removeTemplatePartsFromInserter',
( canInsert, blockType ) => {
if (
- ! select( editPostStore ).isEditingTemplate() &&
+ select( editorStore ).getRenderingMode() === 'post-only' &&
blockType.name === 'core/template-part'
) {
return false;
@@ -118,7 +119,7 @@ export function initializeEditor(
{ getBlockParentsByBlockName }
) => {
if (
- ! select( editPostStore ).isEditingTemplate() &&
+ select( editorStore ).getRenderingMode() === 'post-only' &&
blockType.name === 'core/post-content'
) {
return (
diff --git a/packages/edit-post/src/plugins/welcome-guide-menu-item/index.js b/packages/edit-post/src/plugins/welcome-guide-menu-item/index.js
index 24eec1114a0a7d..394e148603eb0a 100644
--- a/packages/edit-post/src/plugins/welcome-guide-menu-item/index.js
+++ b/packages/edit-post/src/plugins/welcome-guide-menu-item/index.js
@@ -4,15 +4,11 @@
import { useSelect } from '@wordpress/data';
import { PreferenceToggleMenuItem } from '@wordpress/preferences';
import { __ } from '@wordpress/i18n';
-
-/**
- * Internal dependencies
- */
-import { store as editPostStore } from '../../store';
+import { store as editorStore } from '@wordpress/editor';
export default function WelcomeGuideMenuItem() {
const isTemplateMode = useSelect(
- ( select ) => select( editPostStore ).isEditingTemplate(),
+ ( select ) => select( editorStore ).getRenderingMode() !== 'post-only',
[]
);
diff --git a/packages/edit-post/src/store/actions.js b/packages/edit-post/src/store/actions.js
index 27e45ab0edf9d6..0380b0f7e98f33 100644
--- a/packages/edit-post/src/store/actions.js
+++ b/packages/edit-post/src/store/actions.js
@@ -513,14 +513,14 @@ export const setIsListViewOpened =
/**
* Returns an action object used to switch to template editing.
*
- * @param {boolean} value Is editing template.
- * @return {Object} Action object.
+ * @deprecated
*/
-export function setIsEditingTemplate( value ) {
- return {
- type: 'SET_IS_EDITING_TEMPLATE',
- value,
- };
+export function setIsEditingTemplate() {
+ deprecated( "dispatch( 'core/edit-post' ).setIsEditingTemplate", {
+ since: '6.5',
+ alternative: "dispatch( 'core/editor').setRenderingMode",
+ } );
+ return { type: 'NOTHING' };
}
/**
@@ -530,8 +530,8 @@ export function setIsEditingTemplate( value ) {
*/
export const __unstableSwitchToTemplateMode =
( newTemplate = false ) =>
- ( { registry, select, dispatch } ) => {
- dispatch( setIsEditingTemplate( true ) );
+ ( { registry, select } ) => {
+ registry.dispatch( editorStore ).setRenderingMode( 'all' );
const isWelcomeGuideActive = select.isFeatureActive(
'welcomeGuideTemplate'
);
diff --git a/packages/edit-post/src/store/reducer.js b/packages/edit-post/src/store/reducer.js
index 622b2e2667f7fc..4748c4fff49723 100644
--- a/packages/edit-post/src/store/reducer.js
+++ b/packages/edit-post/src/store/reducer.js
@@ -153,20 +153,6 @@ export function listViewPanel( state = false, action ) {
return state;
}
-/**
- * Reducer tracking whether template editing is on or off.
- *
- * @param {boolean} state
- * @param {Object} action
- */
-function isEditingTemplate( state = false, action ) {
- switch ( action.type ) {
- case 'SET_IS_EDITING_TEMPLATE':
- return action.value;
- }
- return state;
-}
-
/**
* Reducer tracking whether meta boxes are initialized.
*
@@ -196,5 +182,4 @@ export default combineReducers( {
deviceType,
blockInserterPanel,
listViewPanel,
- isEditingTemplate,
} );
diff --git a/packages/edit-post/src/store/selectors.js b/packages/edit-post/src/store/selectors.js
index 570c03d930a7ec..f7b8f91d380dc0 100644
--- a/packages/edit-post/src/store/selectors.js
+++ b/packages/edit-post/src/store/selectors.js
@@ -498,13 +498,15 @@ export function isListViewOpened( state ) {
/**
* Returns true if the template editing mode is enabled.
*
- * @param {Object} state Global application state.
- *
- * @return {boolean} Whether we're editing the template.
+ * @deprecated
*/
-export function isEditingTemplate( state ) {
- return state.isEditingTemplate;
-}
+export const isEditingTemplate = createRegistrySelector( ( select ) => () => {
+ deprecated( `select( 'core/edit-post' ).isEditingTemplate`, {
+ since: '6.5',
+ alternative: `select( 'core/editor' ).getRenderingMode`,
+ } );
+ return select( editorStore ).getRenderingMode() !== 'post-only';
+} );
/**
* Returns true if meta boxes are initialized.
diff --git a/packages/edit-post/src/store/test/actions.js b/packages/edit-post/src/store/test/actions.js
index 76f527935cdf3e..39b889f2fdcbc0 100644
--- a/packages/edit-post/src/store/test/actions.js
+++ b/packages/edit-post/src/store/test/actions.js
@@ -146,34 +146,6 @@ describe( 'actions', () => {
).toBe( true );
} );
- describe( '__unstableSwitchToTemplateMode', () => {
- it( 'welcome guide is active', () => {
- // Activate `welcomeGuideTemplate` feature.
- registry
- .dispatch( editPostStore )
- .toggleFeature( 'welcomeGuideTemplate' );
- registry.dispatch( editPostStore ).__unstableSwitchToTemplateMode();
- expect(
- registry.select( editPostStore ).isEditingTemplate()
- ).toBeTruthy();
- const notices = registry.select( noticesStore ).getNotices();
- expect( notices ).toHaveLength( 0 );
- } );
-
- it( 'welcome guide is inactive', () => {
- expect(
- registry.select( editPostStore ).isEditingTemplate()
- ).toBeFalsy();
- registry.dispatch( editPostStore ).__unstableSwitchToTemplateMode();
- expect(
- registry.select( editPostStore ).isEditingTemplate()
- ).toBeTruthy();
- const notices = registry.select( noticesStore ).getNotices();
- expect( notices ).toHaveLength( 1 );
- expect( notices[ 0 ].content ).toMatch( 'template' );
- } );
- } );
-
describe( 'hideBlockTypes', () => {
it( 'adds the hidden block type to the preferences', () => {
registry
diff --git a/packages/edit-site/CHANGELOG.md b/packages/edit-site/CHANGELOG.md
index b8814356b2b6b4..de75adec15e5a9 100644
--- a/packages/edit-site/CHANGELOG.md
+++ b/packages/edit-site/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 5.24.0 (2023-11-29)
+
## 5.23.0 (2023-11-16)
## 5.22.0 (2023-11-02)
diff --git a/packages/edit-site/package.json b/packages/edit-site/package.json
index 072dc0b1c027a8..92e9fd8bebe59a 100644
--- a/packages/edit-site/package.json
+++ b/packages/edit-site/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/edit-site",
- "version": "5.23.0",
+ "version": "5.24.0",
"description": "Edit Site Page module for WordPress.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
@@ -27,7 +27,6 @@
"react-native": "src/index",
"dependencies": {
"@babel/runtime": "^7.16.0",
- "@tanstack/react-table": "^8.10.3",
"@wordpress/a11y": "file:../a11y",
"@wordpress/api-fetch": "file:../api-fetch",
"@wordpress/blob": "file:../blob",
@@ -40,6 +39,7 @@
"@wordpress/core-commands": "file:../core-commands",
"@wordpress/core-data": "file:../core-data",
"@wordpress/data": "file:../data",
+ "@wordpress/dataviews": "file:../dataviews",
"@wordpress/date": "file:../date",
"@wordpress/deprecated": "file:../deprecated",
"@wordpress/dom": "file:../dom",
diff --git a/packages/edit-site/src/components/actions/index.js b/packages/edit-site/src/components/actions/index.js
index c90ffde135a01d..ca673e3867bdaf 100644
--- a/packages/edit-site/src/components/actions/index.js
+++ b/packages/edit-site/src/components/actions/index.js
@@ -10,6 +10,13 @@ import { __, sprintf } from '@wordpress/i18n';
import { store as noticesStore } from '@wordpress/notices';
import { useMemo } from '@wordpress/element';
import { privateApis as routerPrivateApis } from '@wordpress/router';
+import {
+ Button,
+ __experimentalText as Text,
+ __experimentalHStack as HStack,
+ __experimentalVStack as VStack,
+} from '@wordpress/components';
+
/**
* Internal dependencies
*/
@@ -17,55 +24,76 @@ import { unlock } from '../../lock-unlock';
const { useHistory } = unlock( routerPrivateApis );
-export function useTrashPostAction() {
- const { createSuccessNotice, createErrorNotice } =
- useDispatch( noticesStore );
- const { deleteEntityRecord } = useDispatch( coreStore );
-
- return useMemo(
- () => ( {
- id: 'move-to-trash',
- label: __( 'Move to Trash' ),
- isPrimary: true,
- icon: trash,
- isEligible( { status } ) {
- return status !== 'trash';
- },
- async callback( post ) {
- try {
- await deleteEntityRecord(
- 'postType',
- post.type,
- post.id,
- {},
- { throwOnError: true }
- );
- createSuccessNotice(
- sprintf(
- /* translators: The page's title. */
- __( '"%s" moved to the Trash.' ),
- decodeEntities( post.title.rendered )
- ),
- {
- type: 'snackbar',
- id: 'edit-site-page-trashed',
- }
- );
- } catch ( error ) {
- const errorMessage =
- error.message && error.code !== 'unknown_error'
- ? error.message
- : __(
- 'An error occurred while moving the page to the trash.'
- );
+export const trashPostAction = {
+ id: 'move-to-trash',
+ label: __( 'Move to Trash' ),
+ isPrimary: true,
+ icon: trash,
+ isEligible( { status } ) {
+ return status !== 'trash';
+ },
+ hideModalHeader: true,
+ RenderModal: ( { item: post, closeModal } ) => {
+ const { createSuccessNotice, createErrorNotice } =
+ useDispatch( noticesStore );
+ const { deleteEntityRecord } = useDispatch( coreStore );
+ return (
+
+
+ { sprintf(
+ // translators: %s: The page's title.
+ __( 'Are you sure you want to delete "%s"?' ),
+ decodeEntities( post.title.rendered )
+ ) }
+
+
+
+ { __( 'Cancel' ) }
+
+ {
+ try {
+ await deleteEntityRecord(
+ 'postType',
+ post.type,
+ post.id,
+ {},
+ { throwOnError: true }
+ );
+ createSuccessNotice(
+ sprintf(
+ /* translators: The page's title. */
+ __( '"%s" moved to the Trash.' ),
+ decodeEntities( post.title.rendered )
+ ),
+ {
+ type: 'snackbar',
+ id: 'edit-site-page-trashed',
+ }
+ );
+ } catch ( error ) {
+ const errorMessage =
+ error.message &&
+ error.code !== 'unknown_error'
+ ? error.message
+ : __(
+ 'An error occurred while moving the page to the trash.'
+ );
- createErrorNotice( errorMessage, { type: 'snackbar' } );
- }
- },
- } ),
- [ createSuccessNotice, createErrorNotice, deleteEntityRecord ]
- );
-}
+ createErrorNotice( errorMessage, {
+ type: 'snackbar',
+ } );
+ }
+ } }
+ >
+ { __( 'Delete' ) }
+
+
+
+ );
+ },
+};
export function usePermanentlyDeletePostAction() {
const { createSuccessNotice, createErrorNotice } =
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 643f1e6f818662..44554eac0dcd62 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
@@ -15,12 +15,12 @@ import {
} from '@wordpress/components';
import { useEntityRecords } from '@wordpress/core-data';
import { decodeEntities } from '@wordpress/html-entities';
+import { useDebouncedInput } from '@wordpress/compose';
/**
* Internal dependencies
*/
import { unlock } from '../../lock-unlock';
-import useDebouncedInput from '../../utils/use-debounced-input';
import { mapToIHasNameAndId } from './utils';
const {
diff --git a/packages/edit-site/src/components/block-editor/editor-canvas.js b/packages/edit-site/src/components/block-editor/editor-canvas.js
index 235eaf6617aa8f..15d638aa329e12 100644
--- a/packages/edit-site/src/components/block-editor/editor-canvas.js
+++ b/packages/edit-site/src/components/block-editor/editor-canvas.js
@@ -15,16 +15,22 @@ import { useSelect, useDispatch } from '@wordpress/data';
import { ENTER, SPACE } from '@wordpress/keycodes';
import { useState, useEffect } from '@wordpress/element';
import { __ } from '@wordpress/i18n';
+import { privateApis as editorPrivateApis } from '@wordpress/editor';
/**
* Internal dependencies
*/
import { unlock } from '../../lock-unlock';
import { store as editSiteStore } from '../../store';
+import {
+ FOCUSABLE_ENTITIES,
+ NAVIGATION_POST_TYPE,
+} from '../../utils/constants';
const { ExperimentalBlockCanvas: BlockCanvas } = unlock(
blockEditorPrivateApis
);
+const { EditorCanvas: EditorCanvasRoot } = unlock( editorPrivateApis );
function EditorCanvas( {
enableResizing,
@@ -33,17 +39,32 @@ function EditorCanvas( {
contentRef,
...props
} ) {
- const { canvasMode, deviceType, isZoomOutMode } = useSelect(
- ( select ) => ( {
- deviceType:
- select( editSiteStore ).__experimentalGetPreviewDeviceType(),
- isZoomOutMode:
- select( blockEditorStore ).__unstableGetEditorMode() ===
- 'zoom-out',
- canvasMode: unlock( select( editSiteStore ) ).getCanvasMode(),
- } ),
- []
- );
+ const {
+ hasBlocks,
+ isFocusMode,
+ templateType,
+ canvasMode,
+ deviceType,
+ isZoomOutMode,
+ } = useSelect( ( select ) => {
+ const { getBlockCount, __unstableGetEditorMode } =
+ select( blockEditorStore );
+ const {
+ getEditedPostType,
+ __experimentalGetPreviewDeviceType,
+ getCanvasMode,
+ } = unlock( select( editSiteStore ) );
+ const _templateType = getEditedPostType();
+
+ return {
+ templateType: _templateType,
+ isFocusMode: FOCUSABLE_ENTITIES.includes( _templateType ),
+ deviceType: __experimentalGetPreviewDeviceType(),
+ isZoomOutMode: __unstableGetEditorMode() === 'zoom-out',
+ canvasMode: getCanvasMode(),
+ hasBlocks: !! getBlockCount(),
+ };
+ }, [] );
const { setCanvasMode } = unlock( useDispatch( editSiteStore ) );
const deviceStyles = useResizeCanvas( deviceType );
const [ isFocused, setIsFocused ] = useState( false );
@@ -70,6 +91,15 @@ function EditorCanvas( {
onClick: () => setCanvasMode( 'edit' ),
readonly: true,
};
+ const isTemplateTypeNavigation = templateType === NAVIGATION_POST_TYPE;
+ const isNavigationFocusMode = isTemplateTypeNavigation && isFocusMode;
+ // Hide the appender when:
+ // - In navigation focus mode (should only allow the root Nav block).
+ // - In view mode (i.e. not editing).
+ const showBlockAppender =
+ ( isNavigationFocusMode && hasBlocks ) || canvasMode === 'view'
+ ? false
+ : undefined;
return (
+
{ children }
);
diff --git a/packages/edit-site/src/components/block-editor/site-editor-canvas.js b/packages/edit-site/src/components/block-editor/site-editor-canvas.js
index 0d2d522c8b3e18..bfbb2d3eac43ff 100644
--- a/packages/edit-site/src/components/block-editor/site-editor-canvas.js
+++ b/packages/edit-site/src/components/block-editor/site-editor-canvas.js
@@ -7,12 +7,9 @@ import classnames from 'classnames';
*/
import { useSelect, useDispatch } from '@wordpress/data';
import { useRef } from '@wordpress/element';
-import {
- BlockList,
- BlockTools,
- store as blockEditorStore,
-} from '@wordpress/block-editor';
+import { BlockTools, store as blockEditorStore } from '@wordpress/block-editor';
import { useViewportMatch, useResizeObserver } from '@wordpress/compose';
+
/**
* Internal dependencies
*/
@@ -29,12 +26,6 @@ import {
import { unlock } from '../../lock-unlock';
import PageContentFocusNotifications from '../page-content-focus-notifications';
-const LAYOUT = {
- type: 'default',
- // At the root level of the site editor, no alignments should be allowed.
- alignments: [],
-};
-
export default function SiteEditorCanvas() {
const { clearSelectedBlock } = useDispatch( blockEditorStore );
@@ -56,16 +47,6 @@ export default function SiteEditorCanvas() {
const settings = useSiteEditorSettings();
- const { hasBlocks } = useSelect( ( select ) => {
- const { getBlockCount } = select( blockEditorStore );
-
- const blocks = getBlockCount();
-
- return {
- hasBlocks: !! blocks,
- };
- }, [] );
-
const isMobileViewport = useViewportMatch( 'small', '<' );
const enableResizing =
isFocusMode &&
@@ -75,17 +56,7 @@ export default function SiteEditorCanvas() {
const contentRef = useRef();
const isTemplateTypeNavigation = templateType === NAVIGATION_POST_TYPE;
-
const isNavigationFocusMode = isTemplateTypeNavigation && isFocusMode;
-
- // Hide the appender when:
- // - In navigation focus mode (should only allow the root Nav block).
- // - In view mode (i.e. not editing).
- const showBlockAppender =
- ( isNavigationFocusMode && hasBlocks ) || isViewMode
- ? false
- : undefined;
-
const forceFullHeight = isNavigationFocusMode;
return (
@@ -126,23 +97,6 @@ export default function SiteEditorCanvas() {
contentRef={ contentRef }
>
{ resizeObserver }
-
diff --git a/packages/edit-site/src/components/block-editor/style.scss b/packages/edit-site/src/components/block-editor/style.scss
index b110b1c274e779..e02240eb880992 100644
--- a/packages/edit-site/src/components/block-editor/style.scss
+++ b/packages/edit-site/src/components/block-editor/style.scss
@@ -14,7 +14,7 @@
// Navigation focus mode requires padding around the root Navigation block
// for presentational purposes.
-.edit-site-block-editor__block-list.is-navigation-block {
+.edit-site-editor-canvas__block-list.is-navigation-block {
padding: $grid-unit-30;
}
@@ -96,6 +96,11 @@
}
}
+// The toolbar header in distraction mode sits over the back button, which renders it unreachable.
+.is-distraction-free .edit-site-visual-editor__back-button {
+ display: none;
+}
+
.resizable-editor__drag-handle {
position: absolute;
top: 0;
diff --git a/packages/edit-site/src/components/block-editor/use-site-editor-settings.js b/packages/edit-site/src/components/block-editor/use-site-editor-settings.js
index cb3fb3f1cb3336..3cca41d67985c5 100644
--- a/packages/edit-site/src/components/block-editor/use-site-editor-settings.js
+++ b/packages/edit-site/src/components/block-editor/use-site-editor-settings.js
@@ -138,6 +138,7 @@ export function useSpecificEditorSettings() {
return {
...settings,
+ supportsTemplateMode: true,
__experimentalSetIsInserterOpened: setIsInserterOpened,
focusMode: canvasMode === 'view' && focusMode ? false : focusMode,
isDistractionFree,
diff --git a/packages/edit-site/src/components/dataviews/constants.js b/packages/edit-site/src/components/dataviews/constants.js
deleted file mode 100644
index 2af12b04c559d7..00000000000000
--- a/packages/edit-site/src/components/dataviews/constants.js
+++ /dev/null
@@ -1,5 +0,0 @@
-// Field types.
-export const ENUMERATION_TYPE = 'enumeration';
-
-// Filter operators.
-export const OPERATOR_IN = 'in';
diff --git a/packages/edit-site/src/components/dataviews/in-filter.js b/packages/edit-site/src/components/dataviews/in-filter.js
deleted file mode 100644
index 9dd85eb1eedb26..00000000000000
--- a/packages/edit-site/src/components/dataviews/in-filter.js
+++ /dev/null
@@ -1,79 +0,0 @@
-/**
- * WordPress dependencies
- */
-import {
- Button,
- privateApis as componentsPrivateApis,
- Icon,
-} from '@wordpress/components';
-import { chevronDown } from '@wordpress/icons';
-import { __, sprintf } from '@wordpress/i18n';
-
-/**
- * Internal dependencies
- */
-import { OPERATOR_IN } from './constants';
-import { unlock } from '../../lock-unlock';
-
-const {
- DropdownMenuV2: DropdownMenu,
- DropdownMenuCheckboxItemV2: DropdownMenuCheckboxItem,
-} = unlock( componentsPrivateApis );
-
-export default ( { filter, view, onChangeView } ) => {
- const filterInView = view.filters.find( ( f ) => f.field === filter.field );
- const activeElement = filter.elements.find(
- ( element ) => element.value === filterInView?.value
- );
-
- return (
-
- { activeElement !== undefined
- ? sprintf(
- /* translators: 1: Filter name. 2: filter value. e.g.: "Author is Admin". */
- __( '%1$s is %2$s' ),
- filter.name,
- activeElement.label
- )
- : filter.name }
-
-
- }
- >
- { filter.elements.map( ( element ) => {
- return (
-
- onChangeView( ( currentView ) => ( {
- ...currentView,
- page: 1,
- filters: [
- ...view.filters.filter(
- ( f ) => f.field !== filter.field
- ),
- {
- field: filter.field,
- operator: OPERATOR_IN,
- value:
- activeElement?.value ===
- element.value
- ? undefined
- : element.value,
- },
- ],
- } ) )
- }
- >
- { element.label }
-
- );
- } ) }
-
- );
-};
diff --git a/packages/edit-site/src/components/dataviews/index.js b/packages/edit-site/src/components/dataviews/index.js
deleted file mode 100644
index eebdb77220c689..00000000000000
--- a/packages/edit-site/src/components/dataviews/index.js
+++ /dev/null
@@ -1 +0,0 @@
-export { default as DataViews, viewTypeSupportsMap } from './dataviews';
diff --git a/packages/edit-site/src/components/dataviews/item-actions.js b/packages/edit-site/src/components/dataviews/item-actions.js
deleted file mode 100644
index 777244e0396a70..00000000000000
--- a/packages/edit-site/src/components/dataviews/item-actions.js
+++ /dev/null
@@ -1,144 +0,0 @@
-/**
- * WordPress dependencies
- */
-import {
- DropdownMenu,
- MenuGroup,
- MenuItem,
- Button,
- Modal,
- __experimentalHStack as HStack,
-} from '@wordpress/components';
-import { __ } from '@wordpress/i18n';
-import { useMemo, useState } from '@wordpress/element';
-import { moreVertical } from '@wordpress/icons';
-
-function PrimaryActionTrigger( { action, onClick } ) {
- return (
-
- );
-}
-
-function SecondaryActionTrigger( { action, onClick } ) {
- return (
-
- { action.label }
-
- );
-}
-
-function ActionWithModal( { action, item, ActionTrigger } ) {
- const [ isModalOpen, setIsModalOpen ] = useState( false );
- const actionTriggerProps = {
- action,
- onClick: () => setIsModalOpen( true ),
- };
- const { RenderModal, hideModalHeader } = action;
- return (
- <>
-
- { isModalOpen && (
- {
- setIsModalOpen( false );
- } }
- overlayClassName="dataviews-action-modal"
- >
- setIsModalOpen( false ) }
- />
-
- ) }
- >
- );
-}
-
-export default function ItemActions( { item, actions } ) {
- const { primaryActions, secondaryActions } = useMemo( () => {
- return actions.reduce(
- ( accumulator, action ) => {
- // If an action is eligible for all items, doesn't need
- // to provide the `isEligible` function.
- if ( action.isEligible && ! action.isEligible( item ) ) {
- return accumulator;
- }
- if ( action.isPrimary && !! action.icon ) {
- accumulator.primaryActions.push( action );
- } else {
- accumulator.secondaryActions.push( action );
- }
- return accumulator;
- },
- { primaryActions: [], secondaryActions: [] }
- );
- }, [ actions, item ] );
- if ( ! primaryActions.length && ! secondaryActions.length ) {
- return null;
- }
- return (
-
- { !! primaryActions.length &&
- primaryActions.map( ( action ) => {
- if ( !! action.RenderModal ) {
- return (
-
- );
- }
- return (
- action.callback( item ) }
- />
- );
- } ) }
- { !! secondaryActions.length && (
-
- { () => (
-
- { secondaryActions.map( ( action ) => {
- if ( !! action.RenderModal ) {
- return (
-
- );
- }
- return (
-
- action.callback( item )
- }
- />
- );
- } ) }
-
- ) }
-
- ) }
-
- );
-}
diff --git a/packages/edit-site/src/components/dataviews/style.scss b/packages/edit-site/src/components/dataviews/style.scss
deleted file mode 100644
index 76e6fca78de67d..00000000000000
--- a/packages/edit-site/src/components/dataviews/style.scss
+++ /dev/null
@@ -1,55 +0,0 @@
-.dataviews-wrapper {
- width: 100%;
- height: 100%;
- overflow: auto;
- padding: $grid-unit-40;
-
- > div {
- min-height: 100%;
- }
-}
-
-.dataviews-pagination {
- margin-top: auto;
-}
-
-.dataviews-list-view {
- width: 100%;
- text-indent: 0;
- border-color: inherit;
- border-collapse: collapse;
- position: relative;
- a {
- text-decoration: none;
- }
- th {
- text-align: left;
- font-weight: normal;
- padding: 0 $grid-unit-20 $grid-unit-20;
- color: $gray-700;
- }
- td,
- th {
- padding: $grid-unit-15;
- &[data-field-id="actions"] {
- text-align: right;
- }
- }
- tr {
- border-bottom: 1px solid $gray-100;
- }
-}
-
-.dataviews-view-grid__media {
- width: 100%;
- min-height: 200px;
-
- > * {
- max-width: 100%;
- object-fit: cover;
- }
-}
-
-.dataviews-action-modal {
- z-index: z-index(".dataviews-action-modal");
-}
diff --git a/packages/edit-site/src/components/dataviews/view-grid.js b/packages/edit-site/src/components/dataviews/view-grid.js
deleted file mode 100644
index b9d4bd78d96d68..00000000000000
--- a/packages/edit-site/src/components/dataviews/view-grid.js
+++ /dev/null
@@ -1,65 +0,0 @@
-/**
- * WordPress dependencies
- */
-import {
- __experimentalGrid as Grid,
- __experimentalHStack as HStack,
- __experimentalVStack as VStack,
- FlexBlock,
- Placeholder,
-} from '@wordpress/components';
-
-/**
- * Internal dependencies
- */
-import ItemActions from './item-actions';
-
-export function ViewGrid( { data, fields, view, actions, getItemId } ) {
- const mediaField = fields.find(
- ( field ) => field.id === view.layout.mediaField
- );
- const visibleFields = fields.filter(
- ( field ) =>
- ! view.hiddenFields.includes( field.id ) &&
- field.id !== view.layout.mediaField
- );
- return (
-
- { data.map( ( item, index ) => {
- return (
-
-
- { mediaField?.render( { item, view } ) || (
-
- ) }
-
-
-
-
-
- { visibleFields.map( ( field ) => (
-
- { field.render( { item, view } ) }
-
- ) ) }
-
-
-
-
-
-
-
- );
- } ) }
-
- );
-}
diff --git a/packages/edit-site/src/components/dataviews/view-side-by-side.js b/packages/edit-site/src/components/dataviews/view-side-by-side.js
deleted file mode 100644
index 47b1551b379b31..00000000000000
--- a/packages/edit-site/src/components/dataviews/view-side-by-side.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/**
- * Internal dependencies
- */
-import ViewList from './view-list';
-
-export function ViewSideBySide( props ) {
- // To do: change to email-like preview list.
- return ;
-}
diff --git a/packages/edit-site/src/components/editor/index.js b/packages/edit-site/src/components/editor/index.js
index 110e891cc1858a..1d3fca36f5f4c0 100644
--- a/packages/edit-site/src/components/editor/index.js
+++ b/packages/edit-site/src/components/editor/index.js
@@ -6,7 +6,7 @@ import classnames from 'classnames';
/**
* WordPress dependencies
*/
-import { useSelect } from '@wordpress/data';
+import { useSelect, useDispatch } from '@wordpress/data';
import { Notice } from '@wordpress/components';
import { useInstanceId } from '@wordpress/compose';
import { store as preferencesStore } from '@wordpress/preferences';
@@ -25,10 +25,11 @@ import {
EditorNotices,
EditorSnackbars,
privateApis as editorPrivateApis,
+ store as editorStore,
} from '@wordpress/editor';
import { __, sprintf } from '@wordpress/i18n';
import { store as coreDataStore } from '@wordpress/core-data';
-import { useMemo } from '@wordpress/element';
+import { useEffect } from '@wordpress/element';
/**
* Internal dependencies
@@ -97,14 +98,13 @@ export default function Editor( { listViewToggleElement, isLoading } ) {
contextPost,
editorMode,
canvasMode,
+ renderingMode,
blockEditorMode,
isRightSidebarOpen,
isInserterOpen,
isListViewOpen,
showIconLabels,
showBlockBreadcrumbs,
- hasPageContentFocus,
- pageContentFocusType,
} = useSelect( ( select ) => {
const {
getEditedPostContext,
@@ -112,12 +112,11 @@ export default function Editor( { listViewToggleElement, isLoading } ) {
getCanvasMode,
isInserterOpened,
isListViewOpened,
- hasPageContentFocus: _hasPageContentFocus,
- getPageContentFocusType,
} = unlock( select( editSiteStore ) );
const { __unstableGetEditorMode } = select( blockEditorStore );
const { getActiveComplementaryArea } = select( interfaceStore );
const { getEntityRecord } = select( coreDataStore );
+ const { getRenderingMode } = select( editorStore );
const _context = getEditedPostContext();
// The currently selected entity to display.
@@ -133,6 +132,7 @@ export default function Editor( { listViewToggleElement, isLoading } ) {
: undefined,
editorMode: getEditorMode(),
canvasMode: getCanvasMode(),
+ renderingMode: getRenderingMode(),
blockEditorMode: __unstableGetEditorMode(),
isInserterOpen: isInserterOpened(),
isListViewOpen: isListViewOpened(),
@@ -147,10 +147,9 @@ export default function Editor( { listViewToggleElement, isLoading } ) {
'core/edit-site',
'showBlockBreadcrumbs'
),
- hasPageContentFocus: _hasPageContentFocus(),
- pageContentFocusType: getPageContentFocusType(),
};
}, [] );
+ const { setRenderingMode } = useDispatch( editorStore );
const isViewMode = canvasMode === 'view';
const isEditMode = canvasMode === 'edit';
@@ -165,13 +164,13 @@ export default function Editor( { listViewToggleElement, isLoading } ) {
const secondarySidebarLabel = isListViewOpen
? __( 'List View' )
: __( 'Block Library' );
- const postWithTemplate = context?.postId;
+ const postWithTemplate = !! context?.postId;
let title;
if ( hasLoadedPost ) {
title = sprintf(
- // translators: A breadcrumb trail in browser tab. %1$s: title of template being edited, %2$s: type of template (Template or Template Part).
- __( '%1$s ‹ %2$s ‹ Editor' ),
+ // translators: A breadcrumb trail for the Admin document title. %1$s: title of template being edited, %2$s: type of template (Template or Template Part).
+ __( '%1$s ‹ %2$s' ),
getTitle(),
POST_TYPE_LABELS[ editedPostType ] ??
POST_TYPE_LABELS[ TEMPLATE_POST_TYPE ]
@@ -192,31 +191,16 @@ export default function Editor( { listViewToggleElement, isLoading } ) {
! isLoading &&
( ( postWithTemplate && !! contextPost && !! editedPost ) ||
( ! postWithTemplate && !! editedPost ) );
- const mode = useMemo( () => {
- if ( isViewMode ) {
- return postWithTemplate ? 'template-locked' : 'all';
- }
-
- if ( isEditMode && pageContentFocusType === 'hideTemplate' ) {
- return 'post-only';
- }
- if ( postWithTemplate && hasPageContentFocus ) {
- return 'template-locked';
+ // This is the only reliable way I've found to reinitialize the rendering mode
+ // when the canvas mode or the edited entity changes.
+ useEffect( () => {
+ if ( canvasMode === 'edit' && postWithTemplate ) {
+ setRenderingMode( 'template-locked' );
+ } else {
+ setRenderingMode( 'all' );
}
-
- if ( postWithTemplate && ! hasPageContentFocus ) {
- return 'template-only';
- }
-
- return 'all';
- }, [
- isViewMode,
- isEditMode,
- postWithTemplate,
- pageContentFocusType,
- hasPageContentFocus,
- ] );
+ }, [ canvasMode, postWithTemplate, setRenderingMode ] );
return (
<>
@@ -237,7 +221,6 @@ export default function Editor( { listViewToggleElement, isLoading } ) {
}
settings={ settings }
useSubRegistry={ false }
- mode={ mode }
>
{ isEditMode && }
@@ -298,7 +281,8 @@ export default function Editor( { listViewToggleElement, isLoading } ) {
shouldShowBlockBreadcrumbs && (
+
-
+
);
}
diff --git a/packages/edit-site/src/components/global-styles/font-library-modal/context.js b/packages/edit-site/src/components/global-styles/font-library-modal/context.js
index 33a5b0910f0526..58b8621adcf0c3 100644
--- a/packages/edit-site/src/components/global-styles/font-library-modal/context.js
+++ b/packages/edit-site/src/components/global-styles/font-library-modal/context.js
@@ -229,7 +229,7 @@ function FontLibraryProvider( { children } ) {
// Uninstall the font (remove the font files from the server and the post from the database).
const response = await fetchUninstallFonts( [ font ] );
// Deactivate the font family (remove the font family from the global styles).
- if ( ! response.errors ) {
+ if ( 0 === response.errors.length ) {
deactivateFontFamily( font );
// Save the global styles to the database.
await saveSpecifiedEntityEdits(
diff --git a/packages/edit-site/src/components/global-styles/font-library-modal/library-font-variant.js b/packages/edit-site/src/components/global-styles/font-library-modal/library-font-variant.js
index 32e18c023cecbe..010f3efdbeb91a 100644
--- a/packages/edit-site/src/components/global-styles/font-library-modal/library-font-variant.js
+++ b/packages/edit-site/src/components/global-styles/font-library-modal/library-font-variant.js
@@ -3,16 +3,14 @@
*/
import { useContext } from '@wordpress/element';
import { CheckboxControl, Flex } from '@wordpress/components';
-/**
- * Internal dependencies
- */
-import { getFontFaceVariantName } from './utils';
/**
* Internal dependencies
*/
+import { getFontFaceVariantName } from './utils';
import { FontLibraryContext } from './context';
import FontFaceDemo from './font-demo';
+import { kebabCase } from '../../../../../block-editor/src/utils/object';
function LibraryFontVariant( { face, font } ) {
const { isFontActivated, toggleActivateFont } =
@@ -36,18 +34,26 @@ function LibraryFontVariant( { face, font } ) {
};
const displayName = font.name + ' ' + getFontFaceVariantName( face );
+ const checkboxId = kebabCase(
+ `${ font.slug }-${ getFontFaceVariantName( face ) }`
+ );
return (
-
+
-
+
);
}
diff --git a/packages/edit-site/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js b/packages/edit-site/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js
index a3ffd31db2288d..e21e72c58ed533 100644
--- a/packages/edit-site/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js
+++ b/packages/edit-site/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js
@@ -47,7 +47,7 @@ export default function getIntersectingFontFaces( incoming, existing ) {
} );
}
);
- matches.push( { ...existingFont, fontFace: matchingFaces } );
+ matches.push( { ...incomingFont, fontFace: matchingFaces } );
} else {
matches.push( incomingFont );
}
diff --git a/packages/edit-site/src/components/global-styles/font-library-modal/utils/index.js b/packages/edit-site/src/components/global-styles/font-library-modal/utils/index.js
index d0a57978bcce94..f5723f5814e983 100644
--- a/packages/edit-site/src/components/global-styles/font-library-modal/utils/index.js
+++ b/packages/edit-site/src/components/global-styles/font-library-modal/utils/index.js
@@ -1,8 +1,12 @@
+/**
+ * External dependencies
+ */
+import { paramCase as kebabCase } from 'change-case';
+
/**
* Internal dependencies
*/
import { FONT_WEIGHTS, FONT_STYLES } from './constants';
-import { formatFontFamily } from './preview-styles';
export function setUIValuesNeeded( font, extraValues = {} ) {
if ( ! font.name && ( font.fontFamily || font.slug ) ) {
@@ -85,14 +89,10 @@ export async function loadFontFaceInBrowser( fontFace, source, addTo = 'all' ) {
}
// eslint-disable-next-line no-undef
- const newFont = new FontFace(
- formatFontFamily( fontFace.fontFamily ),
- dataSource,
- {
- style: fontFace.fontStyle,
- weight: fontFace.fontWeight,
- }
- );
+ const newFont = new FontFace( fontFace.fontFamily, dataSource, {
+ style: fontFace.fontStyle,
+ weight: fontFace.fontWeight,
+ } );
const loadedFace = await newFont.load();
@@ -129,9 +129,20 @@ export function getDisplaySrcFromFontFace( input, urlPrefix ) {
return src;
}
+// This function replicates one behavior of _wp_to_kebab_case().
+// Additional context: https://github.com/WordPress/gutenberg/issues/53695
+export function wpKebabCase( str ) {
+ // If a string contains a digit followed by a number, insert a dash between them.
+ return kebabCase( str ).replace(
+ /([a-zA-Z])(\d)|(\d)([a-zA-Z])/g,
+ '$1$3-$2$4'
+ );
+}
+
export function makeFormDataFromFontFamilies( fontFamilies ) {
const formData = new FormData();
const newFontFamilies = fontFamilies.map( ( family, familyIndex ) => {
+ family.slug = wpKebabCase( family.slug );
if ( family?.fontFace ) {
family.fontFace = family.fontFace.map( ( face, faceIndex ) => {
if ( face.file ) {
diff --git a/packages/edit-site/src/components/global-styles/font-library-modal/utils/test/getIntersectingFontFaces.spec.js b/packages/edit-site/src/components/global-styles/font-library-modal/utils/test/getIntersectingFontFaces.spec.js
index 91ae5f45d66da6..9899005ad65b89 100644
--- a/packages/edit-site/src/components/global-styles/font-library-modal/utils/test/getIntersectingFontFaces.spec.js
+++ b/packages/edit-site/src/components/global-styles/font-library-modal/utils/test/getIntersectingFontFaces.spec.js
@@ -5,7 +5,7 @@ import getIntersectingFontFaces from '../get-intersecting-font-faces';
describe( 'getIntersectingFontFaces', () => {
it( 'returns matching font faces for matching font family', () => {
- const intendedFontsFamilies = [
+ const incomingFontFamilies = [
{
slug: 'lobster',
fontFace: [
@@ -30,15 +30,15 @@ describe( 'getIntersectingFontFaces', () => {
];
const result = getIntersectingFontFaces(
- intendedFontsFamilies,
+ incomingFontFamilies,
existingFontFamilies
);
- expect( result ).toEqual( intendedFontsFamilies );
+ expect( result ).toEqual( incomingFontFamilies );
} );
it( 'returns empty array when there is no match', () => {
- const intendedFontsFamilies = [
+ const incomingFontFamilies = [
{
slug: 'lobster',
fontFace: [
@@ -63,7 +63,7 @@ describe( 'getIntersectingFontFaces', () => {
];
const result = getIntersectingFontFaces(
- intendedFontsFamilies,
+ incomingFontFamilies,
existingFontFamilies
);
@@ -71,7 +71,7 @@ describe( 'getIntersectingFontFaces', () => {
} );
it( 'returns matching font faces', () => {
- const intendedFontsFamilies = [
+ const incomingFontFamilies = [
{
slug: 'lobster',
fontFace: [
@@ -129,7 +129,7 @@ describe( 'getIntersectingFontFaces', () => {
];
const result = getIntersectingFontFaces(
- intendedFontsFamilies,
+ incomingFontFamilies,
existingFontFamilies
);
@@ -137,7 +137,7 @@ describe( 'getIntersectingFontFaces', () => {
} );
it( 'returns empty array when the first list is empty', () => {
- const intendedFontsFamilies = [];
+ const incomingFontFamilies = [];
const existingFontFamilies = [
{
@@ -152,7 +152,7 @@ describe( 'getIntersectingFontFaces', () => {
];
const result = getIntersectingFontFaces(
- intendedFontsFamilies,
+ incomingFontFamilies,
existingFontFamilies
);
@@ -160,7 +160,7 @@ describe( 'getIntersectingFontFaces', () => {
} );
it( 'returns empty array when the second list is empty', () => {
- const intendedFontsFamilies = [
+ const incomingFontFamilies = [
{
slug: 'lobster',
fontFace: [
@@ -175,7 +175,7 @@ describe( 'getIntersectingFontFaces', () => {
const existingFontFamilies = [];
const result = getIntersectingFontFaces(
- intendedFontsFamilies,
+ incomingFontFamilies,
existingFontFamilies
);
@@ -183,7 +183,7 @@ describe( 'getIntersectingFontFaces', () => {
} );
it( 'returns intersecting font family when there are no fonfaces', () => {
- const intendedFontsFamilies = [
+ const incomingFontFamilies = [
{
slug: 'piazzolla',
fontFace: [ { fontStyle: 'normal', fontWeight: '400' } ],
@@ -200,7 +200,7 @@ describe( 'getIntersectingFontFaces', () => {
];
const result = getIntersectingFontFaces(
- intendedFontsFamilies,
+ incomingFontFamilies,
existingFontFamilies
);
@@ -208,7 +208,7 @@ describe( 'getIntersectingFontFaces', () => {
} );
it( 'returns intersecting if there is an intended font face and is not present in the returning it should not be returned', () => {
- const intendedFontsFamilies = [
+ const incomingFontFamilies = [
{
slug: 'piazzolla',
fontFace: [ { fontStyle: 'normal', fontWeight: '400' } ],
@@ -226,7 +226,7 @@ describe( 'getIntersectingFontFaces', () => {
];
const result = getIntersectingFontFaces(
- intendedFontsFamilies,
+ incomingFontFamilies,
existingFontFamilies
);
const expected = [
@@ -237,4 +237,35 @@ describe( 'getIntersectingFontFaces', () => {
];
expect( result ).toEqual( expected );
} );
+
+ it( 'updates font family definition using the incoming data', () => {
+ const incomingFontFamilies = [
+ {
+ slug: 'gothic-a1',
+ fontFace: [ { fontStyle: 'normal', fontWeight: '400' } ],
+ fontFamily: "'Gothic A1', serif",
+ },
+ ];
+
+ const existingFontFamilies = [
+ {
+ slug: 'gothic-a1',
+ fontFace: [ { fontStyle: 'normal', fontWeight: '400' } ],
+ fontFamily: 'Gothic A1, serif',
+ },
+ ];
+
+ const result = getIntersectingFontFaces(
+ incomingFontFamilies,
+ existingFontFamilies
+ );
+ const expected = [
+ {
+ slug: 'gothic-a1',
+ fontFace: [ { fontStyle: 'normal', fontWeight: '400' } ],
+ fontFamily: "'Gothic A1', serif",
+ },
+ ];
+ expect( result ).toEqual( expected );
+ } );
} );
diff --git a/packages/edit-site/src/components/global-styles/font-library-modal/utils/test/wpKebabCase.spec.js b/packages/edit-site/src/components/global-styles/font-library-modal/utils/test/wpKebabCase.spec.js
new file mode 100644
index 00000000000000..d296117ff3a49b
--- /dev/null
+++ b/packages/edit-site/src/components/global-styles/font-library-modal/utils/test/wpKebabCase.spec.js
@@ -0,0 +1,28 @@
+/**
+ * Internal dependencies
+ */
+import { wpKebabCase } from '../index';
+
+describe( 'wpKebabCase', () => {
+ it( 'should insert a dash between a letter and a digit', () => {
+ const input = 'abc1def';
+ const expectedOutput = 'abc-1def';
+ expect( wpKebabCase( input ) ).toEqual( expectedOutput );
+
+ const input2 = 'abc1def2ghi';
+ const expectedOutput2 = 'abc-1def-2ghi';
+ expect( wpKebabCase( input2 ) ).toEqual( expectedOutput2 );
+ } );
+
+ it( 'should not insert a dash between two letters', () => {
+ const input = 'abcdef';
+ const expectedOutput = 'abcdef';
+ expect( wpKebabCase( input ) ).toEqual( expectedOutput );
+ } );
+
+ it( 'should not insert a dash between a digit and a hyphen', () => {
+ const input = 'abc1-def';
+ const expectedOutput = 'abc-1-def';
+ expect( wpKebabCase( input ) ).toEqual( expectedOutput );
+ } );
+} );
diff --git a/packages/edit-site/src/components/global-styles/header.js b/packages/edit-site/src/components/global-styles/header.js
index f62820653ff925..e6da4115217f57 100644
--- a/packages/edit-site/src/components/global-styles/header.js
+++ b/packages/edit-site/src/components/global-styles/header.js
@@ -12,7 +12,7 @@ import {
import { isRTL, __ } from '@wordpress/i18n';
import { chevronRight, chevronLeft } from '@wordpress/icons';
-function ScreenHeader( { title, description } ) {
+function ScreenHeader( { title, description, onBack } ) {
return (
@@ -27,6 +27,7 @@ function ScreenHeader( { title, description } ) {
icon={ isRTL() ? chevronRight : chevronLeft }
isSmall
aria-label={ __( 'Navigate to the previous view' ) }
+ onClick={ onBack }
/>
{
- return {
- editorCanvasContainerView: unlock(
- select( editSiteStore )
- ).getEditorCanvasContainerView(),
- blocks: select( blockEditorStore ).getBlocks(),
- };
- }, [] );
+ const { blocks, editorCanvasContainerView, revisionsCount } = useSelect(
+ ( select ) => {
+ const {
+ getEntityRecord,
+ __experimentalGetCurrentGlobalStylesId,
+ __experimentalGetDirtyEntityRecords,
+ } = select( coreStore );
+ const isDirty = __experimentalGetDirtyEntityRecords().length > 0;
+ const globalStylesId = __experimentalGetCurrentGlobalStylesId();
+ const globalStyles = globalStylesId
+ ? getEntityRecord( 'root', 'globalStyles', globalStylesId )
+ : undefined;
+ let _revisionsCount =
+ globalStyles?._links?.[ 'version-history' ]?.[ 0 ]?.count || 0;
+ // one for the reset item.
+ _revisionsCount++;
+ // one for any dirty changes (unsaved).
+ if ( isDirty ) {
+ _revisionsCount++;
+ }
+ return {
+ editorCanvasContainerView: unlock(
+ select( editSiteStore )
+ ).getEditorCanvasContainerView(),
+ blocks: select( blockEditorStore ).getBlocks(),
+ revisionsCount: _revisionsCount,
+ };
+ },
+ []
+ );
const { revisions, isLoading, hasUnsavedChanges } =
useGlobalStylesRevisions();
const [ currentlySelectedRevision, setCurrentlySelectedRevision ] =
@@ -61,6 +84,7 @@ function ScreenRevisions() {
const onCloseRevisions = () => {
goTo( '/' ); // Return to global styles main panel.
+ setEditorCanvasContainerView( undefined );
};
const restoreRevision = ( revision ) => {
@@ -119,10 +143,15 @@ function ScreenRevisions() {
return (
<>
{ isLoading && (
diff --git a/packages/edit-site/src/components/global-styles/screen-revisions/use-global-styles-revisions.js b/packages/edit-site/src/components/global-styles/screen-revisions/use-global-styles-revisions.js
index 0c293e417cf8ef..bacc79a97cb6de 100644
--- a/packages/edit-site/src/components/global-styles/screen-revisions/use-global-styles-revisions.js
+++ b/packages/edit-site/src/components/global-styles/screen-revisions/use-global-styles-revisions.js
@@ -39,25 +39,26 @@ export default function useGlobalStylesRevisions() {
const dirtyEntityRecords = __experimentalGetDirtyEntityRecords();
const _currentUser = getCurrentUser();
const _isDirty = dirtyEntityRecords.length > 0;
+ const query = {
+ per_page: 100,
+ };
+ const globalStylesId = __experimentalGetCurrentGlobalStylesId();
const globalStylesRevisions =
- getRevisions(
- 'root',
- 'globalStyles',
- __experimentalGetCurrentGlobalStylesId(),
- {
- per_page: 100,
- }
- ) || EMPTY_ARRAY;
+ getRevisions( 'root', 'globalStyles', globalStylesId, query ) ||
+ EMPTY_ARRAY;
const _authors = getUsers( SITE_EDITOR_AUTHORS_QUERY ) || EMPTY_ARRAY;
-
+ const _isResolving = isResolving( 'getRevisions', [
+ 'root',
+ 'globalStyles',
+ globalStylesId,
+ query,
+ ] );
return {
authors: _authors,
currentUser: _currentUser,
isDirty: _isDirty,
revisions: globalStylesRevisions,
- isLoadingGlobalStylesRevisions: isResolving(
- 'getCurrentThemeGlobalStylesRevisions'
- ),
+ isLoadingGlobalStylesRevisions: _isResolving,
};
}, [] );
return useMemo( () => {
diff --git a/packages/edit-site/src/components/global-styles/style.scss b/packages/edit-site/src/components/global-styles/style.scss
index 3560ef139fa3fe..a899495cc332b7 100644
--- a/packages/edit-site/src/components/global-styles/style.scss
+++ b/packages/edit-site/src/components/global-styles/style.scss
@@ -191,14 +191,3 @@
.edit-site-global-styles-sidebar__panel .block-editor-block-icon svg {
fill: currentColor;
}
-
-[class][class].edit-site-global-styles-sidebar__revisions-count-badge {
- align-items: center;
- background: $gray-800;
- border-radius: 2px;
- color: $white;
- display: inline-flex;
- justify-content: center;
- min-height: $icon-size;
- min-width: $icon-size;
-}
diff --git a/packages/edit-site/src/components/global-styles/ui.js b/packages/edit-site/src/components/global-styles/ui.js
index 2e33d4b599b7b9..c8d72205c3bed8 100644
--- a/packages/edit-site/src/components/global-styles/ui.js
+++ b/packages/edit-site/src/components/global-styles/ui.js
@@ -1,8 +1,3 @@
-/**
- * External dependencies
- */
-import classnames from 'classnames';
-
/**
* WordPress dependencies
*/
@@ -55,6 +50,7 @@ const { Slot: GlobalStylesMenuSlot, Fill: GlobalStylesMenuFill } =
createSlotFill( SLOT_FILL_NAME );
function GlobalStylesActionMenu() {
+ const [ canReset, onReset ] = useGlobalStylesReset();
const { toggle } = useDispatch( preferencesStore );
const { canEditCSS } = useSelect( ( select ) => {
const { getEntityRecord, __experimentalGetCurrentGlobalStylesId } =
@@ -69,49 +65,56 @@ function GlobalStylesActionMenu() {
canEditCSS: !! globalStyles?._links?.[ 'wp:action-edit-css' ],
};
}, [] );
+ const { setEditorCanvasContainerView } = unlock(
+ useDispatch( editSiteStore )
+ );
const { goTo } = useNavigator();
- const loadCustomCSS = () => goTo( '/css' );
+ const loadCustomCSS = () => {
+ setEditorCanvasContainerView( 'global-styles-css' );
+ goTo( '/css' );
+ };
return (
{ ( { onClose } ) => (
-
- { canEditCSS && (
-
- { __( 'Additional CSS' ) }
+ <>
+
+ { canEditCSS && (
+
+ { __( 'Additional CSS' ) }
+
+ ) }
+ {
+ toggle(
+ 'core/edit-site',
+ 'welcomeGuideStyles'
+ );
+ onClose();
+ } }
+ >
+ { __( 'Welcome Guide' ) }
+
+
+
+ {
+ onReset();
+ onClose();
+ } }
+ disabled={ ! canReset }
+ >
+ { __( 'Reset styles' ) }
- ) }
- {
- toggle(
- 'core/edit-site',
- 'welcomeGuideStyles'
- );
- onClose();
- } }
- >
- { __( 'Welcome Guide' ) }
-
-
+
+ >
) }
);
}
-function RevisionsCountBadge( { className, children } ) {
- return (
-
- { children }
-
- );
-}
function GlobalStylesRevisionsMenu() {
const { setIsListViewOpened } = useDispatch( editSiteStore );
const { revisionsCount } = useSelect( ( select ) => {
@@ -128,56 +131,38 @@ function GlobalStylesRevisionsMenu() {
globalStyles?._links?.[ 'version-history' ]?.[ 0 ]?.count ?? 0,
};
}, [] );
- const [ canReset, onReset ] = useGlobalStylesReset();
const { goTo } = useNavigator();
const { setEditorCanvasContainerView } = unlock(
useDispatch( editSiteStore )
);
+ const isRevisionsOpened = useSelect(
+ ( select ) =>
+ 'global-styles-revisions' ===
+ unlock( select( editSiteStore ) ).getEditorCanvasContainerView(),
+ []
+ );
const loadRevisions = () => {
setIsListViewOpened( false );
- goTo( '/revisions' );
- setEditorCanvasContainerView( 'global-styles-revisions' );
+
+ if ( ! isRevisionsOpened ) {
+ goTo( '/revisions' );
+ setEditorCanvasContainerView( 'global-styles-revisions' );
+ } else {
+ goTo( '/' );
+ setEditorCanvasContainerView( undefined );
+ }
};
const hasRevisions = revisionsCount > 0;
return (
- { canReset || hasRevisions ? (
-
- { ( { onClose } ) => (
-
- { hasRevisions && (
-
- { revisionsCount }
-
- }
- >
- { __( 'Revision history' ) }
-
- ) }
- {
- onReset();
- onClose();
- } }
- disabled={ ! canReset }
- >
- { __( 'Reset to defaults' ) }
-
-
- ) }
-
- ) : (
-
- ) }
+
);
}
diff --git a/packages/edit-site/src/components/header-edit-mode/document-actions/index.js b/packages/edit-site/src/components/header-edit-mode/document-actions/index.js
index 33a52809b0fb09..801226200f20da 100644
--- a/packages/edit-site/src/components/header-edit-mode/document-actions/index.js
+++ b/packages/edit-site/src/components/header-edit-mode/document-actions/index.js
@@ -24,8 +24,9 @@ import {
symbol,
} from '@wordpress/icons';
import { displayShortcut } from '@wordpress/keycodes';
-import { useState, useEffect, useRef } from '@wordpress/element';
import { store as coreStore } from '@wordpress/core-data';
+import { store as editorStore } from '@wordpress/editor';
+import { useRef, useState, useEffect } from '@wordpress/element';
/**
* Internal dependencies
@@ -56,19 +57,18 @@ export default function DocumentActions() {
}
function PageDocumentActions() {
- const { hasPageContentFocus, hasResolved, isFound, title } = useSelect(
+ const { isEditingPage, hasResolved, isFound, title } = useSelect(
( select ) => {
- const {
- hasPageContentFocus: _hasPageContentFocus,
- getEditedPostContext,
- } = select( editSiteStore );
+ const { getEditedPostContext } = select( editSiteStore );
const { getEditedEntityRecord, hasFinishedResolution } =
select( coreStore );
+ const { getRenderingMode } = select( editorStore );
const context = getEditedPostContext();
const queryArgs = [ 'postType', context.postType, context.postId ];
const page = getEditedEntityRecord( ...queryArgs );
return {
- hasPageContentFocus: _hasPageContentFocus(),
+ isEditingPage:
+ !! context.postId && getRenderingMode() !== 'template-only',
hasResolved: hasFinishedResolution(
'getEditedEntityRecord',
queryArgs
@@ -80,16 +80,16 @@ function PageDocumentActions() {
[]
);
- const { setHasPageContentFocus } = useDispatch( editSiteStore );
+ const { setRenderingMode } = useDispatch( editorStore );
+ const [ isAnimated, setIsAnimated ] = useState( false );
+ const isLoading = useRef( true );
- const [ hasEditedTemplate, setHasEditedTemplate ] = useState( false );
- const prevHasPageContentFocus = useRef( false );
useEffect( () => {
- if ( prevHasPageContentFocus.current && ! hasPageContentFocus ) {
- setHasEditedTemplate( true );
+ if ( ! isLoading.current ) {
+ setIsAnimated( true );
}
- prevHasPageContentFocus.current = hasPageContentFocus;
- }, [ hasPageContentFocus ] );
+ isLoading.current = false;
+ }, [ isEditingPage ] );
if ( ! hasResolved ) {
return null;
@@ -103,10 +103,10 @@ function PageDocumentActions() {
);
}
- return hasPageContentFocus ? (
+ return isEditingPage ? (
@@ -114,8 +114,10 @@ function PageDocumentActions() {
) : (
setHasPageContentFocus( true ) }
+ className={ classnames( {
+ 'is-animated': isAnimated,
+ } ) }
+ onBack={ () => setRenderingMode( 'template-locked' ) }
/>
);
}
@@ -182,6 +184,7 @@ function BaseDocumentActions( { className, icon, children, onBack } ) {
openCommandCenter() }
+ size="compact"
>
) }
{ isLargeViewport && (
@@ -142,17 +143,20 @@ export default function DocumentTools( {
showIconLabels ? 'tertiary' : undefined
}
disabled={ ! isVisualMode }
+ size="compact"
/>
) }
{ ! isDistractionFree && (
) }
{ isZoomedOutViewExperimentEnabled &&
@@ -191,6 +196,7 @@ export default function DocumentTools( {
: 'zoom-out'
);
} }
+ size="compact"
/>
) }
>
diff --git a/packages/edit-site/src/components/header-edit-mode/index.js b/packages/edit-site/src/components/header-edit-mode/index.js
index a7daf5570a204b..110e9ca3b4d842 100644
--- a/packages/edit-site/src/components/header-edit-mode/index.js
+++ b/packages/edit-site/src/components/header-edit-mode/index.js
@@ -216,40 +216,43 @@ export default function HeaderEditMode( { setListViewToggleElement } ) {
variants={ toolbarVariants }
transition={ toolbarTransition }
>
-
-
- { ( { onClose } ) => (
-
-
- { __( 'View site' ) }
-
- {
- /* translators: accessibility text */
- __( '(opens in a new tab)' )
- }
-
-
-
+ { isLargeViewport && (
+
-
+ >
+
+ { ( { onClose } ) => (
+
+
+ { __( 'View site' ) }
+
+ {
+ /* translators: accessibility text */
+ __( '(opens in a new tab)' )
+ }
+
+
+
+ ) }
+
+
+ ) }
{ ! isDistractionFree && (
diff --git a/packages/edit-site/src/components/header-edit-mode/more-menu/index.js b/packages/edit-site/src/components/header-edit-mode/more-menu/index.js
index 2185258ad338a6..f6c47c1eb93bd9 100644
--- a/packages/edit-site/src/components/header-edit-mode/more-menu/index.js
+++ b/packages/edit-site/src/components/header-edit-mode/more-menu/index.js
@@ -2,7 +2,7 @@
* WordPress dependencies
*/
import { __, _x } from '@wordpress/i18n';
-import { useSelect, useDispatch, useRegistry } from '@wordpress/data';
+import { useDispatch, useRegistry } from '@wordpress/data';
import { displayShortcut } from '@wordpress/keycodes';
import { external } from '@wordpress/icons';
import { MenuGroup, MenuItem, VisuallyHidden } from '@wordpress/components';
@@ -36,14 +36,6 @@ import { store as siteEditorStore } from '../../../store';
export default function MoreMenu( { showIconLabels } ) {
const registry = useRegistry();
- const isDistractionFree = useSelect(
- ( select ) =>
- select( preferencesStore ).get(
- 'core/edit-site',
- 'distractionFree'
- ),
- []
- );
const { setIsInserterOpened, setIsListViewOpened, closeGeneralSidebar } =
useDispatch( siteEditorStore );
@@ -59,6 +51,10 @@ export default function MoreMenu( { showIconLabels } ) {
} );
};
+ const turnOffDistractionFree = () => {
+ setPreference( 'core/edit-site', 'distractionFree', false );
+ };
+
return (
<>
-
+
.components-button.has-icon,
.edit-site-header-edit-mode__toolbar > .components-dropdown > .components-button.has-icon {
- height: $button-size;
- min-width: $button-size;
- padding: 6px;
+ // @todo: override toolbar group inherited paddings from components/block-tools/style.scss.
+ // This is best fixed by making the mover control area a proper single toolbar group.
+ // It needs specificity due to style inherited from .components-accessible-toolbar .components-button.has-icon.has-icon.
+ height: $button-size-compact;
+ min-width: $button-size-compact;
+ padding: 4px;
&.is-pressed {
background: $gray-900;
@@ -132,7 +123,7 @@ $header-toolbar-min-width: 335px;
&:focus:not(:disabled) {
box-shadow: 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color), inset 0 0 0 $border-width $white;
- outline: 1px solid transparent;
+ outline: $border-width solid transparent;
}
&::before {
@@ -141,11 +132,10 @@ $header-toolbar-min-width: 335px;
}
.edit-site-header-edit-mode__toolbar > .edit-site-header-edit-mode__inserter-toggle.has-icon {
- margin-right: $grid-unit-10;
// Special dimensions for this button.
- min-width: 32px;
- width: 32px;
- height: 32px;
+ min-width: $button-size-compact;
+ width: $button-size-compact;
+ height: $button-size-compact;
padding: 0;
}
diff --git a/packages/edit-site/src/components/list/added-by.js b/packages/edit-site/src/components/list/added-by.js
index e9c8df0fa7f263..a7ed2c4099547f 100644
--- a/packages/edit-site/src/components/list/added-by.js
+++ b/packages/edit-site/src/components/list/added-by.js
@@ -22,20 +22,10 @@ import { _x } from '@wordpress/i18n';
/**
* Internal dependencies
*/
-import {
- TEMPLATE_POST_TYPE,
- TEMPLATE_PART_POST_TYPE,
- TEMPLATE_ORIGINS,
-} from '../../utils/constants';
+import { TEMPLATE_POST_TYPE, TEMPLATE_ORIGINS } from '../../utils/constants';
/** @typedef {'wp_template'|'wp_template_part'} TemplateType */
-/** @type {TemplateType} */
-const TEMPLATE_POST_TYPE_NAMES = [
- TEMPLATE_POST_TYPE,
- TEMPLATE_PART_POST_TYPE,
-];
-
/**
* @typedef {'theme'|'plugin'|'site'|'user'} AddedByType
*
@@ -55,8 +45,6 @@ export function useAddedBy( postType, postId ) {
return useSelect(
( select ) => {
const {
- getTheme,
- getPlugin,
getEntityRecord,
getMedia,
getUser,
@@ -67,82 +55,54 @@ export function useAddedBy( postType, postId ) {
postType,
postId
);
+ const originalSource = template?.original_source;
+ const authorText = template?.author_text;
- if ( TEMPLATE_POST_TYPE_NAMES.includes( template.type ) ) {
- // Added by theme.
- // Template originally provided by a theme, but customized by a user.
- // Templates originally didn't have the 'origin' field so identify
- // older customized templates by checking for no origin and a 'theme'
- // or 'custom' source.
- if (
- template.has_theme_file &&
- ( template.origin === TEMPLATE_ORIGINS.theme ||
- ( ! template.origin &&
- [
- TEMPLATE_ORIGINS.theme,
- TEMPLATE_ORIGINS.custom,
- ].includes( template.source ) ) )
- ) {
+ switch ( originalSource ) {
+ case 'theme': {
return {
- type: 'theme',
+ type: originalSource,
icon: themeIcon,
- text:
- getTheme( template.theme )?.name?.rendered ||
- template.theme,
+ text: authorText,
isCustomized:
template.source === TEMPLATE_ORIGINS.custom,
};
}
-
- // Added by plugin.
- if (
- template.has_theme_file &&
- template.origin === TEMPLATE_ORIGINS.plugin
- ) {
+ case 'plugin': {
return {
- type: TEMPLATE_ORIGINS.plugin,
+ type: originalSource,
icon: pluginIcon,
- text:
- getPlugin( template.theme )?.name || template.theme,
+ text: authorText,
isCustomized:
template.source === TEMPLATE_ORIGINS.custom,
};
}
-
- // Added by site.
- // Template was created from scratch, but has no author. Author support
- // was only added to templates in WordPress 5.9. Fallback to showing the
- // site logo and title.
- if (
- ! template.has_theme_file &&
- template.source === TEMPLATE_ORIGINS.custom &&
- ! template.author
- ) {
+ case 'site': {
const siteData = getEntityRecord(
'root',
'__unstableBase'
);
return {
- type: 'site',
+ type: originalSource,
icon: globeIcon,
imageUrl: siteData?.site_logo
? getMedia( siteData.site_logo )?.source_url
: undefined,
- text: siteData?.name,
+ text: authorText,
+ isCustomized: false,
+ };
+ }
+ default: {
+ const user = getUser( template.author );
+ return {
+ type: 'user',
+ icon: authorIcon,
+ imageUrl: user?.avatar_urls?.[ 48 ],
+ text: authorText,
isCustomized: false,
};
}
}
-
- // Added by user.
- const user = getUser( template.author );
- return {
- type: 'user',
- icon: authorIcon,
- imageUrl: user?.avatar_urls?.[ 48 ],
- text: user?.nickname,
- isCustomized: false,
- };
},
[ postType, postId ]
);
diff --git a/packages/edit-site/src/components/list/style.scss b/packages/edit-site/src/components/list/style.scss
index 0979b7ac7e3a6a..cfc65252c8e685 100644
--- a/packages/edit-site/src/components/list/style.scss
+++ b/packages/edit-site/src/components/list/style.scss
@@ -148,33 +148,31 @@
.edit-site-list-added-by__icon {
display: flex;
flex-shrink: 0;
- align-items: center;
- justify-content: center;
- width: $grid-unit-40;
- height: $grid-unit-40;
- background: $gray-800;
- border-radius: 100%;
+ width: $grid-unit-30;
+ height: $grid-unit-30;
svg {
- fill: $white;
+ fill: currentColor;
}
}
.edit-site-list-added-by__avatar {
flex-shrink: 0;
overflow: hidden;
- border-radius: 100%;
- background: $gray-800;
- width: $grid-unit-40;
- height: $grid-unit-40;
+ width: $grid-unit-30;
+ height: $grid-unit-30;
+ align-items: center;
+ justify-content: center;
+ display: flex;
img {
- width: $grid-unit-40;
- height: $grid-unit-40;
+ width: 20px;
+ height: 20px;
object-fit: cover;
opacity: 0;
transition: opacity 0.1s linear;
@include reduce-motion("transition");
+ border-radius: 100%;
}
&.is-loaded {
diff --git a/packages/edit-site/src/components/page-content-focus-notifications/back-to-page-notification.js b/packages/edit-site/src/components/page-content-focus-notifications/back-to-page-notification.js
index 9bf9ac33b1d198..7cf963246bed81 100644
--- a/packages/edit-site/src/components/page-content-focus-notifications/back-to-page-notification.js
+++ b/packages/edit-site/src/components/page-content-focus-notifications/back-to-page-notification.js
@@ -5,6 +5,7 @@ import { useSelect, useDispatch } from '@wordpress/data';
import { useEffect, useRef } from '@wordpress/element';
import { store as noticesStore } from '@wordpress/notices';
import { __ } from '@wordpress/i18n';
+import { store as editorStore } from '@wordpress/editor';
/**
* Internal dependencies
@@ -25,35 +26,33 @@ export default function BackToPageNotification() {
* switches from focusing on editing page content to editing a template.
*/
export function useBackToPageNotification() {
- const hasPageContentFocus = useSelect(
- ( select ) => select( editSiteStore ).hasPageContentFocus(),
+ const renderingMode = useSelect(
+ ( select ) => select( editorStore ).getRenderingMode(),
[]
);
const { isPage } = useSelect( editSiteStore );
+ const { setRenderingMode } = useDispatch( editorStore );
+ const { createInfoNotice } = useDispatch( noticesStore );
const alreadySeen = useRef( false );
- const { createInfoNotice } = useDispatch( noticesStore );
- const { setHasPageContentFocus } = useDispatch( editSiteStore );
-
useEffect( () => {
- if ( isPage() && ! alreadySeen.current && ! hasPageContentFocus ) {
+ if (
+ isPage() &&
+ ! alreadySeen.current &&
+ renderingMode === 'template-only'
+ ) {
createInfoNotice( __( 'You are editing a template.' ), {
isDismissible: true,
type: 'snackbar',
actions: [
{
label: __( 'Back to page' ),
- onClick: () => setHasPageContentFocus( true ),
+ onClick: () => setRenderingMode( 'template-locked' ),
},
],
} );
alreadySeen.current = true;
}
- }, [
- isPage,
- hasPageContentFocus,
- createInfoNotice,
- setHasPageContentFocus,
- ] );
+ }, [ isPage, renderingMode, createInfoNotice, setRenderingMode ] );
}
diff --git a/packages/edit-site/src/components/page-content-focus-notifications/edit-template-notification.js b/packages/edit-site/src/components/page-content-focus-notifications/edit-template-notification.js
index 3518bc8c3c51dc..8799eb4d661281 100644
--- a/packages/edit-site/src/components/page-content-focus-notifications/edit-template-notification.js
+++ b/packages/edit-site/src/components/page-content-focus-notifications/edit-template-notification.js
@@ -6,11 +6,7 @@ import { useEffect, useState, useRef } from '@wordpress/element';
import { store as noticesStore } from '@wordpress/notices';
import { __ } from '@wordpress/i18n';
import { __experimentalConfirmDialog as ConfirmDialog } from '@wordpress/components';
-
-/**
- * Internal dependencies
- */
-import { store as editSiteStore } from '../../store';
+import { store as editorStore } from '@wordpress/editor';
/**
* Component that:
@@ -27,14 +23,14 @@ import { store as editSiteStore } from '../../store';
* editor iframe canvas.
*/
export default function EditTemplateNotification( { contentRef } ) {
- const hasPageContentFocus = useSelect(
- ( select ) => select( editSiteStore ).hasPageContentFocus(),
+ const renderingMode = useSelect(
+ ( select ) => select( editorStore ).getRenderingMode(),
[]
);
const { getNotices } = useSelect( noticesStore );
const { createInfoNotice, removeNotice } = useDispatch( noticesStore );
- const { setHasPageContentFocus } = useDispatch( editSiteStore );
+ const { setRenderingMode } = useDispatch( editorStore );
const [ isDialogOpen, setIsDialogOpen ] = useState( false );
@@ -42,7 +38,7 @@ export default function EditTemplateNotification( { contentRef } ) {
useEffect( () => {
const handleClick = async ( event ) => {
- if ( ! hasPageContentFocus ) {
+ if ( renderingMode === 'template-only' ) {
return;
}
if ( ! event.target.classList.contains( 'is-root-container' ) ) {
@@ -62,7 +58,7 @@ export default function EditTemplateNotification( { contentRef } ) {
actions: [
{
label: __( 'Edit template' ),
- onClick: () => setHasPageContentFocus( false ),
+ onClick: () => setRenderingMode( 'template-only' ),
},
],
}
@@ -71,7 +67,7 @@ export default function EditTemplateNotification( { contentRef } ) {
};
const handleDblClick = ( event ) => {
- if ( ! hasPageContentFocus ) {
+ if ( renderingMode === 'template-only' ) {
return;
}
if ( ! event.target.classList.contains( 'is-root-container' ) ) {
@@ -90,7 +86,7 @@ export default function EditTemplateNotification( { contentRef } ) {
canvas?.removeEventListener( 'click', handleClick );
canvas?.removeEventListener( 'dblclick', handleDblClick );
};
- }, [ lastNoticeId, hasPageContentFocus, contentRef.current ] );
+ }, [ lastNoticeId, renderingMode, contentRef.current ] );
return (
{
setIsDialogOpen( false );
- setHasPageContentFocus( false );
+ setRenderingMode( 'template-only' );
} }
onCancel={ () => setIsDialogOpen( false ) }
>
diff --git a/packages/edit-site/src/components/page-content-focus-notifications/index.js b/packages/edit-site/src/components/page-content-focus-notifications/index.js
index 2b0e636f5231e3..3f76c91eeadeec 100644
--- a/packages/edit-site/src/components/page-content-focus-notifications/index.js
+++ b/packages/edit-site/src/components/page-content-focus-notifications/index.js
@@ -1,40 +1,10 @@
-/**
- * WordPress dependencies
- */
-import { useSelect, useDispatch } from '@wordpress/data';
-import { useEffect } from '@wordpress/element';
/**
* Internal dependencies
*/
-import { store as editSiteStore } from '../../store';
import EditTemplateNotification from './edit-template-notification';
import BackToPageNotification from './back-to-page-notification';
-import { unlock } from '../../lock-unlock';
export default function PageContentFocusNotifications( { contentRef } ) {
- const { pageContentFocusType, canvasMode } = useSelect( ( select ) => {
- const { getPageContentFocusType, getCanvasMode } = unlock(
- select( editSiteStore )
- );
- const _canvasMode = getCanvasMode();
- return {
- canvasMode: _canvasMode,
- pageContentFocusType: getPageContentFocusType(),
- };
- }, [] );
- const { setPageContentFocusType } = unlock( useDispatch( editSiteStore ) );
-
- /*
- * Ensure that the page content focus type is set to `disableTemplate` when
- * the canvas mode is not `edit`. This makes the experience consistent with
- * refreshing the page, which resets the page content focus type.
- */
- useEffect( () => {
- if ( canvasMode !== 'edit' && !! pageContentFocusType ) {
- setPageContentFocusType( null );
- }
- }, [ canvasMode, pageContentFocusType, setPageContentFocusType ] );
-
return (
<>
diff --git a/packages/edit-site/src/components/page-pages/index.js b/packages/edit-site/src/components/page-pages/index.js
index 6f0b8b942ebe36..bac881f2ceb218 100644
--- a/packages/edit-site/src/components/page-pages/index.js
+++ b/packages/edit-site/src/components/page-pages/index.js
@@ -12,16 +12,24 @@ import { useState, useMemo, useCallback, useEffect } from '@wordpress/element';
import { dateI18n, getDate, getSettings } from '@wordpress/date';
import { privateApis as routerPrivateApis } from '@wordpress/router';
import { useSelect, useDispatch } from '@wordpress/data';
+import { DataViews, VIEW_LAYOUTS } from '@wordpress/dataviews';
/**
* Internal dependencies
*/
import Page from '../page';
import Link from '../routes/link';
-import { DataViews, viewTypeSupportsMap } from '../dataviews';
import { default as DEFAULT_VIEWS } from '../sidebar-dataviews/default-views';
import {
- useTrashPostAction,
+ ENUMERATION_TYPE,
+ LAYOUT_GRID,
+ LAYOUT_TABLE,
+ OPERATOR_IN,
+ OPERATOR_NOT_IN,
+} from '../../utils/constants';
+
+import {
+ trashPostAction,
usePermanentlyDeletePostAction,
useRestorePostAction,
postRevisionsAction,
@@ -31,14 +39,14 @@ import {
import SideEditor from './side-editor';
import Media from '../media';
import { unlock } from '../../lock-unlock';
-import { ENUMERATION_TYPE, OPERATOR_IN } from '../dataviews/constants';
const { useLocation } = unlock( routerPrivateApis );
const EMPTY_ARRAY = [];
const defaultConfigPerViewType = {
- list: {},
- grid: {
+ [ LAYOUT_TABLE ]: {},
+ [ LAYOUT_GRID ]: {
mediaField: 'featured-image',
+ primaryField: 'title',
},
};
@@ -132,6 +140,11 @@ export default function PagePages() {
filter.operator === OPERATOR_IN
) {
filters.author = filter.value;
+ } else if (
+ filter.field === 'author' &&
+ filter.operator === OPERATOR_NOT_IN
+ ) {
+ filters.author_exclude = filter.value;
}
} );
// We want to provide a different default item for the status filter
@@ -204,7 +217,9 @@ export default function PagePages() {
} }
onClick={ ( event ) => {
if (
- viewTypeSupportsMap[ type ].preview
+ VIEW_LAYOUTS.find(
+ ( v ) => v.type === type
+ )?.supports?.preview
) {
event.preventDefault();
setSelection( [ item.id ] );
@@ -242,6 +257,9 @@ export default function PagePages() {
type: ENUMERATION_TYPE,
elements: STATUSES,
enableSorting: false,
+ filterBy: {
+ operators: [ OPERATOR_IN ],
+ },
},
{
header: __( 'Date' ),
@@ -259,7 +277,6 @@ export default function PagePages() {
[ authors ]
);
- const trashPostAction = useTrashPostAction();
const permanentlyDeletePostAction = usePermanentlyDeletePostAction();
const restorePostAction = useRestorePostAction();
const editPostAction = useEditPostAction();
@@ -272,12 +289,7 @@ export default function PagePages() {
editPostAction,
postRevisionsAction,
],
- [
- trashPostAction,
- permanentlyDeletePostAction,
- restorePostAction,
- editPostAction,
- ]
+ [ permanentlyDeletePostAction, restorePostAction, editPostAction ]
);
const onChangeView = useCallback(
( viewUpdater ) => {
@@ -314,7 +326,8 @@ export default function PagePages() {
onChangeView={ onChangeView }
/>
- { viewTypeSupportsMap[ view.type ].preview && (
+ { VIEW_LAYOUTS.find( ( v ) => v.type === view.type )?.supports
+ ?.preview && (
{ selection.length === 1 && (
diff --git a/packages/edit-site/src/components/page-patterns/patterns-list.js b/packages/edit-site/src/components/page-patterns/patterns-list.js
index eb56fdded90607..6015fbbf4caf34 100644
--- a/packages/edit-site/src/components/page-patterns/patterns-list.js
+++ b/packages/edit-site/src/components/page-patterns/patterns-list.js
@@ -15,7 +15,11 @@ import {
import { __, _x, isRTL } from '@wordpress/i18n';
import { chevronLeft, chevronRight } from '@wordpress/icons';
import { privateApis as routerPrivateApis } from '@wordpress/router';
-import { useAsyncList, useViewportMatch } from '@wordpress/compose';
+import {
+ useAsyncList,
+ useViewportMatch,
+ useDebouncedInput,
+} from '@wordpress/compose';
/**
* Internal dependencies
@@ -25,7 +29,6 @@ import Grid from './grid';
import NoPatterns from './no-patterns';
import usePatterns from './use-patterns';
import SidebarButton from '../sidebar-button';
-import useDebouncedInput from '../../utils/use-debounced-input';
import { unlock } from '../../lock-unlock';
import { PATTERN_SYNC_TYPES, PATTERN_TYPES } from '../../utils/constants';
import Pagination from './pagination';
diff --git a/packages/edit-site/src/components/page-templates/dataviews-templates.js b/packages/edit-site/src/components/page-templates/dataviews-templates.js
index 39a9d1b60abad6..0556efa5e63799 100644
--- a/packages/edit-site/src/components/page-templates/dataviews-templates.js
+++ b/packages/edit-site/src/components/page-templates/dataviews-templates.js
@@ -12,11 +12,18 @@ import {
__experimentalText as Text,
__experimentalHStack as HStack,
__experimentalVStack as VStack,
+ VisuallyHidden,
} from '@wordpress/components';
import { __, _x } from '@wordpress/i18n';
import { useState, useMemo, useCallback } from '@wordpress/element';
import { useEntityRecords } from '@wordpress/core-data';
import { decodeEntities } from '@wordpress/html-entities';
+import { parse } from '@wordpress/blocks';
+import {
+ BlockPreview,
+ privateApis as blockEditorPrivateApis,
+} from '@wordpress/block-editor';
+import { DataViews } from '@wordpress/dataviews';
/**
* Internal dependencies
@@ -24,25 +31,46 @@ import { decodeEntities } from '@wordpress/html-entities';
import Page from '../page';
import Link from '../routes/link';
import { useAddedBy, AvatarImage } from '../list/added-by';
-import { TEMPLATE_POST_TYPE } from '../../utils/constants';
-import { DataViews } from '../dataviews';
+import {
+ TEMPLATE_POST_TYPE,
+ ENUMERATION_TYPE,
+ OPERATOR_IN,
+ OPERATOR_NOT_IN,
+ LAYOUT_GRID,
+ LAYOUT_TABLE,
+} from '../../utils/constants';
import {
useResetTemplateAction,
deleteTemplateAction,
renameTemplateAction,
} from './template-actions';
+import usePatternSettings from '../page-patterns/use-pattern-settings';
+import { unlock } from '../../lock-unlock';
+
+const { ExperimentalBlockEditorProvider, useGlobalStyle } = unlock(
+ blockEditorPrivateApis
+);
const EMPTY_ARRAY = [];
+const defaultConfigPerViewType = {
+ [ LAYOUT_TABLE ]: {},
+ [ LAYOUT_GRID ]: {
+ mediaField: 'preview',
+ primaryField: 'title',
+ },
+};
+
const DEFAULT_VIEW = {
- type: 'list',
+ type: LAYOUT_TABLE,
search: '',
page: 1,
perPage: 20,
// All fields are visible by default, so it's
// better to keep track of the hidden ones.
- hiddenFields: [],
+ hiddenFields: [ 'preview' ],
layout: {},
+ filters: [],
};
function normalizeSearchInput( input = '' ) {
@@ -81,7 +109,7 @@ function TemplateTitle( { item } ) {
function AuthorField( { item } ) {
const { text, icon, imageUrl } = useAddedBy( item.type, item.id );
return (
-
+
{ imageUrl ? (
) : (
@@ -94,12 +122,116 @@ function AuthorField( { item } ) {
);
}
+function TemplatePreview( { content, viewType } ) {
+ const settings = usePatternSettings();
+ const [ backgroundColor = 'white' ] = useGlobalStyle( 'color.background' );
+ const blocks = useMemo( () => {
+ return parse( content );
+ }, [ content ] );
+ if ( ! blocks?.length ) {
+ return null;
+ }
+ // Wrap everything in a block editor provider to ensure 'styles' that are needed
+ // for the previews are synced between the site editor store and the block editor store.
+ // Additionally we need to have the `__experimentalBlockPatterns` setting in order to
+ // render patterns inside the previews.
+ // TODO: Same approach is used in the patterns list and it becomes obvious that some of
+ // the block editor settings are needed in context where we don't have the block editor.
+ // Explore how we can solve this in a better way.
+ return (
+
+
+
+
+
+ );
+}
+
export default function DataviewsTemplates() {
const [ view, setView ] = useState( DEFAULT_VIEW );
const { records: allTemplates, isResolving: isLoadingData } =
useEntityRecords( 'postType', TEMPLATE_POST_TYPE, {
per_page: -1,
} );
+
+ const authors = useMemo( () => {
+ if ( ! allTemplates ) {
+ return EMPTY_ARRAY;
+ }
+ const authorsSet = new Set();
+ allTemplates.forEach( ( template ) => {
+ authorsSet.add( template.author_text );
+ } );
+ return Array.from( authorsSet ).map( ( author ) => ( {
+ value: author,
+ label: author,
+ } ) );
+ }, [ allTemplates ] );
+
+ const fields = useMemo(
+ () => [
+ {
+ header: __( 'Preview' ),
+ id: 'preview',
+ render: ( { item, view: { type: viewType } } ) => {
+ return (
+
+ );
+ },
+ minWidth: 120,
+ maxWidth: 120,
+ enableSorting: false,
+ },
+ {
+ header: __( 'Template' ),
+ id: 'title',
+ getValue: ( { item } ) => item.title?.rendered || item.slug,
+ render: ( { item } ) => ,
+ maxWidth: 400,
+ enableHiding: false,
+ },
+ {
+ header: __( 'Description' ),
+ id: 'description',
+ getValue: ( { item } ) => item.description,
+ render: ( { item } ) => {
+ return item.description ? (
+ decodeEntities( item.description )
+ ) : (
+ <>
+
+ —
+
+
+ { __( 'No description.' ) }
+
+ >
+ );
+ },
+ maxWidth: 200,
+ enableSorting: false,
+ },
+ {
+ header: __( 'Author' ),
+ id: 'author',
+ getValue: ( { item } ) => item.author_text,
+ render: ( { item } ) => {
+ return ;
+ },
+ enableHiding: false,
+ type: ENUMERATION_TYPE,
+ elements: authors,
+ },
+ ],
+ [ authors ]
+ );
+
const { shownTemplates, paginationInfo } = useMemo( () => {
if ( ! allTemplates ) {
return {
@@ -123,19 +255,48 @@ export default function DataviewsTemplates() {
);
} );
}
+
+ // Handle filters.
+ if ( view.filters.length > 0 ) {
+ view.filters.forEach( ( filter ) => {
+ if (
+ filter.field === 'author' &&
+ filter.operator === OPERATOR_IN &&
+ !! filter.value
+ ) {
+ filteredTemplates = filteredTemplates.filter( ( item ) => {
+ return item.author_text === filter.value;
+ } );
+ } else if (
+ filter.field === 'author' &&
+ filter.operator === OPERATOR_NOT_IN &&
+ !! filter.value
+ ) {
+ filteredTemplates = filteredTemplates.filter( ( item ) => {
+ return item.author_text !== filter.value;
+ } );
+ }
+ } );
+ }
+
// Handle sorting.
- // TODO: Explore how this can be more dynamic..
if ( view.sort ) {
- if ( view.sort.field === 'title' ) {
+ const stringSortingFields = [ 'title', 'author' ];
+ const fieldId = view.sort.field;
+ if ( stringSortingFields.includes( fieldId ) ) {
+ const fieldToSort = fields.find( ( field ) => {
+ return field.id === fieldId;
+ } );
filteredTemplates.sort( ( a, b ) => {
- const titleA = a.title?.rendered || a.slug;
- const titleB = b.title?.rendered || b.slug;
+ const valueA = fieldToSort.getValue( { item: a } ) ?? '';
+ const valueB = fieldToSort.getValue( { item: b } ) ?? '';
return view.sort.direction === 'asc'
- ? titleA.localeCompare( titleB )
- : titleB.localeCompare( titleA );
+ ? valueA.localeCompare( valueB )
+ : valueB.localeCompare( valueA );
} );
}
}
+
// Handle pagination.
const start = ( view.page - 1 ) * view.perPage;
const totalItems = filteredTemplates?.length || 0;
@@ -150,44 +311,8 @@ export default function DataviewsTemplates() {
totalPages: Math.ceil( totalItems / view.perPage ),
},
};
- }, [ allTemplates, view ] );
- const fields = useMemo(
- () => [
- {
- header: __( 'Template' ),
- id: 'title',
- getValue: ( { item } ) => item.title?.rendered || item.slug,
- render: ( { item } ) => ,
- maxWidth: 400,
- enableHiding: false,
- },
- {
- header: __( 'Description' ),
- id: 'description',
- getValue: ( { item } ) => item.description,
- render: ( { item } ) => {
- return (
- item.description && (
-
- { decodeEntities( item.description ) }
-
- )
- );
- },
- maxWidth: 200,
- enableSorting: false,
- },
- {
- header: __( 'Author' ),
- id: 'author',
- getValue: () => {},
- render: ( { item } ) => ,
- enableHiding: false,
- enableSorting: false,
- },
- ],
- []
- );
+ }, [ allTemplates, view, fields ] );
+
const resetTemplateAction = useResetTemplateAction();
const actions = useMemo(
() => [
@@ -199,10 +324,19 @@ export default function DataviewsTemplates() {
);
const onChangeView = useCallback(
( viewUpdater ) => {
- const updatedView =
+ let updatedView =
typeof viewUpdater === 'function'
? viewUpdater( view )
: viewUpdater;
+ if ( updatedView.type !== view.type ) {
+ updatedView = {
+ ...updatedView,
+ layout: {
+ ...defaultConfigPerViewType[ updatedView.type ],
+ },
+ };
+ }
+
setView( updatedView );
},
[ view, setView ]
@@ -218,7 +352,7 @@ export default function DataviewsTemplates() {
isLoading={ isLoadingData }
view={ view }
onChangeView={ onChangeView }
- supportedLayouts={ [ 'list' ] }
+ supportedLayouts={ [ LAYOUT_TABLE, LAYOUT_GRID ] }
/>
);
diff --git a/packages/edit-site/src/components/page-templates/style.scss b/packages/edit-site/src/components/page-templates/style.scss
new file mode 100644
index 00000000000000..ed4484550b48d5
--- /dev/null
+++ b/packages/edit-site/src/components/page-templates/style.scss
@@ -0,0 +1,13 @@
+.page-templates-preview-field {
+ &.is-viewtype-list {
+ .block-editor-block-preview__container {
+ height: 120px;
+ }
+ }
+
+ &.is-viewtype-grid {
+ .block-editor-block-preview__container {
+ height: auto;
+ }
+ }
+}
diff --git a/packages/edit-site/src/components/preferences-modal/index.js b/packages/edit-site/src/components/preferences-modal/index.js
index 8439661a7910b2..b0d065c0cfa5f2 100644
--- a/packages/edit-site/src/components/preferences-modal/index.js
+++ b/packages/edit-site/src/components/preferences-modal/index.js
@@ -41,37 +41,16 @@ export default function EditSitePreferencesModal() {
} );
};
+ const turnOffDistractionFree = () => {
+ setPreference( 'core/edit-site', 'distractionFree', false );
+ };
+
const sections = useMemo( () => [
{
name: 'general',
tabLabel: __( 'General' ),
content: (
-
-
-
-
+
+
+
),
},
+ {
+ name: 'accessibility',
+ tabLabel: __( 'Accessibility' ),
+ content: (
+ <>
+
+
+
+
+
+
+ >
+ ),
+ },
] );
if ( ! isModalActive ) {
return null;
diff --git a/packages/edit-site/src/components/routes/use-title.js b/packages/edit-site/src/components/routes/use-title.js
index 6d06c593dd253a..775f3659778748 100644
--- a/packages/edit-site/src/components/routes/use-title.js
+++ b/packages/edit-site/src/components/routes/use-title.js
@@ -38,8 +38,8 @@ export default function useTitle( title ) {
if ( title && siteTitle ) {
// @see https://github.com/WordPress/wordpress-develop/blob/94849898192d271d533e09756007e176feb80697/src/wp-admin/admin-header.php#L67-L68
const formattedTitle = sprintf(
- /* translators: Admin screen title. 1: Admin screen name, 2: Network or site name. */
- __( '%1$s ‹ %2$s — WordPress' ),
+ /* translators: Admin document title. 1: Admin screen name, 2: Network or site name. */
+ __( '%1$s ‹ %2$s ‹ Editor — WordPress' ),
decodeEntities( title ),
decodeEntities( siteTitle )
);
@@ -47,14 +47,7 @@ export default function useTitle( title ) {
document.title = formattedTitle;
// Announce title on route change for screen readers.
- speak(
- sprintf(
- /* translators: The page title that is currently displaying. */
- __( 'Now displaying: %s' ),
- document.title
- ),
- 'assertive'
- );
+ speak( title, 'assertive' );
}
}, [ title, siteTitle, location ] );
}
diff --git a/packages/edit-site/src/components/save-button/index.js b/packages/edit-site/src/components/save-button/index.js
index 7be87e8956e7db..d4c2969920c52a 100644
--- a/packages/edit-site/src/components/save-button/index.js
+++ b/packages/edit-site/src/components/save-button/index.js
@@ -98,11 +98,12 @@ export default function SaveButton( {
* Displaying the keyboard shortcut conditionally makes the tooltip
* itself show conditionally. This would trigger a full-rerendering
* of the button that we want to avoid. By setting `showTooltip`,
- & the tooltip is always rendered even when there's no keyboard shortcut.
+ * the tooltip is always rendered even when there's no keyboard shortcut.
*/
showTooltip={ showTooltip }
icon={ icon }
__next40pxDefaultSize={ __next40pxDefaultSize }
+ size="compact"
>
{ label }
diff --git a/packages/edit-site/src/components/save-hub/style.scss b/packages/edit-site/src/components/save-hub/style.scss
index e864444b2077b4..5cb7cca1f85018 100644
--- a/packages/edit-site/src/components/save-hub/style.scss
+++ b/packages/edit-site/src/components/save-hub/style.scss
@@ -18,4 +18,11 @@
&[aria-disabled="true"]:hover {
color: inherit;
}
+
+ &:not(.is-primary) {
+ &.is-busy,
+ &.is-busy[aria-disabled="true"]:hover {
+ color: $gray-900;
+ }
+ }
}
diff --git a/packages/edit-site/src/components/sidebar-dataviews/custom-dataviews-list.js b/packages/edit-site/src/components/sidebar-dataviews/custom-dataviews-list.js
index 12659a36bbf9b8..0babb21ab2010e 100644
--- a/packages/edit-site/src/components/sidebar-dataviews/custom-dataviews-list.js
+++ b/packages/edit-site/src/components/sidebar-dataviews/custom-dataviews-list.js
@@ -116,10 +116,12 @@ function CustomDataViewItem( { dataviewId, isActive } ) {
{ ( { onClose } ) => (
diff --git a/packages/edit-site/src/components/sidebar-dataviews/dataview-item.js b/packages/edit-site/src/components/sidebar-dataviews/dataview-item.js
index c6d7bbe4a231ba..cbcb4f2f8ed59c 100644
--- a/packages/edit-site/src/components/sidebar-dataviews/dataview-item.js
+++ b/packages/edit-site/src/components/sidebar-dataviews/dataview-item.js
@@ -6,9 +6,9 @@ import classnames from 'classnames';
/**
* WordPress dependencies
*/
-import { page, columns, pullRight } from '@wordpress/icons';
import { privateApis as routerPrivateApis } from '@wordpress/router';
import { __experimentalHStack as HStack } from '@wordpress/components';
+import { VIEW_LAYOUTS } from '@wordpress/dataviews';
/**
* Internal dependencies
@@ -18,11 +18,6 @@ import SidebarNavigationItem from '../sidebar-navigation-item';
import { unlock } from '../../lock-unlock';
const { useLocation } = unlock( routerPrivateApis );
-function getDataViewIcon( type ) {
- const icons = { list: page, grid: columns, 'side-by-side': pullRight };
- return icons[ type ];
-}
-
export default function DataViewItem( {
title,
slug,
@@ -37,7 +32,8 @@ export default function DataViewItem( {
params: { path },
} = useLocation();
- const iconToUse = icon || getDataViewIcon( type );
+ const iconToUse =
+ icon || VIEW_LAYOUTS.find( ( v ) => v.type === type ).icon;
const linkInfo = useLink( {
path,
diff --git a/packages/edit-site/src/components/sidebar-dataviews/default-views.js b/packages/edit-site/src/components/sidebar-dataviews/default-views.js
index d853b6cde112f0..11652286e62d8d 100644
--- a/packages/edit-site/src/components/sidebar-dataviews/default-views.js
+++ b/packages/edit-site/src/components/sidebar-dataviews/default-views.js
@@ -7,10 +7,10 @@ import { trash } from '@wordpress/icons';
/**
* Internal dependencies
*/
-import { OPERATOR_IN } from '../dataviews/constants';
+import { LAYOUT_TABLE, OPERATOR_IN } from '../../utils/constants';
const DEFAULT_PAGE_BASE = {
- type: 'list',
+ type: LAYOUT_TABLE,
search: '',
filters: [],
page: 1,
diff --git a/packages/edit-site/src/components/sidebar-dataviews/style.scss b/packages/edit-site/src/components/sidebar-dataviews/style.scss
index 6d8561dc8edca7..9c5b8f48e944f2 100644
--- a/packages/edit-site/src/components/sidebar-dataviews/style.scss
+++ b/packages/edit-site/src/components/sidebar-dataviews/style.scss
@@ -9,6 +9,11 @@
.edit-site-sidebar-dataviews-dataview-item {
border-radius: $radius-block-ui;
+ padding-right: $grid-unit-10;
+
+ .edit-site-sidebar-dataviews-dataview-item__dropdown-menu {
+ min-width: initial;
+ }
&:hover,
&:focus,
diff --git a/packages/edit-site/src/components/sidebar-edit-mode/index.js b/packages/edit-site/src/components/sidebar-edit-mode/index.js
index 8a36a0b5395610..b7683f242a6198 100644
--- a/packages/edit-site/src/components/sidebar-edit-mode/index.js
+++ b/packages/edit-site/src/components/sidebar-edit-mode/index.js
@@ -8,6 +8,7 @@ import { useEffect } from '@wordpress/element';
import { useSelect, useDispatch } from '@wordpress/data';
import { store as interfaceStore } from '@wordpress/interface';
import { store as blockEditorStore } from '@wordpress/block-editor';
+import { store as editorStore } from '@wordpress/editor';
/**
* Internal dependencies
@@ -33,7 +34,7 @@ export function SidebarComplementaryAreaFills() {
isEditorSidebarOpened,
hasBlockSelection,
supportsGlobalStyles,
- hasPageContentFocus,
+ isEditingPage,
} = useSelect( ( select ) => {
const _sidebar =
select( interfaceStore ).getActiveComplementaryArea( STORE_NAME );
@@ -48,7 +49,9 @@ export function SidebarComplementaryAreaFills() {
hasBlockSelection:
!! select( blockEditorStore ).getBlockSelectionStart(),
supportsGlobalStyles: ! settings?.supportsTemplatePartsMode,
- hasPageContentFocus: select( editSiteStore ).hasPageContentFocus(),
+ isEditingPage:
+ select( editSiteStore ).isPage() &&
+ select( editorStore ).getRenderingMode() !== 'template-only',
};
}, [] );
const { enableComplementaryArea } = useDispatch( interfaceStore );
@@ -60,13 +63,18 @@ export function SidebarComplementaryAreaFills() {
return;
}
if ( hasBlockSelection ) {
- if ( ! hasPageContentFocus ) {
+ if ( ! isEditingPage ) {
enableComplementaryArea( STORE_NAME, SIDEBAR_BLOCK );
}
} else {
enableComplementaryArea( STORE_NAME, SIDEBAR_TEMPLATE );
}
- }, [ hasBlockSelection, isEditorSidebarOpened, hasPageContentFocus ] );
+ }, [
+ hasBlockSelection,
+ isEditorSidebarOpened,
+ isEditingPage,
+ enableComplementaryArea,
+ ] );
let sidebarName = sidebar;
if ( ! isEditorSidebarOpened ) {
@@ -85,11 +93,7 @@ export function SidebarComplementaryAreaFills() {
>
{ sidebarName === SIDEBAR_TEMPLATE && (
<>
- { hasPageContentFocus ? (
-
- ) : (
-
- ) }
+ { isEditingPage ? : }
>
) }
diff --git a/packages/edit-site/src/components/sidebar-edit-mode/page-panels/edit-template.js b/packages/edit-site/src/components/sidebar-edit-mode/page-panels/edit-template.js
index 4bc81b8c7a2921..a11d119e1cecb7 100644
--- a/packages/edit-site/src/components/sidebar-edit-mode/page-panels/edit-template.js
+++ b/packages/edit-site/src/components/sidebar-edit-mode/page-panels/edit-template.js
@@ -7,8 +7,10 @@ import { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';
import { __ } from '@wordpress/i18n';
import { store as coreStore } from '@wordpress/core-data';
import { check } from '@wordpress/icons';
-import { store as blockEditorStore } from '@wordpress/block-editor';
-import { privateApis as editorPrivateApis } from '@wordpress/editor';
+import {
+ privateApis as editorPrivateApis,
+ store as editorStore,
+} from '@wordpress/editor';
/**
* Internal dependencies
@@ -17,7 +19,6 @@ import { store as editSiteStore } from '../../../store';
import SwapTemplateButton from './swap-template-button';
import ResetDefaultTemplate from './reset-default-template';
import { unlock } from '../../../lock-unlock';
-import { PAGE_CONTENT_BLOCK_TYPES } from '../../../utils/constants';
const { PostPanelRow } = unlock( editorPrivateApis );
@@ -27,41 +28,31 @@ const POPOVER_PROPS = {
};
export default function EditTemplate() {
- const { hasPostContentBlocks, hasResolved, template, isTemplateHidden } =
- useSelect( ( select ) => {
+ const { hasResolved, template, isTemplateHidden } = useSelect(
+ ( select ) => {
const { getEditedPostContext, getEditedPostType, getEditedPostId } =
select( editSiteStore );
- const { getCanvasMode, getPageContentFocusType } = unlock(
- select( editSiteStore )
- );
+ const { getRenderingMode } = unlock( select( editorStore ) );
const { getEditedEntityRecord, hasFinishedResolution } =
select( coreStore );
- const { __experimentalGetGlobalBlocksByName } =
- select( blockEditorStore );
const _context = getEditedPostContext();
const _postType = getEditedPostType();
const queryArgs = [ 'postType', _postType, getEditedPostId() ];
return {
- hasPostContentBlocks: !! __experimentalGetGlobalBlocksByName(
- Object.keys( PAGE_CONTENT_BLOCK_TYPES )
- ).length,
context: _context,
hasResolved: hasFinishedResolution(
'getEditedEntityRecord',
queryArgs
),
template: getEditedEntityRecord( ...queryArgs ),
- isTemplateHidden:
- getCanvasMode() === 'edit' &&
- getPageContentFocusType() === 'hideTemplate',
+ isTemplateHidden: getRenderingMode() === 'post-only',
postType: _postType,
};
- }, [] );
+ },
+ []
+ );
- const { setHasPageContentFocus } = useDispatch( editSiteStore );
- // Disable reason: `useDispatch` can't be called conditionally.
- // eslint-disable-next-line @wordpress/no-unused-vars-before-return
- const { setPageContentFocusType } = unlock( useDispatch( editSiteStore ) );
+ const { setRenderingMode } = useDispatch( editorStore );
if ( ! hasResolved ) {
return null;
@@ -85,7 +76,7 @@ export default function EditTemplate() {
{
- setHasPageContentFocus( false );
+ setRenderingMode( 'template-only' );
onClose();
} }
>
@@ -94,25 +85,21 @@ export default function EditTemplate() {
- { hasPostContentBlocks && (
-
- {
- setPageContentFocusType(
- isTemplateHidden
- ? 'disableTemplate'
- : 'hideTemplate'
- );
- } }
- >
- { __( 'Template preview' ) }
-
-
- ) }
+
+ {
+ setRenderingMode(
+ isTemplateHidden
+ ? 'template-locked'
+ : 'post-only'
+ );
+ } }
+ >
+ { __( 'Template preview' ) }
+
+
>
) }
diff --git a/packages/edit-site/src/components/sidebar-edit-mode/page-panels/hooks.js b/packages/edit-site/src/components/sidebar-edit-mode/page-panels/hooks.js
index 92fad17cd1d3e4..1071479b2f9f22 100644
--- a/packages/edit-site/src/components/sidebar-edit-mode/page-panels/hooks.js
+++ b/packages/edit-site/src/components/sidebar-edit-mode/page-panels/hooks.js
@@ -18,13 +18,25 @@ export function useEditedPostContext() {
);
}
-export function useIsPostsPage() {
+export function useAllowSwitchingTemplates() {
const { postId } = useEditedPostContext();
return useSelect(
- ( select ) =>
- +postId ===
- select( coreStore ).getEntityRecord( 'root', 'site' )
- ?.page_for_posts,
+ ( select ) => {
+ const { getEntityRecord, getEntityRecords } = select( coreStore );
+ const siteSettings = getEntityRecord( 'root', 'site' );
+ const templates = getEntityRecords(
+ 'postType',
+ TEMPLATE_POST_TYPE,
+ { per_page: -1 }
+ );
+ const isPostsPage = +postId === siteSettings?.page_for_posts;
+ // If current page is set front page or posts page, we also need
+ // to check if the current theme has a template for it. If not
+ const isFrontPage =
+ +postId === siteSettings?.page_on_front &&
+ templates?.some( ( { slug } ) => slug === 'front-page' );
+ return ! isPostsPage && ! isFrontPage;
+ },
[ postId ]
);
}
@@ -46,19 +58,18 @@ function useTemplates() {
export function useAvailableTemplates() {
const currentTemplateSlug = useCurrentTemplateSlug();
- const isPostsPage = useIsPostsPage();
+ const allowSwitchingTemplate = useAllowSwitchingTemplates();
const templates = useTemplates();
return useMemo(
() =>
- // The posts page template cannot be changed.
- ! isPostsPage &&
+ allowSwitchingTemplate &&
templates?.filter(
( template ) =>
template.is_custom &&
template.slug !== currentTemplateSlug &&
!! template.content.raw // Skip empty templates.
),
- [ templates, currentTemplateSlug, isPostsPage ]
+ [ templates, currentTemplateSlug, allowSwitchingTemplate ]
);
}
diff --git a/packages/edit-site/src/components/sidebar-edit-mode/page-panels/index.js b/packages/edit-site/src/components/sidebar-edit-mode/page-panels/index.js
index df59dffe66be69..bbf4b55c052874 100644
--- a/packages/edit-site/src/components/sidebar-edit-mode/page-panels/index.js
+++ b/packages/edit-site/src/components/sidebar-edit-mode/page-panels/index.js
@@ -12,6 +12,7 @@ import { humanTimeDiff } from '@wordpress/date';
import { useSelect } from '@wordpress/data';
import { store as coreStore } from '@wordpress/core-data';
import { decodeEntities } from '@wordpress/html-entities';
+import { store as editorStore } from '@wordpress/editor';
/**
* Internal dependencies
@@ -22,28 +23,39 @@ import PageContent from './page-content';
import PageSummary from './page-summary';
export default function PagePanels() {
- const { id, type, hasResolved, status, date, password, title, modified } =
- useSelect( ( select ) => {
- const { getEditedPostContext } = select( editSiteStore );
- const { getEditedEntityRecord, hasFinishedResolution } =
- select( coreStore );
- const context = getEditedPostContext();
- const queryArgs = [ 'postType', context.postType, context.postId ];
- const page = getEditedEntityRecord( ...queryArgs );
- return {
- hasResolved: hasFinishedResolution(
- 'getEditedEntityRecord',
- queryArgs
- ),
- title: page?.title,
- id: page?.id,
- type: page?.type,
- status: page?.status,
- date: page?.date,
- password: page?.password,
- modified: page?.modified,
- };
- }, [] );
+ const {
+ id,
+ type,
+ hasResolved,
+ status,
+ date,
+ password,
+ title,
+ modified,
+ renderingMode,
+ } = useSelect( ( select ) => {
+ const { getEditedPostContext } = select( editSiteStore );
+ const { getEditedEntityRecord, hasFinishedResolution } =
+ select( coreStore );
+ const { getRenderingMode } = select( editorStore );
+ const context = getEditedPostContext();
+ const queryArgs = [ 'postType', context.postType, context.postId ];
+ const page = getEditedEntityRecord( ...queryArgs );
+ return {
+ hasResolved: hasFinishedResolution(
+ 'getEditedEntityRecord',
+ queryArgs
+ ),
+ title: page?.title,
+ id: page?.id,
+ type: page?.type,
+ status: page?.status,
+ date: page?.date,
+ password: page?.password,
+ modified: page?.modified,
+ renderingMode: getRenderingMode(),
+ };
+ }, [] );
if ( ! hasResolved ) {
return null;
@@ -77,9 +89,11 @@ export default function PagePanels() {
postType={ type }
/>
-
-
-
+ { renderingMode !== 'post-only' && (
+
+
+
+ ) }
>
);
}
diff --git a/packages/edit-site/src/components/sidebar-edit-mode/page-panels/reset-default-template.js b/packages/edit-site/src/components/sidebar-edit-mode/page-panels/reset-default-template.js
index 0f29292274546b..795477cc8fc7c6 100644
--- a/packages/edit-site/src/components/sidebar-edit-mode/page-panels/reset-default-template.js
+++ b/packages/edit-site/src/components/sidebar-edit-mode/page-panels/reset-default-template.js
@@ -10,18 +10,18 @@ import { store as coreStore } from '@wordpress/core-data';
* Internal dependencies
*/
import {
+ useAllowSwitchingTemplates,
useCurrentTemplateSlug,
useEditedPostContext,
- useIsPostsPage,
} from './hooks';
export default function ResetDefaultTemplate( { onClick } ) {
const currentTemplateSlug = useCurrentTemplateSlug();
- const isPostsPage = useIsPostsPage();
+ const allowSwitchingTemplate = useAllowSwitchingTemplates();
const { postType, postId } = useEditedPostContext();
const { editEntityRecord } = useDispatch( coreStore );
// The default template in a post is indicated by an empty string.
- if ( ! currentTemplateSlug || isPostsPage ) {
+ if ( ! currentTemplateSlug || ! allowSwitchingTemplate ) {
return null;
}
return (
diff --git a/packages/edit-site/src/components/sidebar-edit-mode/settings-header/index.js b/packages/edit-site/src/components/sidebar-edit-mode/settings-header/index.js
index 569bad72ad7ef9..c8ceb089cf0f5d 100644
--- a/packages/edit-site/src/components/sidebar-edit-mode/settings-header/index.js
+++ b/packages/edit-site/src/components/sidebar-edit-mode/settings-header/index.js
@@ -10,6 +10,7 @@ import { Button } from '@wordpress/components';
import { __, sprintf } from '@wordpress/i18n';
import { useSelect, useDispatch } from '@wordpress/data';
import { store as interfaceStore } from '@wordpress/interface';
+import { store as editorStore } from '@wordpress/editor';
/**
* Internal dependencies
@@ -20,12 +21,12 @@ import { store as editSiteStore } from '../../../store';
import { POST_TYPE_LABELS, TEMPLATE_POST_TYPE } from '../../../utils/constants';
const SettingsHeader = ( { sidebarName } ) => {
- const { hasPageContentFocus, entityType } = useSelect( ( select ) => {
- const { getEditedPostType, hasPageContentFocus: _hasPageContentFocus } =
- select( editSiteStore );
+ const { isEditingPage, entityType } = useSelect( ( select ) => {
+ const { getEditedPostType, isPage } = select( editSiteStore );
+ const { getRenderingMode } = select( editorStore );
return {
- hasPageContentFocus: _hasPageContentFocus(),
+ isEditingPage: isPage() && getRenderingMode() !== 'template-only',
entityType: getEditedPostType(),
};
} );
@@ -41,7 +42,7 @@ const SettingsHeader = ( { sidebarName } ) => {
enableComplementaryArea( STORE_NAME, SIDEBAR_BLOCK );
let templateAriaLabel;
- if ( hasPageContentFocus ) {
+ if ( isEditingPage ) {
templateAriaLabel =
sidebarName === SIDEBAR_TEMPLATE
? // translators: ARIA label for the Template sidebar tab, selected.
@@ -70,11 +71,9 @@ const SettingsHeader = ( { sidebarName } ) => {
}
) }
aria-label={ templateAriaLabel }
- data-label={
- hasPageContentFocus ? __( 'Page' ) : entityLabel
- }
+ data-label={ isEditingPage ? __( 'Page' ) : entityLabel }
>
- { hasPageContentFocus ? __( 'Page' ) : entityLabel }
+ { isEditingPage ? __( 'Page' ) : entityLabel }
diff --git a/packages/edit-site/src/components/sidebar-navigation-screen-template/style.scss b/packages/edit-site/src/components/sidebar-navigation-screen-template/style.scss
index 20b39d8e89817a..4e6fcc3700fc4d 100644
--- a/packages/edit-site/src/components/sidebar-navigation-screen-template/style.scss
+++ b/packages/edit-site/src/components/sidebar-navigation-screen-template/style.scss
@@ -11,6 +11,8 @@
img {
border-radius: $grid-unit-15;
+ width: 20px;
+ height: 20px;
}
svg {
@@ -21,7 +23,10 @@
.edit-site-sidebar-navigation-screen-template__added-by-description-author-icon {
width: 24px;
height: 24px;
- margin-right: $grid-unit-10;
+ margin-right: $grid-unit-05;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
}
.edit-site-sidebar-navigation-screen-template__template-area-button {
diff --git a/packages/edit-site/src/components/style-book/index.js b/packages/edit-site/src/components/style-book/index.js
index b6931b8e656653..19508f0a59f8ea 100644
--- a/packages/edit-site/src/components/style-book/index.js
+++ b/packages/edit-site/src/components/style-book/index.js
@@ -7,13 +7,10 @@ import classnames from 'classnames';
* WordPress dependencies
*/
import {
- __unstableComposite as Composite,
- __unstableUseCompositeState as useCompositeState,
- __unstableCompositeItem as CompositeItem,
Disabled,
TabPanel,
+ privateApis as componentsPrivateApis,
} from '@wordpress/components';
-
import { __, sprintf } from '@wordpress/i18n';
import {
getCategories,
@@ -43,6 +40,12 @@ const { ExperimentalBlockEditorProvider, useGlobalStyle } = unlock(
blockEditorPrivateApis
);
+const {
+ CompositeV2: Composite,
+ CompositeItemV2: CompositeItem,
+ useCompositeStoreV2: useCompositeStore,
+} = unlock( componentsPrivateApis );
+
// The content area of the Style Book is rendered within an iframe so that global styles
// are applied to elements within the entire content area. To support elements that are
// not part of the block previews, such as headings and layout for the block previews,
@@ -66,6 +69,8 @@ const STYLE_BOOK_IFRAME_STYLES = `
padding: 16px;
width: 100%;
box-sizing: border-box;
+ scroll-margin-top: 32px;
+ scroll-margin-bottom: 32px;
}
.edit-site-style-book__example.is-selected {
@@ -332,6 +337,7 @@ const StyleBookBody = ( {
}
isSelected={ isSelected }
onSelect={ onSelect }
+ key={ category }
/>
);
@@ -339,12 +345,14 @@ const StyleBookBody = ( {
const Examples = memo(
( { className, examples, category, label, isSelected, onSelect } ) => {
- const composite = useCompositeState( { orientation: 'vertical' } );
+ const compositeStore = useCompositeStore( { orientation: 'vertical' } );
+
return (
{ examples
.filter( ( example ) =>
@@ -354,7 +362,6 @@ const Examples = memo(
{
+const Example = ( { id, title, blocks, isSelected, onClick } ) => {
const originalSettings = useSelect(
( select ) => select( blockEditorStore ).getSettings(),
[]
@@ -385,35 +392,41 @@ const Example = ( { composite, id, title, blocks, isSelected, onClick } ) => {
);
return (
-
-
- { title }
-
-
-
-
+
+
}
+ role="button"
+ onClick={ onClick }
+ >
+
+ { title }
+
+
-
-
-
+
+
+
+
+
+
+
-
+
);
};
diff --git a/packages/edit-site/src/components/sync-state-with-url/use-init-edited-entity-from-url.js b/packages/edit-site/src/components/sync-state-with-url/use-init-edited-entity-from-url.js
index 64eb3778a99c70..46079cbce8efd5 100644
--- a/packages/edit-site/src/components/sync-state-with-url/use-init-edited-entity-from-url.js
+++ b/packages/edit-site/src/components/sync-state-with-url/use-init-edited-entity-from-url.js
@@ -28,21 +28,46 @@ const postTypesWithoutParentTemplate = [
];
function useResolveEditedEntityAndContext( { postId, postType } ) {
- const { isRequestingSite, homepageId, url } = useSelect( ( select ) => {
- const { getSite, getUnstableBase } = select( coreDataStore );
- const siteData = getSite();
- const base = getUnstableBase();
-
- return {
- isRequestingSite: ! base,
- homepageId:
- siteData?.show_on_front === 'page'
- ? siteData.page_on_front
- : null,
- url: base?.home,
- };
- }, [] );
+ const { hasLoadedAllDependencies, homepageId, url, frontPageTemplateId } =
+ useSelect( ( select ) => {
+ const { getSite, getUnstableBase, getEntityRecords } =
+ select( coreDataStore );
+ const siteData = getSite();
+ const base = getUnstableBase();
+ const templates = getEntityRecords(
+ 'postType',
+ TEMPLATE_POST_TYPE,
+ {
+ per_page: -1,
+ }
+ );
+ let _frontPateTemplateId;
+ if ( templates ) {
+ const frontPageTemplate = templates.find(
+ ( t ) => t.slug === 'front-page'
+ );
+ _frontPateTemplateId = frontPageTemplate
+ ? frontPageTemplate.id
+ : false;
+ }
+ return {
+ hasLoadedAllDependencies: !! base && !! siteData,
+ homepageId:
+ siteData?.show_on_front === 'page'
+ ? siteData.page_on_front.toString()
+ : null,
+ url: base?.home,
+ frontPageTemplateId: _frontPateTemplateId,
+ };
+ }, [] );
+
+ /**
+ * This is a hook that recreates the logic to resolve a template for a given WordPress postID postTypeId
+ * in order to match the frontend as closely as possible in the site editor.
+ *
+ * It is not possible to rely on the server logic because there maybe unsaved changes that impact the template resolution.
+ */
const resolvedTemplateId = useSelect(
( select ) => {
// If we're rendering a post type that doesn't have a template
@@ -62,6 +87,22 @@ function useResolveEditedEntityAndContext( { postId, postType } ) {
postTypeToResolve,
postIdToResolve
) {
+ // For the front page, we always use the front page template if existing.
+ if (
+ postTypeToResolve === 'page' &&
+ homepageId === postIdToResolve
+ ) {
+ // We're still checking whether the front page template exists.
+ // Don't resolve the template yet.
+ if ( frontPageTemplateId === undefined ) {
+ return undefined;
+ }
+
+ if ( !! frontPageTemplateId ) {
+ return frontPageTemplateId;
+ }
+ }
+
const editedEntity = getEditedEntityRecord(
'postType',
postTypeToResolve,
@@ -91,6 +132,10 @@ function useResolveEditedEntityAndContext( { postId, postType } ) {
} );
}
+ if ( ! hasLoadedAllDependencies ) {
+ return undefined;
+ }
+
// If we're rendering a specific page, post... we need to resolve its template.
if ( postType && postId ) {
return resolveTemplateForPostTypeAndId( postType, postId );
@@ -102,12 +147,19 @@ function useResolveEditedEntityAndContext( { postId, postType } ) {
}
// If we're not rendering a specific page, use the front page template.
- if ( ! isRequestingSite && url ) {
+ if ( url ) {
const template = __experimentalGetTemplateForLink( url );
return template?.id;
}
},
- [ homepageId, isRequestingSite, url, postId, postType ]
+ [
+ homepageId,
+ hasLoadedAllDependencies,
+ url,
+ postId,
+ postType,
+ frontPageTemplateId,
+ ]
);
const context = useMemo( () => {
@@ -130,7 +182,7 @@ function useResolveEditedEntityAndContext( { postId, postType } ) {
return { isReady: true, postType, postId, context };
}
- if ( ( postType && postId ) || homepageId || ! isRequestingSite ) {
+ if ( hasLoadedAllDependencies ) {
return {
isReady: resolvedTemplateId !== undefined,
postType: TEMPLATE_POST_TYPE,
diff --git a/packages/edit-site/src/components/welcome-guide/page.js b/packages/edit-site/src/components/welcome-guide/page.js
index adb64a8033e999..db89d9b653ad58 100644
--- a/packages/edit-site/src/components/welcome-guide/page.js
+++ b/packages/edit-site/src/components/welcome-guide/page.js
@@ -23,8 +23,8 @@ export default function WelcomeGuidePage() {
'core/edit-site',
'welcomeGuide'
);
- const { hasPageContentFocus } = select( editSiteStore );
- return isPageActive && ! isEditorActive && hasPageContentFocus();
+ const { isPage } = select( editSiteStore );
+ return isPageActive && ! isEditorActive && isPage();
}, [] );
if ( ! isVisible ) {
diff --git a/packages/edit-site/src/components/welcome-guide/template.js b/packages/edit-site/src/components/welcome-guide/template.js
index f0c02c09d1124a..073a19c2d6efdc 100644
--- a/packages/edit-site/src/components/welcome-guide/template.js
+++ b/packages/edit-site/src/components/welcome-guide/template.js
@@ -5,6 +5,7 @@ import { useDispatch, useSelect } from '@wordpress/data';
import { Guide } from '@wordpress/components';
import { __ } from '@wordpress/i18n';
import { store as preferencesStore } from '@wordpress/preferences';
+import { store as editorStore } from '@wordpress/editor';
/**
* Internal dependencies
@@ -23,12 +24,13 @@ export default function WelcomeGuideTemplate() {
'core/edit-site',
'welcomeGuide'
);
- const { isPage, hasPageContentFocus } = select( editSiteStore );
+ const { isPage } = select( editSiteStore );
+ const { getRenderingMode } = select( editorStore );
return (
isTemplateActive &&
! isEditorActive &&
isPage() &&
- ! hasPageContentFocus()
+ getRenderingMode() === 'template-only'
);
}, [] );
diff --git a/packages/edit-site/src/hooks/commands/use-common-commands.js b/packages/edit-site/src/hooks/commands/use-common-commands.js
index f6da4829bf38d7..fdea50d8afbddb 100644
--- a/packages/edit-site/src/hooks/commands/use-common-commands.js
+++ b/packages/edit-site/src/hooks/commands/use-common-commands.js
@@ -244,11 +244,16 @@ function useGlobalStylesOpenRevisionsCommands() {
const isMobileViewport = useViewportMatch( 'medium', '<' );
const isEditorPage = ! getIsListPage( params, isMobileViewport );
const history = useHistory();
- const hasRevisions = useSelect(
- ( select ) =>
- select( coreStore ).getCurrentThemeGlobalStylesRevisions()?.length,
- []
- );
+ const hasRevisions = useSelect( ( select ) => {
+ const { getEntityRecord, __experimentalGetCurrentGlobalStylesId } =
+ select( coreStore );
+ const globalStylesId = __experimentalGetCurrentGlobalStylesId();
+ const globalStyles = globalStylesId
+ ? getEntityRecord( 'root', 'globalStyles', globalStylesId )
+ : undefined;
+ return !! globalStyles?._links?.[ 'version-history' ]?.[ 0 ]?.count;
+ }, [] );
+
const commands = useMemo( () => {
if ( ! hasRevisions ) {
return [];
diff --git a/packages/edit-site/src/hooks/commands/use-edit-mode-commands.js b/packages/edit-site/src/hooks/commands/use-edit-mode-commands.js
index 37baef18dffd48..ece6d349db1e7f 100644
--- a/packages/edit-site/src/hooks/commands/use-edit-mode-commands.js
+++ b/packages/edit-site/src/hooks/commands/use-edit-mode-commands.js
@@ -24,6 +24,7 @@ import { privateApis as routerPrivateApis } from '@wordpress/router';
import { store as preferencesStore } from '@wordpress/preferences';
import { store as interfaceStore } from '@wordpress/interface';
import { store as noticesStore } from '@wordpress/notices';
+import { store as editorStore } from '@wordpress/editor';
/**
* Internal dependencies
@@ -42,15 +43,18 @@ const { useHistory } = unlock( routerPrivateApis );
function usePageContentFocusCommands() {
const { record: template } = useEditedEntityRecord();
- const { isPage, canvasMode, hasPageContentFocus } = useSelect(
- ( select ) => ( {
- isPage: select( editSiteStore ).isPage(),
- canvasMode: unlock( select( editSiteStore ) ).getCanvasMode(),
- hasPageContentFocus: select( editSiteStore ).hasPageContentFocus(),
- } ),
- []
- );
- const { setHasPageContentFocus } = useDispatch( editSiteStore );
+ const { isPage, canvasMode, renderingMode } = useSelect( ( select ) => {
+ const { isPage: _isPage, getCanvasMode } = unlock(
+ select( editSiteStore )
+ );
+ const { getRenderingMode } = select( editorStore );
+ return {
+ isPage: _isPage(),
+ canvasMode: getCanvasMode(),
+ renderingMode: getRenderingMode(),
+ };
+ }, [] );
+ const { setRenderingMode } = useDispatch( editorStore );
if ( ! isPage || canvasMode !== 'edit' ) {
return { isLoading: false, commands: [] };
@@ -58,7 +62,7 @@ function usePageContentFocusCommands() {
const commands = [];
- if ( hasPageContentFocus ) {
+ if ( renderingMode !== 'template-only' ) {
commands.push( {
name: 'core/switch-to-template-focus',
/* translators: %1$s: template title */
@@ -68,7 +72,7 @@ function usePageContentFocusCommands() {
),
icon: layout,
callback: ( { close } ) => {
- setHasPageContentFocus( false );
+ setRenderingMode( 'template-only' );
close();
},
} );
@@ -78,7 +82,7 @@ function usePageContentFocusCommands() {
label: __( 'Back to page' ),
icon: page,
callback: ( { close } ) => {
- setHasPageContentFocus( true );
+ setRenderingMode( 'template-locked' );
close();
},
} );
@@ -122,8 +126,10 @@ function useManipulateDocumentCommands() {
const { isLoaded, record: template } = useEditedEntityRecord();
const { removeTemplate, revertTemplate } = useDispatch( editSiteStore );
const history = useHistory();
- const hasPageContentFocus = useSelect(
- ( select ) => select( editSiteStore ).hasPageContentFocus(),
+ const isEditingPage = useSelect(
+ ( select ) =>
+ select( editSiteStore ).isPage() &&
+ select( editorStore ).getRenderingMode() !== 'template-only',
[]
);
@@ -133,7 +139,7 @@ function useManipulateDocumentCommands() {
const commands = [];
- if ( isTemplateRevertable( template ) && ! hasPageContentFocus ) {
+ if ( isTemplateRevertable( template ) && ! isEditingPage ) {
const label =
template.type === TEMPLATE_POST_TYPE
? /* translators: %1$s: template title */
@@ -157,7 +163,7 @@ function useManipulateDocumentCommands() {
} );
}
- if ( isTemplateRemovable( template ) && ! hasPageContentFocus ) {
+ if ( isTemplateRemovable( template ) && ! isEditingPage ) {
const label =
template.type === TEMPLATE_POST_TYPE
? /* translators: %1$s: template title */
diff --git a/packages/edit-site/src/hooks/navigation-menu-edit.js b/packages/edit-site/src/hooks/navigation-menu-edit.js
index 4c04b1b2534026..8b502f075430b0 100644
--- a/packages/edit-site/src/hooks/navigation-menu-edit.js
+++ b/packages/edit-site/src/hooks/navigation-menu-edit.js
@@ -43,7 +43,7 @@ function NavigationMenuEdit( { attributes } ) {
},
{
// this applies to Navigation Menus as well.
- fromTemplateId: params.postId,
+ fromTemplateId: params.postId || navigationMenu?.id,
}
);
diff --git a/packages/edit-site/src/hooks/template-part-edit.js b/packages/edit-site/src/hooks/template-part-edit.js
index 0b14bbbbd77121..e60b7945448e7b 100644
--- a/packages/edit-site/src/hooks/template-part-edit.js
+++ b/packages/edit-site/src/hooks/template-part-edit.js
@@ -43,7 +43,7 @@ function EditTemplatePartMenuItem( { attributes } ) {
canvas: 'edit',
},
{
- fromTemplateId: params.postId,
+ fromTemplateId: params.postId || templatePart?.id,
}
);
diff --git a/packages/edit-site/src/store/actions.js b/packages/edit-site/src/store/actions.js
index 000a5f71bbbf0e..2dd7aacd384014 100644
--- a/packages/edit-site/src/store/actions.js
+++ b/packages/edit-site/src/store/actions.js
@@ -575,6 +575,10 @@ export const switchEditorMode =
export const setHasPageContentFocus =
( hasPageContentFocus ) =>
( { dispatch, registry } ) => {
+ deprecated( `dispatch( 'core/edit-site' ).setHasPageContentFocus`, {
+ since: '6.5',
+ } );
+
if ( hasPageContentFocus ) {
registry.dispatch( blockEditorStore ).clearSelectedBlock();
}
diff --git a/packages/edit-site/src/store/private-actions.js b/packages/edit-site/src/store/private-actions.js
index 3e2bfe2ee47b24..2d858c15208991 100644
--- a/packages/edit-site/src/store/private-actions.js
+++ b/packages/edit-site/src/store/private-actions.js
@@ -11,7 +11,7 @@ import { store as preferencesStore } from '@wordpress/preferences';
*/
export const setCanvasMode =
( mode ) =>
- ( { registry, dispatch, select } ) => {
+ ( { registry, dispatch } ) => {
registry.dispatch( blockEditorStore ).__unstableSetEditorMode( 'edit' );
dispatch( {
type: 'SET_CANVAS_MODE',
@@ -30,10 +30,6 @@ export const setCanvasMode =
) {
dispatch.setIsListViewOpened( true );
}
- // Switch focus away from editing the template when switching to view mode.
- if ( mode === 'view' && select.isPage() ) {
- dispatch.setHasPageContentFocus( true );
- }
};
/**
@@ -49,22 +45,3 @@ export const setEditorCanvasContainerView =
view,
} );
};
-
-/**
- * Sets the type of page content focus. Can be one of:
- *
- * - `'disableTemplate'`: Disable the blocks belonging to the page's template.
- * - `'hideTemplate'`: Hide the blocks belonging to the page's template.
- *
- * @param {'disableTemplate'|'hideTemplate'} pageContentFocusType The type of page content focus.
- *
- * @return {Object} Action object.
- */
-export const setPageContentFocusType =
- ( pageContentFocusType ) =>
- ( { dispatch } ) => {
- dispatch( {
- type: 'SET_PAGE_CONTENT_FOCUS_TYPE',
- pageContentFocusType,
- } );
- };
diff --git a/packages/edit-site/src/store/private-selectors.js b/packages/edit-site/src/store/private-selectors.js
index 0d4cf2b3eefdaa..1f1f6e999fdb29 100644
--- a/packages/edit-site/src/store/private-selectors.js
+++ b/packages/edit-site/src/store/private-selectors.js
@@ -1,8 +1,3 @@
-/**
- * Internal dependencies
- */
-import { hasPageContentFocus } from './selectors';
-
/**
* Returns the current canvas mode.
*
@@ -24,20 +19,3 @@ export function getCanvasMode( state ) {
export function getEditorCanvasContainerView( state ) {
return state.editorCanvasContainerView;
}
-
-/**
- * Returns the type of the current page content focus, or null if there is no
- * page content focus.
- *
- * Possible values are:
- *
- * - `'disableTemplate'`: Disable the blocks belonging to the page's template.
- * - `'hideTemplate'`: Hide the blocks belonging to the page's template.
- *
- * @param {Object} state Global application state.
- *
- * @return {'disableTemplate'|'hideTemplate'|null} Type of the current page content focus.
- */
-export function getPageContentFocusType( state ) {
- return hasPageContentFocus( state ) ? state.pageContentFocusType : null;
-}
diff --git a/packages/edit-site/src/store/reducer.js b/packages/edit-site/src/store/reducer.js
index e99c6dda1fc1d0..a46d215f905074 100644
--- a/packages/edit-site/src/store/reducer.js
+++ b/packages/edit-site/src/store/reducer.js
@@ -157,43 +157,6 @@ function editorCanvasContainerView( state = undefined, action ) {
return state;
}
-/**
- * Reducer used to track whether the editor allows only page content to be
- * edited.
- *
- * @param {boolean} state Current state.
- * @param {Object} action Dispatched action.
- *
- * @return {boolean} Updated state.
- */
-export function hasPageContentFocus( state = false, action ) {
- switch ( action.type ) {
- case 'SET_EDITED_POST':
- return !! action.context?.postId;
- case 'SET_HAS_PAGE_CONTENT_FOCUS':
- return action.hasPageContentFocus;
- }
-
- return state;
-}
-
-/**
- * Reducer used to track the type of page content focus.
- *
- * @param {string} state Current state.
- * @param {Object} action Dispatched action.
- *
- * @return {string} Updated state.
- */
-export function pageContentFocusType( state = 'disableTemplate', action ) {
- switch ( action.type ) {
- case 'SET_PAGE_CONTENT_FOCUS_TYPE':
- return action.pageContentFocusType;
- }
-
- return state;
-}
-
export default combineReducers( {
deviceType,
settings,
@@ -203,6 +166,4 @@ export default combineReducers( {
saveViewPanel,
canvasMode,
editorCanvasContainerView,
- hasPageContentFocus,
- pageContentFocusType,
} );
diff --git a/packages/edit-site/src/store/selectors.js b/packages/edit-site/src/store/selectors.js
index f9c2f7d65cfaf4..9d00e141270c40 100644
--- a/packages/edit-site/src/store/selectors.js
+++ b/packages/edit-site/src/store/selectors.js
@@ -7,6 +7,7 @@ import deprecated from '@wordpress/deprecated';
import { Platform } from '@wordpress/element';
import { store as preferencesStore } from '@wordpress/preferences';
import { store as blockEditorStore } from '@wordpress/block-editor';
+import { store as editorStore } from '@wordpress/editor';
/**
* Internal dependencies
@@ -181,7 +182,10 @@ export const __experimentalGetInsertionPoint = createRegistrySelector(
return { rootClientId, insertionIndex, filterValue };
}
- if ( hasPageContentFocus( state ) ) {
+ if (
+ isPage( state ) &&
+ select( editorStore ).getRenderingMode() !== 'template-only'
+ ) {
const [ postContentClientId ] =
select( blockEditorStore ).__experimentalGetGlobalBlocksByName(
'core/post-content'
@@ -310,10 +314,14 @@ export function isPage( state ) {
/**
* Whether or not the editor allows only page content to be edited.
*
- * @param {Object} state Global application state.
+ * @deprecated
*
* @return {boolean} Whether or not focus is on editing page content.
*/
-export function hasPageContentFocus( state ) {
- return isPage( state ) ? state.hasPageContentFocus : false;
+export function hasPageContentFocus() {
+ deprecated( `select( 'core/edit-site' ).hasPageContentFocus`, {
+ since: '6.5',
+ } );
+
+ return false;
}
diff --git a/packages/edit-site/src/store/test/actions.js b/packages/edit-site/src/store/test/actions.js
index 3eb1855e68e9d7..6f0597fec12434 100644
--- a/packages/edit-site/src/store/test/actions.js
+++ b/packages/edit-site/src/store/test/actions.js
@@ -7,18 +7,19 @@ import { createRegistry } from '@wordpress/data';
import { store as interfaceStore } from '@wordpress/interface';
import { store as noticesStore } from '@wordpress/notices';
import { store as preferencesStore } from '@wordpress/preferences';
+import { store as editorStore } from '@wordpress/editor';
/**
* Internal dependencies
*/
import { store as editSiteStore } from '..';
-import { setHasPageContentFocus } from '../actions';
function createRegistryWithStores() {
// create a registry
const registry = createRegistry();
// register stores
+ registry.register( editorStore );
registry.register( blockEditorStore );
registry.register( coreStore );
registry.register( editSiteStore );
@@ -177,34 +178,4 @@ describe( 'actions', () => {
).toBe( true );
} );
} );
-
- describe( 'setHasPageContentFocus', () => {
- it( 'toggles the page content lock on', () => {
- const dispatch = jest.fn();
- const clearSelectedBlock = jest.fn();
- const registry = {
- dispatch: () => ( { clearSelectedBlock } ),
- };
- setHasPageContentFocus( true )( { dispatch, registry } );
- expect( clearSelectedBlock ).toHaveBeenCalled();
- expect( dispatch ).toHaveBeenCalledWith( {
- type: 'SET_HAS_PAGE_CONTENT_FOCUS',
- hasPageContentFocus: true,
- } );
- } );
-
- it( 'toggles the page content lock off', () => {
- const dispatch = jest.fn();
- const clearSelectedBlock = jest.fn();
- const registry = {
- dispatch: () => ( { clearSelectedBlock } ),
- };
- setHasPageContentFocus( false )( { dispatch, registry } );
- expect( clearSelectedBlock ).not.toHaveBeenCalled();
- expect( dispatch ).toHaveBeenCalledWith( {
- type: 'SET_HAS_PAGE_CONTENT_FOCUS',
- hasPageContentFocus: false,
- } );
- } );
- } );
} );
diff --git a/packages/edit-site/src/store/test/reducer.js b/packages/edit-site/src/store/test/reducer.js
index a5e47ec5bbbaf3..f39261fea38802 100644
--- a/packages/edit-site/src/store/test/reducer.js
+++ b/packages/edit-site/src/store/test/reducer.js
@@ -11,8 +11,6 @@ import {
editedPost,
blockInserterPanel,
listViewPanel,
- hasPageContentFocus,
- pageContentFocusType,
} from '../reducer';
import { setIsInserterOpened } from '../actions';
@@ -149,64 +147,4 @@ describe( 'state', () => {
);
} );
} );
-
- describe( 'hasPageContentFocus()', () => {
- it( 'defaults to false', () => {
- expect( hasPageContentFocus( undefined, {} ) ).toBe( false );
- } );
-
- it( 'becomes false when editing a template', () => {
- expect(
- hasPageContentFocus( true, {
- type: 'SET_EDITED_POST',
- postType: 'wp_template',
- } )
- ).toBe( false );
- } );
-
- it( 'becomes true when editing a page', () => {
- expect(
- hasPageContentFocus( false, {
- type: 'SET_EDITED_POST',
- postType: 'wp_template',
- context: {
- postType: 'page',
- postId: 123,
- },
- } )
- ).toBe( true );
- } );
-
- it( 'can be set', () => {
- expect(
- hasPageContentFocus( false, {
- type: 'SET_HAS_PAGE_CONTENT_FOCUS',
- hasPageContentFocus: true,
- } )
- ).toBe( true );
- expect(
- hasPageContentFocus( true, {
- type: 'SET_HAS_PAGE_CONTENT_FOCUS',
- hasPageContentFocus: false,
- } )
- ).toBe( false );
- } );
- } );
-
- describe( 'pageContentFocusType', () => {
- it( 'defaults to disableTemplate', () => {
- expect( pageContentFocusType( undefined, {} ) ).toBe(
- 'disableTemplate'
- );
- } );
-
- it( 'can be set', () => {
- expect(
- pageContentFocusType( 'disableTemplate', {
- type: 'SET_PAGE_CONTENT_FOCUS_TYPE',
- pageContentFocusType: 'enableTemplate',
- } )
- ).toBe( 'enableTemplate' );
- } );
- } );
} );
diff --git a/packages/edit-site/src/store/test/selectors.js b/packages/edit-site/src/store/test/selectors.js
index 7e36d2f4b75f4d..07577e897b04ec 100644
--- a/packages/edit-site/src/store/test/selectors.js
+++ b/packages/edit-site/src/store/test/selectors.js
@@ -13,7 +13,6 @@ import {
isInserterOpened,
isListViewOpened,
isPage,
- hasPageContentFocus,
} from '../selectors';
describe( 'selectors', () => {
@@ -88,38 +87,4 @@ describe( 'selectors', () => {
expect( isPage( state ) ).toBe( false );
} );
} );
-
- describe( 'hasPageContentFocus', () => {
- it( 'returns true if locked and the edited post type is a page', () => {
- const state = {
- editedPost: {
- postType: 'wp_template',
- context: { postType: 'page', postId: 123 },
- },
- hasPageContentFocus: true,
- };
- expect( hasPageContentFocus( state ) ).toBe( true );
- } );
-
- it( 'returns false if not locked and the edited post type is a page', () => {
- const state = {
- editedPost: {
- postType: 'wp_template',
- context: { postType: 'page', postId: 123 },
- },
- hasPageContentFocus: false,
- };
- expect( hasPageContentFocus( state ) ).toBe( false );
- } );
-
- it( 'returns false if locked and the edited post type is a template', () => {
- const state = {
- editedPost: {
- postType: 'wp_template',
- },
- hasPageContentFocus: true,
- };
- expect( hasPageContentFocus( state ) ).toBe( false );
- } );
- } );
} );
diff --git a/packages/edit-site/src/style.scss b/packages/edit-site/src/style.scss
index 0b49f48a3e5845..5a93375afec8b0 100644
--- a/packages/edit-site/src/style.scss
+++ b/packages/edit-site/src/style.scss
@@ -1,10 +1,10 @@
@import "../../interface/src/style.scss";
+@import "../../dataviews/src/style.scss";
@import "./components/add-new-template/style.scss";
@import "./components/block-editor/style.scss";
@import "./components/canvas-loader/style.scss";
@import "./components/code-editor/style.scss";
-@import "./components/dataviews/style.scss";
@import "./components/global-styles/style.scss";
@import "./components/global-styles/screen-revisions/style.scss";
@import "./components/header-edit-mode/style.scss";
@@ -13,6 +13,7 @@
@import "./components/page/style.scss";
@import "./components/page-pages/style.scss";
@import "./components/page-patterns/style.scss";
+@import "./components/page-templates/style.scss";
@import "./components/table/style.scss";
@import "./components/sidebar-edit-mode/style.scss";
@import "./components/sidebar-edit-mode/page-panels/style.scss";
diff --git a/packages/edit-site/src/utils/constants.js b/packages/edit-site/src/utils/constants.js
index 2f00bc13f6de8d..f5ca89b9fb62cd 100644
--- a/packages/edit-site/src/utils/constants.js
+++ b/packages/edit-site/src/utils/constants.js
@@ -38,19 +38,17 @@ export const FOCUSABLE_ENTITIES = [
PATTERN_TYPES.user,
];
-/**
- * Block types that are considered to be page content. These are the only blocks
- * editable when hasPageContentFocus() is true.
- */
-export const PAGE_CONTENT_BLOCK_TYPES = {
- 'core/post-title': true,
- 'core/post-featured-image': true,
- 'core/post-content': true,
-};
-
export const POST_TYPE_LABELS = {
[ TEMPLATE_POST_TYPE ]: __( 'Template' ),
[ TEMPLATE_PART_POST_TYPE ]: __( 'Template part' ),
[ PATTERN_TYPES.user ]: __( 'Pattern' ),
[ NAVIGATION_POST_TYPE ]: __( 'Navigation' ),
};
+
+// DataViews constants
+export const LAYOUT_GRID = 'grid';
+export const LAYOUT_TABLE = 'table';
+export const LAYOUT_LIST = 'list';
+export const ENUMERATION_TYPE = 'enumeration';
+export const OPERATOR_IN = 'in';
+export const OPERATOR_NOT_IN = 'notIn';
diff --git a/packages/edit-site/src/utils/use-debounced-input.js b/packages/edit-site/src/utils/use-debounced-input.js
deleted file mode 100644
index 26cd6c0da0e0a9..00000000000000
--- a/packages/edit-site/src/utils/use-debounced-input.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- * WordPress dependencies
- */
-import { useEffect, useState } from '@wordpress/element';
-import { useDebounce } from '@wordpress/compose';
-
-export default function useDebouncedInput( defaultValue = '' ) {
- const [ input, setInput ] = useState( defaultValue );
- const [ debouncedInput, setDebouncedState ] = useState( defaultValue );
-
- const setDebouncedInput = useDebounce( setDebouncedState, 250 );
-
- useEffect( () => {
- setDebouncedInput( input );
- }, [ input ] );
-
- return [ input, setInput, debouncedInput ];
-}
diff --git a/packages/edit-widgets/CHANGELOG.md b/packages/edit-widgets/CHANGELOG.md
index 65b83144691eb1..885b7d5aa489b8 100644
--- a/packages/edit-widgets/CHANGELOG.md
+++ b/packages/edit-widgets/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 5.24.0 (2023-11-29)
+
## 5.23.0 (2023-11-16)
## 5.22.0 (2023-11-02)
diff --git a/packages/edit-widgets/package.json b/packages/edit-widgets/package.json
index 33c7f9d75dd619..eb318c962c1c3f 100644
--- a/packages/edit-widgets/package.json
+++ b/packages/edit-widgets/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/edit-widgets",
- "version": "5.23.0",
+ "version": "5.24.0",
"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 1012c6163ec292..34019a6aad78d9 100644
--- a/packages/editor/CHANGELOG.md
+++ b/packages/editor/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 13.24.0 (2023-11-29)
+
## 13.23.0 (2023-11-16)
## 13.22.0 (2023-11-02)
diff --git a/packages/editor/package.json b/packages/editor/package.json
index 5a4bf3ba7bf216..59b4c78b8235ee 100644
--- a/packages/editor/package.json
+++ b/packages/editor/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/editor",
- "version": "13.23.0",
+ "version": "13.24.0",
"description": "Enhanced block editor for WordPress posts.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/editor/src/components/editor-canvas/index.js b/packages/editor/src/components/editor-canvas/index.js
new file mode 100644
index 00000000000000..906eb6b272fc78
--- /dev/null
+++ b/packages/editor/src/components/editor-canvas/index.js
@@ -0,0 +1,334 @@
+/**
+ * External dependencies
+ */
+import classnames from 'classnames';
+
+/**
+ * WordPress dependencies
+ */
+import {
+ BlockList,
+ store as blockEditorStore,
+ __unstableUseTypingObserver as useTypingObserver,
+ useSettings,
+ __experimentalRecursionProvider as RecursionProvider,
+ privateApis as blockEditorPrivateApis,
+} from '@wordpress/block-editor';
+import { useEffect, useRef, useMemo } from '@wordpress/element';
+import { useSelect } from '@wordpress/data';
+import { parse } from '@wordpress/blocks';
+import { store as coreStore } from '@wordpress/core-data';
+
+/**
+ * Internal dependencies
+ */
+import PostTitle from '../post-title';
+import { store as editorStore } from '../../store';
+import { unlock } from '../../lock-unlock';
+
+const { LayoutStyle, useLayoutClasses, useLayoutStyles } = unlock(
+ blockEditorPrivateApis
+);
+
+/**
+ * Given an array of nested blocks, find the first Post Content
+ * block inside it, recursing through any nesting levels,
+ * and return its attributes.
+ *
+ * @param {Array} blocks A list of blocks.
+ *
+ * @return {Object | undefined} The Post Content block.
+ */
+function getPostContentAttributes( blocks ) {
+ for ( let i = 0; i < blocks.length; i++ ) {
+ if ( blocks[ i ].name === 'core/post-content' ) {
+ return blocks[ i ].attributes;
+ }
+ if ( blocks[ i ].innerBlocks.length ) {
+ const nestedPostContent = getPostContentAttributes(
+ blocks[ i ].innerBlocks
+ );
+
+ if ( nestedPostContent ) {
+ return nestedPostContent;
+ }
+ }
+ }
+}
+
+function checkForPostContentAtRootLevel( blocks ) {
+ for ( let i = 0; i < blocks.length; i++ ) {
+ if ( blocks[ i ].name === 'core/post-content' ) {
+ return true;
+ }
+ }
+ return false;
+}
+
+export default function EditorCanvas( {
+ // Ideally as we unify post and site editors, we won't need these props.
+ autoFocus,
+ dropZoneElement,
+ className,
+ renderAppender,
+} ) {
+ const {
+ renderingMode,
+ postContentAttributes,
+ editedPostTemplate = {},
+ wrapperBlockName,
+ wrapperUniqueId,
+ } = useSelect( ( select ) => {
+ const {
+ getCurrentPostId,
+ getCurrentPostType,
+ getCurrentTemplateId,
+ getEditorSettings,
+ getRenderingMode,
+ } = select( editorStore );
+ const postTypeSlug = getCurrentPostType();
+ const _renderingMode = getRenderingMode();
+ let _wrapperBlockName;
+
+ if ( postTypeSlug === 'wp_block' ) {
+ _wrapperBlockName = 'core/block';
+ } else if ( ! _renderingMode === 'post-only' ) {
+ _wrapperBlockName = 'core/post-content';
+ }
+
+ const editorSettings = getEditorSettings();
+ const supportsTemplateMode = editorSettings.supportsTemplateMode;
+ const postType = select( coreStore ).getPostType( postTypeSlug );
+ const canEditTemplate = select( coreStore ).canUser(
+ 'create',
+ 'templates'
+ );
+ const currentTemplateId = getCurrentTemplateId();
+ const template = currentTemplateId
+ ? select( coreStore ).getEditedEntityRecord(
+ 'postType',
+ 'wp_template',
+ currentTemplateId
+ )
+ : undefined;
+
+ return {
+ renderingMode: _renderingMode,
+ postContentAttributes: getEditorSettings().postContentAttributes,
+ // Post template fetch returns a 404 on classic themes, which
+ // messes with e2e tests, so check it's a block theme first.
+ editedPostTemplate:
+ postType?.viewable && supportsTemplateMode && canEditTemplate
+ ? template
+ : undefined,
+ wrapperBlockName: _wrapperBlockName,
+ wrapperUniqueId: getCurrentPostId(),
+ };
+ }, [] );
+ const { isCleanNewPost } = useSelect( editorStore );
+ const {
+ hasRootPaddingAwareAlignments,
+ themeHasDisabledLayoutStyles,
+ themeSupportsLayout,
+ } = useSelect( ( select ) => {
+ const _settings = select( blockEditorStore ).getSettings();
+ return {
+ themeHasDisabledLayoutStyles: _settings.disableLayoutStyles,
+ themeSupportsLayout: _settings.supportsLayout,
+ hasRootPaddingAwareAlignments:
+ _settings.__experimentalFeatures?.useRootPaddingAwareAlignments,
+ };
+ }, [] );
+
+ const [ globalLayoutSettings ] = useSettings( 'layout' );
+
+ // fallbackLayout is used if there is no Post Content,
+ // and for Post Title.
+ const fallbackLayout = useMemo( () => {
+ if ( renderingMode !== 'post-only' ) {
+ return { type: 'default' };
+ }
+
+ if ( themeSupportsLayout ) {
+ // We need to ensure support for wide and full alignments,
+ // so we add the constrained type.
+ return { ...globalLayoutSettings, type: 'constrained' };
+ }
+ // Set default layout for classic themes so all alignments are supported.
+ return { type: 'default' };
+ }, [ renderingMode, themeSupportsLayout, globalLayoutSettings ] );
+
+ const newestPostContentAttributes = useMemo( () => {
+ if (
+ ! editedPostTemplate?.content &&
+ ! editedPostTemplate?.blocks &&
+ postContentAttributes
+ ) {
+ return postContentAttributes;
+ }
+ // When in template editing mode, we can access the blocks directly.
+ if ( editedPostTemplate?.blocks ) {
+ return getPostContentAttributes( editedPostTemplate?.blocks );
+ }
+ // If there are no blocks, we have to parse the content string.
+ // Best double-check it's a string otherwise the parse function gets unhappy.
+ const parseableContent =
+ typeof editedPostTemplate?.content === 'string'
+ ? editedPostTemplate?.content
+ : '';
+
+ return getPostContentAttributes( parse( parseableContent ) ) || {};
+ }, [
+ editedPostTemplate?.content,
+ editedPostTemplate?.blocks,
+ postContentAttributes,
+ ] );
+
+ const hasPostContentAtRootLevel = useMemo( () => {
+ if ( ! editedPostTemplate?.content && ! editedPostTemplate?.blocks ) {
+ return false;
+ }
+ // When in template editing mode, we can access the blocks directly.
+ if ( editedPostTemplate?.blocks ) {
+ return checkForPostContentAtRootLevel( editedPostTemplate?.blocks );
+ }
+ // If there are no blocks, we have to parse the content string.
+ // Best double-check it's a string otherwise the parse function gets unhappy.
+ const parseableContent =
+ typeof editedPostTemplate?.content === 'string'
+ ? editedPostTemplate?.content
+ : '';
+
+ return (
+ checkForPostContentAtRootLevel( parse( parseableContent ) ) || false
+ );
+ }, [ editedPostTemplate?.content, editedPostTemplate?.blocks ] );
+
+ const { layout = {}, align = '' } = newestPostContentAttributes || {};
+
+ const postContentLayoutClasses = useLayoutClasses(
+ newestPostContentAttributes,
+ 'core/post-content'
+ );
+
+ const blockListLayoutClass = classnames(
+ {
+ 'is-layout-flow': ! themeSupportsLayout,
+ },
+ themeSupportsLayout && postContentLayoutClasses,
+ align && `align${ align }`
+ );
+
+ const postContentLayoutStyles = useLayoutStyles(
+ newestPostContentAttributes,
+ 'core/post-content',
+ '.block-editor-block-list__layout.is-root-container'
+ );
+
+ // Update type for blocks using legacy layouts.
+ const postContentLayout = useMemo( () => {
+ return layout &&
+ ( layout?.type === 'constrained' ||
+ layout?.inherit ||
+ layout?.contentSize ||
+ layout?.wideSize )
+ ? { ...globalLayoutSettings, ...layout, type: 'constrained' }
+ : { ...globalLayoutSettings, ...layout, type: 'default' };
+ }, [
+ layout?.type,
+ layout?.inherit,
+ layout?.contentSize,
+ layout?.wideSize,
+ globalLayoutSettings,
+ ] );
+
+ // If there is a Post Content block we use its layout for the block list;
+ // if not, this must be a classic theme, in which case we use the fallback layout.
+ const blockListLayout = postContentAttributes
+ ? postContentLayout
+ : fallbackLayout;
+
+ const postEditorLayout =
+ blockListLayout?.type === 'default' && ! hasPostContentAtRootLevel
+ ? fallbackLayout
+ : blockListLayout;
+
+ const observeTypingRef = useTypingObserver();
+ const titleRef = useRef();
+ useEffect( () => {
+ if ( ! autoFocus || ! isCleanNewPost() ) {
+ return;
+ }
+ titleRef?.current?.focus();
+ }, [ autoFocus, isCleanNewPost ] );
+
+ // Add some styles for alignwide/alignfull Post Content and its children.
+ const alignCSS = `.is-root-container.alignwide { max-width: var(--wp--style--global--wide-size); margin-left: auto; margin-right: auto;}
+ .is-root-container.alignwide:where(.is-layout-flow) > :not(.alignleft):not(.alignright) { max-width: var(--wp--style--global--wide-size);}
+ .is-root-container.alignfull { max-width: none; margin-left: auto; margin-right: auto;}
+ .is-root-container.alignfull:where(.is-layout-flow) > :not(.alignleft):not(.alignright) { max-width: none;}`;
+
+ return (
+ <>
+ { themeSupportsLayout &&
+ ! themeHasDisabledLayoutStyles &&
+ renderingMode === 'post-only' && (
+ <>
+
+
+ { align && }
+ { postContentLayoutStyles && (
+
+ ) }
+ >
+ ) }
+ { renderingMode === 'post-only' && (
+
+ ) }
+
+
+
+ >
+ );
+}
diff --git a/packages/editor/src/components/index.js b/packages/editor/src/components/index.js
index a3dfc991523225..5fefc5506a02fc 100644
--- a/packages/editor/src/components/index.js
+++ b/packages/editor/src/components/index.js
@@ -67,6 +67,7 @@ export { HierarchicalTermSelector as PostTaxonomiesHierarchicalTermSelector } fr
export { default as PostTaxonomiesCheck } from './post-taxonomies/check';
export { default as PostTextEditor } from './post-text-editor';
export { default as PostTitle } from './post-title';
+export { default as PostTitleRaw } from './post-title/post-title-raw';
export { default as PostTrash } from './post-trash';
export { default as PostTrashCheck } from './post-trash/check';
export { default as PostTypeSupportCheck } from './post-type-support-check';
diff --git a/packages/editor/src/components/post-publish-button/index.js b/packages/editor/src/components/post-publish-button/index.js
index b9140b733c9d30..a81709607e1931 100644
--- a/packages/editor/src/components/post-publish-button/index.js
+++ b/packages/editor/src/components/post-publish-button/index.js
@@ -176,6 +176,7 @@ export class PostPublishButton extends Component {
className: 'editor-post-publish-panel__toggle',
isBusy: isSaving && isPublished,
variant: 'primary',
+ size: 'compact',
onClick: this.createOnClick( onClickToggle ),
};
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 0097b3f0ea7419..f432b0da16c359 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
@@ -10,7 +10,6 @@ import {
} from '@wordpress/components';
import { useSelect, useDispatch } from '@wordpress/data';
import { __ } from '@wordpress/i18n';
-import { upload } from '@wordpress/icons';
import { store as blockEditorStore } from '@wordpress/block-editor';
import { useState } from '@wordpress/element';
import { isBlobURL } from '@wordpress/blob';
@@ -135,7 +134,7 @@ export default function PostFormatPanel() {
{ __(
- 'There are some external images in the post which can be uploaded to the media library. Images coming from different domains may not always display correctly, load slowly for visitors, or be removed unexpectedly.'
+ 'Upload external images to the Media Library. Images from different domains may load slowly, display incorrectly, or be removed unexpectedly.'
) }
) : (
-
- { __( 'Upload all' ) }
+
+ { __( 'Upload' ) }
) }
diff --git a/packages/editor/src/components/post-saved-state/index.js b/packages/editor/src/components/post-saved-state/index.js
index 9d6cb49d91e8e8..9cccb4fcb120ec 100644
--- a/packages/editor/src/components/post-saved-state/index.js
+++ b/packages/editor/src/components/post-saved-state/index.js
@@ -9,6 +9,7 @@ import classnames from 'classnames';
import {
__unstableGetAnimateClassName as getAnimateClassName,
Button,
+ Tooltip,
} from '@wordpress/components';
import { usePrevious, useViewportMatch } from '@wordpress/compose';
import { useDispatch, useSelect } from '@wordpress/data';
@@ -128,45 +129,54 @@ export default function PostSavedState( {
text = shortLabel;
}
+ const buttonAccessibleLabel = text || label;
+
+ /**
+ * The tooltip needs to be enabled only if the button is not disabled. When
+ * relying on the internal Button tooltip functionality, this causes the
+ * resulting `button` element to be always removed and re-added to the DOM,
+ * causing focus loss. An alternative approach to circumvent the issue
+ * is not to use the `label` and `shortcut` props on `Button` (which would
+ * trigger the tooltip), and instead manually wrap the `Button` in a separate
+ * `Tooltip` component.
+ */
+ const tooltipProps = isDisabled
+ ? undefined
+ : {
+ text: buttonAccessibleLabel,
+ shortcut: displayShortcut.primary( 's' ),
+ };
+
// Use common Button instance for all saved states so that focus is not
// lost.
return (
- savePost() }
- /*
- * We want the tooltip to show the keyboard shortcut only when the
- * button does something, i.e. when it's not disabled.
- */
- shortcut={ isDisabled ? undefined : displayShortcut.primary( 's' ) }
- /*
- * Displaying the keyboard shortcut conditionally makes the tooltip
- * itself show conditionally. This would trigger a full-rerendering
- * of the button that we want to avoid. By setting `showTooltip`,
- & the tooltip is always rendered even when there's no keyboard shortcut.
- */
- showTooltip
- variant="tertiary"
- icon={ isLargeViewport ? undefined : cloudUpload }
- // Make sure the aria-label has always a value, as the default `text` is undefined on small screens.
- label={ text || label }
- aria-disabled={ isDisabled }
- >
- { isSavedState && }
- { text }
-
+
+ savePost() }
+ variant="tertiary"
+ size="compact"
+ icon={ isLargeViewport ? undefined : cloudUpload }
+ // Make sure the aria-label has always a value, as the default `text` is undefined on small screens.
+ aria-label={ buttonAccessibleLabel }
+ aria-disabled={ isDisabled }
+ >
+ { isSavedState && }
+ { text }
+
+
);
}
diff --git a/packages/editor/src/components/post-saved-state/test/__snapshots__/index.js.snap b/packages/editor/src/components/post-saved-state/test/__snapshots__/index.js.snap
index 16fdd70e065734..95ea3db54b511e 100644
--- a/packages/editor/src/components/post-saved-state/test/__snapshots__/index.js.snap
+++ b/packages/editor/src/components/post-saved-state/test/__snapshots__/index.js.snap
@@ -4,7 +4,7 @@ exports[`PostSavedState returns a disabled button if the post is not saveable 1`
Save draft
diff --git a/packages/editor/src/components/post-sync-status/index.js b/packages/editor/src/components/post-sync-status/index.js
index c1a317e8e18129..9fa9f3181654e2 100644
--- a/packages/editor/src/components/post-sync-status/index.js
+++ b/packages/editor/src/components/post-sync-status/index.js
@@ -113,7 +113,7 @@ export function PostSyncStatusModal() {
'Option that makes an individual pattern synchronized'
) }
help={ __(
- 'Editing the pattern will update it anywhere it is used.'
+ 'Sync this pattern across multiple locations.'
) }
checked={ ! syncType }
onChange={ () => {
diff --git a/packages/editor/src/components/post-title/constants.js b/packages/editor/src/components/post-title/constants.js
new file mode 100644
index 00000000000000..2b0ff197f2b9f1
--- /dev/null
+++ b/packages/editor/src/components/post-title/constants.js
@@ -0,0 +1,4 @@
+export const DEFAULT_CLASSNAMES =
+ 'wp-block wp-block-post-title block-editor-block-list__block editor-post-title editor-post-title__input rich-text';
+
+export const REGEXP_NEWLINES = /[\r\n]+/g;
diff --git a/packages/editor/src/components/post-title/index.js b/packages/editor/src/components/post-title/index.js
index 09f5f30c2a660c..0c3dbbf7349a17 100644
--- a/packages/editor/src/components/post-title/index.js
+++ b/packages/editor/src/components/post-title/index.js
@@ -7,18 +7,12 @@ import classnames from 'classnames';
* WordPress dependencies
*/
import { __ } from '@wordpress/i18n';
-import {
- forwardRef,
- useEffect,
- useImperativeHandle,
- useRef,
- useState,
-} from '@wordpress/element';
+import { forwardRef, useState } from '@wordpress/element';
import { decodeEntities } from '@wordpress/html-entities';
-import { ENTER } from '@wordpress/keycodes';
import { useSelect, useDispatch } from '@wordpress/data';
-import { pasteHandler } from '@wordpress/blocks';
import { store as blockEditorStore } from '@wordpress/block-editor';
+import { ENTER } from '@wordpress/keycodes';
+import { pasteHandler } from '@wordpress/blocks';
import {
__unstableUseRichText as useRichText,
create,
@@ -31,78 +25,45 @@ import { __unstableStripHTML as stripHTML } from '@wordpress/dom';
/**
* Internal dependencies
*/
-import PostTypeSupportCheck from '../post-type-support-check';
import { store as editorStore } from '../../store';
-
-/**
- * Constants
- */
-const REGEXP_NEWLINES = /[\r\n]+/g;
+import { DEFAULT_CLASSNAMES, REGEXP_NEWLINES } from './constants';
+import usePostTitleFocus from './use-post-title-focus';
+import usePostTitle from './use-post-title';
+import PostTypeSupportCheck from '../post-type-support-check';
function PostTitle( _, forwardedRef ) {
- const ref = useRef();
+ const { placeholder, hasFixedToolbar } = useSelect( ( select ) => {
+ const { getEditedPostAttribute } = select( editorStore );
+ const { getSettings } = select( blockEditorStore );
+ const { titlePlaceholder, hasFixedToolbar: _hasFixedToolbar } =
+ getSettings();
+
+ return {
+ title: getEditedPostAttribute( 'title' ),
+ placeholder: titlePlaceholder,
+ hasFixedToolbar: _hasFixedToolbar,
+ };
+ }, [] );
+
const [ isSelected, setIsSelected ] = useState( false );
- const { editPost } = useDispatch( editorStore );
- const { insertDefaultBlock, clearSelectedBlock, insertBlocks } =
- useDispatch( blockEditorStore );
- const { isCleanNewPost, title, placeholder, hasFixedToolbar } = useSelect(
- ( select ) => {
- const { getEditedPostAttribute, isCleanNewPost: _isCleanNewPost } =
- select( editorStore );
- const { getSettings } = select( blockEditorStore );
- const { titlePlaceholder, hasFixedToolbar: _hasFixedToolbar } =
- getSettings();
-
- return {
- isCleanNewPost: _isCleanNewPost(),
- title: getEditedPostAttribute( 'title' ),
- placeholder: titlePlaceholder,
- hasFixedToolbar: _hasFixedToolbar,
- };
- },
- []
- );
- useImperativeHandle( forwardedRef, () => ( {
- focus: () => {
- ref?.current?.focus();
- },
- } ) );
+ const { ref: focusRef } = usePostTitleFocus( forwardedRef );
- useEffect( () => {
- if ( ! ref.current ) {
- return;
- }
+ const { title, setTitle: onUpdate } = usePostTitle();
- const { defaultView } = ref.current.ownerDocument;
- const { name, parent } = defaultView;
- const ownerDocument =
- name === 'editor-canvas' ? parent.document : defaultView.document;
- const { activeElement, body } = ownerDocument;
-
- // Only autofocus the title when the post is entirely empty. This should
- // only happen for a new post, which means we focus the title on new
- // post so the author can start typing right away, without needing to
- // click anything.
- if ( isCleanNewPost && ( ! activeElement || body === activeElement ) ) {
- ref.current.focus();
- }
- }, [ isCleanNewPost ] );
+ const [ selection, setSelection ] = useState( {} );
- function onEnterPress() {
- insertDefaultBlock( undefined, undefined, 0 );
+ const { clearSelectedBlock, insertBlocks, insertDefaultBlock } =
+ useDispatch( blockEditorStore );
+
+ function onChange( value ) {
+ onUpdate( value.replace( REGEXP_NEWLINES, ' ' ) );
}
function onInsertBlockAfter( blocks ) {
insertBlocks( blocks, 0 );
}
- function onUpdate( newTitle ) {
- editPost( { title: newTitle } );
- }
-
- const [ selection, setSelection ] = useState( {} );
-
function onSelect() {
setIsSelected( true );
clearSelectedBlock();
@@ -113,8 +74,8 @@ function PostTitle( _, forwardedRef ) {
setSelection( {} );
}
- function onChange( value ) {
- onUpdate( value.replace( REGEXP_NEWLINES, ' ' ) );
+ function onEnterPress() {
+ insertDefaultBlock( undefined, undefined, 0 );
}
function onKeyDown( event ) {
@@ -170,7 +131,13 @@ function PostTitle( _, forwardedRef ) {
( firstBlock.name === 'core/heading' ||
firstBlock.name === 'core/paragraph' )
) {
- onUpdate( stripHTML( firstBlock.attributes.content ) );
+ // Strip HTML to avoid unwanted HTML being added to the title.
+ // In the majority of cases it is assumed that HTML in the title
+ // is undesirable.
+ const contentNoHTML = stripHTML(
+ firstBlock.attributes.content
+ );
+ onUpdate( contentNoHTML );
onInsertBlockAfter( content.slice( 1 ) );
} else {
onInsertBlockAfter( content );
@@ -180,10 +147,13 @@ function PostTitle( _, forwardedRef ) {
...create( { html: title } ),
...selection,
};
- const newValue = insert(
- value,
- create( { html: stripHTML( content ) } )
- );
+
+ // Strip HTML to avoid unwanted HTML being added to the title.
+ // In the majority of cases it is assumed that HTML in the title
+ // is undesirable.
+ const contentNoHTML = stripHTML( content );
+
+ const newValue = insert( value, create( { html: contentNoHTML } ) );
onUpdate( toHTMLString( { value: newValue } ) );
setSelection( {
start: newValue.start,
@@ -192,17 +162,9 @@ function PostTitle( _, forwardedRef ) {
}
}
- // The wp-block className is important for editor styles.
- // This same block is used in both the visual and the code editor.
- const className = classnames(
- 'wp-block wp-block-post-title block-editor-block-list__block editor-post-title editor-post-title__input rich-text',
- {
- 'is-selected': isSelected,
- 'has-fixed-toolbar': hasFixedToolbar,
- }
- );
const decodedPlaceholder =
decodeEntities( placeholder ) || __( 'Add title' );
+
const { ref: richTextRef } = useRichText( {
value: title,
onChange,
@@ -221,14 +183,21 @@ function PostTitle( _, forwardedRef ) {
};
} );
},
- __unstableDisableFormats: true,
+ __unstableDisableFormats: false,
+ } );
+
+ // The wp-block className is important for editor styles.
+ // This same block is used in both the visual and the code editor.
+ const className = classnames( DEFAULT_CLASSNAMES, {
+ 'is-selected': isSelected,
+ 'has-fixed-toolbar': hasFixedToolbar,
} );
- /* eslint-disable jsx-a11y/heading-has-content, jsx-a11y/no-noninteractive-element-to-interactive-role */
return (
+ /* eslint-disable jsx-a11y/heading-has-content, jsx-a11y/no-noninteractive-element-to-interactive-role */
+ /* eslint-enable jsx-a11y/heading-has-content, jsx-a11y/no-noninteractive-element-to-interactive-role */
);
- /* eslint-enable jsx-a11y/heading-has-content, jsx-a11y/no-noninteractive-element-to-interactive-role */
}
export default forwardRef( PostTitle );
diff --git a/packages/editor/src/components/post-title/post-title-raw.js b/packages/editor/src/components/post-title/post-title-raw.js
new file mode 100644
index 00000000000000..f59ec40e872e45
--- /dev/null
+++ b/packages/editor/src/components/post-title/post-title-raw.js
@@ -0,0 +1,82 @@
+/**
+ * External dependencies
+ */
+import classnames from 'classnames';
+
+/**
+ * WordPress dependencies
+ */
+import { TextareaControl } from '@wordpress/components';
+import { __ } from '@wordpress/i18n';
+import { decodeEntities } from '@wordpress/html-entities';
+import { useSelect } from '@wordpress/data';
+import { store as blockEditorStore } from '@wordpress/block-editor';
+import { useState, forwardRef } from '@wordpress/element';
+
+/**
+ * Internal dependencies
+ */
+import { DEFAULT_CLASSNAMES, REGEXP_NEWLINES } from './constants';
+import usePostTitleFocus from './use-post-title-focus';
+import usePostTitle from './use-post-title';
+
+function PostTitleRaw( _, forwardedRef ) {
+ const { placeholder, hasFixedToolbar } = useSelect( ( select ) => {
+ const { getSettings } = select( blockEditorStore );
+ const { titlePlaceholder, hasFixedToolbar: _hasFixedToolbar } =
+ getSettings();
+
+ return {
+ placeholder: titlePlaceholder,
+ hasFixedToolbar: _hasFixedToolbar,
+ };
+ }, [] );
+
+ const [ isSelected, setIsSelected ] = useState( false );
+
+ const { title, setTitle: onUpdate } = usePostTitle();
+ const { ref: focusRef } = usePostTitleFocus( forwardedRef );
+
+ function onChange( value ) {
+ onUpdate( value.replace( REGEXP_NEWLINES, ' ' ) );
+ }
+
+ function onSelect() {
+ setIsSelected( true );
+ }
+
+ function onUnselect() {
+ setIsSelected( false );
+ }
+
+ // The wp-block className is important for editor styles.
+ // This same block is used in both the visual and the code editor.
+ const className = classnames( DEFAULT_CLASSNAMES, {
+ 'is-selected': isSelected,
+ 'has-fixed-toolbar': hasFixedToolbar,
+ 'is-raw-text': true,
+ } );
+
+ const decodedPlaceholder =
+ decodeEntities( placeholder ) || __( 'Add title' );
+
+ return (
+
+ );
+}
+
+export default forwardRef( PostTitleRaw );
diff --git a/packages/editor/src/components/post-title/style.scss b/packages/editor/src/components/post-title/style.scss
new file mode 100644
index 00000000000000..98bdfb9a2ebf3a
--- /dev/null
+++ b/packages/editor/src/components/post-title/style.scss
@@ -0,0 +1,5 @@
+// Raw Text Variant
+.edit-post-text-editor__body .editor-post-title.is-raw-text {
+ margin-bottom: $grid-unit-30;
+ margin-top: 2px; // space for focus outline to appear.
+}
diff --git a/packages/editor/src/components/post-title/use-post-title-focus.js b/packages/editor/src/components/post-title/use-post-title-focus.js
new file mode 100644
index 00000000000000..effac53f2670a2
--- /dev/null
+++ b/packages/editor/src/components/post-title/use-post-title-focus.js
@@ -0,0 +1,50 @@
+/**
+ * WordPress dependencies
+ */
+import { useEffect, useImperativeHandle, useRef } from '@wordpress/element';
+import { useSelect } from '@wordpress/data';
+
+/**
+ * Internal dependencies
+ */
+import { store as editorStore } from '../../store';
+
+export default function usePostTitleFocus( forwardedRef ) {
+ const ref = useRef();
+
+ const { isCleanNewPost } = useSelect( ( select ) => {
+ const { isCleanNewPost: _isCleanNewPost } = select( editorStore );
+
+ return {
+ isCleanNewPost: _isCleanNewPost(),
+ };
+ }, [] );
+
+ useImperativeHandle( forwardedRef, () => ( {
+ focus: () => {
+ ref?.current?.focus();
+ },
+ } ) );
+
+ useEffect( () => {
+ if ( ! ref.current ) {
+ return;
+ }
+
+ const { defaultView } = ref.current.ownerDocument;
+ const { name, parent } = defaultView;
+ const ownerDocument =
+ name === 'editor-canvas' ? parent.document : defaultView.document;
+ const { activeElement, body } = ownerDocument;
+
+ // Only autofocus the title when the post is entirely empty. This should
+ // only happen for a new post, which means we focus the title on new
+ // post so the author can start typing right away, without needing to
+ // click anything.
+ if ( isCleanNewPost && ( ! activeElement || body === activeElement ) ) {
+ ref.current.focus();
+ }
+ }, [ isCleanNewPost ] );
+
+ return { ref };
+}
diff --git a/packages/editor/src/components/post-title/use-post-title.js b/packages/editor/src/components/post-title/use-post-title.js
new file mode 100644
index 00000000000000..65bd67af6fb4c8
--- /dev/null
+++ b/packages/editor/src/components/post-title/use-post-title.js
@@ -0,0 +1,25 @@
+/**
+ * WordPress dependencies
+ */
+import { useSelect, useDispatch } from '@wordpress/data';
+/**
+ * Internal dependencies
+ */
+import { store as editorStore } from '../../store';
+
+export default function usePostTitle() {
+ const { editPost } = useDispatch( editorStore );
+ const { title } = useSelect( ( select ) => {
+ const { getEditedPostAttribute } = select( editorStore );
+
+ return {
+ title: getEditedPostAttribute( 'title' ),
+ };
+ }, [] );
+
+ function updateTitle( newTitle ) {
+ editPost( { title: newTitle } );
+ }
+
+ return { title, setTitle: updateTitle };
+}
diff --git a/packages/editor/src/components/provider/README.md b/packages/editor/src/components/provider/README.md
index f2b9b697a09083..deaa9375bba746 100644
--- a/packages/editor/src/components/provider/README.md
+++ b/packages/editor/src/components/provider/README.md
@@ -22,19 +22,6 @@ The post object to edit
The template object wrapper the edited post. This is optional and can only be used when the post type supports templates (like posts and pages).
-### `mode`
-
-- **Type:** `String`
-- **Required** `no`
-- **default** `all`
-
-This is the rendering mode of the post editor. We support multiple rendering modes:
-
-- `all`: This is the default mode. It renders the post editor with all the features available. If a template is provided, it's preferred over the post.
-- `template-only`: This mode renders the editor with only the template blocks visible.
-- `post-only`: This mode extracts the post blocks from the template and renders only those. The idea is to allow the user to edit the post/page in isolation without the wrapping template.
-- `template-locked`: This mode renders both the template and the post blocks but the template blocks are locked and can't be edited. The post blocks are editable.
-
### `settings`
- **Type:** `Object`
diff --git a/packages/editor/src/components/provider/index.js b/packages/editor/src/components/provider/index.js
index 75f1769927715f..3bd5860501d4e0 100644
--- a/packages/editor/src/components/provider/index.js
+++ b/packages/editor/src/components/provider/index.js
@@ -23,7 +23,6 @@ import { store as editorStore } from '../../store';
import useBlockEditorSettings from './use-block-editor-settings';
import { unlock } from '../../lock-unlock';
import DisableNonPageContentBlocks from './disable-non-page-content-blocks';
-import { PAGE_CONTENT_BLOCK_TYPES } from './constants';
const { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );
const { PatternsMenuItems } = unlock( editPatternsPrivateApis );
@@ -60,36 +59,6 @@ function useForceFocusModeForNavigation( navigationBlockClientId ) {
] );
}
-/**
- * Helper method to extract the post content block types from a template.
- *
- * @param {Array} blocks Template blocks.
- *
- * @return {Array} Flattened object.
- */
-function extractPageContentBlockTypesFromTemplateBlocks( blocks ) {
- const result = [];
- for ( let i = 0; i < blocks.length; i++ ) {
- // Since the Query Block could contain PAGE_CONTENT_BLOCK_TYPES block types,
- // we skip it because we only want to render stand-alone page content blocks in the block list.
- if ( blocks[ i ].name === 'core/query' ) {
- continue;
- }
- if ( PAGE_CONTENT_BLOCK_TYPES.includes( blocks[ i ].name ) ) {
- result.push( createBlock( blocks[ i ].name ) );
- }
- if ( blocks[ i ].innerBlocks.length ) {
- result.push(
- ...extractPageContentBlockTypesFromTemplateBlocks(
- blocks[ i ].innerBlocks
- )
- );
- }
- }
-
- return result;
-}
-
/**
* Depending on the post, template and template mode,
* returns the appropriate blocks and change handlers for the block editor provider.
@@ -111,7 +80,7 @@ function useBlockEditorProps( post, template, mode ) {
useEntityBlockEditor( 'postType', template?.type, {
id: template?.id,
} );
- const blocks = useMemo( () => {
+ const maybeNavigationBlocks = useMemo( () => {
if ( post.type === 'wp_navigation' ) {
return [
createBlock( 'core/navigation', {
@@ -123,26 +92,13 @@ function useBlockEditorProps( post, template, mode ) {
} ),
];
}
+ }, [ post.type, post.id ] );
- if ( mode === 'post-only' ) {
- return [
- createBlock(
- 'core/group',
- {
- layout: { type: 'constrained' },
- style: {
- spacing: {
- margin: {
- top: '4em', // Mimics the post editor.
- },
- },
- },
- },
- extractPageContentBlockTypesFromTemplateBlocks(
- templateBlocks
- )
- ),
- ];
+ // It is important that we don't create a new instance of blocks on every change
+ // We should only create a new instance if the blocks them selves change, not a dependency of them.
+ const blocks = useMemo( () => {
+ if ( maybeNavigationBlocks ) {
+ return maybeNavigationBlocks;
}
if ( rootLevelPost === 'template' ) {
@@ -150,18 +106,14 @@ function useBlockEditorProps( post, template, mode ) {
}
return postBlocks;
- }, [
- templateBlocks,
- postBlocks,
- rootLevelPost,
- post.type,
- post.id,
- mode,
- ] );
+ }, [ maybeNavigationBlocks, rootLevelPost, templateBlocks, postBlocks ] );
+
+ // Handle fallback to postBlocks outside of the above useMemo, to ensure
+ // that constructed block templates that call `createBlock` are not generated
+ // too frequently. This ensures that clientIds are stable.
const disableRootLevelChanges =
( !! template && mode === 'template-locked' ) ||
- post.type === 'wp_navigation' ||
- mode === 'post-only';
+ post.type === 'wp_navigation';
const navigationBlockClientId =
post.type === 'wp_navigation' && blocks && blocks[ 0 ]?.clientId;
useForceFocusModeForNavigation( navigationBlockClientId );
@@ -178,7 +130,6 @@ function useBlockEditorProps( post, template, mode ) {
export const ExperimentalEditorProvider = withRegistryProvider(
( {
- mode = 'all',
post,
settings,
recovery,
@@ -187,6 +138,10 @@ export const ExperimentalEditorProvider = withRegistryProvider(
BlockEditorProviderComponent = ExperimentalBlockEditorProvider,
__unstableTemplate: template,
} ) => {
+ const mode = useSelect(
+ ( select ) => select( editorStore ).getRenderingMode(),
+ []
+ );
const shouldRenderTemplate = !! template && mode !== 'post-only';
const rootLevelPost = shouldRenderTemplate ? template : post;
const defaultBlockContext = useMemo( () => {
@@ -243,7 +198,8 @@ export const ExperimentalEditorProvider = withRegistryProvider(
setupEditor,
updateEditorSettings,
__experimentalTearDownEditor,
- } = useDispatch( editorStore );
+ setCurrentTemplateId,
+ } = unlock( useDispatch( editorStore ) );
const { createWarningNotice } = useDispatch( noticesStore );
// Initialize and tear down the editor.
@@ -283,6 +239,10 @@ export const ExperimentalEditorProvider = withRegistryProvider(
updateEditorSettings( settings );
}, [ settings, updateEditorSettings ] );
+ useEffect( () => {
+ setCurrentTemplateId( template?.id );
+ }, [ template?.id, setCurrentTemplateId ] );
+
if ( ! isReady ) {
return null;
}
@@ -305,9 +265,9 @@ export const ExperimentalEditorProvider = withRegistryProvider(
>
{ children }
- { [ 'post-only', 'template-locked' ].includes(
- mode
- ) && }
+ { mode === 'template-locked' && (
+
+ ) }
diff --git a/packages/editor/src/hooks/index.js b/packages/editor/src/hooks/index.js
index 6e0934d63c0cfa..5a48ec1bf49566 100644
--- a/packages/editor/src/hooks/index.js
+++ b/packages/editor/src/hooks/index.js
@@ -3,3 +3,4 @@
*/
import './custom-sources-backwards-compatibility';
import './default-autocompleters';
+import './pattern-partial-syncing';
diff --git a/packages/editor/src/hooks/pattern-partial-syncing.js b/packages/editor/src/hooks/pattern-partial-syncing.js
new file mode 100644
index 00000000000000..40bd1e16dfc00d
--- /dev/null
+++ b/packages/editor/src/hooks/pattern-partial-syncing.js
@@ -0,0 +1,73 @@
+/**
+ * WordPress dependencies
+ */
+import { addFilter } from '@wordpress/hooks';
+import { privateApis as patternsPrivateApis } from '@wordpress/patterns';
+import { createHigherOrderComponent } from '@wordpress/compose';
+import { useBlockEditingMode } from '@wordpress/block-editor';
+import { hasBlockSupport } from '@wordpress/blocks';
+import { useSelect } from '@wordpress/data';
+
+/**
+ * Internal dependencies
+ */
+import { store as editorStore } from '../store';
+import { unlock } from '../lock-unlock';
+
+const {
+ PartialSyncingControls,
+ PATTERN_TYPES,
+ PARTIAL_SYNCING_SUPPORTED_BLOCKS,
+} = unlock( patternsPrivateApis );
+
+/**
+ * Override the default edit UI to include a new block inspector control for
+ * assigning a partial syncing controls to supported blocks in the pattern editor.
+ * Currently, only the `core/paragraph` block is supported.
+ *
+ * @param {Component} BlockEdit Original component.
+ *
+ * @return {Component} Wrapped component.
+ */
+const withPartialSyncingControls = createHigherOrderComponent(
+ ( BlockEdit ) => ( props ) => {
+ const blockEditingMode = useBlockEditingMode();
+ const hasCustomFieldsSupport = hasBlockSupport(
+ props.name,
+ '__experimentalConnections',
+ false
+ );
+ const isEditingPattern = useSelect(
+ ( select ) =>
+ select( editorStore ).getCurrentPostType() ===
+ PATTERN_TYPES.user,
+ []
+ );
+
+ const shouldShowPartialSyncingControls =
+ hasCustomFieldsSupport &&
+ props.isSelected &&
+ isEditingPattern &&
+ blockEditingMode === 'default' &&
+ Object.keys( PARTIAL_SYNCING_SUPPORTED_BLOCKS ).includes(
+ props.name
+ );
+
+ return (
+ <>
+
+ { shouldShowPartialSyncingControls && (
+
+ ) }
+ >
+ );
+ }
+);
+
+if ( window.__experimentalPatternPartialSyncing ) {
+ addFilter(
+ 'editor.BlockEdit',
+ 'core/editor/with-partial-syncing-controls',
+ withPartialSyncingControls
+ );
+}
diff --git a/packages/editor/src/private-apis.js b/packages/editor/src/private-apis.js
index a44720eb93ac83..046feee5b9c3f6 100644
--- a/packages/editor/src/private-apis.js
+++ b/packages/editor/src/private-apis.js
@@ -1,6 +1,7 @@
/**
* Internal dependencies
*/
+import EditorCanvas from './components/editor-canvas';
import { ExperimentalEditorProvider } from './components/provider';
import { lock } from './lock-unlock';
import { EntitiesSavedStatesExtensible } from './components/entities-saved-states';
@@ -9,6 +10,7 @@ import PostPanelRow from './components/post-panel-row';
export const privateApis = {};
lock( privateApis, {
+ EditorCanvas,
ExperimentalEditorProvider,
EntitiesSavedStatesExtensible,
PostPanelRow,
diff --git a/packages/editor/src/store/actions.js b/packages/editor/src/store/actions.js
index 1cca9ee05ee30e..4c1170b064202f 100644
--- a/packages/editor/src/store/actions.js
+++ b/packages/editor/src/store/actions.js
@@ -548,6 +548,31 @@ export function updateEditorSettings( settings ) {
};
}
+/**
+ * Returns an action used to set the rendering mode of the post editor. We support multiple rendering modes:
+ *
+ * - `all`: This is the default mode. It renders the post editor with all the features available. If a template is provided, it's preferred over the post.
+ * - `template-only`: This mode renders the editor with only the template blocks visible.
+ * - `post-only`: This mode extracts the post blocks from the template and renders only those. The idea is to allow the user to edit the post/page in isolation without the wrapping template.
+ * - `template-locked`: This mode renders both the template and the post blocks but the template blocks are locked and can't be edited. The post blocks are editable.
+ *
+ * @param {string} mode Mode (one of 'template-only', 'post-only', 'template-locked' or 'all').
+ */
+export const setRenderingMode =
+ ( mode ) =>
+ ( { dispatch, registry, select } ) => {
+ if ( select.__unstableIsEditorReady() ) {
+ // We clear the block selection but we also need to clear the selection from the core store.
+ registry.dispatch( blockEditorStore ).clearSelectedBlock();
+ dispatch.editPost( { selection: undefined }, { undoIgnore: true } );
+ }
+
+ dispatch( {
+ type: 'SET_RENDERING_MODE',
+ mode,
+ } );
+ };
+
/**
* Backward compatibility
*/
diff --git a/packages/editor/src/store/index.js b/packages/editor/src/store/index.js
index baee4d9197d0c2..ebd41354308e7a 100644
--- a/packages/editor/src/store/index.js
+++ b/packages/editor/src/store/index.js
@@ -9,7 +9,9 @@ import { createReduxStore, register } from '@wordpress/data';
import reducer from './reducer';
import * as selectors from './selectors';
import * as actions from './actions';
+import * as privateActions from './private-actions';
import { STORE_NAME } from './constants';
+import { unlock } from '../lock-unlock';
/**
* Post editor data store configuration.
@@ -36,3 +38,4 @@ export const store = createReduxStore( STORE_NAME, {
} );
register( store );
+unlock( store ).registerPrivateActions( privateActions );
diff --git a/packages/editor/src/store/private-actions.js b/packages/editor/src/store/private-actions.js
new file mode 100644
index 00000000000000..1af9ff5f6adb92
--- /dev/null
+++ b/packages/editor/src/store/private-actions.js
@@ -0,0 +1,13 @@
+/**
+ * Returns an action object used to set which template is currently being used/edited.
+ *
+ * @param {string} id Template Id.
+ *
+ * @return {Object} Action object.
+ */
+export function setCurrentTemplateId( id ) {
+ return {
+ type: 'SET_CURRENT_TEMPLATE_ID',
+ id,
+ };
+}
diff --git a/packages/editor/src/store/reducer.js b/packages/editor/src/store/reducer.js
index 647e0158660040..7821baf5cdc062 100644
--- a/packages/editor/src/store/reducer.js
+++ b/packages/editor/src/store/reducer.js
@@ -90,6 +90,15 @@ export function postId( state = null, action ) {
return state;
}
+export function templateId( state = null, action ) {
+ switch ( action.type ) {
+ case 'SET_CURRENT_TEMPLATE_ID':
+ return action.id;
+ }
+
+ return state;
+}
+
export function postType( state = null, action ) {
switch ( action.type ) {
case 'SETUP_EDITOR_STATE':
@@ -279,9 +288,19 @@ export function editorSettings( state = EDITOR_SETTINGS_DEFAULTS, action ) {
return state;
}
+export function renderingMode( state = 'all', action ) {
+ switch ( action.type ) {
+ case 'SET_RENDERING_MODE':
+ return action.mode;
+ }
+
+ return state;
+}
+
export default combineReducers( {
postId,
postType,
+ templateId,
saving,
deleting,
postLock,
@@ -290,4 +309,5 @@ export default combineReducers( {
isReady,
editorSettings,
postAutosavingLock,
+ renderingMode,
} );
diff --git a/packages/editor/src/store/selectors.js b/packages/editor/src/store/selectors.js
index a2bbf0f47770f1..c47a80e96735f5 100644
--- a/packages/editor/src/store/selectors.js
+++ b/packages/editor/src/store/selectors.js
@@ -205,6 +205,17 @@ export function getCurrentPostId( state ) {
return state.postId;
}
+/**
+ * Returns the template ID currently being rendered/edited
+ *
+ * @param {Object} state Global application state.
+ *
+ * @return {string?} Template ID.
+ */
+export function getCurrentTemplateId( state ) {
+ return state.templateId;
+}
+
/**
* Returns the number of revisions of the post currently being edited.
*
@@ -819,54 +830,54 @@ export function getEditedPostPreviewLink( state ) {
* is a single block within the post and it is of a type known to match a
* default post format. Returns null if the format cannot be determined.
*
- * @param {Object} state Global application state.
- *
* @return {?string} Suggested post format.
*/
-export function getSuggestedPostFormat( state ) {
- const blocks = getEditorBlocks( state );
-
- if ( blocks.length > 2 ) return null;
-
- let name;
- // If there is only one block in the content of the post grab its name
- // so we can derive a suitable post format from it.
- if ( blocks.length === 1 ) {
- name = blocks[ 0 ].name;
- // Check for core/embed `video` and `audio` eligible suggestions.
- if ( name === 'core/embed' ) {
- const provider = blocks[ 0 ].attributes?.providerNameSlug;
- if ( [ 'youtube', 'vimeo' ].includes( provider ) ) {
- name = 'core/video';
- } else if ( [ 'spotify', 'soundcloud' ].includes( provider ) ) {
- name = 'core/audio';
+export const getSuggestedPostFormat = createRegistrySelector(
+ ( select ) => () => {
+ const blocks = select( blockEditorStore ).getBlocks();
+
+ if ( blocks.length > 2 ) return null;
+
+ let name;
+ // If there is only one block in the content of the post grab its name
+ // so we can derive a suitable post format from it.
+ if ( blocks.length === 1 ) {
+ name = blocks[ 0 ].name;
+ // Check for core/embed `video` and `audio` eligible suggestions.
+ if ( name === 'core/embed' ) {
+ const provider = blocks[ 0 ].attributes?.providerNameSlug;
+ if ( [ 'youtube', 'vimeo' ].includes( provider ) ) {
+ name = 'core/video';
+ } else if ( [ 'spotify', 'soundcloud' ].includes( provider ) ) {
+ name = 'core/audio';
+ }
}
}
- }
- // If there are two blocks in the content and the last one is a text blocks
- // grab the name of the first one to also suggest a post format from it.
- if ( blocks.length === 2 && blocks[ 1 ].name === 'core/paragraph' ) {
- name = blocks[ 0 ].name;
- }
+ // If there are two blocks in the content and the last one is a text blocks
+ // grab the name of the first one to also suggest a post format from it.
+ if ( blocks.length === 2 && blocks[ 1 ].name === 'core/paragraph' ) {
+ name = blocks[ 0 ].name;
+ }
- // We only convert to default post formats in core.
- switch ( name ) {
- case 'core/image':
- return 'image';
- case 'core/quote':
- case 'core/pullquote':
- return 'quote';
- case 'core/gallery':
- return 'gallery';
- case 'core/video':
- return 'video';
- case 'core/audio':
- return 'audio';
- default:
- return null;
+ // We only convert to default post formats in core.
+ switch ( name ) {
+ case 'core/image':
+ return 'image';
+ case 'core/quote':
+ case 'core/pullquote':
+ return 'quote';
+ case 'core/gallery':
+ return 'gallery';
+ case 'core/video':
+ return 'video';
+ case 'core/audio':
+ return 'audio';
+ default:
+ return null;
+ }
}
-}
+);
/**
* Returns the content of the post being edited.
@@ -1188,6 +1199,17 @@ export function getEditorSettings( state ) {
return state.editorSettings;
}
+/**
+ * Returns the post editor's rendering mode.
+ *
+ * @param {Object} state Editor state.
+ *
+ * @return {string} Rendering mode.
+ */
+export function getRenderingMode( state ) {
+ return state.renderingMode;
+}
+
/*
* Backward compatibility
*/
diff --git a/packages/editor/src/store/test/selectors.js b/packages/editor/src/store/test/selectors.js
index c18377c4e385e7..211ff717c88bda 100644
--- a/packages/editor/src/store/test/selectors.js
+++ b/packages/editor/src/store/test/selectors.js
@@ -122,6 +122,10 @@ selectorNames.forEach( ( name ) => {
},
};
},
+
+ getBlocks() {
+ return state.getBlocks && state.getBlocks();
+ },
} );
selectorNames.forEach( ( otherName ) => {
@@ -2155,16 +2159,9 @@ describe( 'selectors', () => {
describe( 'getSuggestedPostFormat', () => {
it( 'returns null if cannot be determined', () => {
const state = {
- editor: {
- present: {
- blocks: {
- value: [],
- },
- edits: {},
- },
+ getBlocks() {
+ return [];
},
- initialEdits: {},
- currentPost: {},
};
expect( getSuggestedPostFormat( state ) ).toBeNull();
@@ -2172,77 +2169,56 @@ describe( 'selectors', () => {
it( 'return null if only one block of type `core/embed` and provider not matched', () => {
const state = {
- editor: {
- present: {
- blocks: {
- value: [
- {
- clientId: 567,
- name: 'core/embed',
- attributes: {
- providerNameSlug: 'instagram',
- },
- innerBlocks: [],
- },
- ],
+ getBlocks() {
+ return [
+ {
+ clientId: 567,
+ name: 'core/embed',
+ attributes: {
+ providerNameSlug: 'instagram',
+ },
+ innerBlocks: [],
},
- edits: {},
- },
+ ];
},
- initialEdits: {},
- currentPost: {},
};
expect( getSuggestedPostFormat( state ) ).toBeNull();
} );
it( 'return null if only one block of type `core/embed` and provider not exists', () => {
const state = {
- editor: {
- present: {
- blocks: {
- value: [
- {
- clientId: 567,
- name: 'core/embed',
- attributes: {},
- innerBlocks: [],
- },
- ],
+ getBlocks() {
+ return [
+ {
+ clientId: 567,
+ name: 'core/embed',
+ attributes: {},
+ innerBlocks: [],
},
- edits: {},
- },
+ ];
},
- initialEdits: {},
- currentPost: {},
};
expect( getSuggestedPostFormat( state ) ).toBeNull();
} );
it( 'returns null if there is more than one block in the post', () => {
const state = {
- editor: {
- present: {
- blocks: {
- value: [
- {
- clientId: 123,
- name: 'core/image',
- attributes: {},
- innerBlocks: [],
- },
- {
- clientId: 456,
- name: 'core/quote',
- attributes: {},
- innerBlocks: [],
- },
- ],
+ getBlocks() {
+ return [
+ {
+ clientId: 123,
+ name: 'core/image',
+ attributes: {},
+ innerBlocks: [],
},
- edits: {},
- },
+ {
+ clientId: 456,
+ name: 'core/quote',
+ attributes: {},
+ innerBlocks: [],
+ },
+ ];
},
- initialEdits: {},
- currentPost: {},
};
expect( getSuggestedPostFormat( state ) ).toBeNull();
@@ -2250,23 +2226,16 @@ describe( 'selectors', () => {
it( 'returns Image if the first block is of type `core/image`', () => {
const state = {
- editor: {
- present: {
- blocks: {
- value: [
- {
- clientId: 123,
- name: 'core/image',
- attributes: {},
- innerBlocks: [],
- },
- ],
+ getBlocks() {
+ return [
+ {
+ clientId: 123,
+ name: 'core/image',
+ attributes: {},
+ innerBlocks: [],
},
- edits: {},
- },
+ ];
},
- initialEdits: {},
- currentPost: {},
};
expect( getSuggestedPostFormat( state ) ).toBe( 'image' );
@@ -2274,23 +2243,16 @@ describe( 'selectors', () => {
it( 'returns Quote if the first block is of type `core/quote`', () => {
const state = {
- editor: {
- present: {
- blocks: {
- value: [
- {
- clientId: 456,
- name: 'core/quote',
- attributes: {},
- innerBlocks: [],
- },
- ],
+ getBlocks() {
+ return [
+ {
+ clientId: 456,
+ name: 'core/quote',
+ attributes: {},
+ innerBlocks: [],
},
- edits: {},
- },
+ ];
},
- initialEdits: {},
- currentPost: {},
};
expect( getSuggestedPostFormat( state ) ).toBe( 'quote' );
@@ -2298,25 +2260,18 @@ describe( 'selectors', () => {
it( 'returns Video if the first block is of type `core/embed from youtube`', () => {
const state = {
- editor: {
- present: {
- blocks: {
- value: [
- {
- clientId: 567,
- name: 'core/embed',
- attributes: {
- providerNameSlug: 'youtube',
- },
- innerBlocks: [],
- },
- ],
+ getBlocks() {
+ return [
+ {
+ clientId: 567,
+ name: 'core/embed',
+ attributes: {
+ providerNameSlug: 'youtube',
+ },
+ innerBlocks: [],
},
- edits: {},
- },
+ ];
},
- initialEdits: {},
- currentPost: {},
};
expect( getSuggestedPostFormat( state ) ).toBe( 'video' );
@@ -2324,25 +2279,18 @@ describe( 'selectors', () => {
it( 'returns Audio if the first block is of type `core/embed from soundcloud`', () => {
const state = {
- editor: {
- present: {
- blocks: {
- value: [
- {
- clientId: 567,
- name: 'core/embed',
- attributes: {
- providerNameSlug: 'soundcloud',
- },
- innerBlocks: [],
- },
- ],
+ getBlocks() {
+ return [
+ {
+ clientId: 567,
+ name: 'core/embed',
+ attributes: {
+ providerNameSlug: 'soundcloud',
+ },
+ innerBlocks: [],
},
- edits: {},
- },
+ ];
},
- initialEdits: {},
- currentPost: {},
};
expect( getSuggestedPostFormat( state ) ).toBe( 'audio' );
@@ -2350,29 +2298,22 @@ describe( 'selectors', () => {
it( 'returns Quote if the first block is of type `core/quote` and second is of type `core/paragraph`', () => {
const state = {
- editor: {
- present: {
- blocks: {
- value: [
- {
- clientId: 456,
- name: 'core/quote',
- attributes: {},
- innerBlocks: [],
- },
- {
- clientId: 789,
- name: 'core/paragraph',
- attributes: {},
- innerBlocks: [],
- },
- ],
+ getBlocks() {
+ return [
+ {
+ clientId: 456,
+ name: 'core/quote',
+ attributes: {},
+ innerBlocks: [],
},
- edits: {},
- },
+ {
+ clientId: 789,
+ name: 'core/paragraph',
+ attributes: {},
+ innerBlocks: [],
+ },
+ ];
},
- initialEdits: {},
- currentPost: {},
};
expect( getSuggestedPostFormat( state ) ).toBe( 'quote' );
diff --git a/packages/editor/src/style.scss b/packages/editor/src/style.scss
index ccc26e23b430b0..986cb645c271f5 100644
--- a/packages/editor/src/style.scss
+++ b/packages/editor/src/style.scss
@@ -17,6 +17,7 @@
@import "./components/post-sync-status/style.scss";
@import "./components/post-taxonomies/style.scss";
@import "./components/post-text-editor/style.scss";
+@import "./components/post-title/style.scss";
@import "./components/post-url/style.scss";
@import "./components/post-visibility/style.scss";
@import "./components/post-trash/style.scss";
diff --git a/packages/element/CHANGELOG.md b/packages/element/CHANGELOG.md
index a3d999401c24be..574f801a1d7b7e 100644
--- a/packages/element/CHANGELOG.md
+++ b/packages/element/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 5.24.0 (2023-11-29)
+
## 5.23.0 (2023-11-16)
## 5.22.0 (2023-11-02)
diff --git a/packages/element/package.json b/packages/element/package.json
index b8753b952909b6..c40b80802d4a0a 100644
--- a/packages/element/package.json
+++ b/packages/element/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/element",
- "version": "5.23.0",
+ "version": "5.24.0",
"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 b1dd4f778334f7..8b39bea46f785e 100644
--- a/packages/env/CHANGELOG.md
+++ b/packages/env/CHANGELOG.md
@@ -2,6 +2,12 @@
## Unreleased
+### Breaking Change
+
+- Update Docker usage to `docker compose` V2 following [deprecation](https://docs.docker.com/compose/migrate/) of `docker-compose` V1.
+
+## 8.13.0 (2023-11-29)
+
## 8.12.0 (2023-11-16)
## 8.11.0 (2023-11-02)
diff --git a/packages/env/lib/cli.js b/packages/env/lib/cli.js
index 1788315b60b9db..896df6cd59fed0 100644
--- a/packages/env/lib/cli.js
+++ b/packages/env/lib/cli.js
@@ -58,10 +58,10 @@ const withSpinner =
'err' in error &&
'out' in error
) {
- // Error is a docker-compose error. That means something docker-related failed.
+ // Error is a docker compose error. That means something docker-related failed.
// https://github.com/PDMLab/docker-compose/blob/HEAD/src/index.ts
spinner.fail(
- 'Error while running docker-compose command.'
+ 'Error while running docker compose command.'
);
if ( error.out ) {
process.stdout.write( error.out );
diff --git a/packages/env/lib/commands/clean.js b/packages/env/lib/commands/clean.js
index e3977b3b63b8c0..587080eee99db1 100644
--- a/packages/env/lib/commands/clean.js
+++ b/packages/env/lib/commands/clean.js
@@ -2,7 +2,7 @@
/**
* External dependencies
*/
-const dockerCompose = require( 'docker-compose' );
+const { v2: dockerCompose } = require( 'docker-compose' );
/**
* Internal dependencies
diff --git a/packages/env/lib/commands/destroy.js b/packages/env/lib/commands/destroy.js
index fbbff0c8a28982..20f76250271a9e 100644
--- a/packages/env/lib/commands/destroy.js
+++ b/packages/env/lib/commands/destroy.js
@@ -2,7 +2,7 @@
/**
* External dependencies
*/
-const dockerCompose = require( 'docker-compose' );
+const { v2: dockerCompose } = require( 'docker-compose' );
const util = require( 'util' );
const fs = require( 'fs' ).promises;
const path = require( 'path' );
diff --git a/packages/env/lib/commands/logs.js b/packages/env/lib/commands/logs.js
index 3a749b20b3dab6..b581835b2f9945 100644
--- a/packages/env/lib/commands/logs.js
+++ b/packages/env/lib/commands/logs.js
@@ -2,7 +2,7 @@
/**
* External dependencies
*/
-const dockerCompose = require( 'docker-compose' );
+const { v2: dockerCompose } = require( 'docker-compose' );
/**
* Internal dependencies
diff --git a/packages/env/lib/commands/run.js b/packages/env/lib/commands/run.js
index def29b6523139d..88dc99374afbeb 100644
--- a/packages/env/lib/commands/run.js
+++ b/packages/env/lib/commands/run.js
@@ -74,10 +74,13 @@ function spawnCommandDirectly( config, container, command, envCwd, spinner ) {
container === 'mysql' || container === 'tests-mysql'
? '/'
: '/var/www/html',
- envCwd
+ // Remove spaces and single quotes from both ends of the path.
+ // This is needed because Windows treats single quotes as a literal character.
+ envCwd.trim().replace( /^'|'$/g, '' )
);
const composeCommand = [
+ 'compose',
'-f',
config.dockerComposeConfigPath,
'exec',
@@ -98,7 +101,7 @@ function spawnCommandDirectly( config, container, command, envCwd, spinner ) {
// cannot use it to spawn an interactive command. Thus, we run docker-
// compose on the CLI directly.
const childProc = spawn(
- 'docker-compose',
+ 'docker',
composeCommand,
{ stdio: 'inherit' },
spinner
diff --git a/packages/env/lib/commands/start.js b/packages/env/lib/commands/start.js
index 2765e9c4e31984..4203ac74632287 100644
--- a/packages/env/lib/commands/start.js
+++ b/packages/env/lib/commands/start.js
@@ -2,7 +2,7 @@
/**
* External dependencies
*/
-const dockerCompose = require( 'docker-compose' );
+const { v2: dockerCompose } = require( 'docker-compose' );
const util = require( 'util' );
const path = require( 'path' );
const fs = require( 'fs' ).promises;
diff --git a/packages/env/lib/commands/stop.js b/packages/env/lib/commands/stop.js
index 3700c3f2aa5815..5393ef8c6a000f 100644
--- a/packages/env/lib/commands/stop.js
+++ b/packages/env/lib/commands/stop.js
@@ -2,7 +2,7 @@
/**
* External dependencies
*/
-const dockerCompose = require( 'docker-compose' );
+const { v2: dockerCompose } = require( 'docker-compose' );
/**
* Internal dependencies
diff --git a/packages/env/lib/test/cli.js b/packages/env/lib/test/cli.js
index ba850e3259f4c8..542aea598a42fa 100644
--- a/packages/env/lib/test/cli.js
+++ b/packages/env/lib/test/cli.js
@@ -138,7 +138,7 @@ describe( 'env cli', () => {
await env.start.mock.results[ 0 ].value.catch( () => {} );
expect( spinner.fail ).toHaveBeenCalledWith(
- 'Error while running docker-compose command.'
+ 'Error while running docker compose command.'
);
expect( process.stderr.write ).toHaveBeenCalledWith( 'failure error' );
expect( process.exit ).toHaveBeenCalledWith( 1 );
diff --git a/packages/env/lib/wordpress.js b/packages/env/lib/wordpress.js
index e8c20aa70f2158..423547fad688b5 100644
--- a/packages/env/lib/wordpress.js
+++ b/packages/env/lib/wordpress.js
@@ -2,7 +2,7 @@
/**
* External dependencies
*/
-const dockerCompose = require( 'docker-compose' );
+const { v2: dockerCompose } = require( 'docker-compose' );
const util = require( 'util' );
const fs = require( 'fs' ).promises;
const path = require( 'path' );
diff --git a/packages/env/package.json b/packages/env/package.json
index 28373f4f391b6a..cb362b6c9f3d1a 100644
--- a/packages/env/package.json
+++ b/packages/env/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/env",
- "version": "8.12.0",
+ "version": "8.13.0",
"description": "A zero-config, self contained local WordPress environment for development and testing.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
@@ -34,7 +34,7 @@
"dependencies": {
"chalk": "^4.0.0",
"copy-dir": "^1.3.0",
- "docker-compose": "^0.22.2",
+ "docker-compose": "^0.24.3",
"extract-zip": "^1.6.7",
"got": "^11.8.5",
"inquirer": "^7.1.0",
diff --git a/packages/escape-html/CHANGELOG.md b/packages/escape-html/CHANGELOG.md
index 9f62bcec394e90..8be716a9504a8f 100644
--- a/packages/escape-html/CHANGELOG.md
+++ b/packages/escape-html/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 2.47.0 (2023-11-29)
+
## 2.46.0 (2023-11-16)
## 2.45.0 (2023-11-02)
diff --git a/packages/escape-html/package.json b/packages/escape-html/package.json
index e45800c248dfc3..7eacfe4f0e0a22 100644
--- a/packages/escape-html/package.json
+++ b/packages/escape-html/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/escape-html",
- "version": "2.46.0",
+ "version": "2.47.0",
"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 203f5246c10f46..111dcbde574e63 100644
--- a/packages/eslint-plugin/CHANGELOG.md
+++ b/packages/eslint-plugin/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 17.4.0 (2023-11-29)
+
## 17.3.0 (2023-11-16)
## 17.2.0 (2023-11-02)
diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json
index f3009f7a584f64..4ea51fab8bab98 100644
--- a/packages/eslint-plugin/package.json
+++ b/packages/eslint-plugin/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/eslint-plugin",
- "version": "17.3.0",
+ "version": "17.4.0",
"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 ca29a28fd3a4c0..19da743a909436 100644
--- a/packages/format-library/CHANGELOG.md
+++ b/packages/format-library/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 4.24.0 (2023-11-29)
+
## 4.23.0 (2023-11-16)
## 4.22.0 (2023-11-02)
diff --git a/packages/format-library/package.json b/packages/format-library/package.json
index f7b9dc90224e64..1f1ff7700a002e 100644
--- a/packages/format-library/package.json
+++ b/packages/format-library/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/format-library",
- "version": "4.23.0",
+ "version": "4.24.0",
"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 d2f43c203979c3..d8355c0fd472a3 100644
--- a/packages/hooks/CHANGELOG.md
+++ b/packages/hooks/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 3.47.0 (2023-11-29)
+
## 3.46.0 (2023-11-16)
## 3.45.0 (2023-11-02)
diff --git a/packages/hooks/package.json b/packages/hooks/package.json
index 6b9a3fccd3c7ad..e33b95790c7692 100644
--- a/packages/hooks/package.json
+++ b/packages/hooks/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/hooks",
- "version": "3.46.0",
+ "version": "3.47.0",
"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 bf89467f2154e8..a7cb330e988496 100644
--- a/packages/html-entities/CHANGELOG.md
+++ b/packages/html-entities/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 3.47.0 (2023-11-29)
+
## 3.46.0 (2023-11-16)
## 3.45.0 (2023-11-02)
diff --git a/packages/html-entities/package.json b/packages/html-entities/package.json
index 8d30d7c48173c0..1b5a775a08ec0f 100644
--- a/packages/html-entities/package.json
+++ b/packages/html-entities/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/html-entities",
- "version": "3.46.0",
+ "version": "3.47.0",
"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 dfc007b50cd076..56b7c0ba885c56 100644
--- a/packages/i18n/CHANGELOG.md
+++ b/packages/i18n/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 4.47.0 (2023-11-29)
+
## 4.46.0 (2023-11-16)
## 4.45.0 (2023-11-02)
diff --git a/packages/i18n/package.json b/packages/i18n/package.json
index 47414963190cdf..33a9e59fe2d51b 100644
--- a/packages/i18n/package.json
+++ b/packages/i18n/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/i18n",
- "version": "4.46.0",
+ "version": "4.47.0",
"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 a906ef9f569d21..827234758766d0 100644
--- a/packages/icons/CHANGELOG.md
+++ b/packages/icons/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 9.38.0 (2023-11-29)
+
## 9.37.0 (2023-11-16)
### New features
diff --git a/packages/icons/package.json b/packages/icons/package.json
index 5cef81d4bc67b6..a357de3a39f261 100644
--- a/packages/icons/package.json
+++ b/packages/icons/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/icons",
- "version": "9.37.0",
+ "version": "9.38.0",
"description": "WordPress Icons package, based on dashicon.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/icons/src/index.js b/packages/icons/src/index.js
index bb078b348e6043..36b29714234429 100644
--- a/packages/icons/src/index.js
+++ b/packages/icons/src/index.js
@@ -238,6 +238,7 @@ export { default as swatch } from './library/swatch';
export { default as tableColumnAfter } from './library/table-column-after';
export { default as tableColumnBefore } from './library/table-column-before';
export { default as tableColumnDelete } from './library/table-column-delete';
+export { default as tableOfContents } from './library/table-of-contents';
export { default as tableRowAfter } from './library/table-row-after';
export { default as tableRowBefore } from './library/table-row-before';
export { default as tableRowDelete } from './library/table-row-delete';
diff --git a/packages/icons/src/library/archive.js b/packages/icons/src/library/archive.js
index d63516f7286251..f8429667408cb7 100644
--- a/packages/icons/src/library/archive.js
+++ b/packages/icons/src/library/archive.js
@@ -5,7 +5,11 @@ import { SVG, Path } from '@wordpress/primitives';
const archive = (
-
+
);
diff --git a/packages/icons/src/library/columns.js b/packages/icons/src/library/columns.js
index 994c32467f4724..0d6cd87779c0d3 100644
--- a/packages/icons/src/library/columns.js
+++ b/packages/icons/src/library/columns.js
@@ -5,7 +5,11 @@ import { Path, SVG } from '@wordpress/primitives';
const columns = (
-
+
);
diff --git a/packages/icons/src/library/copy.js b/packages/icons/src/library/copy.js
index 981865c13a327b..5c9e6c9704deb6 100644
--- a/packages/icons/src/library/copy.js
+++ b/packages/icons/src/library/copy.js
@@ -5,7 +5,11 @@ import { SVG, Path } from '@wordpress/primitives';
const copy = (
-
+
);
diff --git a/packages/icons/src/library/crop.js b/packages/icons/src/library/crop.js
index 0a293b24a5bde3..9f4a25f5f0d440 100644
--- a/packages/icons/src/library/crop.js
+++ b/packages/icons/src/library/crop.js
@@ -5,7 +5,7 @@ import { SVG, Path } from '@wordpress/primitives';
const crop = (
-
+
);
diff --git a/packages/icons/src/library/file.js b/packages/icons/src/library/file.js
index 3d87df413da1ba..6b7d29b3ae9239 100644
--- a/packages/icons/src/library/file.js
+++ b/packages/icons/src/library/file.js
@@ -5,7 +5,11 @@ import { Path, SVG } from '@wordpress/primitives';
const file = (
-
+
);
diff --git a/packages/icons/src/library/page.js b/packages/icons/src/library/page.js
index 9f5338f46aea2b..e2439254f14185 100644
--- a/packages/icons/src/library/page.js
+++ b/packages/icons/src/library/page.js
@@ -5,7 +5,8 @@ import { SVG, Path } from '@wordpress/primitives';
const page = (
-
+
+
);
diff --git a/packages/icons/src/library/pages.js b/packages/icons/src/library/pages.js
index 7e7dff92cc71d6..d038b21f109c87 100644
--- a/packages/icons/src/library/pages.js
+++ b/packages/icons/src/library/pages.js
@@ -5,7 +5,9 @@ import { SVG, Path } from '@wordpress/primitives';
const pages = (
-
+
+
+
);
diff --git a/packages/icons/src/library/plus.js b/packages/icons/src/library/plus.js
index 591aee12b2dfd5..45f600c37c9c51 100644
--- a/packages/icons/src/library/plus.js
+++ b/packages/icons/src/library/plus.js
@@ -5,7 +5,7 @@ import { SVG, Path } from '@wordpress/primitives';
const plus = (
-
+
);
diff --git a/packages/icons/src/library/post-excerpt.js b/packages/icons/src/library/post-excerpt.js
index 742e50d69240b3..f2f2b11f00695b 100644
--- a/packages/icons/src/library/post-excerpt.js
+++ b/packages/icons/src/library/post-excerpt.js
@@ -5,7 +5,7 @@ import { Path, SVG } from '@wordpress/primitives';
const postExcerpt = (
-
+
);
diff --git a/packages/icons/src/library/post-list.js b/packages/icons/src/library/post-list.js
index 7656d492d17fd0..32adce23053bcd 100644
--- a/packages/icons/src/library/post-list.js
+++ b/packages/icons/src/library/post-list.js
@@ -5,7 +5,7 @@ import { Path, SVG } from '@wordpress/primitives';
const postList = (
-
+
);
diff --git a/packages/icons/src/library/table-of-contents.js b/packages/icons/src/library/table-of-contents.js
new file mode 100644
index 00000000000000..00e1ec1ab5801f
--- /dev/null
+++ b/packages/icons/src/library/table-of-contents.js
@@ -0,0 +1,17 @@
+/**
+ * WordPress dependencies
+ */
+import { SVG, Path } from '@wordpress/primitives';
+
+const tableOfContents = (
+
+
+
+
+);
+
+export default tableOfContents;
diff --git a/packages/icons/src/library/tag.js b/packages/icons/src/library/tag.js
index 4054c59371c01f..9714f7366378bd 100644
--- a/packages/icons/src/library/tag.js
+++ b/packages/icons/src/library/tag.js
@@ -5,7 +5,7 @@ import { SVG, Path } from '@wordpress/primitives';
const tag = (
-
+
);
diff --git a/packages/icons/src/library/trash.js b/packages/icons/src/library/trash.js
index 95a391ca1f6097..79870537dbb633 100644
--- a/packages/icons/src/library/trash.js
+++ b/packages/icons/src/library/trash.js
@@ -5,7 +5,11 @@ import { SVG, Path } from '@wordpress/primitives';
const trash = (
-
+
);
diff --git a/packages/interactivity/CHANGELOG.md b/packages/interactivity/CHANGELOG.md
index 089280cee21448..3f54c4c6046d9a 100644
--- a/packages/interactivity/CHANGELOG.md
+++ b/packages/interactivity/CHANGELOG.md
@@ -2,6 +2,12 @@
## Unreleased
+## 3.0.0 (2023-11-29)
+
+### Breaking Change
+
+- Implement the new `store()` API as specified in the [proposal](https://github.com/WordPress/gutenberg/discussions/53586). ([#55459](https://github.com/WordPress/gutenberg/pull/55459))
+
## 2.7.0 (2023-11-16)
## 2.6.0 (2023-11-02)
diff --git a/packages/interactivity/docs/1-getting-started.md b/packages/interactivity/docs/1-getting-started.md
index c4bae5d5fe6702..0b4708b78b3509 100644
--- a/packages/interactivity/docs/1-getting-started.md
+++ b/packages/interactivity/docs/1-getting-started.md
@@ -83,7 +83,7 @@ To "activate" the Interactivity API in a DOM element (and its children) we add t
```html
-
+
```
\ No newline at end of file
diff --git a/packages/interactivity/docs/2-api-reference.md b/packages/interactivity/docs/2-api-reference.md
index 828de4379c0269..3c8f179861f525 100644
--- a/packages/interactivity/docs/2-api-reference.md
+++ b/packages/interactivity/docs/2-api-reference.md
@@ -2,10 +2,10 @@
To add interactivity to blocks using the Interactivity API, developers can use:
-- **Directives** - added to the markup to add specific behavior to the DOM elements of block.
-- **Store** - that contains the logic and data (state, actions, or effects among others) needed for the behaviour.
+- **Directives** - added to the markup to add specific behavior to the DOM elements of the block.
+- **Store** - that contains the logic and data (state, actions, or side effects, among others) needed for the behavior.
-DOM elements are connected to data stored in the state & context through directives. If data in the state or context change, directives will react to those changes updating the DOM accordingly (see [diagram](https://excalidraw.com/#json=rEg5d71O_jy3NrgYJUIVd,yjOUmMvxzNf6alqFjElvIw)).
+DOM elements are connected to data stored in the state and context through directives. If data in the state or context change directives will react to those changes, updating the DOM accordingly (see [diagram](https://excalidraw.com/#json=T4meh6lltJh6TCX51NTIu,DmIhxYSGFTL_ywZFbsmuSw)).
![State & Directives](assets/state-directives.png)
@@ -20,7 +20,7 @@ DOM elements are connected to data stored in the state & context through directi
- [`wp-style`](#wp-style) ![](https://img.shields.io/badge/ATTRIBUTES-afd2e3.svg)
- [`wp-text`](#wp-text) ![](https://img.shields.io/badge/CONTENT-afd2e3.svg)
- [`wp-on`](#wp-on) ![](https://img.shields.io/badge/EVENT_HANDLERS-afd2e3.svg)
- - [`wp-effect`](#wp-effect) ![](https://img.shields.io/badge/SIDE_EFFECTS-afd2e3.svg)
+ - [`wp-watch`](#wp-watch) ![](https://img.shields.io/badge/SIDE_EFFECTS-afd2e3.svg)
- [`wp-init`](#wp-init) ![](https://img.shields.io/badge/SIDE_EFFECTS-afd2e3.svg)
- [`wp-key`](#wp-key) ![](https://img.shields.io/badge/TEMPLATING-afd2e3.svg)
- [Values of directives are references to store properties](#values-of-directives-are-references-to-store-properties)
@@ -28,18 +28,14 @@ DOM elements are connected to data stored in the state & context through directi
- [Elements of the store](#elements-of-the-store)
- [State](#state)
- [Actions](#actions)
- - [Effects](#effects)
- - [Selectors](#selectors)
- - [Arguments passed to callbacks](#arguments-passed-to-callbacks)
+ - [Side Effects](#side-effects)
- [Setting the store](#setting-the-store)
- [On the client side](#on-the-client-side)
- [On the server side](#on-the-server-side)
-
-
## The directives
-Directives are custom attributes that are added to the markup of your block to add behaviour to its DOM elements. This can be done in the `render.php` file (for dynamic blocks) or the `save.js` file (for static blocks).
+Directives are custom attributes that are added to the markup of your block to add behavior to its DOM elements. This can be done in the `render.php` file (for dynamic blocks) or the `save.js` file (for static blocks).
Interactivity API directives use the `data-` prefix.
@@ -47,40 +43,38 @@ _Example of directives used in the HTML markup_
```html
Toggle
-
+
This element is now visible!
```
-> **Note**
-> The use of Namespaces to define the context, state or any other elements of the store is highly recommended to avoid possible collision with other elements with the same name. In the following examples we have not used namespaces for the sake of simplicity.
-
Directives can also be injected dynamically using the [HTML Tag Processor](https://make.wordpress.org/core/2023/03/07/introducing-the-html-api-in-wordpress-6-2).
### List of Directives
-With directives we can manage directly in the DOM behavior related to things such as side effects, state, event handlers, attributes or content.
+With directives, we can directly manage behavior related to things such as side effects, state, event handlers, attributes or content.
#### `wp-interactive`
-The `wp-interactive` directive "activates" the interactivity for the DOM element and its children through the Interactivity API (directives and store).
+The `wp-interactive` directive "activates" the interactivity for the DOM element and its children through the Interactivity API (directives and store). It includes a namespace to reference a specific store.
```html
-
+
I'm interactive now, >and I can use directives!
@@ -91,19 +85,19 @@ The `wp-interactive` directive "activates" the interactivity for the DOM element
```
> **Note**
-> The use of `wp-interactive` is a requirement for the Interactivity API "engine" to work. In the following examples the `wp-interactive` has not been added for the sake of simplicity.
-
+> The use of `data-wp-interactive` is a requirement for the Interactivity API "engine" to work. In the following examples the `data-wp-interactive` has not been added for the sake of simplicity. Also, the `data-wp-interactive` directive will be injected automatically in the future.
#### `wp-context`
-It provides **local** state available to a specific HTML node and its children.
+It provides a **local** state available to a specific HTML node and its children.
-The `wp-context` directive accepts a stringified JSON as value.
+The `wp-context` directive accepts a stringified JSON as a value.
_Example of `wp-context` directive_
+
```php
//render.php
-
+
Click Me!
@@ -114,10 +108,11 @@ _Example of `wp-context` directive_
See store used with the directive above
```js
-store( {
+store( "myPlugin", {
actions: {
- logId: ( { context } ) => {
- console.log( context.post.id );
+ logId: () => {
+ const { post } = getContext();
+ console.log( post.id );
},
},
} );
@@ -126,7 +121,7 @@ store( {
-Different contexts can be defined at different levels and deeper levels will merge their own context with any parent one:
+Different contexts can be defined at different levels, and deeper levels will merge their own context with any parent one:
```html
@@ -150,6 +145,7 @@ It allows setting HTML attributes on elements based on a boolean or string value
> This directive follows the syntax `data-wp-bind--attribute`.
_Example of `wp-bind` directive_
+
```html
```
+
See store used with the directive above
```js
-store( {
- actions: {
- toggleMenu: ( { context } ) => {
+store( "myPlugin", {
+ actions: {
+ toggleMenu: () => {
+ const context = getContext();
context.isMenuOpen = !context.isMenuOpen;
},
- },
+ },
} );
```
@@ -183,15 +181,17 @@ store( {
The `wp-bind` directive is executed:
- - when the element is created.
- - each time there's a change on any of the properties of the `state` or `context` involved on getting the final value of the directive (inside the callback or the expression passed as reference).
+
+- When the element is created.
+- Each time there's a change on any of the properties of the `state` or `context` involved in getting the final value of the directive (inside the callback or the expression passed as reference).
When `wp-bind` directive references a callback to get its final value:
+
- The `wp-bind` directive will be executed each time there's a change on any of the properties of the `state` or `context` used inside this callback.
-- The callback receives the attribute name: `attribute`.
- The returned value in the callback function is used to change the value of the associated attribute.
-The `wp-bind` will do different things over the DOM element is applied depending on its value:
+The `wp-bind` will do different things over the DOM element is applied, depending on its value:
+
- If the value is `true`, the attribute is added: ``.
- If the value is `false`, the attribute is removed: `
`.
- If the value is a string, the attribute is added with its value assigned: `
This directive follows the syntax `data-wp-class--classname`.
_Example of `wp-class` directive_
-```php
+
+```html
Option 1
@@ -227,9 +228,10 @@ _Example of `wp-class` directive_
See store used with the directive above
```js
-store( {
+store( "myPlugin", {
actions: {
- toggleSelection: ( { context } ) => {
+ toggleSelection: () => {
+ const context = getContext();
context.isSelected = !context.isSelected
}
}
@@ -240,14 +242,14 @@ store( {
The `wp-class` directive is executed:
- - when the element is created.
- - each time there's a change on any of the properties of the `state` or `context` involved on getting the final value of the directive (inside the callback or the expression passed as reference).
+
+- When the element is created.
+- Each time there's a change on any of the properties of the `state` or `context` involved in getting the final value of the directive (inside the callback or the expression passed as reference).
When `wp-class` directive references a callback to get its final boolean value, the callback receives the class name: `className`.
The boolean value received by the directive is used to toggle (add when `true` or remove when `false`) the associated class name from the `class` attribute.
-
#### `wp-style`
It adds or removes inline style to an HTML element, depending on its value.
@@ -255,6 +257,7 @@ It adds or removes inline style to an HTML element, depending on its value.
> This directive follows the syntax `data-wp-style--css-property`.
_Example of `wp-style` directive_
+
```html
Toggle Color Text
@@ -267,9 +270,10 @@ _Example of `wp-style` directive_
See store used with the directive above
```js
-store( {
+store( "myPlugin", {
actions: {
- toggleContextColor: ( { context } ) => {
+ toggleContextColor: () => {
+ const context = getContext();
context.color = context.color === 'red' ? 'blue' : 'red';
},
},
@@ -280,14 +284,16 @@ store( {
The `wp-style` directive is executed:
- - when the element is created.
- - each time there's a change on any of the properties of the `state` or `context` involved on getting the final value of the directive (inside the callback or the expression passed as reference).
+
+- When the element is created.
+- Each time there's a change on any of the properties of the `state` or `context` involved in getting the final value of the directive (inside the callback or the expression passed as reference).
When `wp-style` directive references a callback to get its final value, the callback receives the class style property: `css-property`.
The value received by the directive is used to add or remove the style attribute with the associated CSS property: :
- - If the value is `false`, the style attribute is removed: `
`.
- - If the value is a string, the attribute is added with its value assigned: `
`.
+
+- If the value is `false`, the style attribute is removed: `
`.
+- If the value is a string, the attribute is added with its value assigned: `
`.
#### `wp-text`
@@ -306,9 +312,10 @@ It sets the inner text of an HTML element.
See store used with the directive above
```js
-store( {
+store( "myPlugin", {
actions: {
- toggleContextText: ( { context } ) => {
+ toggleContextText: () => {
+ const context = getContext();
context.text = context.text === 'Text 1' ? 'Text 2' : 'Text 1';
},
},
@@ -319,8 +326,9 @@ store( {
The `wp-text` directive is executed:
- - when the element is created.
- - each time there's a change on any of the properties of the `state` or `context` involved on getting the final value of the directive (inside the callback or the expression passed as reference).
+
+- When the element is created.
+- Each time there's a change on any of the properties of the `state` or `context` involved in getting the final value of the directive (inside the callback or the expression passed as reference).
The returned value is used to change the inner content of the element: `
value
`.
@@ -331,6 +339,7 @@ It runs code on dispatched DOM events like `click` or `keyup`.
> The syntax of this directive is `data-wp-on--[event]` (like `data-wp-on--click` or `data-wp-on--keyup`).
_Example of `wp-on` directive_
+
```php
Click Me!
@@ -341,9 +350,11 @@ _Example of `wp-on` directive_
See store used with the directive above
```js
-store( {
+store( "myPlugin", {
actions: {
- logTime: () => console.log( new Date() ),
+ logTime: ( event ) => {
+ console.log( new Date() )
+ },
},
} );
```
@@ -353,20 +364,20 @@ store( {
The `wp-on` directive is executed each time the associated event is triggered.
-The callback passed as reference receives [the event](https://developer.mozilla.org/en-US/docs/Web/API/Event) (`event`) and the returned value by this callback is ignored.
-
+The callback passed as the reference receives [the event](https://developer.mozilla.org/en-US/docs/Web/API/Event) (`event`), and the returned value by this callback is ignored.
-#### `wp-effect`
+#### `wp-watch`
It runs a callback **when the node is created and runs it again when the state or context changes**.
-You can attach several effects to the same DOM element by using the syntax `data-wp-effect--[unique-id]`. _The unique id doesn't need to be unique globally, it just needs to be different than the other unique ids of the `wp-effect` directives of that DOM element._
+You can attach several side effects to the same DOM element by using the syntax `data-wp-watch--[unique-id]`. _The unique id doesn't need to be unique globally, it just needs to be different than the other unique ids of the `wp-watch` directives of that DOM element._
+
+_Example of `wp-watch` directive_
-_Example of `wp-effect` directive_
```html
Counter:
+
@@ -378,17 +389,22 @@ _Example of `wp-effect` directive_
See store used with the directive above
```js
-store( {
+store( "myPlugin", {
actions: {
- increaseCounter: ({ context }) => {
+ increaseCounter: () => {
+ const context = getContext();
context.counter++;
},
- decreaseCounter: ({ context }) => {
+ decreaseCounter: () => {
+ const context = getContext();
context.counter--;
},
- }
- effects: {
- logCounter: ({ context }) => console.log("Counter is " + context.counter + " at " + new Date() ),
+ },
+ callbacks: {
+ logCounter: () => {
+ const { counter } = getContext();
+ console.log("Counter is " + counter + " at " + new Date() );
+ },
},
} );
```
@@ -396,17 +412,19 @@ store( {
-The `wp-effect` directive is executed:
- - when the element is created.
- - each time that any of the properties of the `state` or `context` used inside the callback changes.
+The `wp-watch` directive is executed:
-The `wp-effect` directive can return a function. If it does, the returned function is used as cleanup logic, i.e., it will run just before the callback runs again, and it will run again when the element is removed from the DOM.
+- When the element is created.
+- Each time that any of the properties of the `state` or `context` used inside the callback changes.
-As a reference, some use cases for this directive may be:
-- logging.
-- changing the title of the page.
-- setting the focus on an element with `.focus()`.
-- changing the state or context when certain conditions are met.
+The `wp-watch` directive can return a function. If it does, the returned function is used as cleanup logic, i.e., it will run just before the callback runs again, and it will run again when the element is removed from the DOM.
+
+As a reference, some use cases for this directive may be:
+
+- Logging.
+- Changing the title of the page.
+- Setting the focus on an element with `.focus()`.
+- Changing the state or context when certain conditions are met.
#### `wp-init`
@@ -415,17 +433,19 @@ It runs a callback **only when the node is created**.
You can attach several `wp-init` to the same DOM element by using the syntax `data-wp-init--[unique-id]`. _The unique id doesn't need to be unique globally, it just needs to be different than the other unique ids of the `wp-init` directives of that DOM element._
_Example of `data-wp-init` directive_
+
```html
-
+
```
_Example of several `wp-init` directives on the same DOM element_
+
```html
@@ -435,11 +455,13 @@ _Example of several `wp-init` directives on the same DOM element_
See store used with the directive above
```js
-store( {
- effects: {
+store( "myPlugin", {
+ callbacks: {
logTimeInit: () => console.log( `Init at ` + new Date() ),
- focusFirstElement: ( { ref } ) =>
+ focusFirstElement: () => {
+ const { ref } = getElement();
ref.querySelector( 'input:first-child' ).focus(),
+ },
},
} );
```
@@ -447,15 +469,13 @@ store( {
-
The `wp-init` can return a function. If it does, the returned function will run when the element is removed from the DOM.
#### `wp-key`
+The `wp-key` directive assigns a unique key to an element to help the Interactivity API identify it when iterating through arrays of elements. This becomes important if your array elements can move (e.g., due to sorting), get inserted, or get deleted. A well-chosen key value helps the Interactivity API infer what exactly has changed in the array, allowing it to make the correct updates to the DOM.
-The `wp-key` directive assigns a unique key to an element to help the Interactivity API identify it when iterating through arrays of elements. This becomes important if your array elements can move (e.g. due to sorting), get inserted, or get deleted. A well-chosen key value helps the Interactivity API infer what exactly has changed in the array, allowing it to make the correct updates to the DOM.
-
-The key should be a string that uniquely identifies the element among its siblings. Typically it is used on repeated elements like list items. For example:
+The key should be a string that uniquely identifies the element among its siblings. Typically, it is used on repeated elements like list items. For example:
```html
@@ -477,47 +497,58 @@ When the list is re-rendered, the Interactivity API will match elements by their
### Values of directives are references to store properties
-The value assigned to a directive is a string pointing to a specific state, selector, action, or effect. *Using a Namespace is highly recommended* to define these elements of the store.
+The value assigned to a directive is a string pointing to a specific state, action, or side effect.
-In the following example we use the namespace `wpmovies` (plugin name is usually a good namespace name) to define the `isPlaying` selector.
+In the following example, we use a getter to define the `state.isPlaying` derived value.
```js
-store( {
- selectors: {
- wpmovies: {
- isPlaying: ( { state } ) => state.wpmovies.currentVideo !== '',
- },
- },
+const { state } = store( "myPlugin", {
+ state: {
+ currentVideo: '',
+ get isPlaying() {
+ return state.currentVideo !== '';
+ }
+ },
} );
```
-And then, we use the string value `"selectors.wpmovies.isPlaying"` to assign the result of this selector to `data-bind--hidden`.
+And then, we use the string value `"state.isPlaying"` to assign the result of this selector to `data-bind--hidden`.
-```php
-
+```html
+
```
-These values assigned to directives are **references** to a particular property in the store. They are wired to the directives automatically so that each directive “knows” what store element (action, effect...) refers to without any additional configuration.
+These values assigned to directives are **references** to a particular property in the store. They are wired to the directives automatically so that each directive “knows” what store element refers to, without any additional configuration.
+Note that, by default, references point to properties in the current namespace, which is the one specified by the closest ancestor with a `data-wp-interactive` attribute. If you need to access a property from a different namespace, you can explicitly set the namespace where the property we want to access is defined. The syntax is `namespace::reference`, replacing `namespace` with the appropriate value.
-## The store
+In the example below, we get `state.isPlaying` from `otherPlugin` instead of `myPlugin`:
-The store is used to create the logic (actions, effects…) linked to the directives and the data used inside that logic (state, selectors…).
+```html
+
+```
-**The store is usually created in the `view.js` file of each block**, although it can be initialized from the `render.php` of the block.
+## The store
-The store contains the reactive state and the actions and effects that modify it.
+The store is used to create the logic (actions, side effects…) linked to the directives and the data used inside that logic (state, derived state…).
+
+**The store is usually created in the `view.js` file of each block**, although the state can be initialized from the `render.php` of the block.
### Elements of the store
#### State
-Defines data available to the HTML nodes of the page. It is important to differentiate between two ways to define the data:
- - **Global state**: It is defined using the `store()` function, and the data is available to all the HTML nodes of the page. It can be accessed using the `state` property.
- - **Context/Local State**: It is defined using the `data-wp-context` directive in an HTML node, and the data is available to that HTML node and its children. It can be accessed using the `context` property.
-
+It defines data available to the HTML nodes of the page. It is important to differentiate between two ways to define the data:
+
+- **Global state**: It is defined using the `store()` function with the `state` property, and the data is available to all the HTML nodes of the page.
+- **Context/Local State**: It is defined using the `data-wp-context` directive in an HTML node, and the data is available to that HTML node and its children. It can be accessed using the `getContext` function inside of an action, derived state or side effect.
+
```html
@@ -531,13 +562,15 @@ Defines data available to the HTML nodes of the page. It is important to differe
```
```js
-store( {
+const { state } = store( "myPlugin", {
state: {
someText: "Hello Universe!"
},
actions: {
- someAction: ({ state, context }) => {
+ someAction: () => {
state.someText // Access or modify global state - "Hello Universe!"
+
+ const context = getContext();
context.someText // Access or modify local state (context) - "Hello World!"
},
},
@@ -548,96 +581,126 @@ store( {
Usually triggered by the `data-wp-on` directive (using event listeners) or other actions.
-#### Effects
+#### Side Effects
-Automatically react to state changes. Usually triggered by `data-wp-effect` or `data-wp-init` directives.
+Automatically react to state changes. Usually triggered by `data-wp-watch` or `data-wp-init` directives.
-#### Selectors
+#### Derived state
-Also known as _derived state_, returns a computed version of the state. They can access both `state` and `context`.
+They return a computed version of the state. They can access both `state` and `context`.
```js
// view.js
-store( {
- state: {
- amount: 34,
- defaultCurrency: 'EUR',
- currencyExchange: {
- USD: 1.1,
- GBP: 0.85,
- },
- },
- selectors: {
- amountInUSD: ( { state } ) =>
- state.currencyExchange[ 'USD' ] * state.amount,
- amountInGBP: ( { state } ) =>
- state.currencyExchange[ 'GBP' ] * state.amount,
- },
+const { state } = store( "myPlugin", {
+ state: {
+ amount: 34,
+ defaultCurrency: 'EUR',
+ currencyExchange: {
+ USD: 1.1,
+ GBP: 0.85,
+ },
+ get amountInUSD() {
+ return state.currencyExchange[ 'USD' ] * state.amount,
+ },
+ get amountInGBP() {
+ return state.currencyExchange[ 'GBP' ] * state.amount,
+ },
+ },
+} );
+```
+
+### Accessing data in callbacks
+
+
+The **`store`** contains all the store properties, like `state`, `actions` or `callbacks`. They are returned by the `store()` call, so you can access them by destructuring it:
+
+```js
+const { state, actions } = store( "myPlugin", {
+ // ...
} );
```
-### Arguments passed to callbacks
+The `store()` function can be called multiple times and all the store parts will be merged together:
+
+```js
+store( "myPlugin", {
+ state: {
+ someValue: 1,
+ }
+} );
+
+const { state } = store( "myPlugin", {
+ actions: {
+ someAction() {
+ state.someValue // = 1
+ }
+ }
+} );
+```
-When a directive is evaluated, the reference callback receives an object with:
+> **Note**
+> All `store()` calls with the same namespace return the same references, i.e., the same `state`, `actions`, etc., containing the result of merging all the store parts passed.
-- The **`store`** containing all the store properties, like `state`, `selectors`, `actions` or `effects`
-- The **context** (an object containing the context defined in all the `wp-context` ancestors).
-- The reference to the DOM element on which the directive was defined (a `ref`).
-- Other properties relevant to the directive. For example, the `data-wp-on--click` directive also receives the instance of the [MouseEvent](https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent) triggered by the user.
+- To access the context inside an action, derived state, or side effect, you can use the `getContext` function.
+- To access the reference, you can use the `getElement` function.
-_Example of action making use of all values received when it's triggered_
```js
-// view.js
-store( {
- state: {
- theme: false,
- },
- actions: {
- toggle: ( { state, context, ref, event, className } ) => {
- console.log( state );
- // `{ "theme": false }`
- console.log( context );
- // `{ "isOpen": true }`
- console.log( ref );
- // The DOM element
- console.log( event );
- // The Event object if using the `data-wp-on`
- console.log( className );
- // The class name if using the `data-wp-class`
- },
- },
+const { state } = store( "myPlugin", {
+ state: {
+ get someDerivedValue() {
+ const context = getContext();
+ const { ref } = getElement();
+ // ...
+ }
+ },
+ actions: {
+ someAction() {
+ const context = getContext();
+ const { ref } = getElement();
+ // ...
+ }
+ },
+ callbacks: {
+ someEffect() {
+ const context = getContext();
+ const { ref } = getElement();
+ // ...
+ }
+ }
} );
```
This approach enables some functionalities that make directives flexible and powerful:
-- Actions and effects can read and modify the state and the context.
+- Actions and side effects can read and modify the state and the context.
- Actions and state in blocks can be accessed by other blocks.
-- Actions and effects can do anything a regular JavaScript function can do, like access the DOM or make API requests.
-- Effects automatically react to state changes.
+- Actions and side effects can do anything a regular JavaScript function can do, like access the DOM or make API requests.
+- Side effects automatically react to state changes.
### Setting the store
#### On the client side
-*In the `view.js` file of each block* we can define both the state and the elements of the store referencing functions like actions, effects or selectors.
+*In the `view.js` file of each block* we can define both the state and the elements of the store referencing functions like actions, side effects or derived state.
-`store` method used to set the store in javascript can be imported from `@wordpress/interactivity`.
+The `store` method used to set the store in javascript can be imported from `@wordpress/interactivity`.
```js
// store
-import { store } from '@wordpress/interactivity';
+import { store, getContext } from '@wordpress/interactivity';
-store( {
+store( "myPlugin", {
actions: {
- toggle: ( { context } ) => {
+ toggle: () => {
+ const context = getContext();
context.isOpen = !context.isOpen;
},
},
- effects: {
- logIsOpen: ( { context } ) => {
+ callbacks: {
+ logIsOpen: () => {
+ const { isOpen } = getContext();
// Log the value of `isOpen` each time it changes.
- console.log( `Is open: ${ context.isOpen }` );
+ console.log( `Is open: ${ isOpen }` );
}
},
});
@@ -645,69 +708,66 @@ store( {
#### On the server side
-The store can also be initialized on the server using the `wp_store()` function. You would typically do this in the `render.php` file of your block (the `render.php` templates were [introduced](https://make.wordpress.org/core/2022/10/12/block-api-changes-in-wordpress-6-1/) in WordPress 6.1).
+> **Note**
+> We will rename `wp_store` to `wp_initial_state` in a future version.
+
+The state can also be initialized on the server using the `wp_store()` function. You would typically do this in the `render.php` file of your block (the `render.php` templates were [introduced](https://make.wordpress.org/core/2022/10/12/block-api-changes-in-wordpress-6-1/) in WordPress 6.1).
-The store defined on the server with `wp_store()` gets merged with the stores defined in the view.js files.
+The state defined on the server with `wp_store()` gets merged with the stores defined in the view.js files.
The `wp_store` function receives an [associative array](https://www.php.net/manual/en/language.types.array.php) as a parameter.
-
_Example of store initialized from the server with a `state` = `{ someValue: 123 }`_
```php
// render.php
wp_store( array(
- 'state' => array(
- 'myNamespace' => array(
- 'someValue' = 123
- )
+ 'myPlugin' => array(
+ 'someValue' = 123
)
);
```
-Initializing the store in the server also allows you to use any WordPress API. For example, you could use the Core Translation API to translate part of your state:
+Initializing the state in the server also allows you to use any WordPress API. For example, you could use the Core Translation API to translate part of your state:
```php
// render.php
wp_store(
array(
- "state" => array(
- "favoriteMovies" => array(
- "1" => array(
- "id" => "123-abc",
- "movieName" => __("someMovieName", "textdomain")
- ),
+ "favoriteMovies" => array(
+ "1" => array(
+ "id" => "123-abc",
+ "movieName" => __("someMovieName", "textdomain")
),
),
)
);
```
-### Store options
-
-The `store` function accepts an object as a second argument with the following optional properties:
+### Private stores
-#### `afterLoad`
-
-Callback to be executed after the Interactivity API has been set up and the store is ready. It receives the global store as argument.
+A given store namespace can be marked as private, thus preventing its content to be accessed from other namespaces. The mechanism to do so is by adding a `lock` option to the `store()` call, like shown in the example below. This way, further executions of `store()` with the same locked namespace will throw an error, meaning that the namespace can only be accessed where its reference was returned from the first `store()` call. This is specially useful for developers that want to hide part of their plugin stores so it doesn't become accessible for extenders.
```js
-// view.js
-store(
- {
- state: {
- cart: [],
- },
- },
- {
- afterLoad: async ( { state } ) => {
- // Let's consider `clientId` is added
- // during server-side rendering.
- state.cart = await getCartData( state.clientId );
- },
- }
+const { state } = store(
+ "myPlugin/private",
+ { state: { messages: [ "private message" ] } },
+ { lock: true }
);
+
+// The following call throws an Error!
+store( "myPlugin/private", { /* store part */ } );
```
+There is also a way to unlock private stores: instead of passing a boolean, you can use a string as the `lock` value. Such a string can then be used in subsequent `store()` calls to the same namespace to unlock its content. Only the code knowing the string lock will be able to unlock the protected store namespaced. This is useful for complex stores defined in multiple JS modules.
+```js
+const { state } = store(
+ "myPlugin/private",
+ { state: { messages: [ "private message" ] } },
+ { lock: PRIVATE_LOCK }
+);
+// The following call works as expected.
+store( "myPlugin/private", { /* store part */ }, { lock: PRIVATE_LOCK } );
+```
diff --git a/packages/interactivity/docs/assets/state-directives.png b/packages/interactivity/docs/assets/state-directives.png
index feb93a2d1f8956..a2422d1a2a049e 100644
Binary files a/packages/interactivity/docs/assets/state-directives.png and b/packages/interactivity/docs/assets/state-directives.png differ
diff --git a/packages/interactivity/docs/assets/store-server-client.png b/packages/interactivity/docs/assets/store-server-client.png
index 089268cdc7d9c7..37818e37faa3dc 100644
Binary files a/packages/interactivity/docs/assets/store-server-client.png and b/packages/interactivity/docs/assets/store-server-client.png differ
diff --git a/packages/interactivity/package.json b/packages/interactivity/package.json
index fd2491695be5ad..da118762e3c02a 100644
--- a/packages/interactivity/package.json
+++ b/packages/interactivity/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/interactivity",
- "version": "2.7.0",
+ "version": "3.0.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",
@@ -24,6 +24,7 @@
"main": "build/index.js",
"module": "build-module/index.js",
"react-native": "src/index",
+ "types": "build-types",
"dependencies": {
"@preact/signals": "^1.1.3",
"deepsignal": "^1.3.6",
diff --git a/packages/interactivity/src/directives.js b/packages/interactivity/src/directives.js
index ce3859c630231f..0793dc0cc5d5ba 100644
--- a/packages/interactivity/src/directives.js
+++ b/packages/interactivity/src/directives.js
@@ -17,6 +17,7 @@ import { createPortal } from './portals';
import { useSignalEffect } from './utils';
import { directive } from './hooks';
import { SlotProvider, Slot, Fill } from './slots';
+import { navigate } from './router';
const isObject = ( item ) =>
item && typeof item === 'object' && ! Array.isArray( item );
@@ -40,21 +41,24 @@ export default () => {
directive(
'context',
( {
- directives: {
- context: { default: newContext },
- },
+ directives: { context },
props: { children },
context: inheritedContext,
} ) => {
const { Provider } = inheritedContext;
const inheritedValue = useContext( inheritedContext );
const currentValue = useRef( deepSignal( {} ) );
+ const passedValues = context.map( ( { value } ) => value );
+
currentValue.current = useMemo( () => {
- const newValue = deepSignal( newContext );
+ const newValue = context
+ .map( ( c ) => deepSignal( { [ c.namespace ]: c.value } ) )
+ .reduceRight( mergeDeepSignals );
+
mergeDeepSignals( newValue, inheritedValue );
mergeDeepSignals( currentValue.current, newValue, true );
return currentValue.current;
- }, [ newContext, inheritedValue ] );
+ }, [ inheritedValue, ...passedValues ] );
return (
{ children }
@@ -68,32 +72,25 @@ export default () => {
return createPortal( children, document.body );
} );
- // data-wp-effect--[name]
- directive( 'effect', ( { directives: { effect }, context, evaluate } ) => {
- const contextValue = useContext( context );
- Object.values( effect ).forEach( ( path ) => {
- useSignalEffect( () => {
- return evaluate( path, { context: contextValue } );
- } );
+ // data-wp-watch--[name]
+ directive( 'watch', ( { directives: { watch }, evaluate } ) => {
+ watch.forEach( ( entry ) => {
+ useSignalEffect( () => evaluate( entry ) );
} );
} );
// data-wp-init--[name]
- directive( 'init', ( { directives: { init }, context, evaluate } ) => {
- const contextValue = useContext( context );
- Object.values( init ).forEach( ( path ) => {
- useEffect( () => {
- return evaluate( path, { context: contextValue } );
- }, [] );
+ directive( 'init', ( { directives: { init }, evaluate } ) => {
+ init.forEach( ( entry ) => {
+ useEffect( () => evaluate( entry ), [] );
} );
} );
// data-wp-on--[event]
- directive( 'on', ( { directives: { on }, element, evaluate, context } ) => {
- const contextValue = useContext( context );
- Object.entries( on ).forEach( ( [ name, path ] ) => {
- element.props[ `on${ name }` ] = ( event ) => {
- evaluate( path, { event, context: contextValue } );
+ directive( 'on', ( { directives: { on }, element, evaluate } ) => {
+ on.forEach( ( entry ) => {
+ element.props[ `on${ entry.suffix }` ] = ( event ) => {
+ evaluate( entry, event );
};
} );
} );
@@ -101,20 +98,12 @@ export default () => {
// data-wp-class--[classname]
directive(
'class',
- ( {
- directives: { class: className },
- element,
- evaluate,
- context,
- } ) => {
- const contextValue = useContext( context );
- Object.keys( className )
- .filter( ( n ) => n !== 'default' )
- .forEach( ( name ) => {
- const result = evaluate( className[ name ], {
- className: name,
- context: contextValue,
- } );
+ ( { directives: { class: className }, element, evaluate } ) => {
+ className
+ .filter( ( { suffix } ) => suffix !== 'default' )
+ .forEach( ( entry ) => {
+ const name = entry.suffix;
+ const result = evaluate( entry, { className: name } );
const currentClass = element.props.class || '';
const classFinder = new RegExp(
`(^|\\s)${ name }(\\s|$)`,
@@ -179,111 +168,142 @@ export default () => {
};
// data-wp-style--[style-key]
- directive(
- 'style',
- ( { directives: { style }, element, evaluate, context } ) => {
- const contextValue = useContext( context );
- Object.keys( style )
- .filter( ( n ) => n !== 'default' )
- .forEach( ( key ) => {
- const result = evaluate( style[ key ], {
- key,
- context: contextValue,
- } );
- 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[ key ];
- else element.props.style[ key ] = result;
+ directive( 'style', ( { directives: { style }, element, evaluate } ) => {
+ style
+ .filter( ( { suffix } ) => suffix !== 'default' )
+ .forEach( ( entry ) => {
+ const key = entry.suffix;
+ const result = evaluate( entry, { key } );
+ 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[ key ];
+ else element.props.style[ key ] = result;
- useEffect( () => {
- // 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.current.style.removeProperty( key );
- } else {
- element.ref.current.style[ key ] = result;
- }
- }, [] );
- } );
- }
- );
+ useEffect( () => {
+ // 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.current.style.removeProperty( key );
+ } else {
+ element.ref.current.style[ key ] = 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;
+ // Preact doesn't handle the `role` attribute properly, as it doesn't remove it when `null`.
+ // We need this workaround until the following issue is solved:
+ // https://github.com/preactjs/preact/issues/4136
+ useLayoutEffect( () => {
+ if (
+ attribute === 'role' &&
+ ( result === null || result === undefined )
+ ) {
+ element.ref.current.removeAttribute( attribute );
+ }
+ }, [ attribute, result ] );
+
+ // This seems necessary because Preact doesn't change the attributes
+ // 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.
+ useEffect( () => {
+ const el = element.ref.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 !== 'width' &&
+ attribute !== 'height' &&
+ attribute !== 'href' &&
+ attribute !== 'list' &&
+ attribute !== 'form' &&
+ // Default value in browsers is `-1` and an empty string is
+ // cast to `0` instead
+ 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-navigation-link
directive(
- 'bind',
- ( { directives: { bind }, element, context, evaluate } ) => {
- const contextValue = useContext( context );
- Object.entries( bind )
- .filter( ( n ) => n !== 'default' )
- .forEach( ( [ attribute, path ] ) => {
- const result = evaluate( path, {
- context: contextValue,
- } );
- element.props[ attribute ] = result;
- // Preact doesn't handle the `role` attribute properly, as it doesn't remove it when `null`.
- // We need this workaround until the following issue is solved:
- // https://github.com/preactjs/preact/issues/4136
- useLayoutEffect( () => {
- if (
- attribute === 'role' &&
- ( result === null || result === undefined )
- ) {
- element.ref.current.removeAttribute( attribute );
- }
- }, [ attribute, result ] );
+ 'navigation-link',
+ ( {
+ directives: { 'navigation-link': navigationLink },
+ props: { href },
+ element,
+ } ) => {
+ const { value: link } = navigationLink.find(
+ ( { suffix } ) => suffix === 'default'
+ );
- // This seems necessary because Preact doesn't change the attributes
- // 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.
- useEffect( () => {
- const el = element.ref.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 !== 'width' &&
- attribute !== 'height' &&
- attribute !== 'href' &&
- attribute !== 'list' &&
- attribute !== 'form' &&
- // Default value in browsers is `-1` and an empty string is
- // cast to `0` instead
- 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 );
- }
- }, [] );
- } );
+ useEffect( () => {
+ // Prefetch the page if it is in the directive options.
+ if ( link?.prefetch ) {
+ // prefetch( href );
+ }
+ } );
+
+ // Don't do anything if it's falsy.
+ if ( link !== false ) {
+ element.props.onclick = async ( event ) => {
+ event.preventDefault();
+
+ // Fetch the page (or return it from cache).
+ await navigate( href );
+
+ // Update the scroll, depending on the option. True by default.
+ if ( link?.scroll === 'smooth' ) {
+ window.scrollTo( {
+ top: 0,
+ left: 0,
+ behavior: 'smooth',
+ } );
+ } else if ( link?.scroll !== false ) {
+ window.scrollTo( 0, 0 );
+ }
+ };
+ }
}
);
@@ -308,35 +328,20 @@ export default () => {
);
// data-wp-text
- directive(
- 'text',
- ( {
- directives: {
- text: { default: text },
- },
- element,
- evaluate,
- context,
- } ) => {
- const contextValue = useContext( context );
- element.props.children = evaluate( text, {
- context: contextValue,
- } );
- }
- );
+ directive( 'text', ( { directives: { text }, element, evaluate } ) => {
+ const entry = text.find( ( { suffix } ) => suffix === 'default' );
+ element.props.children = evaluate( entry );
+ } );
// data-wp-slot
directive(
'slot',
- ( {
- directives: {
- slot: { default: slot },
- },
- props: { children },
- element,
- } ) => {
- const name = typeof slot === 'string' ? slot : slot.name;
- const position = slot.position || 'children';
+ ( { directives: { slot }, props: { children }, element } ) => {
+ const { value } = slot.find(
+ ( { suffix } ) => suffix === 'default'
+ );
+ const name = typeof value === 'string' ? value : value.name;
+ const position = value.position || 'children';
if ( position === 'before' ) {
return (
@@ -369,16 +374,9 @@ export default () => {
// data-wp-fill
directive(
'fill',
- ( {
- directives: {
- fill: { default: fill },
- },
- props: { children },
- evaluate,
- context,
- } ) => {
- const contextValue = useContext( context );
- const slot = evaluate( fill, { context: contextValue } );
+ ( { directives: { fill }, props: { children }, evaluate } ) => {
+ const entry = fill.find( ( { suffix } ) => suffix === 'default' );
+ const slot = evaluate( entry );
return
{ children } ;
},
{ priority: 4 }
diff --git a/packages/interactivity/src/hooks.js b/packages/interactivity/src/hooks.js
deleted file mode 100644
index d5b019300fed1a..00000000000000
--- a/packages/interactivity/src/hooks.js
+++ /dev/null
@@ -1,225 +0,0 @@
-/**
- * External dependencies
- */
-import { h, options, createContext, cloneElement } from 'preact';
-import { useRef, useCallback } from 'preact/hooks';
-/**
- * Internal dependencies
- */
-import { rawStore as store } from './store';
-
-/** @typedef {import('preact').VNode} VNode */
-/** @typedef {typeof context} Context */
-/** @typedef {ReturnType
} Evaluate */
-
-/**
- * @typedef {Object} DirectiveCallbackParams Callback parameters.
- * @property {Object} directives Object map with the defined directives of the element being evaluated.
- * @property {Object} props Props present in the current element.
- * @property {VNode} element Virtual node representing the original element.
- * @property {Context} context The inherited context.
- * @property {Evaluate} evaluate Function that resolves a given path to a value either in the store or the context.
- */
-
-/**
- * @callback DirectiveCallback Callback that runs the directive logic.
- * @param {DirectiveCallbackParams} params Callback parameters.
- */
-
-/**
- * @typedef DirectiveOptions Options object.
- * @property {number} [priority=10] Value that specifies the priority to
- * evaluate directives of this type. Lower
- * numbers correspond with earlier execution.
- * Default is `10`.
- */
-
-// Main context.
-const context = createContext( {} );
-
-// WordPress Directives.
-const directiveCallbacks = {};
-const directivePriorities = {};
-
-/**
- * Register a new directive type in the Interactivity API runtime.
- *
- * @example
- * ```js
- * directive(
- * 'alert', // Name without the `data-wp-` prefix.
- * ( { directives: { alert }, element, evaluate }) => {
- * element.props.onclick = () => {
- * alert( evaluate( alert.default ) );
- * }
- * }
- * )
- * ```
- *
- * The previous code registers a custom directive type for displaying an alert
- * message whenever an element using it is clicked. The message text is obtained
- * from the store using `evaluate`.
- *
- * When the HTML is processed by the Interactivity API, any element containing
- * the `data-wp-alert` directive will have the `onclick` event handler, e.g.,
- *
- * ```html
- * Click me!
- * ```
- * Note that, in the previous example, you access `alert.default` in order to
- * retrieve the `state.messages.alert` value passed to the directive. You can
- * also define custom names by appending `--` to the directive attribute,
- * followed by a suffix, like in the following HTML snippet:
- *
- * ```html
- * Click me!
- * ```
- *
- * This could be an hypothetical implementation of the custom directive used in
- * the snippet above.
- *
- * @example
- * ```js
- * directive(
- * 'color', // Name without prefix and suffix.
- * ( { directives: { color }, ref, evaluate }) => {
- * if ( color.text ) {
- * ref.style.setProperty(
- * 'color',
- * evaluate( color.text )
- * );
- * }
- * if ( color.background ) {
- * ref.style.setProperty(
- * 'background-color',
- * evaluate( color.background )
- * );
- * }
- * }
- * )
- * ```
- *
- * @param {string} name Directive name, without the `data-wp-` prefix.
- * @param {DirectiveCallback} callback Function that runs the directive logic.
- * @param {DirectiveOptions=} options Options object.
- */
-export const directive = ( name, callback, { priority = 10 } = {} ) => {
- directiveCallbacks[ name ] = callback;
- directivePriorities[ name ] = priority;
-};
-
-// Resolve the path to some property of the store object.
-const resolve = ( path, ctx ) => {
- let current = { ...store, context: ctx };
- path.split( '.' ).forEach( ( p ) => ( current = current[ p ] ) );
- return current;
-};
-
-// Generate the evaluate function.
-const getEvaluate =
- ( { ref } = {} ) =>
- ( path, extraArgs = {} ) => {
- // If path starts with !, remove it and save a flag.
- const hasNegationOperator =
- path[ 0 ] === '!' && !! ( path = path.slice( 1 ) );
- const value = resolve( path, extraArgs.context );
- const returnValue =
- typeof value === 'function'
- ? value( {
- ref: ref.current,
- ...store,
- ...extraArgs,
- } )
- : value;
- return hasNegationOperator ? ! returnValue : returnValue;
- };
-
-// Separate directives by priority. The resulting array contains objects
-// of directives grouped by same priority, and sorted in ascending order.
-const getPriorityLevels = ( directives ) => {
- const byPriority = Object.keys( directives ).reduce( ( obj, name ) => {
- if ( directiveCallbacks[ name ] ) {
- const priority = directivePriorities[ name ];
- ( obj[ priority ] = obj[ priority ] || [] ).push( name );
- }
- return obj;
- }, {} );
-
- return Object.entries( byPriority )
- .sort( ( [ p1 ], [ p2 ] ) => p1 - p2 )
- .map( ( [ , arr ] ) => arr );
-};
-
-// Priority level wrapper.
-const Directives = ( {
- directives,
- priorityLevels: [ currentPriorityLevel, ...nextPriorityLevels ],
- element,
- evaluate,
- originalProps,
- elemRef,
-} ) => {
- // Initialize the DOM reference.
- // eslint-disable-next-line react-hooks/rules-of-hooks
- elemRef = elemRef || useRef( null );
-
- // Create a reference to the evaluate function using the DOM reference.
- // eslint-disable-next-line react-hooks/rules-of-hooks, react-hooks/exhaustive-deps
- evaluate = evaluate || useCallback( getEvaluate( { ref: elemRef } ), [] );
-
- // Create a fresh copy of the vnode element.
- element = cloneElement( element, { ref: elemRef } );
-
- // Recursively render the wrapper for the next priority level.
- const children =
- nextPriorityLevels.length > 0 ? (
-
- ) : (
- element
- );
-
- const props = { ...originalProps, children };
- const directiveArgs = { directives, props, element, context, evaluate };
-
- for ( const directiveName of currentPriorityLevel ) {
- const wrapper = directiveCallbacks[ directiveName ]?.( directiveArgs );
- if ( wrapper !== undefined ) props.children = wrapper;
- }
-
- return props.children;
-};
-
-// Preact Options Hook called each time a vnode is created.
-const old = options.vnode;
-options.vnode = ( vnode ) => {
- if ( vnode.props.__directives ) {
- const props = vnode.props;
- const directives = props.__directives;
- if ( directives.key ) vnode.key = directives.key.default;
- delete props.__directives;
- const priorityLevels = getPriorityLevels( directives );
- if ( priorityLevels.length > 0 ) {
- vnode.props = {
- directives,
- priorityLevels,
- originalProps: props,
- type: vnode.type,
- element: h( vnode.type, props ),
- top: true,
- };
- vnode.type = Directives;
- }
- }
-
- if ( old ) old( vnode );
-};
diff --git a/packages/interactivity/src/hooks.tsx b/packages/interactivity/src/hooks.tsx
new file mode 100644
index 00000000000000..14f0dc6683b460
--- /dev/null
+++ b/packages/interactivity/src/hooks.tsx
@@ -0,0 +1,384 @@
+/**
+ * External dependencies
+ */
+import { h, options, createContext, cloneElement } from 'preact';
+import { useRef, useCallback, useContext } from 'preact/hooks';
+import { deepSignal } from 'deepsignal';
+import type { VNode, Context, RefObject } from 'preact';
+
+/**
+ * Internal dependencies
+ */
+import { stores } from './store';
+interface DirectiveEntry {
+ value: string | Object;
+ namespace: string;
+ suffix: string;
+}
+
+type DirectiveEntries = Record< string, DirectiveEntry[] >;
+
+interface DirectiveArgs {
+ /**
+ * Object map with the defined directives of the element being evaluated.
+ */
+ directives: DirectiveEntries;
+ /**
+ * Props present in the current element.
+ */
+ props: Object;
+ /**
+ * Virtual node representing the element.
+ */
+ element: VNode;
+ /**
+ * The inherited context.
+ */
+ context: Context< any >;
+ /**
+ * Function that resolves a given path to a value either in the store or the
+ * context.
+ */
+ evaluate: Evaluate;
+}
+
+interface DirectiveCallback {
+ ( args: DirectiveArgs ): VNode | void;
+}
+
+interface DirectiveOptions {
+ /**
+ * Value that specifies the priority to evaluate directives of this type.
+ * Lower numbers correspond with earlier execution.
+ *
+ * @default 10
+ */
+ priority?: number;
+}
+
+interface Scope {
+ evaluate: Evaluate;
+ context: Context< any >;
+ ref: RefObject< HTMLElement >;
+ state: any;
+ props: any;
+}
+
+interface Evaluate {
+ ( entry: DirectiveEntry, ...args: any[] ): any;
+}
+
+interface GetEvaluate {
+ ( args: { scope: Scope } ): Evaluate;
+}
+
+type PriorityLevel = string[];
+
+interface GetPriorityLevels {
+ ( directives: DirectiveEntries ): PriorityLevel[];
+}
+
+interface DirectivesProps {
+ directives: DirectiveEntries;
+ priorityLevels: PriorityLevel[];
+ element: VNode;
+ originalProps: any;
+ previousScope?: Scope;
+}
+
+// Main context.
+const context = createContext< any >( {} );
+
+// Wrap the element props to prevent modifications.
+const immutableMap = new WeakMap();
+const immutableError = () => {
+ throw new Error(
+ 'Please use `data-wp-bind` to modify the attributes of an element.'
+ );
+};
+const immutableHandlers = {
+ get( target, key, receiver ) {
+ const value = Reflect.get( target, key, receiver );
+ return !! value && typeof value === 'object'
+ ? deepImmutable( value )
+ : value;
+ },
+ set: immutableError,
+ deleteProperty: immutableError,
+};
+const deepImmutable = < T extends Object = {} >( target: T ): T => {
+ if ( ! immutableMap.has( target ) )
+ immutableMap.set( target, new Proxy( target, immutableHandlers ) );
+ return immutableMap.get( target );
+};
+
+// Store stacks for the current scope and the default namespaces and export APIs
+// to interact with them.
+const scopeStack: Scope[] = [];
+const namespaceStack: string[] = [];
+
+/**
+ * Retrieves the context inherited by the element evaluating a function from the
+ * store. The returned value depends on the element and the namespace where the
+ * function calling `getContext()` exists.
+ *
+ * @param namespace Store namespace. By default, the namespace where the calling
+ * function exists is used.
+ * @return The context content.
+ */
+export const getContext = < T extends object >( namespace?: string ): T =>
+ getScope()?.context[ namespace || namespaceStack.slice( -1 )[ 0 ] ];
+
+/**
+ * Retrieves a representation of the element where a function from the store
+ * is being evalutated. Such representation is read-only, and contains a
+ * reference to the DOM element, its props and a local reactive state.
+ *
+ * @return Element representation.
+ */
+export const getElement = () => {
+ if ( ! getScope() ) {
+ throw Error(
+ 'Cannot call `getElement()` outside getters and actions used by directives.'
+ );
+ }
+ const { ref, state, props } = getScope();
+ return Object.freeze( {
+ ref: ref.current,
+ state,
+ props: deepImmutable( props ),
+ } );
+};
+
+export const getScope = () => scopeStack.slice( -1 )[ 0 ];
+
+export const setScope = ( scope: Scope ) => {
+ scopeStack.push( scope );
+};
+export const resetScope = () => {
+ scopeStack.pop();
+};
+
+export const setNamespace = ( namespace: string ) => {
+ namespaceStack.push( namespace );
+};
+export const resetNamespace = () => {
+ namespaceStack.pop();
+};
+
+// WordPress Directives.
+const directiveCallbacks: Record< string, DirectiveCallback > = {};
+const directivePriorities: Record< string, number > = {};
+
+/**
+ * Register a new directive type in the Interactivity API runtime.
+ *
+ * @example
+ * ```js
+ * directive(
+ * 'alert', // Name without the `data-wp-` prefix.
+ * ( { directives: { alert }, element, evaluate } ) => {
+ * const defaultEntry = alert.find( entry => entry.suffix === 'default' );
+ * element.props.onclick = () => { alert( evaluate( defaultEntry ) ); }
+ * }
+ * )
+ * ```
+ *
+ * The previous code registers a custom directive type for displaying an alert
+ * message whenever an element using it is clicked. The message text is obtained
+ * from the store under the inherited namespace, using `evaluate`.
+ *
+ * When the HTML is processed by the Interactivity API, any element containing
+ * the `data-wp-alert` directive will have the `onclick` event handler, e.g.,
+ *
+ * ```html
+ *
+ * Click me!
+ *
+ * ```
+ * Note that, in the previous example, the directive callback gets the path
+ * value (`state.alert`) from the directive entry with suffix `default`. A
+ * custom suffix can also be specified by appending `--` to the directive
+ * attribute, followed by the suffix, like in the following HTML snippet:
+ *
+ * ```html
+ *
+ * Click me!
+ *
+ * ```
+ *
+ * This could be an hypothetical implementation of the custom directive used in
+ * the snippet above.
+ *
+ * @example
+ * ```js
+ * directive(
+ * 'color', // Name without prefix and suffix.
+ * ( { directives: { color }, ref, evaluate } ) =>
+ * colors.forEach( ( color ) => {
+ * if ( color.suffix = 'text' ) {
+ * ref.style.setProperty(
+ * 'color',
+ * evaluate( color.text )
+ * );
+ * }
+ * if ( color.suffix = 'background' ) {
+ * ref.style.setProperty(
+ * 'background-color',
+ * evaluate( color.background )
+ * );
+ * }
+ * } );
+ * }
+ * )
+ * ```
+ *
+ * @param name Directive name, without the `data-wp-` prefix.
+ * @param callback Function that runs the directive logic.
+ * @param options Options object.
+ * @param options.priority Option to control the directive execution order. The
+ * lesser, the highest priority. Default is `10`.
+ */
+export const directive = (
+ name: string,
+ callback: DirectiveCallback,
+ { priority = 10 }: DirectiveOptions = {}
+) => {
+ directiveCallbacks[ name ] = callback;
+ directivePriorities[ name ] = priority;
+};
+
+// Resolve the path to some property of the store object.
+const resolve = ( path, namespace ) => {
+ let current = {
+ ...stores.get( namespace ),
+ context: getScope().context[ namespace ],
+ };
+ path.split( '.' ).forEach( ( p ) => ( current = current[ p ] ) );
+ return current;
+};
+
+// Generate the evaluate function.
+const getEvaluate: GetEvaluate =
+ ( { scope } ) =>
+ ( entry, ...args ) => {
+ let { value: path, namespace } = entry;
+ if ( typeof path !== 'string' ) {
+ throw new Error( 'The `value` prop should be a string path' );
+ }
+ // If path starts with !, remove it and save a flag.
+ const hasNegationOperator =
+ path[ 0 ] === '!' && !! ( path = path.slice( 1 ) );
+ setScope( scope );
+ const value = resolve( path, namespace );
+ const result = typeof value === 'function' ? value( ...args ) : value;
+ resetScope();
+ return hasNegationOperator ? ! result : result;
+ };
+
+// Separate directives by priority. The resulting array contains objects
+// of directives grouped by same priority, and sorted in ascending order.
+const getPriorityLevels: GetPriorityLevels = ( directives ) => {
+ const byPriority = Object.keys( directives ).reduce<
+ Record< number, string[] >
+ >( ( obj, name ) => {
+ if ( directiveCallbacks[ name ] ) {
+ const priority = directivePriorities[ name ];
+ ( obj[ priority ] = obj[ priority ] || [] ).push( name );
+ }
+ return obj;
+ }, {} );
+
+ return Object.entries( byPriority )
+ .sort( ( [ p1 ], [ p2 ] ) => parseInt( p1 ) - parseInt( p2 ) )
+ .map( ( [ , arr ] ) => arr );
+};
+
+// Component that wraps each priority level of directives of an element.
+const Directives = ( {
+ directives,
+ priorityLevels: [ currentPriorityLevel, ...nextPriorityLevels ],
+ element,
+ originalProps,
+ previousScope,
+}: DirectivesProps ) => {
+ // Initialize the scope of this element. These scopes are different per each
+ // level because each level has a different context, but they share the same
+ // element ref, state and props.
+ const scope = useRef< Scope >( {} as Scope ).current;
+ scope.evaluate = useCallback( getEvaluate( { scope } ), [] );
+ scope.context = useContext( context );
+ /* eslint-disable react-hooks/rules-of-hooks */
+ scope.ref = previousScope?.ref || useRef( null );
+ scope.state = previousScope?.state || useRef( deepSignal( {} ) ).current;
+ /* eslint-enable react-hooks/rules-of-hooks */
+
+ // Create a fresh copy of the vnode element and add the props to the scope.
+ element = cloneElement( element, { ref: scope.ref } );
+ scope.props = element.props;
+
+ // Recursively render the wrapper for the next priority level.
+ const children =
+ nextPriorityLevels.length > 0 ? (
+
+ ) : (
+ element
+ );
+
+ const props = { ...originalProps, children };
+ const directiveArgs = {
+ directives,
+ props,
+ element,
+ context,
+ evaluate: scope.evaluate,
+ };
+
+ setScope( scope );
+
+ for ( const directiveName of currentPriorityLevel ) {
+ const wrapper = directiveCallbacks[ directiveName ]?.( directiveArgs );
+ if ( wrapper !== undefined ) props.children = wrapper;
+ }
+
+ resetScope();
+
+ return props.children;
+};
+
+// Preact Options Hook called each time a vnode is created.
+const old = options.vnode;
+options.vnode = ( vnode: VNode< any > ) => {
+ if ( vnode.props.__directives ) {
+ const props = vnode.props;
+ const directives = props.__directives;
+ if ( directives.key )
+ vnode.key = directives.key.find(
+ ( { suffix } ) => suffix === 'default'
+ ).value;
+ delete props.__directives;
+ const priorityLevels = getPriorityLevels( directives );
+ if ( priorityLevels.length > 0 ) {
+ vnode.props = {
+ directives,
+ priorityLevels,
+ originalProps: props,
+ type: vnode.type,
+ element: h( vnode.type as any, props ),
+ top: true,
+ };
+ vnode.type = Directives;
+ }
+ }
+
+ if ( old ) old( vnode );
+};
diff --git a/packages/interactivity/src/index.js b/packages/interactivity/src/index.js
index 88e81e6f5877c0..6c7b98e8e7a79e 100644
--- a/packages/interactivity/src/index.js
+++ b/packages/interactivity/src/index.js
@@ -3,9 +3,9 @@
*/
import registerDirectives from './directives';
import { init } from './router';
-import { rawStore, afterLoads } from './store';
+
export { store } from './store';
-export { directive } from './hooks';
+export { directive, getContext, getElement } from './hooks';
export { navigate, prefetch } from './router';
export { h as createElement } from 'preact';
export { useEffect, useContext, useMemo } from 'preact/hooks';
@@ -14,5 +14,4 @@ export { deepSignal } from 'deepsignal';
document.addEventListener( 'DOMContentLoaded', async () => {
registerDirectives();
await init();
- afterLoads.forEach( ( afterLoad ) => afterLoad( rawStore ) );
} );
diff --git a/packages/interactivity/src/router.js b/packages/interactivity/src/router.js
index 68d1bc677addf3..1082d43ff3a6a6 100644
--- a/packages/interactivity/src/router.js
+++ b/packages/interactivity/src/router.js
@@ -59,8 +59,18 @@ const regionsToVdom = ( dom ) => {
return { regions, title };
};
-// Prefetch a page. We store the promise to avoid triggering a second fetch for
-// a page if a fetching has already started.
+/**
+ * Prefetchs the page with the passed URL.
+ *
+ * The function normalizes the URL and stores internally the fetch promise, to
+ * avoid triggering a second fetch for an ongoing request.
+ *
+ * @param {string} url The page URL.
+ * @param {Object} [options] Options object.
+ * @param {boolean} [options.force] Force fetching the URL again.
+ * @param {string} [options.html] HTML string to be used instead of fetching
+ * the requested URL.
+ */
export const prefetch = ( url, options = {} ) => {
url = cleanUrl( url );
if ( options.force || ! pages.has( url ) ) {
@@ -84,7 +94,26 @@ const renderRegions = ( page ) => {
// Variable to store the current navigation.
let navigatingTo = '';
-// Navigate to a new page.
+/**
+ * Navigates to the specified page.
+ *
+ * This function normalizes the passed href, fetchs the page HTML if needed, and
+ * updates any interactive regions whose contents have changed. It also creates
+ * a new entry in the browser session history.
+ *
+ * @param {string} href The page href.
+ * @param {Object} [options] Options object.
+ * @param {boolean} [options.force] If true, it forces re-fetching the URL.
+ * @param {string} [options.html] HTML string to be used instead of fetching
+ * the requested URL.
+ * @param {boolean} [options.replace] If true, it replaces the current entry in
+ * the browser session history.
+ * @param {number} [options.timeout] Time until the navigation is aborted, in
+ * milliseconds. Default is 10000.
+ *
+ * @return {Promise} Promise that resolves once the navigation is completed or
+ * aborted.
+ */
export const navigate = async ( href, options = {} ) => {
const url = cleanUrl( href );
navigatingTo = href;
diff --git a/packages/interactivity/src/store.js b/packages/interactivity/src/store.js
deleted file mode 100644
index e0c5f8b3fae777..00000000000000
--- a/packages/interactivity/src/store.js
+++ /dev/null
@@ -1,102 +0,0 @@
-/**
- * External dependencies
- */
-import { deepSignal } from 'deepsignal';
-
-const isObject = ( item ) =>
- item && typeof item === 'object' && ! Array.isArray( item );
-
-const deepMerge = ( target, source ) => {
- if ( isObject( target ) && isObject( source ) ) {
- for ( const key in source ) {
- if ( isObject( source[ key ] ) ) {
- if ( ! target[ key ] ) Object.assign( target, { [ key ]: {} } );
- deepMerge( target[ key ], source[ key ] );
- } else {
- Object.assign( target, { [ key ]: source[ key ] } );
- }
- }
- }
-};
-
-const getSerializedState = () => {
- const storeTag = document.querySelector(
- `script[type="application/json"]#wp-interactivity-store-data`
- );
- if ( ! storeTag ) return {};
- try {
- const { state } = JSON.parse( storeTag.textContent );
- if ( isObject( state ) ) return state;
- throw Error( 'Parsed state is not an object' );
- } catch ( e ) {
- // eslint-disable-next-line no-console
- console.log( e );
- }
- return {};
-};
-
-export const afterLoads = new Set();
-
-const rawState = getSerializedState();
-export const rawStore = { state: deepSignal( rawState ) };
-
-/**
- * @typedef StoreProps Properties object passed to `store`.
- * @property {Object} state State to be added to the global store. All the
- * properties included here become reactive.
- */
-
-/**
- * @typedef StoreOptions Options object.
- * @property {(store:any) => void} [afterLoad] Callback to be executed after the
- * Interactivity API has been set up
- * and the store is ready. It
- * receives the store as argument.
- */
-
-/**
- * Extends the Interactivity API global store with the passed properties.
- *
- * These props typically consist of `state`, which is reactive, and other
- * properties like `selectors`, `actions`, `effects`, etc. which can store
- * callbacks and derived state. These props can then be referenced by any
- * directive to make the HTML interactive.
- *
- * @example
- * ```js
- * store({
- * state: {
- * counter: { value: 0 },
- * },
- * actions: {
- * counter: {
- * increment: ({ state }) => {
- * state.counter.value += 1;
- * },
- * },
- * },
- * });
- * ```
- *
- * The code from the example above allows blocks to subscribe and interact with
- * the store by using directives in the HTML, e.g.:
- *
- * ```html
- *
- *
- * 0
- *
- *
- * ```
- *
- * @param {StoreProps} properties Properties to be added to the global store.
- * @param {StoreOptions} [options] Options passed to the `store` call.
- */
-export const store = ( { state, ...block }, { afterLoad } = {} ) => {
- deepMerge( rawStore, block );
- deepMerge( rawState, state );
- if ( afterLoad ) afterLoads.add( afterLoad );
-};
diff --git a/packages/interactivity/src/store.ts b/packages/interactivity/src/store.ts
new file mode 100644
index 00000000000000..8463d1a0a51323
--- /dev/null
+++ b/packages/interactivity/src/store.ts
@@ -0,0 +1,306 @@
+/**
+ * External dependencies
+ */
+import { deepSignal } from 'deepsignal';
+import { computed } from '@preact/signals';
+
+/**
+ * Internal dependencies
+ */
+import {
+ getScope,
+ setScope,
+ resetScope,
+ setNamespace,
+ resetNamespace,
+} from './hooks';
+
+const isObject = ( item: unknown ): boolean =>
+ !! item && typeof item === 'object' && ! Array.isArray( item );
+
+const deepMerge = ( target: any, source: any ) => {
+ if ( isObject( target ) && isObject( source ) ) {
+ for ( const key in source ) {
+ const getter = Object.getOwnPropertyDescriptor( source, key )?.get;
+ if ( typeof getter === 'function' ) {
+ Object.defineProperty( target, key, { get: getter } );
+ } else if ( isObject( source[ key ] ) ) {
+ if ( ! target[ key ] ) Object.assign( target, { [ key ]: {} } );
+ deepMerge( target[ key ], source[ key ] );
+ } else {
+ Object.assign( target, { [ key ]: source[ key ] } );
+ }
+ }
+ }
+};
+
+const parseInitialState = () => {
+ const storeTag = document.querySelector(
+ `script[type="application/json"]#wp-interactivity-initial-state`
+ );
+ if ( ! storeTag?.textContent ) return {};
+ try {
+ const initialState = JSON.parse( storeTag.textContent );
+ if ( isObject( initialState ) ) return initialState;
+ throw Error( 'Parsed state is not an object' );
+ } catch ( e ) {
+ // eslint-disable-next-line no-console
+ console.log( e );
+ }
+ return {};
+};
+
+export const stores = new Map();
+const rawStores = new Map();
+const storeLocks = new Map();
+
+const objToProxy = new WeakMap();
+const proxyToNs = new WeakMap();
+const scopeToGetters = new WeakMap();
+
+const proxify = ( obj: any, ns: string ) => {
+ if ( ! objToProxy.has( obj ) ) {
+ const proxy = new Proxy( obj, handlers );
+ objToProxy.set( obj, proxy );
+ proxyToNs.set( proxy, ns );
+ }
+ return objToProxy.get( obj );
+};
+
+const handlers = {
+ get: ( target: any, key: string | symbol, receiver: any ) => {
+ const ns = proxyToNs.get( receiver );
+
+ // Check if the property is a getter and we are inside an scope. If that is
+ // the case, we clone the getter to avoid overwriting the scoped
+ // dependencies of the computed each time that getter runs.
+ const getter = Object.getOwnPropertyDescriptor( target, key )?.get;
+ if ( getter ) {
+ const scope = getScope();
+ if ( scope ) {
+ const getters =
+ scopeToGetters.get( scope ) ||
+ scopeToGetters.set( scope, new Map() ).get( scope );
+ if ( ! getters.has( getter ) ) {
+ getters.set(
+ getter,
+ computed( () => {
+ setNamespace( ns );
+ setScope( scope );
+ try {
+ return getter.call( target );
+ } finally {
+ resetScope();
+ resetNamespace();
+ }
+ } )
+ );
+ }
+ return getters.get( getter ).value;
+ }
+ }
+
+ const result = Reflect.get( target, key, receiver );
+
+ // Check if the proxy is the store root and no key with that name exist. In
+ // that case, return an empty object for the requested key.
+ if ( typeof result === 'undefined' && receiver === stores.get( ns ) ) {
+ const obj = {};
+ Reflect.set( target, key, obj, receiver );
+ return proxify( obj, ns );
+ }
+
+ // Check if the property is a generator. If it is, we turn it into an
+ // asynchronous function where we restore the default namespace and scope
+ // each time it awaits/yields.
+ if ( result?.constructor?.name === 'GeneratorFunction' ) {
+ return async ( ...args: unknown[] ) => {
+ const scope = getScope();
+ const gen: Generator< any > = result( ...args );
+
+ let value: any;
+ let it: IteratorResult< any >;
+
+ while ( true ) {
+ setNamespace( ns );
+ setScope( scope );
+ try {
+ it = gen.next( value );
+ } finally {
+ resetScope();
+ resetNamespace();
+ }
+
+ try {
+ value = await it.value;
+ } catch ( e ) {
+ gen.throw( e );
+ }
+
+ if ( it.done ) break;
+ }
+
+ return value;
+ };
+ }
+
+ // Check if the property is a synchronous function. If it is, set the
+ // default namespace. Synchronous functions always run in the proper scope,
+ // which is set by the Directives component.
+ if ( typeof result === 'function' ) {
+ return ( ...args: unknown[] ) => {
+ setNamespace( ns );
+ try {
+ return result( ...args );
+ } finally {
+ resetNamespace();
+ }
+ };
+ }
+
+ // Check if the property is an object. If it is, proxyify it.
+ if ( isObject( result ) ) return proxify( result, ns );
+
+ return result;
+ },
+};
+interface StoreOptions {
+ /**
+ * Property to block/unblock private store namespaces.
+ *
+ * If the passed value is `true`, it blocks the given namespace, making it
+ * accessible only trough the returned variables of the `store()` call. In
+ * the case a lock string is passed, it also blocks the namespace, but can
+ * be unblocked for other `store()` calls using the same lock string.
+ *
+ * @example
+ * ```
+ * // The store can only be accessed where the `state` const can.
+ * const { state } = store( 'myblock/private', { ... }, { lock: true } );
+ * ```
+ *
+ * @example
+ * ```
+ * // Other modules knowing `SECRET_LOCK_STRING` can access the namespace.
+ * const { state } = store(
+ * 'myblock/private',
+ * { ... },
+ * { lock: 'SECRET_LOCK_STRING' }
+ * );
+ * ```
+ */
+ lock?: boolean | string;
+}
+
+const universalUnlock =
+ 'I acknowledge that using a private store means my plugin will inevitably break on the next store release.';
+
+/**
+ * Extends the Interactivity API global store adding the passed properties to
+ * the given namespace. It also returns stable references to the namespace
+ * content.
+ *
+ * These props typically consist of `state`, which is the reactive part of the
+ * store ― which means that any directive referencing a state property will be
+ * re-rendered anytime it changes ― and function properties like `actions` and
+ * `callbacks`, mostly used for event handlers. These props can then be
+ * referenced by any directive to make the HTML interactive.
+ *
+ * @example
+ * ```js
+ * const { state } = store( 'counter', {
+ * state: {
+ * value: 0,
+ * get double() { return state.value * 2; },
+ * },
+ * actions: {
+ * increment() {
+ * state.value += 1;
+ * },
+ * },
+ * } );
+ * ```
+ *
+ * The code from the example above allows blocks to subscribe and interact with
+ * the store by using directives in the HTML, e.g.:
+ *
+ * ```html
+ *
+ *
+ * 0
+ *
+ *
+ * ```
+ * @param namespace The store namespace to interact with.
+ * @param storePart Properties to add to the store namespace.
+ * @param options Options for the given namespace.
+ *
+ * @return A reference to the namespace content.
+ */
+export function store< S extends object = {} >(
+ namespace: string,
+ storePart?: S,
+ options?: StoreOptions
+): S;
+
+export function store< T extends object >(
+ namespace: string,
+ storePart?: T,
+ options?: StoreOptions
+): T;
+
+export function store(
+ namespace: string,
+ { state = {}, ...block }: any = {},
+ { lock = false }: StoreOptions = {}
+) {
+ if ( ! stores.has( namespace ) ) {
+ // Lock the store if the passed lock is different from the universal
+ // unlock. Once the lock is set (either false, true, or a given string),
+ // it cannot change.
+ if ( lock !== universalUnlock ) {
+ storeLocks.set( namespace, lock );
+ }
+ const rawStore = { state: deepSignal( state ), ...block };
+ const proxiedStore = new Proxy( rawStore, handlers );
+ rawStores.set( namespace, rawStore );
+ stores.set( namespace, proxiedStore );
+ proxyToNs.set( proxiedStore, namespace );
+ } else {
+ // Lock the store if it wasn't locked yet and the passed lock is
+ // different from the universal unlock. If no lock is given, the store
+ // will be public and won't accept any lock from now on.
+ if ( lock !== universalUnlock && ! storeLocks.has( namespace ) ) {
+ storeLocks.set( namespace, lock );
+ } else {
+ const storeLock = storeLocks.get( namespace );
+ const isLockValid =
+ lock === universalUnlock ||
+ ( lock !== true && lock === storeLock );
+
+ if ( ! isLockValid ) {
+ if ( ! storeLock ) {
+ throw Error( 'Cannot lock a public store' );
+ } else {
+ throw Error(
+ 'Cannot unlock a private store with an invalid lock code'
+ );
+ }
+ }
+ }
+
+ const target = rawStores.get( namespace );
+ deepMerge( target, block );
+ deepMerge( target.state, state );
+ }
+
+ return stores.get( namespace );
+}
+
+// Parse and populate the initial state.
+Object.entries( parseInitialState() ).forEach( ( [ namespace, state ] ) => {
+ store( namespace, { state } );
+} );
diff --git a/packages/interactivity/src/vdom.js b/packages/interactivity/src/vdom.js
index 1cf4a91ec1ead5..b1342ac271a8e2 100644
--- a/packages/interactivity/src/vdom.js
+++ b/packages/interactivity/src/vdom.js
@@ -10,6 +10,7 @@ import { directivePrefix as p } from './constants';
const ignoreAttr = `data-${ p }-ignore`;
const islandAttr = `data-${ p }-interactive`;
const fullPrefix = `data-${ p }-`;
+let namespace = null;
// Regular expression for directive parsing.
const directiveParser = new RegExp(
@@ -25,6 +26,12 @@ const directiveParser = new RegExp(
'i' // Case insensitive.
);
+// Regular expression for reference parsing. It can contain a namespace before
+// the reference, separated by `::`, like `some-namespace::state.somePath`.
+// Namespaces can contain any alphanumeric characters, hyphens, underscores or
+// forward slashes. References don't have any restrictions.
+const nsPathRegExp = /^([\w-_\/]+)::(.+)$/;
+
export const hydratedIslands = new WeakSet();
// Recursive function that transforms a DOM tree into vDOM.
@@ -51,8 +58,7 @@ export function toVdom( root ) {
const props = {};
const children = [];
- const directives = {};
- let hasDirectives = false;
+ const directives = [];
let ignore = false;
let island = false;
@@ -64,17 +70,19 @@ export function toVdom( root ) {
) {
if ( n === ignoreAttr ) {
ignore = true;
- } else if ( n === islandAttr ) {
- island = true;
} else {
- hasDirectives = true;
- let val = attributes[ i ].value;
+ let [ ns, value ] = nsPathRegExp
+ .exec( attributes[ i ].value )
+ ?.slice( 1 ) ?? [ null, attributes[ i ].value ];
try {
- val = JSON.parse( val );
+ value = JSON.parse( value );
} catch ( e ) {}
- const [ , prefix, suffix ] = directiveParser.exec( n );
- directives[ prefix ] = directives[ prefix ] || {};
- directives[ prefix ][ suffix || 'default' ] = val;
+ if ( n === islandAttr ) {
+ island = true;
+ namespace = value?.namespace ?? null;
+ } else {
+ directives.push( [ n, ns, value ] );
+ }
}
} else if ( n === 'ref' ) {
continue;
@@ -92,7 +100,22 @@ export function toVdom( root ) {
];
if ( island ) hydratedIslands.add( node );
- if ( hasDirectives ) props.__directives = directives;
+ if ( directives.length ) {
+ props.__directives = directives.reduce(
+ ( obj, [ name, ns, value ] ) => {
+ const [ , prefix, suffix = 'default' ] =
+ directiveParser.exec( name );
+ if ( ! obj[ prefix ] ) obj[ prefix ] = [];
+ obj[ prefix ].push( {
+ namespace: ns ?? namespace,
+ value,
+ suffix,
+ } );
+ return obj;
+ },
+ {}
+ );
+ }
let child = treeWalker.firstChild();
if ( child ) {
diff --git a/packages/interactivity/tsconfig.json b/packages/interactivity/tsconfig.json
new file mode 100644
index 00000000000000..bcb26904e1d09d
--- /dev/null
+++ b/packages/interactivity/tsconfig.json
@@ -0,0 +1,10 @@
+{
+ "extends": "../../tsconfig.base.json",
+ "compilerOptions": {
+ "rootDir": "src",
+ "declarationDir": "build-types",
+ "checkJs": false,
+ "strict": false
+ },
+ "include": [ "src/**/*" ]
+}
diff --git a/packages/interface/CHANGELOG.md b/packages/interface/CHANGELOG.md
index 9c7370291eef60..e160bb6cef4b99 100644
--- a/packages/interface/CHANGELOG.md
+++ b/packages/interface/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 5.24.0 (2023-11-29)
+
## 5.23.0 (2023-11-16)
## 5.22.0 (2023-11-02)
diff --git a/packages/interface/package.json b/packages/interface/package.json
index 429d2ad59d0fdb..f59c65af7366be 100644
--- a/packages/interface/package.json
+++ b/packages/interface/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/interface",
- "version": "5.23.0",
+ "version": "5.24.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/interface/src/components/complementary-area/index.js b/packages/interface/src/components/complementary-area/index.js
index 887c447d9291e4..af6456bec09663 100644
--- a/packages/interface/src/components/complementary-area/index.js
+++ b/packages/interface/src/components/complementary-area/index.js
@@ -182,6 +182,7 @@ function ComplementaryArea( {
icon={ showIconLabels ? check : icon }
showTooltip={ ! showIconLabels }
variant={ showIconLabels ? 'tertiary' : undefined }
+ size="compact"
/>
) }
diff --git a/packages/interface/src/components/more-menu-dropdown/index.js b/packages/interface/src/components/more-menu-dropdown/index.js
index d6a32d57b05f86..dafa4b2e4b3b41 100644
--- a/packages/interface/src/components/more-menu-dropdown/index.js
+++ b/packages/interface/src/components/more-menu-dropdown/index.js
@@ -38,6 +38,7 @@ export default function MoreMenuDropdown( {
toggleProps={ {
tooltipPosition: 'bottom',
...toggleProps,
+ size: 'compact',
} }
>
{ ( onClose ) => children( onClose ) }
diff --git a/packages/interface/src/components/pinned-items/style.scss b/packages/interface/src/components/pinned-items/style.scss
index 693750644c62a1..66062b7fa3dbbf 100644
--- a/packages/interface/src/components/pinned-items/style.scss
+++ b/packages/interface/src/components/pinned-items/style.scss
@@ -26,7 +26,7 @@
}
// Gap between pinned items.
- gap: $grid-unit-05;
+ gap: $grid-unit-10;
// Account for larger grid from parent container gap.
margin-right: -$grid-unit-05;
diff --git a/packages/interface/src/components/preferences-modal/README.md b/packages/interface/src/components/preferences-modal/README.md
index 96ecdf03dcc136..f873ccf297ec12 100644
--- a/packages/interface/src/components/preferences-modal/README.md
+++ b/packages/interface/src/components/preferences-modal/README.md
@@ -28,11 +28,11 @@ function MyEditorPreferencesModal() {
'Review settings, such as visibility and tags.'
) }
label={ __(
- 'Include pre-publish checklist'
+ 'Enable pre-publish flow'
) }
/>
- )
+ )
}
{
@@ -47,7 +47,7 @@ function MyEditorPreferencesModal() {
>
// Section content here
- )
+ )
}
]
diff --git a/packages/is-shallow-equal/CHANGELOG.md b/packages/is-shallow-equal/CHANGELOG.md
index 9f5db485bb5405..192a27bc9fabed 100644
--- a/packages/is-shallow-equal/CHANGELOG.md
+++ b/packages/is-shallow-equal/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 4.47.0 (2023-11-29)
+
## 4.46.0 (2023-11-16)
## 4.45.0 (2023-11-02)
diff --git a/packages/is-shallow-equal/package.json b/packages/is-shallow-equal/package.json
index ffc4e97590bc97..0603d2b1499312 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": "4.46.0",
+ "version": "4.47.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/CHANGELOG.md b/packages/jest-console/CHANGELOG.md
index 4032ec50a5ebfd..75fe088a70e767 100644
--- a/packages/jest-console/CHANGELOG.md
+++ b/packages/jest-console/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 7.18.0 (2023-11-29)
+
## 7.17.0 (2023-11-16)
## 7.16.0 (2023-11-02)
diff --git a/packages/jest-console/package.json b/packages/jest-console/package.json
index 1dfb50d5bd59c2..2f2f062c4f0996 100644
--- a/packages/jest-console/package.json
+++ b/packages/jest-console/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/jest-console",
- "version": "7.17.0",
+ "version": "7.18.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/CHANGELOG.md b/packages/jest-preset-default/CHANGELOG.md
index 30db9b59cca7c3..de33e4d54e133a 100644
--- a/packages/jest-preset-default/CHANGELOG.md
+++ b/packages/jest-preset-default/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 11.18.0 (2023-11-29)
+
## 11.17.0 (2023-11-16)
## 11.16.0 (2023-11-02)
diff --git a/packages/jest-preset-default/package.json b/packages/jest-preset-default/package.json
index 7e3b0812e3d067..061feb00ab9e4f 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": "11.17.0",
+ "version": "11.18.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/CHANGELOG.md b/packages/jest-puppeteer-axe/CHANGELOG.md
index 6755f2d3f41365..55961c5abf1196 100644
--- a/packages/jest-puppeteer-axe/CHANGELOG.md
+++ b/packages/jest-puppeteer-axe/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 6.18.0 (2023-11-29)
+
## 6.17.0 (2023-11-16)
## 6.16.0 (2023-11-02)
diff --git a/packages/jest-puppeteer-axe/package.json b/packages/jest-puppeteer-axe/package.json
index eed831e07d801f..9b6b6d66a91f08 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": "6.17.0",
+ "version": "6.18.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/CHANGELOG.md b/packages/keyboard-shortcuts/CHANGELOG.md
index f6fb39c60931c0..1fb3ec9ea2b005 100644
--- a/packages/keyboard-shortcuts/CHANGELOG.md
+++ b/packages/keyboard-shortcuts/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 4.24.0 (2023-11-29)
+
## 4.23.0 (2023-11-16)
## 4.22.0 (2023-11-02)
diff --git a/packages/keyboard-shortcuts/package.json b/packages/keyboard-shortcuts/package.json
index dfe02e60773679..ec4b1f3e108998 100644
--- a/packages/keyboard-shortcuts/package.json
+++ b/packages/keyboard-shortcuts/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/keyboard-shortcuts",
- "version": "4.23.0",
+ "version": "4.24.0",
"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 382510e52e3676..3d24d2c0cb2e0c 100644
--- a/packages/keycodes/CHANGELOG.md
+++ b/packages/keycodes/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 3.47.0 (2023-11-29)
+
## 3.46.0 (2023-11-16)
## 3.45.0 (2023-11-02)
diff --git a/packages/keycodes/package.json b/packages/keycodes/package.json
index 4ca561d68b83d1..c98ccc24cb5d84 100644
--- a/packages/keycodes/package.json
+++ b/packages/keycodes/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/keycodes",
- "version": "3.46.0",
+ "version": "3.47.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/CHANGELOG.md b/packages/lazy-import/CHANGELOG.md
index a092b101c7fe43..352132ddaa0146 100644
--- a/packages/lazy-import/CHANGELOG.md
+++ b/packages/lazy-import/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 1.34.0 (2023-11-29)
+
## 1.33.0 (2023-11-16)
## 1.32.0 (2023-11-02)
diff --git a/packages/lazy-import/package.json b/packages/lazy-import/package.json
index 62320482ae15bf..b490a38eccf86f 100644
--- a/packages/lazy-import/package.json
+++ b/packages/lazy-import/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/lazy-import",
- "version": "1.33.0",
+ "version": "1.34.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/CHANGELOG.md b/packages/list-reusable-blocks/CHANGELOG.md
index 3c16e7ca341d0a..5946c665d11d62 100644
--- a/packages/list-reusable-blocks/CHANGELOG.md
+++ b/packages/list-reusable-blocks/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 4.24.0 (2023-11-29)
+
## 4.23.0 (2023-11-16)
## 4.22.0 (2023-11-02)
diff --git a/packages/list-reusable-blocks/package.json b/packages/list-reusable-blocks/package.json
index 0feaddf684b5fc..29a0ab2479d926 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": "4.23.0",
+ "version": "4.24.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/CHANGELOG.md b/packages/media-utils/CHANGELOG.md
index 791752726da0e9..0329f2ea74c53c 100644
--- a/packages/media-utils/CHANGELOG.md
+++ b/packages/media-utils/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 4.38.0 (2023-11-29)
+
## 4.37.0 (2023-11-16)
## 4.36.0 (2023-11-02)
diff --git a/packages/media-utils/package.json b/packages/media-utils/package.json
index 93ed96c45246a9..1abe16387376c0 100644
--- a/packages/media-utils/package.json
+++ b/packages/media-utils/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/media-utils",
- "version": "4.37.0",
+ "version": "4.38.0",
"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 0bb727268bc07b..12abde127dc9ec 100644
--- a/packages/notices/CHANGELOG.md
+++ b/packages/notices/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 4.15.0 (2023-11-29)
+
## 4.14.0 (2023-11-16)
## 4.13.0 (2023-11-02)
diff --git a/packages/notices/package.json b/packages/notices/package.json
index 9250d196365c46..b5fdfe0377dabb 100644
--- a/packages/notices/package.json
+++ b/packages/notices/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/notices",
- "version": "4.14.0",
+ "version": "4.15.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/CHANGELOG.md b/packages/npm-package-json-lint-config/CHANGELOG.md
index c4c811e7396d7e..aa45ed933d69eb 100644
--- a/packages/npm-package-json-lint-config/CHANGELOG.md
+++ b/packages/npm-package-json-lint-config/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 4.32.0 (2023-11-29)
+
## 4.31.0 (2023-11-16)
## 4.30.0 (2023-11-02)
diff --git a/packages/npm-package-json-lint-config/package.json b/packages/npm-package-json-lint-config/package.json
index a62009f5d88a03..09df294498cdbb 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": "4.31.0",
+ "version": "4.32.0",
"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 d3fbfa4a703809..959e582b402946 100644
--- a/packages/nux/CHANGELOG.md
+++ b/packages/nux/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 8.9.0 (2023-11-29)
+
## 8.8.0 (2023-11-16)
## 8.7.0 (2023-11-02)
diff --git a/packages/nux/package.json b/packages/nux/package.json
index 12f659accc9503..e61e63703c5d6d 100644
--- a/packages/nux/package.json
+++ b/packages/nux/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/nux",
- "version": "8.8.0",
+ "version": "8.9.0",
"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 30df46641ff4cd..416d2bfd7c22c7 100644
--- a/packages/patterns/CHANGELOG.md
+++ b/packages/patterns/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 1.8.0 (2023-11-29)
+
## 1.7.0 (2023-11-16)
## 1.6.0 (2023-11-02)
diff --git a/packages/patterns/package.json b/packages/patterns/package.json
index bab11059bf92c9..2fa13bc3fdddfd 100644
--- a/packages/patterns/package.json
+++ b/packages/patterns/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/patterns",
- "version": "1.7.0",
+ "version": "1.8.0",
"description": "Management of user pattern editing.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
@@ -44,7 +44,8 @@
"@wordpress/icons": "file:../icons",
"@wordpress/notices": "file:../notices",
"@wordpress/private-apis": "file:../private-apis",
- "@wordpress/url": "file:../url"
+ "@wordpress/url": "file:../url",
+ "nanoid": "^3.3.4"
},
"peerDependencies": {
"react": "^18.0.0",
diff --git a/packages/patterns/src/components/category-selector.js b/packages/patterns/src/components/category-selector.js
index 7f00350e278ecf..fdd56f159b0921 100644
--- a/packages/patterns/src/components/category-selector.js
+++ b/packages/patterns/src/components/category-selector.js
@@ -61,6 +61,7 @@ export default function CategorySelector( {
tokenizeOnBlur
__experimentalExpandOnFocus
__next40pxDefaultSize
+ __nextHasNoMarginBottom
/>
);
}
diff --git a/packages/patterns/src/components/create-pattern-modal.js b/packages/patterns/src/components/create-pattern-modal.js
index f5e6e85b8602d2..b12e4c9d21bedf 100644
--- a/packages/patterns/src/components/create-pattern-modal.js
+++ b/packages/patterns/src/components/create-pattern-modal.js
@@ -166,12 +166,13 @@ export default function CreatePatternModal( {
>
{
@@ -197,6 +198,7 @@ export default function CreatePatternModal( {
/>
{
onClose();
@@ -207,6 +209,7 @@ export default function CreatePatternModal( {
+
+
+ { __( 'Synced attributes' ) }
+
+ { Object.entries( syncedAttributes ).map(
+ ( [ attributeName, label ] ) => (
+ {
+ updateConnections( attributeName, isChecked );
+ } }
+ />
+ )
+ ) }
+
+
+ );
+}
+
+export default PartialSyncingControls;
diff --git a/packages/patterns/src/components/style.scss b/packages/patterns/src/components/style.scss
index 12a6b380f646c8..e913c924a2149c 100644
--- a/packages/patterns/src/components/style.scss
+++ b/packages/patterns/src/components/style.scss
@@ -7,32 +7,27 @@
}
.patterns-menu-items__convert-modal-categories {
- width: 100%;
position: relative;
- min-height: 40px;
}
- .components-form-token-field__suggestions-list {
+
+ .components-form-token-field__suggestions-list:not(:empty) {
position: absolute;
+ border: $border-width solid var(--wp-admin-theme-color);
+ border-bottom-left-radius: $radius-block-ui;
+ border-bottom-right-radius: $radius-block-ui;
+ box-shadow: 0 0 0.5px 0.5px var(--wp-admin-theme-color);
box-sizing: border-box;
z-index: 1;
background-color: $white;
- // Account for the border width of the token field.
- width: calc(100% + 2px);
+ width: calc(100% + 2px); // Account for the border width of the token field.
left: -1px;
min-width: initial;
- border: 1px solid var(--wp-admin-theme-color);
- border-top: none;
- box-shadow: 0 0 0 0.5px var(--wp-admin-theme-color);
- border-bottom-left-radius: 2px;
- border-bottom-right-radius: 2px;
+ max-height: $grid-unit-60 * 2; // Adjust to not cover the save button, showing three items.
}
}
.patterns-create-modal__name-input input[type="text"] {
- // Match the minimal height of the category selector.
- min-height: 40px;
- // Override the default 1px margin-x.
- margin: 0;
+ margin: 0; // Override the default 1px margin-x.
}
.patterns-rename-pattern-category-modal__validation-message {
diff --git a/packages/patterns/src/constants.js b/packages/patterns/src/constants.js
index 465970b17b7aae..3e533d834fd75c 100644
--- a/packages/patterns/src/constants.js
+++ b/packages/patterns/src/constants.js
@@ -1,3 +1,8 @@
+/**
+ * WordPress dependencies
+ */
+import { __ } from '@wordpress/i18n';
+
export const PATTERN_TYPES = {
theme: 'pattern',
user: 'wp_block',
@@ -14,3 +19,8 @@ export const PATTERN_SYNC_TYPES = {
full: 'fully',
unsynced: 'unsynced',
};
+
+// TODO: This should not be hardcoded. Maybe there should be a config and/or an UI.
+export const PARTIAL_SYNCING_SUPPORTED_BLOCKS = {
+ 'core/paragraph': { content: __( 'Content' ) },
+};
diff --git a/packages/patterns/src/private-apis.js b/packages/patterns/src/private-apis.js
index 770a78fd4fa9de..b357efb1bc107a 100644
--- a/packages/patterns/src/private-apis.js
+++ b/packages/patterns/src/private-apis.js
@@ -7,12 +7,14 @@ import DuplicatePatternModal from './components/duplicate-pattern-modal';
import RenamePatternModal from './components/rename-pattern-modal';
import PatternsMenuItems from './components';
import RenamePatternCategoryModal from './components/rename-pattern-category-modal';
+import PartialSyncingControls from './components/partial-syncing-controls';
import {
PATTERN_TYPES,
PATTERN_DEFAULT_CATEGORY,
PATTERN_USER_CATEGORY,
EXCLUDED_PATTERN_SOURCES,
PATTERN_SYNC_TYPES,
+ PARTIAL_SYNCING_SUPPORTED_BLOCKS,
} from './constants';
export const privateApis = {};
@@ -22,9 +24,11 @@ lock( privateApis, {
RenamePatternModal,
PatternsMenuItems,
RenamePatternCategoryModal,
+ PartialSyncingControls,
PATTERN_TYPES,
PATTERN_DEFAULT_CATEGORY,
PATTERN_USER_CATEGORY,
EXCLUDED_PATTERN_SOURCES,
PATTERN_SYNC_TYPES,
+ PARTIAL_SYNCING_SUPPORTED_BLOCKS,
} );
diff --git a/packages/plugins/CHANGELOG.md b/packages/plugins/CHANGELOG.md
index 7d6ad16901b7b2..27888ee6a6cfbd 100644
--- a/packages/plugins/CHANGELOG.md
+++ b/packages/plugins/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 6.15.0 (2023-11-29)
+
## 6.14.0 (2023-11-16)
## 6.13.0 (2023-11-02)
diff --git a/packages/plugins/package.json b/packages/plugins/package.json
index 98448a216daeab..f28b5e46de9077 100644
--- a/packages/plugins/package.json
+++ b/packages/plugins/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/plugins",
- "version": "6.14.0",
+ "version": "6.15.0",
"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 28088d4cfa0ae2..8c1512fb1d7e84 100644
--- a/packages/postcss-plugins-preset/CHANGELOG.md
+++ b/packages/postcss-plugins-preset/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 4.31.0 (2023-11-29)
+
## 4.30.0 (2023-11-16)
## 4.29.0 (2023-11-02)
diff --git a/packages/postcss-plugins-preset/package.json b/packages/postcss-plugins-preset/package.json
index bee5573d2f8832..8f697aee2d0826 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": "4.30.0",
+ "version": "4.31.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/CHANGELOG.md b/packages/postcss-themes/CHANGELOG.md
index 1b26ac952c41e0..4948f7afbfae42 100644
--- a/packages/postcss-themes/CHANGELOG.md
+++ b/packages/postcss-themes/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 5.30.0 (2023-11-29)
+
## 5.29.0 (2023-11-16)
## 5.28.0 (2023-11-02)
diff --git a/packages/postcss-themes/package.json b/packages/postcss-themes/package.json
index 1fd640b1b3f25e..7f0d39b7a5b171 100644
--- a/packages/postcss-themes/package.json
+++ b/packages/postcss-themes/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/postcss-themes",
- "version": "5.29.0",
+ "version": "5.30.0",
"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 531a57d6130204..11066a94f0dcde 100644
--- a/packages/preferences-persistence/CHANGELOG.md
+++ b/packages/preferences-persistence/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 1.39.0 (2023-11-29)
+
## 1.38.0 (2023-11-16)
## 1.37.0 (2023-11-02)
diff --git a/packages/preferences-persistence/package.json b/packages/preferences-persistence/package.json
index 8137c703d6f336..ce3375ad43d67e 100644
--- a/packages/preferences-persistence/package.json
+++ b/packages/preferences-persistence/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/preferences-persistence",
- "version": "1.38.0",
+ "version": "1.39.0",
"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 29c48cd51c787a..dc6c84ad6cd5b4 100644
--- a/packages/preferences/CHANGELOG.md
+++ b/packages/preferences/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 3.24.0 (2023-11-29)
+
## 3.23.0 (2023-11-16)
## 3.22.0 (2023-11-02)
diff --git a/packages/preferences/package.json b/packages/preferences/package.json
index 78a0ed29aa3547..c2c81c22f782af 100644
--- a/packages/preferences/package.json
+++ b/packages/preferences/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/preferences",
- "version": "3.23.0",
+ "version": "3.24.0",
"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 3fb6aa431973fb..2ef95f2fb1d02f 100644
--- a/packages/prettier-config/CHANGELOG.md
+++ b/packages/prettier-config/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 3.4.0 (2023-11-29)
+
## 3.3.0 (2023-11-16)
## 3.2.0 (2023-11-02)
diff --git a/packages/prettier-config/package.json b/packages/prettier-config/package.json
index f97e04f7fee6c5..fc7a79934737f0 100644
--- a/packages/prettier-config/package.json
+++ b/packages/prettier-config/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/prettier-config",
- "version": "3.3.0",
+ "version": "3.4.0",
"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 0c24a126097eea..b18081f02bf16f 100644
--- a/packages/primitives/CHANGELOG.md
+++ b/packages/primitives/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 3.45.0 (2023-11-29)
+
## 3.44.0 (2023-11-16)
## 3.43.0 (2023-11-02)
diff --git a/packages/primitives/package.json b/packages/primitives/package.json
index e3e99b3d6d0288..226b6f7998c0a9 100644
--- a/packages/primitives/package.json
+++ b/packages/primitives/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/primitives",
- "version": "3.44.0",
+ "version": "3.45.0",
"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 c9e8b4c7e566cf..df26c90b131aa5 100644
--- a/packages/priority-queue/CHANGELOG.md
+++ b/packages/priority-queue/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 2.47.0 (2023-11-29)
+
## 2.46.0 (2023-11-16)
## 2.45.0 (2023-11-02)
diff --git a/packages/priority-queue/package.json b/packages/priority-queue/package.json
index 3e3ecb57872b1f..cad513efb2583c 100644
--- a/packages/priority-queue/package.json
+++ b/packages/priority-queue/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/priority-queue",
- "version": "2.46.0",
+ "version": "2.47.0",
"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 65380c088560dd..16cfc9f3bd5a04 100644
--- a/packages/private-apis/CHANGELOG.md
+++ b/packages/private-apis/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 0.29.0 (2023-11-29)
+
## 0.28.0 (2023-11-16)
## 0.27.0 (2023-11-02)
diff --git a/packages/private-apis/package.json b/packages/private-apis/package.json
index be77c8334dcb42..aa19e14d284ea9 100644
--- a/packages/private-apis/package.json
+++ b/packages/private-apis/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/private-apis",
- "version": "0.28.0",
+ "version": "0.29.0",
"description": "Internal experimental APIs for WordPress core.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/private-apis/src/implementation.js b/packages/private-apis/src/implementation.js
index 400d84c8cf584d..a7da5bc9726554 100644
--- a/packages/private-apis/src/implementation.js
+++ b/packages/private-apis/src/implementation.js
@@ -27,6 +27,7 @@ const CORE_MODULES_USING_PRIVATE_APIS = [
'@wordpress/patterns',
'@wordpress/reusable-blocks',
'@wordpress/router',
+ '@wordpress/dataviews',
];
/**
diff --git a/packages/project-management-automation/CHANGELOG.md b/packages/project-management-automation/CHANGELOG.md
index 945fac3a5cb1b0..5ae304b4c04780 100644
--- a/packages/project-management-automation/CHANGELOG.md
+++ b/packages/project-management-automation/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 1.46.0 (2023-11-29)
+
## 1.45.0 (2023-11-16)
## 1.44.0 (2023-11-02)
diff --git a/packages/project-management-automation/package.json b/packages/project-management-automation/package.json
index b4c0389872dcdf..613f580fb0e5f2 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": "1.45.0",
+ "version": "1.46.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/CHANGELOG.md b/packages/react-i18n/CHANGELOG.md
index 2ec98e2ed0eae4..d6acc305c22f39 100644
--- a/packages/react-i18n/CHANGELOG.md
+++ b/packages/react-i18n/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 3.45.0 (2023-11-29)
+
## 3.44.0 (2023-11-16)
## 3.43.0 (2023-11-02)
diff --git a/packages/react-i18n/package.json b/packages/react-i18n/package.json
index 662d8e288bcc07..c6a953397ef99e 100644
--- a/packages/react-i18n/package.json
+++ b/packages/react-i18n/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/react-i18n",
- "version": "3.44.0",
+ "version": "3.45.0",
"description": "React bindings for @wordpress/i18n.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/react-native-bridge/common/gutenberg-web-single-block/editor-style-overrides.css b/packages/react-native-bridge/common/gutenberg-web-single-block/editor-style-overrides.css
index f8f2e8fe2b4cde..b0ce8f3dc948d5 100644
--- a/packages/react-native-bridge/common/gutenberg-web-single-block/editor-style-overrides.css
+++ b/packages/react-native-bridge/common/gutenberg-web-single-block/editor-style-overrides.css
@@ -8,7 +8,7 @@
display: none;
}
-.edit-post-visual-editor__post-title-wrapper {
+.editor-editor-canvas__post-title-wrapper {
display: none;
}
diff --git a/packages/react-native-editor/CHANGELOG.md b/packages/react-native-editor/CHANGELOG.md
index 644554ae763eec..ea7b841879c4fb 100644
--- a/packages/react-native-editor/CHANGELOG.md
+++ b/packages/react-native-editor/CHANGELOG.md
@@ -10,6 +10,7 @@ For each user feature we should also add a importance categorization label to i
-->
## Unreleased
+- [*] [internal] Move InserterButton from components package to block-editor package [#56494]
## 1.109.2
- [**] Fix issue related to text color format and receiving in rare cases an undefined ref from `RichText` component [#56686]
diff --git a/packages/readable-js-assets-webpack-plugin/CHANGELOG.md b/packages/readable-js-assets-webpack-plugin/CHANGELOG.md
index 73466451aaad3d..f266e64d9d0f80 100644
--- a/packages/readable-js-assets-webpack-plugin/CHANGELOG.md
+++ b/packages/readable-js-assets-webpack-plugin/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 2.30.0 (2023-11-29)
+
## 2.29.0 (2023-11-16)
## 2.28.0 (2023-11-02)
diff --git a/packages/readable-js-assets-webpack-plugin/package.json b/packages/readable-js-assets-webpack-plugin/package.json
index 93a525c127bc0c..d7cf02db881c37 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": "2.29.0",
+ "version": "2.30.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/CHANGELOG.md b/packages/redux-routine/CHANGELOG.md
index 0bd8a9e3143f61..d39cab61e6dd97 100644
--- a/packages/redux-routine/CHANGELOG.md
+++ b/packages/redux-routine/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 4.47.0 (2023-11-29)
+
## 4.46.0 (2023-11-16)
## 4.45.0 (2023-11-02)
diff --git a/packages/redux-routine/package.json b/packages/redux-routine/package.json
index 09d7b16795ae28..3dbd8557a6a609 100644
--- a/packages/redux-routine/package.json
+++ b/packages/redux-routine/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/redux-routine",
- "version": "4.46.0",
+ "version": "4.47.0",
"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 c8208c76e0b747..15a11093d280ca 100644
--- a/packages/reusable-blocks/CHANGELOG.md
+++ b/packages/reusable-blocks/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 4.24.0 (2023-11-29)
+
## 4.23.0 (2023-11-16)
## 4.22.0 (2023-11-02)
diff --git a/packages/reusable-blocks/package.json b/packages/reusable-blocks/package.json
index f21c486014fc8c..2ab00edaba81ad 100644
--- a/packages/reusable-blocks/package.json
+++ b/packages/reusable-blocks/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/reusable-blocks",
- "version": "4.23.0",
+ "version": "4.24.0",
"description": "Reusable blocks utilities.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/reusable-blocks/src/components/reusable-blocks-menu-items/reusable-block-convert-button.js b/packages/reusable-blocks/src/components/reusable-blocks-menu-items/reusable-block-convert-button.js
index bb871b9c3153d0..cf8b3d96c8d7e1 100644
--- a/packages/reusable-blocks/src/components/reusable-blocks-menu-items/reusable-block-convert-button.js
+++ b/packages/reusable-blocks/src/components/reusable-blocks-menu-items/reusable-block-convert-button.js
@@ -183,14 +183,13 @@ export default function ReusableBlockConvertButton( {
onChange={ setTitle }
placeholder={ __( 'My pattern' ) }
/>
-
{
diff --git a/packages/rich-text/CHANGELOG.md b/packages/rich-text/CHANGELOG.md
index 46275b44ca2a97..363ba40911fc65 100644
--- a/packages/rich-text/CHANGELOG.md
+++ b/packages/rich-text/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 6.24.0 (2023-11-29)
+
## 6.23.0 (2023-11-16)
## 6.22.0 (2023-11-02)
diff --git a/packages/rich-text/package.json b/packages/rich-text/package.json
index 4c2fe8e32adc9c..d5cfb022b662c3 100644
--- a/packages/rich-text/package.json
+++ b/packages/rich-text/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/rich-text",
- "version": "6.23.0",
+ "version": "6.24.0",
"description": "Rich text value and manipulation API.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/packages/rich-text/src/component/index.js b/packages/rich-text/src/component/index.js
index 87e57e49e4333e..0e9291b7a5e03d 100644
--- a/packages/rich-text/src/component/index.js
+++ b/packages/rich-text/src/component/index.js
@@ -71,7 +71,9 @@ export function useRichText( {
function setRecordFromProps() {
_value.current = value;
record.current = create( {
- html: preserveWhiteSpace ? value : collapseWhiteSpace( value ),
+ html: preserveWhiteSpace
+ ? value
+ : collapseWhiteSpace( typeof value === 'string' ? value : '' ),
} );
if ( disableFormats ) {
record.current.formats = Array( value.length );
diff --git a/packages/rich-text/src/register-format-type.js b/packages/rich-text/src/register-format-type.js
index b2dd048d79e6fb..c8aa45f022154c 100644
--- a/packages/rich-text/src/register-format-type.js
+++ b/packages/rich-text/src/register-format-type.js
@@ -71,9 +71,9 @@ export function registerFormatType( name, settings ) {
return;
}
- if ( ! /^[_a-zA-Z]+[a-zA-Z0-9-]*$/.test( settings.className ) ) {
+ if ( ! /^[_a-zA-Z]+[a-zA-Z0-9_-]*$/.test( settings.className ) ) {
window.console.error(
- 'A class name must begin with a letter, followed by any number of hyphens, letters, or numbers.'
+ 'A class name must begin with a letter, followed by any number of hyphens, underscores, letters, or numbers.'
);
return;
}
diff --git a/packages/rich-text/src/test/register-format-type.js b/packages/rich-text/src/test/register-format-type.js
index 0f5c16eabf2323..a586e47945dd08 100644
--- a/packages/rich-text/src/test/register-format-type.js
+++ b/packages/rich-text/src/test/register-format-type.js
@@ -171,7 +171,7 @@ describe( 'registerFormatType', () => {
className: 'invalid class name',
} );
expect( console ).toHaveErroredWith(
- 'A class name must begin with a letter, followed by any number of hyphens, letters, or numbers.'
+ 'A class name must begin with a letter, followed by any number of hyphens, underscores, letters, or numbers.'
);
expect( format ).toBeUndefined();
} );
diff --git a/packages/router/CHANGELOG.md b/packages/router/CHANGELOG.md
index e2766c9819b3ef..5ab30cce439239 100644
--- a/packages/router/CHANGELOG.md
+++ b/packages/router/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 0.16.0 (2023-11-29)
+
## 0.15.0 (2023-11-16)
## 0.14.0 (2023-11-02)
diff --git a/packages/router/package.json b/packages/router/package.json
index ae8eb364202e27..d74bf2c233627d 100644
--- a/packages/router/package.json
+++ b/packages/router/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/router",
- "version": "0.15.0",
+ "version": "0.16.0",
"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 bf48542f5fc019..7ad87c315df80b 100644
--- a/packages/scripts/CHANGELOG.md
+++ b/packages/scripts/CHANGELOG.md
@@ -2,6 +2,16 @@
## Unreleased
+### Bug Fix
+
+- Fix CSS imports not minified ([#56516](https://github.com/WordPress/gutenberg/pull/56516)).
+
+## 26.18.0 (2023-11-29)
+
+### Internal
+
+- The bundled `jest-dev-server` dependency has been updated from `^6.0.2` to `^9.0.1` ([#33287](https://github.com/WordPress/gutenberg/pull/33287)).
+
## 26.17.0 (2023-11-16)
## 26.16.0 (2023-11-02)
diff --git a/packages/scripts/config/jest-environment-puppeteer/global.js b/packages/scripts/config/jest-environment-puppeteer/global.js
index cbac21951c700e..1be79ffd89c668 100644
--- a/packages/scripts/config/jest-environment-puppeteer/global.js
+++ b/packages/scripts/config/jest-environment-puppeteer/global.js
@@ -30,8 +30,8 @@ const chalk = require( 'chalk' );
const { readConfig, getPuppeteer } = require( './config' );
let browser;
-
let didAlreadyRunInWatchMode = false;
+let servers = [];
async function setup( jestConfig = {} ) {
const config = await readConfig();
@@ -51,7 +51,7 @@ async function setup( jestConfig = {} ) {
if ( config.server ) {
try {
- await setupServer( config.server );
+ servers = await setupServer( config.server );
} catch ( error ) {
const { error: printError } = console;
if ( error.code === ERROR_TIMEOUT ) {
@@ -89,7 +89,7 @@ async function teardown( jestConfig = {} ) {
}
if ( ! jestConfig.watch && ! jestConfig.watchAll ) {
- await teardownServer();
+ await teardownServer( servers );
}
}
diff --git a/packages/scripts/config/webpack.config.js b/packages/scripts/config/webpack.config.js
index 05b37945795a7b..1e060d0e142c91 100644
--- a/packages/scripts/config/webpack.config.js
+++ b/packages/scripts/config/webpack.config.js
@@ -69,6 +69,7 @@ const cssLoaders = [
{
loader: require.resolve( 'css-loader' ),
options: {
+ importLoaders: 1,
sourceMap: ! isProduction,
modules: {
auto: true,
diff --git a/packages/scripts/package.json b/packages/scripts/package.json
index 2a740ec41c6ab8..1002c1817b4025 100644
--- a/packages/scripts/package.json
+++ b/packages/scripts/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/scripts",
- "version": "26.17.0",
+ "version": "26.18.0",
"description": "Collection of reusable scripts for WordPress development.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
@@ -63,7 +63,7 @@
"fast-glob": "^3.2.7",
"filenamify": "^4.2.0",
"jest": "^29.6.2",
- "jest-dev-server": "^6.0.2",
+ "jest-dev-server": "^9.0.1",
"jest-environment-jsdom": "^29.6.2",
"jest-environment-node": "^29.6.2",
"markdownlint-cli": "^0.31.1",
diff --git a/packages/scripts/scripts/test-playwright.js b/packages/scripts/scripts/test-playwright.js
index 71bc6a63320cf1..4a8b0762336abd 100644
--- a/packages/scripts/scripts/test-playwright.js
+++ b/packages/scripts/scripts/test-playwright.js
@@ -24,21 +24,28 @@ const {
hasProjectFile,
hasArgInCLI,
getArgsFromCLI,
+ getAsBooleanFromENV,
} = require( '../utils' );
-const result = spawn(
- 'node',
- [
- path.resolve( require.resolve( 'playwright-core' ), '..', 'cli.js' ),
- 'install',
- ],
- {
- stdio: 'inherit',
- }
-);
+if ( ! getAsBooleanFromENV( 'PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD' ) ) {
+ const result = spawn(
+ 'node',
+ [
+ path.resolve(
+ require.resolve( 'playwright-core' ),
+ '..',
+ 'cli.js'
+ ),
+ 'install',
+ ],
+ {
+ stdio: 'inherit',
+ }
+ );
-if ( result.status > 0 ) {
- process.exit( result.status );
+ if ( result.status > 0 ) {
+ process.exit( result.status );
+ }
}
const config =
diff --git a/packages/scripts/utils/index.js b/packages/scripts/utils/index.js
index 870c2423361b53..ae93160381df44 100644
--- a/packages/scripts/utils/index.js
+++ b/packages/scripts/utils/index.js
@@ -1,6 +1,7 @@
/**
* Internal dependencies
*/
+const { getAsBooleanFromENV } = require( './process' );
const {
getArgFromCLI,
getArgsFromCLI,
@@ -28,6 +29,7 @@ const { getPackageProp, hasPackageProp } = require( './package' );
module.exports = {
fromProjectRoot,
fromConfigRoot,
+ getAsBooleanFromENV,
getArgFromCLI,
getArgsFromCLI,
getFileArgsFromCLI,
diff --git a/packages/scripts/utils/process.js b/packages/scripts/utils/process.js
index de07d36a8b59c4..48b884dc085bce 100644
--- a/packages/scripts/utils/process.js
+++ b/packages/scripts/utils/process.js
@@ -1,3 +1,8 @@
+const getAsBooleanFromENV = ( name ) => {
+ const value = process.env[ name ];
+ return !! value && value !== 'false' && value !== '0';
+};
+
const getArgsFromCLI = ( excludePrefixes ) => {
const args = process.argv.slice( 2 );
if ( excludePrefixes ) {
@@ -12,6 +17,7 @@ const getArgsFromCLI = ( excludePrefixes ) => {
module.exports = {
exit: process.exit,
+ getAsBooleanFromENV,
getArgsFromCLI,
getCurrentWorkingDirectory: process.cwd,
};
diff --git a/packages/server-side-render/CHANGELOG.md b/packages/server-side-render/CHANGELOG.md
index 739fa28341ef16..6f036a521989fc 100644
--- a/packages/server-side-render/CHANGELOG.md
+++ b/packages/server-side-render/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 4.24.0 (2023-11-29)
+
## 4.23.0 (2023-11-16)
## 4.22.0 (2023-11-02)
diff --git a/packages/server-side-render/package.json b/packages/server-side-render/package.json
index 3e8f81b1476fd8..26d999e4a10e4b 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": "4.23.0",
+ "version": "4.24.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/CHANGELOG.md b/packages/shortcode/CHANGELOG.md
index 7c2ff99196b597..cc4bd058236a62 100644
--- a/packages/shortcode/CHANGELOG.md
+++ b/packages/shortcode/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 3.47.0 (2023-11-29)
+
## 3.46.0 (2023-11-16)
## 3.45.0 (2023-11-02)
diff --git a/packages/shortcode/package.json b/packages/shortcode/package.json
index 6646c98fe46e0f..fe383905127534 100644
--- a/packages/shortcode/package.json
+++ b/packages/shortcode/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/shortcode",
- "version": "3.46.0",
+ "version": "3.47.0",
"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 ddb01f0b2fdaec..9f22a226e6037f 100644
--- a/packages/style-engine/CHANGELOG.md
+++ b/packages/style-engine/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 1.30.0 (2023-11-29)
+
## 1.29.0 (2023-11-16)
## 1.28.0 (2023-11-02)
diff --git a/packages/style-engine/class-wp-style-engine.php b/packages/style-engine/class-wp-style-engine.php
index a8935fc5ef14b2..fdb0083ad9eece 100644
--- a/packages/style-engine/class-wp-style-engine.php
+++ b/packages/style-engine/class-wp-style-engine.php
@@ -210,6 +210,9 @@ final class WP_Style_Engine {
'property_keys' => array(
'default' => 'font-size',
),
+ 'css_vars' => array(
+ 'font-size' => '--wp--preset--font-size--$slug',
+ ),
'path' => array( 'typography', 'fontSize' ),
'classnames' => array(
'has-$slug-font-size' => 'font-size',
@@ -219,6 +222,9 @@ final class WP_Style_Engine {
'property_keys' => array(
'default' => 'font-family',
),
+ 'css_vars' => array(
+ 'font-family' => '--wp--preset--font-family--$slug',
+ ),
'path' => array( 'typography', 'fontFamily' ),
'classnames' => array(
'has-$slug-font-family' => 'font-family',
diff --git a/packages/style-engine/docs/using-the-style-engine-with-block-supports.md b/packages/style-engine/docs/using-the-style-engine-with-block-supports.md
index 07d91c54a28d6a..42350a17ffcd6d 100644
--- a/packages/style-engine/docs/using-the-style-engine-with-block-supports.md
+++ b/packages/style-engine/docs/using-the-style-engine-with-block-supports.md
@@ -30,11 +30,11 @@ The global function `wp_style_engine_get_styles` accepts a style object as its f
```php
$block_styles = array(
- 'spacing' => array( 'padding' => '10px', 'margin' => array( 'top' => '1em') ),
- 'typography' => array( 'fontSize' => '2.2rem' ),
+ 'spacing' => array( 'padding' => '10px', 'margin' => array( 'top' => '1em') ),
+ 'typography' => array( 'fontSize' => '2.2rem' ),
);
$styles = wp_style_engine_get_styles(
- $block_styles
+ $block_styles
);
print_r( $styles );
@@ -51,7 +51,7 @@ When [registering a block support](https://developer.wordpress.org/reference/cla
If a block has opted into the block support, the values of "class" and "style" will be applied to the block element's "class" and "style" attributes accordingly when rendered in the frontend HTML. Note, this applies only to server-side rendered blocks, for example, the [Site Title block](https://developer.wordpress.org/block-editor/reference-guides/core-blocks/#site-title).
-The callback receives `$block_type` and `$block_attributes` as arguments. The `style` attribute within `$block_attributes` only contains the raw style object, if any styles have been set for the block, and not any CSS or classnames to be applied to the block's HTML elements.
+The callback receives `$block_type` and `$block_attributes` as arguments. The `style` attribute within `$block_attributes` only contains the raw style object, if any styles have been set for the block, and not any CSS or classnames to be applied to the block's HTML elements.
Here is where `wp_style_engine_get_styles` comes in handy: it will generate CSS and, if appropriate, classnames to be added to the "style" and "class" HTML attributes in the final rendered block markup.
@@ -100,7 +100,7 @@ Before passing the block style object to the Style Engine, you'll need to take i
If a block either:
-- has no support for a style, or
+- has no support for a style, or
- skips serialization of that style
it's likely that you'll want to remove those style values from the style object before passing it to the Style Engine with help of two functions:
@@ -108,24 +108,24 @@ it's likely that you'll want to remove those style values from the style object
- wp_should_skip_block_supports_serialization()
- block_has_support()
-We can now update the apply callback code above so that we'll only return "style" and "class", where a block has support and it doesn't skip serialization:
+We can now update the "apply" callback code above so that we'll only return "style" and "class", where a block has support, and it doesn't skip serialization:
```php
function gutenberg_apply_colors_support( $block_type, $block_attributes ) {
// The return value.
$attributes = array();
-
+
// Return early if the block skips all serialization for block supports.
if ( gutenberg_should_skip_block_supports_serialization( $block_type, 'color' ) ) {
return $attributes;
}
// Checks for support and skip serialization.
- $has_text_support = block_has_support( $block_type, array( 'color', 'text' ), false );
+ $has_text_support = block_has_support( $block_type, array( 'color', 'text' ), false );
$has_background_support = block_has_support( $block_type, array( 'color', 'background' ), false );
- $skips_serialization_of_color_text = wp_should_skip_block_supports_serialization( $block_type, 'color', 'text' );
- $skips_serialization_of_color_background = wp_should_skip_block_supports_serialization( $block_type, 'color', 'background' );
-
+ $skips_serialization_of_color_text = wp_should_skip_block_supports_serialization( $block_type, 'color', 'text' );
+ $skips_serialization_of_color_background = wp_should_skip_block_supports_serialization( $block_type, 'color', 'background' );
+
// Get the color styles from the style object.
$block_color_styles = isset( $block_attributes['style']['color'] ) ? $block_attributes['style']['color'] : null;
@@ -161,7 +161,7 @@ Styling a block using these presets normally involves adding the selector to the
For styles that can have preset values, such as text color and font family, the Style Engine knows how to construct the classnames using the preset slug.
-To discern CSS values from preset values however, the Style Engine expects a special format.
+To discern CSS values from preset values, the Style Engine expects a special format.
Preset values must follow the pattern `var:preset||`.
@@ -171,13 +171,16 @@ Example:
```php
// Let's say the block attributes styles contain a fontSize preset slug of "small".
+// $block_attributes['fontSize'] = 'var:preset|font-size|small';
$preset_font_size = "var:preset|font-size|{$block_attributes['fontSize']}";
// Now let's say the block attributes styles contain a backgroundColor preset slug of "blue".
+// $block_attributes['backgroundColor'] = 'var:preset|color|blue';
$preset_background_color = "var:preset|color|{$block_attributes['backgroundColor']}";
$block_styles = array(
'typography' => array( 'fontSize' => $preset_font_size ),
- 'color' => array( 'background' => $preset_background_color )
+ 'color' => array( 'background' => $preset_background_color ),
+ 'spacing' => array( 'padding' => '10px', 'margin' => array( 'top' => '1em') ),
);
$styles = wp_style_engine_get_styles(
@@ -187,19 +190,29 @@ print_r( $styles );
/*
array(
- 'css' => 'background-color:var(--wp--preset--color--blue);font-size:var(--wp--preset--font-size--small);',
- 'classnames' => 'has-background-color has-blue-background-color has-small-font-size',
+ 'css' => 'background-color:var(--wp--preset--color--blue);padding:10px;margin-top:1em;font-size:var(--wp--preset--font-size--small);',
+ 'declarations' => array(
+ 'background-color' => 'var(--wp--preset--color--blue)',
+ 'padding' => '10px',
+ 'margin-top' => '1em',
+ 'font-size' => 'var(--wp--preset--font-size--small)',
+ ),
+ 'classnames' => 'has-background has-blue-background-color has-small-font-size',
)
*/
```
-If you don't want the Style Engine to output the CSS custom vars as well, which you might not if you're applying both the CSS and classnames to the block element, you can pass `'convert_vars_to_classnames' => true` in the options array.
+If you don't want the Style Engine to output the CSS custom vars in the generated CSS string as well, which you might not if you're applying both the CSS rules and classnames to the block element, you can pass `'convert_vars_to_classnames' => true` in the options array.
+
+This flag means "convert the vars to classnames and don't output the vars to the CSS". The Style Engine will therefore **only** generate the required classnames and omit the CSS custom vars in the CSS.
+
+Using the above example code, observe the different output when we pass the option:
```php
$options = array(
- // Whether to skip converting CSS var:? values to var( --wp--preset--* ) values. Default is `false`.
- 'convert_vars_to_classnames' => 'true',
+ 'convert_vars_to_classnames' => true,
);
+
$styles = wp_style_engine_get_styles(
$block_styles,
$options
@@ -208,8 +221,12 @@ print_r( $styles );
/*
array(
- 'css' => 'letter-spacing:12px;', // non-preset-based CSS will still be compiled.
- 'classnames' => 'has-background-color has-blue-background-color has-small-font-size',
+ 'css' => 'padding:10px;margin-top:1em;',
+ 'declarations' => array(
+ 'padding' => '10px',
+ 'margin-top' => '1em',
+ ),
+ 'classnames' => 'has-background has-blue-background-color has-small-font-size',
)
*/
```
diff --git a/packages/style-engine/package.json b/packages/style-engine/package.json
index cdbb5d8f272519..f6c1aa2c0c2bae 100644
--- a/packages/style-engine/package.json
+++ b/packages/style-engine/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/style-engine",
- "version": "1.29.0",
+ "version": "1.30.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/CHANGELOG.md b/packages/stylelint-config/CHANGELOG.md
index c7c0ab1a036f45..7bbe9a2da0592e 100644
--- a/packages/stylelint-config/CHANGELOG.md
+++ b/packages/stylelint-config/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 21.30.0 (2023-11-29)
+
## 21.29.0 (2023-11-16)
## 21.28.0 (2023-11-02)
diff --git a/packages/stylelint-config/package.json b/packages/stylelint-config/package.json
index 6d6ce676bbce3c..ddf7f120fb5497 100644
--- a/packages/stylelint-config/package.json
+++ b/packages/stylelint-config/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/stylelint-config",
- "version": "21.29.0",
+ "version": "21.30.0",
"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 4465921540906f..fa1810c68c5799 100644
--- a/packages/sync/CHANGELOG.md
+++ b/packages/sync/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 0.9.0 (2023-11-29)
+
## 0.8.0 (2023-11-16)
## 0.7.0 (2023-11-02)
diff --git a/packages/sync/package.json b/packages/sync/package.json
index 0110a281d46aeb..8bef91b2689333 100644
--- a/packages/sync/package.json
+++ b/packages/sync/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/sync",
- "version": "0.8.0",
+ "version": "0.9.0",
"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 920705623ca7be..3c769bcec7fb77 100644
--- a/packages/token-list/CHANGELOG.md
+++ b/packages/token-list/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 2.47.0 (2023-11-29)
+
## 2.46.0 (2023-11-16)
## 2.45.0 (2023-11-02)
diff --git a/packages/token-list/package.json b/packages/token-list/package.json
index de2e1d0c4d2a58..c818471e31aa46 100644
--- a/packages/token-list/package.json
+++ b/packages/token-list/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/token-list",
- "version": "2.46.0",
+ "version": "2.47.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/CHANGELOG.md b/packages/undo-manager/CHANGELOG.md
index 9c7fc9d98f62c5..412281eefcee7f 100644
--- a/packages/undo-manager/CHANGELOG.md
+++ b/packages/undo-manager/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 0.7.0 (2023-11-29)
+
## 0.6.0 (2023-11-16)
## 0.5.0 (2023-11-02)
diff --git a/packages/undo-manager/package.json b/packages/undo-manager/package.json
index b1f75f83d59788..040e88dcffd059 100644
--- a/packages/undo-manager/package.json
+++ b/packages/undo-manager/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/undo-manager",
- "version": "0.6.0",
+ "version": "0.7.0",
"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 66632d73e945d5..5bed123ffbfe70 100644
--- a/packages/url/CHANGELOG.md
+++ b/packages/url/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 3.48.0 (2023-11-29)
+
## 3.47.0 (2023-11-16)
## 3.46.0 (2023-11-02)
diff --git a/packages/url/package.json b/packages/url/package.json
index 6acd999314b151..d1327f4b6e8a22 100644
--- a/packages/url/package.json
+++ b/packages/url/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/url",
- "version": "3.47.0",
+ "version": "3.48.0",
"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 02c093f466c674..7f32eaea5b2931 100644
--- a/packages/viewport/CHANGELOG.md
+++ b/packages/viewport/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 5.24.0 (2023-11-29)
+
## 5.23.0 (2023-11-16)
## 5.22.0 (2023-11-02)
diff --git a/packages/viewport/package.json b/packages/viewport/package.json
index 2357182bdfd8d7..2eca13e8f73066 100644
--- a/packages/viewport/package.json
+++ b/packages/viewport/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/viewport",
- "version": "5.23.0",
+ "version": "5.24.0",
"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 68504579d3188f..16dec4f7ea711b 100644
--- a/packages/warning/CHANGELOG.md
+++ b/packages/warning/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 2.47.0 (2023-11-29)
+
## 2.46.0 (2023-11-16)
## 2.45.0 (2023-11-02)
diff --git a/packages/warning/package.json b/packages/warning/package.json
index a4c0f7df23070f..42ad8f73a289d8 100644
--- a/packages/warning/package.json
+++ b/packages/warning/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/warning",
- "version": "2.46.0",
+ "version": "2.47.0",
"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 97fd6909b10adf..b4e8a97665eaae 100644
--- a/packages/widgets/CHANGELOG.md
+++ b/packages/widgets/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 3.24.0 (2023-11-29)
+
## 3.23.0 (2023-11-16)
## 3.22.0 (2023-11-02)
diff --git a/packages/widgets/package.json b/packages/widgets/package.json
index 06dc5604703929..9118333a4e356f 100644
--- a/packages/widgets/package.json
+++ b/packages/widgets/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/widgets",
- "version": "3.23.0",
+ "version": "3.24.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/CHANGELOG.md b/packages/wordcount/CHANGELOG.md
index 7b2a56464d0832..75b25aaec0e97e 100644
--- a/packages/wordcount/CHANGELOG.md
+++ b/packages/wordcount/CHANGELOG.md
@@ -2,6 +2,8 @@
## Unreleased
+## 3.47.0 (2023-11-29)
+
## 3.46.0 (2023-11-16)
## 3.45.0 (2023-11-02)
diff --git a/packages/wordcount/package.json b/packages/wordcount/package.json
index dbb3fdd3bc1f42..f100df8c7b0a51 100644
--- a/packages/wordcount/package.json
+++ b/packages/wordcount/package.json
@@ -1,6 +1,6 @@
{
"name": "@wordpress/wordcount",
- "version": "3.46.0",
+ "version": "3.47.0",
"description": "WordPress word count utility.",
"author": "The WordPress Contributors",
"license": "GPL-2.0-or-later",
diff --git a/phpunit/blocks/render-query-test.php b/phpunit/blocks/render-query-test.php
index 2d81bfdb513b33..796c4ae098867c 100644
--- a/phpunit/blocks/render-query-test.php
+++ b/phpunit/blocks/render-query-test.php
@@ -68,32 +68,32 @@ public function test_rendering_query_with_enhanced_pagination() {
$p = new WP_HTML_Tag_Processor( $output );
$p->next_tag( array( 'class_name' => 'wp-block-query' ) );
- $this->assertSame( '{"core":{"query":{"loadingText":"Loading page, please wait.","loadedText":"Page Loaded."}}}', $p->get_attribute( 'data-wp-context' ) );
+ $this->assertSame( '{"loadingText":"Loading page, please wait.","loadedText":"Page Loaded."}', $p->get_attribute( 'data-wp-context' ) );
$this->assertSame( 'query-0', $p->get_attribute( 'data-wp-navigation-id' ) );
- $this->assertSame( true, $p->get_attribute( 'data-wp-interactive' ) );
+ $this->assertSame( '{"namespace":"core/query"}', $p->get_attribute( 'data-wp-interactive' ) );
$p->next_tag( array( 'class_name' => 'wp-block-post' ) );
$this->assertSame( 'post-template-item-' . self::$posts[1], $p->get_attribute( 'data-wp-key' ) );
$p->next_tag( array( 'class_name' => 'wp-block-query-pagination-previous' ) );
$this->assertSame( 'query-pagination-previous', $p->get_attribute( 'data-wp-key' ) );
- $this->assertSame( 'actions.core.query.navigate', $p->get_attribute( 'data-wp-on--click' ) );
- $this->assertSame( 'actions.core.query.prefetch', $p->get_attribute( 'data-wp-on--mouseenter' ) );
- $this->assertSame( 'effects.core.query.prefetch', $p->get_attribute( 'data-wp-effect' ) );
+ $this->assertSame( 'core/query::actions.navigate', $p->get_attribute( 'data-wp-on--click' ) );
+ $this->assertSame( 'core/query::actions.prefetch', $p->get_attribute( 'data-wp-on--mouseenter' ) );
+ $this->assertSame( 'core/query::callbacks.prefetch', $p->get_attribute( 'data-wp-watch' ) );
$p->next_tag( array( 'class_name' => 'wp-block-query-pagination-next' ) );
$this->assertSame( 'query-pagination-next', $p->get_attribute( 'data-wp-key' ) );
- $this->assertSame( 'actions.core.query.navigate', $p->get_attribute( 'data-wp-on--click' ) );
- $this->assertSame( 'actions.core.query.prefetch', $p->get_attribute( 'data-wp-on--mouseenter' ) );
- $this->assertSame( 'effects.core.query.prefetch', $p->get_attribute( 'data-wp-effect' ) );
+ $this->assertSame( 'core/query::actions.navigate', $p->get_attribute( 'data-wp-on--click' ) );
+ $this->assertSame( 'core/query::actions.prefetch', $p->get_attribute( 'data-wp-on--mouseenter' ) );
+ $this->assertSame( 'core/query::callbacks.prefetch', $p->get_attribute( 'data-wp-watch' ) );
$p->next_tag( array( 'class_name' => 'screen-reader-text' ) );
$this->assertSame( 'polite', $p->get_attribute( 'aria-live' ) );
- $this->assertSame( 'context.core.query.message', $p->get_attribute( 'data-wp-text' ) );
+ $this->assertSame( 'context.message', $p->get_attribute( 'data-wp-text' ) );
$p->next_tag( array( 'class_name' => 'wp-block-query__enhanced-pagination-animation' ) );
- $this->assertSame( 'selectors.core.query.startAnimation', $p->get_attribute( 'data-wp-class--start-animation' ) );
- $this->assertSame( 'selectors.core.query.finishAnimation', $p->get_attribute( 'data-wp-class--finish-animation' ) );
+ $this->assertSame( 'state.startAnimation', $p->get_attribute( 'data-wp-class--start-animation' ) );
+ $this->assertSame( 'state.finishAnimation', $p->get_attribute( 'data-wp-class--finish-animation' ) );
}
/**
@@ -170,7 +170,7 @@ public function test_enhanced_query_markup_rendering_at_bottom_on_custom_html_el
$this->assertSame( $p->next_tag(), true );
// Test that that div is the accesibility one.
$this->assertSame( 'screen-reader-text', $p->get_attribute( 'class' ) );
- $this->assertSame( 'context.core.query.message', $p->get_attribute( 'data-wp-text' ) );
+ $this->assertSame( 'context.message', $p->get_attribute( 'data-wp-text' ) );
$this->assertSame( 'polite', $p->get_attribute( 'aria-live' ) );
}
diff --git a/phpunit/class-block-fixture-test.php b/phpunit/class-block-fixture-test.php
index a3e47cc7b28337..adf49445261d15 100644
--- a/phpunit/class-block-fixture-test.php
+++ b/phpunit/class-block-fixture-test.php
@@ -7,6 +7,12 @@
class Block_Fixture_Test extends WP_UnitTestCase {
+ public function filter_allowed_html( $tags ) {
+ $tags['form']['class'] = true;
+ $tags['form']['enctype'] = true;
+ return $tags;
+ }
+
/**
* Tests that running the serialised block content through KSES doesn't cause the
* HTML to change.
@@ -20,7 +26,9 @@ public function test_kses_doesnt_change_fixtures( $block, $filename ) {
$block = preg_replace( "/href=['\"]data:[^'\"]+['\"]/", 'href="https://wordpress.org/foo.jpg"', $block );
$block = preg_replace( '/url\(data:[^)]+\)/', 'url(https://wordpress.org/foo.jpg)', $block );
+ add_filter( 'wp_kses_allowed_html', array( $this, 'filter_allowed_html' ) );
$kses_block = wp_kses_post( $block );
+ remove_filter( 'wp_kses_allowed_html', array( $this, 'filter_allowed_html' ) );
// KSES adds a space at the end of self-closing tags, add it to the original to match.
$block = preg_replace( '|([^ ])/>|', '$1 />', $block );
diff --git a/phpunit/class-gutenberg-classic-to-block-menu-converter-test.php b/phpunit/class-gutenberg-classic-to-block-menu-converter-test.php
deleted file mode 100644
index 5f0a8ceee52a10..00000000000000
--- a/phpunit/class-gutenberg-classic-to-block-menu-converter-test.php
+++ /dev/null
@@ -1,215 +0,0 @@
-assertTrue( class_exists( 'Gutenberg_Classic_To_Block_Menu_Converter' ) );
- }
-
- /**
- * @covers WP_Classic_To_Block_Menu_Converter::convert
- * @dataProvider provider_test_passing_non_menu_object_to_converter_returns_wp_error
- */
- public function test_passing_non_menu_object_to_converter_returns_wp_error( $data ) {
-
- $result = Gutenberg_Classic_To_Block_Menu_Converter::convert( $data );
-
- $this->assertTrue( is_wp_error( $result ), 'Should be a WP_Error instance' );
-
- $this->assertEquals( 'invalid_menu', $result->get_error_code(), 'Error code should indicate invalidity of menu argument.' );
-
- $this->assertEquals( 'The menu provided is not a valid menu.', $result->get_error_message(), 'Error message should communicate invalidity of menu argument.' );
- }
-
- /**
- * @covers WP_Classic_To_Block_Menu_Converter::convert
- */
- public function provider_test_passing_non_menu_object_to_converter_returns_wp_error() {
- return array(
- array( 1 ),
- array( -1 ),
- array( '1' ),
- array( 'not a menu object' ),
- array( true ),
- array( false ),
- array( array() ),
- array( new stdClass() ),
- );
- }
-
- /**
- * @covers WP_Classic_To_Block_Menu_Converter::convert
- */
- public function test_can_convert_classic_menu_to_blocks() {
-
- $menu_id = wp_create_nav_menu( 'Classic Menu' );
-
- wp_update_nav_menu_item(
- $menu_id,
- 0,
- array(
- 'menu-item-title' => 'Classic Menu Item 1',
- 'menu-item-url' => '/classic-menu-item-1',
- 'menu-item-status' => 'publish',
- )
- );
-
- $second_menu_item_id = wp_update_nav_menu_item(
- $menu_id,
- 0,
- array(
- 'menu-item-title' => 'Classic Menu Item 2',
- 'menu-item-url' => '/classic-menu-item-2',
- 'menu-item-status' => 'publish',
- )
- );
-
- wp_update_nav_menu_item(
- $menu_id,
- 0,
- array(
- 'menu-item-title' => 'Nested Menu Item 1',
- 'menu-item-url' => '/nested-menu-item-1',
- 'menu-item-status' => 'publish',
- 'menu-item-parent-id' => $second_menu_item_id,
- )
- );
-
- $classic_nav_menu = wp_get_nav_menu_object( $menu_id );
-
- $blocks = Gutenberg_Classic_To_Block_Menu_Converter::convert( $classic_nav_menu );
-
- $this->assertNotEmpty( $blocks );
-
- $parsed_blocks = parse_blocks( $blocks );
-
- $first_block = $parsed_blocks[0];
- $second_block = $parsed_blocks[1];
- $nested_block = $parsed_blocks[1]['innerBlocks'][0];
-
- $this->assertEquals( 'core/navigation-link', $first_block['blockName'], 'First block name should be "core/navigation-link"' );
-
- $this->assertEquals( 'Classic Menu Item 1', $first_block['attrs']['label'], 'First block label should match.' );
-
- $this->assertEquals( '/classic-menu-item-1', $first_block['attrs']['url'], 'First block URL should match.' );
-
- // Assert parent of nested menu item is a submenu block.
- $this->assertEquals( 'core/navigation-submenu', $second_block['blockName'], 'Second block name should be "core/navigation-submenu"' );
-
- $this->assertEquals( 'Classic Menu Item 2', $second_block['attrs']['label'], 'Second block label should match.' );
-
- $this->assertEquals( '/classic-menu-item-2', $second_block['attrs']['url'], 'Second block URL should match.' );
-
- $this->assertEquals( 'core/navigation-link', $nested_block['blockName'], 'Nested block name should be "core/navigation-link"' );
-
- $this->assertEquals( 'Nested Menu Item 1', $nested_block['attrs']['label'], 'Nested block label should match.' );
-
- $this->assertEquals( '/nested-menu-item-1', $nested_block['attrs']['url'], 'Nested block URL should match.' );
-
- wp_delete_nav_menu( $menu_id );
- }
-
- /**
- * @covers WP_Classic_To_Block_Menu_Converter::convert
- */
- public function test_does_not_convert_menu_items_with_non_publish_status() {
-
- $menu_id = wp_create_nav_menu( 'Classic Menu' );
-
- wp_update_nav_menu_item(
- $menu_id,
- 0,
- array(
- 'menu-item-title' => 'Classic Menu Item 1',
- 'menu-item-url' => '/classic-menu-item-1',
- 'menu-item-status' => 'publish',
- )
- );
-
- wp_update_nav_menu_item(
- $menu_id,
- 0,
- array(
- 'menu-item-status' => 'draft',
- 'menu-item-title' => 'Draft Menu Item',
- 'menu-item-url' => '/draft-menu-item',
- )
- );
-
- wp_update_nav_menu_item(
- $menu_id,
- 0,
- array(
- 'menu-item-status' => 'private',
- 'menu-item-title' => 'Private Item',
- 'menu-item-url' => '/private-menu-item',
- )
- );
-
- wp_update_nav_menu_item(
- $menu_id,
- 0,
- array(
- 'menu-item-status' => 'pending',
- 'menu-item-title' => 'Pending Menu Item',
- 'menu-item-url' => '/pending-menu-item',
- )
- );
-
- wp_update_nav_menu_item(
- $menu_id,
- 0,
- array(
- 'menu-item-status' => 'future',
- 'menu-item-title' => 'Future Menu Item',
- 'menu-item-url' => '/future-menu-item',
- )
- );
-
- $classic_nav_menu = wp_get_nav_menu_object( $menu_id );
-
- $blocks = Gutenberg_Classic_To_Block_Menu_Converter::convert( $classic_nav_menu );
-
- $this->assertNotEmpty( $blocks );
-
- $parsed_blocks = parse_blocks( $blocks );
-
- $this->assertCount( 1, $parsed_blocks, 'Should only be one block in the array.' );
-
- $this->assertEquals( 'core/navigation-link', $parsed_blocks[0]['blockName'], 'First block name should be "core/navigation-link"' );
-
- $this->assertEquals( 'Classic Menu Item 1', $parsed_blocks[0]['attrs']['label'], 'First block label should match.' );
-
- $this->assertEquals( '/classic-menu-item-1', $parsed_blocks[0]['attrs']['url'], 'First block URL should match.' );
-
- wp_delete_nav_menu( $menu_id );
- }
-
- /**
- * @covers WP_Classic_To_Block_Menu_Converter::convert
- */
- public function test_returns_empty_array_for_menus_with_no_items() {
- $menu_id = wp_create_nav_menu( 'Empty Menu' );
-
- $classic_nav_menu = wp_get_nav_menu_object( $menu_id );
-
- $blocks = Gutenberg_Classic_To_Block_Menu_Converter::convert( $classic_nav_menu );
-
- $this->assertEmpty( $blocks, 'Result should be empty.' );
-
- $this->assertIsArray( $blocks, 'Result should be empty array.' );
-
- wp_delete_nav_menu( $menu_id );
- }
-}
diff --git a/phpunit/class-gutenberg-navigation-fallback-gutenberg-test.php b/phpunit/class-gutenberg-navigation-fallback-gutenberg-test.php
deleted file mode 100644
index 6ae05e0a5ffb7f..00000000000000
--- a/phpunit/class-gutenberg-navigation-fallback-gutenberg-test.php
+++ /dev/null
@@ -1,352 +0,0 @@
-user->create( array( 'role' => 'administrator' ) );
-
- self::$editor_user = $factory->user->create( array( 'role' => 'editor' ) );
- }
-
- public function set_up() {
- parent::set_up();
-
- wp_set_current_user( self::$admin_user );
- }
-
- /**
- * @covers WP_REST_Navigation_Fallback_Controller
- */
- public function test_it_exists() {
- $this->assertTrue( class_exists( 'Gutenberg_Navigation_Fallback' ), 'Gutenberg_Navigation_Fallback class should exist.' );
- }
-
- /**
- * @covers WP_REST_Navigation_Fallback_Controller::get_fallback
- */
- public function test_should_return_a_default_fallback_navigation_menu_in_absence_of_other_fallbacks() {
- $data = Gutenberg_Navigation_Fallback::get_fallback();
-
- $this->assertInstanceOf( 'WP_Post', $data, 'Response should be of the correct type.' );
-
- $this->assertEquals( 'wp_navigation', $data->post_type, 'Fallback menu type should be `wp_navigation`' );
-
- $this->assertEquals( 'Navigation', $data->post_title, 'Fallback menu title should be the default fallback title' );
-
- $this->assertEquals( 'navigation', $data->post_name, 'Fallback menu slug (post_name) should be the default slug' );
-
- $this->assertEquals( '', $data->post_content );
-
- $navs_in_db = $this->get_navigations_in_database();
-
- $this->assertCount( 1, $navs_in_db, 'The fallback Navigation post should be the only one in the database.' );
- }
-
- /**
- * @covers WP_REST_Navigation_Fallback_Controller::get_fallback
- */
- public function test_should_not_automatically_create_fallback_if_filter_is_falsey() {
-
- add_filter( 'gutenberg_navigation_should_create_fallback', '__return_false' );
-
- $data = Gutenberg_Navigation_Fallback::get_fallback();
-
- $this->assertEmpty( $data );
-
- $navs_in_db = $this->get_navigations_in_database();
-
- $this->assertCount( 0, $navs_in_db, 'The fallback Navigation post should not have been created.' );
-
- remove_filter( 'gutenberg_navigation_should_create_fallback', '__return_false' );
- }
-
- /**
- * @covers WP_REST_Navigation_Fallback_Controller::get_fallback
- */
- public function test_should_return_a_default_fallback_navigation_menu_with_no_blocks_if_page_list_block_is_not_registered() {
-
- $original_page_list_block = WP_Block_Type_Registry::get_instance()->get_registered( 'core/page-list' );
-
- unregister_block_type( 'core/page-list' );
-
- $data = Gutenberg_Navigation_Fallback::get_fallback();
-
- $this->assertInstanceOf( 'WP_Post', $data, 'Response should be of the correct type.' );
-
- $this->assertNotEquals( '', $data->post_content, 'Navigation Menu should not contain a Page List block.' );
-
- $this->assertEmpty( $data->post_content, 'Menu should be empty.' );
-
- register_block_type( 'core/page-list', $original_page_list_block );
- }
-
- /**
- * @covers WP_REST_Navigation_Fallback_Controller::get_fallback
- */
- public function test_should_handle_consecutive_invocations() {
- // Invoke the method multiple times to ensure that it doesn't create a new fallback menu on each invocation.
- Gutenberg_Navigation_Fallback::get_fallback();
- Gutenberg_Navigation_Fallback::get_fallback();
-
- // Assert on the final invocation.
- $data = Gutenberg_Navigation_Fallback::get_fallback();
-
- $this->assertInstanceOf( 'WP_Post', $data, 'Response should be of the correct type.' );
-
- $this->assertEquals( 'Navigation', $data->post_title, 'Fallback menu title should be the default title' );
-
- $navs_in_db = $this->get_navigations_in_database();
-
- $this->assertCount( 1, $navs_in_db, 'The fallback Navigation post should be the only one in the database.' );
- }
-
- /**
- * @covers WP_REST_Navigation_Fallback_Controller::get_fallback
- */
- public function test_should_return_the_most_recently_created_navigation_menu() {
-
- self::factory()->post->create_and_get(
- array(
- 'post_type' => 'wp_navigation',
- 'post_title' => 'Existing Navigation Menu 1',
- 'post_content' => '',
- )
- );
-
- $most_recently_published_nav = self::factory()->post->create_and_get(
- array(
- 'post_type' => 'wp_navigation',
- 'post_title' => 'Existing Navigation Menu 2',
- 'post_content' => '',
- )
- );
-
- $data = Gutenberg_Navigation_Fallback::get_fallback();
-
- $this->assertInstanceOf( 'WP_Post', $data, 'Response should be of the correct type.' );
-
- $this->assertEquals( $most_recently_published_nav->post_title, $data->post_title, 'Fallback menu title should be the same as the most recently created menu.' );
-
- $this->assertEquals( $most_recently_published_nav->post_name, $data->post_name, 'Post name should be the same as the most recently created menu.' );
-
- $this->assertEquals( $most_recently_published_nav->post_content, $data->post_content, 'Post content should be the same as the most recently created menu.' );
-
- // Check that no new Navigation menu was created.
- $navs_in_db = $this->get_navigations_in_database();
-
- $this->assertCount( 2, $navs_in_db, 'Only the existing Navigation menus should be present in the database.' );
- }
-
- /**
- * @covers WP_REST_Navigation_Fallback_Controller::get_fallback
- */
- public function test_should_return_fallback_navigation_from_existing_classic_menu_if_no_navigation_menus_exist() {
- $menu_id = wp_create_nav_menu( 'Existing Classic Menu' );
-
- wp_update_nav_menu_item(
- $menu_id,
- 0,
- array(
- 'menu-item-title' => 'Classic Menu Item 1',
- 'menu-item-url' => '/classic-menu-item-1',
- 'menu-item-status' => 'publish',
- )
- );
-
- $data = Gutenberg_Navigation_Fallback::get_fallback();
-
- $this->assertInstanceOf( 'WP_Post', $data, 'Response should be of the correct type.' );
-
- $this->assertEquals( 'Existing Classic Menu', $data->post_title, 'Fallback menu title should be the same as the classic menu.' );
-
- // Assert that the fallback contains a navigation-link block.
- $this->assertStringContainsString( '',
- )
- );
-
- $data = Gutenberg_Navigation_Fallback::get_fallback();
-
- $this->assertInstanceOf( 'WP_Post', $data, 'Response should be of the correct type.' );
-
- $this->assertEquals( $existing_navigation_menu->post_title, $data->post_title, 'Fallback menu title should be the same as the existing Navigation menu.' );
-
- $this->assertNotEquals( 'Existing Classic Menu', $data->post_title, 'Fallback menu title should not be the same as the Classic Menu.' );
-
- // Check that only a single Navigation fallback was created.
- $navs_in_db = $this->get_navigations_in_database();
-
- $this->assertCount( 1, $navs_in_db, 'Only the existing Navigation menus should be present in the database.' );
- }
-
- private function get_navigations_in_database() {
- $navs_in_db = new WP_Query(
- array(
- 'post_type' => 'wp_navigation',
- 'post_status' => 'publish',
- 'posts_per_page' => -1,
- 'orderby' => 'date',
- 'order' => 'DESC',
- )
- );
-
- return $navs_in_db->posts ? $navs_in_db->posts : array();
- }
-}
diff --git a/phpunit/class-gutenberg-rest-global-styles-revisions-controller-test.php b/phpunit/class-gutenberg-rest-global-styles-revisions-controller-test.php
index 857e8fa297cf17..2ae53f9338389e 100644
--- a/phpunit/class-gutenberg-rest-global-styles-revisions-controller-test.php
+++ b/phpunit/class-gutenberg-rest-global-styles-revisions-controller-test.php
@@ -14,26 +14,11 @@ class Gutenberg_REST_Global_Styles_Revisions_Controller_Test extends WP_Test_RES
*/
protected static $admin_id;
- /**
- * @var int
- */
- protected static $second_admin_id;
-
- /**
- * @var int
- */
- protected static $author_id;
-
/**
* @var int
*/
protected static $global_styles_id;
- /**
- * @var int
- */
- private $total_revisions;
-
/**
* @var array
*/
@@ -44,47 +29,17 @@ class Gutenberg_REST_Global_Styles_Revisions_Controller_Test extends WP_Test_RES
*/
private $revision_1_id;
- /**
- * @var array
- */
- private $revision_2;
-
- /**
- * @var int
- */
- private $revision_2_id;
-
- /**
- * @var array
- */
- private $revision_3;
-
- /**
- * @var int
- */
- private $revision_3_id;
-
/**
* Create fake data before our tests run.
*
* @param WP_UnitTest_Factory $factory Helper that lets us create fake data.
*/
public static function wpSetupBeforeClass( $factory ) {
- self::$admin_id = $factory->user->create(
- array(
- 'role' => 'administrator',
- )
- );
- self::$second_admin_id = $factory->user->create(
+ self::$admin_id = $factory->user->create(
array(
'role' => 'administrator',
)
);
- self::$author_id = $factory->user->create(
- array(
- 'role' => 'author',
- )
- );
wp_set_current_user( self::$admin_id );
// This creates the global styles for the current theme.
@@ -199,8 +154,6 @@ public static function wpSetupBeforeClass( $factory ) {
*/
public static function wpTearDownAfterClass() {
self::delete_user( self::$admin_id );
- self::delete_user( self::$second_admin_id );
- self::delete_user( self::$author_id );
}
/**
@@ -209,24 +162,16 @@ public static function wpTearDownAfterClass() {
public function set_up() {
parent::set_up();
switch_theme( 'emptytheme' );
- $revisions = wp_get_post_revisions( self::$global_styles_id );
- $this->total_revisions = count( $revisions );
-
+ $revisions = wp_get_post_revisions( self::$global_styles_id );
$this->revision_1 = array_pop( $revisions );
$this->revision_1_id = $this->revision_1->ID;
- $this->revision_2 = array_pop( $revisions );
- $this->revision_2_id = $this->revision_2->ID;
-
- $this->revision_3 = array_pop( $revisions );
- $this->revision_3_id = $this->revision_3->ID;
-
/*
* For some reason the `rest_api_init` doesn't run early enough to ensure an overwritten `get_item_schema()`
* is used. So we manually call it here.
* See: https://github.com/WordPress/gutenberg/pull/52370#issuecomment-1643331655.
*/
- $global_styles_revisions_controller = new Gutenberg_REST_Global_Styles_Revisions_Controller_6_4();
+ $global_styles_revisions_controller = new Gutenberg_REST_Global_Styles_Revisions_Controller_6_5();
$global_styles_revisions_controller->register_routes();
}
@@ -237,11 +182,6 @@ public function set_up() {
*/
public function test_register_routes() {
$routes = rest_get_server()->get_routes();
- $this->assertArrayHasKey(
- '/wp/v2/global-styles/(?P[\d]+)/revisions',
- $routes,
- 'Global style revisions based on the given parentID route does not exist.'
- );
$this->assertArrayHasKey(
'/wp/v2/global-styles/(?P[\d]+)/revisions/(?P[\d]+)',
$routes,
@@ -277,32 +217,6 @@ protected function check_get_revision_response( $response_revision_item, $revisi
);
}
- /**
- * @ticket 58524
- *
- * @covers Gutenberg_REST_Global_Styles_Revisions_Controller_6_4::get_items
- */
- public function test_get_items() {
- wp_set_current_user( self::$admin_id );
-
- $request = new WP_REST_Request( 'GET', '/wp/v2/global-styles/' . self::$global_styles_id . '/revisions' );
- $response = rest_get_server()->dispatch( $request );
- $data = $response->get_data();
-
- $this->assertSame( 200, $response->get_status(), 'Response status is 200.' );
- $this->assertCount( $this->total_revisions, $data, 'Check that correct number of revisions exists.' );
-
- // Reverse chronology.
- $this->assertSame( $this->revision_3_id, $data[0]['id'] );
- $this->check_get_revision_response( $data[0], $this->revision_3 );
-
- $this->assertSame( $this->revision_2_id, $data[1]['id'] );
- $this->check_get_revision_response( $data[1], $this->revision_2 );
-
- $this->assertSame( $this->revision_1_id, $data[2]['id'] );
- $this->check_get_revision_response( $data[2], $this->revision_1 );
- }
-
/**
* @ticket 59810
*
@@ -336,26 +250,19 @@ public function test_get_item_invalid_revision_id_should_error() {
}
/**
- * @ticket 58524
- *
- * @covers Gutenberg_REST_Global_Styles_Revisions_Controller_6_4::get_item_schema
+ * @doesNotPerformAssertions
*/
- public function test_get_item_schema() {
- $request = new WP_REST_Request( 'OPTIONS', '/wp/v2/global-styles/' . self::$global_styles_id . '/revisions' );
- $response = rest_get_server()->dispatch( $request );
- $data = $response->get_data();
- $properties = $data['schema']['properties'];
+ public function test_get_items() {
+ // Unit tests have been more to WordPress Core for test_get_items().
+ // No unique compat unit tests exist.
+ }
- $this->assertCount( 9, $properties, 'Schema properties array has exactly 9 elements.' );
- $this->assertArrayHasKey( 'id', $properties, 'Schema properties array has "id" key.' );
- $this->assertArrayHasKey( 'styles', $properties, 'Schema properties array has "styles" key.' );
- $this->assertArrayHasKey( 'settings', $properties, 'Schema properties array has "settings" key.' );
- $this->assertArrayHasKey( 'parent', $properties, 'Schema properties array has "parent" key.' );
- $this->assertArrayHasKey( 'author', $properties, 'Schema properties array has "author" key.' );
- $this->assertArrayHasKey( 'date', $properties, 'Schema properties array has "date" key.' );
- $this->assertArrayHasKey( 'date_gmt', $properties, 'Schema properties array has "date_gmt" key.' );
- $this->assertArrayHasKey( 'modified', $properties, 'Schema properties array has "modified" key.' );
- $this->assertArrayHasKey( 'modified_gmt', $properties, 'Schema properties array has "modified_gmt" key.' );
+ /**
+ * @doesNotPerformAssertions
+ */
+ public function test_get_item_schema() {
+ // Unit tests have been more to WordPress Core for test_get_item_schema().
+ // No unique compat unit tests exist.
}
/**
diff --git a/phpunit/class-gutenberg-rest-templates-controller-test.php b/phpunit/class-gutenberg-rest-templates-controller-test.php
index 0992399464c5c8..bbb588fd583ea1 100644
--- a/phpunit/class-gutenberg-rest-templates-controller-test.php
+++ b/phpunit/class-gutenberg-rest-templates-controller-test.php
@@ -99,7 +99,7 @@ public function test_get_item_schema() {
$response = rest_get_server()->dispatch( $request );
$data = $response->get_data();
$properties = $data['schema']['properties'];
- $this->assertCount( 15, $properties );
+ $this->assertCount( 17, $properties );
$this->assertArrayHasKey( 'id', $properties );
$this->assertArrayHasKey( 'description', $properties );
$this->assertArrayHasKey( 'slug', $properties );
@@ -131,23 +131,25 @@ public function test_get_item() {
$this->assertSame(
array(
- 'id' => 'emptytheme//my_template',
- 'theme' => 'emptytheme',
- 'slug' => 'my_template',
- 'source' => 'custom',
- 'origin' => null,
- 'type' => 'wp_template',
- 'description' => 'Description of my template.',
- 'title' => array(
+ 'id' => 'emptytheme//my_template',
+ 'theme' => 'emptytheme',
+ 'slug' => 'my_template',
+ 'source' => 'custom',
+ 'origin' => null,
+ 'type' => 'wp_template',
+ 'description' => 'Description of my template.',
+ 'title' => array(
'raw' => 'My Template',
'rendered' => 'My Template',
),
- 'status' => 'publish',
- 'wp_id' => self::$post->ID,
- 'has_theme_file' => false,
- 'is_custom' => true,
- 'author' => 0,
- 'modified' => mysql_to_rfc3339( self::$post->post_modified ),
+ 'status' => 'publish',
+ 'wp_id' => self::$post->ID,
+ 'has_theme_file' => false,
+ 'is_custom' => true,
+ 'author' => 0,
+ 'modified' => mysql_to_rfc3339( self::$post->post_modified ),
+ 'author_text' => 'Test Blog',
+ 'original_source' => 'site',
),
$data
);
@@ -164,23 +166,25 @@ public function test_get_items() {
$this->assertSame(
array(
- 'id' => 'emptytheme//my_template',
- 'theme' => 'emptytheme',
- 'slug' => 'my_template',
- 'source' => 'custom',
- 'origin' => null,
- 'type' => 'wp_template',
- 'description' => 'Description of my template.',
- 'title' => array(
+ 'id' => 'emptytheme//my_template',
+ 'theme' => 'emptytheme',
+ 'slug' => 'my_template',
+ 'source' => 'custom',
+ 'origin' => null,
+ 'type' => 'wp_template',
+ 'description' => 'Description of my template.',
+ 'title' => array(
'raw' => 'My Template',
'rendered' => 'My Template',
),
- 'status' => 'publish',
- 'wp_id' => self::$post->ID,
- 'has_theme_file' => false,
- 'is_custom' => true,
- 'author' => 0,
- 'modified' => mysql_to_rfc3339( self::$post->post_modified ),
+ 'status' => 'publish',
+ 'wp_id' => self::$post->ID,
+ 'has_theme_file' => false,
+ 'is_custom' => true,
+ 'author' => 0,
+ 'modified' => mysql_to_rfc3339( self::$post->post_modified ),
+ 'author_text' => 'Test Blog',
+ 'original_source' => 'site',
),
$this->find_and_normalize_template_by_id( $data, 'emptytheme//my_template' )
);
@@ -225,27 +229,31 @@ public function test_create_item() {
unset( $data['_links'] );
unset( $data['wp_id'] );
+ $author_name = get_user_by( 'id', self::$admin_id )->get( 'display_name' );
+
$this->assertSame(
array(
- 'id' => 'emptytheme//my_custom_template',
- 'theme' => 'emptytheme',
- 'content' => array(
+ 'id' => 'emptytheme//my_custom_template',
+ 'theme' => 'emptytheme',
+ 'content' => array(
'raw' => 'Content',
),
- 'slug' => 'my_custom_template',
- 'source' => 'custom',
- 'origin' => null,
- 'type' => 'wp_template',
- 'description' => 'Just a description',
- 'title' => array(
+ 'slug' => 'my_custom_template',
+ 'source' => 'custom',
+ 'origin' => null,
+ 'type' => 'wp_template',
+ 'description' => 'Just a description',
+ 'title' => array(
'raw' => 'My Template',
'rendered' => 'My Template',
),
- 'status' => 'publish',
- 'has_theme_file' => false,
- 'is_custom' => true,
- 'author' => self::$admin_id,
- 'modified' => $data['modified'],
+ 'status' => 'publish',
+ 'has_theme_file' => false,
+ 'is_custom' => true,
+ 'author' => self::$admin_id,
+ 'modified' => $data['modified'],
+ 'author_text' => $author_name,
+ 'original_source' => 'user',
),
$data
);
diff --git a/phpunit/class-wp-theme-json-test.php b/phpunit/class-wp-theme-json-test.php
index 07bec961553c9a..89900d45893d91 100644
--- a/phpunit/class-wp-theme-json-test.php
+++ b/phpunit/class-wp-theme-json-test.php
@@ -1646,6 +1646,136 @@ public function data_sanitize_for_block_with_style_variations() {
);
}
+ public function test_sanitize_indexed_arrays() {
+ $theme_json = new WP_Theme_JSON_Gutenberg(
+ array(
+ 'version' => '2',
+ 'badKey2' => 'I am Evil!!!!',
+ 'settings' => array(
+ 'badKey3' => 'I am Evil!!!!',
+ 'typography' => array(
+ 'badKey4' => 'I am Evil!!!!',
+ 'fontFamilies' => array(
+ 'custom' => array(
+ array(
+ 'badKey4' => 'I am Evil!!!!',
+ 'name' => 'Arial',
+ 'slug' => 'arial',
+ 'fontFamily' => 'Arial, sans-serif',
+ ),
+ ),
+ 'theme' => array(
+ array(
+ 'badKey5' => 'I am Evil!!!!',
+ 'name' => 'Piazzolla',
+ 'slug' => 'piazzolla',
+ 'fontFamily' => 'Piazzolla',
+ 'fontFace' => array(
+ array(
+ 'badKey6' => 'I am Evil!!!!',
+ 'fontFamily' => 'Piazzolla',
+ 'fontStyle' => 'italic',
+ 'fontWeight' => '400',
+ 'src' => 'https://example.com/font.ttf',
+ ),
+ array(
+ 'badKey7' => 'I am Evil!!!!',
+ 'fontFamily' => 'Piazzolla',
+ 'fontStyle' => 'italic',
+ 'fontWeight' => '400',
+ 'src' => 'https://example.com/font.ttf',
+ ),
+ ),
+ ),
+ array(
+ 'badKey8' => 'I am Evil!!!!',
+ 'name' => 'Inter',
+ 'slug' => 'Inter',
+ 'fontFamily' => 'Inter',
+ 'fontFace' => array(
+ array(
+ 'badKey9' => 'I am Evil!!!!',
+ 'fontFamily' => 'Inter',
+ 'fontStyle' => 'italic',
+ 'fontWeight' => '400',
+ 'src' => 'https://example.com/font.ttf',
+ ),
+ array(
+ 'badKey10' => 'I am Evil!!!!',
+ 'fontFamily' => 'Inter',
+ 'fontStyle' => 'italic',
+ 'fontWeight' => '400',
+ 'src' => 'https://example.com/font.ttf',
+ ),
+ ),
+ ),
+ ),
+ ),
+ ),
+ ),
+ )
+ );
+
+ $expected_sanitized = array(
+ 'version' => '2',
+ 'settings' => array(
+ 'typography' => array(
+ 'fontFamilies' => array(
+ 'custom' => array(
+ array(
+ 'name' => 'Arial',
+ 'slug' => 'arial',
+ 'fontFamily' => 'Arial, sans-serif',
+ ),
+ ),
+ 'theme' => array(
+ array(
+ 'name' => 'Piazzolla',
+ 'slug' => 'piazzolla',
+ 'fontFamily' => 'Piazzolla',
+ 'fontFace' => array(
+ array(
+ 'fontFamily' => 'Piazzolla',
+ 'fontStyle' => 'italic',
+ 'fontWeight' => '400',
+ 'src' => 'https://example.com/font.ttf',
+ ),
+ array(
+ 'fontFamily' => 'Piazzolla',
+ 'fontStyle' => 'italic',
+ 'fontWeight' => '400',
+ 'src' => 'https://example.com/font.ttf',
+ ),
+ ),
+ ),
+ array(
+ 'name' => 'Inter',
+ 'slug' => 'Inter',
+ 'fontFamily' => 'Inter',
+ 'fontFace' => array(
+ array(
+ 'fontFamily' => 'Inter',
+ 'fontStyle' => 'italic',
+ 'fontWeight' => '400',
+ 'src' => 'https://example.com/font.ttf',
+ ),
+ array(
+ 'fontFamily' => 'Inter',
+ 'fontStyle' => 'italic',
+ 'fontWeight' => '400',
+ 'src' => 'https://example.com/font.ttf',
+ ),
+ ),
+ ),
+ ),
+ ),
+ ),
+ ),
+ );
+ $sanitized_theme_json = $theme_json->get_raw_data();
+ $this->assertSameSetsWithIndex( $expected_sanitized, $sanitized_theme_json, 'Sanitized theme.json does not match' );
+ }
+
/**
* @dataProvider data_sanitize_with_invalid_style_variation
*
diff --git a/phpunit/experimental/interactivity-api/class-wp-interactivity-store-test.php b/phpunit/experimental/interactivity-api/class-wp-interactivity-store-test.php
index 22205289b20bee..837d6fd50f193a 100644
--- a/phpunit/experimental/interactivity-api/class-wp-interactivity-store-test.php
+++ b/phpunit/experimental/interactivity-api/class-wp-interactivity-store-test.php
@@ -161,7 +161,7 @@ public function test_store_should_be_correctly_rendered() {
WP_Interactivity_Store::render();
$rendered = ob_get_clean();
$this->assertSame(
- '',
+ '',
$rendered
);
}
@@ -179,7 +179,7 @@ public function test_store_should_also_escape_tags_and_amps() {
WP_Interactivity_Store::render();
$rendered = ob_get_clean();
$this->assertSame(
- '',
+ '',
$rendered
);
}
diff --git a/phpunit/experimental/modules/class-gutenberg-modules-test.php b/phpunit/experimental/modules/class-gutenberg-modules-test.php
new file mode 100644
index 00000000000000..87ff6e6647d7bf
--- /dev/null
+++ b/phpunit/experimental/modules/class-gutenberg-modules-test.php
@@ -0,0 +1,66 @@
+old_wp_scripts = isset( $GLOBALS['wp_scripts'] ) ? $GLOBALS['wp_scripts'] : null;
+ remove_action( 'wp_default_scripts', 'wp_default_scripts' );
+ remove_action( 'wp_default_scripts', 'wp_default_packages' );
+ $GLOBALS['wp_scripts'] = new WP_Scripts();
+ $this->old_modules_markup = get_echo( array( 'Gutenberg_Modules', 'print_enqueued_modules' ) );
+ }
+
+ public function tear_down() {
+ $GLOBALS['wp_scripts'] = $this->old_wp_scripts;
+ add_action( 'wp_default_scripts', 'wp_default_scripts' );
+ parent::tear_down();
+ }
+
+ public function test_wp_enqueue_module() {
+ global $wp_version;
+ gutenberg_register_module( 'no-deps-no-version', 'interactivity-api-1.js' );
+ gutenberg_enqueue_module( 'no-deps-no-version' );
+ gutenberg_register_module( 'deps-no-version', 'interactivity-api-2.js', array( 'no-deps-no-version' ) );
+ gutenberg_enqueue_module( 'deps-no-version' );
+
+ $modules_markup = get_echo( array( 'Gutenberg_Modules', 'print_enqueued_modules' ) );
+ $import_map_markup = get_echo( array( 'Gutenberg_Modules', 'print_import_map' ) );
+ $preload_markup = get_echo( array( 'Gutenberg_Modules', 'print_module_preloads' ) );
+
+ $previous_tags = new WP_HTML_Tag_Processor( $this->old_modules_markup );
+ $previous_src_stack = array();
+ while ( $previous_tags->next_tag( array( 'type' => 'module' ) ) ) {
+ $previous_src_stack[] = $previous_tags->get_attribute( 'src' );
+ }
+ // Test that there are 2 new `,
+ } );
+ }
+ );
+
+ await page
+ .getByRole( 'toolbar', { name: 'Document tools' } )
+ .getByRole( 'button', { name: 'Toggle block inserter' } )
+ .click();
+
+ const blockLibrary = page.getByRole( 'region', {
+ name: 'Block Library',
+ } );
+ const downloadableBlock = page
+ .getByRole( 'listbox', {
+ name: 'Blocks available for install',
+ } )
+ .getByRole( 'option', {
+ name: `Install ${ MOCK_BLOCK1.title }.`,
+ exact: true,
+ } );
+
+ await blockLibrary
+ .getByRole( 'searchbox', {
+ name: 'Search for blocks and patterns',
+ } )
+ .fill( MOCK_BLOCK1.title );
+
+ await expect( downloadableBlock ).toBeVisible();
+
+ // Install the block.
+ await downloadableBlock.click();
+ await page
+ .getByRole( 'button', { name: 'Dismiss this notice' } )
+ .filter( { hasText: MOCK_BLOCK1.title } )
+ .waitFor();
+
+ await expect(
+ page.getByRole( 'document', {
+ name: `Block: ${ MOCK_BLOCK1.title }`,
+ } )
+ ).toBeVisible();
+ } );
+} );
diff --git a/test/e2e/specs/editor/plugins/block-icons.spec.js b/test/e2e/specs/editor/plugins/block-icons.spec.js
new file mode 100644
index 00000000000000..0418f4200afc05
--- /dev/null
+++ b/test/e2e/specs/editor/plugins/block-icons.spec.js
@@ -0,0 +1,228 @@
+/**
+ * WordPress dependencies
+ */
+const { test, expect } = require( '@wordpress/e2e-test-utils-playwright' );
+
+const dashIconRegex = /.*?<\/span>/;
+const circleString =
+ ' ';
+const svgIcon = new RegExp(
+ `${ circleString }`
+);
+
+test.describe( 'Block Icons', () => {
+ test.beforeAll( async ( { requestUtils } ) => {
+ await requestUtils.activatePlugin( 'gutenberg-test-block-icons' );
+ } );
+
+ test.beforeEach( async ( { admin } ) => {
+ await admin.createNewPost();
+ } );
+
+ test.afterAll( async ( { requestUtils } ) => {
+ await requestUtils.deactivatePlugin( 'gutenberg-test-block-icons' );
+ } );
+
+ test( 'Block with svg icon', async ( { editor, page } ) => {
+ await page
+ .getByRole( 'toolbar', { name: 'Document tools' } )
+ .getByRole( 'button', { name: 'Toggle block inserter' } )
+ .click();
+
+ const blockLibrary = page.getByRole( 'region', {
+ name: 'Block Library',
+ } );
+
+ await blockLibrary.getByRole( 'searchbox' ).fill( 'TestSimpleSvgIcon' );
+
+ const blockOption = blockLibrary.getByRole( 'option', {
+ name: 'TestSimpleSvgIcon',
+ } );
+ const blockIcon = blockOption.locator( '.block-editor-block-icon' );
+
+ // Renders correctly the icon in the inserter.
+ await expect.poll( () => blockIcon.innerHTML() ).toMatch( svgIcon );
+
+ // Can insert the block.
+ await blockOption.click();
+ await expect(
+ page.getByRole( 'document', { name: 'Block: TestSimpleSvgIcon' } )
+ ).toBeVisible();
+
+ // Renders correctly the icon on the inspector.
+ await editor.openDocumentSettingsSidebar();
+ const inspectorIcon = page
+ .getByRole( 'region', { name: 'Editor settings' } )
+ .locator( '.block-editor-block-icon' );
+ await expect.poll( () => inspectorIcon.innerHTML() ).toMatch( svgIcon );
+ } );
+
+ test( 'Block with dash icon', async ( { editor, page } ) => {
+ await page
+ .getByRole( 'toolbar', { name: 'Document tools' } )
+ .getByRole( 'button', { name: 'Toggle block inserter' } )
+ .click();
+
+ const blockLibrary = page.getByRole( 'region', {
+ name: 'Block Library',
+ } );
+
+ await blockLibrary
+ .getByRole( 'searchbox' )
+ .fill( 'TestSimpleDashIcon' );
+
+ const blockOption = blockLibrary.getByRole( 'option', {
+ name: 'TestSimpleDashIcon',
+ } );
+ const blockIcon = blockOption.locator( '.block-editor-block-icon' );
+
+ // Renders correctly the icon in the inserter.
+ await expect
+ .poll( () => blockIcon.innerHTML() )
+ .toMatch( dashIconRegex );
+
+ // Can insert the block
+ await blockOption.click();
+ await expect(
+ page.getByRole( 'document', { name: 'Block: TestSimpleDashIcon' } )
+ ).toBeVisible();
+
+ // Renders correctly the icon on the inspector.
+ await editor.openDocumentSettingsSidebar();
+ const inspectorIcon = page
+ .getByRole( 'region', { name: 'Editor settings' } )
+ .locator( '.block-editor-block-icon' );
+ await expect
+ .poll( () => inspectorIcon.innerHTML() )
+ .toMatch( dashIconRegex );
+ } );
+
+ test( 'Block with function icon', async ( { editor, page } ) => {
+ await page
+ .getByRole( 'toolbar', { name: 'Document tools' } )
+ .getByRole( 'button', { name: 'Toggle block inserter' } )
+ .click();
+
+ const blockLibrary = page.getByRole( 'region', {
+ name: 'Block Library',
+ } );
+
+ await blockLibrary.getByRole( 'searchbox' ).fill( 'TestFunctionIcon' );
+
+ const blockOption = blockLibrary.getByRole( 'option', {
+ name: 'TestFunctionIcon',
+ } );
+ const blockIcon = blockOption.locator( '.block-editor-block-icon' );
+
+ // Renders correctly the icon in the inserter.
+ await expect.poll( () => blockIcon.innerHTML() ).toMatch( svgIcon );
+
+ // Can insert the block.
+ await blockOption.click();
+ await expect(
+ page.getByRole( 'document', { name: 'Block: TestFunctionIcon' } )
+ ).toBeVisible();
+
+ // Renders correctly the icon on the inspector.
+ await editor.openDocumentSettingsSidebar();
+ const inspectorIcon = page
+ .getByRole( 'region', { name: 'Editor settings' } )
+ .locator( '.block-editor-block-icon' );
+ await expect.poll( () => inspectorIcon.innerHTML() ).toMatch( svgIcon );
+ } );
+
+ test( 'Block with dash icon and background/foreground colors', async ( {
+ editor,
+ page,
+ } ) => {
+ await page
+ .getByRole( 'toolbar', { name: 'Document tools' } )
+ .getByRole( 'button', { name: 'Toggle block inserter' } )
+ .click();
+
+ const blockLibrary = page.getByRole( 'region', {
+ name: 'Block Library',
+ } );
+
+ await blockLibrary
+ .getByRole( 'searchbox' )
+ .fill( 'TestDashIconColors' );
+
+ const blockOption = blockLibrary.getByRole( 'option', {
+ name: 'TestDashIconColors',
+ } );
+ const blockIcon = blockOption.locator( '.block-editor-block-icon' );
+
+ await expect( blockIcon ).toHaveCSS(
+ 'background-color',
+ 'rgb(1, 0, 0)'
+ );
+ await expect( blockIcon ).toHaveCSS( 'color', 'rgb(254, 0, 0)' );
+ await expect
+ .poll( () => blockIcon.innerHTML() )
+ .toMatch( dashIconRegex );
+
+ await blockOption.click();
+ await editor.openDocumentSettingsSidebar();
+
+ const inspectorIcon = page
+ .getByRole( 'region', { name: 'Editor settings' } )
+ .locator( '.block-editor-block-icon' );
+
+ await expect( inspectorIcon ).toHaveCSS(
+ 'background-color',
+ 'rgb(1, 0, 0)'
+ );
+ await expect( inspectorIcon ).toHaveCSS( 'color', 'rgb(254, 0, 0)' );
+ await expect
+ .poll( () => inspectorIcon.innerHTML() )
+ .toMatch( dashIconRegex );
+ } );
+
+ test( 'Block with svg icon and background should compute a readable foreground color', async ( {
+ editor,
+ page,
+ } ) => {
+ await page
+ .getByRole( 'toolbar', { name: 'Document tools' } )
+ .getByRole( 'button', { name: 'Toggle block inserter' } )
+ .click();
+
+ const blockLibrary = page.getByRole( 'region', {
+ name: 'Block Library',
+ } );
+
+ await blockLibrary
+ .getByRole( 'searchbox' )
+ .fill( 'TestSvgIconBackground' );
+
+ const blockOption = blockLibrary.getByRole( 'option', {
+ name: 'TestSvgIconBackground',
+ } );
+ const blockIcon = blockOption.locator( '.block-editor-block-icon' );
+
+ await expect( blockIcon ).toHaveCSS(
+ 'background-color',
+ 'rgb(1, 0, 0)'
+ );
+ await expect( blockIcon ).toHaveCSS( 'color', 'rgb(248, 249, 249)' );
+ await expect.poll( () => blockIcon.innerHTML() ).toMatch( svgIcon );
+
+ await blockOption.click();
+ await editor.openDocumentSettingsSidebar();
+
+ const inspectorIcon = page
+ .getByRole( 'region', { name: 'Editor settings' } )
+ .locator( '.block-editor-block-icon' );
+
+ await expect( inspectorIcon ).toHaveCSS(
+ 'background-color',
+ 'rgb(1, 0, 0)'
+ );
+ await expect( inspectorIcon ).toHaveCSS(
+ 'color',
+ 'rgb(248, 249, 249)'
+ );
+ await expect.poll( () => inspectorIcon.innerHTML() ).toMatch( svgIcon );
+ } );
+} );
diff --git a/test/e2e/specs/editor/plugins/custom-taxonomies.spec.js b/test/e2e/specs/editor/plugins/custom-taxonomies.spec.js
new file mode 100644
index 00000000000000..9ac8df327a3a11
--- /dev/null
+++ b/test/e2e/specs/editor/plugins/custom-taxonomies.spec.js
@@ -0,0 +1,50 @@
+/**
+ * WordPress dependencies
+ */
+const { test, expect } = require( '@wordpress/e2e-test-utils-playwright' );
+
+test.describe( 'Custom Taxonomies labels are used', () => {
+ test.beforeAll( async ( { requestUtils } ) => {
+ await requestUtils.activatePlugin( 'gutenberg-test-custom-taxonomies' );
+ } );
+
+ test.beforeEach( async ( { admin } ) => {
+ await admin.createNewPost();
+ } );
+
+ test.afterAll( async ( { requestUtils } ) => {
+ await requestUtils.deactivatePlugin(
+ 'gutenberg-test-custom-taxonomies'
+ );
+ } );
+
+ test( 'Ensures the custom taxonomy labels are respected', async ( {
+ editor,
+ page,
+ } ) => {
+ await editor.openDocumentSettingsSidebar();
+ const editorSettings = page.getByRole( 'region', {
+ name: 'Editor settings',
+ } );
+ const modelPanel = editorSettings.getByRole( 'button', {
+ name: 'Model',
+ } );
+
+ // Open the panel if needed.
+ if (
+ ( await modelPanel.getAttribute( 'aria-expanded' ) ) === 'false'
+ ) {
+ await modelPanel.click();
+ }
+
+ // Check the add new button.
+ await editorSettings
+ .getByRole( 'combobox', { name: 'Add New Model' } )
+ .fill( 'Model 1' );
+ await page.keyboard.press( 'Enter' );
+
+ await expect(
+ editorSettings.getByRole( 'button', { name: 'Remove Mode' } )
+ ).toBeVisible();
+ } );
+} );
diff --git a/test/e2e/specs/editor/plugins/inner-blocks-locking-all-embed.spec.js b/test/e2e/specs/editor/plugins/inner-blocks-locking-all-embed.spec.js
new file mode 100644
index 00000000000000..3bf0ff459cb7fe
--- /dev/null
+++ b/test/e2e/specs/editor/plugins/inner-blocks-locking-all-embed.spec.js
@@ -0,0 +1,59 @@
+/**
+ * WordPress dependencies
+ */
+const { test, expect } = require( '@wordpress/e2e-test-utils-playwright' );
+
+const EMBED_URLS = [
+ '/oembed/1.0/proxy',
+ `rest_route=${ encodeURIComponent( '/oembed/1.0/proxy' ) }`,
+];
+const MOCK_RESPONSES = {
+ url: 'https://twitter.com/wordpress',
+ html: 'Mock success response.
',
+ type: 'rich',
+ provider_name: 'Twitter',
+ provider_url: 'https://twitter.com',
+ version: '1.0',
+};
+
+test.describe( 'Embed block inside a locked all parent', () => {
+ test.beforeAll( async ( { requestUtils } ) => {
+ await requestUtils.activatePlugin(
+ 'gutenberg-test-innerblocks-locking-all-embed'
+ );
+ } );
+
+ test.afterAll( async ( { requestUtils } ) => {
+ await requestUtils.deactivatePlugin(
+ 'gutenberg-test-innerblocks-locking-all-embed'
+ );
+ } );
+
+ test( 'embed block should be able to embed external content', async ( {
+ admin,
+ editor,
+ page,
+ } ) => {
+ await admin.createNewPost();
+ await page.route(
+ ( url ) => EMBED_URLS.some( ( u ) => url.href.includes( u ) ),
+ async ( route ) => {
+ await route.fulfill( {
+ json: MOCK_RESPONSES,
+ } );
+ }
+ );
+
+ await editor.insertBlock( {
+ name: 'test/test-inner-blocks-locking-all-embed',
+ } );
+ await page
+ .getByRole( 'textbox', { name: 'Embed URL' } )
+ .fill( 'https://twitter.com/wordpress' );
+ await page.keyboard.press( 'Enter' );
+
+ await expect(
+ page.getByRole( 'document', { name: 'Block: Twitter' } )
+ ).toBeVisible();
+ } );
+} );
diff --git a/test/e2e/specs/editor/various/a11y.spec.js b/test/e2e/specs/editor/various/a11y.spec.js
index 0a5e421debedb7..05c4ea3b8e97e3 100644
--- a/test/e2e/specs/editor/various/a11y.spec.js
+++ b/test/e2e/specs/editor/various/a11y.spec.js
@@ -148,9 +148,6 @@ test.describe( 'a11y (@firefox, @webkit)', () => {
const blocksTab = preferencesModal.locator(
'role=tab[name="Blocks"i]'
);
- const panelsTab = preferencesModal.locator(
- 'role=tab[name="Panels"i]'
- );
// Check initial focus is on the modal dialog container.
await expect( preferencesModal ).toBeFocused();
@@ -204,13 +201,5 @@ test.describe( 'a11y (@firefox, @webkit)', () => {
await expect( closeButton ).toBeFocused();
await pageUtils.pressKeys( 'Shift+Tab' );
await expect( preferencesModalContent ).not.toBeFocused();
-
- // The Panels tab panel content is short and not scrollable.
- // Check it's not focusable.
- await clickAndFocusTab( panelsTab );
- await pageUtils.pressKeys( 'Shift+Tab' );
- await expect( closeButton ).toBeFocused();
- await pageUtils.pressKeys( 'Shift+Tab' );
- await expect( preferencesModalContent ).not.toBeFocused();
} );
} );
diff --git a/test/e2e/specs/editor/various/block-renaming.spec.js b/test/e2e/specs/editor/various/block-renaming.spec.js
index f8d9548fbe8667..19a2818fd3a411 100644
--- a/test/e2e/specs/editor/various/block-renaming.spec.js
+++ b/test/e2e/specs/editor/various/block-renaming.spec.js
@@ -4,8 +4,30 @@
const { test, expect } = require( '@wordpress/e2e-test-utils-playwright' );
test.describe( 'Block Renaming', () => {
- test.beforeEach( async ( { admin } ) => {
+ test.beforeEach( async ( { admin, page } ) => {
await admin.createNewPost();
+
+ // Registering block must be after creation of Post.
+ await page.evaluate( () => {
+ const registerBlockType = window.wp.blocks.registerBlockType;
+
+ registerBlockType(
+ 'my-plugin/block-that-does-not-support-renaming',
+ {
+ title: 'No Rename Support Block',
+ icon: 'smiley',
+ supports: {
+ renaming: false,
+ },
+ edit() {
+ return null;
+ },
+ save() {
+ return null;
+ },
+ }
+ );
+ } );
} );
test.describe( 'Dialog renaming', () => {
@@ -23,18 +45,12 @@ test.describe( 'Block Renaming', () => {
name: 'Block navigation structure',
} );
- // Create a two blocks on the page.
await editor.insertBlock( {
- name: 'core/paragraph',
+ name: 'core/group',
attributes: { content: 'First Paragraph' },
} );
- await editor.insertBlock( {
- name: 'core/paragraph',
- attributes: { content: 'Second Paragraph' },
- } );
- // Multiselect via keyboard.
- await pageUtils.pressKeys( 'primary+a' );
+ // Select via keyboard.
await pageUtils.pressKeys( 'primary+a' );
// Convert to a Group block which supports renaming.
@@ -144,46 +160,99 @@ test.describe( 'Block Renaming', () => {
] );
} );
- test( 'does not allow renaming of blocks that do not support renaming', async ( {
- // use `core/template-part` as the block
+ test( 'does not allow renaming of blocks that do not support the feature', async ( {
editor,
page,
+ pageUtils,
} ) => {
+ await pageUtils.pressKeys( 'access+o' );
+
+ const listView = page.getByRole( 'treegrid', {
+ name: 'Block navigation structure',
+ } );
+
await editor.insertBlock( {
- name: 'core/navigation',
+ name: 'my-plugin/block-that-does-not-support-renaming',
} );
- // Opens the block options menu and check there is not a `Rename` option
- await editor.clickBlockToolbarButton( 'Options' );
- //
+ // Select via keyboard.
+ await pageUtils.pressKeys( 'primary+a' );
- const renameMenuItem = page.getByRole( 'menuitem', {
- name: 'Rename',
+ const blockOptionsTrigger = listView.getByRole( 'button', {
+ name: 'Options for No Rename Support Block',
} );
- // TODO: assert that the locator didn't find a DOM node at all.
+ await blockOptionsTrigger.click();
+
+ const renameMenuItem = page
+ .getByRole( 'menu', {
+ name: 'Options for No Rename Support Block',
+ } )
+ .getByRole( 'menuitem', {
+ name: 'Rename',
+ } );
+
+ // Expect the Rename menu item not to exist at all.
await expect( renameMenuItem ).toBeHidden();
} );
- } );
- test.describe( 'Block inspector renaming', () => {
- test( 'allows renaming of blocks that support the feature via "Advanced" section of block inspector tools', async ( {
+ test( 'displays Rename option in related menu when block is not selected', async ( {
editor,
page,
pageUtils,
} ) => {
- // Create a two blocks on the page.
+ await pageUtils.pressKeys( 'access+o' );
+
+ const listView = page.getByRole( 'treegrid', {
+ name: 'Block navigation structure',
+ } );
+
await editor.insertBlock( {
- name: 'core/paragraph',
- attributes: { content: 'First Paragraph' },
+ name: 'core/heading',
} );
+
await editor.insertBlock( {
name: 'core/paragraph',
- attributes: { content: 'Second Paragraph' },
} );
- // Multiselect via keyboard.
- await pageUtils.pressKeys( 'primary+a' );
+ // Select the Paragraph block.
+ await listView
+ .getByRole( 'link', {
+ name: 'Paragraph',
+ } )
+ .click();
+
+ // Trigger options menu for the Heading (not the selected block).
+ const blockOptionsTrigger = listView.getByRole( 'button', {
+ name: 'Options for Heading',
+ } );
+
+ await blockOptionsTrigger.click();
+
+ const renameMenuItem = page
+ .getByRole( 'menu', {
+ name: 'Options for Heading',
+ } )
+ .getByRole( 'menuitem', {
+ name: 'Rename',
+ } );
+
+ // Expect the Rename menu item not to exist at all.
+ await expect( renameMenuItem ).toBeVisible();
+ } );
+ } );
+
+ test.describe( 'Block inspector renaming', () => {
+ test( 'allows renaming of blocks that support the feature via "Advanced" section of block inspector tools', async ( {
+ editor,
+ page,
+ pageUtils,
+ } ) => {
+ await editor.insertBlock( {
+ name: 'core/group',
+ } );
+
+ // Select via keyboard.
await pageUtils.pressKeys( 'primary+a' );
// Convert to a Group block which supports renaming.
@@ -239,23 +308,19 @@ test.describe( 'Block Renaming', () => {
] );
} );
- test( 'does not allow renaming of blocks that do not support renaming', async ( {
+ test( 'does not allow renaming of blocks that do not support the feature', async ( {
editor,
page,
+ pageUtils,
} ) => {
await editor.insertBlock( {
- name: 'core/navigation',
+ name: 'my-plugin/block-that-does-not-support-renaming',
} );
- await editor.openDocumentSettingsSidebar();
-
- const settingsTab = page
- .getByRole( 'region', {
- name: 'Editor settings',
- } )
- .getByRole( 'tab', { name: 'Settings' } );
+ // Multiselect via keyboard.
+ await pageUtils.pressKeys( 'primary+a' );
- await settingsTab.click();
+ await editor.openDocumentSettingsSidebar();
const advancedPanelToggle = page
.getByRole( 'region', {
@@ -268,11 +333,12 @@ test.describe( 'Block Renaming', () => {
await advancedPanelToggle.click();
- const nameInput = page.getByRole( 'textbox', {
- name: 'Block name',
- } );
-
- await expect( nameInput ).toBeHidden();
+ // Expect the Rename control not to exist at all.
+ await expect(
+ page.getByRole( 'textbox', {
+ name: 'Block name',
+ } )
+ ).toBeHidden();
} );
} );
} );
diff --git a/test/e2e/specs/editor/various/is-typing.spec.js b/test/e2e/specs/editor/various/is-typing.spec.js
new file mode 100644
index 00000000000000..0cd5e0d6f64953
--- /dev/null
+++ b/test/e2e/specs/editor/various/is-typing.spec.js
@@ -0,0 +1,63 @@
+/**
+ * WordPress dependencies
+ */
+const { test, expect } = require( '@wordpress/e2e-test-utils-playwright' );
+
+test.describe( 'isTyping', () => {
+ test.beforeEach( async ( { admin } ) => {
+ await admin.createNewPost();
+ } );
+
+ test( 'should hide the toolbar when typing', async ( { editor, page } ) => {
+ // Enter to reach paragraph block.
+ await page.keyboard.press( 'Enter' );
+ // Insert paragraph
+ await page.keyboard.type( 'Type' );
+
+ const blockToolbar = page.locator(
+ 'role=toolbar[name="Block tools"i]'
+ );
+
+ // Toolbar should not be showing
+ await expect( blockToolbar ).toBeHidden();
+
+ // Moving the mouse shows the toolbar.
+ await editor.showBlockToolbar();
+
+ // Toolbar is visible.
+ await expect( blockToolbar ).toBeVisible();
+
+ // Typing again hides the toolbar
+ await page.keyboard.type( ' and continue' );
+
+ // Toolbar is hidden again
+ await expect( blockToolbar ).toBeHidden();
+ } );
+
+ test( 'should not close the dropdown when typing in it', async ( {
+ editor,
+ page,
+ } ) => {
+ // Add a block with a dropdown in the toolbar that contains an input.
+ await editor.insertBlock( { name: 'core/query' } );
+
+ // Tab to Start Blank Button
+ await page.keyboard.press( 'Tab' );
+ // Select the Start Blank Button
+ await page.keyboard.press( 'Enter' );
+ // Select the First variation
+ await page.keyboard.press( 'Enter' );
+ // Moving the mouse shows the toolbar.
+ await editor.showBlockToolbar();
+ // Open the dropdown.
+ await page.getByRole( 'button', { name: 'Display settings' } ).click();
+
+ const itemsPerPageInput = page.getByLabel( 'Items per Page' );
+ // Make sure we're where we think we are
+ await expect( itemsPerPageInput ).toBeFocused();
+ // Type inside the dropdown's input
+ await page.keyboard.type( '00' );
+ // The input should still be visible.
+ await expect( itemsPerPageInput ).toBeVisible();
+ } );
+} );
diff --git a/test/e2e/specs/editor/various/multi-entity-saving.spec.js b/test/e2e/specs/editor/various/multi-entity-saving.spec.js
new file mode 100644
index 00000000000000..7a7298c137c4b5
--- /dev/null
+++ b/test/e2e/specs/editor/various/multi-entity-saving.spec.js
@@ -0,0 +1,210 @@
+/**
+ * WordPress dependencies
+ */
+const { test, expect } = require( '@wordpress/e2e-test-utils-playwright' );
+
+test.describe( 'Editor - Multi-entity save flow', () => {
+ let originalSiteTitle, originalBlogDescription;
+
+ test.beforeEach( async ( { requestUtils } ) => {
+ const siteSettings = await requestUtils.getSiteSettings();
+
+ originalSiteTitle = siteSettings.title;
+ originalBlogDescription = siteSettings.description;
+ } );
+
+ test.afterEach( async ( { requestUtils, editor } ) => {
+ await requestUtils.updateSiteSettings( {
+ title: originalSiteTitle,
+ description: originalBlogDescription,
+ } );
+
+ // Restore the Publish sidebar.
+ await editor.setPreferences( 'core/edit-post', {
+ isPublishSidebarEnabled: true,
+ } );
+ } );
+
+ test( 'Save flow should work as expected', async ( {
+ admin,
+ editor,
+ page,
+ } ) => {
+ await admin.createNewPost();
+ await editor.canvas
+ .getByRole( 'textbox', { name: 'Add title' } )
+ .fill( 'Test Post...' );
+ await page.keyboard.press( 'Enter' );
+
+ const topBar = page.getByRole( 'region', { name: 'Editor top bar' } );
+ const publishButton = topBar.getByRole( 'button', { name: 'Publish' } );
+
+ // Should not trigger multi-entity save button with only post edited.
+ await expect( publishButton ).toBeEnabled();
+ await expect( publishButton ).not.toHaveClass( /has-changes-dot/ );
+
+ const openPublishPanel = page.getByRole( 'button', {
+ name: 'Open publish panel',
+ } );
+ const openSavePanel = page.getByRole( 'button', {
+ name: 'Open save panel',
+ } );
+ const publishPanel = page.getByRole( 'region', {
+ name: 'Editor publish',
+ } );
+
+ // Should only have publish panel a11y button active with only post edited.
+ await expect( openPublishPanel ).toBeVisible();
+ await expect( openSavePanel ).toBeHidden();
+ await expect( publishPanel ).not.toContainText(
+ 'Are you ready to publish?'
+ );
+ await expect( publishPanel ).not.toContainText(
+ 'Are you ready to save?'
+ );
+
+ // Add a title block and edit it.
+ await editor.insertBlock( {
+ name: 'core/site-title',
+ } );
+ const siteTitleField = editor.canvas.getByRole( 'textbox', {
+ name: 'Site title text',
+ } );
+ await siteTitleField.fill( `${ originalSiteTitle }...` );
+
+ // Should trigger multi-entity save button once template part edited.
+ await expect( publishButton ).toHaveClass( /has-changes-dot/ );
+
+ // Should only have save panel a11y button active after child entities edited.
+ await expect( openPublishPanel ).toBeHidden();
+ await expect( openSavePanel ).toBeVisible();
+ await expect( publishPanel ).not.toContainText(
+ 'Are you ready to publish?'
+ );
+ await expect( publishPanel ).not.toContainText(
+ 'Are you ready to save?'
+ );
+
+ // Opening panel has boxes checked by default.
+ await publishButton.click();
+ await expect( publishPanel ).toContainText( 'Are you ready to save?' );
+ const allCheckboxes = await publishPanel
+ .getByRole( 'checkbox' )
+ .count();
+ await expect(
+ publishPanel.getByRole( 'checkbox', { checked: true } )
+ ).toHaveCount( allCheckboxes );
+
+ // Should not show other panels (or their a11y buttons) while save panel opened.
+ await expect( openPublishPanel ).toBeHidden();
+ await expect( openSavePanel ).toBeHidden();
+ await expect( publishPanel ).not.toContainText(
+ 'Are you ready to publish?'
+ );
+
+ // Publish panel should open after saving.
+ await publishPanel.getByRole( 'button', { name: 'Save' } ).click();
+ await expect( publishPanel ).toContainText(
+ 'Are you ready to publish?'
+ );
+
+ // No other panels (or their a11y buttons) should be present with publish panel open.
+ await expect( openPublishPanel ).toBeHidden();
+ await expect( openSavePanel ).toBeHidden();
+ await expect( publishPanel ).not.toContainText(
+ 'Are you ready to save?'
+ );
+
+ // Close publish panel.
+ await publishPanel.getByRole( 'button', { name: 'Cancel' } ).click();
+
+ // Verify saving is disabled.
+ await expect(
+ topBar.getByRole( 'button', { name: 'Saved' } )
+ ).toBeDisabled();
+ await expect( publishButton ).not.toHaveClass( /has-changes-dot/ );
+ await expect( openSavePanel ).toBeHidden();
+
+ await editor.publishPost();
+
+ // Update the post.
+ await editor.canvas
+ .getByRole( 'textbox', { name: 'Add title' } )
+ .fill( 'Updated post title' );
+
+ const updateButton = topBar.getByRole( 'button', { name: 'Update' } );
+
+ // Verify update button is enabled.
+ await expect( updateButton ).toBeEnabled();
+
+ // Verify multi-entity saving not enabled.
+ await expect( updateButton ).not.toHaveClass( /has-changes-dot/ );
+ await expect( openSavePanel ).toBeHidden();
+
+ await siteTitleField.fill( `${ originalSiteTitle }!` );
+
+ // Multi-entity saving should be enabled.
+ await expect( updateButton ).toHaveClass( /has-changes-dot/ );
+ await expect( openSavePanel ).toBeVisible();
+ } );
+
+ test( 'Site blocks should save individually', async ( {
+ admin,
+ editor,
+ page,
+ } ) => {
+ await admin.createNewPost();
+ await editor.setPreferences( 'core/edit-post', {
+ isPublishSidebarEnabled: false,
+ } );
+
+ // Add site blocks.
+ await editor.insertBlock( {
+ name: 'core/site-title',
+ } );
+ await editor.insertBlock( {
+ name: 'core/site-tagline',
+ } );
+
+ const siteTitleField = editor.canvas.getByRole( 'textbox', {
+ name: 'Site title text',
+ } );
+
+ // Ensure title is retrieved before typing.
+ await expect( siteTitleField ).toHaveText( originalSiteTitle );
+
+ await siteTitleField.fill( `${ originalSiteTitle }...` );
+ await editor.canvas
+ .getByRole( 'document', {
+ name: 'Block: Site Tagline',
+ } )
+ .fill( 'Just another WordPress site' );
+
+ const topBar = page.getByRole( 'region', { name: 'Editor top bar' } );
+ const publishPanel = page.getByRole( 'region', {
+ name: 'Editor publish',
+ } );
+
+ await topBar.getByRole( 'button', { name: 'Publish' } ).click();
+ await expect( publishPanel.getByRole( 'checkbox' ) ).toHaveCount( 3 );
+
+ // Skip site title saving.
+ await publishPanel
+ .getByRole( 'checkbox', {
+ name: 'Title',
+ } )
+ .setChecked( false );
+
+ await publishPanel.getByRole( 'button', { name: 'Save' } ).click();
+
+ // Wait for the snackbar notice that the post has been published.
+ await page
+ .getByRole( 'button', { name: 'Dismiss this notice' } )
+ .filter( { hasText: 'published' } )
+ .waitFor();
+
+ await topBar.getByRole( 'button', { name: 'Update' } ).click();
+
+ await expect( publishPanel.getByRole( 'checkbox' ) ).toHaveCount( 1 );
+ } );
+} );
diff --git a/test/e2e/specs/editor/various/post-title.spec.js b/test/e2e/specs/editor/various/post-title.spec.js
new file mode 100644
index 00000000000000..3c2330d1684d03
--- /dev/null
+++ b/test/e2e/specs/editor/various/post-title.spec.js
@@ -0,0 +1,359 @@
+/**
+ * WordPress dependencies
+ */
+const { test, expect } = require( '@wordpress/e2e-test-utils-playwright' );
+
+test.describe( 'Post title', () => {
+ test.describe( 'Focus handling', () => {
+ test( 'should focus on the post title field when creating a new post in visual mode', async ( {
+ editor,
+ admin,
+ } ) => {
+ await admin.createNewPost();
+
+ const pageTitleField = editor.canvas.getByRole( 'textbox', {
+ name: 'Add title',
+ } );
+
+ await expect( pageTitleField ).toBeFocused();
+ } );
+
+ test( 'should focus on the post title field when creating a new post in code editor mode', async ( {
+ page,
+
+ admin,
+ pageUtils,
+ } ) => {
+ await admin.createNewPost();
+
+ // switch Editor to code editor mode
+ // Open code editor
+ await pageUtils.pressKeys( 'secondary+M' ); // Emulates CTRL+Shift+Alt + M => toggle code editor
+
+ // Check we're in Code view mode.
+ await expect(
+ page.getByRole( 'heading', {
+ name: 'Editing code',
+ } )
+ ).toBeVisible();
+
+ const pageTitleField = page.getByRole( 'textbox', {
+ name: 'Add title',
+ } );
+
+ await expect( pageTitleField ).toBeFocused();
+ } );
+ } );
+ test.describe( 'HTML handling', () => {
+ test( `should (visually) render any HTML in Post Editor's post title field when in Visual editing mode`, async ( {
+ page,
+ editor,
+ admin,
+ requestUtils,
+ } ) => {
+ const { id: postId } = await requestUtils.createPost( {
+ title: 'I am emphasis I am bold I am anchor ',
+ content: 'Hello world',
+ status: 'publish',
+ } );
+
+ await admin.visitAdminPage(
+ 'post.php',
+ `post=${ postId }&action=edit`
+ );
+
+ await page.evaluate( () => {
+ window.wp.data
+ .dispatch( 'core/preferences' )
+ .set( 'core/edit-post', 'welcomeGuide', false );
+
+ window.wp.data
+ .dispatch( 'core/preferences' )
+ .set( 'core/edit-post', 'fullscreenMode', false );
+ }, false );
+
+ const pageTitleField = editor.canvas.getByRole( 'textbox', {
+ name: 'Add title',
+ } );
+
+ await expect( pageTitleField ).toHaveText(
+ 'I am emphasis I am bold I am anchor'
+ );
+
+ // Check the HTML elements have been **rendered** rather than
+ // output in raw form.
+ await expect( pageTitleField.locator( 'css=em' ) ).toHaveText(
+ 'emphasis'
+ );
+
+ await expect( pageTitleField.locator( 'css=strong' ) ).toHaveText(
+ 'bold'
+ );
+
+ await expect( pageTitleField.locator( 'css=a' ) ).toHaveText(
+ 'anchor'
+ );
+ } );
+
+ test( `should show raw HTML in the post title field when in Code view mode `, async ( {
+ page,
+ admin,
+ requestUtils,
+ pageUtils,
+ } ) => {
+ const { id: postId } = await requestUtils.createPost( {
+ title: 'I am emphasis I am bold I am anchor ',
+ content: 'Hello world',
+ status: 'publish',
+ } );
+
+ await admin.visitAdminPage(
+ 'post.php',
+ `post=${ postId }&action=edit`
+ );
+
+ await page.evaluate( () => {
+ window.wp.data
+ .dispatch( 'core/preferences' )
+ .set( 'core/edit-post', 'welcomeGuide', false );
+
+ window.wp.data
+ .dispatch( 'core/preferences' )
+ .set( 'core/edit-post', 'fullscreenMode', false );
+ }, false );
+
+ // switch Editor to code editor mode
+ // Open code editor
+ await pageUtils.pressKeys( 'secondary+M' ); // Emulates CTRL+Shift+Alt + M => toggle code editor
+
+ // Check we're in Code view mode.
+ await expect(
+ page.getByRole( 'heading', {
+ name: 'Editing code',
+ } )
+ ).toBeVisible();
+
+ const codeViewPageTitleField = page.getByRole( 'textbox', {
+ name: 'Add title',
+ } );
+
+ // Check that the pageTitleField has the raw HTML
+ await expect( codeViewPageTitleField ).toHaveText(
+ 'I am emphasis I am bold I am anchor '
+ );
+ } );
+
+ test( 'should strip HTML tags when pasting string of HTML into the post title field in Visual mode', async ( {
+ editor,
+ admin,
+ pageUtils,
+ } ) => {
+ await admin.createNewPost();
+
+ const pageTitleField = editor.canvas.getByRole( 'textbox', {
+ name: 'Add title',
+ } );
+
+ await expect( pageTitleField ).toBeFocused();
+
+ pageUtils.setClipboardData( {
+ html: 'I am emphasis I am bold I am anchor ',
+ } );
+ await pageUtils.pressKeys( 'primary+v' );
+
+ await expect( pageTitleField ).toHaveText(
+ 'I am emphasis I am bold I am anchor'
+ );
+
+ // Check the HTML elements have been stripped and are not rendered.
+ await expect( pageTitleField.locator( 'css=em' ) ).toBeHidden();
+
+ await expect( pageTitleField.locator( 'css=strong' ) ).toBeHidden();
+
+ await expect( pageTitleField.locator( 'css=a' ) ).toBeHidden();
+ } );
+
+ // Reinstate once the PR to fix paste events is merged:
+ // https://github.com/WordPress/gutenberg/pull/55030.
+ // eslint-disable-next-line playwright/no-skipped-test
+ test.skip( 'should retain HTML tags when pasting string of HTML into the post title field in Code view mode', async ( {
+ page,
+ admin,
+ pageUtils,
+ } ) => {
+ await admin.createNewPost();
+
+ // switch Editor to code editor mode
+ // Open code editor
+ await pageUtils.pressKeys( 'secondary+M' ); // Emulates CTRL+Shift+Alt + M => toggle code editor
+
+ // Check we're in Code view mode.
+ await expect(
+ page.getByRole( 'heading', {
+ name: 'Editing code',
+ } )
+ ).toBeVisible();
+
+ const pageTitleField = page.getByRole( 'textbox', {
+ name: 'Add title',
+ } );
+
+ pageUtils.setClipboardData( {
+ plainText:
+ 'I am emphasis I am bold I am anchor ',
+ html: 'I am emphasis I am bold I am anchor ',
+ } );
+
+ // focus on the title field
+ await pageTitleField.focus();
+
+ await pageUtils.pressKeys( 'primary+v' );
+
+ await expect( pageTitleField ).toHaveText(
+ 'I am emphasis I am bold I am anchor '
+ );
+ } );
+
+ test( 'should strip HTML tags from Post Title when pasted text is transformed to blocks', async ( {
+ editor,
+ admin,
+ pageUtils,
+ } ) => {
+ await admin.createNewPost();
+
+ const pageTitleField = editor.canvas.getByRole( 'textbox', {
+ name: 'Add title',
+ } );
+
+ await expect( pageTitleField ).toBeFocused();
+
+ // This HTML will ultimately be parsed into two blocks
+ // The first will have it's `content` attribute stripped of HTML
+ // and used as the Page Title.
+ // The second will be inserted into the post contents and will
+ // retain its HTML.
+ pageUtils.setClipboardData( {
+ html: `
+ I am heading block title with HTML tag
+ And I am the rest of titles with emphasis tag !
+ `,
+ } );
+ await pageUtils.pressKeys( 'primary+v' );
+
+ // Check the HTML elements have been stripped from the first block's
+ // `content` attribute...
+ await expect( pageTitleField ).toHaveText(
+ 'I am heading block title with HTML tag'
+ );
+
+ // ...and are not rendered.
+ await expect( pageTitleField.locator( 'css=strong' ) ).toBeHidden();
+
+ // Check the 2nd block ended up in the post contents and did not
+ // have its HTML stripped out.
+ await expect.poll( editor.getBlocks ).toMatchObject( [
+ {
+ name: 'core/paragraph',
+ attributes: {
+ content:
+ 'And I am the rest of titles with emphasis tag !',
+ },
+ },
+ ] );
+ } );
+
+ test( 'should output HTML tags in plaintext when added into Post Title field in visual editor mode', async ( {
+ editor,
+ page,
+ admin,
+ pageUtils,
+ } ) => {
+ await admin.createNewPost();
+
+ const pageTitleField = editor.canvas.getByRole( 'textbox', {
+ name: 'Add title',
+ } );
+
+ await expect( pageTitleField ).toBeFocused();
+
+ await page.keyboard.type( 'I am emphasis ' );
+
+ // Expect that manually inputting HTML does not result in any
+ // unexpected transformations into rendered output.
+ await expect( pageTitleField ).toHaveText(
+ 'I am emphasis '
+ );
+
+ // Check that the `em` tag was output in plaintext and not rendered.
+ await expect( pageTitleField.locator( 'css=em' ) ).toBeHidden();
+
+ // Switch to code view
+ await pageUtils.pressKeys( 'secondary+M' ); // Emulates CTRL+Shift+Alt + M => toggle code editor
+
+ const codeViewPageTitleField = page.getByRole( 'textbox', {
+ name: 'Add title',
+ } );
+
+ // Check that the `em` tag was output in plaintext (HTML entities)
+ // Note that the `>` is not required to be converted to entity form
+ // (see https://github.com/WordPress/gutenberg/pull/54718/files#r1347124685).
+ await expect( codeViewPageTitleField ).toHaveText(
+ 'I am <em>emphasis</em>'
+ );
+ } );
+
+ test( 'should output HTML tags in plaintext in visual editor mode when HTML is added in plaintext in code editor mode', async ( {
+ editor,
+ page,
+ admin,
+ pageUtils,
+ } ) => {
+ await admin.createNewPost();
+
+ // switch Editor to code editor mode
+ // Open code editor
+ await pageUtils.pressKeys( 'secondary+M' ); // Emulates CTRL+Shift+Alt + M => toggle code editor
+
+ // Check we're in Code view mode.
+ await expect(
+ page.getByRole( 'heading', {
+ name: 'Editing code',
+ } )
+ ).toBeVisible();
+
+ const codeViewPageTitleField = page.getByRole( 'textbox', {
+ name: 'Add title',
+ } );
+
+ await codeViewPageTitleField.focus();
+
+ // Also verifies that the field handles typing into the field.
+ await page.keyboard.type( 'I am <em>emphasis</em>' );
+
+ await expect( codeViewPageTitleField ).toHaveText(
+ 'I am <em>emphasis</em>'
+ );
+
+ // Switch to visual view
+ await pageUtils.pressKeys( 'secondary+M' ); // Emulates CTRL+Shift+Alt + M => toggle code editor
+
+ const visualViewPageTitleField = editor.canvas.getByRole(
+ 'textbox',
+ {
+ name: 'Add title',
+ editable: 'richtext',
+ }
+ );
+
+ // Check that the `em` tag was output in plaintext
+ await expect( visualViewPageTitleField ).toHaveText(
+ 'I am emphasis '
+ );
+
+ // Check that no HTML tags were rendered.
+ await expect(
+ visualViewPageTitleField.locator( 'css=em' )
+ ).toBeHidden();
+ } );
+ } );
+} );
diff --git a/test/e2e/specs/editor/various/pref-modal.spec.js b/test/e2e/specs/editor/various/pref-modal.spec.js
new file mode 100644
index 00000000000000..f99c7d32a22a94
--- /dev/null
+++ b/test/e2e/specs/editor/various/pref-modal.spec.js
@@ -0,0 +1,55 @@
+/**
+ * WordPress dependencies
+ */
+const { test, expect } = require( '@wordpress/e2e-test-utils-playwright' );
+
+test.describe( 'Preferences modal', () => {
+ test.beforeEach( async ( { admin } ) => {
+ await admin.createNewPost();
+ } );
+
+ test.describe( 'Preferences modal adaps to viewport', () => {
+ test( 'Enable pre-publish flow is visible on desktop ', async ( {
+ page,
+ } ) => {
+ await page.click(
+ 'role=region[name="Editor top bar"i] >> role=button[name="Options"i]'
+ );
+ await page.click( 'role=menuitem[name="Preferences"i]' );
+
+ const prePublishToggle = page.locator(
+ 'role=checkbox[name="Enable pre-publish flow"i]'
+ );
+
+ await expect( prePublishToggle ).toBeVisible();
+ } );
+ } );
+ test.describe( 'Preferences modal adaps to viewport', () => {
+ test( 'Enable pre-publish flow is not visible on mobile ', async ( {
+ page,
+ } ) => {
+ await page.setViewportSize( { width: 500, height: 800 } );
+
+ await page.click(
+ 'role=region[name="Editor top bar"i] >> role=button[name="Options"i]'
+ );
+ await page.click( 'role=menuitem[name="Preferences"i]' );
+
+ const generalButton = page.locator(
+ 'role=button[name="General"i]'
+ );
+
+ const generalTabPanel = page.locator(
+ 'role=tabPanel[name="General"i]'
+ );
+
+ const prePublishToggle = page.locator(
+ 'role=checkbox[name="Enable pre-publish flow"i]'
+ );
+
+ await expect( generalButton ).toBeVisible();
+ await expect( generalTabPanel ).toBeHidden();
+ await expect( prePublishToggle ).toBeHidden();
+ } );
+ } );
+} );
diff --git a/test/e2e/specs/editor/various/preview.spec.js b/test/e2e/specs/editor/various/preview.spec.js
index 8a4ee5a6bd81d2..0666de1405fae1 100644
--- a/test/e2e/specs/editor/various/preview.spec.js
+++ b/test/e2e/specs/editor/various/preview.spec.js
@@ -335,9 +335,9 @@ class PreviewUtils {
);
await this.page.click( 'role=menuitem[name="Preferences"i]' );
- // Navigate to panels section.
+ // Navigate to general section.
await this.page.click(
- 'role=dialog[name="Preferences"i] >> role=tab[name="Panels"i]'
+ 'role=dialog[name="Preferences"i] >> role=tab[name="General"i]'
);
// Find custom fields checkbox.
diff --git a/test/e2e/specs/interactivity/directive-effect.spec.ts b/test/e2e/specs/interactivity/directive-watch.spec.ts
similarity index 79%
rename from test/e2e/specs/interactivity/directive-effect.spec.ts
rename to test/e2e/specs/interactivity/directive-watch.spec.ts
index 40030d257661fc..09bd0214c0a51e 100644
--- a/test/e2e/specs/interactivity/directive-effect.spec.ts
+++ b/test/e2e/specs/interactivity/directive-watch.spec.ts
@@ -3,14 +3,14 @@
*/
import { test, expect } from './fixtures';
-test.describe( 'data-wp-effect', () => {
+test.describe( 'data-wp-watch', () => {
test.beforeAll( async ( { interactivityUtils: utils } ) => {
await utils.activatePlugins();
- await utils.addPostWithBlock( 'test/directive-effect' );
+ await utils.addPostWithBlock( 'test/directive-watch' );
} );
test.beforeEach( async ( { interactivityUtils: utils, page } ) => {
- await page.goto( utils.getLink( 'test/directive-effect' ) );
+ await page.goto( utils.getLink( 'test/directive-watch' ) );
} );
test.afterAll( async ( { interactivityUtils: utils } ) => {
@@ -18,12 +18,12 @@ test.describe( 'data-wp-effect', () => {
await utils.deleteAllPosts();
} );
- test( 'check that effect runs when it is added', async ( { page } ) => {
+ test( 'check that watch runs when it is added', async ( { page } ) => {
const el = page.getByTestId( 'element in the DOM' );
await expect( el ).toContainText( 'element is in the DOM' );
} );
- test( 'check that effect runs when it is removed', async ( { page } ) => {
+ test( 'check that watch runs when it is removed', async ( { page } ) => {
await page.getByTestId( 'toggle' ).click();
const el = page.getByTestId( 'element in the DOM' );
await expect( el ).toContainText( 'element is not in the DOM' );
diff --git a/test/e2e/specs/interactivity/store-afterload.spec.ts b/test/e2e/specs/interactivity/store-afterload.spec.ts
deleted file mode 100644
index 388e80177b0339..00000000000000
--- a/test/e2e/specs/interactivity/store-afterload.spec.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- * Internal dependencies
- */
-import { test, expect } from './fixtures';
-
-test.describe( 'store afterLoad callbacks', () => {
- test.beforeAll( async ( { interactivityUtils: utils } ) => {
- await utils.activatePlugins();
- await utils.addPostWithBlock( 'test/store-afterload' );
- } );
-
- test.beforeEach( async ( { interactivityUtils: utils, page } ) => {
- await page.goto( utils.getLink( 'test/store-afterload' ) );
- } );
-
- test.afterAll( async ( { interactivityUtils: utils } ) => {
- await utils.deactivatePlugins();
- await utils.deleteAllPosts();
- } );
-
- test( 'run after the vdom and store are ready', async ( { page } ) => {
- const allStoresReady = page.getByTestId( 'all-stores-ready' );
- const vdomReady = page.getByTestId( 'vdom-ready' );
-
- await expect( allStoresReady ).toHaveText( 'true' );
- await expect( vdomReady ).toHaveText( 'true' );
- } );
-
- test( 'run once even if shared between several store calls', async ( {
- page,
- } ) => {
- const afterLoadTimes = page.getByTestId( 'after-load-exec-times' );
- const sharedAfterLoadTimes = page.getByTestId(
- 'shared-after-load-exec-times'
- );
-
- await expect( afterLoadTimes ).toHaveText( '1' );
- await expect( sharedAfterLoadTimes ).toHaveText( '1' );
- } );
-} );
diff --git a/test/e2e/specs/site-editor/font-library.spec.js b/test/e2e/specs/site-editor/font-library.spec.js
index 6aca027a30e788..531398fb495906 100644
--- a/test/e2e/specs/site-editor/font-library.spec.js
+++ b/test/e2e/specs/site-editor/font-library.spec.js
@@ -70,5 +70,26 @@ test.describe( 'Font Library', () => {
page.getByRole( 'heading', { name: 'Fonts' } )
).toBeVisible();
} );
+
+ test( 'should show font variant panel when clicking on a font family', async ( {
+ page,
+ } ) => {
+ await page.getByRole( 'button', { name: /styles/i } ).click();
+ await page
+ .getByRole( 'button', { name: /typography styles/i } )
+ .click();
+ await page
+ .getByRole( 'button', {
+ name: /manage fonts/i,
+ } )
+ .click();
+ await page.getByRole( 'button', { name: /system font/i } ).click();
+ await expect(
+ page.getByRole( 'heading', { name: /system font/i } )
+ ).toBeVisible();
+ await expect(
+ page.getByRole( 'checkbox', { name: /system font normal/i } )
+ ).toBeVisible();
+ } );
} );
} );
diff --git a/test/e2e/specs/site-editor/new-templates-list.spec.js b/test/e2e/specs/site-editor/new-templates-list.spec.js
new file mode 100644
index 00000000000000..8bb98b6ad5355a
--- /dev/null
+++ b/test/e2e/specs/site-editor/new-templates-list.spec.js
@@ -0,0 +1,91 @@
+/**
+ * WordPress dependencies
+ */
+const { test, expect } = require( '@wordpress/e2e-test-utils-playwright' );
+
+test.describe( 'Templates', () => {
+ test.beforeAll( async ( { requestUtils } ) => {
+ await Promise.all( [
+ requestUtils.activateTheme( 'emptytheme' ),
+ requestUtils.activatePlugin( 'gutenberg-test-dataviews' ),
+ ] );
+ } );
+ test.afterAll( async ( { requestUtils } ) => {
+ await Promise.all( [
+ requestUtils.activateTheme( 'twentytwentyone' ),
+ requestUtils.deactivatePlugin( 'gutenberg-test-dataviews' ),
+ requestUtils.deleteAllTemplates( 'wp_template' ),
+ ] );
+ } );
+ test( 'Sorting', async ( { admin, page } ) => {
+ await admin.visitSiteEditor( { path: '/wp_template/all' } );
+ // Descending by title.
+ await page
+ .getByRole( 'button', { name: 'Template', exact: true } )
+ .click();
+ await page
+ .getByRole( 'menuitemradio', {
+ name: 'Sort descending',
+ } )
+ .click();
+ const firstTitle = page
+ .getByRole( 'region', {
+ name: 'Template',
+ includeHidden: true,
+ } )
+ .getByRole( 'heading', {
+ level: 3,
+ includeHidden: true,
+ } )
+ .first();
+ await expect( firstTitle ).toHaveText( 'Tag Archives' );
+ // Ascending by title.
+ await page
+ .getByRole( 'menuitemradio', { name: 'Sort ascending' } )
+ .click();
+ await expect( firstTitle ).toHaveText( 'Category Archives' );
+ } );
+ test( 'Filtering', async ( { requestUtils, admin, page } ) => {
+ await requestUtils.createTemplate( 'wp_template', {
+ slug: 'date',
+ title: 'Date Archives',
+ content: 'hi',
+ } );
+ await admin.visitSiteEditor( { path: '/wp_template/all' } );
+ // Global search.
+ await page.getByRole( 'searchbox', { name: 'Filter list' } ).click();
+ await page.keyboard.type( 'tag' );
+ const titles = page
+ .getByRole( 'region', { name: 'Template' } )
+ .getByRole( 'heading', { level: 3 } );
+ await expect( titles ).toHaveCount( 1 );
+ await expect( titles.first() ).toHaveText( 'Tag Archives' );
+ await page.getByRole( 'button', { name: 'Reset filters' } ).click();
+ await expect( titles ).toHaveCount( 6 );
+
+ // Filter by author.
+ await page.getByRole( 'button', { name: 'Add filter' } ).click();
+ await page.getByRole( 'menuitem', { name: 'Author' } ).hover();
+ await page.getByRole( 'menuitem', { name: 'admin' } ).click();
+ await expect( titles ).toHaveCount( 1 );
+ await expect( titles.first() ).toHaveText( 'Date Archives' );
+
+ // Filter by author and text.
+ await page.getByRole( 'button', { name: 'Reset filters' } ).click();
+ await page.getByRole( 'searchbox', { name: 'Filter list' } ).click();
+ await page.keyboard.type( 'archives' );
+ await expect( titles ).toHaveCount( 3 );
+ await page.getByRole( 'button', { name: 'Add filter' } ).click();
+ await page.getByRole( 'menuitem', { name: 'Author' } ).hover();
+ await page.getByRole( 'menuitem', { name: 'Emptytheme' } ).click();
+ await expect( titles ).toHaveCount( 2 );
+ } );
+ test( 'Field visibility', async ( { admin, page } ) => {
+ await admin.visitSiteEditor( { path: '/wp_template/all' } );
+ await page.getByRole( 'button', { name: 'Description' } ).click();
+ await page.getByRole( 'menuitemradio', { name: 'Hide' } ).click();
+ await expect(
+ page.getByRole( 'button', { name: 'Description' } )
+ ).toBeHidden();
+ } );
+} );
diff --git a/test/e2e/specs/site-editor/pages.spec.js b/test/e2e/specs/site-editor/pages.spec.js
index af58daeaedbe40..4d40223e0a99c4 100644
--- a/test/e2e/specs/site-editor/pages.spec.js
+++ b/test/e2e/specs/site-editor/pages.spec.js
@@ -215,24 +215,13 @@ test.describe( 'Pages', () => {
} )
).toBeHidden();
- // Content blocks are wrapped in a Group block by default.
+ // Ensure post title component to be visible.
await expect(
- editor.canvas
- .getByRole( 'document', {
- name: 'Block: Group',
- } )
- .getByRole( 'document', {
- name: 'Block: Content',
- } )
+ editor.canvas.getByRole( 'textbox', {
+ name: 'Add Title',
+ } )
).toBeVisible();
- // Ensure order is preserved between toggling.
- await page
- .locator(
- '[aria-label="Block: Content"] + [aria-label="Block: Title"]'
- )
- .isVisible();
-
// Remove focus from templateOptionsButton button.
await editor.canvas.locator( 'body' ).click();
diff --git a/test/e2e/specs/site-editor/push-to-global-styles.spec.js b/test/e2e/specs/site-editor/push-to-global-styles.spec.js
index 9507245c192d2f..71a57fd04e515a 100644
--- a/test/e2e/specs/site-editor/push-to-global-styles.spec.js
+++ b/test/e2e/specs/site-editor/push-to-global-styles.spec.js
@@ -53,6 +53,16 @@ test.describe( 'Push to Global Styles button', () => {
} )
).toBeDisabled();
+ // Enable letter case.
+ const typographyOptions = page.getByRole( 'button', {
+ name: 'Typography options',
+ } );
+ await typographyOptions.click();
+ await page
+ .getByRole( 'menuitemcheckbox', { name: 'Letter case' } )
+ .click();
+ await typographyOptions.click();
+
// Make the Heading block uppercase
await page.getByRole( 'button', { name: 'Uppercase' } ).click();
diff --git a/test/e2e/specs/site-editor/site-editor-export.spec.js b/test/e2e/specs/site-editor/site-editor-export.spec.js
new file mode 100644
index 00000000000000..a0a56c18089cc2
--- /dev/null
+++ b/test/e2e/specs/site-editor/site-editor-export.spec.js
@@ -0,0 +1,38 @@
+/**
+ * WordPress dependencies
+ */
+const { test, expect } = require( '@wordpress/e2e-test-utils-playwright' );
+
+test.describe( 'Site Editor Templates Export', () => {
+ test.beforeAll( async ( { requestUtils } ) => {
+ await Promise.all( [
+ requestUtils.activateTheme( 'emptytheme' ),
+ requestUtils.deleteAllTemplates( 'wp_template' ),
+ requestUtils.deleteAllTemplates( 'wp_template_part' ),
+ ] );
+ } );
+
+ test.afterAll( async ( { requestUtils } ) => {
+ await requestUtils.activateTheme( 'twentytwentyone' );
+ } );
+
+ test( 'clicking export should download emptytheme.zip file', async ( {
+ admin,
+ page,
+ } ) => {
+ await admin.visitSiteEditor( {
+ postId: 'emptytheme//index',
+ postType: 'wp_template',
+ canvas: 'edit',
+ } );
+ await page
+ .getByRole( 'region', { name: 'Editor top bar' } )
+ .getByRole( 'button', { name: 'Options' } )
+ .click();
+
+ const promise = page.waitForEvent( 'download' );
+ await page.getByRole( 'menuitem', { name: 'Export' } ).click();
+ const download = await promise;
+ expect( download.suggestedFilename() ).toBe( 'emptytheme.zip' );
+ } );
+} );
diff --git a/test/e2e/specs/site-editor/user-global-styles-revisions.spec.js b/test/e2e/specs/site-editor/user-global-styles-revisions.spec.js
index 61fbf7c795a60b..2d51b5ac5014b8 100644
--- a/test/e2e/specs/site-editor/user-global-styles-revisions.spec.js
+++ b/test/e2e/specs/site-editor/user-global-styles-revisions.spec.js
@@ -147,9 +147,6 @@ class UserGlobalStylesRevisions {
.getByRole( 'menubar', { name: 'Styles actions' } )
.click();
await this.page.getByRole( 'button', { name: 'Revisions' } ).click();
- await this.page
- .getByRole( 'menuitem', { name: /^Revision history/ } )
- .click();
}
async openStylesPanel() {
diff --git a/test/integration/blocks-raw-handling.test.js b/test/integration/blocks-raw-handling.test.js
index 229fa0ba7761c8..8acfb052436ed7 100644
--- a/test/integration/blocks-raw-handling.test.js
+++ b/test/integration/blocks-raw-handling.test.js
@@ -369,6 +369,34 @@ describe( 'Blocks raw handling', () => {
expect( console ).toHaveLogged();
} );
+ it( 'should convert pre', () => {
+ const transformed = pasteHandler( {
+ HTML: '1\n2 ',
+ plainText: '1\n2',
+ } )
+ .map( getBlockContent )
+ .join( '' );
+
+ expect( transformed ).toBe(
+ '1\n2 '
+ );
+ expect( console ).toHaveLogged();
+ } );
+
+ it( 'should convert code', () => {
+ const transformed = pasteHandler( {
+ HTML: '1\n2
',
+ plainText: '1\n2',
+ } )
+ .map( getBlockContent )
+ .join( '' );
+
+ expect( transformed ).toBe(
+ '1\n2
'
+ );
+ expect( console ).toHaveLogged();
+ } );
+
describe( 'pasteHandler', () => {
[
'plain',
diff --git a/test/integration/fixtures/blocks/core__form-input.html b/test/integration/fixtures/blocks/core__form-input.html
index 718c592641bc32..f30d44a2503d20 100644
--- a/test/integration/fixtures/blocks/core__form-input.html
+++ b/test/integration/fixtures/blocks/core__form-input.html
@@ -1,3 +1,3 @@
-
-Name
+
+Label
diff --git a/test/integration/fixtures/blocks/core__form-input.json b/test/integration/fixtures/blocks/core__form-input.json
index 68dfb9a36e4e63..fee4df284f1156 100644
--- a/test/integration/fixtures/blocks/core__form-input.json
+++ b/test/integration/fixtures/blocks/core__form-input.json
@@ -1,11 +1,14 @@
[
{
- "name": "core/missing",
+ "name": "core/form-input",
"isValid": true,
"attributes": {
- "originalName": "core/form-input",
- "originalUndelimitedContent": "Name ",
- "originalContent": "\nName \n"
+ "type": "text",
+ "label": "Label",
+ "inlineLabel": false,
+ "required": false,
+ "value": "",
+ "visibilityPermissions": "all"
},
"innerBlocks": []
}
diff --git a/test/integration/fixtures/blocks/core__form-input.parsed.json b/test/integration/fixtures/blocks/core__form-input.parsed.json
index 73058fc2e17f0b..f92379b595276f 100644
--- a/test/integration/fixtures/blocks/core__form-input.parsed.json
+++ b/test/integration/fixtures/blocks/core__form-input.parsed.json
@@ -1,14 +1,11 @@
[
{
"blockName": "core/form-input",
- "attrs": {
- "label": "Name",
- "required": true
- },
+ "attrs": {},
"innerBlocks": [],
- "innerHTML": "\nName \n",
+ "innerHTML": "\nLabel \n",
"innerContent": [
- "\nName \n"
+ "\nLabel \n"
]
}
]
diff --git a/test/integration/fixtures/blocks/core__form-input.serialized.html b/test/integration/fixtures/blocks/core__form-input.serialized.html
index 718c592641bc32..f30d44a2503d20 100644
--- a/test/integration/fixtures/blocks/core__form-input.serialized.html
+++ b/test/integration/fixtures/blocks/core__form-input.serialized.html
@@ -1,3 +1,3 @@
-
-Name
+
+Label
diff --git a/test/integration/fixtures/blocks/core__form-submission-notification.html b/test/integration/fixtures/blocks/core__form-submission-notification.html
new file mode 100644
index 00000000000000..04eaeef77097a2
--- /dev/null
+++ b/test/integration/fixtures/blocks/core__form-submission-notification.html
@@ -0,0 +1,5 @@
+
+
+
diff --git a/test/integration/fixtures/blocks/core__form-submission-notification.json b/test/integration/fixtures/blocks/core__form-submission-notification.json
new file mode 100644
index 00000000000000..dac7502e9716ca
--- /dev/null
+++ b/test/integration/fixtures/blocks/core__form-submission-notification.json
@@ -0,0 +1,31 @@
+[
+ {
+ "name": "core/form-submission-notification",
+ "isValid": true,
+ "attributes": {
+ "type": "success"
+ },
+ "innerBlocks": [
+ {
+ "name": "core/paragraph",
+ "isValid": true,
+ "attributes": {
+ "content": "Your form has been submitted successfully.",
+ "dropCap": false,
+ "backgroundColor": "#00D084",
+ "textColor": "#000000",
+ "style": {
+ "elements": {
+ "link": {
+ "color": {
+ "text": "#000000"
+ }
+ }
+ }
+ }
+ },
+ "innerBlocks": []
+ }
+ ]
+ }
+]
diff --git a/test/integration/fixtures/blocks/core__form-submission-notification.parsed.json b/test/integration/fixtures/blocks/core__form-submission-notification.parsed.json
new file mode 100644
index 00000000000000..c339aef3b765c5
--- /dev/null
+++ b/test/integration/fixtures/blocks/core__form-submission-notification.parsed.json
@@ -0,0 +1,35 @@
+[
+ {
+ "blockName": "core/form-submission-notification",
+ "attrs": {},
+ "innerBlocks": [
+ {
+ "blockName": "core/paragraph",
+ "attrs": {
+ "style": {
+ "elements": {
+ "link": {
+ "color": {
+ "text": "#000000"
+ }
+ }
+ }
+ },
+ "backgroundColor": "#00D084",
+ "textColor": "#000000"
+ },
+ "innerBlocks": [],
+ "innerHTML": "\nYour form has been submitted successfully.
\n",
+ "innerContent": [
+ "\nYour form has been submitted successfully.
\n"
+ ]
+ }
+ ],
+ "innerHTML": "\n
\n",
+ "innerContent": [
+ "\n",
+ null,
+ "
\n"
+ ]
+ }
+]
diff --git a/test/integration/fixtures/blocks/core__form-submission-notification.serialized.html b/test/integration/fixtures/blocks/core__form-submission-notification.serialized.html
new file mode 100644
index 00000000000000..696d0ff2118489
--- /dev/null
+++ b/test/integration/fixtures/blocks/core__form-submission-notification.serialized.html
@@ -0,0 +1,5 @@
+
+
+
diff --git a/test/integration/fixtures/blocks/core__form-submit-button.html b/test/integration/fixtures/blocks/core__form-submit-button.html
new file mode 100644
index 00000000000000..a47c4642327505
--- /dev/null
+++ b/test/integration/fixtures/blocks/core__form-submit-button.html
@@ -0,0 +1,7 @@
+
+
+
diff --git a/test/integration/fixtures/blocks/core__form-submit-button.json b/test/integration/fixtures/blocks/core__form-submit-button.json
new file mode 100644
index 00000000000000..eca9cbb3f1a5d8
--- /dev/null
+++ b/test/integration/fixtures/blocks/core__form-submit-button.json
@@ -0,0 +1,26 @@
+[
+ {
+ "name": "core/form-submit-button",
+ "isValid": true,
+ "attributes": {},
+ "innerBlocks": [
+ {
+ "name": "core/buttons",
+ "isValid": true,
+ "attributes": {},
+ "innerBlocks": [
+ {
+ "name": "core/button",
+ "isValid": true,
+ "attributes": {
+ "tagName": "button",
+ "type": "submit",
+ "text": "Submit"
+ },
+ "innerBlocks": []
+ }
+ ]
+ }
+ ]
+ }
+]
diff --git a/test/integration/fixtures/blocks/core__form-submit-button.parsed.json b/test/integration/fixtures/blocks/core__form-submit-button.parsed.json
new file mode 100644
index 00000000000000..3c674769ca06d5
--- /dev/null
+++ b/test/integration/fixtures/blocks/core__form-submit-button.parsed.json
@@ -0,0 +1,38 @@
+[
+ {
+ "blockName": "core/form-submit-button",
+ "attrs": {},
+ "innerBlocks": [
+ {
+ "blockName": "core/buttons",
+ "attrs": {},
+ "innerBlocks": [
+ {
+ "blockName": "core/button",
+ "attrs": {
+ "tagName": "button",
+ "type": "submit"
+ },
+ "innerBlocks": [],
+ "innerHTML": "\nSubmit
\n",
+ "innerContent": [
+ "\nSubmit
\n"
+ ]
+ }
+ ],
+ "innerHTML": "\n
\n",
+ "innerContent": [
+ "\n",
+ null,
+ "
\n"
+ ]
+ }
+ ],
+ "innerHTML": "\n
\n",
+ "innerContent": [
+ "\n",
+ null,
+ "
\n"
+ ]
+ }
+]
diff --git a/test/integration/fixtures/blocks/core__form-submit-button.serialized.html b/test/integration/fixtures/blocks/core__form-submit-button.serialized.html
new file mode 100644
index 00000000000000..a47c4642327505
--- /dev/null
+++ b/test/integration/fixtures/blocks/core__form-submit-button.serialized.html
@@ -0,0 +1,7 @@
+
+
+
diff --git a/test/integration/fixtures/blocks/core__form.html b/test/integration/fixtures/blocks/core__form.html
index ab18e0e11c81a5..f443172601a3b5 100644
--- a/test/integration/fixtures/blocks/core__form.html
+++ b/test/integration/fixtures/blocks/core__form.html
@@ -1,21 +1,27 @@
-
+
+
+
+
diff --git a/test/integration/fixtures/blocks/core__form.json b/test/integration/fixtures/blocks/core__form.json
index 6bad568b12c26d..d1dd3738a5801b 100644
--- a/test/integration/fixtures/blocks/core__form.json
+++ b/test/integration/fixtures/blocks/core__form.json
@@ -1,62 +1,87 @@
[
{
- "name": "core/missing",
+ "name": "core/form",
"isValid": true,
"attributes": {
- "originalName": "core/form",
- "originalUndelimitedContent": "\nName \nEmail \nWebsite \nComment \n\n ",
- "originalContent": "\n\n\nName \n\n\nEmail \n\n\nWebsite \n\n\nComment \n\n\n\n\n \n"
+ "submissionMethod": "email",
+ "method": "post"
},
"innerBlocks": [
{
- "name": "core/missing",
+ "name": "core/form-input",
"isValid": true,
"attributes": {
- "originalName": "core/form-input",
- "originalUndelimitedContent": "Name ",
- "originalContent": "\nName \n"
+ "type": "text",
+ "label": "Name",
+ "inlineLabel": false,
+ "required": true,
+ "value": "",
+ "visibilityPermissions": "all"
},
"innerBlocks": []
},
{
- "name": "core/missing",
+ "name": "core/form-input",
"isValid": true,
"attributes": {
- "originalName": "core/form-input",
- "originalUndelimitedContent": "Email ",
- "originalContent": "\nEmail \n"
+ "type": "email",
+ "label": "Email",
+ "inlineLabel": false,
+ "required": true,
+ "value": "",
+ "visibilityPermissions": "all"
},
"innerBlocks": []
},
{
- "name": "core/missing",
+ "name": "core/form-input",
"isValid": true,
"attributes": {
- "originalName": "core/form-input",
- "originalUndelimitedContent": "Website ",
- "originalContent": "\nWebsite \n"
+ "type": "url",
+ "label": "Website",
+ "inlineLabel": false,
+ "required": false,
+ "value": "",
+ "visibilityPermissions": "all"
},
"innerBlocks": []
},
{
- "name": "core/missing",
+ "name": "core/form-input",
"isValid": true,
"attributes": {
- "originalName": "core/form-input",
- "originalUndelimitedContent": "Comment ",
- "originalContent": "\nComment \n"
+ "type": "textarea",
+ "label": "Comment",
+ "inlineLabel": false,
+ "required": true,
+ "value": "",
+ "visibilityPermissions": "all"
},
"innerBlocks": []
},
{
- "name": "core/missing",
+ "name": "core/form-submit-button",
"isValid": true,
- "attributes": {
- "originalName": "core/form-input",
- "originalUndelimitedContent": "",
- "originalContent": "\n\n"
- },
- "innerBlocks": []
+ "attributes": {},
+ "innerBlocks": [
+ {
+ "name": "core/buttons",
+ "isValid": true,
+ "attributes": {},
+ "innerBlocks": [
+ {
+ "name": "core/button",
+ "isValid": true,
+ "attributes": {
+ "tagName": "button",
+ "type": "submit",
+ "text": "Submit"
+ },
+ "innerBlocks": []
+ }
+ ]
+ }
+ ]
}
]
}
diff --git a/test/integration/fixtures/blocks/core__form.parsed.json b/test/integration/fixtures/blocks/core__form.parsed.json
index 379bee84c84e10..fb2daff4a47411 100644
--- a/test/integration/fixtures/blocks/core__form.parsed.json
+++ b/test/integration/fixtures/blocks/core__form.parsed.json
@@ -10,9 +10,9 @@
"required": true
},
"innerBlocks": [],
- "innerHTML": "\nName \n",
+ "innerHTML": "\nName \n",
"innerContent": [
- "\nName \n"
+ "\nName \n"
]
},
{
@@ -23,9 +23,9 @@
"required": true
},
"innerBlocks": [],
- "innerHTML": "\nEmail \n",
+ "innerHTML": "\nEmail \n",
"innerContent": [
- "\nEmail \n"
+ "\nEmail \n"
]
},
{
@@ -35,9 +35,9 @@
"label": "Website"
},
"innerBlocks": [],
- "innerHTML": "\nWebsite \n",
+ "innerHTML": "\nWebsite \n",
"innerContent": [
- "\nWebsite \n"
+ "\nWebsite \n"
]
},
{
@@ -48,27 +48,51 @@
"required": true
},
"innerBlocks": [],
- "innerHTML": "\nComment \n",
+ "innerHTML": "\nComment \n",
"innerContent": [
- "\nComment \n"
+ "\nComment \n"
]
},
{
- "blockName": "core/form-input",
- "attrs": {
- "type": "submit",
- "label": "Submit"
- },
- "innerBlocks": [],
- "innerHTML": "\n\n",
+ "blockName": "core/form-submit-button",
+ "attrs": {},
+ "innerBlocks": [
+ {
+ "blockName": "core/buttons",
+ "attrs": {},
+ "innerBlocks": [
+ {
+ "blockName": "core/button",
+ "attrs": {
+ "tagName": "button",
+ "type": "submit"
+ },
+ "innerBlocks": [],
+ "innerHTML": "\nSubmit
\n",
+ "innerContent": [
+ "\nSubmit
\n"
+ ]
+ }
+ ],
+ "innerHTML": "\n
\n",
+ "innerContent": [
+ "\n",
+ null,
+ "
\n"
+ ]
+ }
+ ],
+ "innerHTML": "\n
\n",
"innerContent": [
- "\n\n"
+ "\n",
+ null,
+ "
\n"
]
}
],
- "innerHTML": "\n\n\n\n\n\n\n\n\n \n",
+ "innerHTML": "\n\n\n\n\n\n\n\n\n\n\n \n",
"innerContent": [
- "\n",
+ "\n \n",
null,
"\n\n",
null,
@@ -78,7 +102,7 @@
null,
"\n\n",
null,
- " \n"
+ "\n\n"
]
}
]
diff --git a/test/integration/fixtures/blocks/core__form.serialized.html b/test/integration/fixtures/blocks/core__form.serialized.html
index 585a50868b85e0..9bfff780f50dbf 100644
--- a/test/integration/fixtures/blocks/core__form.serialized.html
+++ b/test/integration/fixtures/blocks/core__form.serialized.html
@@ -1,19 +1,25 @@
-
-
-Name
+
+Name
-
-Email
+
+
+Email
-
-Website
+
+
+Website
-
-Comment
+
+
+Comment
-
-
-
-
+
+
+
+
diff --git a/test/integration/fixtures/blocks/core__social-link-gravatar.html b/test/integration/fixtures/blocks/core__social-link-gravatar.html
new file mode 100644
index 00000000000000..c4137b8a083176
--- /dev/null
+++ b/test/integration/fixtures/blocks/core__social-link-gravatar.html
@@ -0,0 +1 @@
+
diff --git a/test/integration/fixtures/blocks/core__social-link-gravatar.json b/test/integration/fixtures/blocks/core__social-link-gravatar.json
new file mode 100644
index 00000000000000..2f4035d97640b2
--- /dev/null
+++ b/test/integration/fixtures/blocks/core__social-link-gravatar.json
@@ -0,0 +1,11 @@
+[
+ {
+ "name": "core/social-link",
+ "isValid": true,
+ "attributes": {
+ "url": "https://example.com/",
+ "service": "gravatar"
+ },
+ "innerBlocks": []
+ }
+]
diff --git a/test/integration/fixtures/blocks/core__social-link-gravatar.parsed.json b/test/integration/fixtures/blocks/core__social-link-gravatar.parsed.json
new file mode 100644
index 00000000000000..b4c7a8c146e142
--- /dev/null
+++ b/test/integration/fixtures/blocks/core__social-link-gravatar.parsed.json
@@ -0,0 +1,11 @@
+[
+ {
+ "blockName": "core/social-link-gravatar",
+ "attrs": {
+ "url": "https://example.com/"
+ },
+ "innerBlocks": [],
+ "innerHTML": "",
+ "innerContent": []
+ }
+]
diff --git a/test/integration/fixtures/blocks/core__social-link-gravatar.serialized.html b/test/integration/fixtures/blocks/core__social-link-gravatar.serialized.html
new file mode 100644
index 00000000000000..83a449d4e1f53c
--- /dev/null
+++ b/test/integration/fixtures/blocks/core__social-link-gravatar.serialized.html
@@ -0,0 +1 @@
+
diff --git a/test/integration/full-content/full-content.test.js b/test/integration/full-content/full-content.test.js
index fab2edd98942f8..f825de04771442 100644
--- a/test/integration/full-content/full-content.test.js
+++ b/test/integration/full-content/full-content.test.js
@@ -35,6 +35,13 @@ import {
writeBlockFixtureSerializedHTML,
} from '../fixtures';
+/* eslint-disable no-restricted-syntax */
+import * as form from '@wordpress/block-library/src/form';
+import * as formInput from '@wordpress/block-library/src/form-input';
+import * as formSubmitButton from '@wordpress/block-library/src/form-submit-button';
+import * as formSubmissionNotification from '@wordpress/block-library/src/form-submission-notification';
+/* eslint-enable no-restricted-syntax */
+
const blockBasenames = getAvailableBlockFixturesBasenames();
/**
@@ -64,6 +71,17 @@ describe( 'full post content fixture', () => {
);
unstable__bootstrapServerSideBlockDefinitions( blockDefinitions );
registerCoreBlocks();
+
+ // Form-related blocks will not be registered unless they are opted
+ // in on the experimental settings page. Therefore, these blocks
+ // must be explicitly registered.
+ registerCoreBlocks( [
+ form,
+ formInput,
+ formSubmitButton,
+ formSubmissionNotification,
+ ] );
+
if ( process.env.IS_GUTENBERG_PLUGIN ) {
__experimentalRegisterExperimentalCoreBlocks( {
enableFSEBlocks: true,
diff --git a/test/performance/config/performance-reporter.ts b/test/performance/config/performance-reporter.ts
index fa7cc90825c220..7b1f171230c59e 100644
--- a/test/performance/config/performance-reporter.ts
+++ b/test/performance/config/performance-reporter.ts
@@ -26,6 +26,7 @@ export interface WPRawPerformanceResults {
firstContentfulPaint: number[];
firstBlock: number[];
type: number[];
+ typeWithoutInspector: number[];
typeContainer: number[];
focus: number[];
inserterOpen: number[];
@@ -48,6 +49,7 @@ export interface WPPerformanceResults {
type?: number;
minType?: number;
maxType?: number;
+ typeWithoutInspector?: number;
typeContainer?: number;
minTypeContainer?: number;
maxTypeContainer?: number;
@@ -92,6 +94,7 @@ export function curateResults(
type: average( results.type ),
minType: minimum( results.type ),
maxType: maximum( results.type ),
+ typeWithoutInspector: average( results.typeWithoutInspector ),
typeContainer: average( results.typeContainer ),
minTypeContainer: minimum( results.typeContainer ),
maxTypeContainer: maximum( results.typeContainer ),
diff --git a/test/performance/specs/post-editor.spec.js b/test/performance/specs/post-editor.spec.js
index d5ff40570afd78..cf2610baa1f9e7 100644
--- a/test/performance/specs/post-editor.spec.js
+++ b/test/performance/specs/post-editor.spec.js
@@ -22,6 +22,7 @@ const results = {
firstContentfulPaint: [],
firstBlock: [],
type: [],
+ typeWithoutInspector: [],
typeContainer: [],
focus: [],
listViewOpen: [],
@@ -91,6 +92,40 @@ test.describe( 'Post Editor Performance', () => {
}
} );
+ async function type( target, metrics, key ) {
+ // The first character typed triggers a longer time (isTyping change).
+ // It can impact the stability of the metric, so we exclude it. It
+ // probably deserves a dedicated metric itself, though.
+ const samples = 10;
+ const throwaway = 1;
+ const iterations = samples + throwaway;
+
+ // Start tracing.
+ await metrics.startTracing();
+
+ // Type the testing sequence into the empty paragraph.
+ await target.type( 'x'.repeat( iterations ), {
+ delay: BROWSER_IDLE_WAIT,
+ // The extended timeout is needed because the typing is very slow
+ // and the `delay` value itself does not extend it.
+ timeout: iterations * BROWSER_IDLE_WAIT * 2, // 2x the total time to be safe.
+ } );
+
+ // Stop tracing.
+ await metrics.stopTracing();
+
+ // Get the durations.
+ const [ keyDownEvents, keyPressEvents, keyUpEvents ] =
+ metrics.getTypingEventDurations();
+
+ // Save the results.
+ for ( let i = throwaway; i < iterations; i++ ) {
+ results[ key ].push(
+ keyDownEvents[ i ] + keyPressEvents[ i ] + keyUpEvents[ i ]
+ );
+ }
+ }
+
test.describe( 'Typing', () => {
let draftId = null;
@@ -110,37 +145,43 @@ test.describe( 'Post Editor Performance', () => {
name: /Empty block/i,
} );
- // The first character typed triggers a longer time (isTyping change).
- // It can impact the stability of the metric, so we exclude it. It
- // probably deserves a dedicated metric itself, though.
- const samples = 10;
- const throwaway = 1;
- const iterations = samples + throwaway;
+ await type( paragraph, metrics, 'type' );
+ } );
+ } );
- // Start tracing.
- await metrics.startTracing();
+ test.describe( 'Typing (without inspector)', () => {
+ let draftId = null;
- // Type the testing sequence into the empty paragraph.
- await paragraph.type( 'x'.repeat( iterations ), {
- delay: BROWSER_IDLE_WAIT,
- // The extended timeout is needed because the typing is very slow
- // and the `delay` value itself does not extend it.
- timeout: iterations * BROWSER_IDLE_WAIT * 2, // 2x the total time to be safe.
- } );
+ test( 'Setup the test post', async ( { admin, perfUtils, editor } ) => {
+ await admin.createNewPost();
+ await perfUtils.loadBlocksForLargePost();
+ await editor.insertBlock( { name: 'core/paragraph' } );
+ draftId = await perfUtils.saveDraft();
+ } );
- // Stop tracing.
- await metrics.stopTracing();
+ test( 'Run the test', async ( {
+ admin,
+ perfUtils,
+ metrics,
+ page,
+ editor,
+ } ) => {
+ await admin.editPost( draftId );
+ await perfUtils.disableAutosave();
+ const toggleButton = page
+ .getByRole( 'region', { name: 'Editor settings' } )
+ .getByRole( 'button', { name: 'Close Settings' } );
+ await toggleButton.click();
+ const canvas = await perfUtils.getCanvas();
- // Get the durations.
- const [ keyDownEvents, keyPressEvents, keyUpEvents ] =
- metrics.getTypingEventDurations();
+ const paragraph = canvas.getByRole( 'document', {
+ name: /Empty block/i,
+ } );
- // Save the results.
- for ( let i = throwaway; i < iterations; i++ ) {
- results.type.push(
- keyDownEvents[ i ] + keyPressEvents[ i ] + keyUpEvents[ i ]
- );
- }
+ await type( paragraph, metrics, 'typeWithoutInspector' );
+
+ // Open the inspector again.
+ await editor.openDocumentSettingsSidebar();
} );
} );
@@ -166,37 +207,7 @@ test.describe( 'Post Editor Performance', () => {
.first();
await firstParagraph.click();
- // The first character typed triggers a longer time (isTyping change).
- // It can impact the stability of the metric, so we exclude it. It
- // probably deserves a dedicated metric itself, though.
- const samples = 10;
- const throwaway = 1;
- const iterations = samples + throwaway;
-
- // Start tracing.
- await metrics.startTracing();
-
- // Start typing in the middle of the text.
- await firstParagraph.type( 'x'.repeat( iterations ), {
- delay: BROWSER_IDLE_WAIT,
- // The extended timeout is needed because the typing is very slow
- // and the `delay` value itself does not extend it.
- timeout: iterations * BROWSER_IDLE_WAIT * 2, // 2x the total time to be safe.
- } );
-
- // Stop tracing.
- await metrics.stopTracing();
-
- // Get the durations.
- const [ keyDownEvents, keyPressEvents, keyUpEvents ] =
- metrics.getTypingEventDurations();
-
- // Save the results.
- for ( let i = throwaway; i < iterations; i++ ) {
- results.typeContainer.push(
- keyDownEvents[ i ] + keyPressEvents[ i ] + keyUpEvents[ i ]
- );
- }
+ await type( firstParagraph, metrics, 'typeContainer' );
} );
} );
diff --git a/test/unit/jest.config.js b/test/unit/jest.config.js
index 9d19a5c9feb2f9..38459b631fea4b 100644
--- a/test/unit/jest.config.js
+++ b/test/unit/jest.config.js
@@ -39,6 +39,10 @@ module.exports = {
transform: {
'^.+\\.[jt]sx?$': '/test/unit/scripts/babel-transformer.js',
},
+ transformIgnorePatterns: [
+ '/node_modules/(?!(docker-compose|yaml)/)',
+ '\\.pnp\\.[^\\/]+$',
+ ],
snapshotSerializers: [
'@emotion/jest/serializer',
'snapshot-diff/serializer',
diff --git a/test/unit/scripts/resolver.js b/test/unit/scripts/resolver.js
index 2c359145f0b3e8..7672bb723e1248 100644
--- a/test/unit/scripts/resolver.js
+++ b/test/unit/scripts/resolver.js
@@ -24,7 +24,8 @@ module.exports = ( path, options ) => {
pkg.name === 'uuid' ||
pkg.name === 'react-colorful' ||
pkg.name === '@eslint/eslintrc' ||
- pkg.name === 'expect'
+ pkg.name === 'expect' ||
+ pkg.name === 'nanoid'
) {
delete pkg.exports;
delete pkg.module;
diff --git a/tools/webpack/interactivity.js b/tools/webpack/interactivity.js
index 26e49966ad40c3..03bb1f576cb783 100644
--- a/tools/webpack/interactivity.js
+++ b/tools/webpack/interactivity.js
@@ -2,28 +2,42 @@
* External dependencies
*/
const { join } = require( 'path' );
+const CopyWebpackPlugin = require( 'copy-webpack-plugin' );
/**
* Internal dependencies
*/
-const { baseConfig } = require( './shared' );
+const { baseConfig, plugins } = require( './shared' );
module.exports = {
...baseConfig,
name: 'interactivity',
entry: {
- index: {
- import: `./packages/interactivity/src/index.js`,
- library: {
- name: [ 'wp', 'interactivity' ],
- type: 'window',
- },
- },
+ index: `./packages/interactivity/src/index.js`,
+ navigation: './packages/block-library/src/navigation/view.js',
+ query: './packages/block-library/src/query/view.js',
+ image: './packages/block-library/src/image/view.js',
+ file: './packages/block-library/src/file/view.js',
+ search: './packages/block-library/src/search/view.js',
+ },
+ experiments: {
+ outputModule: true,
},
output: {
devtoolNamespace: 'wp',
filename: './build/interactivity/[name].min.js',
+ library: {
+ type: 'module',
+ },
path: join( __dirname, '..', '..' ),
+ environment: { module: true },
+ },
+ externalsType: 'module',
+ externals: {
+ '@wordpress/interactivity': '@wordpress/interactivity',
+ },
+ resolve: {
+ extensions: [ '.js', '.ts', '.tsx' ],
},
module: {
rules: [
@@ -39,6 +53,7 @@ module.exports = {
babelrc: false,
configFile: false,
presets: [
+ '@babel/preset-typescript',
[
'@babel/preset-react',
{
@@ -53,6 +68,18 @@ module.exports = {
},
],
},
+ plugins: [
+ ...plugins,
+ // TODO: Move it to a different Webpack file.
+ new CopyWebpackPlugin( {
+ patterns: [
+ {
+ from: './node_modules/es-module-shims/dist/es-module-shims.wasm.js',
+ to: './build/modules/importmap-polyfill.min.js',
+ },
+ ],
+ } ),
+ ],
watchOptions: {
ignored: [ '**/node_modules' ],
aggregateTimeout: 500,
diff --git a/tools/webpack/packages.js b/tools/webpack/packages.js
index a76889622b4a2f..86554d5f139098 100644
--- a/tools/webpack/packages.js
+++ b/tools/webpack/packages.js
@@ -29,6 +29,7 @@ const BUNDLED_PACKAGES = [
'@wordpress/interface',
'@wordpress/undo-manager',
'@wordpress/sync',
+ '@wordpress/dataviews',
];
// PHP files in packages that have to be copied during build.
diff --git a/tsconfig.json b/tsconfig.json
index 4ee1787a247cf7..d05e883ed70b03 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -27,6 +27,7 @@
{ "path": "packages/html-entities" },
{ "path": "packages/i18n" },
{ "path": "packages/icons" },
+ { "path": "packages/interactivity" },
{ "path": "packages/is-shallow-equal" },
{ "path": "packages/keycodes" },
{ "path": "packages/lazy-import" },