@wordpress/block-editor 10.1.0 → 10.2.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 (148) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/block-controls/slot.js +2 -2
  3. package/build/components/block-controls/slot.js.map +1 -1
  4. package/build/components/block-draggable/index.js +1 -1
  5. package/build/components/block-draggable/index.js.map +1 -1
  6. package/build/components/block-inspector/index.js +4 -5
  7. package/build/components/block-inspector/index.js.map +1 -1
  8. package/build/components/block-list/use-in-between-inserter.js +4 -4
  9. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  10. package/build/components/block-parent-selector/index.js +2 -2
  11. package/build/components/block-parent-selector/index.js.map +1 -1
  12. package/build/components/block-popover/inbetween.js +3 -1
  13. package/build/components/block-popover/inbetween.js.map +1 -1
  14. package/build/components/block-popover/index.js +20 -17
  15. package/build/components/block-popover/index.js.map +1 -1
  16. package/build/components/block-settings-menu/block-settings-dropdown.js +5 -5
  17. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  18. package/build/components/block-tools/index.js +1 -1
  19. package/build/components/block-tools/index.js.map +1 -1
  20. package/build/components/block-tools/use-block-toolbar-popover-props.js +6 -3
  21. package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  22. package/build/components/image-editor/use-transform-image.js +2 -2
  23. package/build/components/image-editor/use-transform-image.js.map +1 -1
  24. package/build/components/index.js +9 -0
  25. package/build/components/index.js.map +1 -1
  26. package/build/components/inserter/block-types-tab.js +1 -1
  27. package/build/components/inserter/block-types-tab.js.map +1 -1
  28. package/build/components/inserter/search-items.js +2 -17
  29. package/build/components/inserter/search-items.js.map +1 -1
  30. package/build/components/inspector-controls/slot.js +2 -1
  31. package/build/components/inspector-controls/slot.js.map +1 -1
  32. package/build/components/rich-text/index.js +17 -0
  33. package/build/components/rich-text/index.js.map +1 -1
  34. package/build/components/spacing-sizes-control/index.js +10 -2
  35. package/build/components/spacing-sizes-control/index.js.map +1 -1
  36. package/build/components/spacing-sizes-control/spacing-input-control.js +5 -4
  37. package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  38. package/build/components/url-popover/image-url-input-ui.js +1 -1
  39. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  40. package/build/components/use-block-drop-zone/index.js +19 -1
  41. package/build/components/use-block-drop-zone/index.js.map +1 -1
  42. package/build/components/use-on-block-drop/index.js +62 -20
  43. package/build/components/use-on-block-drop/index.js.map +1 -1
  44. package/build/components/writing-flow/use-arrow-nav.js +14 -7
  45. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  46. package/build/hooks/index.js +13 -1
  47. package/build/hooks/index.js.map +1 -1
  48. package/build/hooks/layout.js +76 -23
  49. package/build/hooks/layout.js.map +1 -1
  50. package/build/index.js +14 -0
  51. package/build/index.js.map +1 -1
  52. package/build/store/reducer.js +5 -3
  53. package/build/store/reducer.js.map +1 -1
  54. package/build/store/selectors.js +1 -1
  55. package/build/store/selectors.js.map +1 -1
  56. package/build-module/components/block-controls/slot.js +3 -3
  57. package/build-module/components/block-controls/slot.js.map +1 -1
  58. package/build-module/components/block-draggable/index.js +1 -1
  59. package/build-module/components/block-draggable/index.js.map +1 -1
  60. package/build-module/components/block-inspector/index.js +5 -6
  61. package/build-module/components/block-inspector/index.js.map +1 -1
  62. package/build-module/components/block-list/use-in-between-inserter.js +4 -4
  63. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  64. package/build-module/components/block-parent-selector/index.js +2 -2
  65. package/build-module/components/block-parent-selector/index.js.map +1 -1
  66. package/build-module/components/block-popover/inbetween.js +3 -1
  67. package/build-module/components/block-popover/inbetween.js.map +1 -1
  68. package/build-module/components/block-popover/index.js +20 -17
  69. package/build-module/components/block-popover/index.js.map +1 -1
  70. package/build-module/components/block-settings-menu/block-settings-dropdown.js +7 -7
  71. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  72. package/build-module/components/block-tools/index.js +1 -1
  73. package/build-module/components/block-tools/index.js.map +1 -1
  74. package/build-module/components/block-tools/use-block-toolbar-popover-props.js +6 -3
  75. package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  76. package/build-module/components/image-editor/use-transform-image.js +2 -2
  77. package/build-module/components/image-editor/use-transform-image.js.map +1 -1
  78. package/build-module/components/index.js +1 -0
  79. package/build-module/components/index.js.map +1 -1
  80. package/build-module/components/inserter/block-types-tab.js +3 -3
  81. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  82. package/build-module/components/inserter/search-items.js +3 -17
  83. package/build-module/components/inserter/search-items.js.map +1 -1
  84. package/build-module/components/inspector-controls/slot.js +3 -2
  85. package/build-module/components/inspector-controls/slot.js.map +1 -1
  86. package/build-module/components/rich-text/index.js +17 -0
  87. package/build-module/components/rich-text/index.js.map +1 -1
  88. package/build-module/components/spacing-sizes-control/index.js +10 -3
  89. package/build-module/components/spacing-sizes-control/index.js.map +1 -1
  90. package/build-module/components/spacing-sizes-control/spacing-input-control.js +6 -5
  91. package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  92. package/build-module/components/url-popover/image-url-input-ui.js +1 -1
  93. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  94. package/build-module/components/use-block-drop-zone/index.js +19 -1
  95. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  96. package/build-module/components/use-on-block-drop/index.js +62 -21
  97. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  98. package/build-module/components/writing-flow/use-arrow-nav.js +14 -7
  99. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  100. package/build-module/hooks/index.js +1 -0
  101. package/build-module/hooks/index.js.map +1 -1
  102. package/build-module/hooks/layout.js +73 -23
  103. package/build-module/hooks/layout.js.map +1 -1
  104. package/build-module/index.js +1 -1
  105. package/build-module/index.js.map +1 -1
  106. package/build-module/store/reducer.js +5 -4
  107. package/build-module/store/reducer.js.map +1 -1
  108. package/build-module/store/selectors.js +1 -1
  109. package/build-module/store/selectors.js.map +1 -1
  110. package/build-style/style-rtl.css +48 -23
  111. package/build-style/style.css +48 -23
  112. package/package.json +29 -30
  113. package/src/components/block-controls/slot.js +3 -3
  114. package/src/components/block-draggable/index.js +1 -1
  115. package/src/components/block-draggable/test/index.native.js +0 -9
  116. package/src/components/block-inspector/index.js +6 -10
  117. package/src/components/block-list/use-in-between-inserter.js +5 -5
  118. package/src/components/block-parent-selector/index.js +2 -2
  119. package/src/components/block-popover/inbetween.js +1 -1
  120. package/src/components/block-popover/index.js +37 -22
  121. package/src/components/block-preview/style.scss +13 -0
  122. package/src/components/block-settings-menu/block-settings-dropdown.js +7 -7
  123. package/src/components/block-switcher/test/__snapshots__/index.js.snap +104 -33
  124. package/src/components/block-switcher/test/index.js +121 -61
  125. package/src/components/block-tools/index.js +1 -1
  126. package/src/components/block-tools/use-block-toolbar-popover-props.js +6 -0
  127. package/src/components/button-block-appender/style.scss +3 -1
  128. package/src/components/image-editor/use-transform-image.js +2 -2
  129. package/src/components/index.js +1 -0
  130. package/src/components/inserter/block-types-tab.js +3 -3
  131. package/src/components/inserter/search-items.js +3 -15
  132. package/src/components/inserter/test/search-items.js +4 -0
  133. package/src/components/inspector-controls/slot.js +6 -2
  134. package/src/components/responsive-block-control/test/index.js +73 -118
  135. package/src/components/rich-text/index.js +22 -0
  136. package/src/components/spacing-sizes-control/index.js +15 -3
  137. package/src/components/spacing-sizes-control/spacing-input-control.js +8 -7
  138. package/src/components/spacing-sizes-control/style.scss +28 -24
  139. package/src/components/url-popover/image-url-input-ui.js +1 -1
  140. package/src/components/use-block-drop-zone/index.js +26 -1
  141. package/src/components/use-on-block-drop/index.js +110 -35
  142. package/src/components/use-on-block-drop/test/index.js +33 -43
  143. package/src/components/writing-flow/use-arrow-nav.js +12 -8
  144. package/src/hooks/index.js +1 -0
  145. package/src/hooks/layout.js +64 -21
  146. package/src/index.js +2 -0
  147. package/src/store/reducer.js +4 -4
  148. package/src/store/selectors.js +1 -0
@@ -1216,6 +1216,16 @@
1216
1216
  display: none;
1217
1217
  }
1218
1218
 
1219
+ .block-editor-block-preview__container::after {
1220
+ content: "";
1221
+ position: absolute;
1222
+ top: 0;
1223
+ right: 0;
1224
+ left: 0;
1225
+ bottom: 0;
1226
+ z-index: 1;
1227
+ }
1228
+
1219
1229
  .block-editor-block-settings-menu__popover .components-dropdown-menu__menu {
1220
1230
  padding: 0;
1221
1231
  }
@@ -1754,10 +1764,10 @@
1754
1764
  color: #000;
1755
1765
  }
1756
1766
 
1757
- .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child {
1767
+ .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child, .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-editor-block-list__layout > .block-list-appender:only-child, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-editor-block-list__layout > .block-list-appender:only-child {
1758
1768
  pointer-events: none;
1759
1769
  }
1760
- .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child::after, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child::after {
1770
+ .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child::after, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child::after, .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-editor-block-list__layout > .block-list-appender:only-child::after, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-editor-block-list__layout > .block-list-appender:only-child::after {
1761
1771
  content: "";
1762
1772
  position: absolute;
1763
1773
  top: 0;
@@ -1765,10 +1775,20 @@
1765
1775
  bottom: 0;
1766
1776
  right: 0;
1767
1777
  pointer-events: none;
1768
- border: 1px dashed currentColor;
1769
1778
  border-radius: 2px;
1770
1779
  }
1771
- .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child .block-editor-inserter, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child .block-editor-inserter {
1780
+ .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child::after::before, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child::after::before, .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-editor-block-list__layout > .block-list-appender:only-child::after::before, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-editor-block-list__layout > .block-list-appender:only-child::after::before {
1781
+ content: "";
1782
+ position: absolute;
1783
+ top: 0;
1784
+ left: 0;
1785
+ bottom: 0;
1786
+ right: 0;
1787
+ pointer-events: none;
1788
+ background: currentColor;
1789
+ opacity: 0.1;
1790
+ }
1791
+ .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child .block-editor-inserter, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child .block-editor-inserter, .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-editor-block-list__layout > .block-list-appender:only-child .block-editor-inserter, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-editor-block-list__layout > .block-list-appender:only-child .block-editor-inserter {
1772
1792
  visibility: hidden;
1773
1793
  }
1774
1794
 
@@ -4315,7 +4335,8 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
4315
4335
  .tools-panel-item-spacing {
4316
4336
  display: grid;
4317
4337
  grid-template-columns: auto 1fr auto;
4318
- grid-row-gap: 4px;
4338
+ align-items: center;
4339
+ grid-template-rows: 25px auto;
4319
4340
  }
4320
4341
 
4321
4342
  .component-spacing-sizes-control {
@@ -4330,19 +4351,28 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
4330
4351
  grid-row: 1/1;
4331
4352
  align-self: center;
4332
4353
  }
4354
+ .component-spacing-sizes-control .components-base-control__label {
4355
+ margin-bottom: 0;
4356
+ height: 16px;
4357
+ }
4333
4358
  .component-spacing-sizes-control .components-spacing-sizes-control__side-labels {
4334
4359
  grid-column: 1/1;
4335
- min-height: 30px;
4336
4360
  justify-content: left;
4361
+ height: 16px;
4362
+ margin-top: 12px;
4337
4363
  }
4338
- .component-spacing-sizes-control .components-spacing-sizes-control__hint-single {
4339
- margin-top: 0;
4340
- margin-right: 0;
4364
+ .component-spacing-sizes-control .components-spacing-sizes-control__side-label {
4365
+ grid-column: 1/1;
4366
+ justify-self: left;
4367
+ margin-bottom: 0;
4368
+ }
4369
+ .component-spacing-sizes-control.is-unlinked .components-range-control.components-spacing-sizes-control__range-control {
4370
+ margin-top: 12px;
4341
4371
  }
4342
4372
  .component-spacing-sizes-control .components-spacing-sizes-control__hint-single,
4343
4373
  .component-spacing-sizes-control .components-spacing-sizes-control__hint-all {
4344
4374
  color: #757575;
4345
- font-size: 12px;
4375
+ margin-bottom: 0;
4346
4376
  }
4347
4377
  .component-spacing-sizes-control .components-spacing-sizes-control__hint-all {
4348
4378
  grid-column: 2/2;
@@ -4357,6 +4387,11 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
4357
4387
  justify-self: end;
4358
4388
  padding: 0;
4359
4389
  }
4390
+ .component-spacing-sizes-control .components-spacing-sizes-control__custom-toggle-all.is-small.has-icon {
4391
+ padding: 0;
4392
+ min-width: 24px;
4393
+ height: 16px;
4394
+ }
4360
4395
  .component-spacing-sizes-control .component-spacing-sizes-control__linked-button ~ .components-spacing-sizes-control__custom-toggle-all {
4361
4396
  margin-left: 4px;
4362
4397
  }
@@ -4364,10 +4399,11 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
4364
4399
  grid-column: 3/3;
4365
4400
  justify-self: end;
4366
4401
  }
4367
- .component-spacing-sizes-control .components-spacing-sizes-control__custom-toggle-all.is-small.has-icon,
4368
4402
  .component-spacing-sizes-control .components-spacing-sizes-control__custom-toggle-single.is-small.has-icon {
4369
4403
  padding: 0;
4370
4404
  min-width: 24px;
4405
+ height: 16px;
4406
+ margin-top: 12px;
4371
4407
  }
4372
4408
  .component-spacing-sizes-control .component-spacing-sizes-control__linked-button {
4373
4409
  grid-column: 3/3;
@@ -4377,7 +4413,6 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
4377
4413
  .component-spacing-sizes-control .components-spacing-sizes-control__custom-value-range {
4378
4414
  grid-column: span 2;
4379
4415
  margin-right: 8px;
4380
- padding-left: 8px;
4381
4416
  height: 30px;
4382
4417
  }
4383
4418
  .component-spacing-sizes-control .components-spacing-sizes-control__custom-value-input {
@@ -4385,11 +4420,7 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
4385
4420
  }
4386
4421
  .component-spacing-sizes-control .components-spacing-sizes-control__range-control {
4387
4422
  grid-column: span 3;
4388
- padding-left: 8px;
4389
- height: 30px;
4390
- }
4391
- .component-spacing-sizes-control .components-range-control__wrapper {
4392
- margin-bottom: 0;
4423
+ height: 40px;
4393
4424
  }
4394
4425
  .component-spacing-sizes-control .components-range-control__mark {
4395
4426
  height: 4px;
@@ -4406,12 +4437,6 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
4406
4437
  .component-spacing-sizes-control [class*=ThumbWrapper-thumbColor] {
4407
4438
  z-index: 3;
4408
4439
  }
4409
- .component-spacing-sizes-control .components-spacing-sizes-control__side-label {
4410
- margin-left: 4px;
4411
- grid-column: 1/1;
4412
- justify-self: left;
4413
- font-size: 12px;
4414
- }
4415
4440
  .component-spacing-sizes-control .components-spacing-sizes-control__custom-select-control {
4416
4441
  grid-column: span 3;
4417
4442
  }
@@ -1216,6 +1216,16 @@
1216
1216
  display: none;
1217
1217
  }
1218
1218
 
1219
+ .block-editor-block-preview__container::after {
1220
+ content: "";
1221
+ position: absolute;
1222
+ top: 0;
1223
+ left: 0;
1224
+ right: 0;
1225
+ bottom: 0;
1226
+ z-index: 1;
1227
+ }
1228
+
1219
1229
  .block-editor-block-settings-menu__popover .components-dropdown-menu__menu {
1220
1230
  padding: 0;
1221
1231
  }
@@ -1754,10 +1764,10 @@
1754
1764
  color: #000;
1755
1765
  }
1756
1766
 
1757
- .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child {
1767
+ .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child, .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-editor-block-list__layout > .block-list-appender:only-child, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-editor-block-list__layout > .block-list-appender:only-child {
1758
1768
  pointer-events: none;
1759
1769
  }
1760
- .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child::after, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child::after {
1770
+ .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child::after, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child::after, .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-editor-block-list__layout > .block-list-appender:only-child::after, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-editor-block-list__layout > .block-list-appender:only-child::after {
1761
1771
  content: "";
1762
1772
  position: absolute;
1763
1773
  top: 0;
@@ -1765,10 +1775,20 @@
1765
1775
  bottom: 0;
1766
1776
  left: 0;
1767
1777
  pointer-events: none;
1768
- border: 1px dashed currentColor;
1769
1778
  border-radius: 2px;
1770
1779
  }
1771
- .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child .block-editor-inserter, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child .block-editor-inserter {
1780
+ .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child::after::before, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child::after::before, .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-editor-block-list__layout > .block-list-appender:only-child::after::before, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-editor-block-list__layout > .block-list-appender:only-child::after::before {
1781
+ content: "";
1782
+ position: absolute;
1783
+ top: 0;
1784
+ right: 0;
1785
+ bottom: 0;
1786
+ left: 0;
1787
+ pointer-events: none;
1788
+ background: currentColor;
1789
+ opacity: 0.1;
1790
+ }
1791
+ .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child .block-editor-inserter, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-list-appender:only-child .block-editor-inserter, .is-layout-constrained.block-editor-block-list__block:not(.is-selected) > .block-editor-block-list__layout > .block-list-appender:only-child .block-editor-inserter, .is-layout-flow.block-editor-block-list__block:not(.is-selected) > .block-editor-block-list__layout > .block-list-appender:only-child .block-editor-inserter {
1772
1792
  visibility: hidden;
1773
1793
  }
1774
1794
 
@@ -4315,7 +4335,8 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
4315
4335
  .tools-panel-item-spacing {
4316
4336
  display: grid;
4317
4337
  grid-template-columns: auto 1fr auto;
4318
- grid-row-gap: 4px;
4338
+ align-items: center;
4339
+ grid-template-rows: 25px auto;
4319
4340
  }
4320
4341
 
4321
4342
  .component-spacing-sizes-control {
@@ -4330,19 +4351,28 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
4330
4351
  grid-row: 1/1;
4331
4352
  align-self: center;
4332
4353
  }
4354
+ .component-spacing-sizes-control .components-base-control__label {
4355
+ margin-bottom: 0;
4356
+ height: 16px;
4357
+ }
4333
4358
  .component-spacing-sizes-control .components-spacing-sizes-control__side-labels {
4334
4359
  grid-column: 1/1;
4335
- min-height: 30px;
4336
4360
  justify-content: left;
4361
+ height: 16px;
4362
+ margin-top: 12px;
4337
4363
  }
4338
- .component-spacing-sizes-control .components-spacing-sizes-control__hint-single {
4339
- margin-top: 0;
4340
- margin-left: 0;
4364
+ .component-spacing-sizes-control .components-spacing-sizes-control__side-label {
4365
+ grid-column: 1/1;
4366
+ justify-self: left;
4367
+ margin-bottom: 0;
4368
+ }
4369
+ .component-spacing-sizes-control.is-unlinked .components-range-control.components-spacing-sizes-control__range-control {
4370
+ margin-top: 12px;
4341
4371
  }
4342
4372
  .component-spacing-sizes-control .components-spacing-sizes-control__hint-single,
4343
4373
  .component-spacing-sizes-control .components-spacing-sizes-control__hint-all {
4344
4374
  color: #757575;
4345
- font-size: 12px;
4375
+ margin-bottom: 0;
4346
4376
  }
4347
4377
  .component-spacing-sizes-control .components-spacing-sizes-control__hint-all {
4348
4378
  grid-column: 2/2;
@@ -4357,6 +4387,11 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
4357
4387
  justify-self: end;
4358
4388
  padding: 0;
4359
4389
  }
4390
+ .component-spacing-sizes-control .components-spacing-sizes-control__custom-toggle-all.is-small.has-icon {
4391
+ padding: 0;
4392
+ min-width: 24px;
4393
+ height: 16px;
4394
+ }
4360
4395
  .component-spacing-sizes-control .component-spacing-sizes-control__linked-button ~ .components-spacing-sizes-control__custom-toggle-all {
4361
4396
  margin-right: 4px;
4362
4397
  }
@@ -4364,10 +4399,11 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
4364
4399
  grid-column: 3/3;
4365
4400
  justify-self: end;
4366
4401
  }
4367
- .component-spacing-sizes-control .components-spacing-sizes-control__custom-toggle-all.is-small.has-icon,
4368
4402
  .component-spacing-sizes-control .components-spacing-sizes-control__custom-toggle-single.is-small.has-icon {
4369
4403
  padding: 0;
4370
4404
  min-width: 24px;
4405
+ height: 16px;
4406
+ margin-top: 12px;
4371
4407
  }
4372
4408
  .component-spacing-sizes-control .component-spacing-sizes-control__linked-button {
4373
4409
  grid-column: 3/3;
@@ -4377,7 +4413,6 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
4377
4413
  .component-spacing-sizes-control .components-spacing-sizes-control__custom-value-range {
4378
4414
  grid-column: span 2;
4379
4415
  margin-left: 8px;
4380
- padding-right: 8px;
4381
4416
  height: 30px;
4382
4417
  }
4383
4418
  .component-spacing-sizes-control .components-spacing-sizes-control__custom-value-input {
@@ -4385,11 +4420,7 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
4385
4420
  }
4386
4421
  .component-spacing-sizes-control .components-spacing-sizes-control__range-control {
4387
4422
  grid-column: span 3;
4388
- padding-right: 8px;
4389
- height: 30px;
4390
- }
4391
- .component-spacing-sizes-control .components-range-control__wrapper {
4392
- margin-bottom: 0;
4423
+ height: 40px;
4393
4424
  }
4394
4425
  .component-spacing-sizes-control .components-range-control__mark {
4395
4426
  height: 4px;
@@ -4406,12 +4437,6 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
4406
4437
  .component-spacing-sizes-control [class*=ThumbWrapper-thumbColor] {
4407
4438
  z-index: 3;
4408
4439
  }
4409
- .component-spacing-sizes-control .components-spacing-sizes-control__side-label {
4410
- margin-right: 4px;
4411
- grid-column: 1/1;
4412
- justify-self: left;
4413
- font-size: 12px;
4414
- }
4415
4440
  .component-spacing-sizes-control .components-spacing-sizes-control__custom-select-control {
4416
4441
  grid-column: span 3;
4417
4442
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/block-editor",
3
- "version": "10.1.0",
3
+ "version": "10.2.0",
4
4
  "description": "Generic block editor.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -33,33 +33,32 @@
33
33
  "dependencies": {
34
34
  "@babel/runtime": "^7.16.0",
35
35
  "@react-spring/web": "^9.4.5",
36
- "@wordpress/a11y": "^3.18.0",
37
- "@wordpress/api-fetch": "^6.15.0",
38
- "@wordpress/blob": "^3.18.0",
39
- "@wordpress/blocks": "^11.17.0",
40
- "@wordpress/components": "^21.1.0",
41
- "@wordpress/compose": "^5.16.0",
42
- "@wordpress/data": "^7.2.0",
43
- "@wordpress/date": "^4.18.0",
44
- "@wordpress/deprecated": "^3.18.0",
45
- "@wordpress/dom": "^3.18.0",
46
- "@wordpress/element": "^4.16.0",
47
- "@wordpress/hooks": "^3.18.0",
48
- "@wordpress/html-entities": "^3.18.0",
49
- "@wordpress/i18n": "^4.18.0",
50
- "@wordpress/icons": "^9.9.0",
51
- "@wordpress/is-shallow-equal": "^4.18.0",
52
- "@wordpress/keyboard-shortcuts": "^3.16.0",
53
- "@wordpress/keycodes": "^3.18.0",
54
- "@wordpress/notices": "^3.18.0",
55
- "@wordpress/rich-text": "^5.16.0",
56
- "@wordpress/shortcode": "^3.18.0",
57
- "@wordpress/style-engine": "^1.1.0",
58
- "@wordpress/token-list": "^2.18.0",
59
- "@wordpress/url": "^3.19.0",
60
- "@wordpress/warning": "^2.18.0",
61
- "@wordpress/wordcount": "^3.18.0",
62
- "change-case": "^4.1.2",
36
+ "@wordpress/a11y": "^3.19.0",
37
+ "@wordpress/api-fetch": "^6.16.0",
38
+ "@wordpress/blob": "^3.19.0",
39
+ "@wordpress/blocks": "^11.18.0",
40
+ "@wordpress/components": "^21.2.0",
41
+ "@wordpress/compose": "^5.17.0",
42
+ "@wordpress/data": "^7.3.0",
43
+ "@wordpress/date": "^4.19.0",
44
+ "@wordpress/deprecated": "^3.19.0",
45
+ "@wordpress/dom": "^3.19.0",
46
+ "@wordpress/element": "^4.17.0",
47
+ "@wordpress/hooks": "^3.19.0",
48
+ "@wordpress/html-entities": "^3.19.0",
49
+ "@wordpress/i18n": "^4.19.0",
50
+ "@wordpress/icons": "^9.10.0",
51
+ "@wordpress/is-shallow-equal": "^4.19.0",
52
+ "@wordpress/keyboard-shortcuts": "^3.17.0",
53
+ "@wordpress/keycodes": "^3.19.0",
54
+ "@wordpress/notices": "^3.19.0",
55
+ "@wordpress/rich-text": "^5.17.0",
56
+ "@wordpress/shortcode": "^3.19.0",
57
+ "@wordpress/style-engine": "^1.2.0",
58
+ "@wordpress/token-list": "^2.19.0",
59
+ "@wordpress/url": "^3.20.0",
60
+ "@wordpress/warning": "^2.19.0",
61
+ "@wordpress/wordcount": "^3.19.0",
63
62
  "classnames": "^2.3.1",
64
63
  "colord": "^2.7.0",
65
64
  "diff": "^4.0.2",
@@ -67,7 +66,7 @@
67
66
  "inherits": "^2.0.3",
68
67
  "lodash": "^4.17.21",
69
68
  "react-autosize-textarea": "^7.1.0",
70
- "react-easy-crop": "^3.0.0",
69
+ "react-easy-crop": "^4.5.1",
71
70
  "rememo": "^4.0.0",
72
71
  "remove-accents": "^0.4.2",
73
72
  "traverse": "^0.6.6"
@@ -79,5 +78,5 @@
79
78
  "publishConfig": {
80
79
  "access": "public"
81
80
  },
82
- "gitHead": "23e136283fa1d3b8d9d8b33869f871ad5eb77726"
81
+ "gitHead": "8d42d2febb7d0ba8372a33e560a62f5a5f6a9112"
83
82
  }
@@ -5,7 +5,7 @@ import { useContext } from '@wordpress/element';
5
5
  import {
6
6
  __experimentalToolbarContext as ToolbarContext,
7
7
  ToolbarGroup,
8
- __experimentalUseSlot as useSlot,
8
+ __experimentalUseSlotFills as useSlotFills,
9
9
  } from '@wordpress/components';
10
10
 
11
11
  /**
@@ -16,8 +16,8 @@ import groups from './groups';
16
16
  export default function BlockControlsSlot( { group = 'default', ...props } ) {
17
17
  const accessibleToolbarState = useContext( ToolbarContext );
18
18
  const Slot = groups[ group ].Slot;
19
- const slot = useSlot( Slot.__unstableName );
20
- const hasFills = Boolean( slot.fills && slot.fills.length );
19
+ const fills = useSlotFills( Slot.__unstableName );
20
+ const hasFills = Boolean( fills && fills.length );
21
21
 
22
22
  if ( ! hasFills ) {
23
23
  return null;
@@ -52,7 +52,7 @@ const BlockDraggable = ( {
52
52
  }, [] );
53
53
 
54
54
  if ( ! isDraggable ) {
55
- return children( { isDraggable: false } );
55
+ return children( { draggable: false } );
56
56
  }
57
57
 
58
58
  const transferData = {
@@ -29,15 +29,6 @@ import {
29
29
  getDraggableChip,
30
30
  } from './helpers';
31
31
 
32
- // Mock throttle to allow updating the dragging position on every "onDragOver" event.
33
- jest.mock( 'lodash', () => ( {
34
- ...jest.requireActual( 'lodash' ),
35
- throttle: ( fn ) => {
36
- fn.cancel = jest.fn();
37
- return fn;
38
- },
39
- } ) );
40
-
41
32
  beforeAll( () => {
42
33
  // Register all core blocks
43
34
  registerCoreBlocks();
@@ -10,7 +10,7 @@ import {
10
10
  } from '@wordpress/blocks';
11
11
  import {
12
12
  PanelBody,
13
- __experimentalUseSlot as useSlot,
13
+ __experimentalUseSlotFills as useSlotFills,
14
14
  FlexItem,
15
15
  __experimentalHStack as HStack,
16
16
  __experimentalVStack as VStack,
@@ -143,7 +143,6 @@ const BlockInspector = ( { showNoBlockSelectedMessage = true } ) => {
143
143
  getSelectedBlockCount,
144
144
  getBlockName,
145
145
  __unstableGetContentLockingParent,
146
- getTemplateLock,
147
146
  } = select( blockEditorStore );
148
147
 
149
148
  const _selectedBlockClientId = getSelectedBlockClientId();
@@ -157,12 +156,9 @@ const BlockInspector = ( { showNoBlockSelectedMessage = true } ) => {
157
156
  selectedBlockClientId: _selectedBlockClientId,
158
157
  selectedBlockName: _selectedBlockName,
159
158
  blockType: _blockType,
160
- topLevelLockedBlock:
161
- getTemplateLock( _selectedBlockClientId ) === 'contentOnly'
162
- ? _selectedBlockClientId
163
- : __unstableGetContentLockingParent(
164
- _selectedBlockClientId
165
- ),
159
+ topLevelLockedBlock: __unstableGetContentLockingParent(
160
+ _selectedBlockClientId
161
+ ),
166
162
  };
167
163
  }, [] );
168
164
 
@@ -284,8 +280,8 @@ const BlockInspectorSingleBlock = ( { clientId, blockName } ) => {
284
280
  };
285
281
 
286
282
  const AdvancedControls = () => {
287
- const slot = useSlot( InspectorAdvancedControls.slotName );
288
- const hasFills = Boolean( slot.fills && slot.fills.length );
283
+ const fills = useSlotFills( InspectorAdvancedControls.slotName );
284
+ const hasFills = Boolean( fills && fills.length );
289
285
 
290
286
  if ( ! hasFills ) {
291
287
  return null;
@@ -83,19 +83,19 @@ export function useInBetweenInserter() {
83
83
  const orientation =
84
84
  getBlockListSettings( rootClientId )?.orientation ||
85
85
  'vertical';
86
- const rect = event.target.getBoundingClientRect();
87
- const offsetTop = event.clientY - rect.top;
88
- const offsetLeft = event.clientX - rect.left;
86
+ const offsetTop = event.clientY;
87
+ const offsetLeft = event.clientX;
89
88
 
90
89
  const children = Array.from( event.target.children );
91
90
  let element = children.find( ( blockEl ) => {
91
+ const blockElRect = blockEl.getBoundingClientRect();
92
92
  return (
93
93
  ( blockEl.classList.contains( 'wp-block' ) &&
94
94
  orientation === 'vertical' &&
95
- blockEl.offsetTop > offsetTop ) ||
95
+ blockElRect.top > offsetTop ) ||
96
96
  ( blockEl.classList.contains( 'wp-block' ) &&
97
97
  orientation === 'horizontal' &&
98
- blockEl.offsetLeft > offsetLeft )
98
+ blockElRect.left > offsetLeft )
99
99
  );
100
100
  } );
101
101
 
@@ -83,10 +83,10 @@ export default function BlockParentSelector() {
83
83
  label={ sprintf(
84
84
  /* translators: %s: Name of the block's parent. */
85
85
  __( 'Select %s' ),
86
- blockInformation.title
86
+ blockInformation?.title
87
87
  ) }
88
88
  showTooltip
89
- icon={ <BlockIcon icon={ blockInformation.icon } /> }
89
+ icon={ <BlockIcon icon={ blockInformation?.icon } /> }
90
90
  />
91
91
  </div>
92
92
  );
@@ -226,7 +226,7 @@ function BlockPopoverInbetween( {
226
226
  forcePopoverRecompute
227
227
  );
228
228
  return () => {
229
- previousElement.ownerDocument.defaultView.removeEventListener(
229
+ previousElement.ownerDocument.defaultView?.removeEventListener(
230
230
  'resize',
231
231
  forcePopoverRecompute
232
232
  );
@@ -42,24 +42,15 @@ function BlockPopover(
42
42
  ref,
43
43
  usePopoverScroll( __unstableContentRef ),
44
44
  ] );
45
- const style = useMemo( () => {
46
- if ( ! selectedElement || lastSelectedElement !== selectedElement ) {
47
- return {};
48
- }
49
-
50
- return {
51
- position: 'absolute',
52
- width: selectedElement.offsetWidth,
53
- height: selectedElement.offsetHeight,
54
- };
55
- }, [ selectedElement, lastSelectedElement, __unstableRefreshSize ] );
56
45
 
57
- const [ popoverAnchorRecomputeCounter, forceRecomputePopoverAnchor ] =
58
- useReducer(
59
- // Module is there to make sure that the counter doesn't overflow.
60
- ( s ) => ( s + 1 ) % MAX_POPOVER_RECOMPUTE_COUNTER,
61
- 0
62
- );
46
+ const [
47
+ popoverDimensionsRecomputeCounter,
48
+ forceRecomputePopoverDimensions,
49
+ ] = useReducer(
50
+ // Module is there to make sure that the counter doesn't overflow.
51
+ ( s ) => ( s + 1 ) % MAX_POPOVER_RECOMPUTE_COUNTER,
52
+ 0
53
+ );
63
54
 
64
55
  // When blocks are moved up/down, they are animated to their new position by
65
56
  // updating the `transform` property manually (i.e. without using CSS
@@ -74,7 +65,7 @@ function BlockPopover(
74
65
  }
75
66
 
76
67
  const observer = new window.MutationObserver(
77
- forceRecomputePopoverAnchor
68
+ forceRecomputePopoverDimensions
78
69
  );
79
70
  observer.observe( selectedElement, { attributes: true } );
80
71
 
@@ -83,12 +74,36 @@ function BlockPopover(
83
74
  };
84
75
  }, [ selectedElement ] );
85
76
 
77
+ const style = useMemo( () => {
78
+ if (
79
+ // popoverDimensionsRecomputeCounter is by definition always equal or greater
80
+ // than 0. This check is only there to satisfy the correctness of the
81
+ // exhaustive-deps rule for the `useMemo` hook.
82
+ popoverDimensionsRecomputeCounter < 0 ||
83
+ ! selectedElement ||
84
+ lastSelectedElement !== selectedElement
85
+ ) {
86
+ return {};
87
+ }
88
+
89
+ return {
90
+ position: 'absolute',
91
+ width: selectedElement.offsetWidth,
92
+ height: selectedElement.offsetHeight,
93
+ };
94
+ }, [
95
+ selectedElement,
96
+ lastSelectedElement,
97
+ __unstableRefreshSize,
98
+ popoverDimensionsRecomputeCounter,
99
+ ] );
100
+
86
101
  const popoverAnchor = useMemo( () => {
87
102
  if (
88
- // popoverAnchorRecomputeCounter is by definition always equal or greater
103
+ // popoverDimensionsRecomputeCounter is by definition always equal or greater
89
104
  // than 0. This check is only there to satisfy the correctness of the
90
105
  // exhaustive-deps rule for the `useMemo` hook.
91
- popoverAnchorRecomputeCounter < 0 ||
106
+ popoverDimensionsRecomputeCounter < 0 ||
92
107
  ! selectedElement ||
93
108
  ( bottomClientId && ! lastSelectedElement )
94
109
  ) {
@@ -132,7 +147,7 @@ function BlockPopover(
132
147
  bottomClientId,
133
148
  lastSelectedElement,
134
149
  selectedElement,
135
- popoverAnchorRecomputeCounter,
150
+ popoverDimensionsRecomputeCounter,
136
151
  ] );
137
152
 
138
153
  if ( ! selectedElement || ( bottomClientId && ! lastSelectedElement ) ) {
@@ -143,12 +158,12 @@ function BlockPopover(
143
158
  <Popover
144
159
  ref={ mergedRefs }
145
160
  animate={ false }
146
- position="top right left"
147
161
  focusOnMount={ false }
148
162
  anchor={ popoverAnchor }
149
163
  // Render in the old slot if needed for backward compatibility,
150
164
  // otherwise render in place (not in the default popover slot).
151
165
  __unstableSlotName={ __unstablePopoverSlot || null }
166
+ placement="top-start"
152
167
  resize={ false }
153
168
  flip={ false }
154
169
  shift
@@ -64,3 +64,16 @@
64
64
  display: none;
65
65
  }
66
66
  }
67
+
68
+ // The goal of this pseudo-element is to cover the iframe
69
+ // otherwise it won't be able to drag elements containing
70
+ // the preview iframe in Safari.
71
+ .block-editor-block-preview__container::after {
72
+ content: "";
73
+ position: absolute;
74
+ top: 0;
75
+ left: 0;
76
+ right: 0;
77
+ bottom: 0;
78
+ z-index: 1;
79
+ }