@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
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { castArray } from 'lodash';
5
4
  import classnames from 'classnames';
6
5
 
7
6
  /**
@@ -36,7 +35,10 @@ export function BlockPreview( {
36
35
  () => ( { ...originalSettings, __unstableIsPreviewMode: true } ),
37
36
  [ originalSettings ]
38
37
  );
39
- const renderedBlocks = useMemo( () => castArray( blocks ), [ blocks ] );
38
+ const renderedBlocks = useMemo(
39
+ () => ( Array.isArray( blocks ) ? blocks : [ blocks ] ),
40
+ [ blocks ]
41
+ );
40
42
  if ( ! blocks || blocks.length === 0 ) {
41
43
  return null;
42
44
  }
@@ -99,7 +101,10 @@ export function useBlockPreview( {
99
101
  );
100
102
  const disabledRef = useDisabled();
101
103
  const ref = useMergeRefs( [ props.ref, disabledRef ] );
102
- const renderedBlocks = useMemo( () => castArray( blocks ), [ blocks ] );
104
+ const renderedBlocks = useMemo(
105
+ () => ( Array.isArray( blocks ) ? blocks : [ blocks ] ),
106
+ [ blocks ]
107
+ );
103
108
 
104
109
  const children = (
105
110
  <BlockEditorProvider value={ renderedBlocks } settings={ settings }>
@@ -1,8 +1,3 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { castArray } from 'lodash';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
@@ -41,7 +36,7 @@ const noop = () => {};
41
36
  const POPOVER_PROPS = {
42
37
  className: 'block-editor-block-settings-menu__popover',
43
38
  position: 'bottom right',
44
- isAlternate: true,
39
+ variant: 'toolbar',
45
40
  };
46
41
 
47
42
  function CopyMenuItem( { blocks, onCopy } ) {
@@ -58,7 +53,9 @@ export function BlockSettingsDropdown( {
58
53
  __unstableDisplayLocation,
59
54
  ...props
60
55
  } ) {
61
- const blockClientIds = castArray( clientIds );
56
+ const blockClientIds = Array.isArray( clientIds )
57
+ ? clientIds
58
+ : [ clientIds ];
62
59
  const count = blockClientIds.length;
63
60
  const firstBlockClientId = blockClientIds[ 0 ];
64
61
  const {
@@ -1,8 +1,3 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { castArray } from 'lodash';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
@@ -52,7 +47,7 @@ export const BlockSwitcherDropdownMenu = ( { clientIds, blocks } ) => {
52
47
  const { getBlockStyles, getBlockType } = select( blocksStore );
53
48
  const { canRemoveBlocks } = select( blockEditorStore );
54
49
  const rootClientId = getBlockRootClientId(
55
- castArray( clientIds )[ 0 ]
50
+ Array.isArray( clientIds ) ? clientIds[ 0 ] : clientIds
56
51
  );
57
52
  const [ { name: firstBlockName } ] = blocks;
58
53
  const _isSingleBlockSelected = blocks.length === 1;
@@ -163,7 +158,7 @@ export const BlockSwitcherDropdownMenu = ( { clientIds, blocks } ) => {
163
158
  label={ blockSwitcherLabel }
164
159
  popoverProps={ {
165
160
  position: 'bottom right',
166
- isAlternate: true,
161
+ variant: 'toolbar',
167
162
  className: 'block-editor-block-switcher__popover',
168
163
  } }
169
164
  icon={
@@ -15,7 +15,7 @@ export default function PreviewBlockPopover( { blocks } ) {
15
15
  <div className="block-editor-block-switcher__popover__preview__container">
16
16
  <Popover
17
17
  className="block-editor-block-switcher__preview__popover"
18
- position="bottom right"
18
+ placement="bottom-start"
19
19
  focusOnMount={ false }
20
20
  >
21
21
  <div className="block-editor-block-switcher__preview">
@@ -25,7 +25,7 @@ function InbetweenInsertionPointPopover( {
25
25
  __unstablePopoverSlot,
26
26
  __unstableContentRef,
27
27
  } ) {
28
- const { selectBlock } = useDispatch( blockEditorStore );
28
+ const { selectBlock, hideInsertionPoint } = useDispatch( blockEditorStore );
29
29
  const openRef = useContext( InsertionPointOpenRef );
30
30
  const ref = useRef();
31
31
  const {
@@ -89,6 +89,14 @@ function InbetweenInsertionPointPopover( {
89
89
  }
90
90
  }
91
91
 
92
+ function maybeHideInserterPoint( event ) {
93
+ // Only hide the inserter if it's triggered on the wrapper,
94
+ // and the inserter is not open.
95
+ if ( event.target === ref.current && ! openRef.current ) {
96
+ hideInsertionPoint();
97
+ }
98
+ }
99
+
92
100
  function onFocus( event ) {
93
101
  // Only handle click on the wrapper specifically, and not an event
94
102
  // bubbled from the inserter itself.
@@ -200,6 +208,7 @@ function InbetweenInsertionPointPopover( {
200
208
  className={ classnames( className, {
201
209
  'is-with-inserter': isInserterShown,
202
210
  } ) }
211
+ onHoverEnd={ maybeHideInserterPoint }
203
212
  >
204
213
  <motion.div
205
214
  variants={ lineVariants }
@@ -68,7 +68,7 @@ The different variations of the block.
68
68
 
69
69
  - Type: `Function`
70
70
 
71
- Callback called when a block variation is selected. It recieves the selected variation as a parameter.
71
+ Callback called when a block variation is selected. It receives the selected variation as a parameter.
72
72
 
73
73
  #### `icon`
74
74
 
@@ -28,7 +28,7 @@ const DEFAULT_CONTROLS = [ 'top', 'center', 'bottom' ];
28
28
  const DEFAULT_CONTROL = 'top';
29
29
 
30
30
  const POPOVER_PROPS = {
31
- isAlternate: true,
31
+ variant: 'toolbar',
32
32
  };
33
33
 
34
34
  function BlockVerticalAlignmentUI( {
@@ -61,6 +61,7 @@ export default function AllInputControl( {
61
61
  onChange={ handleOnChange }
62
62
  onUnitChange={ handleOnUnitChange }
63
63
  placeholder={ allPlaceholder }
64
+ size={ '__unstable-large' }
64
65
  />
65
66
  );
66
67
  }
@@ -113,6 +113,7 @@ export default function BorderRadiusControl( { onChange, values } ) {
113
113
  withInputField={ false }
114
114
  onChange={ handleSliderChange }
115
115
  step={ step }
116
+ __nextHasNoMarginBottom
116
117
  />
117
118
  </>
118
119
  ) : (
@@ -80,6 +80,7 @@ export default function BoxInputControls( {
80
80
  onUnitChange={ createHandleOnUnitChange(
81
81
  corner
82
82
  ) }
83
+ size={ '__unstable-large' }
83
84
  />
84
85
  </div>
85
86
  </Tooltip>
@@ -10,24 +10,21 @@
10
10
  justify-content: space-between;
11
11
  align-items: flex-start;
12
12
 
13
- > .components-unit-control-wrapper {
14
- width: 110px;
13
+ .components-border-radius-control__unit-control {
14
+ width: calc((100% - #{$grid-unit-20}) / 2);
15
15
  margin-bottom: 0;
16
- margin-right: #{ $grid-unit-15 };
16
+ margin-right: $grid-unit-20;
17
17
  flex-shrink: 0;
18
18
  }
19
19
 
20
- .components-range-control {
20
+ .components-border-radius-control__range-control {
21
21
  flex: 1;
22
- margin-bottom: 0;
23
-
24
- .components-base-control__field {
25
- margin-bottom: 0;
26
- height: 30px;
27
- }
22
+ margin-right: $grid-unit-15;
28
23
 
29
- .components-range-control__wrapper {
30
- margin-right: 10px;
24
+ > div {
25
+ height: 40px;
26
+ display: flex;
27
+ align-items: center;
31
28
  }
32
29
  }
33
30
 
@@ -37,22 +34,16 @@
37
34
  }
38
35
 
39
36
  .components-border-radius-control__input-controls-wrapper {
40
- display: flex;
41
- width: 70%;
42
- flex-wrap: wrap;
43
-
44
- .components-border-radius-control__tooltip-wrapper {
45
- width: calc(50% - #{ $grid-unit-10 });
46
- margin-bottom: $grid-unit-10;
47
- margin-right: $grid-unit-10;
48
- }
37
+ display: grid;
38
+ gap: $grid-unit-20;
39
+ grid-template-columns: repeat(2, minmax(0, 1fr));
40
+ margin-right: $grid-unit-15;
49
41
  }
50
42
 
51
- .component-border-radius-control__linked-button.has-icon {
43
+ .component-border-radius-control__linked-button {
52
44
  display: flex;
53
45
  justify-content: center;
54
- margin-left: 2px;
55
- margin-top: 3px;
46
+ margin-top: $grid-unit-10;
56
47
 
57
48
  svg {
58
49
  margin-right: 0;
@@ -117,114 +117,116 @@ exports[`ColorPaletteControl matches the snapshot 1`] = `
117
117
  min-width: 0;
118
118
  }
119
119
 
120
- <div
121
- class="components-base-control block-editor-color-gradient-control emotion-0 emotion-1"
122
- >
120
+ <div>
123
121
  <div
124
- class="components-base-control__field emotion-2 emotion-3"
122
+ class="components-base-control block-editor-color-gradient-control emotion-0 emotion-1"
125
123
  >
126
- <fieldset
127
- class="block-editor-color-gradient-control__fieldset"
124
+ <div
125
+ class="components-base-control__field emotion-2 emotion-3"
128
126
  >
129
- <div
130
- class="components-flex components-h-stack components-v-stack emotion-4 emotion-5"
131
- data-wp-c16t="true"
132
- data-wp-component="VStack"
127
+ <fieldset
128
+ class="block-editor-color-gradient-control__fieldset"
133
129
  >
134
- <legend>
135
- <div
136
- class="block-editor-color-gradient-control__color-indicator"
137
- >
138
- <span
139
- class="components-base-control__label emotion-6 emotion-7"
140
- >
141
- Test Color
142
- </span>
143
- </div>
144
- </legend>
145
130
  <div
146
- class="block-editor-color-gradient-control__panel"
131
+ class="components-flex components-h-stack components-v-stack emotion-4 emotion-5"
132
+ data-wp-c16t="true"
133
+ data-wp-component="VStack"
147
134
  >
135
+ <legend>
136
+ <div
137
+ class="block-editor-color-gradient-control__color-indicator"
138
+ >
139
+ <span
140
+ class="components-base-control__label emotion-6 emotion-7"
141
+ >
142
+ Test Color
143
+ </span>
144
+ </div>
145
+ </legend>
148
146
  <div
149
- class="components-flex components-h-stack components-v-stack emotion-8 emotion-5"
150
- data-wp-c16t="true"
151
- data-wp-component="VStack"
147
+ class="block-editor-color-gradient-control__panel"
152
148
  >
153
149
  <div
154
- class="components-dropdown"
155
- tabindex="-1"
150
+ class="components-flex components-h-stack components-v-stack emotion-8 emotion-5"
151
+ data-wp-c16t="true"
152
+ data-wp-component="VStack"
156
153
  >
157
- <button
158
- aria-expanded="false"
159
- aria-haspopup="true"
160
- aria-label="Custom color picker. The currently selected color is called \\"red\\" and has a value of \\"f00\\"."
161
- class="components-flex components-color-palette__custom-color emotion-10 emotion-5"
162
- data-wp-c16t="true"
163
- data-wp-component="Flex"
164
- style="background: rgb(255, 0, 0); color: rgb(0, 0, 0);"
154
+ <div
155
+ class="components-dropdown"
156
+ tabindex="-1"
165
157
  >
166
- <span
167
- class="components-truncate components-flex-item components-color-palette__custom-color-name emotion-5 emotion-13 emotion-5"
168
- data-wp-c16t="true"
169
- data-wp-component="FlexItem"
170
- >
171
- red
172
- </span>
173
- <span
174
- class="components-flex-item components-color-palette__custom-color-value emotion-15 emotion-5"
158
+ <button
159
+ aria-expanded="false"
160
+ aria-haspopup="true"
161
+ aria-label="Custom color picker. The currently selected color is called \\"red\\" and has a value of \\"f00\\"."
162
+ class="components-flex components-color-palette__custom-color emotion-10 emotion-5"
175
163
  data-wp-c16t="true"
176
- data-wp-component="FlexItem"
164
+ data-wp-component="Flex"
165
+ style="background: rgb(255, 0, 0); color: rgb(0, 0, 0);"
177
166
  >
178
- f00
179
- </span>
180
- </button>
181
- </div>
182
- <div
183
- class="components-circular-option-picker"
184
- >
167
+ <span
168
+ class="components-truncate components-flex-item components-color-palette__custom-color-name emotion-5 emotion-13 emotion-5"
169
+ data-wp-c16t="true"
170
+ data-wp-component="FlexItem"
171
+ >
172
+ red
173
+ </span>
174
+ <span
175
+ class="components-flex-item components-color-palette__custom-color-value emotion-15 emotion-5"
176
+ data-wp-c16t="true"
177
+ data-wp-component="FlexItem"
178
+ >
179
+ f00
180
+ </span>
181
+ </button>
182
+ </div>
185
183
  <div
186
- class="components-circular-option-picker__swatches"
184
+ class="components-circular-option-picker"
187
185
  >
188
186
  <div
189
- class="components-circular-option-picker__option-wrapper"
187
+ class="components-circular-option-picker__swatches"
190
188
  >
191
- <button
192
- aria-label="Color: red"
193
- aria-pressed="true"
194
- class="components-button components-circular-option-picker__option is-pressed"
195
- style="background-color: rgb(255, 0, 0); color: rgb(255, 0, 0);"
196
- type="button"
197
- />
198
- <svg
199
- aria-hidden="true"
200
- fill="#000"
201
- focusable="false"
202
- height="24"
203
- viewBox="0 0 24 24"
204
- width="24"
205
- xmlns="http://www.w3.org/2000/svg"
189
+ <div
190
+ class="components-circular-option-picker__option-wrapper"
206
191
  >
207
- <path
208
- d="M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z"
192
+ <button
193
+ aria-label="Color: red"
194
+ aria-pressed="true"
195
+ class="components-button components-circular-option-picker__option is-pressed"
196
+ style="background-color: rgb(255, 0, 0); color: rgb(255, 0, 0);"
197
+ type="button"
209
198
  />
210
- </svg>
199
+ <svg
200
+ aria-hidden="true"
201
+ fill="#000"
202
+ focusable="false"
203
+ height="24"
204
+ viewBox="0 0 24 24"
205
+ width="24"
206
+ xmlns="http://www.w3.org/2000/svg"
207
+ >
208
+ <path
209
+ d="M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z"
210
+ />
211
+ </svg>
212
+ </div>
211
213
  </div>
212
- </div>
213
- <div
214
- class="components-circular-option-picker__custom-clear-wrapper"
215
- >
216
- <button
217
- class="components-button components-circular-option-picker__clear is-tertiary"
218
- type="button"
214
+ <div
215
+ class="components-circular-option-picker__custom-clear-wrapper"
219
216
  >
220
- Clear
221
- </button>
217
+ <button
218
+ class="components-button components-circular-option-picker__clear is-tertiary"
219
+ type="button"
220
+ >
221
+ Clear
222
+ </button>
223
+ </div>
222
224
  </div>
223
225
  </div>
224
226
  </div>
225
227
  </div>
226
- </div>
227
- </fieldset>
228
+ </fieldset>
229
+ </div>
228
230
  </div>
229
231
  </div>
230
232
  `;
@@ -22,6 +22,6 @@ describe( 'ColorPaletteControl', () => {
22
22
  />
23
23
  );
24
24
 
25
- expect( container.firstChild ).toMatchSnapshot();
25
+ expect( container ).toMatchSnapshot();
26
26
  } );
27
27
  } );
@@ -36,7 +36,7 @@ function DuotoneControl( {
36
36
  popoverProps={ {
37
37
  className: 'block-editor-duotone-control__popover',
38
38
  headerTitle: __( 'Duotone' ),
39
- isAlternate: true,
39
+ variant: 'toolbar',
40
40
  } }
41
41
  renderToggle={ ( { isOpen, onToggle } ) => {
42
42
  const openOnArrowDown = ( event ) => {
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { find, pickBy, reduce, some } from 'lodash';
4
+ import { find, pickBy, reduce } from 'lodash';
5
5
 
6
6
  /**
7
7
  * WordPress dependencies
@@ -152,8 +152,7 @@ export default ( ...fontSizeNames ) => {
152
152
  };
153
153
 
154
154
  if (
155
- ! some(
156
- fontSizeAttributeNames,
155
+ ! Object.values( fontSizeAttributeNames ).some(
157
156
  didAttributesChange
158
157
  )
159
158
  ) {
@@ -282,7 +282,7 @@ function Iframe(
282
282
 
283
283
  head = (
284
284
  <>
285
- <style>{ 'body{margin:0}' }</style>
285
+ <style>{ 'html{height:auto!important;}body{margin:0}' }</style>
286
286
  { styles.map(
287
287
  ( { tagName, href, id, rel, media, textContent } ) => {
288
288
  const TagName = tagName.toLowerCase();
@@ -2,5 +2,5 @@ export const MIN_ZOOM = 100;
2
2
  export const MAX_ZOOM = 300;
3
3
  export const POPOVER_PROPS = {
4
4
  position: 'bottom right',
5
- isAlternate: true,
5
+ variant: 'toolbar',
6
6
  };
@@ -150,7 +150,9 @@ const ForwardedInnerBlocks = forwardRef( ( props, ref ) => {
150
150
  * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/inner-blocks/README.md
151
151
  */
152
152
  export function useInnerBlocksProps( props = {}, options = {} ) {
153
- const { clientId } = useBlockEditContext();
153
+ const { __unstableDisableLayoutClassNames } = options;
154
+ const { clientId, __unstableLayoutClassNames: layoutClassNames = '' } =
155
+ useBlockEditContext();
154
156
  const isSmallScreen = useViewportMatch( 'medium', '<' );
155
157
  const { __experimentalCaptureToolbars, hasOverlay } = useSelect(
156
158
  ( select ) => {
@@ -200,12 +202,14 @@ export function useInnerBlocksProps( props = {}, options = {} ) {
200
202
  innerBlocksProps.value && innerBlocksProps.onChange
201
203
  ? ControlledInnerBlocks
202
204
  : UncontrolledInnerBlocks;
205
+
203
206
  return {
204
207
  ...props,
205
208
  ref,
206
209
  className: classnames(
207
210
  props.className,
208
211
  'block-editor-block-list__layout',
212
+ __unstableDisableLayoutClassNames ? '' : layoutClassNames,
209
213
  {
210
214
  'has-overlay': hasOverlay,
211
215
  }
@@ -1,3 +1,5 @@
1
+ /* eslint-disable testing-library/render-result-naming-convention */
2
+
1
3
  /**
2
4
  * WordPress dependencies
3
5
  */
@@ -102,3 +104,5 @@ describe( 'InnerBlocks', () => {
102
104
  expect( serialize( block ) ).toMatchSnapshot();
103
105
  } );
104
106
  } );
107
+
108
+ /* eslint-enable testing-library/render-result-naming-convention */
@@ -1,8 +1,3 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { castArray } from 'lodash';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
@@ -118,14 +113,11 @@ function useInsertionPoint( {
118
113
  meta
119
114
  );
120
115
  }
116
+ const blockLength = Array.isArray( blocks ) ? blocks.length : 1;
121
117
  const message = sprintf(
122
118
  // translators: %d: the name of the block that has been added
123
- _n(
124
- '%d block added.',
125
- '%d blocks added.',
126
- castArray( blocks ).length
127
- ),
128
- castArray( blocks ).length
119
+ _n( '%d block added.', '%d blocks added.', blockLength ),
120
+ blockLength
129
121
  );
130
122
  speak( message );
131
123
 
@@ -2,7 +2,8 @@
2
2
  * External dependencies
3
3
  */
4
4
  import removeAccents from 'remove-accents';
5
- import { find, words } from 'lodash';
5
+ import { find } from 'lodash';
6
+ import { noCase } from 'change-case';
6
7
 
7
8
  // Default search helpers.
8
9
  const defaultGetName = ( item ) => item.name || '';
@@ -12,6 +13,25 @@ const defaultGetKeywords = ( item ) => item.keywords || [];
12
13
  const defaultGetCategory = ( item ) => item.category;
13
14
  const defaultGetCollection = () => null;
14
15
 
16
+ /**
17
+ * Extracts words from an input string.
18
+ *
19
+ * @param {string} input The input string.
20
+ *
21
+ * @return {Array} Words, extracted from the input string.
22
+ */
23
+ function extractWords( input = '' ) {
24
+ return noCase( input, {
25
+ splitRegexp: [
26
+ /([\p{Ll}\p{Lo}\p{N}])([\p{Lu}\p{Lt}])/gu, // One lowercase or digit, followed by one uppercase.
27
+ /([\p{Lu}\p{Lt}])([\p{Lu}\p{Lt}][\p{Ll}\p{Lo}])/gu, // One uppercase followed by one uppercase and one lowercase.
28
+ ],
29
+ stripRegexp: /(\p{C}|\p{P}|\p{S})+/giu, // Anything that's not a punctuation, symbol or control/format character.
30
+ } )
31
+ .split( ' ' )
32
+ .filter( Boolean );
33
+ }
34
+
15
35
  /**
16
36
  * Sanitizes the search input string.
17
37
  *
@@ -43,7 +63,7 @@ function normalizeSearchInput( input = '' ) {
43
63
  * @return {string[]} The normalized list of search terms.
44
64
  */
45
65
  export const getNormalizedSearchTerms = ( input = '' ) => {
46
- return words( normalizeSearchInput( input ) );
66
+ return extractWords( normalizeSearchInput( input ) );
47
67
  };
48
68
 
49
69
  const removeMatchingTerms = ( unmatchedTerms, unprocessedTerms ) => {
@@ -150,7 +170,7 @@ export function getItemSearchRank( item, searchTerm, config = {} ) {
150
170
  category,
151
171
  collection,
152
172
  ].join( ' ' );
153
- const normalizedSearchTerms = words( normalizedSearchInput );
173
+ const normalizedSearchTerms = extractWords( normalizedSearchInput );
154
174
  const unmatchedTerms = removeMatchingTerms(
155
175
  normalizedSearchTerms,
156
176
  terms
@@ -45,6 +45,12 @@ describe( 'getNormalizedSearchTerms', () => {
45
45
 
46
46
  it( 'should support non-latin letters', () => {
47
47
  expect( getNormalizedSearchTerms( 'მედია' ) ).toEqual( [ 'მედია' ] );
48
+ expect(
49
+ getNormalizedSearchTerms( '师父领进门,修行在个人。' )
50
+ ).toEqual( [ '师父领进门', '修行在个人' ] );
51
+ expect(
52
+ getNormalizedSearchTerms( 'Бързата работа – срам за майстора.' )
53
+ ).toEqual( [ 'бързата', 'работа', 'срам', 'за', 'майстора' ] );
48
54
  } );
49
55
  } );
50
56
 
@@ -49,6 +49,8 @@
49
49
  border-radius: $radius-block-ui;
50
50
  opacity: 0.04;
51
51
  background: var(--wp-admin-theme-color);
52
+ // This fixes drag-and-drop in Firefox.
53
+ pointer-events: none;
52
54
  }
53
55
  }
54
56