@wordpress/block-editor 15.16.0 → 15.17.0

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.
Files changed (157) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/autocomplete/index.cjs +1 -2
  3. package/build/components/autocomplete/index.cjs.map +3 -3
  4. package/build/components/block-list/block-crash-warning.cjs +4 -2
  5. package/build/components/block-list/block-crash-warning.cjs.map +2 -2
  6. package/build/components/block-list/block-html.cjs +6 -2
  7. package/build/components/block-list/block-html.cjs.map +2 -2
  8. package/build/components/block-mover/button.cjs +4 -3
  9. package/build/components/block-mover/button.cjs.map +2 -2
  10. package/build/components/block-mover/index.cjs +1 -8
  11. package/build/components/block-mover/index.cjs.map +2 -2
  12. package/build/components/copy-handler/index.cjs.map +2 -2
  13. package/build/components/iframe/get-compatibility-styles.cjs +1 -1
  14. package/build/components/iframe/get-compatibility-styles.cjs.map +2 -2
  15. package/build/components/inserter/media-tab/hooks.cjs +1 -1
  16. package/build/components/inserter/media-tab/hooks.cjs.map +2 -2
  17. package/build/components/link-control/link-preview.cjs +3 -1
  18. package/build/components/link-control/link-preview.cjs.map +2 -2
  19. package/build/components/link-control/search-input.cjs +1 -1
  20. package/build/components/link-control/search-input.cjs.map +2 -2
  21. package/build/components/link-picker/link-preview.cjs +2 -1
  22. package/build/components/link-picker/link-preview.cjs.map +3 -3
  23. package/build/components/preset-input-control/index.cjs +7 -4
  24. package/build/components/preset-input-control/index.cjs.map +2 -2
  25. package/build/components/rich-text/event-listeners/index.cjs.map +2 -2
  26. package/build/components/rich-text/index.cjs +1 -1
  27. package/build/components/rich-text/index.cjs.map +2 -2
  28. package/build/components/rich-text/input-event.cjs +3 -3
  29. package/build/components/rich-text/input-event.cjs.map +2 -2
  30. package/build/components/spacing-sizes-control/utils.cjs +1 -1
  31. package/build/components/spacing-sizes-control/utils.cjs.map +2 -2
  32. package/build/components/use-on-block-drop/index.cjs +1 -1
  33. package/build/components/use-on-block-drop/index.cjs.map +2 -2
  34. package/build/components/use-paste-styles/index.cjs +2 -2
  35. package/build/components/use-paste-styles/index.cjs.map +2 -2
  36. package/build/components/writing-flow/use-selection-observer.cjs +23 -1
  37. package/build/components/writing-flow/use-selection-observer.cjs.map +2 -2
  38. package/build/hooks/block-style-variation.cjs +5 -6
  39. package/build/hooks/block-style-variation.cjs.map +3 -3
  40. package/build/hooks/index.cjs +2 -2
  41. package/build/hooks/index.cjs.map +2 -2
  42. package/build/hooks/style.cjs +54 -52
  43. package/build/hooks/style.cjs.map +2 -2
  44. package/build/private-apis.cjs +1 -1
  45. package/build/private-apis.cjs.map +1 -1
  46. package/build/store/actions.cjs +0 -8
  47. package/build/store/actions.cjs.map +2 -2
  48. package/build/store/reducer.cjs +52 -53
  49. package/build/store/reducer.cjs.map +2 -2
  50. package/build/store/selectors.cjs +12 -13
  51. package/build/store/selectors.cjs.map +2 -2
  52. package/build/store/utils.cjs +1 -1
  53. package/build/store/utils.cjs.map +2 -2
  54. package/build/utils/pasting.cjs +1 -1
  55. package/build/utils/pasting.cjs.map +2 -2
  56. package/build-module/components/autocomplete/index.mjs +1 -2
  57. package/build-module/components/autocomplete/index.mjs.map +2 -2
  58. package/build-module/components/block-list/block-crash-warning.mjs +4 -2
  59. package/build-module/components/block-list/block-crash-warning.mjs.map +2 -2
  60. package/build-module/components/block-list/block-html.mjs +7 -3
  61. package/build-module/components/block-list/block-html.mjs.map +2 -2
  62. package/build-module/components/block-mover/button.mjs +4 -3
  63. package/build-module/components/block-mover/button.mjs.map +2 -2
  64. package/build-module/components/block-mover/index.mjs +1 -8
  65. package/build-module/components/block-mover/index.mjs.map +2 -2
  66. package/build-module/components/copy-handler/index.mjs.map +2 -2
  67. package/build-module/components/iframe/get-compatibility-styles.mjs +1 -1
  68. package/build-module/components/iframe/get-compatibility-styles.mjs.map +2 -2
  69. package/build-module/components/inserter/media-tab/hooks.mjs +1 -1
  70. package/build-module/components/inserter/media-tab/hooks.mjs.map +2 -2
  71. package/build-module/components/link-control/link-preview.mjs +3 -1
  72. package/build-module/components/link-control/link-preview.mjs.map +2 -2
  73. package/build-module/components/link-control/search-input.mjs +1 -1
  74. package/build-module/components/link-control/search-input.mjs.map +2 -2
  75. package/build-module/components/link-picker/link-preview.mjs +2 -1
  76. package/build-module/components/link-picker/link-preview.mjs.map +2 -2
  77. package/build-module/components/preset-input-control/index.mjs +7 -4
  78. package/build-module/components/preset-input-control/index.mjs.map +2 -2
  79. package/build-module/components/rich-text/event-listeners/index.mjs.map +2 -2
  80. package/build-module/components/rich-text/index.mjs +2 -2
  81. package/build-module/components/rich-text/index.mjs.map +2 -2
  82. package/build-module/components/rich-text/input-event.mjs +2 -2
  83. package/build-module/components/rich-text/input-event.mjs.map +2 -2
  84. package/build-module/components/spacing-sizes-control/utils.mjs +1 -1
  85. package/build-module/components/spacing-sizes-control/utils.mjs.map +2 -2
  86. package/build-module/components/use-on-block-drop/index.mjs +1 -1
  87. package/build-module/components/use-on-block-drop/index.mjs.map +2 -2
  88. package/build-module/components/use-paste-styles/index.mjs +2 -2
  89. package/build-module/components/use-paste-styles/index.mjs.map +2 -2
  90. package/build-module/components/writing-flow/use-selection-observer.mjs +23 -1
  91. package/build-module/components/writing-flow/use-selection-observer.mjs.map +2 -2
  92. package/build-module/hooks/block-style-variation.mjs +4 -5
  93. package/build-module/hooks/block-style-variation.mjs.map +2 -2
  94. package/build-module/hooks/index.mjs +2 -2
  95. package/build-module/hooks/index.mjs.map +2 -2
  96. package/build-module/hooks/style.mjs +54 -52
  97. package/build-module/hooks/style.mjs.map +2 -2
  98. package/build-module/private-apis.mjs +2 -2
  99. package/build-module/private-apis.mjs.map +1 -1
  100. package/build-module/store/actions.mjs +0 -8
  101. package/build-module/store/actions.mjs.map +2 -2
  102. package/build-module/store/reducer.mjs +52 -53
  103. package/build-module/store/reducer.mjs.map +2 -2
  104. package/build-module/store/selectors.mjs +12 -13
  105. package/build-module/store/selectors.mjs.map +2 -2
  106. package/build-module/store/utils.mjs +1 -1
  107. package/build-module/store/utils.mjs.map +2 -2
  108. package/build-module/utils/pasting.mjs +1 -1
  109. package/build-module/utils/pasting.mjs.map +2 -2
  110. package/build-style/style-rtl.css +0 -7
  111. package/build-style/style.css +0 -7
  112. package/package.json +38 -39
  113. package/src/autocompleters/style.scss +0 -8
  114. package/src/components/autocomplete/index.js +1 -2
  115. package/src/components/block-draggable/test/helpers.native.js +1 -1
  116. package/src/components/block-list/block-crash-warning.js +3 -1
  117. package/src/components/block-list/block-crash-warning.native.js +3 -1
  118. package/src/components/block-list/block-html.js +13 -3
  119. package/src/components/block-mover/button.js +7 -4
  120. package/src/components/block-mover/index.js +1 -8
  121. package/src/components/copy-handler/index.js +1 -0
  122. package/src/components/iframe/get-compatibility-styles.js +1 -1
  123. package/src/components/inserter/media-tab/hooks.js +1 -1
  124. package/src/components/link-control/README.md +2 -2
  125. package/src/components/link-control/link-preview.js +3 -1
  126. package/src/components/link-control/search-input.js +1 -1
  127. package/src/components/link-picker/link-preview.js +2 -1
  128. package/src/components/preset-input-control/index.js +10 -4
  129. package/src/components/preset-input-control/test/index.js +70 -0
  130. package/src/components/rich-text/event-listeners/index.js +1 -0
  131. package/src/components/rich-text/index.js +1 -1
  132. package/src/components/rich-text/index.native.js +1 -1
  133. package/src/components/rich-text/input-event.js +1 -1
  134. package/src/components/rich-text/input-event.native.js +1 -1
  135. package/src/components/rich-text/native/index.native.js +18 -17
  136. package/src/components/spacing-sizes-control/utils.js +1 -1
  137. package/src/components/use-on-block-drop/index.js +1 -1
  138. package/src/components/use-paste-styles/index.js +2 -2
  139. package/src/components/writing-flow/use-selection-observer.js +39 -1
  140. package/src/hooks/block-style-variation.js +3 -4
  141. package/src/hooks/index.js +1 -1
  142. package/src/hooks/style.js +75 -61
  143. package/src/private-apis.js +2 -2
  144. package/src/store/actions.js +0 -8
  145. package/src/store/reducer.js +62 -67
  146. package/src/store/selectors.js +31 -21
  147. package/src/store/test/private-selectors.js +44 -41
  148. package/src/store/test/reducer.js +159 -88
  149. package/src/store/test/registry-selectors.js +1 -1
  150. package/src/store/test/selectors.js +265 -200
  151. package/src/store/utils.js +1 -1
  152. package/src/utils/pasting.js +1 -1
  153. package/build/autocompleters/link.cjs +0 -81
  154. package/build/autocompleters/link.cjs.map +0 -7
  155. package/build-module/autocompleters/link.mjs +0 -50
  156. package/build-module/autocompleters/link.mjs.map +0 -7
  157. package/src/autocompleters/link.js +0 -63
@@ -321,7 +321,7 @@ describe( 'selectors', () => {
321
321
  },
322
322
  } )
323
323
  ),
324
- controlledInnerBlocks: {},
324
+ controlledInnerBlocks: new Set(),
325
325
  },
326
326
  };
327
327
 
@@ -347,7 +347,7 @@ describe( 'selectors', () => {
347
347
  },
348
348
  } )
349
349
  ),
350
- controlledInnerBlocks: {},
350
+ controlledInnerBlocks: new Set(),
351
351
  },
352
352
  };
353
353
 
@@ -404,7 +404,7 @@ describe( 'selectors', () => {
404
404
  23: {},
405
405
  } )
406
406
  ),
407
- controlledInnerBlocks: {},
407
+ controlledInnerBlocks: new Set(),
408
408
  },
409
409
  };
410
410
 
@@ -452,7 +452,7 @@ describe( 'selectors', () => {
452
452
  'client-id-03': {},
453
453
  'client-id-04': {},
454
454
  },
455
- controlledInnerBlocks: {},
455
+ controlledInnerBlocks: new Set(),
456
456
  },
457
457
  };
458
458
 
@@ -509,7 +509,7 @@ describe( 'selectors', () => {
509
509
  'client-id-04': {},
510
510
  'client-id-05': {},
511
511
  },
512
- controlledInnerBlocks: {},
512
+ controlledInnerBlocks: new Set(),
513
513
  },
514
514
  };
515
515
  it( 'should return parent blocks', () => {
@@ -674,7 +674,7 @@ describe( 'selectors', () => {
674
674
  'uuid-30': 'uuid-28',
675
675
  } )
676
676
  ),
677
- controlledInnerBlocks: {},
677
+ controlledInnerBlocks: new Set(),
678
678
  },
679
679
  };
680
680
 
@@ -1246,7 +1246,7 @@ describe( 'selectors', () => {
1246
1246
  },
1247
1247
  } )
1248
1248
  ),
1249
- controlledInnerBlocks: {},
1249
+ controlledInnerBlocks: new Set(),
1250
1250
  },
1251
1251
  selection: {
1252
1252
  selectionStart: { clientId: '23' },
@@ -2700,7 +2700,7 @@ describe( 'selectors', () => {
2700
2700
  parents: new Map(),
2701
2701
  blockEditingModes: new Map(),
2702
2702
  },
2703
- blockListSettings: {},
2703
+ blockListSettings: new Map(),
2704
2704
  settings: {},
2705
2705
  };
2706
2706
  expect( canInsertBlockType( state, 'core/invalid' ) ).toBe( false );
@@ -2715,7 +2715,7 @@ describe( 'selectors', () => {
2715
2715
  parents: new Map(),
2716
2716
  blockEditingModes: new Map(),
2717
2717
  },
2718
- blockListSettings: {},
2718
+ blockListSettings: new Map(),
2719
2719
  settings: {
2720
2720
  allowedBlockTypes: [],
2721
2721
  },
@@ -2734,7 +2734,7 @@ describe( 'selectors', () => {
2734
2734
  order: new Map(),
2735
2735
  blockEditingModes: new Map(),
2736
2736
  },
2737
- blockListSettings: {},
2737
+ blockListSettings: new Map(),
2738
2738
  settings: {
2739
2739
  allowedBlockTypes: [ 'core/test-block-a' ],
2740
2740
  },
@@ -2753,7 +2753,7 @@ describe( 'selectors', () => {
2753
2753
  parents: new Map(),
2754
2754
  blockEditingModes: new Map(),
2755
2755
  },
2756
- blockListSettings: {},
2756
+ blockListSettings: new Map(),
2757
2757
  settings: {
2758
2758
  templateLock: 'all',
2759
2759
  },
@@ -2776,7 +2776,7 @@ describe( 'selectors', () => {
2776
2776
  } )
2777
2777
  ),
2778
2778
  },
2779
- blockListSettings: {},
2779
+ blockListSettings: new Map(),
2780
2780
  settings: {},
2781
2781
  };
2782
2782
  expect( canInsertBlockType( state, 'core/test-block-a' ) ).toBe(
@@ -2793,7 +2793,7 @@ describe( 'selectors', () => {
2793
2793
  order: new Map(),
2794
2794
  blockEditingModes: new Map(),
2795
2795
  },
2796
- blockListSettings: {},
2796
+ blockListSettings: new Map(),
2797
2797
  settings: {},
2798
2798
  };
2799
2799
  expect( canInsertBlockType( state, 'core/test-block-c' ) ).toBe(
@@ -2818,7 +2818,7 @@ describe( 'selectors', () => {
2818
2818
  order: new Map(),
2819
2819
  blockEditingModes: new Map(),
2820
2820
  },
2821
- blockListSettings: {},
2821
+ blockListSettings: new Map(),
2822
2822
  settings: {},
2823
2823
  };
2824
2824
  expect(
@@ -2843,9 +2843,11 @@ describe( 'selectors', () => {
2843
2843
  order: new Map(),
2844
2844
  blockEditingModes: new Map(),
2845
2845
  },
2846
- blockListSettings: {
2847
- block1: {},
2848
- },
2846
+ blockListSettings: new Map(
2847
+ Object.entries( {
2848
+ block1: {},
2849
+ } )
2850
+ ),
2849
2851
  settings: {},
2850
2852
  };
2851
2853
  expect(
@@ -2870,9 +2872,11 @@ describe( 'selectors', () => {
2870
2872
  order: new Map(),
2871
2873
  blockEditingModes: new Map(),
2872
2874
  },
2873
- blockListSettings: {
2874
- block1: {},
2875
- },
2875
+ blockListSettings: new Map(
2876
+ Object.entries( {
2877
+ block1: {},
2878
+ } )
2879
+ ),
2876
2880
  settings: {},
2877
2881
  };
2878
2882
  expect(
@@ -2897,11 +2901,13 @@ describe( 'selectors', () => {
2897
2901
  order: new Map(),
2898
2902
  blockEditingModes: new Map(),
2899
2903
  },
2900
- blockListSettings: {
2901
- block1: {
2902
- allowedBlocks: [ 'core/test-block-c' ],
2903
- },
2904
- },
2904
+ blockListSettings: new Map(
2905
+ Object.entries( {
2906
+ block1: {
2907
+ allowedBlocks: [ 'core/test-block-c' ],
2908
+ },
2909
+ } )
2910
+ ),
2905
2911
  settings: {},
2906
2912
  };
2907
2913
  expect(
@@ -2926,11 +2932,13 @@ describe( 'selectors', () => {
2926
2932
  order: new Map(),
2927
2933
  blockEditingModes: new Map(),
2928
2934
  },
2929
- blockListSettings: {
2930
- block1: {
2931
- allowedBlocks: [ 'core/test-block-b' ],
2932
- },
2933
- },
2935
+ blockListSettings: new Map(
2936
+ Object.entries( {
2937
+ block1: {
2938
+ allowedBlocks: [ 'core/test-block-b' ],
2939
+ },
2940
+ } )
2941
+ ),
2934
2942
  settings: {},
2935
2943
  };
2936
2944
  expect(
@@ -2959,7 +2967,7 @@ describe( 'selectors', () => {
2959
2967
  } )
2960
2968
  ),
2961
2969
  },
2962
- blockListSettings: {},
2970
+ blockListSettings: new Map(),
2963
2971
  settings: {},
2964
2972
  };
2965
2973
  expect(
@@ -2984,11 +2992,13 @@ describe( 'selectors', () => {
2984
2992
  order: new Map(),
2985
2993
  blockEditingModes: new Map(),
2986
2994
  },
2987
- blockListSettings: {
2988
- block1: {
2989
- allowedBlocks: [],
2990
- },
2991
- },
2995
+ blockListSettings: new Map(
2996
+ Object.entries( {
2997
+ block1: {
2998
+ allowedBlocks: [],
2999
+ },
3000
+ } )
3001
+ ),
2992
3002
  settings: {},
2993
3003
  };
2994
3004
  expect(
@@ -3013,7 +3023,7 @@ describe( 'selectors', () => {
3013
3023
  order: new Map(),
3014
3024
  blockEditingModes: new Map(),
3015
3025
  },
3016
- blockListSettings: {},
3026
+ blockListSettings: new Map(),
3017
3027
  settings: {},
3018
3028
  };
3019
3029
  expect(
@@ -3030,7 +3040,7 @@ describe( 'selectors', () => {
3030
3040
  order: new Map(),
3031
3041
  blockEditingModes: new Map(),
3032
3042
  },
3033
- blockListSettings: {},
3043
+ blockListSettings: new Map(),
3034
3044
  settings: {},
3035
3045
  };
3036
3046
  expect(
@@ -3058,16 +3068,20 @@ describe( 'selectors', () => {
3058
3068
  block2: 'block1',
3059
3069
  } )
3060
3070
  ),
3061
- order: new Map( [
3062
- [ '', [ 'block1' ] ],
3063
- [ 'block1', [ 'block2' ] ],
3064
- ] ),
3071
+ order: new Map(
3072
+ Object.entries( {
3073
+ '': [ 'block1' ],
3074
+ block1: [ 'block2' ],
3075
+ } )
3076
+ ),
3065
3077
  blockEditingModes: new Map(),
3066
3078
  },
3067
- blockListSettings: {
3068
- block1: {},
3069
- block2: {},
3070
- },
3079
+ blockListSettings: new Map(
3080
+ Object.entries( {
3081
+ block1: {},
3082
+ block2: {},
3083
+ } )
3084
+ ),
3071
3085
  settings: {},
3072
3086
  };
3073
3087
  expect(
@@ -3100,9 +3114,11 @@ describe( 'selectors', () => {
3100
3114
  order: new Map( [ [ '', [ 'block1' ] ] ] ),
3101
3115
  blockEditingModes: new Map(),
3102
3116
  },
3103
- blockListSettings: {
3104
- block1: {},
3105
- },
3117
+ blockListSettings: new Map(
3118
+ Object.entries( {
3119
+ block1: {},
3120
+ } )
3121
+ ),
3106
3122
  settings: {},
3107
3123
  };
3108
3124
  expect(
@@ -3134,19 +3150,25 @@ describe( 'selectors', () => {
3134
3150
  child: 'parent',
3135
3151
  } )
3136
3152
  ),
3137
- order: new Map( [
3138
- [ '', [ 'parent' ] ],
3139
- [ 'parent', [ 'child' ] ],
3140
- ] ),
3153
+ order: new Map(
3154
+ Object.entries( {
3155
+ '': [ 'parent' ],
3156
+ parent: [ 'child' ],
3157
+ } )
3158
+ ),
3141
3159
  blockEditingModes: new Map(),
3142
3160
  },
3143
- blockListSettings: {
3144
- parent: {},
3145
- },
3161
+ blockListSettings: new Map(
3162
+ Object.entries( {
3163
+ parent: {},
3164
+ } )
3165
+ ),
3146
3166
  settings: {},
3147
- derivedBlockEditingModes: new Map( [
3148
- [ 'parent', 'contentOnly' ],
3149
- ] ),
3167
+ derivedBlockEditingModes: new Map(
3168
+ Object.entries( {
3169
+ parent: 'contentOnly',
3170
+ } )
3171
+ ),
3150
3172
  };
3151
3173
  expect(
3152
3174
  canInsertBlockType( state, 'core/test-block-b', 'parent' )
@@ -3189,10 +3211,10 @@ describe( 'selectors', () => {
3189
3211
  ] ),
3190
3212
  blockEditingModes: new Map(),
3191
3213
  },
3192
- blockListSettings: {
3193
- section: {},
3194
- container: {},
3195
- },
3214
+ blockListSettings: new Map( [
3215
+ [ 'section', {} ],
3216
+ [ 'container', {} ],
3217
+ ] ),
3196
3218
  settings: {
3197
3219
  [ sectionRootClientIdKey ]: '',
3198
3220
  },
@@ -3247,10 +3269,10 @@ describe( 'selectors', () => {
3247
3269
  ] ),
3248
3270
  blockEditingModes: new Map(),
3249
3271
  },
3250
- blockListSettings: {
3251
- section: {},
3252
- container: {},
3253
- },
3272
+ blockListSettings: new Map( [
3273
+ [ 'section', {} ],
3274
+ [ 'container', {} ],
3275
+ ] ),
3254
3276
  settings: {
3255
3277
  [ sectionRootClientIdKey ]: '',
3256
3278
  },
@@ -3297,11 +3319,11 @@ describe( 'selectors', () => {
3297
3319
  ] ),
3298
3320
  blockEditingModes: new Map(),
3299
3321
  },
3300
- blockListSettings: {
3301
- block1: {},
3302
- block2: {},
3303
- block3: {},
3304
- },
3322
+ blockListSettings: new Map( [
3323
+ [ 'block1', {} ],
3324
+ [ 'block2', {} ],
3325
+ [ 'block3', {} ],
3326
+ ] ),
3305
3327
  settings: {},
3306
3328
  };
3307
3329
  expect(
@@ -3342,11 +3364,11 @@ describe( 'selectors', () => {
3342
3364
  ] ),
3343
3365
  blockEditingModes: new Map(),
3344
3366
  },
3345
- blockListSettings: {
3346
- block1: {},
3347
- block2: {},
3348
- block3: {},
3349
- },
3367
+ blockListSettings: new Map( [
3368
+ [ 'block1', {} ],
3369
+ [ 'block2', {} ],
3370
+ [ 'block3', {} ],
3371
+ ] ),
3350
3372
  settings: {},
3351
3373
  };
3352
3374
  expect(
@@ -3387,11 +3409,11 @@ describe( 'selectors', () => {
3387
3409
  ] ),
3388
3410
  blockEditingModes: new Map(),
3389
3411
  },
3390
- blockListSettings: {
3391
- block1: {},
3392
- block2: {},
3393
- block3: {},
3394
- },
3412
+ blockListSettings: new Map( [
3413
+ [ 'block1', {} ],
3414
+ [ 'block2', {} ],
3415
+ [ 'block3', {} ],
3416
+ ] ),
3395
3417
  settings: {},
3396
3418
  };
3397
3419
  expect(
@@ -3428,12 +3450,15 @@ describe( 'selectors', () => {
3428
3450
  ] ),
3429
3451
  blockEditingModes: new Map(),
3430
3452
  },
3431
- blockListSettings: {
3432
- block1: {},
3433
- block2: {
3434
- allowedBlocks: [],
3435
- },
3436
- },
3453
+ blockListSettings: new Map( [
3454
+ [ 'block1', {} ],
3455
+ [
3456
+ 'block2',
3457
+ {
3458
+ allowedBlocks: [],
3459
+ },
3460
+ ],
3461
+ ] ),
3437
3462
  settings: {},
3438
3463
  };
3439
3464
  expect(
@@ -3471,10 +3496,10 @@ describe( 'selectors', () => {
3471
3496
  ] ),
3472
3497
  blockEditingModes: new Map(),
3473
3498
  },
3474
- blockListSettings: {
3475
- block1: {},
3476
- block2: {},
3477
- },
3499
+ blockListSettings: new Map( [
3500
+ [ 'block1', {} ],
3501
+ [ 'block2', {} ],
3502
+ ] ),
3478
3503
  settings: {},
3479
3504
  };
3480
3505
  expect(
@@ -3509,14 +3534,17 @@ describe( 'selectors', () => {
3509
3534
  order: new Map(),
3510
3535
  blockEditingModes: new Map(),
3511
3536
  },
3512
- blockListSettings: {
3513
- 1: {
3514
- allowedBlocks: [
3515
- 'core/test-block-b',
3516
- 'core/test-block-c',
3517
- ],
3518
- },
3519
- },
3537
+ blockListSettings: new Map( [
3538
+ [
3539
+ '1',
3540
+ {
3541
+ allowedBlocks: [
3542
+ 'core/test-block-b',
3543
+ 'core/test-block-c',
3544
+ ],
3545
+ },
3546
+ ],
3547
+ ] ),
3520
3548
  settings: {},
3521
3549
  };
3522
3550
  expect( canInsertBlocks( state, [ '2' ], '1' ) ).toBe( true );
@@ -3543,11 +3571,13 @@ describe( 'selectors', () => {
3543
3571
  order: new Map(),
3544
3572
  blockEditingModes: new Map(),
3545
3573
  },
3546
- blockListSettings: {
3547
- 1: {
3548
- allowedBlocks: [ 'core/test-block-c' ],
3549
- },
3550
- },
3574
+ blockListSettings: new Map(
3575
+ Object.entries( {
3576
+ 1: {
3577
+ allowedBlocks: [ 'core/test-block-c' ],
3578
+ },
3579
+ } )
3580
+ ),
3551
3581
  settings: {},
3552
3582
  };
3553
3583
  expect( canInsertBlocks( state, [ '2', '3' ], '1' ) ).toBe( false );
@@ -3824,7 +3854,7 @@ describe( 'selectors', () => {
3824
3854
  },
3825
3855
  settings: {},
3826
3856
  preferences: {},
3827
- blockListSettings: {},
3857
+ blockListSettings: new Map(),
3828
3858
  };
3829
3859
  const blocks = [ { name: 'core/with-tranforms-a' } ];
3830
3860
  const items = getBlockTransformItems( state, blocks );
@@ -3865,7 +3895,7 @@ describe( 'selectors', () => {
3865
3895
  },
3866
3896
  settings: {},
3867
3897
  preferences: {},
3868
- blockListSettings: {},
3898
+ blockListSettings: new Map(),
3869
3899
  };
3870
3900
  const block = { name: 'core/with-tranforms-a' };
3871
3901
  const items = getBlockTransformItems( state, block );
@@ -3894,17 +3924,20 @@ describe( 'selectors', () => {
3894
3924
  } )
3895
3925
  ),
3896
3926
  cache: {},
3897
- controlledInnerBlocks: {},
3927
+ controlledInnerBlocks: new Set(),
3898
3928
  blockEditingModes: new Map(),
3899
3929
  },
3900
3930
  settings: {},
3901
3931
  preferences: {},
3902
- blockListSettings: {
3903
- block1: {
3904
- allowedBlocks: [ 'core/with-tranforms-c' ],
3905
- },
3906
- block2: {},
3907
- },
3932
+ blockListSettings: new Map( [
3933
+ [
3934
+ 'block1',
3935
+ {
3936
+ allowedBlocks: [ 'core/with-tranforms-c' ],
3937
+ },
3938
+ ],
3939
+ [ 'block2', {} ],
3940
+ ] ),
3908
3941
  };
3909
3942
  const blocks = [
3910
3943
  { clientId: 'block2', name: 'core/with-tranforms-a' },
@@ -3944,14 +3977,14 @@ describe( 'selectors', () => {
3944
3977
  },
3945
3978
  } )
3946
3979
  ),
3947
- controlledInnerBlocks: {},
3980
+ controlledInnerBlocks: new Set(),
3948
3981
  parents: new Map(),
3949
3982
  blockEditingModes: new Map(),
3950
3983
  },
3951
3984
  preferences: {
3952
3985
  insertUsage: {},
3953
3986
  },
3954
- blockListSettings: {},
3987
+ blockListSettings: new Map(),
3955
3988
  settings: {},
3956
3989
  };
3957
3990
  const blocks = [ { name: 'core/with-tranforms-a' } ];
@@ -3985,7 +4018,7 @@ describe( 'selectors', () => {
3985
4018
  'core/with-tranforms-a': { count: 10, time: 1000 },
3986
4019
  },
3987
4020
  },
3988
- blockListSettings: {},
4021
+ blockListSettings: new Map(),
3989
4022
  settings: {},
3990
4023
  };
3991
4024
  const blocks = [ { name: 'core/with-tranforms-c' } ];
@@ -4041,11 +4074,14 @@ describe( 'selectors', () => {
4041
4074
  it( 'should return false if the specified clientId was not found', () => {
4042
4075
  const state = {
4043
4076
  settings: { templateLock: 'all' },
4044
- blockListSettings: {
4045
- chicken: {
4046
- templateLock: 'insert',
4047
- },
4048
- },
4077
+ blockListSettings: new Map( [
4078
+ [
4079
+ 'chicken',
4080
+ {
4081
+ templateLock: 'insert',
4082
+ },
4083
+ ],
4084
+ ] ),
4049
4085
  };
4050
4086
 
4051
4087
  expect( getTemplateLock( state, 'ribs' ) ).toBe( false );
@@ -4054,11 +4090,14 @@ describe( 'selectors', () => {
4054
4090
  it( 'should return false if template lock was not set on the specified block', () => {
4055
4091
  const state = {
4056
4092
  settings: { templateLock: 'all' },
4057
- blockListSettings: {
4058
- chicken: {
4059
- test: 'tes1t',
4060
- },
4061
- },
4093
+ blockListSettings: new Map( [
4094
+ [
4095
+ 'chicken',
4096
+ {
4097
+ test: 'tes1t',
4098
+ },
4099
+ ],
4100
+ ] ),
4062
4101
  };
4063
4102
 
4064
4103
  expect( getTemplateLock( state, 'chicken' ) ).toBe( false );
@@ -4067,11 +4106,14 @@ describe( 'selectors', () => {
4067
4106
  it( 'should return the template lock for the specified clientId', () => {
4068
4107
  const state = {
4069
4108
  settings: { templateLock: 'all' },
4070
- blockListSettings: {
4071
- chicken: {
4072
- templateLock: 'insert',
4073
- },
4074
- },
4109
+ blockListSettings: new Map( [
4110
+ [
4111
+ 'chicken',
4112
+ {
4113
+ templateLock: 'insert',
4114
+ },
4115
+ ],
4116
+ ] ),
4075
4117
  };
4076
4118
 
4077
4119
  expect( getTemplateLock( state, 'chicken' ) ).toBe( 'insert' );
@@ -4080,11 +4122,14 @@ describe( 'selectors', () => {
4080
4122
  it( 'should return false if the block has contentOnly template lock and is an edited section', () => {
4081
4123
  const state = {
4082
4124
  editedContentOnlySection: 'chicken',
4083
- blockListSettings: {
4084
- chicken: {
4085
- templateLock: 'contentOnly',
4086
- },
4087
- },
4125
+ blockListSettings: new Map( [
4126
+ [
4127
+ 'chicken',
4128
+ {
4129
+ templateLock: 'contentOnly',
4130
+ },
4131
+ ],
4132
+ ] ),
4088
4133
  };
4089
4134
 
4090
4135
  expect( getTemplateLock( state, 'chicken' ) ).toBe( false );
@@ -4094,14 +4139,20 @@ describe( 'selectors', () => {
4094
4139
  describe( 'getBlockListSettings', () => {
4095
4140
  it( 'should return the settings of a block', () => {
4096
4141
  const state = {
4097
- blockListSettings: {
4098
- chicken: {
4099
- setting1: false,
4100
- },
4101
- ribs: {
4102
- setting2: true,
4103
- },
4104
- },
4142
+ blockListSettings: new Map( [
4143
+ [
4144
+ 'chicken',
4145
+ {
4146
+ setting1: false,
4147
+ },
4148
+ ],
4149
+ [
4150
+ 'ribs',
4151
+ {
4152
+ setting2: true,
4153
+ },
4154
+ ],
4155
+ ] ),
4105
4156
  };
4106
4157
 
4107
4158
  expect( getBlockListSettings( state, 'chicken' ) ).toEqual( {
@@ -4111,7 +4162,7 @@ describe( 'selectors', () => {
4111
4162
 
4112
4163
  it( 'should return undefined if settings for the block don’t exist', () => {
4113
4164
  const state = {
4114
- blockListSettings: {},
4165
+ blockListSettings: new Map(),
4115
4166
  };
4116
4167
 
4117
4168
  expect( getBlockListSettings( state, 'chicken' ) ).toBe(
@@ -4123,22 +4174,34 @@ describe( 'selectors', () => {
4123
4174
  describe( '__experimentalGetBlockListSettingsForBlocks', () => {
4124
4175
  it( 'should return the settings for a set of blocks', () => {
4125
4176
  const state = {
4126
- blockListSettings: {
4127
- 'test-1-dummy-clientId': {
4128
- setting1: false,
4129
- },
4130
- 'test-2-dummy-clientId': {
4131
- setting1: true,
4132
- setting2: false,
4133
- },
4134
- 'test-3-dummy-clientId': {
4135
- setting1: true,
4136
- setting2: false,
4137
- },
4138
- 'test-4-dummy-clientId': {
4139
- setting1: true,
4140
- },
4141
- },
4177
+ blockListSettings: new Map( [
4178
+ [
4179
+ 'test-1-dummy-clientId',
4180
+ {
4181
+ setting1: false,
4182
+ },
4183
+ ],
4184
+ [
4185
+ 'test-2-dummy-clientId',
4186
+ {
4187
+ setting1: true,
4188
+ setting2: false,
4189
+ },
4190
+ ],
4191
+ [
4192
+ 'test-3-dummy-clientId',
4193
+ {
4194
+ setting1: true,
4195
+ setting2: false,
4196
+ },
4197
+ ],
4198
+ [
4199
+ 'test-4-dummy-clientId',
4200
+ {
4201
+ setting1: true,
4202
+ },
4203
+ ],
4204
+ ] ),
4142
4205
  };
4143
4206
 
4144
4207
  const targetBlocksClientIds = [
@@ -4165,15 +4228,21 @@ describe( 'selectors', () => {
4165
4228
  it( 'should return empty object if settings for the blocks don’t exist', () => {
4166
4229
  // Does not include target Block clientIds.
4167
4230
  const state = {
4168
- blockListSettings: {
4169
- 'test-2-dummy-clientId': {
4170
- setting1: true,
4171
- setting2: false,
4172
- },
4173
- 'test-4-dummy-clientId': {
4174
- setting1: true,
4175
- },
4176
- },
4231
+ blockListSettings: new Map( [
4232
+ [
4233
+ 'test-2-dummy-clientId',
4234
+ {
4235
+ setting1: true,
4236
+ setting2: false,
4237
+ },
4238
+ ],
4239
+ [
4240
+ 'test-4-dummy-clientId',
4241
+ {
4242
+ setting1: true,
4243
+ },
4244
+ ],
4245
+ ] ),
4177
4246
  };
4178
4247
 
4179
4248
  const targetBlocksClientIds = [
@@ -4369,7 +4438,7 @@ describe( 'selectors', () => {
4369
4438
  'client-id-03': [ 'client-id-04', 'client-id-05' ],
4370
4439
  } )
4371
4440
  ),
4372
- controlledInnerBlocks: {},
4441
+ controlledInnerBlocks: new Set(),
4373
4442
  },
4374
4443
  };
4375
4444
  it( 'Should return first active matching block (including self) when single block selected', () => {
@@ -4478,9 +4547,7 @@ describe( 'selectors', () => {
4478
4547
  ] ),
4479
4548
  blockEditingModes: new Map(),
4480
4549
  },
4481
- blockListSettings: {
4482
- parent: {},
4483
- },
4550
+ blockListSettings: new Map( [ [ 'parent', {} ] ] ),
4484
4551
  settings: {},
4485
4552
  derivedBlockEditingModes: new Map( [
4486
4553
  [ 'parent', 'contentOnly' ],
@@ -4528,10 +4595,10 @@ describe( 'selectors', () => {
4528
4595
  ] ),
4529
4596
  blockEditingModes: new Map(),
4530
4597
  },
4531
- blockListSettings: {
4532
- section: {},
4533
- container: {},
4534
- },
4598
+ blockListSettings: new Map( [
4599
+ [ 'section', {} ],
4600
+ [ 'container', {} ],
4601
+ ] ),
4535
4602
  settings: {
4536
4603
  [ sectionRootClientIdKey ]: '',
4537
4604
  },
@@ -4581,10 +4648,10 @@ describe( 'selectors', () => {
4581
4648
  ] ),
4582
4649
  blockEditingModes: new Map(),
4583
4650
  },
4584
- blockListSettings: {
4585
- section: {},
4586
- container: {},
4587
- },
4651
+ blockListSettings: new Map( [
4652
+ [ 'section', {} ],
4653
+ [ 'container', {} ],
4654
+ ] ),
4588
4655
  settings: {
4589
4656
  [ sectionRootClientIdKey ]: '',
4590
4657
  },
@@ -4643,10 +4710,10 @@ describe( 'selectors', () => {
4643
4710
  ] ),
4644
4711
  blockEditingModes: new Map(),
4645
4712
  },
4646
- blockListSettings: {
4647
- section: {},
4648
- container: {},
4649
- },
4713
+ blockListSettings: new Map( [
4714
+ [ 'section', {} ],
4715
+ [ 'container', {} ],
4716
+ ] ),
4650
4717
  settings: {
4651
4718
  [ sectionRootClientIdKey ]: '',
4652
4719
  },
@@ -4690,9 +4757,7 @@ describe( 'selectors', () => {
4690
4757
  ] ),
4691
4758
  blockEditingModes: new Map(),
4692
4759
  },
4693
- blockListSettings: {
4694
- parent: {},
4695
- },
4760
+ blockListSettings: new Map( [ [ 'parent', {} ] ] ),
4696
4761
  settings: {},
4697
4762
  derivedBlockEditingModes: new Map( [
4698
4763
  [ 'parent', 'contentOnly' ],
@@ -4740,10 +4805,10 @@ describe( 'selectors', () => {
4740
4805
  ] ),
4741
4806
  blockEditingModes: new Map(),
4742
4807
  },
4743
- blockListSettings: {
4744
- section: {},
4745
- container: {},
4746
- },
4808
+ blockListSettings: new Map( [
4809
+ [ 'section', {} ],
4810
+ [ 'container', {} ],
4811
+ ] ),
4747
4812
  settings: {
4748
4813
  [ sectionRootClientIdKey ]: '',
4749
4814
  },
@@ -4793,10 +4858,10 @@ describe( 'selectors', () => {
4793
4858
  ] ),
4794
4859
  blockEditingModes: new Map(),
4795
4860
  },
4796
- blockListSettings: {
4797
- section: {},
4798
- container: {},
4799
- },
4861
+ blockListSettings: new Map( [
4862
+ [ 'section', {} ],
4863
+ [ 'container', {} ],
4864
+ ] ),
4800
4865
  settings: {
4801
4866
  [ sectionRootClientIdKey ]: '',
4802
4867
  },
@@ -4973,9 +5038,9 @@ describe( '__unstableGetClientIdsTree', () => {
4973
5038
  describe( 'getBlockEditingMode', () => {
4974
5039
  const baseState = {
4975
5040
  blocks: {
4976
- blockEditingModes: new Map( [] ),
5041
+ blockEditingModes: new Map(),
4977
5042
  },
4978
- derivedBlockEditingModes: new Map( [] ),
5043
+ derivedBlockEditingModes: new Map(),
4979
5044
  };
4980
5045
 
4981
5046
  const hasContentRoleAttribute = jest.fn( () => false );