@@ -19,12 +19,12 @@ import {
19
19
// eslint-disable-next-line @wordpress/no-unsafe-wp-apis
20
20
__experimentalGetGapCSSValue as getGapCSSValue ,
21
21
} from '@wordpress/block-editor' ;
22
-
23
22
/**
24
23
* Internal dependencies
25
24
*/
26
25
import {
27
26
appendToSelector ,
27
+ getBlockStyleVariationSelector ,
28
28
getResolvedValue ,
29
29
getValueFromObjectPath ,
30
30
LAYOUT_DEFINITIONS ,
@@ -1202,7 +1202,7 @@ const getSelectorsConfig = ( blockType, rootSelector ) => {
1202
1202
return config ;
1203
1203
} ;
1204
1204
1205
- export const getBlockSelectors = ( blockTypes ) => {
1205
+ export const getBlockSelectors = ( blockTypes , storedPreviewSettings ) => {
1206
1206
const result = { } ;
1207
1207
blockTypes . forEach ( ( blockType ) => {
1208
1208
const name = blockType . name ;
@@ -1231,20 +1231,31 @@ export const getBlockSelectors = ( blockTypes ) => {
1231
1231
blockType ?. supports ?. spacing ?. blockGap ?. __experimentalDefault ;
1232
1232
1233
1233
// TO-DO Check this logic
1234
- // const blockStyleVariations = BLOCK_SUPPORT_FEATURE_LEVEL_SELECTORS;
1235
- // const styleVariationSelectors = {};
1236
- // blockStyleVariations?.forEach((variation) => {
1237
- // const variationSuffix = variationInstanceId
1238
- // ? `-${variationInstanceId}`
1239
- // : '';
1240
- // const variationName = `${variation.name}${variationSuffix}`;
1241
- // const styleVariationSelector = getBlockStyleVariationSelector(
1242
- // variationName,
1243
- // selector
1244
- // );
1245
-
1246
- // styleVariationSelectors[variationName] = styleVariationSelector;
1247
- // });
1234
+ const blockStyleVariation =
1235
+ storedPreviewSettings . globalStyles . blocks [ name ] ?. variations ;
1236
+ const blockStyleVariationArray = blockStyleVariation
1237
+ ? [ blockStyleVariation ]
1238
+ : [ ] ;
1239
+ const styleVariationSelectors = { } ;
1240
+
1241
+ if ( blockStyleVariationArray . length !== 0 ) {
1242
+ blockStyleVariationArray ?. forEach ( ( variation ) => {
1243
+ Object . entries ( variation ) . forEach ( ( [ key , value ] ) => {
1244
+ const variationSuffix = blockType ?. apiVersion
1245
+ ? `--${ blockType ?. apiVersion } `
1246
+ : '' ;
1247
+ const variationName = `${ key } ${ variationSuffix } ` ;
1248
+ const styleVariationSelector =
1249
+ getBlockStyleVariationSelector (
1250
+ variationName ,
1251
+ selector
1252
+ ) ;
1253
+
1254
+ styleVariationSelectors [ variationName ] =
1255
+ styleVariationSelector ;
1256
+ } ) ;
1257
+ } ) ;
1258
+ }
1248
1259
1249
1260
// For each block support feature add any custom selectors.
1250
1261
const featureSelectors = getSelectorsConfig ( blockType , selector ) ;
@@ -1258,9 +1269,9 @@ export const getBlockSelectors = ( blockTypes ) => {
1258
1269
hasLayoutSupport,
1259
1270
name,
1260
1271
selector,
1261
- // styleVariationSelectors: blockStyleVariations ?.length
1262
- // ? styleVariationSelectors
1263
- // : undefined,
1272
+ styleVariationSelectors : blockStyleVariationArray ?. length
1273
+ ? styleVariationSelectors
1274
+ : undefined ,
1264
1275
} ;
1265
1276
} ) ;
1266
1277
@@ -1376,7 +1387,10 @@ export function generateStyles(
1376
1387
}
1377
1388
1378
1389
const updatedConfig = updateConfigWithSeparator ( previewSettings ) ;
1379
- const blockSelectors = getBlockSelectors ( getBlockTypes ( ) ) ;
1390
+ const blockSelectors = getBlockSelectors (
1391
+ getBlockTypes ( ) ,
1392
+ storedPreviewSettings
1393
+ ) ;
1380
1394
1381
1395
// Generate custom properties, global styles, and SVG filters
1382
1396
const customProperties = toCustomProperties (
0 commit comments