@wordpress/block-library 8.25.0 → 8.25.1-next.79a6196f.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 (250) hide show
  1. package/LICENSE.md +1 -1
  2. package/build/audio/edit.js +10 -12
  3. package/build/audio/edit.js.map +1 -1
  4. package/build/block/edit.js +81 -34
  5. package/build/block/edit.js.map +1 -1
  6. package/build/comments-title/deprecated.js +1 -1
  7. package/build/comments-title/index.js +1 -1
  8. package/build/cover/edit/inspector-controls.js +1 -1
  9. package/build/cover/edit/inspector-controls.js.map +1 -1
  10. package/build/cover/edit.native.js +1 -0
  11. package/build/cover/edit.native.js.map +1 -1
  12. package/build/embed/util.js +4 -4
  13. package/build/embed/util.js.map +1 -1
  14. package/build/file/edit.js +19 -27
  15. package/build/file/edit.js.map +1 -1
  16. package/build/gallery/edit.js +36 -17
  17. package/build/gallery/edit.js.map +1 -1
  18. package/build/gallery/gallery.js +3 -2
  19. package/build/gallery/gallery.js.map +1 -1
  20. package/build/gallery/index.js +4 -0
  21. package/build/gallery/index.js.map +1 -1
  22. package/build/gallery/transforms.js +4 -68
  23. package/build/gallery/transforms.js.map +1 -1
  24. package/build/group/index.js +5 -1
  25. package/build/group/index.js.map +1 -1
  26. package/build/image/deprecated.js +11 -0
  27. package/build/image/deprecated.js.map +1 -1
  28. package/build/image/edit.native.js +3 -0
  29. package/build/image/edit.native.js.map +1 -1
  30. package/build/image/image.js +22 -21
  31. package/build/image/image.js.map +1 -1
  32. package/build/image/view.js +7 -1
  33. package/build/image/view.js.map +1 -1
  34. package/build/list/edit.js +10 -15
  35. package/build/list/edit.js.map +1 -1
  36. package/build/list-item/edit.js +17 -2
  37. package/build/list-item/edit.js.map +1 -1
  38. package/build/list-item/hooks/use-enter.js +5 -3
  39. package/build/list-item/hooks/use-enter.js.map +1 -1
  40. package/build/list-item/hooks/use-enter.native.js +4 -3
  41. package/build/list-item/hooks/use-enter.native.js.map +1 -1
  42. package/build/list-item/hooks/use-indent-list-item.js +2 -3
  43. package/build/list-item/hooks/use-indent-list-item.js.map +1 -1
  44. package/build/list-item/hooks/use-merge.js +1 -1
  45. package/build/list-item/hooks/use-merge.js.map +1 -1
  46. package/build/list-item/hooks/use-outdent-list-item.js +3 -17
  47. package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
  48. package/build/list-item/hooks/use-space.js +8 -4
  49. package/build/list-item/hooks/use-space.js.map +1 -1
  50. package/build/media-text/media-container.native.js +3 -0
  51. package/build/media-text/media-container.native.js.map +1 -1
  52. package/build/navigation/constants.js +3 -1
  53. package/build/navigation/constants.js.map +1 -1
  54. package/build/navigation/edit/index.js +4 -0
  55. package/build/navigation/edit/index.js.map +1 -1
  56. package/build/navigation/view.js +25 -1
  57. package/build/navigation/view.js.map +1 -1
  58. package/build/paragraph/index.js +0 -1
  59. package/build/paragraph/index.js.map +1 -1
  60. package/build/paragraph/transforms.js +0 -1
  61. package/build/paragraph/transforms.js.map +1 -1
  62. package/build/pattern/edit.js +24 -2
  63. package/build/pattern/edit.js.map +1 -1
  64. package/build/pattern/recursion-detector.js +147 -0
  65. package/build/pattern/recursion-detector.js.map +1 -0
  66. package/build/post-featured-image/edit.js +19 -2
  67. package/build/post-featured-image/edit.js.map +1 -1
  68. package/build/post-featured-image/index.js +4 -0
  69. package/build/post-featured-image/index.js.map +1 -1
  70. package/build/query/edit/inspector-controls/index.js +3 -1
  71. package/build/query/edit/inspector-controls/index.js.map +1 -1
  72. package/build/query-pagination-numbers/index.js +1 -1
  73. package/build/search/edit.js +3 -5
  74. package/build/search/edit.js.map +1 -1
  75. package/build/search/index.js +0 -4
  76. package/build/search/index.js.map +1 -1
  77. package/build/site-logo/edit.js +7 -6
  78. package/build/site-logo/edit.js.map +1 -1
  79. package/build/spacer/edit.native.js +2 -2
  80. package/build/spacer/edit.native.js.map +1 -1
  81. package/build/tag-cloud/edit.js +5 -9
  82. package/build/tag-cloud/edit.js.map +1 -1
  83. package/build/utils/constants.js +16 -0
  84. package/build/utils/constants.js.map +1 -0
  85. package/build/video/edit.js +11 -8
  86. package/build/video/edit.js.map +1 -1
  87. package/build-module/audio/edit.js +10 -12
  88. package/build-module/audio/edit.js.map +1 -1
  89. package/build-module/block/edit.js +85 -38
  90. package/build-module/block/edit.js.map +1 -1
  91. package/build-module/comments-title/deprecated.js +1 -1
  92. package/build-module/comments-title/index.js +1 -1
  93. package/build-module/cover/edit/inspector-controls.js +1 -1
  94. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  95. package/build-module/cover/edit.native.js +1 -0
  96. package/build-module/cover/edit.native.js.map +1 -1
  97. package/build-module/embed/util.js +4 -4
  98. package/build-module/embed/util.js.map +1 -1
  99. package/build-module/file/edit.js +19 -27
  100. package/build-module/file/edit.js.map +1 -1
  101. package/build-module/gallery/edit.js +36 -17
  102. package/build-module/gallery/edit.js.map +1 -1
  103. package/build-module/gallery/gallery.js +3 -2
  104. package/build-module/gallery/gallery.js.map +1 -1
  105. package/build-module/gallery/index.js +4 -0
  106. package/build-module/gallery/index.js.map +1 -1
  107. package/build-module/gallery/transforms.js +4 -68
  108. package/build-module/gallery/transforms.js.map +1 -1
  109. package/build-module/group/index.js +5 -1
  110. package/build-module/group/index.js.map +1 -1
  111. package/build-module/image/deprecated.js +11 -0
  112. package/build-module/image/deprecated.js.map +1 -1
  113. package/build-module/image/edit.native.js +3 -0
  114. package/build-module/image/edit.native.js.map +1 -1
  115. package/build-module/image/image.js +17 -16
  116. package/build-module/image/image.js.map +1 -1
  117. package/build-module/image/view.js +7 -1
  118. package/build-module/image/view.js.map +1 -1
  119. package/build-module/list/edit.js +10 -15
  120. package/build-module/list/edit.js.map +1 -1
  121. package/build-module/list-item/edit.js +18 -3
  122. package/build-module/list-item/edit.js.map +1 -1
  123. package/build-module/list-item/hooks/use-enter.js +5 -3
  124. package/build-module/list-item/hooks/use-enter.js.map +1 -1
  125. package/build-module/list-item/hooks/use-enter.native.js +4 -3
  126. package/build-module/list-item/hooks/use-enter.native.js.map +1 -1
  127. package/build-module/list-item/hooks/use-indent-list-item.js +2 -3
  128. package/build-module/list-item/hooks/use-indent-list-item.js.map +1 -1
  129. package/build-module/list-item/hooks/use-merge.js +1 -1
  130. package/build-module/list-item/hooks/use-merge.js.map +1 -1
  131. package/build-module/list-item/hooks/use-outdent-list-item.js +3 -17
  132. package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
  133. package/build-module/list-item/hooks/use-space.js +8 -4
  134. package/build-module/list-item/hooks/use-space.js.map +1 -1
  135. package/build-module/media-text/media-container.native.js +3 -0
  136. package/build-module/media-text/media-container.native.js.map +1 -1
  137. package/build-module/navigation/constants.js +1 -0
  138. package/build-module/navigation/constants.js.map +1 -1
  139. package/build-module/navigation/edit/index.js +5 -1
  140. package/build-module/navigation/edit/index.js.map +1 -1
  141. package/build-module/navigation/view.js +25 -1
  142. package/build-module/navigation/view.js.map +1 -1
  143. package/build-module/paragraph/index.js +0 -1
  144. package/build-module/paragraph/index.js.map +1 -1
  145. package/build-module/paragraph/transforms.js +0 -1
  146. package/build-module/paragraph/transforms.js.map +1 -1
  147. package/build-module/pattern/edit.js +26 -4
  148. package/build-module/pattern/edit.js.map +1 -1
  149. package/build-module/pattern/recursion-detector.js +139 -0
  150. package/build-module/pattern/recursion-detector.js.map +1 -0
  151. package/build-module/post-featured-image/edit.js +19 -2
  152. package/build-module/post-featured-image/edit.js.map +1 -1
  153. package/build-module/post-featured-image/index.js +4 -0
  154. package/build-module/post-featured-image/index.js.map +1 -1
  155. package/build-module/query/edit/inspector-controls/index.js +3 -1
  156. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  157. package/build-module/query-pagination-numbers/index.js +1 -1
  158. package/build-module/search/edit.js +3 -5
  159. package/build-module/search/edit.js.map +1 -1
  160. package/build-module/search/index.js +0 -4
  161. package/build-module/search/index.js.map +1 -1
  162. package/build-module/site-logo/edit.js +7 -6
  163. package/build-module/site-logo/edit.js.map +1 -1
  164. package/build-module/spacer/edit.native.js +2 -2
  165. package/build-module/spacer/edit.native.js.map +1 -1
  166. package/build-module/tag-cloud/edit.js +6 -10
  167. package/build-module/tag-cloud/edit.js.map +1 -1
  168. package/build-module/utils/constants.js +9 -0
  169. package/build-module/utils/constants.js.map +1 -0
  170. package/build-module/video/edit.js +11 -8
  171. package/build-module/video/edit.js.map +1 -1
  172. package/build-style/button/editor-rtl.css +0 -37
  173. package/build-style/button/editor.css +0 -37
  174. package/build-style/button/style-rtl.css +6 -6
  175. package/build-style/button/style.css +6 -6
  176. package/build-style/editor-rtl.css +2 -44
  177. package/build-style/editor.css +2 -44
  178. package/build-style/navigation/editor-rtl.css +2 -4
  179. package/build-style/navigation/editor.css +2 -4
  180. package/build-style/navigation/style-rtl.css +14 -18
  181. package/build-style/navigation/style.css +14 -18
  182. package/build-style/search/style-rtl.css +26 -27
  183. package/build-style/search/style.css +26 -27
  184. package/build-style/style-rtl.css +46 -51
  185. package/build-style/style.css +46 -51
  186. package/build-style/table/editor-rtl.css +0 -3
  187. package/build-style/table/editor.css +0 -3
  188. package/package.json +32 -32
  189. package/src/audio/edit.js +19 -19
  190. package/src/audio/test/__snapshots__/edit.native.js.snap +12 -0
  191. package/src/audio/test/edit.native.js +29 -0
  192. package/src/block/edit.js +120 -66
  193. package/src/button/editor.scss +0 -43
  194. package/src/button/style.scss +6 -6
  195. package/src/buttons/test/__snapshots__/edit.native.js.snap +6 -0
  196. package/src/buttons/test/edit.native.js +49 -0
  197. package/src/comments-title/block.json +1 -1
  198. package/src/cover/edit/inspector-controls.js +1 -1
  199. package/src/cover/edit.native.js +1 -0
  200. package/src/embed/util.js +2 -2
  201. package/src/file/edit.js +17 -24
  202. package/src/gallery/block.json +4 -0
  203. package/src/gallery/edit.js +69 -42
  204. package/src/gallery/gallery.js +4 -1
  205. package/src/gallery/index.php +15 -0
  206. package/src/gallery/transforms.js +2 -55
  207. package/src/group/block.json +5 -1
  208. package/src/image/deprecated.js +8 -0
  209. package/src/image/edit.native.js +3 -0
  210. package/src/image/image.js +54 -35
  211. package/src/image/index.php +1 -6
  212. package/src/image/view.js +5 -2
  213. package/src/list/edit.js +27 -35
  214. package/src/list-item/edit.js +18 -2
  215. package/src/list-item/hooks/use-enter.js +63 -62
  216. package/src/list-item/hooks/use-enter.native.js +9 -5
  217. package/src/list-item/hooks/use-indent-list-item.js +43 -53
  218. package/src/list-item/hooks/use-merge.js +1 -1
  219. package/src/list-item/hooks/use-outdent-list-item.js +50 -69
  220. package/src/list-item/hooks/use-space.js +7 -4
  221. package/src/media-text/media-container.native.js +3 -1
  222. package/src/navigation/constants.js +2 -0
  223. package/src/navigation/edit/index.js +11 -1
  224. package/src/navigation/editor.scss +1 -1
  225. package/src/navigation/style.scss +18 -16
  226. package/src/navigation/view.js +29 -3
  227. package/src/paragraph/block.json +0 -1
  228. package/src/paragraph/test/__snapshots__/edit.native.js.snap +12 -0
  229. package/src/paragraph/test/edit.native.js +114 -0
  230. package/src/pattern/edit.js +35 -3
  231. package/src/pattern/index.php +16 -0
  232. package/src/pattern/recursion-detector.js +145 -0
  233. package/src/pattern/test/index.js +74 -0
  234. package/src/post-featured-image/block.json +4 -0
  235. package/src/post-featured-image/edit.js +32 -1
  236. package/src/post-featured-image/index.php +31 -0
  237. package/src/query/edit/inspector-controls/index.js +2 -0
  238. package/src/query-pagination-numbers/block.json +1 -1
  239. package/src/search/block.json +0 -4
  240. package/src/search/edit.js +2 -8
  241. package/src/search/index.php +3 -7
  242. package/src/search/style.scss +27 -29
  243. package/src/site-logo/edit.js +3 -4
  244. package/src/social-link/index.php +1 -1
  245. package/src/spacer/edit.native.js +4 -2
  246. package/src/table/editor.scss +0 -3
  247. package/src/tag-cloud/edit.js +7 -7
  248. package/src/template-part/index.php +6 -0
  249. package/src/utils/constants.js +8 -0
  250. package/src/video/edit.js +29 -27
@@ -36,7 +36,6 @@ function render_block_core_search( $attributes, $content, $block ) {
36
36
  $show_button = ( ! empty( $attributes['buttonPosition'] ) && 'no-button' === $attributes['buttonPosition'] ) ? false : true;
37
37
  $button_position = $show_button ? $attributes['buttonPosition'] : null;
38
38
  $query_params = ( ! empty( $attributes['query'] ) ) ? $attributes['query'] : array();
39
- $button_behavior = ( ! empty( $attributes['buttonBehavior'] ) ) ? $attributes['buttonBehavior'] : 'default';
40
39
  $button = '';
41
40
  $query_params_markup = '';
42
41
  $inline_styles = styles_for_block_core_search( $attributes );
@@ -78,7 +77,7 @@ function render_block_core_search( $attributes, $content, $block ) {
78
77
  $input->set_attribute( 'value', get_search_query() );
79
78
  $input->set_attribute( 'placeholder', $attributes['placeholder'] );
80
79
 
81
- $is_expandable_searchfield = 'button-only' === $button_position && 'expand-searchfield' === $button_behavior;
80
+ $is_expandable_searchfield = 'button-only' === $button_position;
82
81
  if ( $is_expandable_searchfield ) {
83
82
  $input->set_attribute( 'data-wp-bind--aria-hidden', '!context.isSearchInputVisible' );
84
83
  $input->set_attribute( 'data-wp-bind--tabindex', 'state.tabindex' );
@@ -154,7 +153,7 @@ function render_block_core_search( $attributes, $content, $block ) {
154
153
 
155
154
  if ( $button->next_tag() ) {
156
155
  $button->add_class( implode( ' ', $button_classes ) );
157
- if ( 'expand-searchfield' === $attributes['buttonBehavior'] && 'button-only' === $attributes['buttonPosition'] ) {
156
+ if ( 'button-only' === $attributes['buttonPosition'] ) {
158
157
  $button->set_attribute( 'data-wp-bind--aria-label', 'state.ariaLabel' );
159
158
  $button->set_attribute( 'data-wp-bind--aria-controls', 'state.ariaControls' );
160
159
  $button->set_attribute( 'data-wp-bind--aria-expanded', 'context.isSearchInputVisible' );
@@ -249,10 +248,7 @@ function classnames_for_block_core_search( $attributes ) {
249
248
  }
250
249
 
251
250
  if ( 'button-only' === $attributes['buttonPosition'] ) {
252
- $classnames[] = 'wp-block-search__button-only';
253
- if ( ! empty( $attributes['buttonBehavior'] ) && 'expand-searchfield' === $attributes['buttonBehavior'] ) {
254
- $classnames[] = 'wp-block-search__button-behavior-expand wp-block-search__searchfield-hidden';
255
- }
251
+ $classnames[] = 'wp-block-search__button-only wp-block-search__searchfield-hidden';
256
252
  }
257
253
  }
258
254
 
@@ -62,35 +62,7 @@ $button-spacing-y: math.div($grid-unit-15, 2); // 6px
62
62
  .wp-block-search__button[aria-expanded="true"] {
63
63
  max-width: calc(100% - 100px);
64
64
  }
65
- }
66
-
67
- // We are lowering the specificity so that the button element can override the rule for the button inside the search block.
68
- :where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) {
69
- padding: $grid-unit-05;
70
- border: 1px solid $gray-600;
71
- box-sizing: border-box;
72
-
73
- .wp-block-search__input {
74
- border-radius: 0;
75
- border: none;
76
- padding: 0 $grid-unit-05;
77
-
78
- &:focus {
79
- outline: none;
80
- }
81
- }
82
-
83
- // For lower specificity.
84
- :where(.wp-block-search__button) {
85
- padding: $grid-unit-05 $grid-unit-10;
86
- }
87
- }
88
-
89
- .wp-block-search.aligncenter .wp-block-search__inside-wrapper {
90
- margin: auto;
91
- }
92
65
 
93
- .wp-block-search__button-behavior-expand {
94
66
  .wp-block-search__inside-wrapper {
95
67
  transition-property: width;
96
68
  min-width: 0 !important;
@@ -123,7 +95,33 @@ $button-spacing-y: math.div($grid-unit-15, 2); // 6px
123
95
  }
124
96
  }
125
97
 
126
- .wp-block[data-align="right"] .wp-block-search__button-behavior-expand {
98
+ // We are lowering the specificity so that the button element can override the rule for the button inside the search block.
99
+ :where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) {
100
+ padding: $grid-unit-05;
101
+ border: 1px solid $gray-600;
102
+ box-sizing: border-box;
103
+
104
+ .wp-block-search__input {
105
+ border-radius: 0;
106
+ border: none;
107
+ padding: 0 $grid-unit-05;
108
+
109
+ &:focus {
110
+ outline: none;
111
+ }
112
+ }
113
+
114
+ // For lower specificity.
115
+ :where(.wp-block-search__button) {
116
+ padding: $grid-unit-05 $grid-unit-10;
117
+ }
118
+ }
119
+
120
+ .wp-block-search.aligncenter .wp-block-search__inside-wrapper {
121
+ margin: auto;
122
+ }
123
+
124
+ .wp-block[data-align="right"] .wp-block-search.wp-block-search__button-only {
127
125
  .wp-block-search__inside-wrapper {
128
126
  float: right;
129
127
  }
@@ -412,7 +412,6 @@ export default function LogoEdit( {
412
412
  siteIconId,
413
413
  mediaItemData,
414
414
  isRequestingMediaItem,
415
- mediaUpload,
416
415
  } = useSelect( ( select ) => {
417
416
  const { canUser, getEntityRecord, getEditedEntityRecord } =
418
417
  select( coreStore );
@@ -444,9 +443,9 @@ export default function LogoEdit( {
444
443
  mediaItemData: mediaItem,
445
444
  isRequestingMediaItem: _isRequestingMediaItem,
446
445
  siteIconId: _siteIconId,
447
- mediaUpload: select( blockEditorStore ).getSettings().mediaUpload,
448
446
  };
449
447
  }, [] );
448
+ const { getSettings } = useSelect( blockEditorStore );
450
449
 
451
450
  const { editEntityRecord } = useDispatch( coreStore );
452
451
 
@@ -511,8 +510,8 @@ export default function LogoEdit( {
511
510
  };
512
511
 
513
512
  const onFilesDrop = ( filesList ) => {
514
- mediaUpload( {
515
- allowedTypes: [ 'image' ],
513
+ getSettings().mediaUpload( {
514
+ allowedTypes: ALLOWED_MEDIA_TYPES,
516
515
  filesList,
517
516
  onFileChange( [ image ] ) {
518
517
  if ( isBlobURL( image?.url ) ) {
@@ -33,7 +33,7 @@ function render_block_core_social_link( $attributes, $content, $block ) {
33
33
  * The `is_email` returns false for emails with schema.
34
34
  */
35
35
  if ( is_email( $url ) ) {
36
- $url = 'mailto:' . $url;
36
+ $url = 'mailto:' . antispambot( $url );
37
37
  }
38
38
 
39
39
  /**
@@ -6,14 +6,16 @@ import { View, useWindowDimensions } from 'react-native';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
- import { useConvertUnitToMobile } from '@wordpress/components';
9
+ import {
10
+ useConvertUnitToMobile,
11
+ getPxFromCssUnit,
12
+ } from '@wordpress/components';
10
13
  import { withPreferredColorScheme } from '@wordpress/compose';
11
14
  import {
12
15
  InspectorControls,
13
16
  isValueSpacingPreset,
14
17
  useSettings,
15
18
  getCustomValueFromPreset,
16
- getPxFromCssUnit,
17
19
  } from '@wordpress/block-editor';
18
20
  import { useEffect } from '@wordpress/element';
19
21
 
@@ -1,7 +1,4 @@
1
1
  .wp-block-table {
2
- // Remove default <figure> style.
3
- margin: 0;
4
-
5
2
  .wp-block[data-align="left"] > &,
6
3
  .wp-block[data-align="right"] > &,
7
4
  .wp-block[data-align="center"] > & {
@@ -13,7 +13,7 @@ import {
13
13
  __experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,
14
14
  Disabled,
15
15
  } from '@wordpress/components';
16
- import { withSelect } from '@wordpress/data';
16
+ import { useSelect } from '@wordpress/data';
17
17
  import { __ } from '@wordpress/i18n';
18
18
  import {
19
19
  InspectorControls,
@@ -40,7 +40,7 @@ const MAX_TAGS = 100;
40
40
  const MIN_FONT_SIZE = 0.1;
41
41
  const MAX_FONT_SIZE = 100;
42
42
 
43
- function TagCloudEdit( { attributes, setAttributes, taxonomies } ) {
43
+ function TagCloudEdit( { attributes, setAttributes } ) {
44
44
  const {
45
45
  taxonomy,
46
46
  showTagCounts,
@@ -53,6 +53,10 @@ function TagCloudEdit( { attributes, setAttributes, taxonomies } ) {
53
53
  const units = useCustomUnits( {
54
54
  availableUnits: availableUnits || [ '%', 'px', 'em', 'rem' ],
55
55
  } );
56
+ const taxonomies = useSelect(
57
+ ( select ) => select( coreStore ).getTaxonomies( { per_page: -1 } ),
58
+ []
59
+ );
56
60
 
57
61
  const getTaxonomyOptions = () => {
58
62
  const selectOption = {
@@ -174,8 +178,4 @@ function TagCloudEdit( { attributes, setAttributes, taxonomies } ) {
174
178
  );
175
179
  }
176
180
 
177
- export default withSelect( ( select ) => {
178
- return {
179
- taxonomies: select( coreStore ).getTaxonomies( { per_page: -1 } ),
180
- };
181
- } )( TagCloudEdit );
181
+ export default TagCloudEdit;
@@ -70,6 +70,12 @@ function render_block_core_template_part( $attributes ) {
70
70
  if ( isset( $block_template->area ) ) {
71
71
  $area = $block_template->area;
72
72
  }
73
+
74
+ // Needed for the `render_block_core_template_part_file` and `render_block_core_template_part_none` actions below.
75
+ $block_template_file = _get_block_template_file( 'wp_template_part', $attributes['slug'] );
76
+ if ( $block_template_file ) {
77
+ $template_part_file_path = $block_template_file['path'];
78
+ }
73
79
  }
74
80
 
75
81
  if ( '' !== $content && null !== $content ) {
@@ -0,0 +1,8 @@
1
+ // The following dropdown menu props aim to provide a consistent offset and
2
+ // placement for ToolsPanel menus for block controls to match color popovers.
3
+ export const TOOLSPANEL_DROPDOWNMENU_PROPS = {
4
+ popoverProps: {
5
+ placement: 'left-start',
6
+ offset: 259, // Inner sidebar width (248px) - button width (24px) - border (1px) + padding (16px) + spacing (20px)
7
+ },
8
+ };
package/src/video/edit.js CHANGED
@@ -63,7 +63,7 @@ const ALLOWED_MEDIA_TYPES = [ 'video' ];
63
63
  const VIDEO_POSTER_ALLOWED_MEDIA_TYPES = [ 'image' ];
64
64
 
65
65
  function VideoEdit( {
66
- isSelected,
66
+ isSelected: isSingleSelected,
67
67
  attributes,
68
68
  className,
69
69
  setAttributes,
@@ -75,16 +75,13 @@ function VideoEdit( {
75
75
  const posterImageButton = useRef();
76
76
  const { id, controls, poster, src, tracks } = attributes;
77
77
  const isTemporaryVideo = ! id && isBlobURL( src );
78
- const mediaUpload = useSelect(
79
- ( select ) => select( blockEditorStore ).getSettings().mediaUpload,
80
- []
81
- );
78
+ const { getSettings } = useSelect( blockEditorStore );
82
79
 
83
80
  useEffect( () => {
84
81
  if ( ! id && isBlobURL( src ) ) {
85
82
  const file = getBlobByURL( src );
86
83
  if ( file ) {
87
- mediaUpload( {
84
+ getSettings().mediaUpload( {
88
85
  filesList: [ file ],
89
86
  onFileChange: ( [ media ] ) => onSelectVideo( media ),
90
87
  onError: onUploadError,
@@ -185,25 +182,29 @@ function VideoEdit( {
185
182
 
186
183
  return (
187
184
  <>
188
- <BlockControls>
189
- <TracksEditor
190
- tracks={ tracks }
191
- onChange={ ( newTracks ) => {
192
- setAttributes( { tracks: newTracks } );
193
- } }
194
- />
195
- </BlockControls>
196
- <BlockControls group="other">
197
- <MediaReplaceFlow
198
- mediaId={ id }
199
- mediaURL={ src }
200
- allowedTypes={ ALLOWED_MEDIA_TYPES }
201
- accept="video/*"
202
- onSelect={ onSelectVideo }
203
- onSelectURL={ onSelectURL }
204
- onError={ onUploadError }
205
- />
206
- </BlockControls>
185
+ { isSingleSelected && (
186
+ <>
187
+ <BlockControls>
188
+ <TracksEditor
189
+ tracks={ tracks }
190
+ onChange={ ( newTracks ) => {
191
+ setAttributes( { tracks: newTracks } );
192
+ } }
193
+ />
194
+ </BlockControls>
195
+ <BlockControls group="other">
196
+ <MediaReplaceFlow
197
+ mediaId={ id }
198
+ mediaURL={ src }
199
+ allowedTypes={ ALLOWED_MEDIA_TYPES }
200
+ accept="video/*"
201
+ onSelect={ onSelectVideo }
202
+ onSelectURL={ onSelectURL }
203
+ onError={ onUploadError }
204
+ />
205
+ </BlockControls>
206
+ </>
207
+ ) }
207
208
  <InspectorControls>
208
209
  <PanelBody title={ __( 'Settings' ) }>
209
210
  <VideoCommonSettings
@@ -267,7 +268,7 @@ function VideoEdit( {
267
268
  so the user clicking on it won't play the
268
269
  video when the controls are enabled.
269
270
  */ }
270
- <Disabled isDisabled={ ! isSelected }>
271
+ <Disabled isDisabled={ ! isSingleSelected }>
271
272
  <video
272
273
  controls={ controls }
273
274
  poster={ poster }
@@ -281,9 +282,10 @@ function VideoEdit( {
281
282
  <Caption
282
283
  attributes={ attributes }
283
284
  setAttributes={ setAttributes }
284
- isSelected={ isSelected }
285
+ isSelected={ isSingleSelected }
285
286
  insertBlocksAfter={ insertBlocksAfter }
286
287
  label={ __( 'Video caption text' ) }
288
+ showToolbarButton={ isSingleSelected }
287
289
  />
288
290
  </figure>
289
291
  </>