@wordpress/block-editor 14.16.0 → 14.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/background-image-control/index.js +18 -10
  3. package/build/components/background-image-control/index.js.map +1 -1
  4. package/build/components/block-list/block.js +4 -2
  5. package/build/components/block-list/block.js.map +1 -1
  6. package/build/components/block-list/use-block-props/use-firefox-draggable-compatibility.js +14 -11
  7. package/build/components/block-list/use-block-props/use-firefox-draggable-compatibility.js.map +1 -1
  8. package/build/components/block-tools/use-show-block-tools.js +3 -2
  9. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  10. package/build/components/inserter/media-tab/media-preview.js +1 -7
  11. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  12. package/build/components/link-control/index.js +2 -0
  13. package/build/components/link-control/index.js.map +1 -1
  14. package/build/hooks/spacing-visualizer.js +14 -8
  15. package/build/hooks/spacing-visualizer.js.map +1 -1
  16. package/build-module/components/background-image-control/index.js +19 -11
  17. package/build-module/components/background-image-control/index.js.map +1 -1
  18. package/build-module/components/block-list/block.js +4 -2
  19. package/build-module/components/block-list/block.js.map +1 -1
  20. package/build-module/components/block-list/use-block-props/use-firefox-draggable-compatibility.js +14 -11
  21. package/build-module/components/block-list/use-block-props/use-firefox-draggable-compatibility.js.map +1 -1
  22. package/build-module/components/block-tools/use-show-block-tools.js +3 -2
  23. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  24. package/build-module/components/inserter/media-tab/media-preview.js +1 -7
  25. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  26. package/build-module/components/link-control/index.js +4 -1
  27. package/build-module/components/link-control/index.js.map +1 -1
  28. package/build-module/hooks/spacing-visualizer.js +15 -9
  29. package/build-module/hooks/spacing-visualizer.js.map +1 -1
  30. package/package.json +34 -34
  31. package/src/components/background-image-control/index.js +22 -7
  32. package/src/components/block-list/block.js +6 -2
  33. package/src/components/block-list/use-block-props/use-firefox-draggable-compatibility.js +14 -11
  34. package/src/components/block-tools/use-show-block-tools.js +2 -0
  35. package/src/components/inserter/media-tab/media-preview.js +1 -8
  36. package/src/components/link-control/index.js +6 -1
  37. package/src/hooks/spacing-visualizer.js +14 -17
@@ -36,7 +36,6 @@ import { getBlockAndPreviewFromMedia } from './utils';
36
36
  import { store as blockEditorStore } from '../../../store';
37
37
 
38
38
  const ALLOWED_MEDIA_TYPES = [ 'image' ];
39
- const MAXIMUM_TITLE_LENGTH = 25;
40
39
  const MEDIA_OPTIONS_POPOVER_PROPS = {
41
40
  position: 'bottom left',
42
41
  className:
@@ -239,12 +238,6 @@ export function MediaPreview( { media, onClick, category } ) {
239
238
  ? media.title
240
239
  : media.title?.rendered || __( 'no title' );
241
240
 
242
- let truncatedTitle;
243
- if ( title.length > MAXIMUM_TITLE_LENGTH ) {
244
- const omission = '...';
245
- truncatedTitle =
246
- title.slice( 0, MAXIMUM_TITLE_LENGTH - omission.length ) + omission;
247
- }
248
241
  const onMouseEnter = useCallback( () => setIsHovered( true ), [] );
249
242
  const onMouseLeave = useCallback( () => setIsHovered( false ), [] );
250
243
  return (
@@ -268,7 +261,7 @@ export function MediaPreview( { media, onClick, category } ) {
268
261
  onMouseEnter={ onMouseEnter }
269
262
  onMouseLeave={ onMouseLeave }
270
263
  >
271
- <Tooltip text={ truncatedTitle || title }>
264
+ <Tooltip text={ title }>
272
265
  <Composite.Item
273
266
  render={
274
267
  <div
@@ -501,7 +501,7 @@ function LinkControl( {
501
501
  LinkControl.ViewerFill = ViewerFill;
502
502
  LinkControl.DEFAULT_LINK_SETTINGS = DEFAULT_LINK_SETTINGS;
503
503
 
504
- export const DeprecatedExperimentalLinkControl = ( props ) => {
504
+ const DeprecatedExperimentalLinkControl = ( props ) => {
505
505
  deprecated( 'wp.blockEditor.__experimentalLinkControl', {
506
506
  since: '6.8',
507
507
  alternative: 'wp.blockEditor.LinkControl',
@@ -510,4 +510,9 @@ export const DeprecatedExperimentalLinkControl = ( props ) => {
510
510
  return <LinkControl { ...props } />;
511
511
  };
512
512
 
513
+ DeprecatedExperimentalLinkControl.ViewerFill = LinkControl.ViewerFill;
514
+ DeprecatedExperimentalLinkControl.DEFAULT_LINK_SETTINGS =
515
+ LinkControl.DEFAULT_LINK_SETTINGS;
516
+
517
+ export { DeprecatedExperimentalLinkControl };
513
518
  export default LinkControl;
@@ -1,13 +1,7 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import {
5
- useState,
6
- useRef,
7
- useLayoutEffect,
8
- useEffect,
9
- useReducer,
10
- } from '@wordpress/element';
4
+ import { useState, useRef, useEffect, useReducer } from '@wordpress/element';
11
5
  import isShallowEqual from '@wordpress/is-shallow-equal';
12
6
 
13
7
  /**
@@ -22,19 +16,22 @@ function SpacingVisualizer( { clientId, value, computeStyle, forceShow } ) {
22
16
  computeStyle( blockElement )
23
17
  );
24
18
 
25
- useLayoutEffect( () => {
19
+ // It's not sufficient to read the block’s computed style when `value` changes because
20
+ // the effect would run before the block’s style has updated. Thus observing mutations
21
+ // to the block’s attributes is used to trigger updates to the visualizer’s styles.
22
+ useEffect( () => {
26
23
  if ( ! blockElement ) {
27
24
  return;
28
25
  }
29
- // It's not sufficient to read the computed spacing value when value.spacing changes as
30
- // useEffect may run before the browser recomputes CSS. We therefore combine
31
- // useLayoutEffect and two rAF calls to ensure that we read the spacing after the current
32
- // paint but before the next paint.
33
- // See https://github.com/WordPress/gutenberg/pull/59227.
34
- window.requestAnimationFrame( () =>
35
- window.requestAnimationFrame( updateStyle )
36
- );
37
- }, [ blockElement, value ] );
26
+ const observer = new window.MutationObserver( updateStyle );
27
+ observer.observe( blockElement, {
28
+ attributes: true,
29
+ attributeFilter: [ 'style', 'class' ],
30
+ } );
31
+ return () => {
32
+ observer.disconnect();
33
+ };
34
+ }, [ blockElement ] );
38
35
 
39
36
  const previousValueRef = useRef( value );
40
37
  const [ isActive, setIsActive ] = useState( false );