@wordpress/block-library 7.17.0 → 7.19.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 (374) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/audio/edit.js +44 -4
  3. package/build/audio/edit.js.map +1 -1
  4. package/build/button/deprecated.js +16 -2
  5. package/build/button/deprecated.js.map +1 -1
  6. package/build/button/edit.js +14 -8
  7. package/build/button/edit.js.map +1 -1
  8. package/build/button/index.js +4 -1
  9. package/build/button/index.js.map +1 -1
  10. package/build/button/save.js +2 -0
  11. package/build/button/save.js.map +1 -1
  12. package/build/buttons/edit.native.js +1 -1
  13. package/build/buttons/edit.native.js.map +1 -1
  14. package/build/columns/transforms.js +5 -0
  15. package/build/columns/transforms.js.map +1 -1
  16. package/build/comment-template/index.js +6 -2
  17. package/build/comment-template/index.js.map +1 -1
  18. package/build/cover/edit/index.js +3 -1
  19. package/build/cover/edit/index.js.map +1 -1
  20. package/build/cover/edit/inspector-controls.js +3 -7
  21. package/build/cover/edit/inspector-controls.js.map +1 -1
  22. package/build/embed/deprecated.js +43 -4
  23. package/build/embed/deprecated.js.map +1 -1
  24. package/build/file/deprecated.js +108 -4
  25. package/build/file/deprecated.js.map +1 -1
  26. package/build/file/transforms.js +3 -9
  27. package/build/file/transforms.js.map +1 -1
  28. package/build/gallery/deprecated.js +148 -23
  29. package/build/gallery/deprecated.js.map +1 -1
  30. package/build/gallery/gallery.js +3 -2
  31. package/build/gallery/gallery.js.map +1 -1
  32. package/build/gallery/use-image-sizes.js +2 -1
  33. package/build/gallery/use-image-sizes.js.map +1 -1
  34. package/build/gallery/v1/edit.js +6 -3
  35. package/build/gallery/v1/edit.js.map +1 -1
  36. package/build/group/edit.js +105 -48
  37. package/build/group/edit.js.map +1 -1
  38. package/build/group/index.js +3 -0
  39. package/build/group/index.js.map +1 -1
  40. package/build/group/placeholder.js +168 -0
  41. package/build/group/placeholder.js.map +1 -0
  42. package/build/group/variations.js +3 -3
  43. package/build/group/variations.js.map +1 -1
  44. package/build/image/edit.native.js +1 -1
  45. package/build/image/edit.native.js.map +1 -1
  46. package/build/image/image.js +6 -9
  47. package/build/image/image.js.map +1 -1
  48. package/build/latest-comments/edit.js +2 -1
  49. package/build/latest-comments/edit.js.map +1 -1
  50. package/build/latest-comments/index.js +5 -1
  51. package/build/latest-comments/index.js.map +1 -1
  52. package/build/latest-posts/deprecated.js +13 -0
  53. package/build/latest-posts/deprecated.js.map +1 -1
  54. package/build/latest-posts/edit.js +1 -1
  55. package/build/latest-posts/edit.js.map +1 -1
  56. package/build/latest-posts/index.js +13 -0
  57. package/build/latest-posts/index.js.map +1 -1
  58. package/build/list/utils.js +4 -8
  59. package/build/list/utils.js.map +1 -1
  60. package/build/list-item/edit.js +2 -1
  61. package/build/list-item/edit.js.map +1 -1
  62. package/build/list-item/hooks/use-outdent-list-item.js +5 -7
  63. package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
  64. package/build/navigation/edit/index.js +94 -103
  65. package/build/navigation/edit/index.js.map +1 -1
  66. package/build/navigation/edit/manage-menus-button.js +36 -0
  67. package/build/navigation/edit/manage-menus-button.js.map +1 -0
  68. package/build/navigation/edit/navigation-menu-selector.js +12 -5
  69. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  70. package/build/navigation/edit/responsive-wrapper.js +2 -6
  71. package/build/navigation/edit/responsive-wrapper.js.map +1 -1
  72. package/build/navigation/edit/unsaved-inner-blocks.js +5 -17
  73. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  74. package/build/navigation-link/edit.js +14 -3
  75. package/build/navigation-link/edit.js.map +1 -1
  76. package/build/navigation-submenu/edit.js +4 -4
  77. package/build/navigation-submenu/edit.js.map +1 -1
  78. package/build/page-list/edit.js +29 -10
  79. package/build/page-list/edit.js.map +1 -1
  80. package/build/post-author/edit.js +35 -20
  81. package/build/post-author/edit.js.map +1 -1
  82. package/build/post-comments-count/index.js +4 -0
  83. package/build/post-comments-count/index.js.map +1 -1
  84. package/build/post-comments-form/index.js +4 -0
  85. package/build/post-comments-form/index.js.map +1 -1
  86. package/build/post-comments-link/index.js +4 -0
  87. package/build/post-comments-link/index.js.map +1 -1
  88. package/build/post-content/edit.js +14 -6
  89. package/build/post-content/edit.js.map +1 -1
  90. package/build/post-content/index.js +3 -0
  91. package/build/post-content/index.js.map +1 -1
  92. package/build/pullquote/deprecated.js +6 -6
  93. package/build/pullquote/deprecated.js.map +1 -1
  94. package/build/search/edit.js +1 -3
  95. package/build/search/edit.js.map +1 -1
  96. package/build/site-logo/edit.js +2 -2
  97. package/build/site-logo/edit.js.map +1 -1
  98. package/build/site-tagline/edit.js +21 -9
  99. package/build/site-tagline/edit.js.map +1 -1
  100. package/build/site-title/edit/index.js +20 -8
  101. package/build/site-title/edit/index.js.map +1 -1
  102. package/build/social-link/edit.js +11 -2
  103. package/build/social-link/edit.js.map +1 -1
  104. package/build/social-link/index.js +3 -0
  105. package/build/social-link/index.js.map +1 -1
  106. package/build/spacer/controls.js +3 -7
  107. package/build/spacer/controls.js.map +1 -1
  108. package/build/table/deprecated.js +282 -27
  109. package/build/table/deprecated.js.map +1 -1
  110. package/build/table/state.js +1 -1
  111. package/build/table/state.js.map +1 -1
  112. package/build/template-part/variations.js +5 -0
  113. package/build/template-part/variations.js.map +1 -1
  114. package/build/utils/clean-empty-object.js +5 -4
  115. package/build/utils/clean-empty-object.js.map +1 -1
  116. package/build/video/deprecated.js +159 -0
  117. package/build/video/deprecated.js.map +1 -0
  118. package/build/video/edit.js +41 -5
  119. package/build/video/edit.js.map +1 -1
  120. package/build/video/index.js +3 -0
  121. package/build/video/index.js.map +1 -1
  122. package/build/video/tracks-editor.js +3 -28
  123. package/build/video/tracks-editor.js.map +1 -1
  124. package/build-module/audio/edit.js +46 -7
  125. package/build-module/audio/edit.js.map +1 -1
  126. package/build-module/button/deprecated.js +16 -2
  127. package/build-module/button/deprecated.js.map +1 -1
  128. package/build-module/button/edit.js +16 -10
  129. package/build-module/button/edit.js.map +1 -1
  130. package/build-module/button/index.js +4 -1
  131. package/build-module/button/index.js.map +1 -1
  132. package/build-module/button/save.js +2 -0
  133. package/build-module/button/save.js.map +1 -1
  134. package/build-module/buttons/edit.native.js +1 -1
  135. package/build-module/buttons/edit.native.js.map +1 -1
  136. package/build-module/columns/transforms.js +5 -0
  137. package/build-module/columns/transforms.js.map +1 -1
  138. package/build-module/comment-template/index.js +6 -2
  139. package/build-module/comment-template/index.js.map +1 -1
  140. package/build-module/cover/edit/index.js +3 -1
  141. package/build-module/cover/edit/index.js.map +1 -1
  142. package/build-module/cover/edit/inspector-controls.js +4 -8
  143. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  144. package/build-module/embed/deprecated.js +44 -5
  145. package/build-module/embed/deprecated.js.map +1 -1
  146. package/build-module/file/deprecated.js +108 -4
  147. package/build-module/file/deprecated.js.map +1 -1
  148. package/build-module/file/transforms.js +3 -8
  149. package/build-module/file/transforms.js.map +1 -1
  150. package/build-module/gallery/deprecated.js +147 -25
  151. package/build-module/gallery/deprecated.js.map +1 -1
  152. package/build-module/gallery/gallery.js +3 -2
  153. package/build-module/gallery/gallery.js.map +1 -1
  154. package/build-module/gallery/use-image-sizes.js +3 -2
  155. package/build-module/gallery/use-image-sizes.js.map +1 -1
  156. package/build-module/gallery/v1/edit.js +7 -4
  157. package/build-module/gallery/v1/edit.js.map +1 -1
  158. package/build-module/group/edit.js +101 -48
  159. package/build-module/group/edit.js.map +1 -1
  160. package/build-module/group/index.js +3 -0
  161. package/build-module/group/index.js.map +1 -1
  162. package/build-module/group/placeholder.js +154 -0
  163. package/build-module/group/placeholder.js.map +1 -0
  164. package/build-module/group/variations.js +3 -3
  165. package/build-module/group/variations.js.map +1 -1
  166. package/build-module/image/edit.native.js +1 -1
  167. package/build-module/image/edit.native.js.map +1 -1
  168. package/build-module/image/image.js +8 -11
  169. package/build-module/image/image.js.map +1 -1
  170. package/build-module/latest-comments/edit.js +2 -1
  171. package/build-module/latest-comments/edit.js.map +1 -1
  172. package/build-module/latest-comments/index.js +5 -1
  173. package/build-module/latest-comments/index.js.map +1 -1
  174. package/build-module/latest-posts/deprecated.js +13 -0
  175. package/build-module/latest-posts/deprecated.js.map +1 -1
  176. package/build-module/latest-posts/edit.js +2 -2
  177. package/build-module/latest-posts/edit.js.map +1 -1
  178. package/build-module/latest-posts/index.js +13 -0
  179. package/build-module/latest-posts/index.js.map +1 -1
  180. package/build-module/list/utils.js +5 -9
  181. package/build-module/list/utils.js.map +1 -1
  182. package/build-module/list-item/edit.js +2 -1
  183. package/build-module/list-item/edit.js.map +1 -1
  184. package/build-module/list-item/hooks/use-outdent-list-item.js +5 -6
  185. package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
  186. package/build-module/navigation/edit/index.js +96 -105
  187. package/build-module/navigation/edit/index.js.map +1 -1
  188. package/build-module/navigation/edit/manage-menus-button.js +26 -0
  189. package/build-module/navigation/edit/manage-menus-button.js.map +1 -0
  190. package/build-module/navigation/edit/navigation-menu-selector.js +13 -6
  191. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  192. package/build-module/navigation/edit/responsive-wrapper.js +2 -6
  193. package/build-module/navigation/edit/responsive-wrapper.js.map +1 -1
  194. package/build-module/navigation/edit/unsaved-inner-blocks.js +7 -18
  195. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  196. package/build-module/navigation-link/edit.js +14 -4
  197. package/build-module/navigation-link/edit.js.map +1 -1
  198. package/build-module/navigation-submenu/edit.js +4 -4
  199. package/build-module/navigation-submenu/edit.js.map +1 -1
  200. package/build-module/page-list/edit.js +29 -10
  201. package/build-module/page-list/edit.js.map +1 -1
  202. package/build-module/post-author/edit.js +35 -21
  203. package/build-module/post-author/edit.js.map +1 -1
  204. package/build-module/post-comments-count/index.js +4 -0
  205. package/build-module/post-comments-count/index.js.map +1 -1
  206. package/build-module/post-comments-form/index.js +4 -0
  207. package/build-module/post-comments-form/index.js.map +1 -1
  208. package/build-module/post-comments-link/index.js +4 -0
  209. package/build-module/post-comments-link/index.js.map +1 -1
  210. package/build-module/post-content/edit.js +14 -6
  211. package/build-module/post-content/edit.js.map +1 -1
  212. package/build-module/post-content/index.js +3 -0
  213. package/build-module/post-content/index.js.map +1 -1
  214. package/build-module/pullquote/deprecated.js +7 -7
  215. package/build-module/pullquote/deprecated.js.map +1 -1
  216. package/build-module/search/edit.js +1 -3
  217. package/build-module/search/edit.js.map +1 -1
  218. package/build-module/site-logo/edit.js +3 -3
  219. package/build-module/site-logo/edit.js.map +1 -1
  220. package/build-module/site-tagline/edit.js +23 -11
  221. package/build-module/site-tagline/edit.js.map +1 -1
  222. package/build-module/site-title/edit/index.js +22 -10
  223. package/build-module/site-title/edit/index.js.map +1 -1
  224. package/build-module/social-link/edit.js +11 -2
  225. package/build-module/social-link/edit.js.map +1 -1
  226. package/build-module/social-link/index.js +3 -0
  227. package/build-module/social-link/index.js.map +1 -1
  228. package/build-module/spacer/controls.js +4 -8
  229. package/build-module/spacer/controls.js.map +1 -1
  230. package/build-module/table/deprecated.js +282 -27
  231. package/build-module/table/deprecated.js.map +1 -1
  232. package/build-module/table/state.js +1 -1
  233. package/build-module/table/state.js.map +1 -1
  234. package/build-module/template-part/variations.js +5 -0
  235. package/build-module/template-part/variations.js.map +1 -1
  236. package/build-module/utils/clean-empty-object.js +5 -5
  237. package/build-module/utils/clean-empty-object.js.map +1 -1
  238. package/build-module/video/deprecated.js +147 -0
  239. package/build-module/video/deprecated.js.map +1 -0
  240. package/build-module/video/edit.js +45 -9
  241. package/build-module/video/edit.js.map +1 -1
  242. package/build-module/video/index.js +2 -0
  243. package/build-module/video/index.js.map +1 -1
  244. package/build-module/video/tracks-editor.js +4 -29
  245. package/build-module/video/tracks-editor.js.map +1 -1
  246. package/build-style/button/style-rtl.css +1 -0
  247. package/build-style/button/style.css +1 -0
  248. package/build-style/comment-template/style-rtl.css +1 -0
  249. package/build-style/comment-template/style.css +1 -0
  250. package/build-style/editor-rtl.css +80 -5
  251. package/build-style/editor.css +80 -5
  252. package/build-style/group/editor-rtl.css +44 -0
  253. package/build-style/group/editor.css +44 -0
  254. package/build-style/latest-comments/style-rtl.css +1 -0
  255. package/build-style/latest-comments/style.css +1 -0
  256. package/build-style/latest-posts/style-rtl.css +3 -0
  257. package/build-style/latest-posts/style.css +3 -0
  258. package/build-style/navigation/editor-rtl.css +27 -4
  259. package/build-style/navigation/editor.css +27 -4
  260. package/build-style/navigation/style-rtl.css +13 -1
  261. package/build-style/navigation/style.css +13 -1
  262. package/build-style/navigation-link/editor-rtl.css +8 -1
  263. package/build-style/navigation-link/editor.css +8 -1
  264. package/build-style/post-comments-form/style-rtl.css +3 -0
  265. package/build-style/post-comments-form/style.css +3 -0
  266. package/build-style/query/editor-rtl.css +1 -1
  267. package/build-style/query/editor.css +1 -1
  268. package/build-style/query-pagination/style-rtl.css +1 -1
  269. package/build-style/query-pagination/style.css +1 -1
  270. package/build-style/style-rtl.css +28 -2
  271. package/build-style/style.css +28 -2
  272. package/build-style/table/editor-rtl.css +1 -0
  273. package/build-style/table/editor.css +1 -0
  274. package/build-style/table/style-rtl.css +5 -0
  275. package/build-style/table/style.css +5 -0
  276. package/build-style/table/theme-rtl.css +1 -3
  277. package/build-style/table/theme.css +1 -3
  278. package/build-style/theme-rtl.css +1 -3
  279. package/build-style/theme.css +1 -3
  280. package/package.json +29 -28
  281. package/src/audio/edit.js +79 -24
  282. package/src/avatar/index.php +1 -1
  283. package/src/block/test/edit.native.js +8 -8
  284. package/src/button/block.json +4 -1
  285. package/src/button/deprecated.js +18 -2
  286. package/src/button/edit.js +12 -10
  287. package/src/button/save.js +12 -2
  288. package/src/button/style.scss +2 -0
  289. package/src/buttons/edit.native.js +1 -1
  290. package/src/buttons/test/edit.native.js +19 -19
  291. package/src/columns/test/edit.native.js +32 -32
  292. package/src/columns/transforms.js +8 -0
  293. package/src/comment-template/block.json +6 -2
  294. package/src/comment-template/style.scss +2 -0
  295. package/src/cover/edit/index.js +3 -1
  296. package/src/cover/edit/inspector-controls.js +11 -13
  297. package/src/cover/test/edit.native.js +26 -26
  298. package/src/embed/deprecated.js +53 -26
  299. package/src/embed/test/index.native.js +43 -43
  300. package/src/file/deprecated.js +130 -2
  301. package/src/file/transforms.js +3 -8
  302. package/src/gallery/deprecated.js +129 -4
  303. package/src/gallery/gallery.js +2 -0
  304. package/src/gallery/index.php +19 -10
  305. package/src/gallery/test/index.native.js +11 -11
  306. package/src/gallery/use-image-sizes.js +3 -2
  307. package/src/gallery/v1/edit.js +21 -25
  308. package/src/group/block.json +3 -0
  309. package/src/group/edit.js +105 -46
  310. package/src/group/editor.scss +48 -0
  311. package/src/group/placeholder.js +187 -0
  312. package/src/group/test/edit.native.js +3 -3
  313. package/src/group/test/placeholder.js +78 -0
  314. package/src/group/variations.js +3 -3
  315. package/src/image/edit.native.js +1 -1
  316. package/src/image/image.js +22 -10
  317. package/src/image/test/edit.native.js +17 -17
  318. package/src/latest-comments/block.json +5 -1
  319. package/src/latest-comments/edit.js +1 -0
  320. package/src/latest-comments/style.scss +3 -0
  321. package/src/latest-posts/block.json +13 -0
  322. package/src/latest-posts/edit.js +2 -2
  323. package/src/latest-posts/style.scss +3 -0
  324. package/src/list/test/edit.native.js +36 -36
  325. package/src/list/utils.js +3 -11
  326. package/src/list-item/edit.js +1 -0
  327. package/src/list-item/hooks/use-outdent-list-item.js +3 -6
  328. package/src/missing/test/edit-integration.native.js +5 -5
  329. package/src/navigation/edit/index.js +186 -161
  330. package/src/navigation/edit/manage-menus-button.js +21 -0
  331. package/src/navigation/edit/navigation-menu-selector.js +20 -5
  332. package/src/navigation/edit/responsive-wrapper.js +2 -10
  333. package/src/navigation/edit/unsaved-inner-blocks.js +5 -22
  334. package/src/navigation/editor.scss +29 -4
  335. package/src/navigation/style.scss +19 -1
  336. package/src/navigation-link/edit.js +13 -4
  337. package/src/navigation-link/editor.scss +8 -0
  338. package/src/navigation-submenu/edit.js +7 -5
  339. package/src/page-list/edit.js +36 -22
  340. package/src/post-author/edit.js +44 -20
  341. package/src/post-comments-count/block.json +4 -0
  342. package/src/post-comments-form/block.json +4 -0
  343. package/src/post-comments-form/style.scss +3 -0
  344. package/src/post-comments-link/block.json +4 -0
  345. package/src/post-content/block.json +3 -0
  346. package/src/post-content/edit.js +8 -4
  347. package/src/pullquote/deprecated.js +7 -7
  348. package/src/query/editor.scss +1 -1
  349. package/src/query-pagination/style.scss +1 -1
  350. package/src/read-more/index.php +9 -2
  351. package/src/search/edit.js +1 -1
  352. package/src/shortcode/test/edit.native.js +5 -5
  353. package/src/site-logo/edit.js +3 -3
  354. package/src/site-tagline/edit.js +25 -18
  355. package/src/site-title/edit/index.js +26 -12
  356. package/src/social-link/block.json +3 -0
  357. package/src/social-link/edit.js +8 -1
  358. package/src/social-link/index.php +11 -7
  359. package/src/social-link/test/index.native.js +10 -10
  360. package/src/social-links/test/edit.native.js +4 -4
  361. package/src/spacer/controls.js +10 -12
  362. package/src/spacer/test/index.native.js +17 -17
  363. package/src/table/deprecated.js +587 -348
  364. package/src/table/editor.scss +1 -0
  365. package/src/table/state.js +1 -1
  366. package/src/table/style.scss +7 -0
  367. package/src/table/theme.scss +1 -3
  368. package/src/template-part/index.php +5 -0
  369. package/src/template-part/variations.js +4 -0
  370. package/src/utils/clean-empty-object.js +5 -6
  371. package/src/video/deprecated.js +57 -0
  372. package/src/video/edit.js +71 -23
  373. package/src/video/index.js +2 -0
  374. package/src/video/tracks-editor.js +12 -28
@@ -3,25 +3,79 @@ import { createElement, Fragment } from "@wordpress/element";
3
3
  /**
4
4
  * WordPress dependencies
5
5
  */
6
- import { useSelect } from '@wordpress/data';
6
+ import { useDispatch, useSelect } from '@wordpress/data';
7
7
  import { InnerBlocks, useBlockProps, InspectorControls, useInnerBlocksProps, useSetting, store as blockEditorStore } from '@wordpress/block-editor';
8
8
  import { SelectControl } from '@wordpress/components';
9
9
  import { __ } from '@wordpress/i18n';
10
- const htmlElementMessages = {
11
- header: __('The <header> element should represent introductory content, typically a group of introductory or navigational aids.'),
12
- main: __('The <main> element should be used for the primary content of your document only. '),
13
- section: __("The <section> element should represent a standalone portion of the document that can't be better represented by another element."),
14
- article: __('The <article> element should represent a self contained, syndicatable portion of the document.'),
15
- aside: __("The <aside> element should represent a portion of a document whose content is only indirectly related to the document's main content."),
16
- footer: __('The <footer> element should represent a footer for its nearest sectioning element (e.g.: <section>, <article>, <main> etc.).')
17
- };
10
+ import { useCallback } from '@wordpress/element';
11
+ /**
12
+ * Internal dependencies
13
+ */
14
+
15
+ import GroupPlaceHolder, { useShouldShowPlaceHolder } from './placeholder';
16
+ /**
17
+ * Render inspector controls for the Group block.
18
+ *
19
+ * @param {Object} props Component props.
20
+ * @param {string} props.tagName The HTML tag name.
21
+ * @param {Function} props.onSelectTagName onChange function for the SelectControl.
22
+ *
23
+ * @return {JSX.Element} The control group.
24
+ */
25
+
26
+ function GroupEditControls(_ref) {
27
+ let {
28
+ tagName,
29
+ onSelectTagName
30
+ } = _ref;
31
+ const htmlElementMessages = {
32
+ header: __('The <header> element should represent introductory content, typically a group of introductory or navigational aids.'),
33
+ main: __('The <main> element should be used for the primary content of your document only. '),
34
+ section: __("The <section> element should represent a standalone portion of the document that can't be better represented by another element."),
35
+ article: __('The <article> element should represent a self-contained, syndicatable portion of the document.'),
36
+ aside: __("The <aside> element should represent a portion of a document whose content is only indirectly related to the document's main content."),
37
+ footer: __('The <footer> element should represent a footer for its nearest sectioning element (e.g.: <section>, <article>, <main> etc.).')
38
+ };
39
+ return createElement(InspectorControls, {
40
+ __experimentalGroup: "advanced"
41
+ }, createElement(SelectControl, {
42
+ label: __('HTML element'),
43
+ options: [{
44
+ label: __('Default (<div>)'),
45
+ value: 'div'
46
+ }, {
47
+ label: '<header>',
48
+ value: 'header'
49
+ }, {
50
+ label: '<main>',
51
+ value: 'main'
52
+ }, {
53
+ label: '<section>',
54
+ value: 'section'
55
+ }, {
56
+ label: '<article>',
57
+ value: 'article'
58
+ }, {
59
+ label: '<aside>',
60
+ value: 'aside'
61
+ }, {
62
+ label: '<footer>',
63
+ value: 'footer'
64
+ }],
65
+ value: tagName,
66
+ onChange: onSelectTagName,
67
+ help: htmlElementMessages[tagName]
68
+ }));
69
+ }
18
70
 
19
- function GroupEdit(_ref) {
71
+ function GroupEdit(_ref2) {
20
72
  let {
21
73
  attributes,
74
+ name,
22
75
  setAttributes,
23
- clientId
24
- } = _ref;
76
+ clientId,
77
+ __unstableLayoutClassNames: layoutClassNames
78
+ } = _ref2;
25
79
  const {
26
80
  hasInnerBlocks,
27
81
  themeSupportsLayout
@@ -38,12 +92,13 @@ function GroupEdit(_ref) {
38
92
  themeSupportsLayout: (_getSettings = getSettings()) === null || _getSettings === void 0 ? void 0 : _getSettings.supportsLayout
39
93
  };
40
94
  }, [clientId]);
41
- const defaultLayout = useSetting('layout') || {};
42
95
  const {
43
96
  tagName: TagName = 'div',
44
97
  templateLock,
45
98
  layout = {}
46
- } = attributes;
99
+ } = attributes; // Layout settings.
100
+
101
+ const defaultLayout = useSetting('layout') || {};
47
102
  const usedLayout = !(layout !== null && layout !== void 0 && layout.type) ? { ...defaultLayout,
48
103
  ...layout,
49
104
  type: 'default'
@@ -53,47 +108,45 @@ function GroupEdit(_ref) {
53
108
  const {
54
109
  type = 'default'
55
110
  } = usedLayout;
56
- const layoutSupportEnabled = themeSupportsLayout || type === 'flex';
57
- const blockProps = useBlockProps();
111
+ const layoutSupportEnabled = themeSupportsLayout || type === 'flex'; // Hooks.
112
+
113
+ const blockProps = useBlockProps({
114
+ className: !layoutSupportEnabled ? layoutClassNames : null
115
+ });
116
+ const [showPlaceholder, setShowPlaceholder] = useShouldShowPlaceHolder({
117
+ attributes,
118
+ usedLayoutType: usedLayout === null || usedLayout === void 0 ? void 0 : usedLayout.type,
119
+ hasInnerBlocks
120
+ });
58
121
  const innerBlocksProps = useInnerBlocksProps(layoutSupportEnabled ? blockProps : {
59
122
  className: 'wp-block-group__inner-container'
60
123
  }, {
61
124
  templateLock,
62
125
  renderAppender: hasInnerBlocks ? undefined : InnerBlocks.ButtonBlockAppender,
63
- __experimentalLayout: layoutSupportEnabled ? usedLayout : undefined
126
+ __experimentalLayout: layoutSupportEnabled ? usedLayout : undefined,
127
+ __unstableDisableLayoutClassNames: !layoutSupportEnabled
64
128
  });
65
- return createElement(Fragment, null, createElement(InspectorControls, {
66
- __experimentalGroup: "advanced"
67
- }, createElement(SelectControl, {
68
- label: __('HTML element'),
69
- options: [{
70
- label: __('Default (<div>)'),
71
- value: 'div'
72
- }, {
73
- label: '<header>',
74
- value: 'header'
75
- }, {
76
- label: '<main>',
77
- value: 'main'
78
- }, {
79
- label: '<section>',
80
- value: 'section'
81
- }, {
82
- label: '<article>',
83
- value: 'article'
84
- }, {
85
- label: '<aside>',
86
- value: 'aside'
87
- }, {
88
- label: '<footer>',
89
- value: 'footer'
90
- }],
91
- value: TagName,
92
- onChange: value => setAttributes({
129
+ const {
130
+ selectBlock
131
+ } = useDispatch(blockEditorStore);
132
+ const updateSelection = useCallback(newClientId => selectBlock(newClientId, -1), [selectBlock]);
133
+
134
+ const selectVariation = nextVariation => {
135
+ setAttributes(nextVariation.attributes);
136
+ updateSelection(clientId);
137
+ setShowPlaceholder(false);
138
+ };
139
+
140
+ return createElement(Fragment, null, createElement(GroupEditControls, {
141
+ tagName: TagName,
142
+ onSelectTagName: value => setAttributes({
93
143
  tagName: value
94
- }),
95
- help: htmlElementMessages[TagName]
96
- })), layoutSupportEnabled && createElement(TagName, innerBlocksProps), !layoutSupportEnabled && createElement(TagName, blockProps, createElement("div", innerBlocksProps)));
144
+ })
145
+ }), showPlaceholder && createElement(GroupPlaceHolder, {
146
+ clientId: clientId,
147
+ name: name,
148
+ onSelect: selectVariation
149
+ }), layoutSupportEnabled && !showPlaceholder && createElement(TagName, innerBlocksProps), !layoutSupportEnabled && !showPlaceholder && createElement(TagName, blockProps, createElement("div", innerBlocksProps)));
97
150
  }
98
151
 
99
152
  export default GroupEdit;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/group/edit.js"],"names":["useSelect","InnerBlocks","useBlockProps","InspectorControls","useInnerBlocksProps","useSetting","store","blockEditorStore","SelectControl","__","htmlElementMessages","header","main","section","article","aside","footer","GroupEdit","attributes","setAttributes","clientId","hasInnerBlocks","themeSupportsLayout","select","getBlock","getSettings","block","innerBlocks","length","supportsLayout","defaultLayout","tagName","TagName","templateLock","layout","usedLayout","type","layoutSupportEnabled","blockProps","innerBlocksProps","className","renderAppender","undefined","ButtonBlockAppender","__experimentalLayout","label","value"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AAEA,SACCC,WADD,EAECC,aAFD,EAGCC,iBAHD,EAICC,mBAJD,EAKCC,UALD,EAMCC,KAAK,IAAIC,gBANV,QAOO,yBAPP;AAQA,SAASC,aAAT,QAA8B,uBAA9B;AACA,SAASC,EAAT,QAAmB,iBAAnB;AAEA,MAAMC,mBAAmB,GAAG;AAC3BC,EAAAA,MAAM,EAAEF,EAAE,CACT,qHADS,CADiB;AAI3BG,EAAAA,IAAI,EAAEH,EAAE,CACP,mFADO,CAJmB;AAO3BI,EAAAA,OAAO,EAAEJ,EAAE,CACV,kIADU,CAPgB;AAU3BK,EAAAA,OAAO,EAAEL,EAAE,CACV,gGADU,CAVgB;AAa3BM,EAAAA,KAAK,EAAEN,EAAE,CACR,uIADQ,CAbkB;AAgB3BO,EAAAA,MAAM,EAAEP,EAAE,CACT,8HADS;AAhBiB,CAA5B;;AAqBA,SAASQ,SAAT,OAA8D;AAAA,MAA1C;AAAEC,IAAAA,UAAF;AAAcC,IAAAA,aAAd;AAA6BC,IAAAA;AAA7B,GAA0C;AAC7D,QAAM;AAAEC,IAAAA,cAAF;AAAkBC,IAAAA;AAAlB,MAA0CtB,SAAS,CACtDuB,MAAF,IAAc;AAAA;;AACb,UAAM;AAAEC,MAAAA,QAAF;AAAYC,MAAAA;AAAZ,QAA4BF,MAAM,CAAEhB,gBAAF,CAAxC;AACA,UAAMmB,KAAK,GAAGF,QAAQ,CAAEJ,QAAF,CAAtB;AACA,WAAO;AACNC,MAAAA,cAAc,EAAE,CAAC,EAAIK,KAAK,IAAIA,KAAK,CAACC,WAAN,CAAkBC,MAA/B,CADX;AAENN,MAAAA,mBAAmB,kBAAEG,WAAW,EAAb,iDAAE,aAAeI;AAF9B,KAAP;AAIA,GARuD,EASxD,CAAET,QAAF,CATwD,CAAzD;AAWA,QAAMU,aAAa,GAAGzB,UAAU,CAAE,QAAF,CAAV,IAA0B,EAAhD;AACA,QAAM;AAAE0B,IAAAA,OAAO,EAAEC,OAAO,GAAG,KAArB;AAA4BC,IAAAA,YAA5B;AAA0CC,IAAAA,MAAM,GAAG;AAAnD,MAA0DhB,UAAhE;AACA,QAAMiB,UAAU,GAAG,EAAED,MAAF,aAAEA,MAAF,eAAEA,MAAM,CAAEE,IAAV,IAChB,EAAE,GAAGN,aAAL;AAAoB,OAAGI,MAAvB;AAA+BE,IAAAA,IAAI,EAAE;AAArC,GADgB,GAEhB,EAAE,GAAGN,aAAL;AAAoB,OAAGI;AAAvB,GAFH;AAGA,QAAM;AAAEE,IAAAA,IAAI,GAAG;AAAT,MAAuBD,UAA7B;AACA,QAAME,oBAAoB,GAAGf,mBAAmB,IAAIc,IAAI,KAAK,MAA7D;AAEA,QAAME,UAAU,GAAGpC,aAAa,EAAhC;AAEA,QAAMqC,gBAAgB,GAAGnC,mBAAmB,CAC3CiC,oBAAoB,GACjBC,UADiB,GAEjB;AAAEE,IAAAA,SAAS,EAAE;AAAb,GAHwC,EAI3C;AACCP,IAAAA,YADD;AAECQ,IAAAA,cAAc,EAAEpB,cAAc,GAC3BqB,SAD2B,GAE3BzC,WAAW,CAAC0C,mBAJhB;AAKCC,IAAAA,oBAAoB,EAAEP,oBAAoB,GAAGF,UAAH,GAAgBO;AAL3D,GAJ2C,CAA5C;AAaA,SACC,8BACC,cAAC,iBAAD;AAAmB,IAAA,mBAAmB,EAAC;AAAvC,KACC,cAAC,aAAD;AACC,IAAA,KAAK,EAAGjC,EAAE,CAAE,cAAF,CADX;AAEC,IAAA,OAAO,EAAG,CACT;AAAEoC,MAAAA,KAAK,EAAEpC,EAAE,CAAE,iBAAF,CAAX;AAAkCqC,MAAAA,KAAK,EAAE;AAAzC,KADS,EAET;AAAED,MAAAA,KAAK,EAAE,UAAT;AAAqBC,MAAAA,KAAK,EAAE;AAA5B,KAFS,EAGT;AAAED,MAAAA,KAAK,EAAE,QAAT;AAAmBC,MAAAA,KAAK,EAAE;AAA1B,KAHS,EAIT;AAAED,MAAAA,KAAK,EAAE,WAAT;AAAsBC,MAAAA,KAAK,EAAE;AAA7B,KAJS,EAKT;AAAED,MAAAA,KAAK,EAAE,WAAT;AAAsBC,MAAAA,KAAK,EAAE;AAA7B,KALS,EAMT;AAAED,MAAAA,KAAK,EAAE,SAAT;AAAoBC,MAAAA,KAAK,EAAE;AAA3B,KANS,EAOT;AAAED,MAAAA,KAAK,EAAE,UAAT;AAAqBC,MAAAA,KAAK,EAAE;AAA5B,KAPS,CAFX;AAWC,IAAA,KAAK,EAAGd,OAXT;AAYC,IAAA,QAAQ,EAAKc,KAAF,IACV3B,aAAa,CAAE;AAAEY,MAAAA,OAAO,EAAEe;AAAX,KAAF,CAbf;AAeC,IAAA,IAAI,EAAGpC,mBAAmB,CAAEsB,OAAF;AAf3B,IADD,CADD,EAoBGK,oBAAoB,IAAI,cAAC,OAAD,EAAcE,gBAAd,CApB3B,EAuBG,CAAEF,oBAAF,IACD,cAAC,OAAD,EAAcC,UAAd,EACC,qBAAUC,gBAAV,CADD,CAxBF,CADD;AA+BA;;AAED,eAAetB,SAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\nimport {\n\tInnerBlocks,\n\tuseBlockProps,\n\tInspectorControls,\n\tuseInnerBlocksProps,\n\tuseSetting,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { SelectControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\nconst htmlElementMessages = {\n\theader: __(\n\t\t'The <header> element should represent introductory content, typically a group of introductory or navigational aids.'\n\t),\n\tmain: __(\n\t\t'The <main> element should be used for the primary content of your document only. '\n\t),\n\tsection: __(\n\t\t\"The <section> element should represent a standalone portion of the document that can't be better represented by another element.\"\n\t),\n\tarticle: __(\n\t\t'The <article> element should represent a self contained, syndicatable portion of the document.'\n\t),\n\taside: __(\n\t\t\"The <aside> element should represent a portion of a document whose content is only indirectly related to the document's main content.\"\n\t),\n\tfooter: __(\n\t\t'The <footer> element should represent a footer for its nearest sectioning element (e.g.: <section>, <article>, <main> etc.).'\n\t),\n};\n\nfunction GroupEdit( { attributes, setAttributes, clientId } ) {\n\tconst { hasInnerBlocks, themeSupportsLayout } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getSettings } = select( blockEditorStore );\n\t\t\tconst block = getBlock( clientId );\n\t\t\treturn {\n\t\t\t\thasInnerBlocks: !! ( block && block.innerBlocks.length ),\n\t\t\t\tthemeSupportsLayout: getSettings()?.supportsLayout,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst defaultLayout = useSetting( 'layout' ) || {};\n\tconst { tagName: TagName = 'div', templateLock, layout = {} } = attributes;\n\tconst usedLayout = ! layout?.type\n\t\t? { ...defaultLayout, ...layout, type: 'default' }\n\t\t: { ...defaultLayout, ...layout };\n\tconst { type = 'default' } = usedLayout;\n\tconst layoutSupportEnabled = themeSupportsLayout || type === 'flex';\n\n\tconst blockProps = useBlockProps();\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\tlayoutSupportEnabled\n\t\t\t? blockProps\n\t\t\t: { className: 'wp-block-group__inner-container' },\n\t\t{\n\t\t\ttemplateLock,\n\t\t\trenderAppender: hasInnerBlocks\n\t\t\t\t? undefined\n\t\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t\t\t__experimentalLayout: layoutSupportEnabled ? usedLayout : undefined,\n\t\t}\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls __experimentalGroup=\"advanced\">\n\t\t\t\t<SelectControl\n\t\t\t\t\tlabel={ __( 'HTML element' ) }\n\t\t\t\t\toptions={ [\n\t\t\t\t\t\t{ label: __( 'Default (<div>)' ), value: 'div' },\n\t\t\t\t\t\t{ label: '<header>', value: 'header' },\n\t\t\t\t\t\t{ label: '<main>', value: 'main' },\n\t\t\t\t\t\t{ label: '<section>', value: 'section' },\n\t\t\t\t\t\t{ label: '<article>', value: 'article' },\n\t\t\t\t\t\t{ label: '<aside>', value: 'aside' },\n\t\t\t\t\t\t{ label: '<footer>', value: 'footer' },\n\t\t\t\t\t] }\n\t\t\t\t\tvalue={ TagName }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { tagName: value } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={ htmlElementMessages[ TagName ] }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t{ layoutSupportEnabled && <TagName { ...innerBlocksProps } /> }\n\t\t\t{ /* Ideally this is not needed but it's there for backward compatibility reason\n\t\t\t\tto keep this div for themes that might rely on its presence */ }\n\t\t\t{ ! layoutSupportEnabled && (\n\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t\t</TagName>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default GroupEdit;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/group/edit.js"],"names":["useDispatch","useSelect","InnerBlocks","useBlockProps","InspectorControls","useInnerBlocksProps","useSetting","store","blockEditorStore","SelectControl","__","useCallback","GroupPlaceHolder","useShouldShowPlaceHolder","GroupEditControls","tagName","onSelectTagName","htmlElementMessages","header","main","section","article","aside","footer","label","value","GroupEdit","attributes","name","setAttributes","clientId","__unstableLayoutClassNames","layoutClassNames","hasInnerBlocks","themeSupportsLayout","select","getBlock","getSettings","block","innerBlocks","length","supportsLayout","TagName","templateLock","layout","defaultLayout","usedLayout","type","layoutSupportEnabled","blockProps","className","showPlaceholder","setShowPlaceholder","usedLayoutType","innerBlocksProps","renderAppender","undefined","ButtonBlockAppender","__experimentalLayout","__unstableDisableLayoutClassNames","selectBlock","updateSelection","newClientId","selectVariation","nextVariation"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,WAAT,EAAsBC,SAAtB,QAAuC,iBAAvC;AACA,SACCC,WADD,EAECC,aAFD,EAGCC,iBAHD,EAICC,mBAJD,EAKCC,UALD,EAMCC,KAAK,IAAIC,gBANV,QAOO,yBAPP;AAQA,SAASC,aAAT,QAA8B,uBAA9B;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,WAAT,QAA4B,oBAA5B;AAEA;AACA;AACA;;AACA,OAAOC,gBAAP,IAA2BC,wBAA3B,QAA2D,eAA3D;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,iBAAT,OAA2D;AAAA,MAA/B;AAAEC,IAAAA,OAAF;AAAWC,IAAAA;AAAX,GAA+B;AAC1D,QAAMC,mBAAmB,GAAG;AAC3BC,IAAAA,MAAM,EAAER,EAAE,CACT,qHADS,CADiB;AAI3BS,IAAAA,IAAI,EAAET,EAAE,CACP,mFADO,CAJmB;AAO3BU,IAAAA,OAAO,EAAEV,EAAE,CACV,kIADU,CAPgB;AAU3BW,IAAAA,OAAO,EAAEX,EAAE,CACV,gGADU,CAVgB;AAa3BY,IAAAA,KAAK,EAAEZ,EAAE,CACR,uIADQ,CAbkB;AAgB3Ba,IAAAA,MAAM,EAAEb,EAAE,CACT,8HADS;AAhBiB,GAA5B;AAoBA,SACC,cAAC,iBAAD;AAAmB,IAAA,mBAAmB,EAAC;AAAvC,KACC,cAAC,aAAD;AACC,IAAA,KAAK,EAAGA,EAAE,CAAE,cAAF,CADX;AAEC,IAAA,OAAO,EAAG,CACT;AAAEc,MAAAA,KAAK,EAAEd,EAAE,CAAE,iBAAF,CAAX;AAAkCe,MAAAA,KAAK,EAAE;AAAzC,KADS,EAET;AAAED,MAAAA,KAAK,EAAE,UAAT;AAAqBC,MAAAA,KAAK,EAAE;AAA5B,KAFS,EAGT;AAAED,MAAAA,KAAK,EAAE,QAAT;AAAmBC,MAAAA,KAAK,EAAE;AAA1B,KAHS,EAIT;AAAED,MAAAA,KAAK,EAAE,WAAT;AAAsBC,MAAAA,KAAK,EAAE;AAA7B,KAJS,EAKT;AAAED,MAAAA,KAAK,EAAE,WAAT;AAAsBC,MAAAA,KAAK,EAAE;AAA7B,KALS,EAMT;AAAED,MAAAA,KAAK,EAAE,SAAT;AAAoBC,MAAAA,KAAK,EAAE;AAA3B,KANS,EAOT;AAAED,MAAAA,KAAK,EAAE,UAAT;AAAqBC,MAAAA,KAAK,EAAE;AAA5B,KAPS,CAFX;AAWC,IAAA,KAAK,EAAGV,OAXT;AAYC,IAAA,QAAQ,EAAGC,eAZZ;AAaC,IAAA,IAAI,EAAGC,mBAAmB,CAAEF,OAAF;AAb3B,IADD,CADD;AAmBA;;AAED,SAASW,SAAT,QAMI;AAAA,MANgB;AACnBC,IAAAA,UADmB;AAEnBC,IAAAA,IAFmB;AAGnBC,IAAAA,aAHmB;AAInBC,IAAAA,QAJmB;AAKnBC,IAAAA,0BAA0B,EAAEC;AALT,GAMhB;AACH,QAAM;AAAEC,IAAAA,cAAF;AAAkBC,IAAAA;AAAlB,MAA0CjC,SAAS,CACtDkC,MAAF,IAAc;AAAA;;AACb,UAAM;AAAEC,MAAAA,QAAF;AAAYC,MAAAA;AAAZ,QAA4BF,MAAM,CAAE3B,gBAAF,CAAxC;AACA,UAAM8B,KAAK,GAAGF,QAAQ,CAAEN,QAAF,CAAtB;AACA,WAAO;AACNG,MAAAA,cAAc,EAAE,CAAC,EAAIK,KAAK,IAAIA,KAAK,CAACC,WAAN,CAAkBC,MAA/B,CADX;AAENN,MAAAA,mBAAmB,kBAAEG,WAAW,EAAb,iDAAE,aAAeI;AAF9B,KAAP;AAIA,GARuD,EASxD,CAAEX,QAAF,CATwD,CAAzD;AAYA,QAAM;AAAEf,IAAAA,OAAO,EAAE2B,OAAO,GAAG,KAArB;AAA4BC,IAAAA,YAA5B;AAA0CC,IAAAA,MAAM,GAAG;AAAnD,MAA0DjB,UAAhE,CAbG,CAeH;;AACA,QAAMkB,aAAa,GAAGvC,UAAU,CAAE,QAAF,CAAV,IAA0B,EAAhD;AACA,QAAMwC,UAAU,GAAG,EAAEF,MAAF,aAAEA,MAAF,eAAEA,MAAM,CAAEG,IAAV,IAChB,EAAE,GAAGF,aAAL;AAAoB,OAAGD,MAAvB;AAA+BG,IAAAA,IAAI,EAAE;AAArC,GADgB,GAEhB,EAAE,GAAGF,aAAL;AAAoB,OAAGD;AAAvB,GAFH;AAGA,QAAM;AAAEG,IAAAA,IAAI,GAAG;AAAT,MAAuBD,UAA7B;AACA,QAAME,oBAAoB,GAAGd,mBAAmB,IAAIa,IAAI,KAAK,MAA7D,CArBG,CAuBH;;AACA,QAAME,UAAU,GAAG9C,aAAa,CAAE;AACjC+C,IAAAA,SAAS,EAAE,CAAEF,oBAAF,GAAyBhB,gBAAzB,GAA4C;AADtB,GAAF,CAAhC;AAGA,QAAM,CAAEmB,eAAF,EAAmBC,kBAAnB,IAA0CvC,wBAAwB,CAAE;AACzEc,IAAAA,UADyE;AAEzE0B,IAAAA,cAAc,EAAEP,UAAF,aAAEA,UAAF,uBAAEA,UAAU,CAAEC,IAF6C;AAGzEd,IAAAA;AAHyE,GAAF,CAAxE;AAKA,QAAMqB,gBAAgB,GAAGjD,mBAAmB,CAC3C2C,oBAAoB,GACjBC,UADiB,GAEjB;AAAEC,IAAAA,SAAS,EAAE;AAAb,GAHwC,EAI3C;AACCP,IAAAA,YADD;AAECY,IAAAA,cAAc,EAAEtB,cAAc,GAC3BuB,SAD2B,GAE3BtD,WAAW,CAACuD,mBAJhB;AAKCC,IAAAA,oBAAoB,EAAEV,oBAAoB,GAAGF,UAAH,GAAgBU,SAL3D;AAMCG,IAAAA,iCAAiC,EAAE,CAAEX;AANtC,GAJ2C,CAA5C;AAcA,QAAM;AAAEY,IAAAA;AAAF,MAAkB5D,WAAW,CAAEQ,gBAAF,CAAnC;AACA,QAAMqD,eAAe,GAAGlD,WAAW,CAChCmD,WAAF,IAAmBF,WAAW,CAAEE,WAAF,EAAe,CAAC,CAAhB,CADI,EAElC,CAAEF,WAAF,CAFkC,CAAnC;;AAIA,QAAMG,eAAe,GAAKC,aAAF,IAAqB;AAC5CnC,IAAAA,aAAa,CAAEmC,aAAa,CAACrC,UAAhB,CAAb;AACAkC,IAAAA,eAAe,CAAE/B,QAAF,CAAf;AACAsB,IAAAA,kBAAkB,CAAE,KAAF,CAAlB;AACA,GAJD;;AAMA,SACC,8BACC,cAAC,iBAAD;AACC,IAAA,OAAO,EAAGV,OADX;AAEC,IAAA,eAAe,EAAKjB,KAAF,IACjBI,aAAa,CAAE;AAAEd,MAAAA,OAAO,EAAEU;AAAX,KAAF;AAHf,IADD,EAOG0B,eAAe,IAChB,cAAC,gBAAD;AACC,IAAA,QAAQ,EAAGrB,QADZ;AAEC,IAAA,IAAI,EAAGF,IAFR;AAGC,IAAA,QAAQ,EAAGmC;AAHZ,IARF,EAcGf,oBAAoB,IAAI,CAAEG,eAA1B,IACD,cAAC,OAAD,EAAcG,gBAAd,CAfF,EAmBG,CAAEN,oBAAF,IAA0B,CAAEG,eAA5B,IACD,cAAC,OAAD,EAAcF,UAAd,EACC,qBAAUK,gBAAV,CADD,CApBF,CADD;AA2BA;;AAED,eAAe5B,SAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tInnerBlocks,\n\tuseBlockProps,\n\tInspectorControls,\n\tuseInnerBlocksProps,\n\tuseSetting,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { SelectControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport GroupPlaceHolder, { useShouldShowPlaceHolder } from './placeholder';\n\n/**\n * Render inspector controls for the Group block.\n *\n * @param {Object} props Component props.\n * @param {string} props.tagName The HTML tag name.\n * @param {Function} props.onSelectTagName onChange function for the SelectControl.\n *\n * @return {JSX.Element} The control group.\n */\nfunction GroupEditControls( { tagName, onSelectTagName } ) {\n\tconst htmlElementMessages = {\n\t\theader: __(\n\t\t\t'The <header> element should represent introductory content, typically a group of introductory or navigational aids.'\n\t\t),\n\t\tmain: __(\n\t\t\t'The <main> element should be used for the primary content of your document only. '\n\t\t),\n\t\tsection: __(\n\t\t\t\"The <section> element should represent a standalone portion of the document that can't be better represented by another element.\"\n\t\t),\n\t\tarticle: __(\n\t\t\t'The <article> element should represent a self-contained, syndicatable portion of the document.'\n\t\t),\n\t\taside: __(\n\t\t\t\"The <aside> element should represent a portion of a document whose content is only indirectly related to the document's main content.\"\n\t\t),\n\t\tfooter: __(\n\t\t\t'The <footer> element should represent a footer for its nearest sectioning element (e.g.: <section>, <article>, <main> etc.).'\n\t\t),\n\t};\n\treturn (\n\t\t<InspectorControls __experimentalGroup=\"advanced\">\n\t\t\t<SelectControl\n\t\t\t\tlabel={ __( 'HTML element' ) }\n\t\t\t\toptions={ [\n\t\t\t\t\t{ label: __( 'Default (<div>)' ), value: 'div' },\n\t\t\t\t\t{ label: '<header>', value: 'header' },\n\t\t\t\t\t{ label: '<main>', value: 'main' },\n\t\t\t\t\t{ label: '<section>', value: 'section' },\n\t\t\t\t\t{ label: '<article>', value: 'article' },\n\t\t\t\t\t{ label: '<aside>', value: 'aside' },\n\t\t\t\t\t{ label: '<footer>', value: 'footer' },\n\t\t\t\t] }\n\t\t\t\tvalue={ tagName }\n\t\t\t\tonChange={ onSelectTagName }\n\t\t\t\thelp={ htmlElementMessages[ tagName ] }\n\t\t\t/>\n\t\t</InspectorControls>\n\t);\n}\n\nfunction GroupEdit( {\n\tattributes,\n\tname,\n\tsetAttributes,\n\tclientId,\n\t__unstableLayoutClassNames: layoutClassNames,\n} ) {\n\tconst { hasInnerBlocks, themeSupportsLayout } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getSettings } = select( blockEditorStore );\n\t\t\tconst block = getBlock( clientId );\n\t\t\treturn {\n\t\t\t\thasInnerBlocks: !! ( block && block.innerBlocks.length ),\n\t\t\t\tthemeSupportsLayout: getSettings()?.supportsLayout,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { tagName: TagName = 'div', templateLock, layout = {} } = attributes;\n\n\t// Layout settings.\n\tconst defaultLayout = useSetting( 'layout' ) || {};\n\tconst usedLayout = ! layout?.type\n\t\t? { ...defaultLayout, ...layout, type: 'default' }\n\t\t: { ...defaultLayout, ...layout };\n\tconst { type = 'default' } = usedLayout;\n\tconst layoutSupportEnabled = themeSupportsLayout || type === 'flex';\n\n\t// Hooks.\n\tconst blockProps = useBlockProps( {\n\t\tclassName: ! layoutSupportEnabled ? layoutClassNames : null,\n\t} );\n\tconst [ showPlaceholder, setShowPlaceholder ] = useShouldShowPlaceHolder( {\n\t\tattributes,\n\t\tusedLayoutType: usedLayout?.type,\n\t\thasInnerBlocks,\n\t} );\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\tlayoutSupportEnabled\n\t\t\t? blockProps\n\t\t\t: { className: 'wp-block-group__inner-container' },\n\t\t{\n\t\t\ttemplateLock,\n\t\t\trenderAppender: hasInnerBlocks\n\t\t\t\t? undefined\n\t\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t\t\t__experimentalLayout: layoutSupportEnabled ? usedLayout : undefined,\n\t\t\t__unstableDisableLayoutClassNames: ! layoutSupportEnabled,\n\t\t}\n\t);\n\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\tconst updateSelection = useCallback(\n\t\t( newClientId ) => selectBlock( newClientId, -1 ),\n\t\t[ selectBlock ]\n\t);\n\tconst selectVariation = ( nextVariation ) => {\n\t\tsetAttributes( nextVariation.attributes );\n\t\tupdateSelection( clientId );\n\t\tsetShowPlaceholder( false );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<GroupEditControls\n\t\t\t\ttagName={ TagName }\n\t\t\t\tonSelectTagName={ ( value ) =>\n\t\t\t\t\tsetAttributes( { tagName: value } )\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{ showPlaceholder && (\n\t\t\t\t<GroupPlaceHolder\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tname={ name }\n\t\t\t\t\tonSelect={ selectVariation }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ layoutSupportEnabled && ! showPlaceholder && (\n\t\t\t\t<TagName { ...innerBlocksProps } />\n\t\t\t) }\n\t\t\t{ /* Ideally this is not needed but it's there for backward compatibility reason\n\t\t\t\tto keep this div for themes that might rely on its presence */ }\n\t\t\t{ ! layoutSupportEnabled && ! showPlaceholder && (\n\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t\t</TagName>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default GroupEdit;\n"]}
@@ -53,6 +53,9 @@ const metadata = {
53
53
  blockGap: true
54
54
  }
55
55
  },
56
+ dimensions: {
57
+ minHeight: true
58
+ },
56
59
  __experimentalBorder: {
57
60
  color: true,
58
61
  radius: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/group/index.js"],"names":["__","group","icon","initBlock","deprecated","edit","save","transforms","variations","name","metadata","settings","example","attributes","style","color","text","background","innerBlocks","customTextColor","fontSize","content","init"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,KAAK,IAAIC,IAAlB,QAA8B,kBAA9B;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,qBAAtB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AACA,OAAOC,IAAP,MAAiB,QAAjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,QAAjB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AAEA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBT,EAAAA,IADuB;AAEvBU,EAAAA,OAAO,EAAE;AACRC,IAAAA,UAAU,EAAE;AACXC,MAAAA,KAAK,EAAE;AACNC,QAAAA,KAAK,EAAE;AACNC,UAAAA,IAAI,EAAE,SADA;AAENC,UAAAA,UAAU,EAAE;AAFN;AADD;AADI,KADJ;AASRC,IAAAA,WAAW,EAAE,CACZ;AACCT,MAAAA,IAAI,EAAE,gBADP;AAECI,MAAAA,UAAU,EAAE;AACXM,QAAAA,eAAe,EAAE,SADN;AAEXC,QAAAA,QAAQ,EAAE,OAFC;AAGXC,QAAAA,OAAO,EAAErB,EAAE,CAAE,MAAF;AAHA;AAFb,KADY,EASZ;AACCS,MAAAA,IAAI,EAAE,gBADP;AAECI,MAAAA,UAAU,EAAE;AACXM,QAAAA,eAAe,EAAE,SADN;AAEXC,QAAAA,QAAQ,EAAE,OAFC;AAGXC,QAAAA,OAAO,EAAErB,EAAE,CAAE,MAAF;AAHA;AAFb,KATY,EAiBZ;AACCS,MAAAA,IAAI,EAAE,gBADP;AAECI,MAAAA,UAAU,EAAE;AACXM,QAAAA,eAAe,EAAE,SADN;AAEXC,QAAAA,QAAQ,EAAE,OAFC;AAGXC,QAAAA,OAAO,EAAErB,EAAE,CAAE,QAAF;AAHA;AAFb,KAjBY,EAyBZ;AACCS,MAAAA,IAAI,EAAE,gBADP;AAECI,MAAAA,UAAU,EAAE;AACXM,QAAAA,eAAe,EAAE,SADN;AAEXC,QAAAA,QAAQ,EAAE,OAFC;AAGXC,QAAAA,OAAO,EAAErB,EAAE,CAAE,OAAF;AAHA;AAFb,KAzBY,EAiCZ;AACCS,MAAAA,IAAI,EAAE,gBADP;AAECI,MAAAA,UAAU,EAAE;AACXM,QAAAA,eAAe,EAAE,SADN;AAEXC,QAAAA,QAAQ,EAAE,OAFC;AAGXC,QAAAA,OAAO,EAAErB,EAAE,CAAE,OAAF;AAHA;AAFb,KAjCY,EAyCZ;AACCS,MAAAA,IAAI,EAAE,gBADP;AAECI,MAAAA,UAAU,EAAE;AACXM,QAAAA,eAAe,EAAE,SADN;AAEXC,QAAAA,QAAQ,EAAE,OAFC;AAGXC,QAAAA,OAAO,EAAErB,EAAE,CAAE,MAAF;AAHA;AAFb,KAzCY;AATL,GAFc;AA8DvBO,EAAAA,UA9DuB;AA+DvBF,EAAAA,IA/DuB;AAgEvBC,EAAAA,IAhEuB;AAiEvBF,EAAAA,UAjEuB;AAkEvBI,EAAAA;AAlEuB,CAAjB;AAqEP,OAAO,MAAMc,IAAI,GAAG,MAAMnB,SAAS,CAAE;AAAEM,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAF,CAA5B","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { group as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\nimport variations from './variations';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tstyle: {\n\t\t\t\tcolor: {\n\t\t\t\t\ttext: '#000000',\n\t\t\t\t\tbackground: '#ffffff',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#cf2e2e',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'One.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#ff6900',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Two.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#fcb900',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Three.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#00d084',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Four.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#0693e3',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Five.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#9b51e0',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Six.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n\tdeprecated,\n\tvariations,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/group/index.js"],"names":["__","group","icon","initBlock","deprecated","edit","save","transforms","variations","name","metadata","settings","example","attributes","style","color","text","background","innerBlocks","customTextColor","fontSize","content","init"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,KAAK,IAAIC,IAAlB,QAA8B,kBAA9B;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,qBAAtB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AACA,OAAOC,IAAP,MAAiB,QAAjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,QAAjB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AAEA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBT,EAAAA,IADuB;AAEvBU,EAAAA,OAAO,EAAE;AACRC,IAAAA,UAAU,EAAE;AACXC,MAAAA,KAAK,EAAE;AACNC,QAAAA,KAAK,EAAE;AACNC,UAAAA,IAAI,EAAE,SADA;AAENC,UAAAA,UAAU,EAAE;AAFN;AADD;AADI,KADJ;AASRC,IAAAA,WAAW,EAAE,CACZ;AACCT,MAAAA,IAAI,EAAE,gBADP;AAECI,MAAAA,UAAU,EAAE;AACXM,QAAAA,eAAe,EAAE,SADN;AAEXC,QAAAA,QAAQ,EAAE,OAFC;AAGXC,QAAAA,OAAO,EAAErB,EAAE,CAAE,MAAF;AAHA;AAFb,KADY,EASZ;AACCS,MAAAA,IAAI,EAAE,gBADP;AAECI,MAAAA,UAAU,EAAE;AACXM,QAAAA,eAAe,EAAE,SADN;AAEXC,QAAAA,QAAQ,EAAE,OAFC;AAGXC,QAAAA,OAAO,EAAErB,EAAE,CAAE,MAAF;AAHA;AAFb,KATY,EAiBZ;AACCS,MAAAA,IAAI,EAAE,gBADP;AAECI,MAAAA,UAAU,EAAE;AACXM,QAAAA,eAAe,EAAE,SADN;AAEXC,QAAAA,QAAQ,EAAE,OAFC;AAGXC,QAAAA,OAAO,EAAErB,EAAE,CAAE,QAAF;AAHA;AAFb,KAjBY,EAyBZ;AACCS,MAAAA,IAAI,EAAE,gBADP;AAECI,MAAAA,UAAU,EAAE;AACXM,QAAAA,eAAe,EAAE,SADN;AAEXC,QAAAA,QAAQ,EAAE,OAFC;AAGXC,QAAAA,OAAO,EAAErB,EAAE,CAAE,OAAF;AAHA;AAFb,KAzBY,EAiCZ;AACCS,MAAAA,IAAI,EAAE,gBADP;AAECI,MAAAA,UAAU,EAAE;AACXM,QAAAA,eAAe,EAAE,SADN;AAEXC,QAAAA,QAAQ,EAAE,OAFC;AAGXC,QAAAA,OAAO,EAAErB,EAAE,CAAE,OAAF;AAHA;AAFb,KAjCY,EAyCZ;AACCS,MAAAA,IAAI,EAAE,gBADP;AAECI,MAAAA,UAAU,EAAE;AACXM,QAAAA,eAAe,EAAE,SADN;AAEXC,QAAAA,QAAQ,EAAE,OAFC;AAGXC,QAAAA,OAAO,EAAErB,EAAE,CAAE,MAAF;AAHA;AAFb,KAzCY;AATL,GAFc;AA8DvBO,EAAAA,UA9DuB;AA+DvBF,EAAAA,IA/DuB;AAgEvBC,EAAAA,IAhEuB;AAiEvBF,EAAAA,UAjEuB;AAkEvBI,EAAAA;AAlEuB,CAAjB;AAqEP,OAAO,MAAMc,IAAI,GAAG,MAAMnB,SAAS,CAAE;AAAEM,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAF,CAA5B","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { group as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\nimport variations from './variations';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tstyle: {\n\t\t\t\tcolor: {\n\t\t\t\t\ttext: '#000000',\n\t\t\t\t\tbackground: '#ffffff',\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#cf2e2e',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'One.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#ff6900',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Two.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#fcb900',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Three.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#00d084',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Four.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#0693e3',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Five.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/paragraph',\n\t\t\t\tattributes: {\n\t\t\t\t\tcustomTextColor: '#9b51e0',\n\t\t\t\t\tfontSize: 'large',\n\t\t\t\t\tcontent: __( 'Six.' ),\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n\tdeprecated,\n\tvariations,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
@@ -0,0 +1,154 @@
1
+ import { createElement } from "@wordpress/element";
2
+
3
+ /**
4
+ * WordPress dependencies
5
+ */
6
+ import { useSelect } from '@wordpress/data';
7
+ import { useBlockProps } from '@wordpress/block-editor';
8
+ import { __ } from '@wordpress/i18n';
9
+ import { store as blocksStore } from '@wordpress/blocks';
10
+ import { Path, SVG, Button, Placeholder } from '@wordpress/components';
11
+ import { useState, useEffect } from '@wordpress/element';
12
+ /**
13
+ * Returns a custom variation icon.
14
+ *
15
+ * @param {string} name The block variation name.
16
+ *
17
+ * @return {JSX.Element} The SVG element.
18
+ */
19
+
20
+ const getGroupPlaceholderIcons = function () {
21
+ let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'group';
22
+ const icons = {
23
+ group: createElement(SVG, {
24
+ xmlns: "http://www.w3.org/2000/svg",
25
+ width: "44",
26
+ height: "32",
27
+ viewBox: "0 0 44 32"
28
+ }, createElement(Path, {
29
+ d: "M42 0H2C.9 0 0 .9 0 2v28c0 1.1.9 2 2 2h40c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2z" // style="fill:#ccc"
30
+
31
+ })),
32
+ 'group-row': createElement(SVG, {
33
+ xmlns: "http://www.w3.org/2000/svg",
34
+ width: "44",
35
+ height: "32",
36
+ viewBox: "0 0 44 32"
37
+ }, createElement(Path, {
38
+ d: "M42 0H23.5c-.6 0-1 .4-1 1v30c0 .6.4 1 1 1H42c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zM20.5 0H2C.9 0 0 .9 0 2v28c0 1.1.9 2 2 2h18.5c.6 0 1-.4 1-1V1c0-.6-.4-1-1-1z" // style="fill:#ccc"
39
+
40
+ })),
41
+ 'group-stack': createElement(SVG, {
42
+ xmlns: "http://www.w3.org/2000/svg",
43
+ width: "44",
44
+ height: "32",
45
+ viewBox: "0 0 44 32"
46
+ }, createElement(Path, {
47
+ d: "M42 0H2C.9 0 0 .9 0 2v12.5c0 .6.4 1 1 1h42c.6 0 1-.4 1-1V2c0-1.1-.9-2-2-2zm1 16.5H1c-.6 0-1 .4-1 1V30c0 1.1.9 2 2 2h40c1.1 0 2-.9 2-2V17.5c0-.6-.4-1-1-1z" // style="fill:#ccc"
48
+
49
+ }))
50
+ };
51
+ return icons === null || icons === void 0 ? void 0 : icons[name];
52
+ };
53
+ /**
54
+ * A custom hook to tell the Group block whether to show the variation placeholder.
55
+ *
56
+ * @param {Object} props Arguments to pass to hook.
57
+ * @param {Object} [props.attributes] The block's attributes.
58
+ * @param {string} [props.usedLayoutType] The block's current layout type.
59
+ * @param {boolean} [props.hasInnerBlocks] Whether the block has inner blocks.
60
+ *
61
+ * @return {[boolean, Function]} A state value and setter function.
62
+ */
63
+
64
+
65
+ export function useShouldShowPlaceHolder(_ref) {
66
+ let {
67
+ attributes = {
68
+ style: undefined,
69
+ backgroundColor: undefined,
70
+ textColor: undefined,
71
+ fontSize: undefined
72
+ },
73
+ usedLayoutType = '',
74
+ hasInnerBlocks = false
75
+ } = _ref;
76
+ const {
77
+ style,
78
+ backgroundColor,
79
+ textColor,
80
+ fontSize
81
+ } = attributes;
82
+ /*
83
+ * Shows the placeholder when no known styles are set,
84
+ * or when a non-default layout has been selected.
85
+ * Should the Group block support more style presets in the
86
+ * future, e.g., attributes.spacingSize, we can add them to the
87
+ * condition.
88
+ */
89
+
90
+ const [showPlaceholder, setShowPlaceholder] = useState(!hasInnerBlocks && !backgroundColor && !fontSize && !textColor && !style && usedLayoutType !== 'flex');
91
+ useEffect(() => {
92
+ if (!!hasInnerBlocks || !!backgroundColor || !!fontSize || !!textColor || !!style || usedLayoutType === 'flex') {
93
+ setShowPlaceholder(false);
94
+ }
95
+ }, [backgroundColor, fontSize, textColor, style, usedLayoutType, hasInnerBlocks]);
96
+ return [showPlaceholder, setShowPlaceholder];
97
+ }
98
+ /**
99
+ * Display group variations if none is selected.
100
+ *
101
+ * @param {Object} props Component props.
102
+ * @param {string} props.name The block's name.
103
+ * @param {Function} props.onSelect Function to set block's attributes.
104
+ *
105
+ * @return {JSX.Element} The placeholder.
106
+ */
107
+
108
+ function GroupPlaceHolder(_ref2) {
109
+ let {
110
+ name,
111
+ onSelect
112
+ } = _ref2;
113
+ const {
114
+ defaultVariation,
115
+ variations
116
+ } = useSelect(select => {
117
+ const {
118
+ getBlockVariations,
119
+ getDefaultBlockVariation
120
+ } = select(blocksStore);
121
+ return {
122
+ defaultVariation: getDefaultBlockVariation(name, 'block'),
123
+ variations: getBlockVariations(name, 'block') || []
124
+ };
125
+ }, [name]);
126
+ const blockProps = useBlockProps({
127
+ className: 'wp-block-group__placeholder'
128
+ });
129
+
130
+ const selectVariation = function () {
131
+ let nextVariation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultVariation;
132
+ return onSelect(nextVariation);
133
+ };
134
+
135
+ return createElement("div", blockProps, createElement(Placeholder, {
136
+ instructions: __('Group blocks together. Select a layout:')
137
+ }, createElement("ul", {
138
+ role: "list",
139
+ className: "wp-block-group-placeholder__variations",
140
+ "aria-label": __('Block variations')
141
+ }, variations.map(variation => createElement("li", {
142
+ key: variation.name
143
+ }, createElement(Button, {
144
+ variant: "tertiary",
145
+ icon: getGroupPlaceholderIcons(variation.name),
146
+ iconSize: 44,
147
+ onClick: () => selectVariation(variation),
148
+ className: "wp-block-group-placeholder__variation-button",
149
+ label: `${variation.title}: ${variation.description}`
150
+ }))))));
151
+ }
152
+
153
+ export default GroupPlaceHolder;
154
+ //# sourceMappingURL=placeholder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-library/src/group/placeholder.js"],"names":["useSelect","useBlockProps","__","store","blocksStore","Path","SVG","Button","Placeholder","useState","useEffect","getGroupPlaceholderIcons","name","icons","group","useShouldShowPlaceHolder","attributes","style","undefined","backgroundColor","textColor","fontSize","usedLayoutType","hasInnerBlocks","showPlaceholder","setShowPlaceholder","GroupPlaceHolder","onSelect","defaultVariation","variations","select","getBlockVariations","getDefaultBlockVariation","blockProps","className","selectVariation","nextVariation","map","variation","title","description"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AACA,SAASC,aAAT,QAA8B,yBAA9B;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,KAAK,IAAIC,WAAlB,QAAqC,mBAArC;AACA,SAASC,IAAT,EAAeC,GAAf,EAAoBC,MAApB,EAA4BC,WAA5B,QAA+C,uBAA/C;AACA,SAASC,QAAT,EAAmBC,SAAnB,QAAoC,oBAApC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,wBAAwB,GAAG,YAAsB;AAAA,MAApBC,IAAoB,uEAAb,OAAa;AACtD,QAAMC,KAAK,GAAG;AACbC,IAAAA,KAAK,EACJ,cAAC,GAAD;AACC,MAAA,KAAK,EAAC,4BADP;AAEC,MAAA,KAAK,EAAC,IAFP;AAGC,MAAA,MAAM,EAAC,IAHR;AAIC,MAAA,OAAO,EAAC;AAJT,OAMC,cAAC,IAAD;AACC,MAAA,CAAC,EAAC,4EADH,CAEC;;AAFD,MAND,CAFY;AAcb,iBACC,cAAC,GAAD;AACC,MAAA,KAAK,EAAC,4BADP;AAEC,MAAA,KAAK,EAAC,IAFP;AAGC,MAAA,MAAM,EAAC,IAHR;AAIC,MAAA,OAAO,EAAC;AAJT,OAMC,cAAC,IAAD;AACC,MAAA,CAAC,EAAC,2JADH,CAEC;;AAFD,MAND,CAfY;AA2Bb,mBACC,cAAC,GAAD;AACC,MAAA,KAAK,EAAC,4BADP;AAEC,MAAA,KAAK,EAAC,IAFP;AAGC,MAAA,MAAM,EAAC,IAHR;AAIC,MAAA,OAAO,EAAC;AAJT,OAMC,cAAC,IAAD;AACC,MAAA,CAAC,EAAC,2JADH,CAEC;;AAFD,MAND;AA5BY,GAAd;AAyCA,SAAOD,KAAP,aAAOA,KAAP,uBAAOA,KAAK,CAAID,IAAJ,CAAZ;AACA,CA3CD;AA6CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,OAAO,SAASG,wBAAT,OASH;AAAA,MATsC;AACzCC,IAAAA,UAAU,GAAG;AACZC,MAAAA,KAAK,EAAEC,SADK;AAEZC,MAAAA,eAAe,EAAED,SAFL;AAGZE,MAAAA,SAAS,EAAEF,SAHC;AAIZG,MAAAA,QAAQ,EAAEH;AAJE,KAD4B;AAOzCI,IAAAA,cAAc,GAAG,EAPwB;AAQzCC,IAAAA,cAAc,GAAG;AARwB,GAStC;AACH,QAAM;AAAEN,IAAAA,KAAF;AAASE,IAAAA,eAAT;AAA0BC,IAAAA,SAA1B;AAAqCC,IAAAA;AAArC,MAAkDL,UAAxD;AACA;AACD;AACA;AACA;AACA;AACA;AACA;;AACC,QAAM,CAAEQ,eAAF,EAAmBC,kBAAnB,IAA0ChB,QAAQ,CACvD,CAAEc,cAAF,IACC,CAAEJ,eADH,IAEC,CAAEE,QAFH,IAGC,CAAED,SAHH,IAIC,CAAEH,KAJH,IAKCK,cAAc,KAAK,MANmC,CAAxD;AASAZ,EAAAA,SAAS,CAAE,MAAM;AAChB,QACC,CAAC,CAAEa,cAAH,IACA,CAAC,CAAEJ,eADH,IAEA,CAAC,CAAEE,QAFH,IAGA,CAAC,CAAED,SAHH,IAIA,CAAC,CAAEH,KAJH,IAKAK,cAAc,KAAK,MANpB,EAOE;AACDG,MAAAA,kBAAkB,CAAE,KAAF,CAAlB;AACA;AACD,GAXQ,EAWN,CACFN,eADE,EAEFE,QAFE,EAGFD,SAHE,EAIFH,KAJE,EAKFK,cALE,EAMFC,cANE,CAXM,CAAT;AAoBA,SAAO,CAAEC,eAAF,EAAmBC,kBAAnB,CAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,gBAAT,QAAgD;AAAA,MAArB;AAAEd,IAAAA,IAAF;AAAQe,IAAAA;AAAR,GAAqB;AAC/C,QAAM;AAAEC,IAAAA,gBAAF;AAAoBC,IAAAA;AAApB,MAAmC7B,SAAS,CAC/C8B,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA,kBAAF;AAAsBC,MAAAA;AAAtB,QACLF,MAAM,CAAE1B,WAAF,CADP;AAEA,WAAO;AACNwB,MAAAA,gBAAgB,EAAEI,wBAAwB,CAAEpB,IAAF,EAAQ,OAAR,CADpC;AAENiB,MAAAA,UAAU,EAAEE,kBAAkB,CAAEnB,IAAF,EAAQ,OAAR,CAAlB,IAAuC;AAF7C,KAAP;AAIA,GARgD,EASjD,CAAEA,IAAF,CATiD,CAAlD;AAWA,QAAMqB,UAAU,GAAGhC,aAAa,CAAE;AACjCiC,IAAAA,SAAS,EAAE;AADsB,GAAF,CAAhC;;AAGA,QAAMC,eAAe,GAAG;AAAA,QAAEC,aAAF,uEAAkBR,gBAAlB;AAAA,WACvBD,QAAQ,CAAES,aAAF,CADe;AAAA,GAAxB;;AAGA,SACC,qBAAUH,UAAV,EACC,cAAC,WAAD;AACC,IAAA,YAAY,EAAG/B,EAAE,CAAE,yCAAF;AADlB,KASC;AACC,IAAA,IAAI,EAAC,MADN;AAEC,IAAA,SAAS,EAAC,wCAFX;AAGC,kBAAaA,EAAE,CAAE,kBAAF;AAHhB,KAKG2B,UAAU,CAACQ,GAAX,CAAkBC,SAAF,IACjB;AAAI,IAAA,GAAG,EAAGA,SAAS,CAAC1B;AAApB,KACC,cAAC,MAAD;AACC,IAAA,OAAO,EAAC,UADT;AAEC,IAAA,IAAI,EAAGD,wBAAwB,CAC9B2B,SAAS,CAAC1B,IADoB,CAFhC;AAKC,IAAA,QAAQ,EAAG,EALZ;AAMC,IAAA,OAAO,EAAG,MAAMuB,eAAe,CAAEG,SAAF,CANhC;AAOC,IAAA,SAAS,EAAC,8CAPX;AAQC,IAAA,KAAK,EAAI,GAAGA,SAAS,CAACC,KAAO,KAAKD,SAAS,CAACE,WAAa;AAR1D,IADD,CADC,CALH,CATD,CADD,CADD;AAmCA;;AAED,eAAed,gBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useBlockProps } from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { Path, SVG, Button, Placeholder } from '@wordpress/components';\nimport { useState, useEffect } from '@wordpress/element';\n\n/**\n * Returns a custom variation icon.\n *\n * @param {string} name The block variation name.\n *\n * @return {JSX.Element} The SVG element.\n */\nconst getGroupPlaceholderIcons = ( name = 'group' ) => {\n\tconst icons = {\n\t\tgroup: (\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"44\"\n\t\t\t\theight=\"32\"\n\t\t\t\tviewBox=\"0 0 44 32\"\n\t\t\t>\n\t\t\t\t<Path\n\t\t\t\t\td=\"M42 0H2C.9 0 0 .9 0 2v28c0 1.1.9 2 2 2h40c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2z\"\n\t\t\t\t\t// style=\"fill:#ccc\"\n\t\t\t\t/>\n\t\t\t</SVG>\n\t\t),\n\t\t'group-row': (\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"44\"\n\t\t\t\theight=\"32\"\n\t\t\t\tviewBox=\"0 0 44 32\"\n\t\t\t>\n\t\t\t\t<Path\n\t\t\t\t\td=\"M42 0H23.5c-.6 0-1 .4-1 1v30c0 .6.4 1 1 1H42c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zM20.5 0H2C.9 0 0 .9 0 2v28c0 1.1.9 2 2 2h18.5c.6 0 1-.4 1-1V1c0-.6-.4-1-1-1z\"\n\t\t\t\t\t// style=\"fill:#ccc\"\n\t\t\t\t/>\n\t\t\t</SVG>\n\t\t),\n\t\t'group-stack': (\n\t\t\t<SVG\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\twidth=\"44\"\n\t\t\t\theight=\"32\"\n\t\t\t\tviewBox=\"0 0 44 32\"\n\t\t\t>\n\t\t\t\t<Path\n\t\t\t\t\td=\"M42 0H2C.9 0 0 .9 0 2v12.5c0 .6.4 1 1 1h42c.6 0 1-.4 1-1V2c0-1.1-.9-2-2-2zm1 16.5H1c-.6 0-1 .4-1 1V30c0 1.1.9 2 2 2h40c1.1 0 2-.9 2-2V17.5c0-.6-.4-1-1-1z\"\n\t\t\t\t\t// style=\"fill:#ccc\"\n\t\t\t\t/>\n\t\t\t</SVG>\n\t\t),\n\t};\n\treturn icons?.[ name ];\n};\n\n/**\n * A custom hook to tell the Group block whether to show the variation placeholder.\n *\n * @param {Object} props Arguments to pass to hook.\n * @param {Object} [props.attributes] The block's attributes.\n * @param {string} [props.usedLayoutType] The block's current layout type.\n * @param {boolean} [props.hasInnerBlocks] Whether the block has inner blocks.\n *\n * @return {[boolean, Function]} A state value and setter function.\n */\nexport function useShouldShowPlaceHolder( {\n\tattributes = {\n\t\tstyle: undefined,\n\t\tbackgroundColor: undefined,\n\t\ttextColor: undefined,\n\t\tfontSize: undefined,\n\t},\n\tusedLayoutType = '',\n\thasInnerBlocks = false,\n} ) {\n\tconst { style, backgroundColor, textColor, fontSize } = attributes;\n\t/*\n\t * Shows the placeholder when no known styles are set,\n\t * or when a non-default layout has been selected.\n\t * Should the Group block support more style presets in the\n\t * future, e.g., attributes.spacingSize, we can add them to the\n\t * condition.\n\t */\n\tconst [ showPlaceholder, setShowPlaceholder ] = useState(\n\t\t! hasInnerBlocks &&\n\t\t\t! backgroundColor &&\n\t\t\t! fontSize &&\n\t\t\t! textColor &&\n\t\t\t! style &&\n\t\t\tusedLayoutType !== 'flex'\n\t);\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\t!! hasInnerBlocks ||\n\t\t\t!! backgroundColor ||\n\t\t\t!! fontSize ||\n\t\t\t!! textColor ||\n\t\t\t!! style ||\n\t\t\tusedLayoutType === 'flex'\n\t\t) {\n\t\t\tsetShowPlaceholder( false );\n\t\t}\n\t}, [\n\t\tbackgroundColor,\n\t\tfontSize,\n\t\ttextColor,\n\t\tstyle,\n\t\tusedLayoutType,\n\t\thasInnerBlocks,\n\t] );\n\n\treturn [ showPlaceholder, setShowPlaceholder ];\n}\n\n/**\n * Display group variations if none is selected.\n *\n * @param {Object} props Component props.\n * @param {string} props.name The block's name.\n * @param {Function} props.onSelect Function to set block's attributes.\n *\n * @return {JSX.Element} The placeholder.\n */\nfunction GroupPlaceHolder( { name, onSelect } ) {\n\tconst { defaultVariation, variations } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockVariations, getDefaultBlockVariation } =\n\t\t\t\tselect( blocksStore );\n\t\t\treturn {\n\t\t\t\tdefaultVariation: getDefaultBlockVariation( name, 'block' ),\n\t\t\t\tvariations: getBlockVariations( name, 'block' ) || [],\n\t\t\t};\n\t\t},\n\t\t[ name ]\n\t);\n\tconst blockProps = useBlockProps( {\n\t\tclassName: 'wp-block-group__placeholder',\n\t} );\n\tconst selectVariation = ( nextVariation = defaultVariation ) =>\n\t\tonSelect( nextVariation );\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<Placeholder\n\t\t\t\tinstructions={ __( 'Group blocks together. Select a layout:' ) }\n\t\t\t>\n\t\t\t\t{ /*\n\t\t\t\t * Taken from BlockVariationPicker component.\n\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t */\n\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t<ul\n\t\t\t\t\trole=\"list\"\n\t\t\t\t\tclassName=\"wp-block-group-placeholder__variations\"\n\t\t\t\t\taria-label={ __( 'Block variations' ) }\n\t\t\t\t>\n\t\t\t\t\t{ variations.map( ( variation ) => (\n\t\t\t\t\t\t<li key={ variation.name }>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\ticon={ getGroupPlaceholderIcons(\n\t\t\t\t\t\t\t\t\tvariation.name\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\ticonSize={ 44 }\n\t\t\t\t\t\t\t\tonClick={ () => selectVariation( variation ) }\n\t\t\t\t\t\t\t\tclassName=\"wp-block-group-placeholder__variation-button\"\n\t\t\t\t\t\t\t\tlabel={ `${ variation.title }: ${ variation.description }` }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t) ) }\n\t\t\t\t</ul>\n\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t</Placeholder>\n\t\t</div>\n\t);\n}\n\nexport default GroupPlaceHolder;\n"]}
@@ -13,7 +13,7 @@ const variations = [{
13
13
  }
14
14
  },
15
15
  isDefault: true,
16
- scope: ['inserter', 'transform'],
16
+ scope: ['block', 'inserter', 'transform'],
17
17
  isActive: blockAttributes => {
18
18
  var _blockAttributes$layo, _blockAttributes$layo2, _blockAttributes$layo3;
19
19
 
@@ -30,7 +30,7 @@ const variations = [{
30
30
  flexWrap: 'nowrap'
31
31
  }
32
32
  },
33
- scope: ['inserter', 'transform'],
33
+ scope: ['block', 'inserter', 'transform'],
34
34
  isActive: blockAttributes => {
35
35
  var _blockAttributes$layo4, _blockAttributes$layo5, _blockAttributes$layo6;
36
36
 
@@ -47,7 +47,7 @@ const variations = [{
47
47
  orientation: 'vertical'
48
48
  }
49
49
  },
50
- scope: ['inserter', 'transform'],
50
+ scope: ['block', 'inserter', 'transform'],
51
51
  isActive: blockAttributes => {
52
52
  var _blockAttributes$layo7, _blockAttributes$layo8;
53
53
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/group/variations.js"],"names":["__","_x","group","row","stack","variations","name","title","description","attributes","layout","type","isDefault","scope","isActive","blockAttributes","icon","flexWrap","orientation"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,EAAb,QAAuB,iBAAvB;AACA,SAASC,KAAT,EAAgBC,GAAhB,EAAqBC,KAArB,QAAkC,kBAAlC;AAEA,MAAMC,UAAU,GAAG,CAClB;AACCC,EAAAA,IAAI,EAAE,OADP;AAECC,EAAAA,KAAK,EAAEP,EAAE,CAAE,OAAF,CAFV;AAGCQ,EAAAA,WAAW,EAAER,EAAE,CAAE,+BAAF,CAHhB;AAICS,EAAAA,UAAU,EAAE;AAAEC,IAAAA,MAAM,EAAE;AAAEC,MAAAA,IAAI,EAAE;AAAR;AAAV,GAJb;AAKCC,EAAAA,SAAS,EAAE,IALZ;AAMCC,EAAAA,KAAK,EAAE,CAAE,UAAF,EAAc,WAAd,CANR;AAOCC,EAAAA,QAAQ,EAAIC,eAAF;AAAA;;AAAA,WACT,CAAEA,eAAe,CAACL,MAAlB,IACA,2BAAEK,eAAe,CAACL,MAAlB,kDAAE,sBAAwBC,IAA1B,CADA,IAEA,2BAAAI,eAAe,CAACL,MAAhB,kFAAwBC,IAAxB,MAAiC,SAFjC,IAGA,2BAAAI,eAAe,CAACL,MAAhB,kFAAwBC,IAAxB,MAAiC,aAJxB;AAAA,GAPX;AAYCK,EAAAA,IAAI,EAAEd;AAZP,CADkB,EAelB;AACCI,EAAAA,IAAI,EAAE,WADP;AAECC,EAAAA,KAAK,EAAEN,EAAE,CAAE,KAAF,EAAS,wBAAT,CAFV;AAGCO,EAAAA,WAAW,EAAER,EAAE,CAAE,8BAAF,CAHhB;AAICS,EAAAA,UAAU,EAAE;AAAEC,IAAAA,MAAM,EAAE;AAAEC,MAAAA,IAAI,EAAE,MAAR;AAAgBM,MAAAA,QAAQ,EAAE;AAA1B;AAAV,GAJb;AAKCJ,EAAAA,KAAK,EAAE,CAAE,UAAF,EAAc,WAAd,CALR;AAMCC,EAAAA,QAAQ,EAAIC,eAAF;AAAA;;AAAA,WACT,2BAAAA,eAAe,CAACL,MAAhB,kFAAwBC,IAAxB,MAAiC,MAAjC,KACE,4BAAEI,eAAe,CAACL,MAAlB,mDAAE,uBAAwBQ,WAA1B,KACD,2BAAAH,eAAe,CAACL,MAAhB,kFAAwBQ,WAAxB,MAAwC,YAFzC,CADS;AAAA,GANX;AAUCF,EAAAA,IAAI,EAAEb;AAVP,CAfkB,EA2BlB;AACCG,EAAAA,IAAI,EAAE,aADP;AAECC,EAAAA,KAAK,EAAEP,EAAE,CAAE,OAAF,CAFV;AAGCQ,EAAAA,WAAW,EAAER,EAAE,CAAE,4BAAF,CAHhB;AAICS,EAAAA,UAAU,EAAE;AAAEC,IAAAA,MAAM,EAAE;AAAEC,MAAAA,IAAI,EAAE,MAAR;AAAgBO,MAAAA,WAAW,EAAE;AAA7B;AAAV,GAJb;AAKCL,EAAAA,KAAK,EAAE,CAAE,UAAF,EAAc,WAAd,CALR;AAMCC,EAAAA,QAAQ,EAAIC,eAAF;AAAA;;AAAA,WACT,2BAAAA,eAAe,CAACL,MAAhB,kFAAwBC,IAAxB,MAAiC,MAAjC,IACA,2BAAAI,eAAe,CAACL,MAAhB,kFAAwBQ,WAAxB,MAAwC,UAF/B;AAAA,GANX;AASCF,EAAAA,IAAI,EAAEZ;AATP,CA3BkB,CAAnB;AAwCA,eAAeC,UAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { group, row, stack } from '@wordpress/icons';\n\nconst variations = [\n\t{\n\t\tname: 'group',\n\t\ttitle: __( 'Group' ),\n\t\tdescription: __( 'Gather blocks in a container.' ),\n\t\tattributes: { layout: { type: 'constrained' } },\n\t\tisDefault: true,\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\t! blockAttributes.layout ||\n\t\t\t! blockAttributes.layout?.type ||\n\t\t\tblockAttributes.layout?.type === 'default' ||\n\t\t\tblockAttributes.layout?.type === 'constrained',\n\t\ticon: group,\n\t},\n\t{\n\t\tname: 'group-row',\n\t\ttitle: _x( 'Row', 'single horizontal line' ),\n\t\tdescription: __( 'Arrange blocks horizontally.' ),\n\t\tattributes: { layout: { type: 'flex', flexWrap: 'nowrap' } },\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\tblockAttributes.layout?.type === 'flex' &&\n\t\t\t( ! blockAttributes.layout?.orientation ||\n\t\t\t\tblockAttributes.layout?.orientation === 'horizontal' ),\n\t\ticon: row,\n\t},\n\t{\n\t\tname: 'group-stack',\n\t\ttitle: __( 'Stack' ),\n\t\tdescription: __( 'Arrange blocks vertically.' ),\n\t\tattributes: { layout: { type: 'flex', orientation: 'vertical' } },\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\tblockAttributes.layout?.type === 'flex' &&\n\t\t\tblockAttributes.layout?.orientation === 'vertical',\n\t\ticon: stack,\n\t},\n];\n\nexport default variations;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/group/variations.js"],"names":["__","_x","group","row","stack","variations","name","title","description","attributes","layout","type","isDefault","scope","isActive","blockAttributes","icon","flexWrap","orientation"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAT,EAAaC,EAAb,QAAuB,iBAAvB;AACA,SAASC,KAAT,EAAgBC,GAAhB,EAAqBC,KAArB,QAAkC,kBAAlC;AAEA,MAAMC,UAAU,GAAG,CAClB;AACCC,EAAAA,IAAI,EAAE,OADP;AAECC,EAAAA,KAAK,EAAEP,EAAE,CAAE,OAAF,CAFV;AAGCQ,EAAAA,WAAW,EAAER,EAAE,CAAE,+BAAF,CAHhB;AAICS,EAAAA,UAAU,EAAE;AAAEC,IAAAA,MAAM,EAAE;AAAEC,MAAAA,IAAI,EAAE;AAAR;AAAV,GAJb;AAKCC,EAAAA,SAAS,EAAE,IALZ;AAMCC,EAAAA,KAAK,EAAE,CAAE,OAAF,EAAW,UAAX,EAAuB,WAAvB,CANR;AAOCC,EAAAA,QAAQ,EAAIC,eAAF;AAAA;;AAAA,WACT,CAAEA,eAAe,CAACL,MAAlB,IACA,2BAAEK,eAAe,CAACL,MAAlB,kDAAE,sBAAwBC,IAA1B,CADA,IAEA,2BAAAI,eAAe,CAACL,MAAhB,kFAAwBC,IAAxB,MAAiC,SAFjC,IAGA,2BAAAI,eAAe,CAACL,MAAhB,kFAAwBC,IAAxB,MAAiC,aAJxB;AAAA,GAPX;AAYCK,EAAAA,IAAI,EAAEd;AAZP,CADkB,EAelB;AACCI,EAAAA,IAAI,EAAE,WADP;AAECC,EAAAA,KAAK,EAAEN,EAAE,CAAE,KAAF,EAAS,wBAAT,CAFV;AAGCO,EAAAA,WAAW,EAAER,EAAE,CAAE,8BAAF,CAHhB;AAICS,EAAAA,UAAU,EAAE;AAAEC,IAAAA,MAAM,EAAE;AAAEC,MAAAA,IAAI,EAAE,MAAR;AAAgBM,MAAAA,QAAQ,EAAE;AAA1B;AAAV,GAJb;AAKCJ,EAAAA,KAAK,EAAE,CAAE,OAAF,EAAW,UAAX,EAAuB,WAAvB,CALR;AAMCC,EAAAA,QAAQ,EAAIC,eAAF;AAAA;;AAAA,WACT,2BAAAA,eAAe,CAACL,MAAhB,kFAAwBC,IAAxB,MAAiC,MAAjC,KACE,4BAAEI,eAAe,CAACL,MAAlB,mDAAE,uBAAwBQ,WAA1B,KACD,2BAAAH,eAAe,CAACL,MAAhB,kFAAwBQ,WAAxB,MAAwC,YAFzC,CADS;AAAA,GANX;AAUCF,EAAAA,IAAI,EAAEb;AAVP,CAfkB,EA2BlB;AACCG,EAAAA,IAAI,EAAE,aADP;AAECC,EAAAA,KAAK,EAAEP,EAAE,CAAE,OAAF,CAFV;AAGCQ,EAAAA,WAAW,EAAER,EAAE,CAAE,4BAAF,CAHhB;AAICS,EAAAA,UAAU,EAAE;AAAEC,IAAAA,MAAM,EAAE;AAAEC,MAAAA,IAAI,EAAE,MAAR;AAAgBO,MAAAA,WAAW,EAAE;AAA7B;AAAV,GAJb;AAKCL,EAAAA,KAAK,EAAE,CAAE,OAAF,EAAW,UAAX,EAAuB,WAAvB,CALR;AAMCC,EAAAA,QAAQ,EAAIC,eAAF;AAAA;;AAAA,WACT,2BAAAA,eAAe,CAACL,MAAhB,kFAAwBC,IAAxB,MAAiC,MAAjC,IACA,2BAAAI,eAAe,CAACL,MAAhB,kFAAwBQ,WAAxB,MAAwC,UAF/B;AAAA,GANX;AASCF,EAAAA,IAAI,EAAEZ;AATP,CA3BkB,CAAnB;AAwCA,eAAeC,UAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { group, row, stack } from '@wordpress/icons';\n\nconst variations = [\n\t{\n\t\tname: 'group',\n\t\ttitle: __( 'Group' ),\n\t\tdescription: __( 'Gather blocks in a container.' ),\n\t\tattributes: { layout: { type: 'constrained' } },\n\t\tisDefault: true,\n\t\tscope: [ 'block', 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\t! blockAttributes.layout ||\n\t\t\t! blockAttributes.layout?.type ||\n\t\t\tblockAttributes.layout?.type === 'default' ||\n\t\t\tblockAttributes.layout?.type === 'constrained',\n\t\ticon: group,\n\t},\n\t{\n\t\tname: 'group-row',\n\t\ttitle: _x( 'Row', 'single horizontal line' ),\n\t\tdescription: __( 'Arrange blocks horizontally.' ),\n\t\tattributes: { layout: { type: 'flex', flexWrap: 'nowrap' } },\n\t\tscope: [ 'block', 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\tblockAttributes.layout?.type === 'flex' &&\n\t\t\t( ! blockAttributes.layout?.orientation ||\n\t\t\t\tblockAttributes.layout?.orientation === 'horizontal' ),\n\t\ticon: row,\n\t},\n\t{\n\t\tname: 'group-stack',\n\t\ttitle: __( 'Stack' ),\n\t\tdescription: __( 'Arrange blocks vertically.' ),\n\t\tattributes: { layout: { type: 'flex', orientation: 'vertical' } },\n\t\tscope: [ 'block', 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\tblockAttributes.layout?.type === 'flex' &&\n\t\t\tblockAttributes.layout?.orientation === 'vertical',\n\t\ticon: stack,\n\t},\n];\n\nexport default variations;\n"]}
@@ -784,7 +784,7 @@ export class ImageEdit extends Component {
784
784
  }))), createElement(BlockCaption, {
785
785
  clientId: this.props.clientId,
786
786
  isSelected: this.state.isCaptionSelected,
787
- accessible: true,
787
+ accessible: !this.state.isCaptionSelected,
788
788
  accessibilityLabelCreator: this.accessibilityLabelCreator,
789
789
  onFocus: this.onFocusCaption,
790
790
  onBlur: this.props.onBlur // Always assign onBlur as props.