@wordpress/block-library 8.20.1 → 8.21.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 (277) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +12 -0
  3. package/build/block/index.js +2 -1
  4. package/build/block/index.js.map +1 -1
  5. package/build/code/edit.native.js +8 -2
  6. package/build/code/edit.native.js.map +1 -1
  7. package/build/cover/deprecated.js +110 -1
  8. package/build/cover/deprecated.js.map +1 -1
  9. package/build/cover/edit/index.js +9 -3
  10. package/build/cover/edit/index.js.map +1 -1
  11. package/build/cover/edit/inspector-controls.js +1 -2
  12. package/build/cover/edit/inspector-controls.js.map +1 -1
  13. package/build/cover/index.js +0 -3
  14. package/build/cover/index.js.map +1 -1
  15. package/build/cover/save.js +2 -1
  16. package/build/cover/save.js.map +1 -1
  17. package/build/cover/shared.js +1 -1
  18. package/build/cover/shared.js.map +1 -1
  19. package/build/footnotes/index.js +1 -0
  20. package/build/footnotes/index.js.map +1 -1
  21. package/build/form/edit.js +138 -0
  22. package/build/form/edit.js.map +1 -0
  23. package/build/form/index.js +92 -0
  24. package/build/form/index.js.map +1 -0
  25. package/build/form/init.js +13 -0
  26. package/build/form/init.js.map +1 -0
  27. package/build/form/save.js +28 -0
  28. package/build/form/save.js.map +1 -0
  29. package/build/form/utils.js +24 -0
  30. package/build/form/utils.js.map +1 -0
  31. package/build/form/variations.js +95 -0
  32. package/build/form/variations.js.map +1 -0
  33. package/build/form/view.js +42 -0
  34. package/build/form/view.js.map +1 -0
  35. package/build/form-input/edit.js +124 -0
  36. package/build/form-input/edit.js.map +1 -0
  37. package/build/form-input/index.js +105 -0
  38. package/build/form-input/index.js.map +1 -0
  39. package/build/form-input/init.js +13 -0
  40. package/build/form-input/init.js.map +1 -0
  41. package/build/form-input/save.js +87 -0
  42. package/build/form-input/save.js.map +1 -0
  43. package/build/form-input/variations.js +93 -0
  44. package/build/form-input/variations.js.map +1 -0
  45. package/build/form-submission-notification/edit.js +59 -0
  46. package/build/form-submission-notification/edit.js.map +1 -0
  47. package/build/form-submission-notification/index.js +56 -0
  48. package/build/form-submission-notification/index.js.map +1 -0
  49. package/build/form-submission-notification/init.js +13 -0
  50. package/build/form-submission-notification/init.js.map +1 -0
  51. package/build/form-submission-notification/save.js +33 -0
  52. package/build/form-submission-notification/save.js.map +1 -0
  53. package/build/form-submission-notification/variations.js +63 -0
  54. package/build/form-submission-notification/variations.js.map +1 -0
  55. package/build/form-submit-button/edit.js +32 -0
  56. package/build/form-submit-button/edit.js.map +1 -0
  57. package/build/form-submit-button/index.js +44 -0
  58. package/build/form-submit-button/index.js.map +1 -0
  59. package/build/form-submit-button/init.js +13 -0
  60. package/build/form-submit-button/init.js.map +1 -0
  61. package/build/form-submit-button/save.js +22 -0
  62. package/build/form-submit-button/save.js.map +1 -0
  63. package/build/group/index.js +0 -1
  64. package/build/group/index.js.map +1 -1
  65. package/build/heading/index.js +3 -2
  66. package/build/heading/index.js.map +1 -1
  67. package/build/image/image.js +4 -1
  68. package/build/image/image.js.map +1 -1
  69. package/build/image/view.js +82 -40
  70. package/build/image/view.js.map +1 -1
  71. package/build/index.js +10 -0
  72. package/build/index.js.map +1 -1
  73. package/build/latest-posts/edit.js +6 -2
  74. package/build/latest-posts/edit.js.map +1 -1
  75. package/build/list-item/hooks/use-merge.js +15 -15
  76. package/build/list-item/hooks/use-merge.js.map +1 -1
  77. package/build/lock-unlock.js +1 -1
  78. package/build/lock-unlock.js.map +1 -1
  79. package/build/missing/edit.native.js +14 -62
  80. package/build/missing/edit.native.js.map +1 -1
  81. package/build/navigation/edit/index.js +0 -1
  82. package/build/navigation/edit/index.js.map +1 -1
  83. package/build/navigation/index.js +2 -1
  84. package/build/navigation/index.js.map +1 -1
  85. package/build/navigation/view.js +27 -5
  86. package/build/navigation/view.js.map +1 -1
  87. package/build/page-list-item/edit.js +3 -1
  88. package/build/page-list-item/edit.js.map +1 -1
  89. package/build/paragraph/index.js +7 -0
  90. package/build/paragraph/index.js.map +1 -1
  91. package/build/pattern/index.js +2 -1
  92. package/build/pattern/index.js.map +1 -1
  93. package/build/template-part/index.js +2 -1
  94. package/build/template-part/index.js.map +1 -1
  95. package/build-module/block/index.js +2 -1
  96. package/build-module/block/index.js.map +1 -1
  97. package/build-module/code/edit.native.js +8 -2
  98. package/build-module/code/edit.native.js.map +1 -1
  99. package/build-module/cover/deprecated.js +110 -1
  100. package/build-module/cover/deprecated.js.map +1 -1
  101. package/build-module/cover/edit/index.js +9 -3
  102. package/build-module/cover/edit/index.js.map +1 -1
  103. package/build-module/cover/edit/inspector-controls.js +1 -2
  104. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  105. package/build-module/cover/index.js +0 -3
  106. package/build-module/cover/index.js.map +1 -1
  107. package/build-module/cover/save.js +2 -1
  108. package/build-module/cover/save.js.map +1 -1
  109. package/build-module/cover/shared.js +1 -1
  110. package/build-module/cover/shared.js.map +1 -1
  111. package/build-module/footnotes/index.js +1 -0
  112. package/build-module/footnotes/index.js.map +1 -1
  113. package/build-module/form/edit.js +130 -0
  114. package/build-module/form/edit.js.map +1 -0
  115. package/build-module/form/index.js +82 -0
  116. package/build-module/form/index.js.map +1 -0
  117. package/build-module/form/init.js +6 -0
  118. package/build-module/form/init.js.map +1 -0
  119. package/build-module/form/save.js +20 -0
  120. package/build-module/form/save.js.map +1 -0
  121. package/build-module/form/utils.js +15 -0
  122. package/build-module/form/utils.js.map +1 -0
  123. package/build-module/form/variations.js +86 -0
  124. package/build-module/form/variations.js.map +1 -0
  125. package/build-module/form/view.js +40 -0
  126. package/build-module/form/view.js.map +1 -0
  127. package/build-module/form-input/edit.js +115 -0
  128. package/build-module/form-input/edit.js.map +1 -0
  129. package/build-module/form-input/index.js +95 -0
  130. package/build-module/form-input/index.js.map +1 -0
  131. package/build-module/form-input/init.js +6 -0
  132. package/build-module/form-input/init.js.map +1 -0
  133. package/build-module/form-input/save.js +80 -0
  134. package/build-module/form-input/save.js.map +1 -0
  135. package/build-module/form-input/variations.js +85 -0
  136. package/build-module/form-input/variations.js.map +1 -0
  137. package/build-module/form-submission-notification/edit.js +50 -0
  138. package/build-module/form-submission-notification/edit.js.map +1 -0
  139. package/build-module/form-submission-notification/index.js +47 -0
  140. package/build-module/form-submission-notification/index.js.map +1 -0
  141. package/build-module/form-submission-notification/init.js +6 -0
  142. package/build-module/form-submission-notification/init.js.map +1 -0
  143. package/build-module/form-submission-notification/save.js +25 -0
  144. package/build-module/form-submission-notification/save.js.map +1 -0
  145. package/build-module/form-submission-notification/variations.js +55 -0
  146. package/build-module/form-submission-notification/variations.js.map +1 -0
  147. package/build-module/form-submit-button/edit.js +24 -0
  148. package/build-module/form-submit-button/edit.js.map +1 -0
  149. package/build-module/form-submit-button/index.js +34 -0
  150. package/build-module/form-submit-button/index.js.map +1 -0
  151. package/build-module/form-submit-button/init.js +6 -0
  152. package/build-module/form-submit-button/init.js.map +1 -0
  153. package/build-module/form-submit-button/save.js +14 -0
  154. package/build-module/form-submit-button/save.js.map +1 -0
  155. package/build-module/group/index.js +0 -1
  156. package/build-module/group/index.js.map +1 -1
  157. package/build-module/heading/index.js +3 -2
  158. package/build-module/heading/index.js.map +1 -1
  159. package/build-module/image/image.js +4 -1
  160. package/build-module/image/image.js.map +1 -1
  161. package/build-module/image/view.js +82 -40
  162. package/build-module/image/view.js.map +1 -1
  163. package/build-module/index.js +10 -0
  164. package/build-module/index.js.map +1 -1
  165. package/build-module/latest-posts/edit.js +6 -2
  166. package/build-module/latest-posts/edit.js.map +1 -1
  167. package/build-module/list-item/hooks/use-merge.js +15 -15
  168. package/build-module/list-item/hooks/use-merge.js.map +1 -1
  169. package/build-module/lock-unlock.js +1 -1
  170. package/build-module/lock-unlock.js.map +1 -1
  171. package/build-module/missing/edit.native.js +17 -65
  172. package/build-module/missing/edit.native.js.map +1 -1
  173. package/build-module/navigation/edit/index.js +0 -1
  174. package/build-module/navigation/edit/index.js.map +1 -1
  175. package/build-module/navigation/index.js +2 -1
  176. package/build-module/navigation/index.js.map +1 -1
  177. package/build-module/navigation/view.js +27 -5
  178. package/build-module/navigation/view.js.map +1 -1
  179. package/build-module/page-list-item/edit.js +3 -1
  180. package/build-module/page-list-item/edit.js.map +1 -1
  181. package/build-module/paragraph/index.js +7 -0
  182. package/build-module/paragraph/index.js.map +1 -1
  183. package/build-module/pattern/index.js +2 -1
  184. package/build-module/pattern/index.js.map +1 -1
  185. package/build-module/template-part/index.js +2 -1
  186. package/build-module/template-part/index.js.map +1 -1
  187. package/build-style/editor-rtl.css +50 -0
  188. package/build-style/editor.css +50 -0
  189. package/build-style/form-input/editor-rtl.css +106 -0
  190. package/build-style/form-input/editor.css +106 -0
  191. package/build-style/form-input/style-rtl.css +135 -0
  192. package/build-style/form-input/style.css +135 -0
  193. package/build-style/form-submission-notification/editor-rtl.css +118 -0
  194. package/build-style/form-submission-notification/editor.css +118 -0
  195. package/build-style/form-submit-button/style-rtl.css +91 -0
  196. package/build-style/form-submit-button/style.css +91 -0
  197. package/build-style/image/style-rtl.css +39 -5
  198. package/build-style/image/style.css +39 -5
  199. package/build-style/query/style-rtl.css +0 -10
  200. package/build-style/query/style.css +0 -10
  201. package/build-style/style-rtl.css +87 -5
  202. package/build-style/style.css +87 -5
  203. package/package.json +32 -32
  204. package/src/block/block.json +2 -1
  205. package/src/code/edit.native.js +15 -1
  206. package/src/cover/block.json +0 -3
  207. package/src/cover/deprecated.js +151 -1
  208. package/src/cover/edit/index.js +12 -3
  209. package/src/cover/edit/inspector-controls.js +19 -25
  210. package/src/cover/save.js +2 -1
  211. package/src/cover/shared.js +1 -1
  212. package/src/editor.scss +2 -0
  213. package/src/footnotes/block.json +1 -0
  214. package/src/form/block.json +60 -0
  215. package/src/form/edit.js +179 -0
  216. package/src/form/index.js +20 -0
  217. package/src/form/index.php +214 -0
  218. package/src/form/init.js +6 -0
  219. package/src/form/save.js +20 -0
  220. package/src/form/utils.js +39 -0
  221. package/src/form/variations.js +139 -0
  222. package/src/form/view.js +41 -0
  223. package/src/form-input/block.json +73 -0
  224. package/src/form-input/edit.js +151 -0
  225. package/src/form-input/editor.scss +24 -0
  226. package/src/form-input/index.js +20 -0
  227. package/src/form-input/index.php +45 -0
  228. package/src/form-input/init.js +6 -0
  229. package/src/form-input/save.js +83 -0
  230. package/src/form-input/style.scss +61 -0
  231. package/src/form-input/variations.js +82 -0
  232. package/src/form-submission-notification/block.json +19 -0
  233. package/src/form-submission-notification/edit.js +63 -0
  234. package/src/form-submission-notification/editor.scss +45 -0
  235. package/src/form-submission-notification/index.js +26 -0
  236. package/src/form-submission-notification/index.php +48 -0
  237. package/src/form-submission-notification/init.js +6 -0
  238. package/src/form-submission-notification/save.js +28 -0
  239. package/src/form-submission-notification/variations.js +59 -0
  240. package/src/form-submit-button/block.json +14 -0
  241. package/src/form-submit-button/edit.js +33 -0
  242. package/src/form-submit-button/index.js +18 -0
  243. package/src/form-submit-button/init.js +6 -0
  244. package/src/form-submit-button/save.js +14 -0
  245. package/src/form-submit-button/style.scss +3 -0
  246. package/src/group/block.json +0 -1
  247. package/src/heading/index.js +4 -2
  248. package/src/image/image.js +10 -0
  249. package/src/image/index.php +128 -82
  250. package/src/image/style.scss +49 -5
  251. package/src/image/view.js +100 -52
  252. package/src/index.js +10 -0
  253. package/src/latest-posts/edit.js +11 -2
  254. package/src/latest-posts/index.php +17 -8
  255. package/src/list-item/hooks/use-merge.js +20 -23
  256. package/src/lock-unlock.js +1 -1
  257. package/src/missing/edit.native.js +17 -115
  258. package/src/missing/style.native.scss +0 -67
  259. package/src/missing/test/edit-integration.native.js +135 -49
  260. package/src/missing/test/edit.native.js +0 -41
  261. package/src/navigation/block.json +2 -1
  262. package/src/navigation/edit/index.js +0 -1
  263. package/src/navigation/index.php +28 -8
  264. package/src/navigation/view.js +25 -6
  265. package/src/page-list-item/edit.js +2 -0
  266. package/src/paragraph/index.js +10 -0
  267. package/src/pattern/block.json +2 -1
  268. package/src/pattern/index.php +0 -3
  269. package/src/post-navigation-link/index.php +2 -1
  270. package/src/preformatted/test/edit.native.js +38 -0
  271. package/src/query/index.php +3 -2
  272. package/src/query/style.scss +0 -11
  273. package/src/search/index.php +0 -4
  274. package/src/style.scss +1 -0
  275. package/src/template-part/block.json +2 -1
  276. package/src/template-part/index.php +4 -7
  277. package/src/verse/test/edit.native.js +37 -0
@@ -0,0 +1,45 @@
1
+ .wp-block-form-submission-notification {
2
+ > * {
3
+ opacity: 0.25;
4
+ border: 1px dashed;
5
+ box-sizing: border-box;
6
+ background: repeating-linear-gradient(45deg, transparent, transparent 5px, currentColor 5px, currentColor 6px);
7
+ }
8
+
9
+ &.is-selected,
10
+ &:has(.is-selected) {
11
+ > * {
12
+ opacity: 1;
13
+ background: none;
14
+ }
15
+
16
+ &::after {
17
+ display: none !important;
18
+ }
19
+ }
20
+
21
+ &::after {
22
+ display: flex;
23
+ position: absolute;
24
+ width: 100%;
25
+ height: 100%;
26
+ top: 0;
27
+ left: 0;
28
+ justify-content: center;
29
+ align-items: center;
30
+ font-size: 1.1em;
31
+ // font-weight: bold;
32
+ }
33
+
34
+ &.form-notification-type-success {
35
+ &::after {
36
+ content: attr(data-message-success);
37
+ }
38
+ }
39
+
40
+ &.form-notification-type-error {
41
+ &::after {
42
+ content: attr(data-message-error);
43
+ }
44
+ }
45
+ }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { group as icon } from '@wordpress/icons';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import initBlock from '../utils/init-block';
10
+ import edit from './edit';
11
+ import metadata from './block.json';
12
+ import save from './save';
13
+ import variations from './variations';
14
+
15
+ const { name } = metadata;
16
+
17
+ export { metadata, name };
18
+
19
+ export const settings = {
20
+ icon,
21
+ edit,
22
+ save,
23
+ variations,
24
+ };
25
+
26
+ export const init = () => initBlock( { name, metadata, settings } );
@@ -0,0 +1,48 @@
1
+ <?php
2
+ /**
3
+ * Server-side rendering of the `core/form-submission-notification` block.
4
+ *
5
+ * @package WordPress
6
+ */
7
+
8
+ /**
9
+ * Renders the `core/form-submission-notification` block on server.
10
+ *
11
+ * @param array $attributes The block attributes.
12
+ * @param string $content The saved content.
13
+ *
14
+ * @return string The content of the block being rendered.
15
+ */
16
+ function render_block_core_form_submission_notification( $attributes, $content ) {
17
+ $show = isset( $_GET['wp-form-result'] ) && sanitize_text_field( wp_unslash( $_GET['wp-form-result'] ) ) === $attributes['type'];
18
+ /**
19
+ * Filters whether to show the form submission notification block.
20
+ *
21
+ * @param bool $show Whether to show the form submission notification block.
22
+ * @param array $attributes The block attributes.
23
+ * @param string $content The saved content.
24
+ *
25
+ * @return bool Whether to show the form submission notification block.
26
+ */
27
+ $show = apply_filters( 'show_form_submission_notification_block', $show, $attributes, $content );
28
+ if ( ! $show ) {
29
+ return '';
30
+ }
31
+ return $content;
32
+ }
33
+
34
+ /**
35
+ * Registers the `core/form-submission-notification` block on server.
36
+ */
37
+ function register_block_core_form_submission_notification() {
38
+ if ( ! gutenberg_is_experiment_enabled( 'gutenberg-form-blocks' ) ) {
39
+ return;
40
+ }
41
+ register_block_type_from_metadata(
42
+ __DIR__ . '/form-submission-notification',
43
+ array(
44
+ 'render_callback' => 'render_block_core_form_submission_notification',
45
+ )
46
+ );
47
+ }
48
+ add_action( 'init', 'register_block_core_form_submission_notification' );
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import { init } from '.';
5
+
6
+ export default init();
@@ -0,0 +1,28 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { useInnerBlocksProps, useBlockProps } from '@wordpress/block-editor';
5
+
6
+ /**
7
+ * External dependencies
8
+ */
9
+ import classnames from 'classnames';
10
+
11
+ export default function save( { attributes } ) {
12
+ const { type } = attributes;
13
+
14
+ return (
15
+ <div
16
+ { ...useInnerBlocksProps.save(
17
+ useBlockProps.save( {
18
+ className: classnames(
19
+ 'wp-block-form-submission-notification',
20
+ {
21
+ [ `form-notification-type-${ type }` ]: type,
22
+ }
23
+ ),
24
+ } )
25
+ ) }
26
+ />
27
+ );
28
+ }
@@ -0,0 +1,59 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { __ } from '@wordpress/i18n';
5
+
6
+ const variations = [
7
+ {
8
+ name: 'form-submission-success',
9
+ title: __( 'Form submission success' ),
10
+ description: __( 'Success message for form submissions' ),
11
+ attributes: {
12
+ type: 'success',
13
+ },
14
+ isDefault: true,
15
+ innerBlocks: [
16
+ [
17
+ 'core/paragraph',
18
+ {
19
+ content: __( 'Your form has been submitted successfully.' ),
20
+ backgroundColor: '#00D084',
21
+ textColor: '#000000',
22
+ style: {
23
+ elements: { link: { color: { text: '#000000' } } },
24
+ },
25
+ },
26
+ ],
27
+ ],
28
+ scope: [ 'inserter', 'transform' ],
29
+ isActive: ( blockAttributes ) =>
30
+ ! blockAttributes?.type || blockAttributes?.type === 'success',
31
+ },
32
+ {
33
+ name: 'form-submission-error',
34
+ title: __( 'Form submission error' ),
35
+ description: __( 'Error/failure message for form submissions' ),
36
+ attributes: {
37
+ type: 'error',
38
+ },
39
+ isDefault: false,
40
+ innerBlocks: [
41
+ [
42
+ 'core/paragraph',
43
+ {
44
+ content: __( 'There was an error submitting your form.' ),
45
+ backgroundColor: '#CF2E2E',
46
+ textColor: '#FFFFFF',
47
+ style: {
48
+ elements: { link: { color: { text: '#FFFFFF' } } },
49
+ },
50
+ },
51
+ ],
52
+ ],
53
+ scope: [ 'inserter', 'transform' ],
54
+ isActive: ( blockAttributes ) =>
55
+ ! blockAttributes?.type || blockAttributes?.type === 'error',
56
+ },
57
+ ];
58
+
59
+ export default variations;
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "https://schemas.wp.org/trunk/block.json",
3
+ "apiVersion": 3,
4
+ "__experimental": true,
5
+ "name": "core/form-submit-button",
6
+ "title": "Form submit button",
7
+ "category": "common",
8
+ "icon": "button",
9
+ "parent": [ "core/form" ],
10
+ "description": "A submission button for forms.",
11
+ "keywords": [ "submit", "button", "form" ],
12
+ "textdomain": "default",
13
+ "style": [ "wp-block-form-submit-button" ]
14
+ }
@@ -0,0 +1,33 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { __ } from '@wordpress/i18n';
5
+ import { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';
6
+
7
+ const TEMPLATE = [
8
+ [
9
+ 'core/buttons',
10
+ {},
11
+ [
12
+ [
13
+ 'core/button',
14
+ {
15
+ text: __( 'Submit' ),
16
+ tagName: 'button',
17
+ },
18
+ ],
19
+ ],
20
+ ],
21
+ ];
22
+ const Edit = () => {
23
+ const blockProps = useBlockProps();
24
+ const innerBlocksProps = useInnerBlocksProps( blockProps, {
25
+ allowedBlocks: TEMPLATE,
26
+ template: TEMPLATE,
27
+ templateLock: 'all',
28
+ } );
29
+ return (
30
+ <div className="wp-block-form-submit-wrapper" { ...innerBlocksProps } />
31
+ );
32
+ };
33
+ export default Edit;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import initBlock from '../utils/init-block';
5
+ import edit from './edit';
6
+ import metadata from './block.json';
7
+ import save from './save';
8
+
9
+ const { name } = metadata;
10
+
11
+ export { metadata, name };
12
+
13
+ export const settings = {
14
+ edit,
15
+ save,
16
+ };
17
+
18
+ export const init = () => initBlock( { name, metadata, settings } );
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import { init } from './';
5
+
6
+ export default init();
@@ -0,0 +1,14 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { useBlockProps, InnerBlocks } from '@wordpress/block-editor';
5
+
6
+ const Save = () => {
7
+ const blockProps = useBlockProps.save();
8
+ return (
9
+ <div className="wp-block-form-submit-wrapper" { ...blockProps }>
10
+ <InnerBlocks.Content />
11
+ </div>
12
+ );
13
+ };
14
+ export default Save;
@@ -0,0 +1,3 @@
1
+ .wp-block-form-submit-wrapper {
2
+ margin-bottom: 0.5em;
3
+ }
@@ -24,7 +24,6 @@
24
24
  "__experimentalOnEnter": true,
25
25
  "__experimentalOnMerge": true,
26
26
  "__experimentalSettings": true,
27
- "__experimentalMetadata": true,
28
27
  "align": [ "wide", "full" ],
29
28
  "anchor": true,
30
29
  "ariaLabel": true,
@@ -29,10 +29,12 @@ export const settings = {
29
29
  __experimentalLabel( attributes, { context } ) {
30
30
  const { content, level } = attributes;
31
31
 
32
+ const customName = attributes?.metadata?.name;
33
+
32
34
  // In the list view, use the block's content as the label.
33
35
  // If the content is empty, fall back to the default label.
34
- if ( context === 'list-view' && content ) {
35
- return content;
36
+ if ( context === 'list-view' && ( customName || content ) ) {
37
+ return attributes?.metadata?.name || content;
36
38
  }
37
39
 
38
40
  if ( context === 'accessibility' ) {
@@ -377,6 +377,8 @@ export default function Image( {
377
377
  const lightboxChecked =
378
378
  !! lightbox?.enabled || ( ! lightbox && !! lightboxSetting?.enabled );
379
379
 
380
+ const lightboxToggleDisabled = linkDestination !== 'none';
381
+
380
382
  const dimensionsControl = (
381
383
  <DimensionsTool
382
384
  value={ { width, height, scale, aspectRatio } }
@@ -555,6 +557,14 @@ export default function Image( {
555
557
  lightbox: { enabled: newValue },
556
558
  } );
557
559
  } }
560
+ disabled={ lightboxToggleDisabled }
561
+ help={
562
+ lightboxToggleDisabled
563
+ ? __(
564
+ '“Expand on click” scales the image up, and can’t be combined with a link.'
565
+ )
566
+ : ''
567
+ }
558
568
  />
559
569
  </ToolsPanelItem>
560
570
  ) }