@wordpress/block-editor 12.3.3 → 12.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/build/components/block-edit/edit.js +25 -13
- package/build/components/block-edit/edit.js.map +1 -1
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js +3 -6
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build/components/block-parent-selector/index.js +8 -5
- package/build/components/block-parent-selector/index.js.map +1 -1
- package/build/components/block-removal-warning-modal/index.js +5 -2
- package/build/components/block-removal-warning-modal/index.js.map +1 -1
- package/build/components/block-tools/block-contextual-toolbar.js +7 -11
- package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +1 -1
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/index.js +10 -1
- package/build/components/index.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/patterns-list.js +2 -2
- package/build/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
- package/build/components/inserter/block-patterns-tab.js +7 -35
- package/build/components/inserter/block-patterns-tab.js.map +1 -1
- package/build/components/inserter/hooks/use-block-types-state.js +3 -4
- package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build/components/inserter/hooks/use-patterns-state.js +9 -3
- package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build/components/inserter/reusable-block-rename-hint.js +62 -0
- package/build/components/inserter/reusable-block-rename-hint.js.map +1 -0
- package/build/components/inserter/reusable-blocks-tab.js +6 -2
- package/build/components/inserter/reusable-blocks-tab.js.map +1 -1
- package/build/components/list-view/use-list-view-client-ids.js +2 -2
- package/build/components/list-view/use-list-view-client-ids.js.map +1 -1
- package/build/store/private-selectors.js +5 -6
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/selectors.js +33 -15
- package/build/store/selectors.js.map +1 -1
- package/build-module/components/block-edit/edit.js +27 -10
- package/build-module/components/block-edit/edit.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +4 -6
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build-module/components/block-parent-selector/index.js +7 -5
- package/build-module/components/block-parent-selector/index.js.map +1 -1
- package/build-module/components/block-removal-warning-modal/index.js +6 -3
- package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js +8 -11
- package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +2 -2
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/index.js +5 -0
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/patterns-list.js +2 -2
- package/build-module/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab.js +7 -33
- package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
- package/build-module/components/inserter/hooks/use-block-types-state.js +3 -4
- package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build-module/components/inserter/hooks/use-patterns-state.js +9 -3
- package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build-module/components/inserter/reusable-block-rename-hint.js +48 -0
- package/build-module/components/inserter/reusable-block-rename-hint.js.map +1 -0
- package/build-module/components/inserter/reusable-blocks-tab.js +5 -2
- package/build-module/components/inserter/reusable-blocks-tab.js.map +1 -1
- package/build-module/components/list-view/use-list-view-client-ids.js +2 -2
- package/build-module/components/list-view/use-list-view-client-ids.js.map +1 -1
- package/build-module/store/private-selectors.js +3 -3
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/selectors.js +33 -15
- package/build-module/store/selectors.js.map +1 -1
- package/build-style/content-rtl.css +3 -0
- package/build-style/content.css +3 -0
- package/build-style/style-rtl.css +72 -22
- package/build-style/style.css +72 -22
- package/package.json +9 -9
- package/src/components/block-edit/edit.js +26 -9
- package/src/components/block-edit/test/edit.js +1 -1
- package/src/components/block-mobile-toolbar/block-actions-menu.native.js +4 -8
- package/src/components/block-parent-selector/index.js +13 -8
- package/src/components/block-removal-warning-modal/index.js +7 -6
- package/src/components/block-tools/block-contextual-toolbar.js +5 -11
- package/src/components/block-tools/style.scss +69 -26
- package/src/components/default-block-appender/content.scss +11 -0
- package/src/components/global-styles/filters-panel.js +2 -2
- package/src/components/index.js +5 -0
- package/src/components/inserter/block-patterns-explorer/patterns-list.js +8 -2
- package/src/components/inserter/block-patterns-tab.js +8 -56
- package/src/components/inserter/hooks/use-block-types-state.js +3 -4
- package/src/components/inserter/hooks/use-patterns-state.js +35 -19
- package/src/components/inserter/reusable-block-rename-hint.js +52 -0
- package/src/components/inserter/reusable-blocks-tab.js +5 -1
- package/src/components/inserter/style.scss +28 -0
- package/src/components/list-view/style.scss +1 -2
- package/src/components/list-view/use-list-view-client-ids.js +2 -2
- package/src/store/private-selectors.js +3 -6
- package/src/store/selectors.js +54 -20
- package/src/store/test/private-selectors.js +5 -5
package/src/store/selectors.js
CHANGED
|
@@ -1945,7 +1945,6 @@ const buildBlockTypeItem =
|
|
|
1945
1945
|
*
|
|
1946
1946
|
* @param {Object} state Editor state.
|
|
1947
1947
|
* @param {?string} rootClientId Optional root client ID of block list.
|
|
1948
|
-
* @param {?string} syncStatus Optional sync status to filter pattern blocks by.
|
|
1949
1948
|
*
|
|
1950
1949
|
* @return {WPEditorInserterItem[]} Items that appear in inserter.
|
|
1951
1950
|
*
|
|
@@ -1962,11 +1961,7 @@ const buildBlockTypeItem =
|
|
|
1962
1961
|
* @property {number} frecency Heuristic that combines frequency and recency.
|
|
1963
1962
|
*/
|
|
1964
1963
|
export const getInserterItems = createSelector(
|
|
1965
|
-
( state, rootClientId = null
|
|
1966
|
-
const buildBlockTypeInserterItem = buildBlockTypeItem( state, {
|
|
1967
|
-
buildScope: 'inserter',
|
|
1968
|
-
} );
|
|
1969
|
-
|
|
1964
|
+
( state, rootClientId = null ) => {
|
|
1970
1965
|
/*
|
|
1971
1966
|
* Matches block comment delimiters amid serialized content.
|
|
1972
1967
|
*
|
|
@@ -2031,13 +2026,7 @@ export const getInserterItems = createSelector(
|
|
|
2031
2026
|
};
|
|
2032
2027
|
};
|
|
2033
2028
|
|
|
2034
|
-
const
|
|
2035
|
-
.filter( ( blockType ) =>
|
|
2036
|
-
canIncludeBlockTypeInInserter( state, blockType, rootClientId )
|
|
2037
|
-
)
|
|
2038
|
-
.map( buildBlockTypeInserterItem );
|
|
2039
|
-
|
|
2040
|
-
const reusableBlockInserterItems = canInsertBlockTypeUnmemoized(
|
|
2029
|
+
const syncedPatternInserterItems = canInsertBlockTypeUnmemoized(
|
|
2041
2030
|
state,
|
|
2042
2031
|
'core/block',
|
|
2043
2032
|
rootClientId
|
|
@@ -2045,13 +2034,27 @@ export const getInserterItems = createSelector(
|
|
|
2045
2034
|
? getReusableBlocks( state )
|
|
2046
2035
|
.filter(
|
|
2047
2036
|
( reusableBlock ) =>
|
|
2048
|
-
|
|
2049
|
-
|
|
2050
|
-
|
|
2037
|
+
// Reusable blocks that are fully synced should have no sync status set
|
|
2038
|
+
// for backwards compat between patterns and old reusable blocks, but
|
|
2039
|
+
// some in release 16.1 may have had sync status inadvertantly set to
|
|
2040
|
+
// 'fully' if created in the site editor.
|
|
2041
|
+
reusableBlock.wp_pattern_sync_status === 'fully' ||
|
|
2042
|
+
reusableBlock.wp_pattern_sync_status === '' ||
|
|
2043
|
+
! reusableBlock.wp_pattern_sync_status
|
|
2051
2044
|
)
|
|
2052
2045
|
.map( buildReusableBlockInserterItem )
|
|
2053
2046
|
: [];
|
|
2054
2047
|
|
|
2048
|
+
const buildBlockTypeInserterItem = buildBlockTypeItem( state, {
|
|
2049
|
+
buildScope: 'inserter',
|
|
2050
|
+
} );
|
|
2051
|
+
|
|
2052
|
+
const blockTypeInserterItems = getBlockTypes()
|
|
2053
|
+
.filter( ( blockType ) =>
|
|
2054
|
+
canIncludeBlockTypeInInserter( state, blockType, rootClientId )
|
|
2055
|
+
)
|
|
2056
|
+
.map( buildBlockTypeInserterItem );
|
|
2057
|
+
|
|
2055
2058
|
const items = blockTypeInserterItems.reduce( ( accumulator, item ) => {
|
|
2056
2059
|
const { variations = [] } = item;
|
|
2057
2060
|
// Exclude any block type item that is to be replaced by a default variation.
|
|
@@ -2082,7 +2085,7 @@ export const getInserterItems = createSelector(
|
|
|
2082
2085
|
{ core: [], noncore: [] }
|
|
2083
2086
|
);
|
|
2084
2087
|
const sortedBlockTypes = [ ...coreItems, ...nonCoreItems ];
|
|
2085
|
-
return [ ...sortedBlockTypes, ...
|
|
2088
|
+
return [ ...sortedBlockTypes, ...syncedPatternInserterItems ];
|
|
2086
2089
|
},
|
|
2087
2090
|
( state, rootClientId ) => [
|
|
2088
2091
|
state.blockListSettings[ rootClientId ],
|
|
@@ -2306,10 +2309,33 @@ const checkAllowListRecursive = ( blocks, allowedBlockTypes ) => {
|
|
|
2306
2309
|
return true;
|
|
2307
2310
|
};
|
|
2308
2311
|
|
|
2312
|
+
function getUnsyncedPatterns( state ) {
|
|
2313
|
+
const reusableBlocks =
|
|
2314
|
+
state?.settings?.__experimentalReusableBlocks ?? EMPTY_ARRAY;
|
|
2315
|
+
|
|
2316
|
+
return reusableBlocks
|
|
2317
|
+
.filter(
|
|
2318
|
+
( reusableBlock ) =>
|
|
2319
|
+
reusableBlock.wp_pattern_sync_status === 'unsynced'
|
|
2320
|
+
)
|
|
2321
|
+
.map( ( reusableBlock ) => {
|
|
2322
|
+
return {
|
|
2323
|
+
name: `core/block/${ reusableBlock.id }`,
|
|
2324
|
+
title: reusableBlock.title.raw,
|
|
2325
|
+
categories: [ 'custom' ],
|
|
2326
|
+
content: reusableBlock.content.raw,
|
|
2327
|
+
};
|
|
2328
|
+
} );
|
|
2329
|
+
}
|
|
2330
|
+
|
|
2309
2331
|
export const __experimentalGetParsedPattern = createSelector(
|
|
2310
2332
|
( state, patternName ) => {
|
|
2311
2333
|
const patterns = state.settings.__experimentalBlockPatterns;
|
|
2312
|
-
const
|
|
2334
|
+
const unsyncedPatterns = getUnsyncedPatterns( state );
|
|
2335
|
+
|
|
2336
|
+
const pattern = [ ...patterns, ...unsyncedPatterns ].find(
|
|
2337
|
+
( { name } ) => name === patternName
|
|
2338
|
+
);
|
|
2313
2339
|
if ( ! pattern ) {
|
|
2314
2340
|
return null;
|
|
2315
2341
|
}
|
|
@@ -2320,14 +2346,20 @@ export const __experimentalGetParsedPattern = createSelector(
|
|
|
2320
2346
|
} ),
|
|
2321
2347
|
};
|
|
2322
2348
|
},
|
|
2323
|
-
( state ) => [
|
|
2349
|
+
( state ) => [
|
|
2350
|
+
state.settings.__experimentalBlockPatterns,
|
|
2351
|
+
state.settings.__experimentalReusableBlocks,
|
|
2352
|
+
]
|
|
2324
2353
|
);
|
|
2325
2354
|
|
|
2326
2355
|
const getAllAllowedPatterns = createSelector(
|
|
2327
2356
|
( state ) => {
|
|
2328
2357
|
const patterns = state.settings.__experimentalBlockPatterns;
|
|
2358
|
+
const unsyncedPatterns = getUnsyncedPatterns( state );
|
|
2359
|
+
|
|
2329
2360
|
const { allowedBlockTypes } = getSettings( state );
|
|
2330
|
-
|
|
2361
|
+
|
|
2362
|
+
const parsedPatterns = [ ...patterns, ...unsyncedPatterns ]
|
|
2331
2363
|
.filter( ( { inserter = true } ) => !! inserter )
|
|
2332
2364
|
.map( ( { name } ) =>
|
|
2333
2365
|
__experimentalGetParsedPattern( state, name )
|
|
@@ -2339,6 +2371,7 @@ const getAllAllowedPatterns = createSelector(
|
|
|
2339
2371
|
},
|
|
2340
2372
|
( state ) => [
|
|
2341
2373
|
state.settings.__experimentalBlockPatterns,
|
|
2374
|
+
state.settings.__experimentalReusableBlocks,
|
|
2342
2375
|
state.settings.allowedBlockTypes,
|
|
2343
2376
|
]
|
|
2344
2377
|
);
|
|
@@ -2365,6 +2398,7 @@ export const __experimentalGetAllowedPatterns = createSelector(
|
|
|
2365
2398
|
},
|
|
2366
2399
|
( state, rootClientId ) => [
|
|
2367
2400
|
state.settings.__experimentalBlockPatterns,
|
|
2401
|
+
state.settings.__experimentalReusableBlocks,
|
|
2368
2402
|
state.settings.allowedBlockTypes,
|
|
2369
2403
|
state.settings.templateLock,
|
|
2370
2404
|
state.blockListSettings[ rootClientId ],
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
getLastInsertedBlocksClientIds,
|
|
12
12
|
getBlockEditingMode,
|
|
13
13
|
isBlockSubtreeDisabled,
|
|
14
|
-
|
|
14
|
+
getEnabledClientIdsTree,
|
|
15
15
|
getEnabledBlockParents,
|
|
16
16
|
} from '../private-selectors';
|
|
17
17
|
|
|
@@ -391,7 +391,7 @@ describe( 'private selectors', () => {
|
|
|
391
391
|
} );
|
|
392
392
|
} );
|
|
393
393
|
|
|
394
|
-
describe( '
|
|
394
|
+
describe( 'getEnabledClientIdsTree', () => {
|
|
395
395
|
const baseState = {
|
|
396
396
|
settings: {},
|
|
397
397
|
blocks: {
|
|
@@ -462,7 +462,7 @@ describe( 'private selectors', () => {
|
|
|
462
462
|
...baseState,
|
|
463
463
|
blockEditingModes: new Map( [] ),
|
|
464
464
|
};
|
|
465
|
-
expect(
|
|
465
|
+
expect( getEnabledClientIdsTree( state ) ).toEqual( [
|
|
466
466
|
{
|
|
467
467
|
clientId: '6cf70164-9097-4460-bcbf-200560546988',
|
|
468
468
|
innerBlocks: [],
|
|
@@ -500,7 +500,7 @@ describe( 'private selectors', () => {
|
|
|
500
500
|
blockEditingModes: new Map( [] ),
|
|
501
501
|
};
|
|
502
502
|
expect(
|
|
503
|
-
|
|
503
|
+
getEnabledClientIdsTree(
|
|
504
504
|
state,
|
|
505
505
|
'ef45d5fd-5234-4fd5-ac4f-c3736c7f9337'
|
|
506
506
|
)
|
|
@@ -534,7 +534,7 @@ describe( 'private selectors', () => {
|
|
|
534
534
|
[ '9b9c5c3f-2e46-4f02-9e14-9fe9515b958f', 'contentOnly' ],
|
|
535
535
|
] ),
|
|
536
536
|
};
|
|
537
|
-
expect(
|
|
537
|
+
expect( getEnabledClientIdsTree( state ) ).toEqual( [
|
|
538
538
|
{
|
|
539
539
|
clientId: 'b26fc763-417d-4f01-b81c-2ec61e14a972',
|
|
540
540
|
innerBlocks: [],
|