@wordpress/block-library 9.29.1-next.f34ab90e9.0 → 9.30.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 (106) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/accordion/edit.js +18 -1
  3. package/build/accordion/edit.js.map +1 -1
  4. package/build/accordion/index.js +0 -3
  5. package/build/accordion/index.js.map +1 -1
  6. package/build/accordion-content/index.js +0 -4
  7. package/build/accordion-content/index.js.map +1 -1
  8. package/build/accordion-header/index.js +0 -4
  9. package/build/accordion-header/index.js.map +1 -1
  10. package/build/accordion-panel/edit.js +5 -30
  11. package/build/accordion-panel/edit.js.map +1 -1
  12. package/build/accordion-panel/index.js +0 -4
  13. package/build/accordion-panel/index.js.map +1 -1
  14. package/build/accordion-panel/save.js +3 -29
  15. package/build/accordion-panel/save.js.map +1 -1
  16. package/build/audio/edit.js +3 -1
  17. package/build/audio/edit.js.map +1 -1
  18. package/build/gallery/index.js +2 -1
  19. package/build/gallery/index.js.map +1 -1
  20. package/build/group/variations.js +0 -12
  21. package/build/group/variations.js.map +1 -1
  22. package/build/image/image.js +1 -1
  23. package/build/image/image.js.map +1 -1
  24. package/build/navigation-link/link-ui.js +5 -1
  25. package/build/navigation-link/link-ui.js.map +1 -1
  26. package/build/query/edit/index.js.map +1 -1
  27. package/build/query/edit/query-content.js +7 -6
  28. package/build/query/edit/query-content.js.map +1 -1
  29. package/build/query/edit/query-placeholder.js +30 -9
  30. package/build/query/edit/query-placeholder.js.map +1 -1
  31. package/build/query/edit/query-toolbar.js +4 -2
  32. package/build/query/edit/query-toolbar.js.map +1 -1
  33. package/build/template-part/edit/placeholder.js +2 -1
  34. package/build/template-part/edit/placeholder.js.map +1 -1
  35. package/build/video/edit.js +3 -1
  36. package/build/video/edit.js.map +1 -1
  37. package/build-module/accordion/edit.js +20 -3
  38. package/build-module/accordion/edit.js.map +1 -1
  39. package/build-module/accordion/index.js +0 -3
  40. package/build-module/accordion/index.js.map +1 -1
  41. package/build-module/accordion-content/index.js +0 -4
  42. package/build-module/accordion-content/index.js.map +1 -1
  43. package/build-module/accordion-header/index.js +0 -4
  44. package/build-module/accordion-header/index.js.map +1 -1
  45. package/build-module/accordion-panel/edit.js +6 -29
  46. package/build-module/accordion-panel/edit.js.map +1 -1
  47. package/build-module/accordion-panel/index.js +0 -4
  48. package/build-module/accordion-panel/index.js.map +1 -1
  49. package/build-module/accordion-panel/save.js +4 -28
  50. package/build-module/accordion-panel/save.js.map +1 -1
  51. package/build-module/audio/edit.js +4 -2
  52. package/build-module/audio/edit.js.map +1 -1
  53. package/build-module/gallery/index.js +2 -1
  54. package/build-module/gallery/index.js.map +1 -1
  55. package/build-module/group/variations.js +0 -12
  56. package/build-module/group/variations.js.map +1 -1
  57. package/build-module/image/image.js +1 -1
  58. package/build-module/image/image.js.map +1 -1
  59. package/build-module/navigation-link/link-ui.js +6 -2
  60. package/build-module/navigation-link/link-ui.js.map +1 -1
  61. package/build-module/query/edit/index.js.map +1 -1
  62. package/build-module/query/edit/query-content.js +8 -7
  63. package/build-module/query/edit/query-content.js.map +1 -1
  64. package/build-module/query/edit/query-placeholder.js +30 -10
  65. package/build-module/query/edit/query-placeholder.js.map +1 -1
  66. package/build-module/query/edit/query-toolbar.js +4 -2
  67. package/build-module/query/edit/query-toolbar.js.map +1 -1
  68. package/build-module/template-part/edit/placeholder.js +2 -1
  69. package/build-module/template-part/edit/placeholder.js.map +1 -1
  70. package/build-module/video/edit.js +4 -2
  71. package/build-module/video/edit.js.map +1 -1
  72. package/build-style/accordion/style-rtl.css +4 -13
  73. package/build-style/accordion/style.css +4 -13
  74. package/build-style/editor-rtl.css +4 -0
  75. package/build-style/editor.css +4 -0
  76. package/build-style/query/editor-rtl.css +4 -0
  77. package/build-style/query/editor.css +4 -0
  78. package/build-style/style-rtl.css +4 -14
  79. package/build-style/style.css +4 -14
  80. package/package.json +35 -35
  81. package/src/accordion/block.json +0 -3
  82. package/src/accordion/edit.js +20 -0
  83. package/src/accordion/style.scss +7 -16
  84. package/src/accordion-content/block.json +0 -3
  85. package/src/accordion-content/index.js +0 -1
  86. package/src/accordion-header/block.json +0 -3
  87. package/src/accordion-header/index.js +0 -1
  88. package/src/accordion-panel/block.json +0 -3
  89. package/src/accordion-panel/edit.js +11 -51
  90. package/src/accordion-panel/index.js +0 -1
  91. package/src/accordion-panel/save.js +4 -45
  92. package/src/audio/edit.js +6 -1
  93. package/src/gallery/block.json +2 -1
  94. package/src/gallery/index.php +1 -1
  95. package/src/gallery/test/helpers.native.js +3 -3
  96. package/src/group/variations.js +0 -12
  97. package/src/image/image.js +2 -1
  98. package/src/navigation-link/link-ui.js +7 -1
  99. package/src/post-date/index.php +2 -1
  100. package/src/query/edit/index.js +1 -0
  101. package/src/query/edit/query-content.js +8 -4
  102. package/src/query/edit/query-placeholder.js +47 -17
  103. package/src/query/edit/query-toolbar.js +10 -2
  104. package/src/query/editor.scss +6 -1
  105. package/src/template-part/edit/placeholder.js +2 -1
  106. package/src/video/edit.js +6 -1
@@ -8,18 +8,21 @@ import {
8
8
  } from '@wordpress/blocks';
9
9
  import { useState } from '@wordpress/element';
10
10
  import {
11
- useBlockProps,
12
11
  store as blockEditorStore,
13
12
  __experimentalBlockVariationPicker,
13
+ BlockControls,
14
+ useBlockProps,
14
15
  } from '@wordpress/block-editor';
15
16
  import { Button, Placeholder } from '@wordpress/components';
16
17
  import { __ } from '@wordpress/i18n';
18
+ import { useResizeObserver } from '@wordpress/compose';
17
19
 
18
20
  /**
19
21
  * Internal dependencies
20
22
  */
21
23
  import { useScopedBlockVariations } from '../utils';
22
24
  import { useBlockPatterns } from './pattern-selection';
25
+ import QueryToolbar from './query-toolbar';
23
26
 
24
27
  export default function QueryPlaceholder( {
25
28
  attributes,
@@ -28,7 +31,18 @@ export default function QueryPlaceholder( {
28
31
  openPatternSelectionModal,
29
32
  } ) {
30
33
  const [ isStartingBlank, setIsStartingBlank ] = useState( false );
31
- const blockProps = useBlockProps();
34
+ const [ containerWidth, setContainerWidth ] = useState( 0 );
35
+
36
+ // Use ResizeObserver to monitor container width.
37
+ const resizeObserverRef = useResizeObserver( ( [ entry ] ) => {
38
+ setContainerWidth( entry.contentRect.width );
39
+ } );
40
+
41
+ const SMALL_CONTAINER_BREAKPOINT = 160;
42
+
43
+ const isSmallContainer =
44
+ containerWidth > 0 && containerWidth < SMALL_CONTAINER_BREAKPOINT;
45
+
32
46
  const { blockType, activeBlockVariation } = useSelect(
33
47
  ( select ) => {
34
48
  const { getActiveBlockVariation, getBlockType } =
@@ -49,6 +63,10 @@ export default function QueryPlaceholder( {
49
63
  activeBlockVariation?.icon ||
50
64
  blockType?.icon?.src;
51
65
  const label = activeBlockVariation?.title || blockType?.title;
66
+ const blockProps = useBlockProps( {
67
+ ref: resizeObserverRef,
68
+ } );
69
+
52
70
  if ( isStartingBlank ) {
53
71
  return (
54
72
  <QueryVariationPicker
@@ -61,14 +79,24 @@ export default function QueryPlaceholder( {
61
79
  }
62
80
  return (
63
81
  <div { ...blockProps }>
82
+ <BlockControls>
83
+ <QueryToolbar
84
+ clientId={ clientId }
85
+ attributes={ attributes }
86
+ hasInnerBlocks={ false }
87
+ />
88
+ </BlockControls>
64
89
  <Placeholder
65
- icon={ icon }
66
- label={ label }
67
- instructions={ __(
68
- 'Choose a pattern for the query loop or start blank.'
69
- ) }
90
+ className="block-editor-media-placeholder"
91
+ icon={ ! isSmallContainer && icon }
92
+ label={ ! isSmallContainer && label }
93
+ instructions={
94
+ ! isSmallContainer &&
95
+ __( 'Choose a pattern for the query loop or start blank.' )
96
+ }
97
+ withIllustration={ isSmallContainer }
70
98
  >
71
- { !! hasPatterns && (
99
+ { !! hasPatterns && ! isSmallContainer && (
72
100
  <Button
73
101
  __next40pxDefaultSize
74
102
  variant="primary"
@@ -78,15 +106,17 @@ export default function QueryPlaceholder( {
78
106
  </Button>
79
107
  ) }
80
108
 
81
- <Button
82
- __next40pxDefaultSize
83
- variant="secondary"
84
- onClick={ () => {
85
- setIsStartingBlank( true );
86
- } }
87
- >
88
- { __( 'Start blank' ) }
89
- </Button>
109
+ { ! isSmallContainer && (
110
+ <Button
111
+ __next40pxDefaultSize
112
+ variant="secondary"
113
+ onClick={ () => {
114
+ setIsStartingBlank( true );
115
+ } }
116
+ >
117
+ { __( 'Start blank' ) }
118
+ </Button>
119
+ ) }
90
120
  </Placeholder>
91
121
  </div>
92
122
  );
@@ -14,12 +14,20 @@ import { __ } from '@wordpress/i18n';
14
14
  */
15
15
  import PatternSelection, { useBlockPatterns } from './pattern-selection';
16
16
 
17
- export default function QueryToolbar( { clientId, attributes } ) {
17
+ export default function QueryToolbar( {
18
+ clientId,
19
+ attributes,
20
+ hasInnerBlocks,
21
+ } ) {
18
22
  const hasPatterns = useBlockPatterns( clientId, attributes ).length;
19
23
  if ( ! hasPatterns ) {
20
24
  return null;
21
25
  }
22
26
 
27
+ const buttonLabel = hasInnerBlocks
28
+ ? __( 'Change design' )
29
+ : __( 'Choose pattern' );
30
+
23
31
  return (
24
32
  <ToolbarGroup className="wp-block-template-part__block-control-group">
25
33
  <DropdownContentWrapper>
@@ -33,7 +41,7 @@ export default function QueryToolbar( { clientId, attributes } ) {
33
41
  aria-expanded={ isOpen }
34
42
  onClick={ onToggle }
35
43
  >
36
- { __( 'Change design' ) }
44
+ { buttonLabel }
37
45
  </ToolbarButton>
38
46
  ) }
39
47
  renderContent={ () => (
@@ -1,5 +1,4 @@
1
1
  .block-library-query-pattern__selection-modal {
2
-
3
2
  .block-editor-block-patterns-list {
4
3
  column-count: 2;
5
4
  column-gap: $grid-unit-30;
@@ -53,3 +52,9 @@
53
52
  margin-bottom: 0;
54
53
  }
55
54
  }
55
+
56
+ // Provide special styling for the placeholder.
57
+ // @todo this particular minimal style of placeholder could be componentized further.
58
+ .wp-block-query > .block-editor-media-placeholder.is-small {
59
+ min-height: 60px;
60
+ }
@@ -17,6 +17,7 @@ import {
17
17
  useTemplatePartArea,
18
18
  } from './utils/hooks';
19
19
  import TitleModal from './title-modal';
20
+ import { getTemplatePartIcon } from './utils/get-template-part-icon';
20
21
 
21
22
  export default function TemplatePartPlaceholder( {
22
23
  area,
@@ -54,7 +55,7 @@ export default function TemplatePartPlaceholder( {
54
55
 
55
56
  return (
56
57
  <Placeholder
57
- icon={ areaObject.icon }
58
+ icon={ getTemplatePartIcon( areaObject.icon ) }
58
59
  label={ areaObject.label }
59
60
  instructions={
60
61
  isBlockBasedTheme
package/src/video/edit.js CHANGED
@@ -20,6 +20,7 @@ import {
20
20
  MediaPlaceholder,
21
21
  MediaReplaceFlow,
22
22
  useBlockProps,
23
+ useBlockEditingMode,
23
24
  } from '@wordpress/block-editor';
24
25
  import { useRef, useEffect, useState } from '@wordpress/element';
25
26
  import { __ } from '@wordpress/i18n';
@@ -55,6 +56,8 @@ function VideoEdit( {
55
56
  const { id, controls, poster, src, tracks } = attributes;
56
57
  const [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );
57
58
  const dropdownMenuProps = useToolsPanelDropdownMenuProps();
59
+ const blockEditingMode = useBlockEditingMode();
60
+ const hasNonContentControls = blockEditingMode === 'default';
58
61
 
59
62
  useUploadMediaFromBlobURL( {
60
63
  url: temporaryURL,
@@ -251,7 +254,9 @@ function VideoEdit( {
251
254
  isSelected={ isSingleSelected }
252
255
  insertBlocksAfter={ insertBlocksAfter }
253
256
  label={ __( 'Video caption text' ) }
254
- showToolbarButton={ isSingleSelected }
257
+ showToolbarButton={
258
+ isSingleSelected && hasNonContentControls
259
+ }
255
260
  />
256
261
  </figure>
257
262
  </>