@wordpress/block-library 9.7.0 → 9.7.1-next.1f6eadc42.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 (256) hide show
  1. package/build/archives/edit.js +1 -1
  2. package/build/archives/edit.js.map +1 -1
  3. package/build/block/edit.js +2 -3
  4. package/build/block/edit.js.map +1 -1
  5. package/build/buttons/index.js +1 -1
  6. package/build/comments/edit/comments-legacy.js +2 -4
  7. package/build/comments/edit/comments-legacy.js.map +1 -1
  8. package/build/cover/deprecated.js +1 -1
  9. package/build/cover/deprecated.js.map +1 -1
  10. package/build/cover/edit/index.js +4 -2
  11. package/build/cover/edit/index.js.map +1 -1
  12. package/build/embed/edit.js +5 -11
  13. package/build/embed/edit.js.map +1 -1
  14. package/build/embed/embed-placeholder.js +4 -8
  15. package/build/embed/embed-placeholder.js.map +1 -1
  16. package/build/embed/embed-preview.js +16 -4
  17. package/build/embed/embed-preview.js.map +1 -1
  18. package/build/file/transforms.js +18 -4
  19. package/build/file/transforms.js.map +1 -1
  20. package/build/form-input/deprecated.js +113 -1
  21. package/build/form-input/deprecated.js.map +1 -1
  22. package/build/form-input/edit.js +16 -12
  23. package/build/form-input/edit.js.map +1 -1
  24. package/build/form-input/save.js +9 -1
  25. package/build/form-input/save.js.map +1 -1
  26. package/build/freeform/modal.js +6 -12
  27. package/build/freeform/modal.js.map +1 -1
  28. package/build/image/edit.js +55 -15
  29. package/build/image/edit.js.map +1 -1
  30. package/build/image/image.js +23 -20
  31. package/build/image/image.js.map +1 -1
  32. package/build/image/transforms.js +0 -13
  33. package/build/image/transforms.js.map +1 -1
  34. package/build/image/use-max-width-observer.js +35 -0
  35. package/build/image/use-max-width-observer.js.map +1 -0
  36. package/build/image/utils.js +11 -0
  37. package/build/image/utils.js.map +1 -1
  38. package/build/latest-posts/edit.js +1 -1
  39. package/build/latest-posts/edit.js.map +1 -1
  40. package/build/missing/edit.js +2 -4
  41. package/build/missing/edit.js.map +1 -1
  42. package/build/navigation/edit/deleted-navigation-warning.js +14 -10
  43. package/build/navigation/edit/deleted-navigation-warning.js.map +1 -1
  44. package/build/navigation/edit/index.js +2 -4
  45. package/build/navigation/edit/index.js.map +1 -1
  46. package/build/navigation/edit/menu-inspector-controls.js +2 -1
  47. package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
  48. package/build/navigation/edit/navigation-menu-delete-control.js +2 -4
  49. package/build/navigation/edit/navigation-menu-delete-control.js.map +1 -1
  50. package/build/navigation/edit/placeholder/index.js +2 -4
  51. package/build/navigation/edit/placeholder/index.js.map +1 -1
  52. package/build/navigation/edit/responsive-wrapper.js +4 -8
  53. package/build/navigation/edit/responsive-wrapper.js.map +1 -1
  54. package/build/navigation-link/link-ui.js +2 -4
  55. package/build/navigation-link/link-ui.js.map +1 -1
  56. package/build/page-list/convert-to-links-modal.js +4 -8
  57. package/build/page-list/convert-to-links-modal.js.map +1 -1
  58. package/build/page-list/edit.js +2 -4
  59. package/build/page-list/edit.js.map +1 -1
  60. package/build/post-comments-form/form.js +2 -4
  61. package/build/post-comments-form/form.js.map +1 -1
  62. package/build/post-featured-image/edit.js +2 -4
  63. package/build/post-featured-image/edit.js.map +1 -1
  64. package/build/post-title/index.js +4 -1
  65. package/build/post-title/index.js.map +1 -1
  66. package/build/query/edit/enhanced-pagination-modal.js +4 -6
  67. package/build/query/edit/enhanced-pagination-modal.js.map +1 -1
  68. package/build/query/edit/inspector-controls/enhanced-pagination-control.js +3 -3
  69. package/build/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
  70. package/build/query/edit/inspector-controls/index.js +2 -10
  71. package/build/query/edit/inspector-controls/index.js.map +1 -1
  72. package/build/query/edit/query-content.js +9 -3
  73. package/build/query/edit/query-content.js.map +1 -1
  74. package/build/query/edit/query-placeholder.js +4 -8
  75. package/build/query/edit/query-placeholder.js.map +1 -1
  76. package/build/site-logo/edit.js +4 -8
  77. package/build/site-logo/edit.js.map +1 -1
  78. package/build/site-title/index.js +4 -1
  79. package/build/site-title/index.js.map +1 -1
  80. package/build/social-link/edit.js +1 -1
  81. package/build/social-link/edit.js.map +1 -1
  82. package/build/template-part/edit/inner-blocks.js +10 -1
  83. package/build/template-part/edit/inner-blocks.js.map +1 -1
  84. package/build/template-part/edit/placeholder.js +4 -8
  85. package/build/template-part/edit/placeholder.js.map +1 -1
  86. package/build/video/edit.js +4 -8
  87. package/build/video/edit.js.map +1 -1
  88. package/build/video/tracks-editor.js +6 -12
  89. package/build/video/tracks-editor.js.map +1 -1
  90. package/build-module/archives/edit.js +1 -1
  91. package/build-module/archives/edit.js.map +1 -1
  92. package/build-module/block/edit.js +2 -3
  93. package/build-module/block/edit.js.map +1 -1
  94. package/build-module/buttons/index.js +1 -1
  95. package/build-module/comments/edit/comments-legacy.js +2 -4
  96. package/build-module/comments/edit/comments-legacy.js.map +1 -1
  97. package/build-module/cover/deprecated.js +1 -1
  98. package/build-module/cover/deprecated.js.map +1 -1
  99. package/build-module/cover/edit/index.js +4 -2
  100. package/build-module/cover/edit/index.js.map +1 -1
  101. package/build-module/embed/edit.js +6 -12
  102. package/build-module/embed/edit.js.map +1 -1
  103. package/build-module/embed/embed-placeholder.js +4 -8
  104. package/build-module/embed/embed-placeholder.js.map +1 -1
  105. package/build-module/embed/embed-preview.js +16 -4
  106. package/build-module/embed/embed-preview.js.map +1 -1
  107. package/build-module/file/transforms.js +18 -4
  108. package/build-module/file/transforms.js.map +1 -1
  109. package/build-module/form-input/deprecated.js +114 -2
  110. package/build-module/form-input/deprecated.js.map +1 -1
  111. package/build-module/form-input/edit.js +16 -12
  112. package/build-module/form-input/edit.js.map +1 -1
  113. package/build-module/form-input/save.js +9 -1
  114. package/build-module/form-input/save.js.map +1 -1
  115. package/build-module/freeform/modal.js +6 -12
  116. package/build-module/freeform/modal.js.map +1 -1
  117. package/build-module/image/edit.js +58 -18
  118. package/build-module/image/edit.js.map +1 -1
  119. package/build-module/image/image.js +23 -20
  120. package/build-module/image/image.js.map +1 -1
  121. package/build-module/image/transforms.js +0 -13
  122. package/build-module/image/transforms.js.map +1 -1
  123. package/build-module/image/use-max-width-observer.js +29 -0
  124. package/build-module/image/use-max-width-observer.js.map +1 -0
  125. package/build-module/image/utils.js +11 -1
  126. package/build-module/image/utils.js.map +1 -1
  127. package/build-module/latest-posts/edit.js +1 -1
  128. package/build-module/latest-posts/edit.js.map +1 -1
  129. package/build-module/missing/edit.js +2 -4
  130. package/build-module/missing/edit.js.map +1 -1
  131. package/build-module/navigation/edit/deleted-navigation-warning.js +15 -11
  132. package/build-module/navigation/edit/deleted-navigation-warning.js.map +1 -1
  133. package/build-module/navigation/edit/index.js +2 -4
  134. package/build-module/navigation/edit/index.js.map +1 -1
  135. package/build-module/navigation/edit/menu-inspector-controls.js +2 -1
  136. package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
  137. package/build-module/navigation/edit/navigation-menu-delete-control.js +2 -4
  138. package/build-module/navigation/edit/navigation-menu-delete-control.js.map +1 -1
  139. package/build-module/navigation/edit/placeholder/index.js +2 -4
  140. package/build-module/navigation/edit/placeholder/index.js.map +1 -1
  141. package/build-module/navigation/edit/responsive-wrapper.js +4 -8
  142. package/build-module/navigation/edit/responsive-wrapper.js.map +1 -1
  143. package/build-module/navigation-link/link-ui.js +2 -4
  144. package/build-module/navigation-link/link-ui.js.map +1 -1
  145. package/build-module/page-list/convert-to-links-modal.js +4 -8
  146. package/build-module/page-list/convert-to-links-modal.js.map +1 -1
  147. package/build-module/page-list/edit.js +2 -4
  148. package/build-module/page-list/edit.js.map +1 -1
  149. package/build-module/post-comments-form/form.js +2 -4
  150. package/build-module/post-comments-form/form.js.map +1 -1
  151. package/build-module/post-featured-image/edit.js +2 -4
  152. package/build-module/post-featured-image/edit.js.map +1 -1
  153. package/build-module/post-title/index.js +4 -1
  154. package/build-module/post-title/index.js.map +1 -1
  155. package/build-module/query/edit/enhanced-pagination-modal.js +4 -6
  156. package/build-module/query/edit/enhanced-pagination-modal.js.map +1 -1
  157. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js +3 -3
  158. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
  159. package/build-module/query/edit/inspector-controls/index.js +2 -10
  160. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  161. package/build-module/query/edit/query-content.js +10 -4
  162. package/build-module/query/edit/query-content.js.map +1 -1
  163. package/build-module/query/edit/query-placeholder.js +4 -8
  164. package/build-module/query/edit/query-placeholder.js.map +1 -1
  165. package/build-module/site-logo/edit.js +4 -8
  166. package/build-module/site-logo/edit.js.map +1 -1
  167. package/build-module/site-title/index.js +4 -1
  168. package/build-module/site-title/index.js.map +1 -1
  169. package/build-module/social-link/edit.js +1 -1
  170. package/build-module/social-link/edit.js.map +1 -1
  171. package/build-module/template-part/edit/inner-blocks.js +10 -1
  172. package/build-module/template-part/edit/inner-blocks.js.map +1 -1
  173. package/build-module/template-part/edit/placeholder.js +4 -8
  174. package/build-module/template-part/edit/placeholder.js.map +1 -1
  175. package/build-module/video/edit.js +4 -8
  176. package/build-module/video/edit.js.map +1 -1
  177. package/build-module/video/tracks-editor.js +6 -12
  178. package/build-module/video/tracks-editor.js.map +1 -1
  179. package/build-style/buttons/editor-rtl.css +2 -2
  180. package/build-style/buttons/editor.css +2 -2
  181. package/build-style/buttons/style-rtl.css +2 -2
  182. package/build-style/buttons/style.css +2 -2
  183. package/build-style/common-rtl.css +2 -2
  184. package/build-style/common.css +2 -2
  185. package/build-style/editor-rtl.css +11 -31
  186. package/build-style/editor.css +11 -31
  187. package/build-style/form-input/style-rtl.css +7 -8
  188. package/build-style/form-input/style.css +7 -8
  189. package/build-style/image/editor-rtl.css +6 -26
  190. package/build-style/image/editor.css +6 -26
  191. package/build-style/navigation/editor-rtl.css +1 -1
  192. package/build-style/navigation/editor.css +1 -1
  193. package/build-style/post-title/style-rtl.css +21 -0
  194. package/build-style/post-title/style.css +21 -0
  195. package/build-style/site-title/style-rtl.css +21 -0
  196. package/build-style/site-title/style.css +21 -0
  197. package/build-style/style-rtl.css +53 -12
  198. package/build-style/style.css +53 -12
  199. package/package.json +42 -35
  200. package/src/archives/edit.js +1 -1
  201. package/src/block/edit.js +3 -7
  202. package/src/buttons/block.json +1 -1
  203. package/src/buttons/editor.scss +2 -2
  204. package/src/buttons/style.scss +2 -2
  205. package/src/comments/edit/comments-legacy.js +1 -2
  206. package/src/cover/deprecated.js +3 -2
  207. package/src/cover/edit/index.js +5 -1
  208. package/src/embed/edit.js +0 -7
  209. package/src/embed/embed-placeholder.js +2 -4
  210. package/src/embed/embed-preview.js +22 -2
  211. package/src/file/index.php +1 -1
  212. package/src/file/transforms.js +26 -6
  213. package/src/form-input/deprecated.js +114 -1
  214. package/src/form-input/edit.js +17 -11
  215. package/src/form-input/save.js +13 -3
  216. package/src/form-input/style.scss +9 -8
  217. package/src/freeform/modal.js +3 -6
  218. package/src/image/edit.js +91 -20
  219. package/src/image/editor.scss +7 -38
  220. package/src/image/image.js +31 -20
  221. package/src/image/index.php +1 -1
  222. package/src/image/transforms.js +0 -23
  223. package/src/image/use-max-width-observer.js +32 -0
  224. package/src/image/utils.js +13 -1
  225. package/src/latest-posts/edit.js +1 -1
  226. package/src/missing/edit.js +1 -2
  227. package/src/navigation/edit/deleted-navigation-warning.js +23 -20
  228. package/src/navigation/edit/index.js +1 -2
  229. package/src/navigation/edit/menu-inspector-controls.js +3 -1
  230. package/src/navigation/edit/navigation-menu-delete-control.js +1 -2
  231. package/src/navigation/edit/placeholder/index.js +1 -2
  232. package/src/navigation/edit/responsive-wrapper.js +2 -4
  233. package/src/navigation/editor.scss +5 -1
  234. package/src/navigation/index.php +1 -1
  235. package/src/navigation-link/link-ui.js +1 -2
  236. package/src/page-list/convert-to-links-modal.js +2 -4
  237. package/src/page-list/edit.js +1 -2
  238. package/src/post-comments-form/form.js +1 -2
  239. package/src/post-featured-image/edit.js +1 -2
  240. package/src/post-title/block.json +4 -1
  241. package/src/post-title/style.scss +24 -0
  242. package/src/query/edit/enhanced-pagination-modal.js +3 -4
  243. package/src/query/edit/inspector-controls/enhanced-pagination-control.js +3 -3
  244. package/src/query/edit/inspector-controls/index.js +2 -9
  245. package/src/query/edit/query-content.js +7 -0
  246. package/src/query/edit/query-placeholder.js +2 -4
  247. package/src/query/index.php +1 -1
  248. package/src/search/index.php +1 -1
  249. package/src/site-logo/edit.js +2 -4
  250. package/src/site-title/block.json +4 -1
  251. package/src/site-title/style.scss +24 -0
  252. package/src/social-link/edit.js +1 -1
  253. package/src/template-part/edit/inner-blocks.js +20 -1
  254. package/src/template-part/edit/placeholder.js +2 -4
  255. package/src/video/edit.js +2 -4
  256. package/src/video/tracks-editor.js +3 -6
@@ -7,7 +7,7 @@ import removeAccents from 'remove-accents';
7
7
  /**
8
8
  * WordPress dependencies
9
9
  */
10
- import { RichText, __experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles, __experimentalGetColorClassesAndStyles as getColorClassesAndStyles } from '@wordpress/block-editor';
10
+ import { RichText, useBlockProps, __experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles, __experimentalGetColorClassesAndStyles as getColorClassesAndStyles } from '@wordpress/block-editor';
11
11
  import { __unstableStripHTML as stripHTML } from '@wordpress/dom';
12
12
  import { jsx as _jsx } from "react/jsx-runtime";
13
13
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -20,6 +20,118 @@ const getNameFromLabelV1 = content => {
20
20
  // Remove any remaining leading or trailing hyphens.
21
21
  .replace(/(^-+)|(-+$)/g, '');
22
22
  };
23
+ const v2 = {
24
+ attributes: {
25
+ type: {
26
+ type: 'string',
27
+ default: 'text'
28
+ },
29
+ name: {
30
+ type: 'string'
31
+ },
32
+ label: {
33
+ type: 'string',
34
+ default: 'Label',
35
+ selector: '.wp-block-form-input__label-content',
36
+ source: 'html',
37
+ __experimentalRole: 'content'
38
+ },
39
+ inlineLabel: {
40
+ type: 'boolean',
41
+ default: false
42
+ },
43
+ required: {
44
+ type: 'boolean',
45
+ default: false,
46
+ selector: '.wp-block-form-input__input',
47
+ source: 'attribute',
48
+ attribute: 'required'
49
+ },
50
+ placeholder: {
51
+ type: 'string',
52
+ selector: '.wp-block-form-input__input',
53
+ source: 'attribute',
54
+ attribute: 'placeholder',
55
+ __experimentalRole: 'content'
56
+ },
57
+ value: {
58
+ type: 'string',
59
+ default: '',
60
+ selector: 'input',
61
+ source: 'attribute',
62
+ attribute: 'value'
63
+ },
64
+ visibilityPermissions: {
65
+ type: 'string',
66
+ default: 'all'
67
+ }
68
+ },
69
+ supports: {
70
+ anchor: true,
71
+ reusable: false,
72
+ spacing: {
73
+ margin: ['top', 'bottom']
74
+ },
75
+ __experimentalBorder: {
76
+ radius: true,
77
+ __experimentalSkipSerialization: true,
78
+ __experimentalDefaultControls: {
79
+ radius: true
80
+ }
81
+ }
82
+ },
83
+ save({
84
+ attributes
85
+ }) {
86
+ const {
87
+ type,
88
+ name,
89
+ label,
90
+ inlineLabel,
91
+ required,
92
+ placeholder,
93
+ value
94
+ } = attributes;
95
+ const borderProps = getBorderClassesAndStyles(attributes);
96
+ const colorProps = getColorClassesAndStyles(attributes);
97
+ const inputStyle = {
98
+ ...borderProps.style,
99
+ ...colorProps.style
100
+ };
101
+ const inputClasses = clsx('wp-block-form-input__input', colorProps.className, borderProps.className);
102
+ const TagName = type === 'textarea' ? 'textarea' : 'input';
103
+ const blockProps = useBlockProps.save();
104
+ if ('hidden' === type) {
105
+ return /*#__PURE__*/_jsx("input", {
106
+ type: type,
107
+ name: name,
108
+ value: value
109
+ });
110
+ }
111
+ return /*#__PURE__*/_jsx("div", {
112
+ ...blockProps,
113
+ children: /*#__PURE__*/_jsxs("label", {
114
+ className: clsx('wp-block-form-input__label', {
115
+ 'is-label-inline': inlineLabel
116
+ }),
117
+ children: [/*#__PURE__*/_jsx("span", {
118
+ className: "wp-block-form-input__label-content",
119
+ children: /*#__PURE__*/_jsx(RichText.Content, {
120
+ value: label
121
+ })
122
+ }), /*#__PURE__*/_jsx(TagName, {
123
+ className: inputClasses,
124
+ type: 'textarea' === type ? undefined : type,
125
+ name: name || getNameFromLabelV1(label),
126
+ required: required,
127
+ "aria-required": required,
128
+ placeholder: placeholder || undefined,
129
+ style: inputStyle
130
+ })]
131
+ })
132
+ });
133
+ }
134
+ };
23
135
 
24
136
  // Version without wrapper div in saved markup
25
137
  // See: https://github.com/WordPress/gutenberg/pull/56507
@@ -135,6 +247,6 @@ const v1 = {
135
247
  /* eslint-enable jsx-a11y/label-has-associated-control */
136
248
  }
137
249
  };
138
- const deprecated = [v1];
250
+ const deprecated = [v2, v1];
139
251
  export default deprecated;
140
252
  //# sourceMappingURL=deprecated.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","removeAccents","RichText","__experimentalGetBorderClassesAndStyles","getBorderClassesAndStyles","__experimentalGetColorClassesAndStyles","getColorClassesAndStyles","__unstableStripHTML","stripHTML","jsx","_jsx","jsxs","_jsxs","getNameFromLabelV1","content","replace","toLowerCase","v1","attributes","type","default","name","label","selector","source","__experimentalRole","inlineLabel","required","attribute","placeholder","value","visibilityPermissions","supports","className","anchor","reusable","spacing","margin","__experimentalBorder","radius","__experimentalSkipSerialization","__experimentalDefaultControls","save","borderProps","colorProps","inputStyle","style","inputClasses","TagName","children","Content","undefined","deprecated"],"sources":["@wordpress/block-library/src/form-input/deprecated.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n} from '@wordpress/block-editor';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\nconst getNameFromLabelV1 = ( content ) => {\n\treturn (\n\t\tremoveAccents( stripHTML( content ) )\n\t\t\t// Convert anything that's not a letter or number to a hyphen.\n\t\t\t.replace( /[^\\p{L}\\p{N}]+/gu, '-' )\n\t\t\t// Convert to lowercase\n\t\t\t.toLowerCase()\n\t\t\t// Remove any remaining leading or trailing hyphens.\n\t\t\t.replace( /(^-+)|(-+$)/g, '' )\n\t);\n};\n\n// Version without wrapper div in saved markup\n// See: https://github.com/WordPress/gutenberg/pull/56507\nconst v1 = {\n\tattributes: {\n\t\ttype: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'text',\n\t\t},\n\t\tname: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlabel: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'Label',\n\t\t\tselector: '.wp-block-form-input__label-content',\n\t\t\tsource: 'html',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\tinlineLabel: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t\trequired: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\tselector: '.wp-block-form-input__input',\n\t\t\tsource: 'attribute',\n\t\t\tattribute: 'required',\n\t\t},\n\t\tplaceholder: {\n\t\t\ttype: 'string',\n\t\t\tselector: '.wp-block-form-input__input',\n\t\t\tsource: 'attribute',\n\t\t\tattribute: 'placeholder',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\tvalue: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t\tselector: 'input',\n\t\t\tsource: 'attribute',\n\t\t\tattribute: 'value',\n\t\t},\n\t\tvisibilityPermissions: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'all',\n\t\t},\n\t},\n\tsupports: {\n\t\tclassName: false,\n\t\tanchor: true,\n\t\treusable: false,\n\t\tspacing: {\n\t\t\tmargin: [ 'top', 'bottom' ],\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\tradius: true,\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tradius: true,\n\t\t\t},\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst { type, name, label, inlineLabel, required, placeholder, value } =\n\t\t\tattributes;\n\n\t\tconst borderProps = getBorderClassesAndStyles( attributes );\n\t\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\t\tconst inputStyle = {\n\t\t\t...borderProps.style,\n\t\t\t...colorProps.style,\n\t\t};\n\n\t\tconst inputClasses = clsx(\n\t\t\t'wp-block-form-input__input',\n\t\t\tcolorProps.className,\n\t\t\tborderProps.className\n\t\t);\n\t\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\n\t\tif ( 'hidden' === type ) {\n\t\t\treturn <input type={ type } name={ name } value={ value } />;\n\t\t}\n\n\t\t/* eslint-disable jsx-a11y/label-has-associated-control */\n\t\treturn (\n\t\t\t<label\n\t\t\t\tclassName={ clsx( 'wp-block-form-input__label', {\n\t\t\t\t\t'is-label-inline': inlineLabel,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<span className=\"wp-block-form-input__label-content\">\n\t\t\t\t\t<RichText.Content value={ label } />\n\t\t\t\t</span>\n\t\t\t\t<TagName\n\t\t\t\t\tclassName={ inputClasses }\n\t\t\t\t\ttype={ 'textarea' === type ? undefined : type }\n\t\t\t\t\tname={ name || getNameFromLabelV1( label ) }\n\t\t\t\t\trequired={ required }\n\t\t\t\t\taria-required={ required }\n\t\t\t\t\tplaceholder={ placeholder || undefined }\n\t\t\t\t\tstyle={ inputStyle }\n\t\t\t\t/>\n\t\t\t</label>\n\t\t);\n\t\t/* eslint-enable jsx-a11y/label-has-associated-control */\n\t},\n};\n\nconst deprecated = [ v1 ];\n\nexport default deprecated;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","removeAccents","RichText","useBlockProps","__experimentalGetBorderClassesAndStyles","getBorderClassesAndStyles","__experimentalGetColorClassesAndStyles","getColorClassesAndStyles","__unstableStripHTML","stripHTML","jsx","_jsx","jsxs","_jsxs","getNameFromLabelV1","content","replace","toLowerCase","v2","attributes","type","default","name","label","selector","source","__experimentalRole","inlineLabel","required","attribute","placeholder","value","visibilityPermissions","supports","anchor","reusable","spacing","margin","__experimentalBorder","radius","__experimentalSkipSerialization","__experimentalDefaultControls","save","borderProps","colorProps","inputStyle","style","inputClasses","className","TagName","blockProps","children","Content","undefined","v1","deprecated"],"sources":["@wordpress/block-library/src/form-input/deprecated.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n} from '@wordpress/block-editor';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\nconst getNameFromLabelV1 = ( content ) => {\n\treturn (\n\t\tremoveAccents( stripHTML( content ) )\n\t\t\t// Convert anything that's not a letter or number to a hyphen.\n\t\t\t.replace( /[^\\p{L}\\p{N}]+/gu, '-' )\n\t\t\t// Convert to lowercase\n\t\t\t.toLowerCase()\n\t\t\t// Remove any remaining leading or trailing hyphens.\n\t\t\t.replace( /(^-+)|(-+$)/g, '' )\n\t);\n};\n\nconst v2 = {\n\tattributes: {\n\t\ttype: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'text',\n\t\t},\n\t\tname: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlabel: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'Label',\n\t\t\tselector: '.wp-block-form-input__label-content',\n\t\t\tsource: 'html',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\tinlineLabel: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t\trequired: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\tselector: '.wp-block-form-input__input',\n\t\t\tsource: 'attribute',\n\t\t\tattribute: 'required',\n\t\t},\n\t\tplaceholder: {\n\t\t\ttype: 'string',\n\t\t\tselector: '.wp-block-form-input__input',\n\t\t\tsource: 'attribute',\n\t\t\tattribute: 'placeholder',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\tvalue: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t\tselector: 'input',\n\t\t\tsource: 'attribute',\n\t\t\tattribute: 'value',\n\t\t},\n\t\tvisibilityPermissions: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'all',\n\t\t},\n\t},\n\tsupports: {\n\t\tanchor: true,\n\t\treusable: false,\n\t\tspacing: {\n\t\t\tmargin: [ 'top', 'bottom' ],\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\tradius: true,\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tradius: true,\n\t\t\t},\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst { type, name, label, inlineLabel, required, placeholder, value } =\n\t\t\tattributes;\n\n\t\tconst borderProps = getBorderClassesAndStyles( attributes );\n\t\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\t\tconst inputStyle = {\n\t\t\t...borderProps.style,\n\t\t\t...colorProps.style,\n\t\t};\n\n\t\tconst inputClasses = clsx(\n\t\t\t'wp-block-form-input__input',\n\t\t\tcolorProps.className,\n\t\t\tborderProps.className\n\t\t);\n\t\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\n\t\tconst blockProps = useBlockProps.save();\n\n\t\tif ( 'hidden' === type ) {\n\t\t\treturn <input type={ type } name={ name } value={ value } />;\n\t\t}\n\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ /* eslint-disable jsx-a11y/label-has-associated-control */ }\n\t\t\t\t<label\n\t\t\t\t\tclassName={ clsx( 'wp-block-form-input__label', {\n\t\t\t\t\t\t'is-label-inline': inlineLabel,\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t<span className=\"wp-block-form-input__label-content\">\n\t\t\t\t\t\t<RichText.Content value={ label } />\n\t\t\t\t\t</span>\n\t\t\t\t\t<TagName\n\t\t\t\t\t\tclassName={ inputClasses }\n\t\t\t\t\t\ttype={ 'textarea' === type ? undefined : type }\n\t\t\t\t\t\tname={ name || getNameFromLabelV1( label ) }\n\t\t\t\t\t\trequired={ required }\n\t\t\t\t\t\taria-required={ required }\n\t\t\t\t\t\tplaceholder={ placeholder || undefined }\n\t\t\t\t\t\tstyle={ inputStyle }\n\t\t\t\t\t/>\n\t\t\t\t</label>\n\t\t\t\t{ /* eslint-enable jsx-a11y/label-has-associated-control */ }\n\t\t\t</div>\n\t\t);\n\t},\n};\n\n// Version without wrapper div in saved markup\n// See: https://github.com/WordPress/gutenberg/pull/56507\nconst v1 = {\n\tattributes: {\n\t\ttype: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'text',\n\t\t},\n\t\tname: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlabel: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'Label',\n\t\t\tselector: '.wp-block-form-input__label-content',\n\t\t\tsource: 'html',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\tinlineLabel: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t\trequired: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\tselector: '.wp-block-form-input__input',\n\t\t\tsource: 'attribute',\n\t\t\tattribute: 'required',\n\t\t},\n\t\tplaceholder: {\n\t\t\ttype: 'string',\n\t\t\tselector: '.wp-block-form-input__input',\n\t\t\tsource: 'attribute',\n\t\t\tattribute: 'placeholder',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\tvalue: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t\tselector: 'input',\n\t\t\tsource: 'attribute',\n\t\t\tattribute: 'value',\n\t\t},\n\t\tvisibilityPermissions: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'all',\n\t\t},\n\t},\n\tsupports: {\n\t\tclassName: false,\n\t\tanchor: true,\n\t\treusable: false,\n\t\tspacing: {\n\t\t\tmargin: [ 'top', 'bottom' ],\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\tradius: true,\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tradius: true,\n\t\t\t},\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst { type, name, label, inlineLabel, required, placeholder, value } =\n\t\t\tattributes;\n\n\t\tconst borderProps = getBorderClassesAndStyles( attributes );\n\t\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\t\tconst inputStyle = {\n\t\t\t...borderProps.style,\n\t\t\t...colorProps.style,\n\t\t};\n\n\t\tconst inputClasses = clsx(\n\t\t\t'wp-block-form-input__input',\n\t\t\tcolorProps.className,\n\t\t\tborderProps.className\n\t\t);\n\t\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\n\t\tif ( 'hidden' === type ) {\n\t\t\treturn <input type={ type } name={ name } value={ value } />;\n\t\t}\n\n\t\t/* eslint-disable jsx-a11y/label-has-associated-control */\n\t\treturn (\n\t\t\t<label\n\t\t\t\tclassName={ clsx( 'wp-block-form-input__label', {\n\t\t\t\t\t'is-label-inline': inlineLabel,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<span className=\"wp-block-form-input__label-content\">\n\t\t\t\t\t<RichText.Content value={ label } />\n\t\t\t\t</span>\n\t\t\t\t<TagName\n\t\t\t\t\tclassName={ inputClasses }\n\t\t\t\t\ttype={ 'textarea' === type ? undefined : type }\n\t\t\t\t\tname={ name || getNameFromLabelV1( label ) }\n\t\t\t\t\trequired={ required }\n\t\t\t\t\taria-required={ required }\n\t\t\t\t\tplaceholder={ placeholder || undefined }\n\t\t\t\t\tstyle={ inputStyle }\n\t\t\t\t/>\n\t\t\t</label>\n\t\t);\n\t\t/* eslint-enable jsx-a11y/label-has-associated-control */\n\t},\n};\n\nconst deprecated = [ v2, v1 ];\n\nexport default deprecated;\n"],"mappings":"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","ignoreList":[]}
@@ -35,6 +35,9 @@ function InputFieldBlock({
35
35
  if (ref.current) {
36
36
  ref.current.focus();
37
37
  }
38
+
39
+ // Note: radio inputs aren't implemented yet.
40
+ const isCheckboxOrRadio = type === 'checkbox' || type === 'radio';
38
41
  const controls = /*#__PURE__*/_jsxs(_Fragment, {
39
42
  children: ['hidden' !== type && /*#__PURE__*/_jsx(InspectorControls, {
40
43
  children: /*#__PURE__*/_jsxs(PanelBody, {
@@ -76,6 +79,17 @@ function InputFieldBlock({
76
79
  })
77
80
  })]
78
81
  });
82
+ const content = /*#__PURE__*/_jsx(RichText, {
83
+ tagName: "span",
84
+ className: "wp-block-form-input__label-content",
85
+ value: label,
86
+ onChange: newLabel => setAttributes({
87
+ label: newLabel
88
+ }),
89
+ "aria-label": label ? __('Label') : __('Empty label'),
90
+ "data-empty": !label,
91
+ placeholder: __('Type the label for this input')
92
+ });
79
93
  if ('hidden' === type) {
80
94
  return /*#__PURE__*/_jsxs(_Fragment, {
81
95
  children: [controls, /*#__PURE__*/_jsx("input", {
@@ -95,17 +109,7 @@ function InputFieldBlock({
95
109
  className: clsx('wp-block-form-input__label', {
96
110
  'is-label-inline': inlineLabel || 'checkbox' === type
97
111
  }),
98
- children: [/*#__PURE__*/_jsx(RichText, {
99
- tagName: "span",
100
- className: "wp-block-form-input__label-content",
101
- value: label,
102
- onChange: newLabel => setAttributes({
103
- label: newLabel
104
- }),
105
- "aria-label": label ? __('Label') : __('Empty label'),
106
- "data-empty": label ? false : true,
107
- placeholder: __('Type the label for this input')
108
- }), /*#__PURE__*/_jsx(TagName, {
112
+ children: [!isCheckboxOrRadio && content, /*#__PURE__*/_jsx(TagName, {
109
113
  type: 'textarea' === type ? undefined : type,
110
114
  className: clsx(className, 'wp-block-form-input__input', colorProps.className, borderProps.className),
111
115
  "aria-label": __('Optional placeholder text')
@@ -123,7 +127,7 @@ function InputFieldBlock({
123
127
  ...borderProps.style,
124
128
  ...colorProps.style
125
129
  }
126
- })]
130
+ }), isCheckboxOrRadio && content]
127
131
  })]
128
132
  });
129
133
  }
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","__","InspectorControls","RichText","useBlockProps","__experimentalUseBorderProps","useBorderProps","__experimentalUseColorProps","useColorProps","PanelBody","TextControl","CheckboxControl","useRef","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","InputFieldBlock","attributes","setAttributes","className","type","name","label","inlineLabel","required","placeholder","value","blockProps","ref","TagName","borderProps","colorProps","current","focus","controls","children","title","__nextHasNoMarginBottom","checked","onChange","newVal","group","__next40pxDefaultSize","autoComplete","help","event","target","tagName","newLabel","undefined","style"],"sources":["@wordpress/block-library/src/form-input/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n} from '@wordpress/block-editor';\nimport { PanelBody, TextControl, CheckboxControl } from '@wordpress/components';\n\nimport { useRef } from '@wordpress/element';\n\nfunction InputFieldBlock( { attributes, setAttributes, className } ) {\n\tconst { type, name, label, inlineLabel, required, placeholder, value } =\n\t\tattributes;\n\tconst blockProps = useBlockProps();\n\tconst ref = useRef();\n\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst colorProps = useColorProps( attributes );\n\tif ( ref.current ) {\n\t\tref.current.focus();\n\t}\n\n\tconst controls = (\n\t\t<>\n\t\t\t{ 'hidden' !== type && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t\t{ 'checkbox' !== type && (\n\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Inline label' ) }\n\t\t\t\t\t\t\t\tchecked={ inlineLabel }\n\t\t\t\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tinlineLabel: newVal,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Required' ) }\n\t\t\t\t\t\t\tchecked={ required }\n\t\t\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\trequired: newVal,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\tvalue={ name }\n\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tname: newVal,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Affects the \"name\" atribute of the input element, and is used as a name for the form submission results.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tif ( 'hidden' === type ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ controls }\n\t\t\t\t<input\n\t\t\t\t\ttype=\"hidden\"\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-form-input__input',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className\n\t\t\t\t\t) }\n\t\t\t\t\taria-label={ __( 'Value' ) }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ ( event ) =>\n\t\t\t\t\t\tsetAttributes( { value: event.target.value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\n\t\t\t<span\n\t\t\t\tclassName={ clsx( 'wp-block-form-input__label', {\n\t\t\t\t\t'is-label-inline': inlineLabel || 'checkbox' === type,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<RichText\n\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\tclassName=\"wp-block-form-input__label-content\"\n\t\t\t\t\tvalue={ label }\n\t\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\t\tsetAttributes( { label: newLabel } )\n\t\t\t\t\t}\n\t\t\t\t\taria-label={ label ? __( 'Label' ) : __( 'Empty label' ) }\n\t\t\t\t\tdata-empty={ label ? false : true }\n\t\t\t\t\tplaceholder={ __( 'Type the label for this input' ) }\n\t\t\t\t/>\n\t\t\t\t<TagName\n\t\t\t\t\ttype={ 'textarea' === type ? undefined : type }\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-form-input__input',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className\n\t\t\t\t\t) }\n\t\t\t\t\taria-label={ __( 'Optional placeholder text' ) }\n\t\t\t\t\t// We hide the placeholder field's placeholder when there is a value. This\n\t\t\t\t\t// stops screen readers from reading the placeholder field's placeholder\n\t\t\t\t\t// which is confusing.\n\t\t\t\t\tplaceholder={\n\t\t\t\t\t\tplaceholder ? undefined : __( 'Optional placeholder…' )\n\t\t\t\t\t}\n\t\t\t\t\tvalue={ placeholder }\n\t\t\t\t\tonChange={ ( event ) =>\n\t\t\t\t\t\tsetAttributes( { placeholder: event.target.value } )\n\t\t\t\t\t}\n\t\t\t\t\taria-required={ required }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t\t...colorProps.style,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</span>\n\t\t</div>\n\t);\n}\n\nexport default InputFieldBlock;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","__","InspectorControls","RichText","useBlockProps","__experimentalUseBorderProps","useBorderProps","__experimentalUseColorProps","useColorProps","PanelBody","TextControl","CheckboxControl","useRef","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","InputFieldBlock","attributes","setAttributes","className","type","name","label","inlineLabel","required","placeholder","value","blockProps","ref","TagName","borderProps","colorProps","current","focus","isCheckboxOrRadio","controls","children","title","__nextHasNoMarginBottom","checked","onChange","newVal","group","__next40pxDefaultSize","autoComplete","help","content","tagName","newLabel","event","target","undefined","style"],"sources":["@wordpress/block-library/src/form-input/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n} from '@wordpress/block-editor';\nimport { PanelBody, TextControl, CheckboxControl } from '@wordpress/components';\n\nimport { useRef } from '@wordpress/element';\n\nfunction InputFieldBlock( { attributes, setAttributes, className } ) {\n\tconst { type, name, label, inlineLabel, required, placeholder, value } =\n\t\tattributes;\n\tconst blockProps = useBlockProps();\n\tconst ref = useRef();\n\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst colorProps = useColorProps( attributes );\n\tif ( ref.current ) {\n\t\tref.current.focus();\n\t}\n\n\t// Note: radio inputs aren't implemented yet.\n\tconst isCheckboxOrRadio = type === 'checkbox' || type === 'radio';\n\n\tconst controls = (\n\t\t<>\n\t\t\t{ 'hidden' !== type && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t\t{ 'checkbox' !== type && (\n\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Inline label' ) }\n\t\t\t\t\t\t\t\tchecked={ inlineLabel }\n\t\t\t\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tinlineLabel: newVal,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Required' ) }\n\t\t\t\t\t\t\tchecked={ required }\n\t\t\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\trequired: newVal,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\tvalue={ name }\n\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tname: newVal,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Affects the \"name\" atribute of the input element, and is used as a name for the form submission results.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst content = (\n\t\t<RichText\n\t\t\ttagName=\"span\"\n\t\t\tclassName=\"wp-block-form-input__label-content\"\n\t\t\tvalue={ label }\n\t\t\tonChange={ ( newLabel ) => setAttributes( { label: newLabel } ) }\n\t\t\taria-label={ label ? __( 'Label' ) : __( 'Empty label' ) }\n\t\t\tdata-empty={ ! label }\n\t\t\tplaceholder={ __( 'Type the label for this input' ) }\n\t\t/>\n\t);\n\n\tif ( 'hidden' === type ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ controls }\n\t\t\t\t<input\n\t\t\t\t\ttype=\"hidden\"\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-form-input__input',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className\n\t\t\t\t\t) }\n\t\t\t\t\taria-label={ __( 'Value' ) }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ ( event ) =>\n\t\t\t\t\t\tsetAttributes( { value: event.target.value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\n\t\t\t<span\n\t\t\t\tclassName={ clsx( 'wp-block-form-input__label', {\n\t\t\t\t\t'is-label-inline': inlineLabel || 'checkbox' === type,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ ! isCheckboxOrRadio && content }\n\t\t\t\t<TagName\n\t\t\t\t\ttype={ 'textarea' === type ? undefined : type }\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-form-input__input',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className\n\t\t\t\t\t) }\n\t\t\t\t\taria-label={ __( 'Optional placeholder text' ) }\n\t\t\t\t\t// We hide the placeholder field's placeholder when there is a value. This\n\t\t\t\t\t// stops screen readers from reading the placeholder field's placeholder\n\t\t\t\t\t// which is confusing.\n\t\t\t\t\tplaceholder={\n\t\t\t\t\t\tplaceholder ? undefined : __( 'Optional placeholder…' )\n\t\t\t\t\t}\n\t\t\t\t\tvalue={ placeholder }\n\t\t\t\t\tonChange={ ( event ) =>\n\t\t\t\t\t\tsetAttributes( { placeholder: event.target.value } )\n\t\t\t\t\t}\n\t\t\t\t\taria-required={ required }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t\t...colorProps.style,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t{ isCheckboxOrRadio && content }\n\t\t\t</span>\n\t\t</div>\n\t);\n}\n\nexport default InputFieldBlock;\n"],"mappings":"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","ignoreList":[]}
@@ -49,6 +49,9 @@ export default function save({
49
49
  const inputClasses = clsx('wp-block-form-input__input', colorProps.className, borderProps.className);
50
50
  const TagName = type === 'textarea' ? 'textarea' : 'input';
51
51
  const blockProps = useBlockProps.save();
52
+
53
+ // Note: radio inputs aren't implemented yet.
54
+ const isCheckboxOrRadio = type === 'checkbox' || type === 'radio';
52
55
  if ('hidden' === type) {
53
56
  return /*#__PURE__*/_jsx("input", {
54
57
  type: type,
@@ -62,7 +65,7 @@ export default function save({
62
65
  className: clsx('wp-block-form-input__label', {
63
66
  'is-label-inline': inlineLabel
64
67
  }),
65
- children: [/*#__PURE__*/_jsx("span", {
68
+ children: [!isCheckboxOrRadio && /*#__PURE__*/_jsx("span", {
66
69
  className: "wp-block-form-input__label-content",
67
70
  children: /*#__PURE__*/_jsx(RichText.Content, {
68
71
  value: label
@@ -75,6 +78,11 @@ export default function save({
75
78
  "aria-required": required,
76
79
  placeholder: placeholder || undefined,
77
80
  style: inputStyle
81
+ }), isCheckboxOrRadio && /*#__PURE__*/_jsx("span", {
82
+ className: "wp-block-form-input__label-content",
83
+ children: /*#__PURE__*/_jsx(RichText.Content, {
84
+ value: label
85
+ })
78
86
  })]
79
87
  })
80
88
  });
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","removeAccents","RichText","useBlockProps","__experimentalGetBorderClassesAndStyles","getBorderClassesAndStyles","__experimentalGetColorClassesAndStyles","getColorClassesAndStyles","__unstableStripHTML","stripHTML","jsx","_jsx","jsxs","_jsxs","getNameFromLabel","content","replace","toLowerCase","save","attributes","type","name","label","inlineLabel","required","placeholder","value","borderProps","colorProps","inputStyle","style","inputClasses","className","TagName","blockProps","children","Content","undefined"],"sources":["@wordpress/block-library/src/form-input/save.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n} from '@wordpress/block-editor';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\n/**\n * Get the name attribute from a content string.\n *\n * @param {string} content The block content.\n *\n * @return {string} Returns the slug.\n */\nconst getNameFromLabel = ( content ) => {\n\treturn (\n\t\tremoveAccents( stripHTML( content ) )\n\t\t\t// Convert anything that's not a letter or number to a hyphen.\n\t\t\t.replace( /[^\\p{L}\\p{N}]+/gu, '-' )\n\t\t\t// Convert to lowercase\n\t\t\t.toLowerCase()\n\t\t\t// Remove any remaining leading or trailing hyphens.\n\t\t\t.replace( /(^-+)|(-+$)/g, '' )\n\t);\n};\n\nexport default function save( { attributes } ) {\n\tconst { type, name, label, inlineLabel, required, placeholder, value } =\n\t\tattributes;\n\n\tconst borderProps = getBorderClassesAndStyles( attributes );\n\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\tconst inputStyle = {\n\t\t...borderProps.style,\n\t\t...colorProps.style,\n\t};\n\n\tconst inputClasses = clsx(\n\t\t'wp-block-form-input__input',\n\t\tcolorProps.className,\n\t\tborderProps.className\n\t);\n\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\n\tconst blockProps = useBlockProps.save();\n\n\tif ( 'hidden' === type ) {\n\t\treturn <input type={ type } name={ name } value={ value } />;\n\t}\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ /* eslint-disable jsx-a11y/label-has-associated-control */ }\n\t\t\t<label\n\t\t\t\tclassName={ clsx( 'wp-block-form-input__label', {\n\t\t\t\t\t'is-label-inline': inlineLabel,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<span className=\"wp-block-form-input__label-content\">\n\t\t\t\t\t<RichText.Content value={ label } />\n\t\t\t\t</span>\n\t\t\t\t<TagName\n\t\t\t\t\tclassName={ inputClasses }\n\t\t\t\t\ttype={ 'textarea' === type ? undefined : type }\n\t\t\t\t\tname={ name || getNameFromLabel( label ) }\n\t\t\t\t\trequired={ required }\n\t\t\t\t\taria-required={ required }\n\t\t\t\t\tplaceholder={ placeholder || undefined }\n\t\t\t\t\tstyle={ inputStyle }\n\t\t\t\t/>\n\t\t\t</label>\n\t\t\t{ /* eslint-enable jsx-a11y/label-has-associated-control */ }\n\t\t</div>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;AACvB,OAAOC,aAAa,MAAM,gBAAgB;;AAE1C;AACA;AACA;AACA,SACCC,QAAQ,EACRC,aAAa,EACbC,uCAAuC,IAAIC,yBAAyB,EACpEC,sCAAsC,IAAIC,wBAAwB,QAC5D,yBAAyB;AAChC,SAASC,mBAAmB,IAAIC,SAAS,QAAQ,gBAAgB;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AANA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAOA,MAAMC,gBAAgB,GAAKC,OAAO,IAAM;EACvC,OACCd,aAAa,CAAEQ,SAAS,CAAEM,OAAQ,CAAE;EACnC;EAAA,CACCC,OAAO,CAAE,kBAAkB,EAAE,GAAI;EAClC;EAAA,CACCC,WAAW,CAAC;EACb;EAAA,CACCD,OAAO,CAAE,cAAc,EAAE,EAAG,CAAC;AAEjC,CAAC;AAED,eAAe,SAASE,IAAIA,CAAE;EAAEC;AAAW,CAAC,EAAG;EAC9C,MAAM;IAAEC,IAAI;IAAEC,IAAI;IAAEC,KAAK;IAAEC,WAAW;IAAEC,QAAQ;IAAEC,WAAW;IAAEC;EAAM,CAAC,GACrEP,UAAU;EAEX,MAAMQ,WAAW,GAAGtB,yBAAyB,CAAEc,UAAW,CAAC;EAC3D,MAAMS,UAAU,GAAGrB,wBAAwB,CAAEY,UAAW,CAAC;EAEzD,MAAMU,UAAU,GAAG;IAClB,GAAGF,WAAW,CAACG,KAAK;IACpB,GAAGF,UAAU,CAACE;EACf,CAAC;EAED,MAAMC,YAAY,GAAG/B,IAAI,CACxB,4BAA4B,EAC5B4B,UAAU,CAACI,SAAS,EACpBL,WAAW,CAACK,SACb,CAAC;EACD,MAAMC,OAAO,GAAGb,IAAI,KAAK,UAAU,GAAG,UAAU,GAAG,OAAO;EAE1D,MAAMc,UAAU,GAAG/B,aAAa,CAACe,IAAI,CAAC,CAAC;EAEvC,IAAK,QAAQ,KAAKE,IAAI,EAAG;IACxB,oBAAOT,IAAA;MAAOS,IAAI,EAAGA,IAAM;MAACC,IAAI,EAAGA,IAAM;MAACK,KAAK,EAAGA;IAAO,CAAE,CAAC;EAC7D;EAEA,oBACCf,IAAA;IAAA,GAAUuB,UAAU;IAAAC,QAAA,eAEnBtB,KAAA;MACCmB,SAAS,EAAGhC,IAAI,CAAE,4BAA4B,EAAE;QAC/C,iBAAiB,EAAEuB;MACpB,CAAE,CAAG;MAAAY,QAAA,gBAELxB,IAAA;QAAMqB,SAAS,EAAC,oCAAoC;QAAAG,QAAA,eACnDxB,IAAA,CAACT,QAAQ,CAACkC,OAAO;UAACV,KAAK,EAAGJ;QAAO,CAAE;MAAC,CAC/B,CAAC,eACPX,IAAA,CAACsB,OAAO;QACPD,SAAS,EAAGD,YAAc;QAC1BX,IAAI,EAAG,UAAU,KAAKA,IAAI,GAAGiB,SAAS,GAAGjB,IAAM;QAC/CC,IAAI,EAAGA,IAAI,IAAIP,gBAAgB,CAAEQ,KAAM,CAAG;QAC1CE,QAAQ,EAAGA,QAAU;QACrB,iBAAgBA,QAAU;QAC1BC,WAAW,EAAGA,WAAW,IAAIY,SAAW;QACxCP,KAAK,EAAGD;MAAY,CACpB,CAAC;IAAA,CACI;EAAC,CAEJ,CAAC;AAER","ignoreList":[]}
1
+ {"version":3,"names":["clsx","removeAccents","RichText","useBlockProps","__experimentalGetBorderClassesAndStyles","getBorderClassesAndStyles","__experimentalGetColorClassesAndStyles","getColorClassesAndStyles","__unstableStripHTML","stripHTML","jsx","_jsx","jsxs","_jsxs","getNameFromLabel","content","replace","toLowerCase","save","attributes","type","name","label","inlineLabel","required","placeholder","value","borderProps","colorProps","inputStyle","style","inputClasses","className","TagName","blockProps","isCheckboxOrRadio","children","Content","undefined"],"sources":["@wordpress/block-library/src/form-input/save.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n} from '@wordpress/block-editor';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\n/**\n * Get the name attribute from a content string.\n *\n * @param {string} content The block content.\n *\n * @return {string} Returns the slug.\n */\nconst getNameFromLabel = ( content ) => {\n\treturn (\n\t\tremoveAccents( stripHTML( content ) )\n\t\t\t// Convert anything that's not a letter or number to a hyphen.\n\t\t\t.replace( /[^\\p{L}\\p{N}]+/gu, '-' )\n\t\t\t// Convert to lowercase\n\t\t\t.toLowerCase()\n\t\t\t// Remove any remaining leading or trailing hyphens.\n\t\t\t.replace( /(^-+)|(-+$)/g, '' )\n\t);\n};\n\nexport default function save( { attributes } ) {\n\tconst { type, name, label, inlineLabel, required, placeholder, value } =\n\t\tattributes;\n\n\tconst borderProps = getBorderClassesAndStyles( attributes );\n\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\tconst inputStyle = {\n\t\t...borderProps.style,\n\t\t...colorProps.style,\n\t};\n\n\tconst inputClasses = clsx(\n\t\t'wp-block-form-input__input',\n\t\tcolorProps.className,\n\t\tborderProps.className\n\t);\n\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\n\tconst blockProps = useBlockProps.save();\n\n\t// Note: radio inputs aren't implemented yet.\n\tconst isCheckboxOrRadio = type === 'checkbox' || type === 'radio';\n\n\tif ( 'hidden' === type ) {\n\t\treturn <input type={ type } name={ name } value={ value } />;\n\t}\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ /* eslint-disable jsx-a11y/label-has-associated-control */ }\n\t\t\t<label\n\t\t\t\tclassName={ clsx( 'wp-block-form-input__label', {\n\t\t\t\t\t'is-label-inline': inlineLabel,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ ! isCheckboxOrRadio && (\n\t\t\t\t\t<span className=\"wp-block-form-input__label-content\">\n\t\t\t\t\t\t<RichText.Content value={ label } />\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t<TagName\n\t\t\t\t\tclassName={ inputClasses }\n\t\t\t\t\ttype={ 'textarea' === type ? undefined : type }\n\t\t\t\t\tname={ name || getNameFromLabel( label ) }\n\t\t\t\t\trequired={ required }\n\t\t\t\t\taria-required={ required }\n\t\t\t\t\tplaceholder={ placeholder || undefined }\n\t\t\t\t\tstyle={ inputStyle }\n\t\t\t\t/>\n\t\t\t\t{ isCheckboxOrRadio && (\n\t\t\t\t\t<span className=\"wp-block-form-input__label-content\">\n\t\t\t\t\t\t<RichText.Content value={ label } />\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t</label>\n\t\t\t{ /* eslint-enable jsx-a11y/label-has-associated-control */ }\n\t\t</div>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;AACvB,OAAOC,aAAa,MAAM,gBAAgB;;AAE1C;AACA;AACA;AACA,SACCC,QAAQ,EACRC,aAAa,EACbC,uCAAuC,IAAIC,yBAAyB,EACpEC,sCAAsC,IAAIC,wBAAwB,QAC5D,yBAAyB;AAChC,SAASC,mBAAmB,IAAIC,SAAS,QAAQ,gBAAgB;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AANA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAOA,MAAMC,gBAAgB,GAAKC,OAAO,IAAM;EACvC,OACCd,aAAa,CAAEQ,SAAS,CAAEM,OAAQ,CAAE;EACnC;EAAA,CACCC,OAAO,CAAE,kBAAkB,EAAE,GAAI;EAClC;EAAA,CACCC,WAAW,CAAC;EACb;EAAA,CACCD,OAAO,CAAE,cAAc,EAAE,EAAG,CAAC;AAEjC,CAAC;AAED,eAAe,SAASE,IAAIA,CAAE;EAAEC;AAAW,CAAC,EAAG;EAC9C,MAAM;IAAEC,IAAI;IAAEC,IAAI;IAAEC,KAAK;IAAEC,WAAW;IAAEC,QAAQ;IAAEC,WAAW;IAAEC;EAAM,CAAC,GACrEP,UAAU;EAEX,MAAMQ,WAAW,GAAGtB,yBAAyB,CAAEc,UAAW,CAAC;EAC3D,MAAMS,UAAU,GAAGrB,wBAAwB,CAAEY,UAAW,CAAC;EAEzD,MAAMU,UAAU,GAAG;IAClB,GAAGF,WAAW,CAACG,KAAK;IACpB,GAAGF,UAAU,CAACE;EACf,CAAC;EAED,MAAMC,YAAY,GAAG/B,IAAI,CACxB,4BAA4B,EAC5B4B,UAAU,CAACI,SAAS,EACpBL,WAAW,CAACK,SACb,CAAC;EACD,MAAMC,OAAO,GAAGb,IAAI,KAAK,UAAU,GAAG,UAAU,GAAG,OAAO;EAE1D,MAAMc,UAAU,GAAG/B,aAAa,CAACe,IAAI,CAAC,CAAC;;EAEvC;EACA,MAAMiB,iBAAiB,GAAGf,IAAI,KAAK,UAAU,IAAIA,IAAI,KAAK,OAAO;EAEjE,IAAK,QAAQ,KAAKA,IAAI,EAAG;IACxB,oBAAOT,IAAA;MAAOS,IAAI,EAAGA,IAAM;MAACC,IAAI,EAAGA,IAAM;MAACK,KAAK,EAAGA;IAAO,CAAE,CAAC;EAC7D;EAEA,oBACCf,IAAA;IAAA,GAAUuB,UAAU;IAAAE,QAAA,eAEnBvB,KAAA;MACCmB,SAAS,EAAGhC,IAAI,CAAE,4BAA4B,EAAE;QAC/C,iBAAiB,EAAEuB;MACpB,CAAE,CAAG;MAAAa,QAAA,GAEH,CAAED,iBAAiB,iBACpBxB,IAAA;QAAMqB,SAAS,EAAC,oCAAoC;QAAAI,QAAA,eACnDzB,IAAA,CAACT,QAAQ,CAACmC,OAAO;UAACX,KAAK,EAAGJ;QAAO,CAAE;MAAC,CAC/B,CACN,eACDX,IAAA,CAACsB,OAAO;QACPD,SAAS,EAAGD,YAAc;QAC1BX,IAAI,EAAG,UAAU,KAAKA,IAAI,GAAGkB,SAAS,GAAGlB,IAAM;QAC/CC,IAAI,EAAGA,IAAI,IAAIP,gBAAgB,CAAEQ,KAAM,CAAG;QAC1CE,QAAQ,EAAGA,QAAU;QACrB,iBAAgBA,QAAU;QAC1BC,WAAW,EAAGA,WAAW,IAAIa,SAAW;QACxCR,KAAK,EAAGD;MAAY,CACpB,CAAC,EACAM,iBAAiB,iBAClBxB,IAAA;QAAMqB,SAAS,EAAC,oCAAoC;QAAAI,QAAA,eACnDzB,IAAA,CAACT,QAAQ,CAACmC,OAAO;UAACX,KAAK,EAAGJ;QAAO,CAAE;MAAC,CAC/B,CACN;IAAA,CACK;EAAC,CAEJ,CAAC;AAER","ignoreList":[]}
@@ -20,10 +20,8 @@ function ModalAuxiliaryActions({
20
20
  if (isMobileViewport) {
21
21
  return null;
22
22
  }
23
- return /*#__PURE__*/_jsx(Button
24
- // TODO: Switch to `true` (40px size) if possible
25
- , {
26
- __next40pxDefaultSize: false,
23
+ return /*#__PURE__*/_jsx(Button, {
24
+ size: "small",
27
25
  onClick: onClick,
28
26
  icon: fullscreen,
29
27
  isPressed: isModalFullScreen,
@@ -109,19 +107,15 @@ export default function ModalEdit(props) {
109
107
  justify: "flex-end",
110
108
  expanded: false,
111
109
  children: [/*#__PURE__*/_jsx(FlexItem, {
112
- children: /*#__PURE__*/_jsx(Button
113
- // TODO: Switch to `true` (40px size) if possible
114
- , {
115
- __next40pxDefaultSize: false,
110
+ children: /*#__PURE__*/_jsx(Button, {
111
+ __next40pxDefaultSize: true,
116
112
  variant: "tertiary",
117
113
  onClick: onClose,
118
114
  children: __('Cancel')
119
115
  })
120
116
  }), /*#__PURE__*/_jsx(FlexItem, {
121
- children: /*#__PURE__*/_jsx(Button
122
- // TODO: Switch to `true` (40px size) if possible
123
- , {
124
- __next40pxDefaultSize: false,
117
+ children: /*#__PURE__*/_jsx(Button, {
118
+ __next40pxDefaultSize: true,
125
119
  variant: "primary",
126
120
  onClick: () => {
127
121
  setAttributes({
@@ -1 +1 @@
1
- {"version":3,"names":["BlockControls","store","ToolbarGroup","ToolbarButton","Modal","Button","Flex","FlexItem","useEffect","useState","RawHTML","__","useSelect","fullscreen","useViewportMatch","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ModalAuxiliaryActions","onClick","isModalFullScreen","isMobileViewport","__next40pxDefaultSize","icon","isPressed","label","ClassicEdit","props","styles","select","getSettings","baseURL","suffix","settings","window","wpEditorL10n","tinymce","EditorManager","overrideDefaults","base_url","wp","oldEditor","initialize","id","setup","editor","on","doc","getDoc","forEach","css","styleEl","createElement","innerHTML","head","appendChild","remove","ModalEdit","clientId","attributes","content","setAttributes","onReplace","isOpen","setOpen","setIsModalFullScreen","onClose","children","title","onRequestClose","shouldCloseOnClickOutside","overlayClassName","isFullScreen","className","headerActions","defaultValue","justify","expanded","variant","getContent"],"sources":["@wordpress/block-library/src/freeform/modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { BlockControls, store } from '@wordpress/block-editor';\nimport {\n\tToolbarGroup,\n\tToolbarButton,\n\tModal,\n\tButton,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { useEffect, useState, RawHTML } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { fullscreen } from '@wordpress/icons';\nimport { useViewportMatch } from '@wordpress/compose';\n\nfunction ModalAuxiliaryActions( { onClick, isModalFullScreen } ) {\n\t// 'small' to match the rules in editor.scss.\n\tconst isMobileViewport = useViewportMatch( 'small', '<' );\n\tif ( isMobileViewport ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t__next40pxDefaultSize={ false }\n\t\t\tonClick={ onClick }\n\t\t\ticon={ fullscreen }\n\t\t\tisPressed={ isModalFullScreen }\n\t\t\tlabel={\n\t\t\t\tisModalFullScreen\n\t\t\t\t\t? __( 'Exit fullscreen' )\n\t\t\t\t\t: __( 'Enter fullscreen' )\n\t\t\t}\n\t\t/>\n\t);\n}\n\nfunction ClassicEdit( props ) {\n\tconst styles = useSelect(\n\t\t( select ) => select( store ).getSettings().styles\n\t);\n\tuseEffect( () => {\n\t\tconst { baseURL, suffix, settings } = window.wpEditorL10n.tinymce;\n\n\t\twindow.tinymce.EditorManager.overrideDefaults( {\n\t\t\tbase_url: baseURL,\n\t\t\tsuffix,\n\t\t} );\n\n\t\twindow.wp.oldEditor.initialize( props.id, {\n\t\t\ttinymce: {\n\t\t\t\t...settings,\n\t\t\t\tsetup( editor ) {\n\t\t\t\t\teditor.on( 'init', () => {\n\t\t\t\t\t\tconst doc = editor.getDoc();\n\t\t\t\t\t\tstyles.forEach( ( { css } ) => {\n\t\t\t\t\t\t\tconst styleEl = doc.createElement( 'style' );\n\t\t\t\t\t\t\tstyleEl.innerHTML = css;\n\t\t\t\t\t\t\tdoc.head.appendChild( styleEl );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t} );\n\n\t\treturn () => {\n\t\t\twindow.wp.oldEditor.remove( props.id );\n\t\t};\n\t}, [] );\n\n\treturn <textarea { ...props } />;\n}\n\nexport default function ModalEdit( props ) {\n\tconst {\n\t\tclientId,\n\t\tattributes: { content },\n\t\tsetAttributes,\n\t\tonReplace,\n\t} = props;\n\tconst [ isOpen, setOpen ] = useState( false );\n\tconst [ isModalFullScreen, setIsModalFullScreen ] = useState( false );\n\tconst id = `editor-${ clientId }`;\n\n\tconst onClose = () => ( content ? setOpen( false ) : onReplace( [] ) );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton onClick={ () => setOpen( true ) }>\n\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t{ content && <RawHTML>{ content }</RawHTML> }\n\t\t\t{ ( isOpen || ! content ) && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Classic Editor' ) }\n\t\t\t\t\tonRequestClose={ onClose }\n\t\t\t\t\tshouldCloseOnClickOutside={ false }\n\t\t\t\t\toverlayClassName=\"block-editor-freeform-modal\"\n\t\t\t\t\tisFullScreen={ isModalFullScreen }\n\t\t\t\t\tclassName=\"block-editor-freeform-modal__content\"\n\t\t\t\t\theaderActions={\n\t\t\t\t\t\t<ModalAuxiliaryActions\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tsetIsModalFullScreen( ! isModalFullScreen )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisModalFullScreen={ isModalFullScreen }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<ClassicEdit id={ id } defaultValue={ content } />\n\t\t\t\t\t<Flex\n\t\t\t\t\t\tclassName=\"block-editor-freeform-modal__actions\"\n\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t>\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t\t\t\t__next40pxDefaultSize={ false }\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t\t\t\t__next40pxDefaultSize={ false }\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tcontent:\n\t\t\t\t\t\t\t\t\t\t\twindow.wp.oldEditor.getContent(\n\t\t\t\t\t\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\tsetOpen( false );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t</Flex>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["BlockControls","store","ToolbarGroup","ToolbarButton","Modal","Button","Flex","FlexItem","useEffect","useState","RawHTML","__","useSelect","fullscreen","useViewportMatch","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ModalAuxiliaryActions","onClick","isModalFullScreen","isMobileViewport","size","icon","isPressed","label","ClassicEdit","props","styles","select","getSettings","baseURL","suffix","settings","window","wpEditorL10n","tinymce","EditorManager","overrideDefaults","base_url","wp","oldEditor","initialize","id","setup","editor","on","doc","getDoc","forEach","css","styleEl","createElement","innerHTML","head","appendChild","remove","ModalEdit","clientId","attributes","content","setAttributes","onReplace","isOpen","setOpen","setIsModalFullScreen","onClose","children","title","onRequestClose","shouldCloseOnClickOutside","overlayClassName","isFullScreen","className","headerActions","defaultValue","justify","expanded","__next40pxDefaultSize","variant","getContent"],"sources":["@wordpress/block-library/src/freeform/modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { BlockControls, store } from '@wordpress/block-editor';\nimport {\n\tToolbarGroup,\n\tToolbarButton,\n\tModal,\n\tButton,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { useEffect, useState, RawHTML } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { fullscreen } from '@wordpress/icons';\nimport { useViewportMatch } from '@wordpress/compose';\n\nfunction ModalAuxiliaryActions( { onClick, isModalFullScreen } ) {\n\t// 'small' to match the rules in editor.scss.\n\tconst isMobileViewport = useViewportMatch( 'small', '<' );\n\tif ( isMobileViewport ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\tsize=\"small\"\n\t\t\tonClick={ onClick }\n\t\t\ticon={ fullscreen }\n\t\t\tisPressed={ isModalFullScreen }\n\t\t\tlabel={\n\t\t\t\tisModalFullScreen\n\t\t\t\t\t? __( 'Exit fullscreen' )\n\t\t\t\t\t: __( 'Enter fullscreen' )\n\t\t\t}\n\t\t/>\n\t);\n}\n\nfunction ClassicEdit( props ) {\n\tconst styles = useSelect(\n\t\t( select ) => select( store ).getSettings().styles\n\t);\n\tuseEffect( () => {\n\t\tconst { baseURL, suffix, settings } = window.wpEditorL10n.tinymce;\n\n\t\twindow.tinymce.EditorManager.overrideDefaults( {\n\t\t\tbase_url: baseURL,\n\t\t\tsuffix,\n\t\t} );\n\n\t\twindow.wp.oldEditor.initialize( props.id, {\n\t\t\ttinymce: {\n\t\t\t\t...settings,\n\t\t\t\tsetup( editor ) {\n\t\t\t\t\teditor.on( 'init', () => {\n\t\t\t\t\t\tconst doc = editor.getDoc();\n\t\t\t\t\t\tstyles.forEach( ( { css } ) => {\n\t\t\t\t\t\t\tconst styleEl = doc.createElement( 'style' );\n\t\t\t\t\t\t\tstyleEl.innerHTML = css;\n\t\t\t\t\t\t\tdoc.head.appendChild( styleEl );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t} );\n\n\t\treturn () => {\n\t\t\twindow.wp.oldEditor.remove( props.id );\n\t\t};\n\t}, [] );\n\n\treturn <textarea { ...props } />;\n}\n\nexport default function ModalEdit( props ) {\n\tconst {\n\t\tclientId,\n\t\tattributes: { content },\n\t\tsetAttributes,\n\t\tonReplace,\n\t} = props;\n\tconst [ isOpen, setOpen ] = useState( false );\n\tconst [ isModalFullScreen, setIsModalFullScreen ] = useState( false );\n\tconst id = `editor-${ clientId }`;\n\n\tconst onClose = () => ( content ? setOpen( false ) : onReplace( [] ) );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton onClick={ () => setOpen( true ) }>\n\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t{ content && <RawHTML>{ content }</RawHTML> }\n\t\t\t{ ( isOpen || ! content ) && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Classic Editor' ) }\n\t\t\t\t\tonRequestClose={ onClose }\n\t\t\t\t\tshouldCloseOnClickOutside={ false }\n\t\t\t\t\toverlayClassName=\"block-editor-freeform-modal\"\n\t\t\t\t\tisFullScreen={ isModalFullScreen }\n\t\t\t\t\tclassName=\"block-editor-freeform-modal__content\"\n\t\t\t\t\theaderActions={\n\t\t\t\t\t\t<ModalAuxiliaryActions\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tsetIsModalFullScreen( ! isModalFullScreen )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisModalFullScreen={ isModalFullScreen }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<ClassicEdit id={ id } defaultValue={ content } />\n\t\t\t\t\t<Flex\n\t\t\t\t\t\tclassName=\"block-editor-freeform-modal__actions\"\n\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t>\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tcontent:\n\t\t\t\t\t\t\t\t\t\t\twindow.wp.oldEditor.getContent(\n\t\t\t\t\t\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\tsetOpen( false );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t</Flex>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -6,11 +6,11 @@ import clsx from 'clsx';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
- import { isBlobURL } from '@wordpress/blob';
10
- import { store as blocksStore } from '@wordpress/blocks';
9
+ import { isBlobURL, createBlobURL } from '@wordpress/blob';
10
+ import { store as blocksStore, createBlock } from '@wordpress/blocks';
11
11
  import { Placeholder } from '@wordpress/components';
12
12
  import { useDispatch, useSelect } from '@wordpress/data';
13
- import { BlockIcon, MediaPlaceholder, useBlockProps, store as blockEditorStore, __experimentalUseBorderProps as useBorderProps, __experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles, useBlockEditingMode } from '@wordpress/block-editor';
13
+ import { BlockIcon, useBlockProps, MediaPlaceholder, store as blockEditorStore, __experimentalUseBorderProps as useBorderProps, __experimentalGetShadowClassesAndStyles as getShadowClassesAndStyles, useBlockEditingMode } from '@wordpress/block-editor';
14
14
  import { useEffect, useRef, useState } from '@wordpress/element';
15
15
  import { __, sprintf } from '@wordpress/i18n';
16
16
  import { image as icon, plugins as pluginsIcon } from '@wordpress/icons';
@@ -23,6 +23,8 @@ import { useResizeObserver } from '@wordpress/compose';
23
23
  import { unlock } from '../lock-unlock';
24
24
  import { useUploadMediaFromBlobURL } from '../utils/hooks';
25
25
  import Image from './image';
26
+ import { isValidFileType } from './utils';
27
+ import { useMaxWidthObserver } from './use-max-width-observer';
26
28
 
27
29
  /**
28
30
  * Module constants
@@ -86,9 +88,16 @@ export function ImageEdit({
86
88
  metadata
87
89
  } = attributes;
88
90
  const [temporaryURL, setTemporaryURL] = useState(attributes.blob);
89
- const [contentResizeListener, {
90
- width: containerWidth
91
+ const containerRef = useRef();
92
+ // Only observe the max width from the parent container when the parent layout is not flex nor grid.
93
+ // This won't work for them because the container width changes with the image.
94
+ // TODO: Find a way to observe the container width for flex and grid layouts.
95
+ const isMaxWidthContainerWidth = !parentLayout || parentLayout.type !== 'flex' && parentLayout.type !== 'grid';
96
+ const [maxWidthObserver, maxContentWidth] = useMaxWidthObserver();
97
+ const [placeholderResizeListener, {
98
+ width: placeholderWidth
91
99
  }] = useResizeObserver();
100
+ const isSmallContainer = placeholderWidth && placeholderWidth < 160;
92
101
  const altRef = useRef();
93
102
  useEffect(() => {
94
103
  altRef.current = alt;
@@ -98,7 +107,8 @@ export function ImageEdit({
98
107
  captionRef.current = caption;
99
108
  }, [caption]);
100
109
  const {
101
- __unstableMarkNextChangeAsNotPersistent
110
+ __unstableMarkNextChangeAsNotPersistent,
111
+ replaceBlock
102
112
  } = useDispatch(blockEditorStore);
103
113
  useEffect(() => {
104
114
  if (['wide', 'full'].includes(align)) {
@@ -112,7 +122,10 @@ export function ImageEdit({
112
122
  }
113
123
  }, [__unstableMarkNextChangeAsNotPersistent, align, setAttributes]);
114
124
  const {
115
- getSettings
125
+ getSettings,
126
+ getBlockRootClientId,
127
+ getBlockName,
128
+ canInsertBlockType
116
129
  } = useSelect(blockEditorStore);
117
130
  const blockEditingMode = useBlockEditingMode();
118
131
  const {
@@ -129,7 +142,35 @@ export function ImageEdit({
129
142
  blob: undefined
130
143
  });
131
144
  }
145
+ function onSelectImagesList(images) {
146
+ const win = containerRef.current?.ownerDocument.defaultView;
147
+ if (images.every(file => file instanceof win.File)) {
148
+ /** @type {File[]} */
149
+ const files = images;
150
+ const rootClientId = getBlockRootClientId(clientId);
151
+ if (files.some(file => !isValidFileType(file))) {
152
+ // Copied from the same notice in the gallery block.
153
+ createErrorNotice(__('If uploading to a gallery all files need to be image formats'), {
154
+ id: 'gallery-upload-invalid-file',
155
+ type: 'snackbar'
156
+ });
157
+ }
158
+ const imageBlocks = files.filter(file => isValidFileType(file)).map(file => createBlock('core/image', {
159
+ blob: createBlobURL(file)
160
+ }));
161
+ if (getBlockName(rootClientId) === 'core/gallery') {
162
+ replaceBlock(clientId, imageBlocks);
163
+ } else if (canInsertBlockType('core/gallery', rootClientId)) {
164
+ const galleryBlock = createBlock('core/gallery', {}, imageBlocks);
165
+ replaceBlock(clientId, galleryBlock);
166
+ }
167
+ }
168
+ }
132
169
  function onSelectImage(media) {
170
+ if (Array.isArray(media)) {
171
+ onSelectImagesList(media);
172
+ return;
173
+ }
133
174
  if (!media || !media.url) {
134
175
  setAttributes({
135
176
  url: undefined,
@@ -260,6 +301,7 @@ export function ImageEdit({
260
301
  'has-custom-border': !!borderProps.className || borderProps.style && Object.keys(borderProps.style).length > 0
261
302
  });
262
303
  const blockProps = useBlockProps({
304
+ ref: containerRef,
263
305
  className: classes
264
306
  });
265
307
 
@@ -283,14 +325,14 @@ export function ImageEdit({
283
325
  };
284
326
  }, [context, isSingleSelected, metadata?.bindings?.url]);
285
327
  const placeholder = content => {
286
- return /*#__PURE__*/_jsx(Placeholder, {
328
+ return /*#__PURE__*/_jsxs(Placeholder, {
287
329
  className: clsx('block-editor-media-placeholder', {
288
330
  [borderProps.className]: !!borderProps.className && !isSingleSelected
289
331
  }),
290
- withIllustration: true,
291
- icon: lockUrlControls ? pluginsIcon : icon,
292
- label: __('Image'),
293
- instructions: !lockUrlControls && __('Upload an image file, pick one from your media library, or add one with a URL.'),
332
+ icon: !isSmallContainer && (lockUrlControls ? pluginsIcon : icon),
333
+ withIllustration: !isSingleSelected || isSmallContainer,
334
+ label: !isSmallContainer && __('Image'),
335
+ instructions: !lockUrlControls && !isSmallContainer && __('Upload or drag an image file here, or pick one from your library.'),
294
336
  style: {
295
337
  aspectRatio: !(width && height) && aspectRatio ? aspectRatio : undefined,
296
338
  width: height && aspectRatio ? '100%' : width,
@@ -299,10 +341,7 @@ export function ImageEdit({
299
341
  ...borderProps.style,
300
342
  ...shadowProps.style
301
343
  },
302
- children: lockUrlControls ? /*#__PURE__*/_jsx("span", {
303
- className: "block-bindings-media-placeholder-message",
304
- children: lockUrlControlsMessage
305
- }) : content
344
+ children: [lockUrlControls && !isSmallContainer && lockUrlControlsMessage, !lockUrlControls && !isSmallContainer && content, placeholderResizeListener]
306
345
  });
307
346
  };
308
347
  return /*#__PURE__*/_jsxs(_Fragment, {
@@ -322,7 +361,7 @@ export function ImageEdit({
322
361
  clientId: clientId,
323
362
  blockEditingMode: blockEditingMode,
324
363
  parentLayoutType: parentLayout?.type,
325
- containerWidth: containerWidth
364
+ maxContentWidth: maxContentWidth
326
365
  }), /*#__PURE__*/_jsx(MediaPlaceholder, {
327
366
  icon: /*#__PURE__*/_jsx(BlockIcon, {
328
367
  icon: icon
@@ -333,6 +372,7 @@ export function ImageEdit({
333
372
  placeholder: placeholder,
334
373
  accept: "image/*",
335
374
  allowedTypes: ALLOWED_MEDIA_TYPES,
375
+ handleUpload: files => files.length === 1,
336
376
  value: {
337
377
  id,
338
378
  src
@@ -343,7 +383,7 @@ export function ImageEdit({
343
383
  }),
344
384
  // The listener cannot be placed as the first element as it will break the in-between inserter.
345
385
  // See https://github.com/WordPress/gutenberg/blob/71134165868298fc15e22896d0c28b41b3755ff7/packages/block-editor/src/components/block-list/use-in-between-inserter.js#L120
346
- contentResizeListener]
386
+ isSingleSelected && isMaxWidthContainerWidth && maxWidthObserver]
347
387
  });
348
388
  }
349
389
  export default ImageEdit;