@wordpress/block-editor 10.3.0 → 10.4.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 (264) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/build/components/alignment-control/ui.js +1 -1
  3. package/build/components/alignment-control/ui.js.map +1 -1
  4. package/build/components/block-alignment-control/constants.js +1 -1
  5. package/build/components/block-alignment-control/constants.js.map +1 -1
  6. package/build/components/block-alignment-matrix-control/index.js +1 -1
  7. package/build/components/block-alignment-matrix-control/index.js.map +1 -1
  8. package/build/components/block-compare/index.js +1 -3
  9. package/build/components/block-compare/index.js.map +1 -1
  10. package/build/components/block-edit/index.js +4 -2
  11. package/build/components/block-edit/index.js.map +1 -1
  12. package/build/components/block-list/block.js +3 -1
  13. package/build/components/block-list/block.js.map +1 -1
  14. package/build/components/block-popover/inbetween.js +2 -1
  15. package/build/components/block-popover/inbetween.js.map +1 -1
  16. package/build/components/block-popover/index.js +2 -1
  17. package/build/components/block-popover/index.js.map +1 -1
  18. package/build/components/block-preview/index.js +2 -4
  19. package/build/components/block-preview/index.js.map +1 -1
  20. package/build/components/block-settings-menu/block-settings-dropdown.js +2 -8
  21. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  22. package/build/components/block-switcher/index.js +2 -8
  23. package/build/components/block-switcher/index.js.map +1 -1
  24. package/build/components/block-switcher/preview-block-popover.js +1 -1
  25. package/build/components/block-switcher/preview-block-popover.js.map +1 -1
  26. package/build/components/block-tools/insertion-point.js +12 -2
  27. package/build/components/block-tools/insertion-point.js.map +1 -1
  28. package/build/components/block-vertical-alignment-control/ui.js +1 -1
  29. package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
  30. package/build/components/border-radius-control/all-input-control.js +2 -1
  31. package/build/components/border-radius-control/all-input-control.js.map +1 -1
  32. package/build/components/border-radius-control/index.js +2 -1
  33. package/build/components/border-radius-control/index.js.map +1 -1
  34. package/build/components/border-radius-control/input-controls.js +2 -1
  35. package/build/components/border-radius-control/input-controls.js.map +1 -1
  36. package/build/components/duotone-control/index.js +1 -1
  37. package/build/components/duotone-control/index.js.map +1 -1
  38. package/build/components/font-sizes/with-font-sizes.js +1 -1
  39. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  40. package/build/components/iframe/index.js +1 -1
  41. package/build/components/iframe/index.js.map +1 -1
  42. package/build/components/image-editor/constants.js +1 -1
  43. package/build/components/image-editor/constants.js.map +1 -1
  44. package/build/components/inner-blocks/index.js +6 -2
  45. package/build/components/inner-blocks/index.js.map +1 -1
  46. package/build/components/inserter/hooks/use-insertion-point.js +2 -7
  47. package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
  48. package/build/components/inserter/search-items.js +23 -2
  49. package/build/components/inserter/search-items.js.map +1 -1
  50. package/build/components/line-height-control/index.js +2 -1
  51. package/build/components/line-height-control/index.js.map +1 -1
  52. package/build/components/list-view/drop-indicator.js +2 -1
  53. package/build/components/list-view/drop-indicator.js.map +1 -1
  54. package/build/components/media-replace-flow/index.js +1 -1
  55. package/build/components/media-replace-flow/index.js.map +1 -1
  56. package/build/components/rich-text/format-toolbar/index.js +1 -1
  57. package/build/components/rich-text/format-toolbar/index.js.map +1 -1
  58. package/build/components/rich-text/format-toolbar-container.js +1 -1
  59. package/build/components/rich-text/format-toolbar-container.js.map +1 -1
  60. package/build/components/rich-text/use-paste-handler.js +1 -1
  61. package/build/components/rich-text/use-paste-handler.js.map +1 -1
  62. package/build/components/spacing-sizes-control/all-input-control.js +6 -2
  63. package/build/components/spacing-sizes-control/all-input-control.js.map +1 -1
  64. package/build/components/spacing-sizes-control/axial-input-controls.js +6 -2
  65. package/build/components/spacing-sizes-control/axial-input-controls.js.map +1 -1
  66. package/build/components/spacing-sizes-control/index.js +6 -2
  67. package/build/components/spacing-sizes-control/index.js.map +1 -1
  68. package/build/components/spacing-sizes-control/input-controls.js +6 -2
  69. package/build/components/spacing-sizes-control/input-controls.js.map +1 -1
  70. package/build/components/spacing-sizes-control/spacing-input-control.js +12 -5
  71. package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  72. package/build/components/url-input/index.js +1 -1
  73. package/build/components/url-input/index.js.map +1 -1
  74. package/build/hooks/border.js +1 -0
  75. package/build/hooks/border.js.map +1 -1
  76. package/build/hooks/dimensions.js +32 -4
  77. package/build/hooks/dimensions.js.map +1 -1
  78. package/build/hooks/font-size.js +1 -0
  79. package/build/hooks/font-size.js.map +1 -1
  80. package/build/hooks/layout.js +4 -3
  81. package/build/hooks/layout.js.map +1 -1
  82. package/build/hooks/margin.js +22 -16
  83. package/build/hooks/margin.js.map +1 -1
  84. package/build/hooks/padding.js +18 -11
  85. package/build/hooks/padding.js.map +1 -1
  86. package/build/hooks/utils.js +7 -6
  87. package/build/hooks/utils.js.map +1 -1
  88. package/build/layouts/constrained.js +0 -1
  89. package/build/layouts/constrained.js.map +1 -1
  90. package/build/layouts/flex.js +1 -1
  91. package/build/layouts/flex.js.map +1 -1
  92. package/build/store/actions.js +4 -0
  93. package/build/store/actions.js.map +1 -1
  94. package/build/store/array.js +1 -7
  95. package/build/store/array.js.map +1 -1
  96. package/build/store/selectors.js +46 -29
  97. package/build/store/selectors.js.map +1 -1
  98. package/build-module/components/alignment-control/ui.js +1 -1
  99. package/build-module/components/alignment-control/ui.js.map +1 -1
  100. package/build-module/components/block-alignment-control/constants.js +1 -1
  101. package/build-module/components/block-alignment-control/constants.js.map +1 -1
  102. package/build-module/components/block-alignment-matrix-control/index.js +1 -1
  103. package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
  104. package/build-module/components/block-compare/index.js +2 -3
  105. package/build-module/components/block-compare/index.js.map +1 -1
  106. package/build-module/components/block-edit/index.js +4 -2
  107. package/build-module/components/block-edit/index.js.map +1 -1
  108. package/build-module/components/block-list/block.js +3 -1
  109. package/build-module/components/block-list/block.js.map +1 -1
  110. package/build-module/components/block-popover/inbetween.js +2 -1
  111. package/build-module/components/block-popover/inbetween.js.map +1 -1
  112. package/build-module/components/block-popover/index.js +2 -1
  113. package/build-module/components/block-popover/index.js.map +1 -1
  114. package/build-module/components/block-preview/index.js +2 -3
  115. package/build-module/components/block-preview/index.js.map +1 -1
  116. package/build-module/components/block-settings-menu/block-settings-dropdown.js +2 -7
  117. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  118. package/build-module/components/block-switcher/index.js +2 -7
  119. package/build-module/components/block-switcher/index.js.map +1 -1
  120. package/build-module/components/block-switcher/preview-block-popover.js +1 -1
  121. package/build-module/components/block-switcher/preview-block-popover.js.map +1 -1
  122. package/build-module/components/block-tools/insertion-point.js +12 -2
  123. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  124. package/build-module/components/block-vertical-alignment-control/ui.js +1 -1
  125. package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
  126. package/build-module/components/border-radius-control/all-input-control.js +2 -1
  127. package/build-module/components/border-radius-control/all-input-control.js.map +1 -1
  128. package/build-module/components/border-radius-control/index.js +2 -1
  129. package/build-module/components/border-radius-control/index.js.map +1 -1
  130. package/build-module/components/border-radius-control/input-controls.js +2 -1
  131. package/build-module/components/border-radius-control/input-controls.js.map +1 -1
  132. package/build-module/components/duotone-control/index.js +1 -1
  133. package/build-module/components/duotone-control/index.js.map +1 -1
  134. package/build-module/components/font-sizes/with-font-sizes.js +2 -2
  135. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  136. package/build-module/components/iframe/index.js +1 -1
  137. package/build-module/components/iframe/index.js.map +1 -1
  138. package/build-module/components/image-editor/constants.js +1 -1
  139. package/build-module/components/image-editor/constants.js.map +1 -1
  140. package/build-module/components/inner-blocks/index.js +6 -2
  141. package/build-module/components/inner-blocks/index.js.map +1 -1
  142. package/build-module/components/inserter/hooks/use-insertion-point.js +2 -6
  143. package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
  144. package/build-module/components/inserter/search-items.js +23 -3
  145. package/build-module/components/inserter/search-items.js.map +1 -1
  146. package/build-module/components/line-height-control/index.js +2 -1
  147. package/build-module/components/line-height-control/index.js.map +1 -1
  148. package/build-module/components/list-view/drop-indicator.js +2 -1
  149. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  150. package/build-module/components/media-replace-flow/index.js +1 -1
  151. package/build-module/components/media-replace-flow/index.js.map +1 -1
  152. package/build-module/components/rich-text/format-toolbar/index.js +1 -1
  153. package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
  154. package/build-module/components/rich-text/format-toolbar-container.js +1 -1
  155. package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
  156. package/build-module/components/rich-text/use-paste-handler.js +1 -1
  157. package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
  158. package/build-module/components/spacing-sizes-control/all-input-control.js +6 -2
  159. package/build-module/components/spacing-sizes-control/all-input-control.js.map +1 -1
  160. package/build-module/components/spacing-sizes-control/axial-input-controls.js +6 -2
  161. package/build-module/components/spacing-sizes-control/axial-input-controls.js.map +1 -1
  162. package/build-module/components/spacing-sizes-control/index.js +6 -2
  163. package/build-module/components/spacing-sizes-control/index.js.map +1 -1
  164. package/build-module/components/spacing-sizes-control/input-controls.js +6 -2
  165. package/build-module/components/spacing-sizes-control/input-controls.js.map +1 -1
  166. package/build-module/components/spacing-sizes-control/spacing-input-control.js +12 -5
  167. package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  168. package/build-module/components/url-input/index.js +1 -1
  169. package/build-module/components/url-input/index.js.map +1 -1
  170. package/build-module/hooks/border.js +1 -0
  171. package/build-module/hooks/border.js.map +1 -1
  172. package/build-module/hooks/dimensions.js +32 -4
  173. package/build-module/hooks/dimensions.js.map +1 -1
  174. package/build-module/hooks/font-size.js +1 -0
  175. package/build-module/hooks/font-size.js.map +1 -1
  176. package/build-module/hooks/layout.js +5 -4
  177. package/build-module/hooks/layout.js.map +1 -1
  178. package/build-module/hooks/margin.js +23 -17
  179. package/build-module/hooks/margin.js.map +1 -1
  180. package/build-module/hooks/padding.js +19 -12
  181. package/build-module/hooks/padding.js.map +1 -1
  182. package/build-module/hooks/utils.js +7 -7
  183. package/build-module/hooks/utils.js.map +1 -1
  184. package/build-module/layouts/constrained.js +0 -1
  185. package/build-module/layouts/constrained.js.map +1 -1
  186. package/build-module/layouts/flex.js +1 -1
  187. package/build-module/layouts/flex.js.map +1 -1
  188. package/build-module/store/actions.js +4 -0
  189. package/build-module/store/actions.js.map +1 -1
  190. package/build-module/store/array.js +1 -6
  191. package/build-module/store/array.js.map +1 -1
  192. package/build-module/store/selectors.js +47 -30
  193. package/build-module/store/selectors.js.map +1 -1
  194. package/build-style/style-rtl.css +49 -62
  195. package/build-style/style.css +45 -58
  196. package/package.json +29 -28
  197. package/src/components/alignment-control/ui.js +1 -1
  198. package/src/components/block-alignment-control/constants.js +1 -1
  199. package/src/components/block-alignment-matrix-control/index.js +1 -1
  200. package/src/components/block-breadcrumb/test/__snapshots__/index.js.snap +13 -11
  201. package/src/components/block-breadcrumb/test/index.js +1 -1
  202. package/src/components/block-compare/index.js +3 -2
  203. package/src/components/block-edit/index.js +2 -1
  204. package/src/components/block-list/block.js +2 -0
  205. package/src/components/block-list/style.scss +1 -1
  206. package/src/components/block-mover/stories/index.js +1 -1
  207. package/src/components/block-mover/style.scss +35 -0
  208. package/src/components/block-popover/inbetween.js +1 -0
  209. package/src/components/block-popover/index.js +1 -0
  210. package/src/components/block-popover/style.scss +0 -4
  211. package/src/components/block-preview/index.js +8 -3
  212. package/src/components/block-settings-menu/block-settings-dropdown.js +4 -7
  213. package/src/components/block-switcher/index.js +2 -7
  214. package/src/components/block-switcher/preview-block-popover.js +1 -1
  215. package/src/components/block-tools/insertion-point.js +10 -1
  216. package/src/components/block-variation-picker/README.md +1 -1
  217. package/src/components/block-vertical-alignment-control/ui.js +1 -1
  218. package/src/components/border-radius-control/all-input-control.js +1 -0
  219. package/src/components/border-radius-control/index.js +1 -0
  220. package/src/components/border-radius-control/input-controls.js +1 -0
  221. package/src/components/border-radius-control/style.scss +15 -24
  222. package/src/components/color-palette/test/__snapshots__/control.js.snap +85 -83
  223. package/src/components/color-palette/test/control.js +1 -1
  224. package/src/components/duotone-control/index.js +1 -1
  225. package/src/components/font-sizes/with-font-sizes.js +2 -3
  226. package/src/components/iframe/index.js +1 -1
  227. package/src/components/image-editor/constants.js +1 -1
  228. package/src/components/inner-blocks/index.js +5 -1
  229. package/src/components/inner-blocks/test/index.js +4 -0
  230. package/src/components/inserter/hooks/use-insertion-point.js +3 -11
  231. package/src/components/inserter/search-items.js +23 -3
  232. package/src/components/inserter/test/search-items.js +6 -0
  233. package/src/components/inserter-list-item/style.scss +2 -0
  234. package/src/components/letter-spacing-control/README.md +55 -0
  235. package/src/components/line-height-control/index.js +1 -0
  236. package/src/components/link-control/README.md +3 -3
  237. package/src/components/list-view/drop-indicator.js +1 -0
  238. package/src/components/list-view/style.scss +1 -36
  239. package/src/components/media-replace-flow/index.js +1 -1
  240. package/src/components/media-replace-flow/test/index.js +69 -51
  241. package/src/components/rich-text/format-toolbar/index.js +1 -1
  242. package/src/components/rich-text/format-toolbar-container.js +1 -1
  243. package/src/components/rich-text/use-paste-handler.js +1 -1
  244. package/src/components/spacing-sizes-control/all-input-control.js +4 -0
  245. package/src/components/spacing-sizes-control/axial-input-controls.js +4 -0
  246. package/src/components/spacing-sizes-control/index.js +4 -0
  247. package/src/components/spacing-sizes-control/input-controls.js +4 -0
  248. package/src/components/spacing-sizes-control/spacing-input-control.js +10 -1
  249. package/src/components/spacing-sizes-control/style.scss +1 -0
  250. package/src/components/url-input/index.js +1 -1
  251. package/src/hooks/border.js +1 -0
  252. package/src/hooks/dimensions.js +32 -5
  253. package/src/hooks/font-size.js +1 -0
  254. package/src/hooks/layout.js +7 -9
  255. package/src/hooks/margin.js +19 -14
  256. package/src/hooks/padding.js +19 -16
  257. package/src/hooks/test/align.js +96 -72
  258. package/src/hooks/utils.js +5 -6
  259. package/src/layouts/constrained.js +0 -1
  260. package/src/layouts/flex.js +1 -1
  261. package/src/store/actions.js +4 -0
  262. package/src/store/array.js +1 -6
  263. package/src/store/selectors.js +28 -21
  264. package/src/store/test/selectors.js +1 -1
@@ -1052,6 +1052,33 @@
1052
1052
  }
1053
1053
  }
1054
1054
 
1055
+ .components-button.block-editor-block-mover-button::before {
1056
+ content: "";
1057
+ position: absolute;
1058
+ display: block;
1059
+ border-radius: 2px;
1060
+ height: 32px;
1061
+ right: 8px;
1062
+ left: 8px;
1063
+ z-index: -1;
1064
+ animation: components-button__appear-animation 0.1s ease;
1065
+ animation-fill-mode: forwards;
1066
+ }
1067
+ @media (prefers-reduced-motion: reduce) {
1068
+ .components-button.block-editor-block-mover-button::before {
1069
+ animation-duration: 1ms;
1070
+ animation-delay: 0s;
1071
+ }
1072
+ }
1073
+ .components-button.block-editor-block-mover-button:focus, .components-button.block-editor-block-mover-button:focus:enabled, .components-button.block-editor-block-mover-button:focus::before {
1074
+ box-shadow: none;
1075
+ outline: none;
1076
+ }
1077
+ .components-button.block-editor-block-mover-button:focus-visible::before {
1078
+ box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color), inset 0 0 0 4px #fff;
1079
+ outline: 2px solid transparent;
1080
+ }
1081
+
1055
1082
  .block-editor-block-navigation__container {
1056
1083
  min-width: 280px;
1057
1084
  }
@@ -1122,10 +1149,6 @@
1122
1149
  margin: 0 !important;
1123
1150
  min-width: auto;
1124
1151
  width: max-content;
1125
- background: none;
1126
- border: none;
1127
- outline: none;
1128
- box-shadow: none;
1129
1152
  overflow-y: visible;
1130
1153
  }
1131
1154
  .components-popover.block-editor-block-popover:not(.block-editor-block-popover__inbetween, .block-editor-block-popover__drop-zone) .components-popover__content * {
@@ -1641,7 +1664,7 @@
1641
1664
  width: 100%;
1642
1665
  position: relative;
1643
1666
  text-align: right;
1644
- justify-content: left;
1667
+ justify-content: right;
1645
1668
  padding: 6px 12px;
1646
1669
  }
1647
1670
  .block-editor-block-variation-transforms .components-dropdown-menu__toggle.components-dropdown-menu__toggle {
@@ -1674,43 +1697,36 @@
1674
1697
  justify-content: space-between;
1675
1698
  align-items: flex-start;
1676
1699
  }
1677
- .components-border-radius-control .components-border-radius-control__wrapper > .components-unit-control-wrapper {
1678
- width: 110px;
1700
+ .components-border-radius-control .components-border-radius-control__wrapper .components-border-radius-control__unit-control {
1701
+ width: calc((100% - 16px) / 2);
1679
1702
  margin-bottom: 0;
1680
- margin-left: 12px;
1703
+ margin-left: 16px;
1681
1704
  flex-shrink: 0;
1682
1705
  }
1683
- .components-border-radius-control .components-border-radius-control__wrapper .components-range-control {
1706
+ .components-border-radius-control .components-border-radius-control__wrapper .components-border-radius-control__range-control {
1684
1707
  flex: 1;
1685
- margin-bottom: 0;
1686
- }
1687
- .components-border-radius-control .components-border-radius-control__wrapper .components-range-control .components-base-control__field {
1688
- margin-bottom: 0;
1689
- height: 30px;
1708
+ margin-left: 12px;
1690
1709
  }
1691
- .components-border-radius-control .components-border-radius-control__wrapper .components-range-control .components-range-control__wrapper {
1692
- margin-left: 10px;
1710
+ .components-border-radius-control .components-border-radius-control__wrapper .components-border-radius-control__range-control > div {
1711
+ height: 40px;
1712
+ display: flex;
1713
+ align-items: center;
1693
1714
  }
1694
1715
  .components-border-radius-control .components-border-radius-control__wrapper > span {
1695
1716
  flex: 0 0 auto;
1696
1717
  }
1697
1718
  .components-border-radius-control .components-border-radius-control__input-controls-wrapper {
1698
- display: flex;
1699
- width: 70%;
1700
- flex-wrap: wrap;
1701
- }
1702
- .components-border-radius-control .components-border-radius-control__input-controls-wrapper .components-border-radius-control__tooltip-wrapper {
1703
- width: calc(50% - 8px);
1704
- margin-bottom: 8px;
1705
- margin-left: 8px;
1719
+ display: grid;
1720
+ gap: 16px;
1721
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1722
+ margin-left: 12px;
1706
1723
  }
1707
- .components-border-radius-control .component-border-radius-control__linked-button.has-icon {
1724
+ .components-border-radius-control .component-border-radius-control__linked-button {
1708
1725
  display: flex;
1709
1726
  justify-content: center;
1710
- margin-right: 2px;
1711
- margin-top: 3px;
1727
+ margin-top: 8px;
1712
1728
  }
1713
- .components-border-radius-control .component-border-radius-control__linked-button.has-icon svg {
1729
+ .components-border-radius-control .component-border-radius-control__linked-button svg {
1714
1730
  margin-left: 0;
1715
1731
  }
1716
1732
 
@@ -2096,6 +2112,7 @@
2096
2112
  border-radius: 2px;
2097
2113
  opacity: 0.04;
2098
2114
  background: var(--wp-admin-theme-color);
2115
+ pointer-events: none;
2099
2116
  }
2100
2117
  .components-button.block-editor-block-types-list__item:not(:disabled):focus {
2101
2118
  box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
@@ -2848,35 +2865,11 @@
2848
2865
  .block-editor-list-view-leaf .block-editor-block-mover-button.is-down-button svg {
2849
2866
  top: -4px;
2850
2867
  }
2851
- .block-editor-list-view-leaf .block-editor-block-mover-button:focus:enabled {
2852
- box-shadow: none;
2853
- outline: none;
2854
- }
2855
- .block-editor-list-view-leaf .block-editor-block-mover-button:focus {
2856
- box-shadow: none;
2857
- outline: none;
2858
- }
2859
- .block-editor-list-view-leaf .block-editor-block-mover-button:focus::before {
2860
- box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color), inset 0 0 0 4px #fff;
2861
- outline: 2px solid transparent;
2862
- }
2863
2868
  .block-editor-list-view-leaf .block-editor-block-mover-button::before {
2864
- content: "";
2865
- position: absolute;
2866
- display: block;
2867
- border-radius: 2px;
2868
2869
  height: 16px;
2869
2870
  min-width: 100%;
2870
2871
  right: 0;
2871
2872
  left: 0;
2872
- animation: components-button__appear-animation 0.1s ease;
2873
- animation-fill-mode: forwards;
2874
- }
2875
- @media (prefers-reduced-motion: reduce) {
2876
- .block-editor-list-view-leaf .block-editor-block-mover-button::before {
2877
- animation-duration: 1ms;
2878
- animation-delay: 0s;
2879
- }
2880
2873
  }
2881
2874
  .block-editor-list-view-leaf .block-editor-inserter__toggle {
2882
2875
  background: #1e1e1e;
@@ -3021,13 +3014,6 @@
3021
3014
  height: 1px;
3022
3015
  }
3023
3016
 
3024
- .block-editor-list-view-drop-indicator > .components-popover__content {
3025
- margin-right: 0;
3026
- border: none;
3027
- box-shadow: none;
3028
- outline: none;
3029
- }
3030
-
3031
3017
  .block-editor-list-view-placeholder {
3032
3018
  padding: 0;
3033
3019
  margin: 0;
@@ -4451,13 +4437,13 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
4451
4437
  }
4452
4438
  .component-spacing-sizes-control .components-spacing-sizes-control__side-labels {
4453
4439
  grid-column: 1/1;
4454
- justify-content: left;
4440
+ justify-content: right;
4455
4441
  height: 16px;
4456
4442
  margin-top: 16px;
4457
4443
  }
4458
4444
  .component-spacing-sizes-control .components-spacing-sizes-control__side-label {
4459
4445
  grid-column: 1/1;
4460
- justify-self: left;
4446
+ justify-self: right;
4461
4447
  margin-bottom: 0;
4462
4448
  }
4463
4449
  .component-spacing-sizes-control.is-unlinked .components-range-control.components-spacing-sizes-control__range-control,
@@ -4471,7 +4457,7 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
4471
4457
  }
4472
4458
  .component-spacing-sizes-control .components-spacing-sizes-control__hint-all {
4473
4459
  grid-column: 2/2;
4474
- justify-self: left;
4460
+ justify-self: right;
4475
4461
  grid-row: 1/1;
4476
4462
  align-self: center;
4477
4463
  margin-right: 4px;
@@ -4505,6 +4491,7 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
4505
4491
  .component-spacing-sizes-control .components-spacing-sizes-control__custom-value-input {
4506
4492
  width: 124px;
4507
4493
  margin-top: 8px;
4494
+ grid-column: 1;
4508
4495
  }
4509
4496
  .component-spacing-sizes-control .components-range-control {
4510
4497
  height: 40px;
@@ -1052,6 +1052,33 @@
1052
1052
  }
1053
1053
  }
1054
1054
 
1055
+ .components-button.block-editor-block-mover-button::before {
1056
+ content: "";
1057
+ position: absolute;
1058
+ display: block;
1059
+ border-radius: 2px;
1060
+ height: 32px;
1061
+ left: 8px;
1062
+ right: 8px;
1063
+ z-index: -1;
1064
+ animation: components-button__appear-animation 0.1s ease;
1065
+ animation-fill-mode: forwards;
1066
+ }
1067
+ @media (prefers-reduced-motion: reduce) {
1068
+ .components-button.block-editor-block-mover-button::before {
1069
+ animation-duration: 1ms;
1070
+ animation-delay: 0s;
1071
+ }
1072
+ }
1073
+ .components-button.block-editor-block-mover-button:focus, .components-button.block-editor-block-mover-button:focus:enabled, .components-button.block-editor-block-mover-button:focus::before {
1074
+ box-shadow: none;
1075
+ outline: none;
1076
+ }
1077
+ .components-button.block-editor-block-mover-button:focus-visible::before {
1078
+ box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color), inset 0 0 0 4px #fff;
1079
+ outline: 2px solid transparent;
1080
+ }
1081
+
1055
1082
  .block-editor-block-navigation__container {
1056
1083
  min-width: 280px;
1057
1084
  }
@@ -1122,10 +1149,6 @@
1122
1149
  margin: 0 !important;
1123
1150
  min-width: auto;
1124
1151
  width: max-content;
1125
- background: none;
1126
- border: none;
1127
- outline: none;
1128
- box-shadow: none;
1129
1152
  overflow-y: visible;
1130
1153
  }
1131
1154
  .components-popover.block-editor-block-popover:not(.block-editor-block-popover__inbetween, .block-editor-block-popover__drop-zone) .components-popover__content * {
@@ -1674,43 +1697,36 @@
1674
1697
  justify-content: space-between;
1675
1698
  align-items: flex-start;
1676
1699
  }
1677
- .components-border-radius-control .components-border-radius-control__wrapper > .components-unit-control-wrapper {
1678
- width: 110px;
1700
+ .components-border-radius-control .components-border-radius-control__wrapper .components-border-radius-control__unit-control {
1701
+ width: calc((100% - 16px) / 2);
1679
1702
  margin-bottom: 0;
1680
- margin-right: 12px;
1703
+ margin-right: 16px;
1681
1704
  flex-shrink: 0;
1682
1705
  }
1683
- .components-border-radius-control .components-border-radius-control__wrapper .components-range-control {
1706
+ .components-border-radius-control .components-border-radius-control__wrapper .components-border-radius-control__range-control {
1684
1707
  flex: 1;
1685
- margin-bottom: 0;
1686
- }
1687
- .components-border-radius-control .components-border-radius-control__wrapper .components-range-control .components-base-control__field {
1688
- margin-bottom: 0;
1689
- height: 30px;
1708
+ margin-right: 12px;
1690
1709
  }
1691
- .components-border-radius-control .components-border-radius-control__wrapper .components-range-control .components-range-control__wrapper {
1692
- margin-right: 10px;
1710
+ .components-border-radius-control .components-border-radius-control__wrapper .components-border-radius-control__range-control > div {
1711
+ height: 40px;
1712
+ display: flex;
1713
+ align-items: center;
1693
1714
  }
1694
1715
  .components-border-radius-control .components-border-radius-control__wrapper > span {
1695
1716
  flex: 0 0 auto;
1696
1717
  }
1697
1718
  .components-border-radius-control .components-border-radius-control__input-controls-wrapper {
1698
- display: flex;
1699
- width: 70%;
1700
- flex-wrap: wrap;
1701
- }
1702
- .components-border-radius-control .components-border-radius-control__input-controls-wrapper .components-border-radius-control__tooltip-wrapper {
1703
- width: calc(50% - 8px);
1704
- margin-bottom: 8px;
1705
- margin-right: 8px;
1719
+ display: grid;
1720
+ gap: 16px;
1721
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1722
+ margin-right: 12px;
1706
1723
  }
1707
- .components-border-radius-control .component-border-radius-control__linked-button.has-icon {
1724
+ .components-border-radius-control .component-border-radius-control__linked-button {
1708
1725
  display: flex;
1709
1726
  justify-content: center;
1710
- margin-left: 2px;
1711
- margin-top: 3px;
1727
+ margin-top: 8px;
1712
1728
  }
1713
- .components-border-radius-control .component-border-radius-control__linked-button.has-icon svg {
1729
+ .components-border-radius-control .component-border-radius-control__linked-button svg {
1714
1730
  margin-right: 0;
1715
1731
  }
1716
1732
 
@@ -2096,6 +2112,7 @@
2096
2112
  border-radius: 2px;
2097
2113
  opacity: 0.04;
2098
2114
  background: var(--wp-admin-theme-color);
2115
+ pointer-events: none;
2099
2116
  }
2100
2117
  .components-button.block-editor-block-types-list__item:not(:disabled):focus {
2101
2118
  box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
@@ -2848,35 +2865,11 @@
2848
2865
  .block-editor-list-view-leaf .block-editor-block-mover-button.is-down-button svg {
2849
2866
  top: -4px;
2850
2867
  }
2851
- .block-editor-list-view-leaf .block-editor-block-mover-button:focus:enabled {
2852
- box-shadow: none;
2853
- outline: none;
2854
- }
2855
- .block-editor-list-view-leaf .block-editor-block-mover-button:focus {
2856
- box-shadow: none;
2857
- outline: none;
2858
- }
2859
- .block-editor-list-view-leaf .block-editor-block-mover-button:focus::before {
2860
- box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color), inset 0 0 0 4px #fff;
2861
- outline: 2px solid transparent;
2862
- }
2863
2868
  .block-editor-list-view-leaf .block-editor-block-mover-button::before {
2864
- content: "";
2865
- position: absolute;
2866
- display: block;
2867
- border-radius: 2px;
2868
2869
  height: 16px;
2869
2870
  min-width: 100%;
2870
2871
  left: 0;
2871
2872
  right: 0;
2872
- animation: components-button__appear-animation 0.1s ease;
2873
- animation-fill-mode: forwards;
2874
- }
2875
- @media (prefers-reduced-motion: reduce) {
2876
- .block-editor-list-view-leaf .block-editor-block-mover-button::before {
2877
- animation-duration: 1ms;
2878
- animation-delay: 0s;
2879
- }
2880
2873
  }
2881
2874
  .block-editor-list-view-leaf .block-editor-inserter__toggle {
2882
2875
  background: #1e1e1e;
@@ -3021,13 +3014,6 @@
3021
3014
  height: 1px;
3022
3015
  }
3023
3016
 
3024
- .block-editor-list-view-drop-indicator > .components-popover__content {
3025
- margin-left: 0;
3026
- border: none;
3027
- box-shadow: none;
3028
- outline: none;
3029
- }
3030
-
3031
3017
  .block-editor-list-view-placeholder {
3032
3018
  padding: 0;
3033
3019
  margin: 0;
@@ -4505,6 +4491,7 @@ figcaption.block-editor-rich-text__editable [data-rich-text-placeholder]::before
4505
4491
  .component-spacing-sizes-control .components-spacing-sizes-control__custom-value-input {
4506
4492
  width: 124px;
4507
4493
  margin-top: 8px;
4494
+ grid-column: 1;
4508
4495
  }
4509
4496
  .component-spacing-sizes-control .components-range-control {
4510
4497
  height: 40px;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/block-editor",
3
- "version": "10.3.0",
3
+ "version": "10.4.0",
4
4
  "description": "Generic block editor.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -33,32 +33,33 @@
33
33
  "dependencies": {
34
34
  "@babel/runtime": "^7.16.0",
35
35
  "@react-spring/web": "^9.4.5",
36
- "@wordpress/a11y": "^3.20.0",
37
- "@wordpress/api-fetch": "^6.17.0",
38
- "@wordpress/blob": "^3.20.0",
39
- "@wordpress/blocks": "^11.19.0",
40
- "@wordpress/components": "^21.3.0",
41
- "@wordpress/compose": "^5.18.0",
42
- "@wordpress/data": "^7.4.0",
43
- "@wordpress/date": "^4.20.0",
44
- "@wordpress/deprecated": "^3.20.0",
45
- "@wordpress/dom": "^3.20.0",
46
- "@wordpress/element": "^4.18.0",
47
- "@wordpress/hooks": "^3.20.0",
48
- "@wordpress/html-entities": "^3.20.0",
49
- "@wordpress/i18n": "^4.20.0",
50
- "@wordpress/icons": "^9.11.0",
51
- "@wordpress/is-shallow-equal": "^4.20.0",
52
- "@wordpress/keyboard-shortcuts": "^3.18.0",
53
- "@wordpress/keycodes": "^3.20.0",
54
- "@wordpress/notices": "^3.20.0",
55
- "@wordpress/rich-text": "^5.18.0",
56
- "@wordpress/shortcode": "^3.20.0",
57
- "@wordpress/style-engine": "^1.3.0",
58
- "@wordpress/token-list": "^2.20.0",
59
- "@wordpress/url": "^3.21.0",
60
- "@wordpress/warning": "^2.20.0",
61
- "@wordpress/wordcount": "^3.20.0",
36
+ "@wordpress/a11y": "^3.21.0",
37
+ "@wordpress/api-fetch": "^6.18.0",
38
+ "@wordpress/blob": "^3.21.0",
39
+ "@wordpress/blocks": "^11.20.0",
40
+ "@wordpress/components": "^22.0.0",
41
+ "@wordpress/compose": "^5.19.0",
42
+ "@wordpress/data": "^7.5.0",
43
+ "@wordpress/date": "^4.21.0",
44
+ "@wordpress/deprecated": "^3.21.0",
45
+ "@wordpress/dom": "^3.21.0",
46
+ "@wordpress/element": "^4.19.0",
47
+ "@wordpress/hooks": "^3.21.0",
48
+ "@wordpress/html-entities": "^3.21.0",
49
+ "@wordpress/i18n": "^4.21.0",
50
+ "@wordpress/icons": "^9.12.0",
51
+ "@wordpress/is-shallow-equal": "^4.21.0",
52
+ "@wordpress/keyboard-shortcuts": "^3.19.0",
53
+ "@wordpress/keycodes": "^3.21.0",
54
+ "@wordpress/notices": "^3.21.0",
55
+ "@wordpress/rich-text": "^5.19.0",
56
+ "@wordpress/shortcode": "^3.21.0",
57
+ "@wordpress/style-engine": "^1.4.0",
58
+ "@wordpress/token-list": "^2.21.0",
59
+ "@wordpress/url": "^3.22.0",
60
+ "@wordpress/warning": "^2.21.0",
61
+ "@wordpress/wordcount": "^3.21.0",
62
+ "change-case": "^4.1.2",
62
63
  "classnames": "^2.3.1",
63
64
  "colord": "^2.7.0",
64
65
  "diff": "^4.0.2",
@@ -78,5 +79,5 @@
78
79
  "publishConfig": {
79
80
  "access": "public"
80
81
  },
81
- "gitHead": "a2ff0e6471c88436dad0287beb88d1729aa6f5dd"
82
+ "gitHead": "511f4cc1f0138641bc4394bc1cf36e833109c791"
82
83
  }
@@ -30,7 +30,7 @@ const DEFAULT_ALIGNMENT_CONTROLS = [
30
30
 
31
31
  const POPOVER_PROPS = {
32
32
  position: 'bottom right',
33
- isAlternate: true,
33
+ variant: 'toolbar',
34
34
  };
35
35
 
36
36
  function AlignmentUI( {
@@ -41,5 +41,5 @@ export const BLOCK_ALIGNMENTS_CONTROLS = {
41
41
  export const DEFAULT_CONTROL = 'none';
42
42
 
43
43
  export const POPOVER_PROPS = {
44
- isAlternate: true,
44
+ variant: 'toolbar',
45
45
  };
@@ -24,7 +24,7 @@ function BlockAlignmentMatrixControl( props ) {
24
24
  return (
25
25
  <Dropdown
26
26
  position="bottom right"
27
- popoverProps={ { isAlternate: true } }
27
+ popoverProps={ { variant: 'toolbar' } }
28
28
  renderToggle={ ( { onToggle, isOpen } ) => {
29
29
  const openOnArrowDown = ( event ) => {
30
30
  if ( ! isOpen && event.keyCode === DOWN ) {
@@ -1,16 +1,18 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
3
  exports[`BlockBreadcrumb should render correctly 1`] = `
4
- <ul
5
- aria-label="Block breadcrumb"
6
- class="block-editor-block-breadcrumb"
7
- role="list"
8
- >
9
- <li
10
- aria-current="true"
11
- class="block-editor-block-breadcrumb__current"
4
+ <div>
5
+ <ul
6
+ aria-label="Block breadcrumb"
7
+ class="block-editor-block-breadcrumb"
8
+ role="list"
12
9
  >
13
- Document
14
- </li>
15
- </ul>
10
+ <li
11
+ aria-current="true"
12
+ class="block-editor-block-breadcrumb__current"
13
+ >
14
+ Document
15
+ </li>
16
+ </ul>
17
+ </div>
16
18
  `;
@@ -12,7 +12,7 @@ describe( 'BlockBreadcrumb', () => {
12
12
  it( 'should render correctly', () => {
13
13
  const { container } = render( <BlockBreadcrumb /> );
14
14
 
15
- expect( container.firstChild ).toMatchSnapshot();
15
+ expect( container ).toMatchSnapshot();
16
16
  } );
17
17
 
18
18
  describe( 'Root label text', () => {
@@ -2,7 +2,6 @@
2
2
  * External dependencies
3
3
  */
4
4
  import classnames from 'classnames';
5
- import { castArray } from 'lodash';
6
5
  // diff doesn't tree-shake correctly, so we import from the individual
7
6
  // module here, to avoid including too much of the library
8
7
  import { diffChars } from 'diff/lib/diff/character';
@@ -44,7 +43,9 @@ function BlockCompare( {
44
43
 
45
44
  function getConvertedContent( convertedBlock ) {
46
45
  // The convertor may return an array of items or a single item.
47
- const newBlocks = castArray( convertedBlock );
46
+ const newBlocks = Array.isArray( convertedBlock )
47
+ ? convertedBlock
48
+ : [ convertedBlock ];
48
49
 
49
50
  // Get converted block details.
50
51
  const newContent = newBlocks.map( ( item ) =>
@@ -20,11 +20,12 @@ import { BlockEditContextProvider, useBlockEditContext } from './context';
20
20
  export { useBlockEditContext };
21
21
 
22
22
  export default function BlockEdit( props ) {
23
- const { name, isSelected, clientId } = props;
23
+ const { name, isSelected, clientId, __unstableLayoutClassNames } = props;
24
24
  const context = {
25
25
  name,
26
26
  isSelected,
27
27
  clientId,
28
+ __unstableLayoutClassNames,
28
29
  };
29
30
  return (
30
31
  <BlockEditContextProvider
@@ -84,6 +84,7 @@ function BlockListBlock( {
84
84
  isSelected,
85
85
  isSelectionEnabled,
86
86
  className,
87
+ __unstableLayoutClassNames: layoutClassNames,
87
88
  name,
88
89
  isValid,
89
90
  attributes,
@@ -146,6 +147,7 @@ function BlockListBlock( {
146
147
  clientId={ clientId }
147
148
  isSelectionEnabled={ isSelectionEnabled }
148
149
  toggleSelection={ toggleSelection }
150
+ __unstableLayoutClassNames={ layoutClassNames }
149
151
  />
150
152
  );
151
153
 
@@ -174,7 +174,7 @@
174
174
  // With `position: static`, Safari marks a full-width selection rectangle, including margins.
175
175
  // With `position: relative`, Safari marks an inline selection rectangle, similar to that of
176
176
  // Blink based browsers, but it also does "crop" the marker, which can result in a small line
177
- // from the preceeding paragraph showing, which is effectively the above selection bleeding in.
177
+ // from the preceding paragraph showing, which is effectively the above selection bleeding in.
178
178
  // We choose relative, as that matches the multi-selection, which is limited to the block footprint.
179
179
  position: relative;
180
180
 
@@ -70,7 +70,7 @@ function BlockMoverStory() {
70
70
  </Toolbar>
71
71
 
72
72
  <p style={ { marginTop: 36 } }>
73
- But it can also accomodate horizontal blocks.
73
+ But it can also accommodate horizontal blocks.
74
74
  </p>
75
75
  <Toolbar label="Block Mover">
76
76
  <BlockMover
@@ -61,3 +61,38 @@
61
61
  overflow: hidden;
62
62
  }
63
63
  }
64
+
65
+ // Specificity is necessary to override block toolbar button styles.
66
+ .components-button.block-editor-block-mover-button {
67
+ // Focus and toggle pseudo elements.
68
+ &::before {
69
+ content: "";
70
+ position: absolute;
71
+ display: block;
72
+ border-radius: $radius-block-ui;
73
+ height: $grid-unit-40;
74
+
75
+ // Position the focus rectangle.
76
+ left: $grid-unit-10;
77
+ right: $grid-unit-10;
78
+ z-index: -1;
79
+
80
+ // Animate in.
81
+ animation: components-button__appear-animation 0.1s ease;
82
+ animation-fill-mode: forwards;
83
+ @include reduce-motion("animation");
84
+ }
85
+
86
+ // Don't show the focus inherited by the Button component.
87
+ &:focus,
88
+ &:focus:enabled,
89
+ // Override focus styles from the block toolbar
90
+ &:focus::before {
91
+ box-shadow: none;
92
+ outline: none;
93
+ }
94
+
95
+ &:focus-visible::before {
96
+ @include block-toolbar-button-style__focus();
97
+ }
98
+ }
@@ -268,6 +268,7 @@ function BlockPopoverInbetween( {
268
268
  resize={ false }
269
269
  flip={ false }
270
270
  placement="bottom-start"
271
+ variant="unstyled"
271
272
  >
272
273
  <div
273
274
  className="block-editor-block-popover__inbetween-container"
@@ -173,6 +173,7 @@ function BlockPopover(
173
173
  'block-editor-block-popover',
174
174
  props.className
175
175
  ) }
176
+ variant="unstyled"
176
177
  >
177
178
  { __unstableCoverTarget && <div style={ style }>{ children }</div> }
178
179
  { ! __unstableCoverTarget && children }
@@ -13,10 +13,6 @@
13
13
  margin: 0 !important;
14
14
  min-width: auto;
15
15
  width: max-content;
16
- background: none;
17
- border: none;
18
- outline: none;
19
- box-shadow: none;
20
16
  overflow-y: visible;
21
17
  }
22
18