@wordpress/block-library 8.33.0 → 8.35.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 (900) hide show
  1. package/CHANGELOG.md +10 -3
  2. package/build/audio/edit.js +2 -2
  3. package/build/audio/edit.js.map +1 -1
  4. package/build/avatar/edit.js +2 -2
  5. package/build/avatar/edit.js.map +1 -1
  6. package/build/block/edit.js +25 -160
  7. package/build/block/edit.js.map +1 -1
  8. package/build/block-keyboard-shortcuts/index.js +95 -0
  9. package/build/block-keyboard-shortcuts/index.js.map +1 -0
  10. package/build/button/deprecated.js +16 -16
  11. package/build/button/deprecated.js.map +1 -1
  12. package/build/button/edit.js +3 -7
  13. package/build/button/edit.js.map +1 -1
  14. package/build/button/index.js +1 -0
  15. package/build/button/index.js.map +1 -1
  16. package/build/button/save.js +3 -3
  17. package/build/button/save.js.map +1 -1
  18. package/build/buttons/deprecated.js +2 -2
  19. package/build/buttons/deprecated.js.map +1 -1
  20. package/build/buttons/edit.js +2 -2
  21. package/build/buttons/edit.js.map +1 -1
  22. package/build/buttons/save.js +2 -2
  23. package/build/buttons/save.js.map +1 -1
  24. package/build/categories/edit.js +2 -2
  25. package/build/categories/edit.js.map +1 -1
  26. package/build/column/deprecated.js +2 -2
  27. package/build/column/deprecated.js.map +1 -1
  28. package/build/column/edit.js +30 -21
  29. package/build/column/edit.js.map +1 -1
  30. package/build/column/edit.native.js +3 -1
  31. package/build/column/edit.native.js.map +1 -1
  32. package/build/column/save.js +2 -2
  33. package/build/column/save.js.map +1 -1
  34. package/build/columns/deprecated.js +3 -3
  35. package/build/columns/deprecated.js.map +1 -1
  36. package/build/columns/edit.js +70 -54
  37. package/build/columns/edit.js.map +1 -1
  38. package/build/columns/save.js +2 -2
  39. package/build/columns/save.js.map +1 -1
  40. package/build/columns/variations.js +18 -28
  41. package/build/columns/variations.js.map +1 -1
  42. package/build/comment-author-name/edit.js +2 -2
  43. package/build/comment-author-name/edit.js.map +1 -1
  44. package/build/comment-content/edit.js +2 -2
  45. package/build/comment-content/edit.js.map +1 -1
  46. package/build/comment-edit-link/edit.js +2 -2
  47. package/build/comment-edit-link/edit.js.map +1 -1
  48. package/build/comment-reply-link/edit.js +2 -2
  49. package/build/comment-reply-link/edit.js.map +1 -1
  50. package/build/comment-template/util.js +3 -1
  51. package/build/comment-template/util.js.map +1 -1
  52. package/build/comments/edit/comments-legacy.js +2 -2
  53. package/build/comments/edit/comments-legacy.js.map +1 -1
  54. package/build/comments-title/edit.js +2 -2
  55. package/build/comments-title/edit.js.map +1 -1
  56. package/build/cover/deprecated.js +38 -38
  57. package/build/cover/deprecated.js.map +1 -1
  58. package/build/cover/edit/index.js +6 -6
  59. package/build/cover/edit/index.js.map +1 -1
  60. package/build/cover/edit/resizable-cover-popover.js +2 -2
  61. package/build/cover/edit/resizable-cover-popover.js.map +1 -1
  62. package/build/cover/edit.native.js +2 -2
  63. package/build/cover/edit.native.js.map +1 -1
  64. package/build/cover/save.js +5 -5
  65. package/build/cover/save.js.map +1 -1
  66. package/build/cover/shared.js +3 -1
  67. package/build/cover/shared.js.map +1 -1
  68. package/build/embed/deprecated.js +3 -3
  69. package/build/embed/deprecated.js.map +1 -1
  70. package/build/embed/edit.js +2 -2
  71. package/build/embed/edit.js.map +1 -1
  72. package/build/embed/edit.native.js +2 -2
  73. package/build/embed/edit.native.js.map +1 -1
  74. package/build/embed/embed-placeholder.js +8 -3
  75. package/build/embed/embed-placeholder.js.map +1 -1
  76. package/build/embed/embed-preview.js +3 -3
  77. package/build/embed/embed-preview.js.map +1 -1
  78. package/build/embed/embed-preview.native.js +2 -2
  79. package/build/embed/embed-preview.native.js.map +1 -1
  80. package/build/embed/icons.js +7 -1
  81. package/build/embed/icons.js.map +1 -1
  82. package/build/embed/save.js +2 -2
  83. package/build/embed/save.js.map +1 -1
  84. package/build/embed/util.js +13 -9
  85. package/build/embed/util.js.map +1 -1
  86. package/build/embed/variations.js +12 -1
  87. package/build/embed/variations.js.map +1 -1
  88. package/build/embed/wp-embed-preview.js +6 -2
  89. package/build/embed/wp-embed-preview.js.map +1 -1
  90. package/build/file/deprecated.js +2 -2
  91. package/build/file/deprecated.js.map +1 -1
  92. package/build/file/edit.js +3 -3
  93. package/build/file/edit.js.map +1 -1
  94. package/build/file/save.js +2 -2
  95. package/build/file/save.js.map +1 -1
  96. package/build/form-input/deprecated.js +3 -3
  97. package/build/form-input/deprecated.js.map +1 -1
  98. package/build/form-input/edit.js +4 -4
  99. package/build/form-input/edit.js.map +1 -1
  100. package/build/form-input/save.js +3 -3
  101. package/build/form-input/save.js.map +1 -1
  102. package/build/form-submission-notification/edit.js +2 -2
  103. package/build/form-submission-notification/edit.js.map +1 -1
  104. package/build/form-submission-notification/save.js +2 -2
  105. package/build/form-submission-notification/save.js.map +1 -1
  106. package/build/gallery/deprecated.js +3 -3
  107. package/build/gallery/deprecated.js.map +1 -1
  108. package/build/gallery/edit.js +2 -2
  109. package/build/gallery/edit.js.map +1 -1
  110. package/build/gallery/gallery.js +2 -2
  111. package/build/gallery/gallery.js.map +1 -1
  112. package/build/gallery/save.js +3 -3
  113. package/build/gallery/save.js.map +1 -1
  114. package/build/gallery/v1/gallery-image.js +2 -2
  115. package/build/gallery/v1/gallery-image.js.map +1 -1
  116. package/build/gallery/v1/gallery.js +3 -3
  117. package/build/gallery/v1/gallery.js.map +1 -1
  118. package/build/gallery/v1/save.js +3 -3
  119. package/build/gallery/v1/save.js.map +1 -1
  120. package/build/group/deprecated.js +4 -4
  121. package/build/group/deprecated.js.map +1 -1
  122. package/build/group/index.js +0 -8
  123. package/build/group/index.js.map +1 -1
  124. package/build/group/placeholder.js +18 -19
  125. package/build/group/placeholder.js.map +1 -1
  126. package/build/heading/deprecated.js +6 -6
  127. package/build/heading/deprecated.js.map +1 -1
  128. package/build/heading/edit.js +2 -19
  129. package/build/heading/edit.js.map +1 -1
  130. package/build/heading/edit.native.js +2 -2
  131. package/build/heading/edit.native.js.map +1 -1
  132. package/build/heading/index.js +1 -0
  133. package/build/heading/index.js.map +1 -1
  134. package/build/heading/save.js +2 -2
  135. package/build/heading/save.js.map +1 -1
  136. package/build/home-link/edit.js +2 -2
  137. package/build/home-link/edit.js.map +1 -1
  138. package/build/html/edit.js +0 -2
  139. package/build/html/edit.js.map +1 -1
  140. package/build/image/deprecated.js +10 -10
  141. package/build/image/deprecated.js.map +1 -1
  142. package/build/image/edit.js +7 -5
  143. package/build/image/edit.js.map +1 -1
  144. package/build/image/image.js +8 -4
  145. package/build/image/image.js.map +1 -1
  146. package/build/image/save.js +3 -3
  147. package/build/image/save.js.map +1 -1
  148. package/build/image/view.js +3 -1
  149. package/build/image/view.js.map +1 -1
  150. package/build/index.js +9 -1
  151. package/build/index.js.map +1 -1
  152. package/build/latest-posts/edit.js +5 -5
  153. package/build/latest-posts/edit.js.map +1 -1
  154. package/build/list/deprecated.js +90 -1
  155. package/build/list/deprecated.js.map +1 -1
  156. package/build/list/index.js +0 -2
  157. package/build/list/index.js.map +1 -1
  158. package/build/list-item/edit.js +1 -8
  159. package/build/list-item/edit.js.map +1 -1
  160. package/build/list-item/hooks/use-merge.js +12 -4
  161. package/build/list-item/hooks/use-merge.js.map +1 -1
  162. package/build/list-item/hooks/use-outdent-list-item.js +15 -5
  163. package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
  164. package/build/list-item/index.js +2 -1
  165. package/build/list-item/index.js.map +1 -1
  166. package/build/media-text/deprecated.js +10 -10
  167. package/build/media-text/deprecated.js.map +1 -1
  168. package/build/media-text/edit.js +2 -2
  169. package/build/media-text/edit.js.map +1 -1
  170. package/build/media-text/media-container.js +2 -2
  171. package/build/media-text/media-container.js.map +1 -1
  172. package/build/media-text/save.js +3 -3
  173. package/build/media-text/save.js.map +1 -1
  174. package/build/navigation/edit/are-blocks-dirty.js +9 -3
  175. package/build/navigation/edit/are-blocks-dirty.js.map +1 -1
  176. package/build/navigation/edit/deleted-navigation-warning.js +1 -1
  177. package/build/navigation/edit/deleted-navigation-warning.js.map +1 -1
  178. package/build/navigation/edit/index.js +3 -3
  179. package/build/navigation/edit/index.js.map +1 -1
  180. package/build/navigation/edit/menu-inspector-controls.js +3 -1
  181. package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
  182. package/build/navigation/edit/navigation-menu-selector.js +1 -1
  183. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  184. package/build/navigation/edit/responsive-wrapper.js +3 -3
  185. package/build/navigation/edit/responsive-wrapper.js.map +1 -1
  186. package/build/navigation/edit/utils.js +2 -2
  187. package/build/navigation/edit/utils.js.map +1 -1
  188. package/build/navigation/index.js +0 -9
  189. package/build/navigation/index.js.map +1 -1
  190. package/build/navigation/view.js +3 -1
  191. package/build/navigation/view.js.map +1 -1
  192. package/build/navigation-link/edit.js +97 -88
  193. package/build/navigation-link/edit.js.map +1 -1
  194. package/build/navigation-link/link-ui.js +2 -7
  195. package/build/navigation-link/link-ui.js.map +1 -1
  196. package/build/navigation-submenu/edit.js +2 -2
  197. package/build/navigation-submenu/edit.js.map +1 -1
  198. package/build/page-list/edit.js +2 -2
  199. package/build/page-list/edit.js.map +1 -1
  200. package/build/page-list-item/edit.js +3 -3
  201. package/build/page-list-item/edit.js.map +1 -1
  202. package/build/paragraph/deprecated.js +6 -6
  203. package/build/paragraph/deprecated.js.map +1 -1
  204. package/build/paragraph/edit.js +2 -18
  205. package/build/paragraph/edit.js.map +1 -1
  206. package/build/paragraph/index.js +1 -1
  207. package/build/paragraph/index.js.map +1 -1
  208. package/build/paragraph/save.js +2 -2
  209. package/build/paragraph/save.js.map +1 -1
  210. package/build/paragraph/transforms.js +1 -1
  211. package/build/paragraph/transforms.js.map +1 -1
  212. package/build/pattern/edit.js +1 -1
  213. package/build/pattern/edit.js.map +1 -1
  214. package/build/post-author/edit.js +2 -2
  215. package/build/post-author/edit.js.map +1 -1
  216. package/build/post-author-biography/edit.js +2 -2
  217. package/build/post-author-biography/edit.js.map +1 -1
  218. package/build/post-author-name/edit.js +2 -2
  219. package/build/post-author-name/edit.js.map +1 -1
  220. package/build/post-comments-count/edit.js +2 -2
  221. package/build/post-comments-count/edit.js.map +1 -1
  222. package/build/post-comments-form/edit.js +2 -2
  223. package/build/post-comments-form/edit.js.map +1 -1
  224. package/build/post-comments-form/form.js +2 -2
  225. package/build/post-comments-form/form.js.map +1 -1
  226. package/build/post-comments-link/edit.js +2 -2
  227. package/build/post-comments-link/edit.js.map +1 -1
  228. package/build/post-date/edit.js +2 -2
  229. package/build/post-date/edit.js.map +1 -1
  230. package/build/post-excerpt/edit.js +6 -4
  231. package/build/post-excerpt/edit.js.map +1 -1
  232. package/build/post-featured-image/dimension-controls.js +23 -29
  233. package/build/post-featured-image/dimension-controls.js.map +1 -1
  234. package/build/post-featured-image/edit.js +3 -3
  235. package/build/post-featured-image/edit.js.map +1 -1
  236. package/build/post-featured-image/overlay.js +2 -2
  237. package/build/post-featured-image/overlay.js.map +1 -1
  238. package/build/post-navigation-link/edit.js +2 -2
  239. package/build/post-navigation-link/edit.js.map +1 -1
  240. package/build/post-navigation-link/variations.js +3 -1
  241. package/build/post-navigation-link/variations.js.map +1 -1
  242. package/build/post-template/edit.js +22 -12
  243. package/build/post-template/edit.js.map +1 -1
  244. package/build/post-terms/edit.js +5 -3
  245. package/build/post-terms/edit.js.map +1 -1
  246. package/build/post-time-to-read/edit.js +3 -3
  247. package/build/post-time-to-read/edit.js.map +1 -1
  248. package/build/post-title/edit.js +2 -2
  249. package/build/post-title/edit.js.map +1 -1
  250. package/build/private-apis.js +21 -0
  251. package/build/private-apis.js.map +1 -0
  252. package/build/pullquote/deprecated.js +7 -7
  253. package/build/pullquote/deprecated.js.map +1 -1
  254. package/build/pullquote/edit.js +2 -2
  255. package/build/pullquote/edit.js.map +1 -1
  256. package/build/pullquote/save.js +2 -2
  257. package/build/pullquote/save.js.map +1 -1
  258. package/build/query/edit/enhanced-pagination-modal.js +1 -1
  259. package/build/query/edit/enhanced-pagination-modal.js.map +1 -1
  260. package/build/query/edit/inspector-controls/author-control.js +6 -2
  261. package/build/query/edit/inspector-controls/author-control.js.map +1 -1
  262. package/build/query/edit/inspector-controls/create-new-post-link.js +3 -1
  263. package/build/query/edit/inspector-controls/create-new-post-link.js.map +1 -1
  264. package/build/query/edit/inspector-controls/enhanced-pagination-control.js +6 -3
  265. package/build/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
  266. package/build/query/edit/inspector-controls/parent-control.js +18 -6
  267. package/build/query/edit/inspector-controls/parent-control.js.map +1 -1
  268. package/build/query/edit/inspector-controls/taxonomy-controls.js +9 -3
  269. package/build/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  270. package/build/query/utils.js +3 -1
  271. package/build/query/utils.js.map +1 -1
  272. package/build/query-title/edit.js +2 -2
  273. package/build/query-title/edit.js.map +1 -1
  274. package/build/query-title/variations.js +3 -1
  275. package/build/query-title/variations.js.map +1 -1
  276. package/build/quote/deprecated.js +3 -3
  277. package/build/quote/deprecated.js.map +1 -1
  278. package/build/quote/edit.js +2 -2
  279. package/build/quote/edit.js.map +1 -1
  280. package/build/quote/save.js +2 -2
  281. package/build/quote/save.js.map +1 -1
  282. package/build/rss/edit.js +8 -6
  283. package/build/rss/edit.js.map +1 -1
  284. package/build/search/edit.js +6 -6
  285. package/build/search/edit.js.map +1 -1
  286. package/build/search/edit.native.js +2 -2
  287. package/build/search/edit.native.js.map +1 -1
  288. package/build/separator/deprecated.js +2 -2
  289. package/build/separator/deprecated.js.map +1 -1
  290. package/build/separator/edit.js +2 -2
  291. package/build/separator/edit.js.map +1 -1
  292. package/build/separator/save.js +2 -2
  293. package/build/separator/save.js.map +1 -1
  294. package/build/shortcode/edit.js +7 -10
  295. package/build/shortcode/edit.js.map +1 -1
  296. package/build/site-logo/edit.js +4 -4
  297. package/build/site-logo/edit.js.map +1 -1
  298. package/build/site-tagline/edit.js +2 -2
  299. package/build/site-tagline/edit.js.map +1 -1
  300. package/build/site-title/edit.js +2 -2
  301. package/build/site-title/edit.js.map +1 -1
  302. package/build/social-link/edit.js +4 -4
  303. package/build/social-link/edit.js.map +1 -1
  304. package/build/social-link/variations.js +3 -1
  305. package/build/social-link/variations.js.map +1 -1
  306. package/build/social-links/deprecated.js +2 -2
  307. package/build/social-links/deprecated.js.map +1 -1
  308. package/build/social-links/edit.js +2 -2
  309. package/build/social-links/edit.js.map +1 -1
  310. package/build/social-links/save.js +2 -2
  311. package/build/social-links/save.js.map +1 -1
  312. package/build/spacer/edit.js +3 -3
  313. package/build/spacer/edit.js.map +1 -1
  314. package/build/table/deprecated.js +8 -8
  315. package/build/table/deprecated.js.map +1 -1
  316. package/build/table/edit.js +3 -3
  317. package/build/table/edit.js.map +1 -1
  318. package/build/table/save.js +3 -3
  319. package/build/table/save.js.map +1 -1
  320. package/build/template-part/variations.js +6 -2
  321. package/build/template-part/variations.js.map +1 -1
  322. package/build/term-description/edit.js +2 -2
  323. package/build/term-description/edit.js.map +1 -1
  324. package/build/utils/caption.js +2 -2
  325. package/build/utils/caption.js.map +1 -1
  326. package/build/verse/deprecated.js +2 -2
  327. package/build/verse/deprecated.js.map +1 -1
  328. package/build/verse/edit.js +2 -2
  329. package/build/verse/edit.js.map +1 -1
  330. package/build/verse/save.js +2 -2
  331. package/build/verse/save.js.map +1 -1
  332. package/build/video/edit.js +2 -2
  333. package/build/video/edit.js.map +1 -1
  334. package/build-module/audio/edit.js +2 -2
  335. package/build-module/audio/edit.js.map +1 -1
  336. package/build-module/avatar/edit.js +2 -2
  337. package/build-module/avatar/edit.js.map +1 -1
  338. package/build-module/block/edit.js +29 -164
  339. package/build-module/block/edit.js.map +1 -1
  340. package/build-module/block-keyboard-shortcuts/index.js +88 -0
  341. package/build-module/block-keyboard-shortcuts/index.js.map +1 -0
  342. package/build-module/button/deprecated.js +16 -16
  343. package/build-module/button/deprecated.js.map +1 -1
  344. package/build-module/button/edit.js +3 -7
  345. package/build-module/button/edit.js.map +1 -1
  346. package/build-module/button/index.js +1 -0
  347. package/build-module/button/index.js.map +1 -1
  348. package/build-module/button/save.js +3 -3
  349. package/build-module/button/save.js.map +1 -1
  350. package/build-module/buttons/deprecated.js +2 -2
  351. package/build-module/buttons/deprecated.js.map +1 -1
  352. package/build-module/buttons/edit.js +2 -2
  353. package/build-module/buttons/edit.js.map +1 -1
  354. package/build-module/buttons/save.js +2 -2
  355. package/build-module/buttons/save.js.map +1 -1
  356. package/build-module/categories/edit.js +2 -2
  357. package/build-module/categories/edit.js.map +1 -1
  358. package/build-module/column/deprecated.js +2 -2
  359. package/build-module/column/deprecated.js.map +1 -1
  360. package/build-module/column/edit.js +30 -21
  361. package/build-module/column/edit.js.map +1 -1
  362. package/build-module/column/edit.native.js +3 -1
  363. package/build-module/column/edit.native.js.map +1 -1
  364. package/build-module/column/save.js +2 -2
  365. package/build-module/column/save.js.map +1 -1
  366. package/build-module/columns/deprecated.js +3 -3
  367. package/build-module/columns/deprecated.js.map +1 -1
  368. package/build-module/columns/edit.js +70 -54
  369. package/build-module/columns/edit.js.map +1 -1
  370. package/build-module/columns/save.js +2 -2
  371. package/build-module/columns/save.js.map +1 -1
  372. package/build-module/columns/variations.js +18 -28
  373. package/build-module/columns/variations.js.map +1 -1
  374. package/build-module/comment-author-name/edit.js +2 -2
  375. package/build-module/comment-author-name/edit.js.map +1 -1
  376. package/build-module/comment-content/edit.js +2 -2
  377. package/build-module/comment-content/edit.js.map +1 -1
  378. package/build-module/comment-edit-link/edit.js +2 -2
  379. package/build-module/comment-edit-link/edit.js.map +1 -1
  380. package/build-module/comment-reply-link/edit.js +2 -2
  381. package/build-module/comment-reply-link/edit.js.map +1 -1
  382. package/build-module/comment-template/util.js +3 -1
  383. package/build-module/comment-template/util.js.map +1 -1
  384. package/build-module/comments/edit/comments-legacy.js +2 -2
  385. package/build-module/comments/edit/comments-legacy.js.map +1 -1
  386. package/build-module/comments-title/edit.js +2 -2
  387. package/build-module/comments-title/edit.js.map +1 -1
  388. package/build-module/cover/deprecated.js +38 -38
  389. package/build-module/cover/deprecated.js.map +1 -1
  390. package/build-module/cover/edit/index.js +6 -6
  391. package/build-module/cover/edit/index.js.map +1 -1
  392. package/build-module/cover/edit/resizable-cover-popover.js +2 -2
  393. package/build-module/cover/edit/resizable-cover-popover.js.map +1 -1
  394. package/build-module/cover/edit.native.js +2 -2
  395. package/build-module/cover/edit.native.js.map +1 -1
  396. package/build-module/cover/save.js +5 -5
  397. package/build-module/cover/save.js.map +1 -1
  398. package/build-module/cover/shared.js +3 -1
  399. package/build-module/cover/shared.js.map +1 -1
  400. package/build-module/embed/deprecated.js +3 -3
  401. package/build-module/embed/deprecated.js.map +1 -1
  402. package/build-module/embed/edit.js +2 -2
  403. package/build-module/embed/edit.js.map +1 -1
  404. package/build-module/embed/edit.native.js +2 -2
  405. package/build-module/embed/edit.native.js.map +1 -1
  406. package/build-module/embed/embed-placeholder.js +9 -4
  407. package/build-module/embed/embed-placeholder.js.map +1 -1
  408. package/build-module/embed/embed-preview.js +3 -3
  409. package/build-module/embed/embed-preview.js.map +1 -1
  410. package/build-module/embed/embed-preview.native.js +2 -2
  411. package/build-module/embed/embed-preview.native.js.map +1 -1
  412. package/build-module/embed/icons.js +6 -0
  413. package/build-module/embed/icons.js.map +1 -1
  414. package/build-module/embed/save.js +2 -2
  415. package/build-module/embed/save.js.map +1 -1
  416. package/build-module/embed/util.js +13 -9
  417. package/build-module/embed/util.js.map +1 -1
  418. package/build-module/embed/variations.js +13 -2
  419. package/build-module/embed/variations.js.map +1 -1
  420. package/build-module/embed/wp-embed-preview.js +6 -2
  421. package/build-module/embed/wp-embed-preview.js.map +1 -1
  422. package/build-module/file/deprecated.js +2 -2
  423. package/build-module/file/deprecated.js.map +1 -1
  424. package/build-module/file/edit.js +3 -3
  425. package/build-module/file/edit.js.map +1 -1
  426. package/build-module/file/save.js +2 -2
  427. package/build-module/file/save.js.map +1 -1
  428. package/build-module/form-input/deprecated.js +3 -3
  429. package/build-module/form-input/deprecated.js.map +1 -1
  430. package/build-module/form-input/edit.js +4 -4
  431. package/build-module/form-input/edit.js.map +1 -1
  432. package/build-module/form-input/save.js +3 -3
  433. package/build-module/form-input/save.js.map +1 -1
  434. package/build-module/form-submission-notification/edit.js +2 -2
  435. package/build-module/form-submission-notification/edit.js.map +1 -1
  436. package/build-module/form-submission-notification/save.js +2 -2
  437. package/build-module/form-submission-notification/save.js.map +1 -1
  438. package/build-module/gallery/deprecated.js +3 -3
  439. package/build-module/gallery/deprecated.js.map +1 -1
  440. package/build-module/gallery/edit.js +2 -2
  441. package/build-module/gallery/edit.js.map +1 -1
  442. package/build-module/gallery/gallery.js +2 -2
  443. package/build-module/gallery/gallery.js.map +1 -1
  444. package/build-module/gallery/save.js +3 -3
  445. package/build-module/gallery/save.js.map +1 -1
  446. package/build-module/gallery/v1/gallery-image.js +2 -2
  447. package/build-module/gallery/v1/gallery-image.js.map +1 -1
  448. package/build-module/gallery/v1/gallery.js +3 -3
  449. package/build-module/gallery/v1/gallery.js.map +1 -1
  450. package/build-module/gallery/v1/save.js +3 -3
  451. package/build-module/gallery/v1/save.js.map +1 -1
  452. package/build-module/group/deprecated.js +4 -4
  453. package/build-module/group/deprecated.js.map +1 -1
  454. package/build-module/group/index.js +0 -8
  455. package/build-module/group/index.js.map +1 -1
  456. package/build-module/group/placeholder.js +18 -19
  457. package/build-module/group/placeholder.js.map +1 -1
  458. package/build-module/heading/deprecated.js +6 -6
  459. package/build-module/heading/deprecated.js.map +1 -1
  460. package/build-module/heading/edit.js +2 -19
  461. package/build-module/heading/edit.js.map +1 -1
  462. package/build-module/heading/edit.native.js +2 -2
  463. package/build-module/heading/edit.native.js.map +1 -1
  464. package/build-module/heading/index.js +1 -0
  465. package/build-module/heading/index.js.map +1 -1
  466. package/build-module/heading/save.js +2 -2
  467. package/build-module/heading/save.js.map +1 -1
  468. package/build-module/home-link/edit.js +2 -2
  469. package/build-module/home-link/edit.js.map +1 -1
  470. package/build-module/html/edit.js +0 -2
  471. package/build-module/html/edit.js.map +1 -1
  472. package/build-module/image/deprecated.js +10 -10
  473. package/build-module/image/deprecated.js.map +1 -1
  474. package/build-module/image/edit.js +7 -5
  475. package/build-module/image/edit.js.map +1 -1
  476. package/build-module/image/image.js +8 -4
  477. package/build-module/image/image.js.map +1 -1
  478. package/build-module/image/save.js +3 -3
  479. package/build-module/image/save.js.map +1 -1
  480. package/build-module/image/view.js +3 -1
  481. package/build-module/image/view.js.map +1 -1
  482. package/build-module/index.js +1 -0
  483. package/build-module/index.js.map +1 -1
  484. package/build-module/latest-posts/edit.js +6 -6
  485. package/build-module/latest-posts/edit.js.map +1 -1
  486. package/build-module/list/deprecated.js +90 -1
  487. package/build-module/list/deprecated.js.map +1 -1
  488. package/build-module/list/index.js +0 -2
  489. package/build-module/list/index.js.map +1 -1
  490. package/build-module/list-item/edit.js +2 -9
  491. package/build-module/list-item/edit.js.map +1 -1
  492. package/build-module/list-item/hooks/use-merge.js +12 -4
  493. package/build-module/list-item/hooks/use-merge.js.map +1 -1
  494. package/build-module/list-item/hooks/use-outdent-list-item.js +15 -5
  495. package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
  496. package/build-module/list-item/index.js +2 -1
  497. package/build-module/list-item/index.js.map +1 -1
  498. package/build-module/media-text/deprecated.js +10 -10
  499. package/build-module/media-text/deprecated.js.map +1 -1
  500. package/build-module/media-text/edit.js +2 -2
  501. package/build-module/media-text/edit.js.map +1 -1
  502. package/build-module/media-text/media-container.js +2 -2
  503. package/build-module/media-text/media-container.js.map +1 -1
  504. package/build-module/media-text/save.js +3 -3
  505. package/build-module/media-text/save.js.map +1 -1
  506. package/build-module/navigation/edit/are-blocks-dirty.js +9 -3
  507. package/build-module/navigation/edit/are-blocks-dirty.js.map +1 -1
  508. package/build-module/navigation/edit/deleted-navigation-warning.js +1 -1
  509. package/build-module/navigation/edit/deleted-navigation-warning.js.map +1 -1
  510. package/build-module/navigation/edit/index.js +3 -3
  511. package/build-module/navigation/edit/index.js.map +1 -1
  512. package/build-module/navigation/edit/menu-inspector-controls.js +3 -1
  513. package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
  514. package/build-module/navigation/edit/navigation-menu-selector.js +1 -1
  515. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  516. package/build-module/navigation/edit/responsive-wrapper.js +3 -3
  517. package/build-module/navigation/edit/responsive-wrapper.js.map +1 -1
  518. package/build-module/navigation/edit/utils.js +2 -2
  519. package/build-module/navigation/edit/utils.js.map +1 -1
  520. package/build-module/navigation/index.js +0 -9
  521. package/build-module/navigation/index.js.map +1 -1
  522. package/build-module/navigation/view.js +3 -1
  523. package/build-module/navigation/view.js.map +1 -1
  524. package/build-module/navigation-link/edit.js +97 -88
  525. package/build-module/navigation-link/edit.js.map +1 -1
  526. package/build-module/navigation-link/link-ui.js +3 -8
  527. package/build-module/navigation-link/link-ui.js.map +1 -1
  528. package/build-module/navigation-submenu/edit.js +2 -2
  529. package/build-module/navigation-submenu/edit.js.map +1 -1
  530. package/build-module/page-list/edit.js +2 -2
  531. package/build-module/page-list/edit.js.map +1 -1
  532. package/build-module/page-list-item/edit.js +3 -3
  533. package/build-module/page-list-item/edit.js.map +1 -1
  534. package/build-module/paragraph/deprecated.js +6 -6
  535. package/build-module/paragraph/deprecated.js.map +1 -1
  536. package/build-module/paragraph/edit.js +2 -18
  537. package/build-module/paragraph/edit.js.map +1 -1
  538. package/build-module/paragraph/index.js +1 -1
  539. package/build-module/paragraph/index.js.map +1 -1
  540. package/build-module/paragraph/save.js +2 -2
  541. package/build-module/paragraph/save.js.map +1 -1
  542. package/build-module/paragraph/transforms.js +1 -1
  543. package/build-module/paragraph/transforms.js.map +1 -1
  544. package/build-module/pattern/edit.js +1 -1
  545. package/build-module/pattern/edit.js.map +1 -1
  546. package/build-module/post-author/edit.js +2 -2
  547. package/build-module/post-author/edit.js.map +1 -1
  548. package/build-module/post-author-biography/edit.js +2 -2
  549. package/build-module/post-author-biography/edit.js.map +1 -1
  550. package/build-module/post-author-name/edit.js +2 -2
  551. package/build-module/post-author-name/edit.js.map +1 -1
  552. package/build-module/post-comments-count/edit.js +2 -2
  553. package/build-module/post-comments-count/edit.js.map +1 -1
  554. package/build-module/post-comments-form/edit.js +2 -2
  555. package/build-module/post-comments-form/edit.js.map +1 -1
  556. package/build-module/post-comments-form/form.js +2 -2
  557. package/build-module/post-comments-form/form.js.map +1 -1
  558. package/build-module/post-comments-link/edit.js +2 -2
  559. package/build-module/post-comments-link/edit.js.map +1 -1
  560. package/build-module/post-date/edit.js +2 -2
  561. package/build-module/post-date/edit.js.map +1 -1
  562. package/build-module/post-excerpt/edit.js +6 -4
  563. package/build-module/post-excerpt/edit.js.map +1 -1
  564. package/build-module/post-featured-image/dimension-controls.js +23 -29
  565. package/build-module/post-featured-image/dimension-controls.js.map +1 -1
  566. package/build-module/post-featured-image/edit.js +3 -3
  567. package/build-module/post-featured-image/edit.js.map +1 -1
  568. package/build-module/post-featured-image/overlay.js +2 -2
  569. package/build-module/post-featured-image/overlay.js.map +1 -1
  570. package/build-module/post-navigation-link/edit.js +2 -2
  571. package/build-module/post-navigation-link/edit.js.map +1 -1
  572. package/build-module/post-navigation-link/variations.js +3 -1
  573. package/build-module/post-navigation-link/variations.js.map +1 -1
  574. package/build-module/post-template/edit.js +23 -13
  575. package/build-module/post-template/edit.js.map +1 -1
  576. package/build-module/post-terms/edit.js +5 -3
  577. package/build-module/post-terms/edit.js.map +1 -1
  578. package/build-module/post-time-to-read/edit.js +3 -3
  579. package/build-module/post-time-to-read/edit.js.map +1 -1
  580. package/build-module/post-title/edit.js +2 -2
  581. package/build-module/post-title/edit.js.map +1 -1
  582. package/build-module/private-apis.js +14 -0
  583. package/build-module/private-apis.js.map +1 -0
  584. package/build-module/pullquote/deprecated.js +7 -7
  585. package/build-module/pullquote/deprecated.js.map +1 -1
  586. package/build-module/pullquote/edit.js +2 -2
  587. package/build-module/pullquote/edit.js.map +1 -1
  588. package/build-module/pullquote/save.js +2 -2
  589. package/build-module/pullquote/save.js.map +1 -1
  590. package/build-module/query/edit/enhanced-pagination-modal.js +1 -1
  591. package/build-module/query/edit/enhanced-pagination-modal.js.map +1 -1
  592. package/build-module/query/edit/inspector-controls/author-control.js +6 -2
  593. package/build-module/query/edit/inspector-controls/author-control.js.map +1 -1
  594. package/build-module/query/edit/inspector-controls/create-new-post-link.js +3 -1
  595. package/build-module/query/edit/inspector-controls/create-new-post-link.js.map +1 -1
  596. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js +6 -3
  597. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -1
  598. package/build-module/query/edit/inspector-controls/parent-control.js +18 -6
  599. package/build-module/query/edit/inspector-controls/parent-control.js.map +1 -1
  600. package/build-module/query/edit/inspector-controls/taxonomy-controls.js +9 -3
  601. package/build-module/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  602. package/build-module/query/utils.js +3 -1
  603. package/build-module/query/utils.js.map +1 -1
  604. package/build-module/query-title/edit.js +2 -2
  605. package/build-module/query-title/edit.js.map +1 -1
  606. package/build-module/query-title/variations.js +3 -1
  607. package/build-module/query-title/variations.js.map +1 -1
  608. package/build-module/quote/deprecated.js +3 -3
  609. package/build-module/quote/deprecated.js.map +1 -1
  610. package/build-module/quote/edit.js +2 -2
  611. package/build-module/quote/edit.js.map +1 -1
  612. package/build-module/quote/save.js +2 -2
  613. package/build-module/quote/save.js.map +1 -1
  614. package/build-module/rss/edit.js +10 -8
  615. package/build-module/rss/edit.js.map +1 -1
  616. package/build-module/search/edit.js +6 -6
  617. package/build-module/search/edit.js.map +1 -1
  618. package/build-module/search/edit.native.js +2 -2
  619. package/build-module/search/edit.native.js.map +1 -1
  620. package/build-module/separator/deprecated.js +2 -2
  621. package/build-module/separator/deprecated.js.map +1 -1
  622. package/build-module/separator/edit.js +2 -2
  623. package/build-module/separator/edit.js.map +1 -1
  624. package/build-module/separator/save.js +2 -2
  625. package/build-module/separator/save.js.map +1 -1
  626. package/build-module/shortcode/edit.js +8 -11
  627. package/build-module/shortcode/edit.js.map +1 -1
  628. package/build-module/site-logo/edit.js +4 -4
  629. package/build-module/site-logo/edit.js.map +1 -1
  630. package/build-module/site-tagline/edit.js +2 -2
  631. package/build-module/site-tagline/edit.js.map +1 -1
  632. package/build-module/site-title/edit.js +2 -2
  633. package/build-module/site-title/edit.js.map +1 -1
  634. package/build-module/social-link/edit.js +4 -4
  635. package/build-module/social-link/edit.js.map +1 -1
  636. package/build-module/social-link/variations.js +3 -1
  637. package/build-module/social-link/variations.js.map +1 -1
  638. package/build-module/social-links/deprecated.js +2 -2
  639. package/build-module/social-links/deprecated.js.map +1 -1
  640. package/build-module/social-links/edit.js +2 -2
  641. package/build-module/social-links/edit.js.map +1 -1
  642. package/build-module/social-links/save.js +2 -2
  643. package/build-module/social-links/save.js.map +1 -1
  644. package/build-module/spacer/edit.js +3 -3
  645. package/build-module/spacer/edit.js.map +1 -1
  646. package/build-module/table/deprecated.js +8 -8
  647. package/build-module/table/deprecated.js.map +1 -1
  648. package/build-module/table/edit.js +3 -3
  649. package/build-module/table/edit.js.map +1 -1
  650. package/build-module/table/save.js +3 -3
  651. package/build-module/table/save.js.map +1 -1
  652. package/build-module/template-part/variations.js +6 -2
  653. package/build-module/template-part/variations.js.map +1 -1
  654. package/build-module/term-description/edit.js +2 -2
  655. package/build-module/term-description/edit.js.map +1 -1
  656. package/build-module/utils/caption.js +2 -2
  657. package/build-module/utils/caption.js.map +1 -1
  658. package/build-module/verse/deprecated.js +2 -2
  659. package/build-module/verse/deprecated.js.map +1 -1
  660. package/build-module/verse/edit.js +2 -2
  661. package/build-module/verse/edit.js.map +1 -1
  662. package/build-module/verse/save.js +2 -2
  663. package/build-module/verse/save.js.map +1 -1
  664. package/build-module/video/edit.js +2 -2
  665. package/build-module/video/edit.js.map +1 -1
  666. package/build-style/block/editor-rtl.css +4 -4
  667. package/build-style/block/editor.css +4 -4
  668. package/build-style/buttons/editor-rtl.css +1 -1
  669. package/build-style/buttons/editor.css +1 -1
  670. package/build-style/buttons/style-rtl.css +1 -1
  671. package/build-style/buttons/style.css +1 -1
  672. package/build-style/common-rtl.css +3 -7
  673. package/build-style/common.css +3 -7
  674. package/build-style/editor-rtl.css +30 -81
  675. package/build-style/editor.css +30 -81
  676. package/build-style/embed/editor-rtl.css +0 -3
  677. package/build-style/embed/editor.css +0 -3
  678. package/build-style/group/editor-rtl.css +2 -45
  679. package/build-style/group/editor.css +2 -45
  680. package/build-style/group/style-rtl.css +4 -0
  681. package/build-style/group/style.css +4 -0
  682. package/build-style/image/editor-rtl.css +3 -0
  683. package/build-style/image/editor.css +3 -0
  684. package/build-style/image/style-rtl.css +1 -2
  685. package/build-style/image/style.css +1 -2
  686. package/build-style/navigation-link/style-rtl.css +0 -8
  687. package/build-style/navigation-link/style.css +0 -8
  688. package/build-style/post-featured-image/editor-rtl.css +1 -0
  689. package/build-style/post-featured-image/editor.css +1 -0
  690. package/build-style/post-template/style-rtl.css +0 -3
  691. package/build-style/post-template/style.css +0 -3
  692. package/build-style/rss/editor-rtl.css +1 -10
  693. package/build-style/rss/editor.css +1 -10
  694. package/build-style/shortcode/editor-rtl.css +0 -4
  695. package/build-style/shortcode/editor.css +0 -4
  696. package/build-style/site-logo/editor-rtl.css +1 -0
  697. package/build-style/site-logo/editor.css +1 -0
  698. package/build-style/social-link/editor-rtl.css +13 -2
  699. package/build-style/social-link/editor.css +13 -2
  700. package/build-style/style-rtl.css +9 -21
  701. package/build-style/style.css +9 -21
  702. package/build-style/template-part/editor-rtl.css +3 -7
  703. package/build-style/template-part/editor.css +3 -7
  704. package/package.json +36 -35
  705. package/src/audio/edit.js +2 -2
  706. package/src/avatar/edit.js +2 -2
  707. package/src/block/edit.js +32 -240
  708. package/src/block/editor.scss +7 -5
  709. package/src/block-keyboard-shortcuts/index.js +113 -0
  710. package/src/button/block.json +1 -0
  711. package/src/button/deprecated.js +16 -16
  712. package/src/button/edit.js +3 -9
  713. package/src/button/save.js +3 -3
  714. package/src/buttons/deprecated.js +2 -2
  715. package/src/buttons/edit.js +2 -2
  716. package/src/buttons/editor.scss +1 -3
  717. package/src/buttons/save.js +2 -2
  718. package/src/buttons/style.scss +1 -3
  719. package/src/categories/edit.js +2 -2
  720. package/src/code/theme.native.scss +1 -1
  721. package/src/column/deprecated.js +2 -2
  722. package/src/column/edit.js +28 -22
  723. package/src/column/edit.native.js +3 -1
  724. package/src/column/save.js +2 -2
  725. package/src/columns/deprecated.js +3 -3
  726. package/src/columns/edit.js +94 -84
  727. package/src/columns/save.js +2 -2
  728. package/src/columns/variations.js +12 -34
  729. package/src/comment-author-name/edit.js +2 -2
  730. package/src/comment-content/edit.js +2 -2
  731. package/src/comment-edit-link/edit.js +2 -2
  732. package/src/comment-reply-link/edit.js +2 -2
  733. package/src/comment-template/util.js +3 -1
  734. package/src/comments/edit/comments-legacy.js +2 -2
  735. package/src/comments-title/edit.js +2 -2
  736. package/src/common.scss +4 -4
  737. package/src/cover/deprecated.js +38 -38
  738. package/src/cover/edit/index.js +6 -9
  739. package/src/cover/edit/resizable-cover-popover.js +2 -2
  740. package/src/cover/edit.native.js +2 -2
  741. package/src/cover/save.js +5 -5
  742. package/src/cover/shared.js +3 -1
  743. package/src/embed/deprecated.js +3 -3
  744. package/src/embed/edit.js +2 -2
  745. package/src/embed/edit.native.js +2 -2
  746. package/src/embed/editor.scss +0 -2
  747. package/src/embed/embed-placeholder.js +21 -9
  748. package/src/embed/embed-preview.js +3 -3
  749. package/src/embed/embed-preview.native.js +2 -2
  750. package/src/embed/icons.js +9 -0
  751. package/src/embed/save.js +2 -2
  752. package/src/embed/util.js +13 -7
  753. package/src/embed/variations.js +12 -1
  754. package/src/embed/wp-embed-preview.js +6 -2
  755. package/src/file/deprecated.js +2 -2
  756. package/src/file/edit.js +3 -3
  757. package/src/file/save.js +2 -2
  758. package/src/form-input/deprecated.js +3 -3
  759. package/src/form-input/edit.js +4 -4
  760. package/src/form-input/save.js +3 -3
  761. package/src/form-submission-notification/edit.js +2 -2
  762. package/src/form-submission-notification/save.js +4 -7
  763. package/src/gallery/deprecated.js +3 -3
  764. package/src/gallery/edit.js +2 -2
  765. package/src/gallery/gallery.js +2 -2
  766. package/src/gallery/save.js +3 -3
  767. package/src/gallery/v1/gallery-image.js +2 -2
  768. package/src/gallery/v1/gallery.js +3 -3
  769. package/src/gallery/v1/save.js +3 -3
  770. package/src/group/deprecated.js +4 -4
  771. package/src/group/editor.scss +2 -48
  772. package/src/group/index.js +0 -8
  773. package/src/group/placeholder.js +18 -18
  774. package/src/group/style.scss +5 -0
  775. package/src/heading/block.json +1 -0
  776. package/src/heading/deprecated.js +6 -6
  777. package/src/heading/edit.js +2 -23
  778. package/src/heading/edit.native.js +2 -2
  779. package/src/heading/save.js +2 -2
  780. package/src/heading/test/__snapshots__/transforms.native.js.snap +1 -1
  781. package/src/home-link/edit.js +2 -2
  782. package/src/html/edit.js +0 -2
  783. package/src/image/deprecated.js +10 -10
  784. package/src/image/edit.js +5 -3
  785. package/src/image/editor.scss +13 -7
  786. package/src/image/image.js +8 -3
  787. package/src/image/save.js +3 -3
  788. package/src/image/style.scss +1 -3
  789. package/src/image/view.js +3 -1
  790. package/src/index.js +2 -0
  791. package/src/latest-posts/edit.js +6 -6
  792. package/src/latest-posts/index.php +1 -0
  793. package/src/list/block.json +0 -2
  794. package/src/list/deprecated.js +88 -1
  795. package/src/list/index.php +54 -0
  796. package/src/list/test/__snapshots__/edit.native.js.snap +11 -11
  797. package/src/list/test/__snapshots__/transforms.native.js.snap +3 -3
  798. package/src/list/test/edit.native.js +24 -24
  799. package/src/list/test/transforms.native.js +1 -1
  800. package/src/list-item/block.json +2 -1
  801. package/src/list-item/edit.js +0 -15
  802. package/src/list-item/hooks/use-merge.js +12 -4
  803. package/src/list-item/hooks/use-outdent-list-item.js +15 -5
  804. package/src/media-text/deprecated.js +10 -10
  805. package/src/media-text/edit.js +2 -2
  806. package/src/media-text/media-container.js +2 -2
  807. package/src/media-text/save.js +3 -3
  808. package/src/navigation/block.json +0 -9
  809. package/src/navigation/edit/are-blocks-dirty.js +8 -3
  810. package/src/navigation/edit/deleted-navigation-warning.js +1 -1
  811. package/src/navigation/edit/index.js +3 -3
  812. package/src/navigation/edit/menu-inspector-controls.js +3 -1
  813. package/src/navigation/edit/navigation-menu-selector.js +1 -1
  814. package/src/navigation/edit/responsive-wrapper.js +3 -3
  815. package/src/navigation/edit/test/navigation-menu-selector.js +5 -5
  816. package/src/navigation/edit/utils.js +2 -2
  817. package/src/navigation/index.php +52 -1
  818. package/src/navigation/view.js +3 -1
  819. package/src/navigation-link/edit.js +94 -94
  820. package/src/navigation-link/link-ui.js +74 -89
  821. package/src/navigation-link/style.scss +0 -12
  822. package/src/navigation-submenu/edit.js +2 -2
  823. package/src/page-list/edit.js +2 -2
  824. package/src/page-list-item/edit.js +3 -3
  825. package/src/paragraph/block.json +1 -1
  826. package/src/paragraph/deprecated.js +6 -6
  827. package/src/paragraph/edit.js +2 -23
  828. package/src/paragraph/save.js +2 -2
  829. package/src/paragraph/test/__snapshots__/transforms.native.js.snap +1 -1
  830. package/src/pattern/edit.js +1 -1
  831. package/src/post-author/edit.js +2 -2
  832. package/src/post-author-biography/edit.js +2 -2
  833. package/src/post-author-name/edit.js +2 -2
  834. package/src/post-comments-count/edit.js +2 -2
  835. package/src/post-comments-form/edit.js +2 -2
  836. package/src/post-comments-form/form.js +2 -2
  837. package/src/post-comments-link/edit.js +2 -2
  838. package/src/post-date/edit.js +2 -2
  839. package/src/post-excerpt/edit.js +6 -4
  840. package/src/post-featured-image/dimension-controls.js +33 -37
  841. package/src/post-featured-image/edit.js +3 -3
  842. package/src/post-featured-image/editor.scss +1 -0
  843. package/src/post-featured-image/overlay.js +2 -2
  844. package/src/post-navigation-link/edit.js +2 -2
  845. package/src/post-navigation-link/variations.js +3 -1
  846. package/src/post-template/edit.js +14 -9
  847. package/src/post-template/style.scss +0 -4
  848. package/src/post-terms/edit.js +5 -3
  849. package/src/post-time-to-read/edit.js +3 -3
  850. package/src/post-title/edit.js +2 -2
  851. package/src/private-apis.js +13 -0
  852. package/src/pullquote/deprecated.js +7 -7
  853. package/src/pullquote/edit.js +2 -2
  854. package/src/pullquote/save.js +2 -2
  855. package/src/query/edit/enhanced-pagination-modal.js +5 -1
  856. package/src/query/edit/inspector-controls/author-control.js +6 -2
  857. package/src/query/edit/inspector-controls/create-new-post-link.js +3 -1
  858. package/src/query/edit/inspector-controls/enhanced-pagination-control.js +13 -3
  859. package/src/query/edit/inspector-controls/parent-control.js +18 -6
  860. package/src/query/edit/inspector-controls/taxonomy-controls.js +9 -3
  861. package/src/query/index.php +1 -1
  862. package/src/query/utils.js +3 -1
  863. package/src/query-title/edit.js +2 -2
  864. package/src/query-title/variations.js +3 -1
  865. package/src/quote/deprecated.js +3 -3
  866. package/src/quote/edit.js +2 -2
  867. package/src/quote/save.js +2 -2
  868. package/src/rss/edit.js +30 -23
  869. package/src/rss/editor.scss +2 -16
  870. package/src/search/edit.js +6 -6
  871. package/src/search/edit.native.js +2 -2
  872. package/src/separator/deprecated.js +2 -2
  873. package/src/separator/edit.js +2 -2
  874. package/src/separator/save.js +2 -2
  875. package/src/shortcode/edit.js +13 -17
  876. package/src/shortcode/editor.scss +0 -6
  877. package/src/site-logo/edit.js +4 -4
  878. package/src/site-logo/editor.scss +1 -0
  879. package/src/site-logo/index.php +2 -0
  880. package/src/site-tagline/edit.js +2 -2
  881. package/src/site-title/edit.js +2 -2
  882. package/src/social-link/edit.js +5 -5
  883. package/src/social-link/editor.scss +25 -11
  884. package/src/social-link/variations.js +3 -1
  885. package/src/social-links/deprecated.js +2 -2
  886. package/src/social-links/edit.js +2 -2
  887. package/src/social-links/save.js +2 -2
  888. package/src/spacer/edit.js +3 -3
  889. package/src/table/deprecated.js +12 -20
  890. package/src/table/edit.js +3 -3
  891. package/src/table/save.js +3 -3
  892. package/src/template-part/editor.scss +5 -8
  893. package/src/template-part/variations.js +6 -2
  894. package/src/term-description/edit.js +2 -2
  895. package/src/utils/caption.js +2 -2
  896. package/src/verse/deprecated.js +2 -2
  897. package/src/verse/edit.js +2 -2
  898. package/src/verse/save.js +2 -2
  899. package/src/video/edit.js +2 -2
  900. package/tsconfig.tsbuildinfo +1 -1
@@ -2,20 +2,19 @@ import { createElement, Fragment } from "react";
2
2
  /**
3
3
  * External dependencies
4
4
  */
5
- import classnames from 'classnames';
5
+ import clsx from 'clsx';
6
6
 
7
7
  /**
8
8
  * WordPress dependencies
9
9
  */
10
- import { useRegistry, useSelect, useDispatch } from '@wordpress/data';
10
+ import { useSelect, useDispatch } from '@wordpress/data';
11
11
  import { useRef, useMemo, useEffect } from '@wordpress/element';
12
- import { useEntityRecord, store as coreStore } from '@wordpress/core-data';
12
+ import { useEntityRecord, store as coreStore, useEntityBlockEditor } from '@wordpress/core-data';
13
13
  import { Placeholder, Spinner, ToolbarButton, ToolbarGroup } from '@wordpress/components';
14
14
  import { __ } from '@wordpress/i18n';
15
- import { useInnerBlocksProps, RecursionProvider, useHasRecursion, InnerBlocks, useBlockProps, Warning, privateApis as blockEditorPrivateApis, store as blockEditorStore, BlockControls } from '@wordpress/block-editor';
15
+ import { useInnerBlocksProps, RecursionProvider, useHasRecursion, useBlockProps, Warning, privateApis as blockEditorPrivateApis, store as blockEditorStore, BlockControls } from '@wordpress/block-editor';
16
16
  import { privateApis as patternsPrivateApis } from '@wordpress/patterns';
17
- import { parse, cloneBlock, store as blocksStore } from '@wordpress/blocks';
18
- import { RichTextData } from '@wordpress/rich-text';
17
+ import { store as blocksStore } from '@wordpress/blocks';
19
18
 
20
19
  /**
21
20
  * Internal dependencies
@@ -29,23 +28,6 @@ const {
29
28
  isOverridableBlock
30
29
  } = unlock(patternsPrivateApis);
31
30
  const fullAlignments = ['full', 'wide', 'left', 'right'];
32
- function getLegacyIdMap(blocks, content, nameCount = {}) {
33
- let idToClientIdMap = {};
34
- for (const block of blocks) {
35
- if (block?.innerBlocks?.length) {
36
- idToClientIdMap = {
37
- ...idToClientIdMap,
38
- ...getLegacyIdMap(block.innerBlocks, content, nameCount)
39
- };
40
- }
41
- const id = block.attributes.metadata?.id;
42
- const clientId = block.clientId;
43
- if (id && content?.[id]) {
44
- idToClientIdMap[clientId] = id;
45
- }
46
- }
47
- return idToClientIdMap;
48
- }
49
31
  const useInferredLayout = (blocks, parentLayout) => {
50
32
  const initialInferredAlignmentRef = useRef();
51
33
  return useMemo(() => {
@@ -72,80 +54,12 @@ const useInferredLayout = (blocks, parentLayout) => {
72
54
  };
73
55
  function hasOverridableBlocks(blocks) {
74
56
  return blocks.some(block => {
75
- if (isOverridableBlock(block)) return true;
76
- return hasOverridableBlocks(block.innerBlocks);
77
- });
78
- }
79
- function getOverridableAttributes(block) {
80
- return Object.entries(block.attributes.metadata.bindings).filter(([, binding]) => binding.source === 'core/pattern-overrides').map(([attributeKey]) => attributeKey);
81
- }
82
- function applyInitialContentValuesToInnerBlocks(blocks, content = {}, defaultValues, legacyIdMap) {
83
- return blocks.map(block => {
84
- var _legacyIdMap$block$cl;
85
- const innerBlocks = applyInitialContentValuesToInnerBlocks(block.innerBlocks, content, defaultValues, legacyIdMap);
86
- const metadataName = (_legacyIdMap$block$cl = legacyIdMap?.[block.clientId]) !== null && _legacyIdMap$block$cl !== void 0 ? _legacyIdMap$block$cl : block.attributes.metadata?.name;
87
- if (!metadataName || !isOverridableBlock(block)) {
88
- return {
89
- ...block,
90
- innerBlocks
91
- };
57
+ if (isOverridableBlock(block)) {
58
+ return true;
92
59
  }
93
- const attributes = getOverridableAttributes(block);
94
- const newAttributes = {
95
- ...block.attributes
96
- };
97
- for (const attributeKey of attributes) {
98
- var _defaultValues$metada;
99
- (_defaultValues$metada = defaultValues[metadataName]) !== null && _defaultValues$metada !== void 0 ? _defaultValues$metada : defaultValues[metadataName] = {};
100
- defaultValues[metadataName][attributeKey] = block.attributes[attributeKey];
101
- const contentValues = content[metadataName];
102
- if (contentValues?.[attributeKey] !== undefined) {
103
- newAttributes[attributeKey] = contentValues[attributeKey];
104
- }
105
- }
106
- return {
107
- ...block,
108
- attributes: newAttributes,
109
- innerBlocks
110
- };
60
+ return hasOverridableBlocks(block.innerBlocks);
111
61
  });
112
62
  }
113
- function isAttributeEqual(attribute1, attribute2) {
114
- if (attribute1 instanceof RichTextData && attribute2 instanceof RichTextData) {
115
- return attribute1.toString() === attribute2.toString();
116
- }
117
- return attribute1 === attribute2;
118
- }
119
- function getContentValuesFromInnerBlocks(blocks, defaultValues, legacyIdMap) {
120
- /** @type {Record<string, { values: Record<string, unknown>}>} */
121
- const content = {};
122
- for (const block of blocks) {
123
- var _legacyIdMap$block$cl2;
124
- if (block.name === patternBlockName) continue;
125
- if (block.innerBlocks.length) {
126
- Object.assign(content, getContentValuesFromInnerBlocks(block.innerBlocks, defaultValues, legacyIdMap));
127
- }
128
- const metadataName = (_legacyIdMap$block$cl2 = legacyIdMap?.[block.clientId]) !== null && _legacyIdMap$block$cl2 !== void 0 ? _legacyIdMap$block$cl2 : block.attributes.metadata?.name;
129
- if (!metadataName || !isOverridableBlock(block)) {
130
- continue;
131
- }
132
- const attributes = getOverridableAttributes(block);
133
- for (const attributeKey of attributes) {
134
- if (!isAttributeEqual(block.attributes[attributeKey], defaultValues?.[metadataName]?.[attributeKey])) {
135
- var _content$metadataName;
136
- (_content$metadataName = content[metadataName]) !== null && _content$metadataName !== void 0 ? _content$metadataName : content[metadataName] = {};
137
- // TODO: We need a way to represent `undefined` in the serialized overrides.
138
- // Also see: https://github.com/WordPress/gutenberg/pull/57249#discussion_r1452987871
139
- content[metadataName][attributeKey] = block.attributes[attributeKey] === undefined ?
140
- // TODO: We use an empty string to represent undefined for now until
141
- // we support a richer format for overrides and the block binding API.
142
- // Currently only the `linkTarget` attribute of `core/button` is affected.
143
- '' : block.attributes[attributeKey];
144
- }
145
- }
146
- }
147
- return Object.keys(content).length > 0 ? content : undefined;
148
- }
149
63
  function setBlockEditMode(setEditMode, blocks, mode) {
150
64
  blocks.forEach(block => {
151
65
  const editMode = mode || (isOverridableBlock(block) ? 'contentOnly' : 'disabled');
@@ -161,6 +75,7 @@ function RecursionWarning() {
161
75
  ...blockProps
162
76
  }, createElement(Warning, null, __('Block cannot be rendered inside itself.')));
163
77
  }
78
+ const NOOP = () => {};
164
79
 
165
80
  // Wrap the main Edit function for the pattern block with a recursion wrapper
166
81
  // that allows short-circuiting rendering as early as possible, before any
@@ -189,32 +104,21 @@ function ReusableBlockEdit({
189
104
  clientId: patternClientId,
190
105
  setAttributes
191
106
  }) {
192
- const registry = useRegistry();
193
107
  const {
194
108
  record,
195
- editedRecord,
196
109
  hasResolved
197
110
  } = useEntityRecord('postType', 'wp_block', ref);
111
+ const [blocks] = useEntityBlockEditor('postType', 'wp_block', {
112
+ id: ref
113
+ });
198
114
  const isMissing = hasResolved && !record;
199
-
200
- // The initial value of the `content` attribute.
201
- const initialContent = useRef(content);
202
-
203
- // The default content values from the original pattern for overridable attributes.
204
- // Set by the `applyInitialContentValuesToInnerBlocks` function.
205
- const defaultContent = useRef({});
206
115
  const {
207
- replaceInnerBlocks,
208
- __unstableMarkNextChangeAsNotPersistent,
209
- setBlockEditingMode
116
+ setBlockEditingMode,
117
+ __unstableMarkLastChangeAsPersistent
210
118
  } = useDispatch(blockEditorStore);
211
- const {
212
- syncDerivedUpdates
213
- } = unlock(useDispatch(blockEditorStore));
214
119
  const {
215
120
  innerBlocks,
216
121
  userCanEdit,
217
- getBlockEditingMode,
218
122
  onNavigateToEntityRecord,
219
123
  editingMode,
220
124
  hasPatternOverridesSource
@@ -230,12 +134,11 @@ function ReusableBlockEdit({
230
134
  const {
231
135
  getBlockBindingsSource
232
136
  } = unlock(select(blocksStore));
233
- const blocks = getBlocks(patternClientId);
234
137
  const canEdit = canUser('update', 'blocks', ref);
235
138
 
236
139
  // For editing link to the site editor if the theme and user permissions support it.
237
140
  return {
238
- innerBlocks: blocks,
141
+ innerBlocks: getBlocks(patternClientId),
239
142
  userCanEdit: canEdit,
240
143
  getBlockEditingMode: _getBlockEditingMode,
241
144
  onNavigateToEntityRecord: getSettings().onNavigateToEntityRecord,
@@ -250,71 +153,29 @@ function ReusableBlockEdit({
250
153
  // Disable editing if the pattern itself is disabled.
251
154
  editingMode === 'disabled' || !hasPatternOverridesSource ? 'disabled' : undefined);
252
155
  }, [editingMode, innerBlocks, setBlockEditingMode, hasPatternOverridesSource]);
253
- const canOverrideBlocks = useMemo(() => hasPatternOverridesSource && hasOverridableBlocks(innerBlocks), [hasPatternOverridesSource, innerBlocks]);
254
- const initialBlocks = useMemo(() => {
255
- var _editedRecord$blocks$;
256
- return (// Clone the blocks to generate new client IDs.
257
- (_editedRecord$blocks$ = editedRecord.blocks?.map(block => cloneBlock(block))) !== null && _editedRecord$blocks$ !== void 0 ? _editedRecord$blocks$ : editedRecord.content && typeof editedRecord.content !== 'function' ? parse(editedRecord.content) : []
258
- );
259
- }, [editedRecord.blocks, editedRecord.content]);
260
- const legacyIdMap = useRef({});
261
-
262
- // Apply the initial overrides from the pattern block to the inner blocks.
263
- useEffect(() => {
264
- // Build a map of clientIds to the old nano id system to provide back compat.
265
- legacyIdMap.current = getLegacyIdMap(initialBlocks, initialContent.current);
266
- defaultContent.current = {};
267
- const originalEditingMode = getBlockEditingMode(patternClientId);
268
- // Replace the contents of the blocks with the overrides.
269
- registry.batch(() => {
270
- setBlockEditingMode(patternClientId, 'default');
271
- syncDerivedUpdates(() => {
272
- const blocks = hasPatternOverridesSource ? applyInitialContentValuesToInnerBlocks(initialBlocks, initialContent.current, defaultContent.current, legacyIdMap.current) : initialBlocks;
273
- replaceInnerBlocks(patternClientId, blocks);
274
- });
275
- setBlockEditingMode(patternClientId, originalEditingMode);
276
- });
277
- }, [hasPatternOverridesSource, __unstableMarkNextChangeAsNotPersistent, patternClientId, initialBlocks, replaceInnerBlocks, registry, getBlockEditingMode, setBlockEditingMode, syncDerivedUpdates]);
156
+ const canOverrideBlocks = useMemo(() => hasPatternOverridesSource && hasOverridableBlocks(blocks), [hasPatternOverridesSource, blocks]);
278
157
  const {
279
158
  alignment,
280
159
  layout
281
- } = useInferredLayout(innerBlocks, parentLayout);
160
+ } = useInferredLayout(blocks, parentLayout);
282
161
  const layoutClasses = useLayoutClasses({
283
162
  layout
284
163
  }, name);
285
164
  const blockProps = useBlockProps({
286
- className: classnames('block-library-block__reusable-block-container', layout && layoutClasses, {
165
+ className: clsx('block-library-block__reusable-block-container', layout && layoutClasses, {
287
166
  [`align${alignment}`]: alignment
288
167
  })
289
168
  });
169
+
170
+ // Use `blocks` variable until `innerBlocks` is populated, which has the proper clientIds.
290
171
  const innerBlocksProps = useInnerBlocksProps(blockProps, {
291
172
  templateLock: 'all',
292
173
  layout,
293
- renderAppender: innerBlocks?.length ? undefined : InnerBlocks.ButtonBlockAppender
174
+ value: innerBlocks.length > 0 ? innerBlocks : blocks,
175
+ onInput: NOOP,
176
+ onChange: NOOP,
177
+ renderAppender: blocks?.length ? undefined : blocks.ButtonBlockAppender
294
178
  });
295
-
296
- // Sync the `content` attribute from the updated blocks to the pattern block.
297
- // `syncDerivedUpdates` is used here to avoid creating an additional undo level.
298
- useEffect(() => {
299
- if (!hasPatternOverridesSource) {
300
- return;
301
- }
302
- const {
303
- getBlocks
304
- } = registry.select(blockEditorStore);
305
- let prevBlocks = getBlocks(patternClientId);
306
- return registry.subscribe(() => {
307
- const blocks = getBlocks(patternClientId);
308
- if (blocks !== prevBlocks) {
309
- prevBlocks = blocks;
310
- syncDerivedUpdates(() => {
311
- setAttributes({
312
- content: getContentValuesFromInnerBlocks(blocks, defaultContent.current, legacyIdMap.current)
313
- });
314
- });
315
- }
316
- }, blockEditorStore);
317
- }, [hasPatternOverridesSource, syncDerivedUpdates, patternClientId, registry, setAttributes]);
318
179
  const handleEditOriginal = () => {
319
180
  onNavigateToEntityRecord({
320
181
  postId: ref,
@@ -323,7 +184,11 @@ function ReusableBlockEdit({
323
184
  };
324
185
  const resetContent = () => {
325
186
  if (content) {
326
- replaceInnerBlocks(patternClientId, initialBlocks);
187
+ // Make sure any previous changes are persisted before resetting.
188
+ __unstableMarkLastChangeAsPersistent();
189
+ setAttributes({
190
+ content: undefined
191
+ });
327
192
  }
328
193
  };
329
194
  let children = null;
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","useRegistry","useSelect","useDispatch","useRef","useMemo","useEffect","useEntityRecord","store","coreStore","Placeholder","Spinner","ToolbarButton","ToolbarGroup","__","useInnerBlocksProps","RecursionProvider","useHasRecursion","InnerBlocks","useBlockProps","Warning","privateApis","blockEditorPrivateApis","blockEditorStore","BlockControls","patternsPrivateApis","parse","cloneBlock","blocksStore","RichTextData","name","patternBlockName","unlock","useLayoutClasses","isOverridableBlock","fullAlignments","getLegacyIdMap","blocks","content","nameCount","idToClientIdMap","block","innerBlocks","length","id","attributes","metadata","clientId","useInferredLayout","parentLayout","initialInferredAlignmentRef","alignment","current","undefined","isConstrained","type","hasFullAlignment","some","includes","align","layout","hasOverridableBlocks","getOverridableAttributes","Object","entries","bindings","filter","binding","source","map","attributeKey","applyInitialContentValuesToInnerBlocks","defaultValues","legacyIdMap","_legacyIdMap$block$cl","metadataName","newAttributes","_defaultValues$metada","contentValues","isAttributeEqual","attribute1","attribute2","toString","getContentValuesFromInnerBlocks","_legacyIdMap$block$cl2","assign","_content$metadataName","keys","setBlockEditMode","setEditMode","mode","forEach","editMode","RecursionWarning","blockProps","createElement","ReusableBlockEditRecursionWrapper","props","ref","hasAlreadyRendered","uniqueId","ReusableBlockEdit","__unstableParentLayout","patternClientId","setAttributes","registry","record","editedRecord","hasResolved","isMissing","initialContent","defaultContent","replaceInnerBlocks","__unstableMarkNextChangeAsNotPersistent","setBlockEditingMode","syncDerivedUpdates","userCanEdit","getBlockEditingMode","onNavigateToEntityRecord","editingMode","hasPatternOverridesSource","select","canUser","getBlocks","getSettings","_getBlockEditingMode","getBlockBindingsSource","canEdit","canOverrideBlocks","initialBlocks","_editedRecord$blocks$","originalEditingMode","batch","layoutClasses","className","innerBlocksProps","templateLock","renderAppender","ButtonBlockAppender","prevBlocks","subscribe","handleEditOriginal","postId","postType","resetContent","children","Fragment","onClick","disabled","__experimentalIsFocusable"],"sources":["@wordpress/block-library/src/block/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useRegistry, useSelect, useDispatch } from '@wordpress/data';\nimport { useRef, useMemo, useEffect } from '@wordpress/element';\nimport { useEntityRecord, store as coreStore } from '@wordpress/core-data';\nimport {\n\tPlaceholder,\n\tSpinner,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseInnerBlocksProps,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tInnerBlocks,\n\tuseBlockProps,\n\tWarning,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\tBlockControls,\n} from '@wordpress/block-editor';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\nimport { parse, cloneBlock, store as blocksStore } from '@wordpress/blocks';\nimport { RichTextData } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport { name as patternBlockName } from './index';\nimport { unlock } from '../lock-unlock';\n\nconst { useLayoutClasses } = unlock( blockEditorPrivateApis );\nconst { isOverridableBlock } = unlock( patternsPrivateApis );\n\nconst fullAlignments = [ 'full', 'wide', 'left', 'right' ];\n\nfunction getLegacyIdMap( blocks, content, nameCount = {} ) {\n\tlet idToClientIdMap = {};\n\tfor ( const block of blocks ) {\n\t\tif ( block?.innerBlocks?.length ) {\n\t\t\tidToClientIdMap = {\n\t\t\t\t...idToClientIdMap,\n\t\t\t\t...getLegacyIdMap( block.innerBlocks, content, nameCount ),\n\t\t\t};\n\t\t}\n\n\t\tconst id = block.attributes.metadata?.id;\n\t\tconst clientId = block.clientId;\n\t\tif ( id && content?.[ id ] ) {\n\t\t\tidToClientIdMap[ clientId ] = id;\n\t\t}\n\t}\n\treturn idToClientIdMap;\n}\n\nconst useInferredLayout = ( blocks, parentLayout ) => {\n\tconst initialInferredAlignmentRef = useRef();\n\n\treturn useMemo( () => {\n\t\t// Exit early if the pattern's blocks haven't loaded yet.\n\t\tif ( ! blocks?.length ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet alignment = initialInferredAlignmentRef.current;\n\n\t\t// Only track the initial alignment so that temporarily removed\n\t\t// alignments can be reapplied.\n\t\tif ( alignment === undefined ) {\n\t\t\tconst isConstrained = parentLayout?.type === 'constrained';\n\t\t\tconst hasFullAlignment = blocks.some( ( block ) =>\n\t\t\t\tfullAlignments.includes( block.attributes.align )\n\t\t\t);\n\n\t\t\talignment = isConstrained && hasFullAlignment ? 'full' : null;\n\t\t\tinitialInferredAlignmentRef.current = alignment;\n\t\t}\n\n\t\tconst layout = alignment ? parentLayout : undefined;\n\n\t\treturn { alignment, layout };\n\t}, [ blocks, parentLayout ] );\n};\n\nfunction hasOverridableBlocks( blocks ) {\n\treturn blocks.some( ( block ) => {\n\t\tif ( isOverridableBlock( block ) ) return true;\n\t\treturn hasOverridableBlocks( block.innerBlocks );\n\t} );\n}\n\nfunction getOverridableAttributes( block ) {\n\treturn Object.entries( block.attributes.metadata.bindings )\n\t\t.filter(\n\t\t\t( [ , binding ] ) => binding.source === 'core/pattern-overrides'\n\t\t)\n\t\t.map( ( [ attributeKey ] ) => attributeKey );\n}\n\nfunction applyInitialContentValuesToInnerBlocks(\n\tblocks,\n\tcontent = {},\n\tdefaultValues,\n\tlegacyIdMap\n) {\n\treturn blocks.map( ( block ) => {\n\t\tconst innerBlocks = applyInitialContentValuesToInnerBlocks(\n\t\t\tblock.innerBlocks,\n\t\t\tcontent,\n\t\t\tdefaultValues,\n\t\t\tlegacyIdMap\n\t\t);\n\t\tconst metadataName =\n\t\t\tlegacyIdMap?.[ block.clientId ] ?? block.attributes.metadata?.name;\n\n\t\tif ( ! metadataName || ! isOverridableBlock( block ) ) {\n\t\t\treturn { ...block, innerBlocks };\n\t\t}\n\n\t\tconst attributes = getOverridableAttributes( block );\n\t\tconst newAttributes = { ...block.attributes };\n\t\tfor ( const attributeKey of attributes ) {\n\t\t\tdefaultValues[ metadataName ] ??= {};\n\t\t\tdefaultValues[ metadataName ][ attributeKey ] =\n\t\t\t\tblock.attributes[ attributeKey ];\n\n\t\t\tconst contentValues = content[ metadataName ];\n\t\t\tif ( contentValues?.[ attributeKey ] !== undefined ) {\n\t\t\t\tnewAttributes[ attributeKey ] = contentValues[ attributeKey ];\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\t...block,\n\t\t\tattributes: newAttributes,\n\t\t\tinnerBlocks,\n\t\t};\n\t} );\n}\n\nfunction isAttributeEqual( attribute1, attribute2 ) {\n\tif (\n\t\tattribute1 instanceof RichTextData &&\n\t\tattribute2 instanceof RichTextData\n\t) {\n\t\treturn attribute1.toString() === attribute2.toString();\n\t}\n\treturn attribute1 === attribute2;\n}\n\nfunction getContentValuesFromInnerBlocks( blocks, defaultValues, legacyIdMap ) {\n\t/** @type {Record<string, { values: Record<string, unknown>}>} */\n\tconst content = {};\n\tfor ( const block of blocks ) {\n\t\tif ( block.name === patternBlockName ) continue;\n\t\tif ( block.innerBlocks.length ) {\n\t\t\tObject.assign(\n\t\t\t\tcontent,\n\t\t\t\tgetContentValuesFromInnerBlocks(\n\t\t\t\t\tblock.innerBlocks,\n\t\t\t\t\tdefaultValues,\n\t\t\t\t\tlegacyIdMap\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\tconst metadataName =\n\t\t\tlegacyIdMap?.[ block.clientId ] ?? block.attributes.metadata?.name;\n\t\tif ( ! metadataName || ! isOverridableBlock( block ) ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst attributes = getOverridableAttributes( block );\n\n\t\tfor ( const attributeKey of attributes ) {\n\t\t\tif (\n\t\t\t\t! isAttributeEqual(\n\t\t\t\t\tblock.attributes[ attributeKey ],\n\t\t\t\t\tdefaultValues?.[ metadataName ]?.[ attributeKey ]\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tcontent[ metadataName ] ??= {};\n\t\t\t\t// TODO: We need a way to represent `undefined` in the serialized overrides.\n\t\t\t\t// Also see: https://github.com/WordPress/gutenberg/pull/57249#discussion_r1452987871\n\t\t\t\tcontent[ metadataName ][ attributeKey ] =\n\t\t\t\t\tblock.attributes[ attributeKey ] === undefined\n\t\t\t\t\t\t? // TODO: We use an empty string to represent undefined for now until\n\t\t\t\t\t\t // we support a richer format for overrides and the block binding API.\n\t\t\t\t\t\t // Currently only the `linkTarget` attribute of `core/button` is affected.\n\t\t\t\t\t\t ''\n\t\t\t\t\t\t: block.attributes[ attributeKey ];\n\t\t\t}\n\t\t}\n\t}\n\treturn Object.keys( content ).length > 0 ? content : undefined;\n}\n\nfunction setBlockEditMode( setEditMode, blocks, mode ) {\n\tblocks.forEach( ( block ) => {\n\t\tconst editMode =\n\t\t\tmode ||\n\t\t\t( isOverridableBlock( block ) ? 'contentOnly' : 'disabled' );\n\t\tsetEditMode( block.clientId, editMode );\n\n\t\tsetBlockEditMode(\n\t\t\tsetEditMode,\n\t\t\tblock.innerBlocks,\n\t\t\t// Disable editing for nested patterns.\n\t\t\tblock.name === patternBlockName ? 'disabled' : mode\n\t\t);\n\t} );\n}\n\nfunction RecursionWarning() {\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t</Warning>\n\t\t</div>\n\t);\n}\n\n// Wrap the main Edit function for the pattern block with a recursion wrapper\n// that allows short-circuiting rendering as early as possible, before any\n// of the other effects in the block edit have run.\nexport default function ReusableBlockEditRecursionWrapper( props ) {\n\tconst { ref } = props.attributes;\n\tconst hasAlreadyRendered = useHasRecursion( ref );\n\n\tif ( hasAlreadyRendered ) {\n\t\treturn <RecursionWarning />;\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ ref }>\n\t\t\t<ReusableBlockEdit { ...props } />\n\t\t</RecursionProvider>\n\t);\n}\n\nfunction ReusableBlockEdit( {\n\tname,\n\tattributes: { ref, content },\n\t__unstableParentLayout: parentLayout,\n\tclientId: patternClientId,\n\tsetAttributes,\n} ) {\n\tconst registry = useRegistry();\n\tconst { record, editedRecord, hasResolved } = useEntityRecord(\n\t\t'postType',\n\t\t'wp_block',\n\t\tref\n\t);\n\tconst isMissing = hasResolved && ! record;\n\n\t// The initial value of the `content` attribute.\n\tconst initialContent = useRef( content );\n\n\t// The default content values from the original pattern for overridable attributes.\n\t// Set by the `applyInitialContentValuesToInnerBlocks` function.\n\tconst defaultContent = useRef( {} );\n\n\tconst {\n\t\treplaceInnerBlocks,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tsetBlockEditingMode,\n\t} = useDispatch( blockEditorStore );\n\tconst { syncDerivedUpdates } = unlock( useDispatch( blockEditorStore ) );\n\n\tconst {\n\t\tinnerBlocks,\n\t\tuserCanEdit,\n\t\tgetBlockEditingMode,\n\t\tonNavigateToEntityRecord,\n\t\teditingMode,\n\t\thasPatternOverridesSource,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst {\n\t\t\t\tgetBlocks,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getBlockBindingsSource } = unlock( select( blocksStore ) );\n\t\t\tconst blocks = getBlocks( patternClientId );\n\t\t\tconst canEdit = canUser( 'update', 'blocks', ref );\n\n\t\t\t// For editing link to the site editor if the theme and user permissions support it.\n\t\t\treturn {\n\t\t\t\tinnerBlocks: blocks,\n\t\t\t\tuserCanEdit: canEdit,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetSettings().onNavigateToEntityRecord,\n\t\t\t\teditingMode: _getBlockEditingMode( patternClientId ),\n\t\t\t\thasPatternOverridesSource: !! getBlockBindingsSource(\n\t\t\t\t\t'core/pattern-overrides'\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ patternClientId, ref ]\n\t);\n\n\t// Sync the editing mode of the pattern block with the inner blocks.\n\tuseEffect( () => {\n\t\tsetBlockEditMode(\n\t\t\tsetBlockEditingMode,\n\t\t\tinnerBlocks,\n\t\t\t// Disable editing if the pattern itself is disabled.\n\t\t\teditingMode === 'disabled' || ! hasPatternOverridesSource\n\t\t\t\t? 'disabled'\n\t\t\t\t: undefined\n\t\t);\n\t}, [\n\t\teditingMode,\n\t\tinnerBlocks,\n\t\tsetBlockEditingMode,\n\t\thasPatternOverridesSource,\n\t] );\n\n\tconst canOverrideBlocks = useMemo(\n\t\t() => hasPatternOverridesSource && hasOverridableBlocks( innerBlocks ),\n\t\t[ hasPatternOverridesSource, innerBlocks ]\n\t);\n\n\tconst initialBlocks = useMemo(\n\t\t() =>\n\t\t\t// Clone the blocks to generate new client IDs.\n\t\t\teditedRecord.blocks?.map( ( block ) => cloneBlock( block ) ) ??\n\t\t\t( editedRecord.content && typeof editedRecord.content !== 'function'\n\t\t\t\t? parse( editedRecord.content )\n\t\t\t\t: [] ),\n\t\t[ editedRecord.blocks, editedRecord.content ]\n\t);\n\n\tconst legacyIdMap = useRef( {} );\n\n\t// Apply the initial overrides from the pattern block to the inner blocks.\n\tuseEffect( () => {\n\t\t// Build a map of clientIds to the old nano id system to provide back compat.\n\t\tlegacyIdMap.current = getLegacyIdMap(\n\t\t\tinitialBlocks,\n\t\t\tinitialContent.current\n\t\t);\n\t\tdefaultContent.current = {};\n\t\tconst originalEditingMode = getBlockEditingMode( patternClientId );\n\t\t// Replace the contents of the blocks with the overrides.\n\t\tregistry.batch( () => {\n\t\t\tsetBlockEditingMode( patternClientId, 'default' );\n\t\t\tsyncDerivedUpdates( () => {\n\t\t\t\tconst blocks = hasPatternOverridesSource\n\t\t\t\t\t? applyInitialContentValuesToInnerBlocks(\n\t\t\t\t\t\t\tinitialBlocks,\n\t\t\t\t\t\t\tinitialContent.current,\n\t\t\t\t\t\t\tdefaultContent.current,\n\t\t\t\t\t\t\tlegacyIdMap.current\n\t\t\t\t\t )\n\t\t\t\t\t: initialBlocks;\n\n\t\t\t\treplaceInnerBlocks( patternClientId, blocks );\n\t\t\t} );\n\t\t\tsetBlockEditingMode( patternClientId, originalEditingMode );\n\t\t} );\n\t}, [\n\t\thasPatternOverridesSource,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tpatternClientId,\n\t\tinitialBlocks,\n\t\treplaceInnerBlocks,\n\t\tregistry,\n\t\tgetBlockEditingMode,\n\t\tsetBlockEditingMode,\n\t\tsyncDerivedUpdates,\n\t] );\n\n\tconst { alignment, layout } = useInferredLayout(\n\t\tinnerBlocks,\n\t\tparentLayout\n\t);\n\tconst layoutClasses = useLayoutClasses( { layout }, name );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames(\n\t\t\t'block-library-block__reusable-block-container',\n\t\t\tlayout && layoutClasses,\n\t\t\t{ [ `align${ alignment }` ]: alignment }\n\t\t),\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplateLock: 'all',\n\t\tlayout,\n\t\trenderAppender: innerBlocks?.length\n\t\t\t? undefined\n\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t} );\n\n\t// Sync the `content` attribute from the updated blocks to the pattern block.\n\t// `syncDerivedUpdates` is used here to avoid creating an additional undo level.\n\tuseEffect( () => {\n\t\tif ( ! hasPatternOverridesSource ) {\n\t\t\treturn;\n\t\t}\n\t\tconst { getBlocks } = registry.select( blockEditorStore );\n\t\tlet prevBlocks = getBlocks( patternClientId );\n\t\treturn registry.subscribe( () => {\n\t\t\tconst blocks = getBlocks( patternClientId );\n\t\t\tif ( blocks !== prevBlocks ) {\n\t\t\t\tprevBlocks = blocks;\n\t\t\t\tsyncDerivedUpdates( () => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: getContentValuesFromInnerBlocks(\n\t\t\t\t\t\t\tblocks,\n\t\t\t\t\t\t\tdefaultContent.current,\n\t\t\t\t\t\t\tlegacyIdMap.current\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}, blockEditorStore );\n\t}, [\n\t\thasPatternOverridesSource,\n\t\tsyncDerivedUpdates,\n\t\tpatternClientId,\n\t\tregistry,\n\t\tsetAttributes,\n\t] );\n\n\tconst handleEditOriginal = () => {\n\t\tonNavigateToEntityRecord( {\n\t\t\tpostId: ref,\n\t\t\tpostType: 'wp_block',\n\t\t} );\n\t};\n\n\tconst resetContent = () => {\n\t\tif ( content ) {\n\t\t\treplaceInnerBlocks( patternClientId, initialBlocks );\n\t\t}\n\t};\n\n\tlet children = null;\n\n\tif ( isMissing ) {\n\t\tchildren = (\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block has been deleted or is unavailable.' ) }\n\t\t\t</Warning>\n\t\t);\n\t}\n\n\tif ( ! hasResolved ) {\n\t\tchildren = (\n\t\t\t<Placeholder>\n\t\t\t\t<Spinner />\n\t\t\t</Placeholder>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ userCanEdit && onNavigateToEntityRecord && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton onClick={ handleEditOriginal }>\n\t\t\t\t\t\t\t{ __( 'Edit original' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ canOverrideBlocks && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ resetContent }\n\t\t\t\t\t\t\tdisabled={ ! content }\n\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ children === null ? (\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t) : (\n\t\t\t\t<div { ...blockProps }>{ children }</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","useSelect","useDispatch","useRef","useMemo","useEffect","useEntityRecord","store","coreStore","useEntityBlockEditor","Placeholder","Spinner","ToolbarButton","ToolbarGroup","__","useInnerBlocksProps","RecursionProvider","useHasRecursion","useBlockProps","Warning","privateApis","blockEditorPrivateApis","blockEditorStore","BlockControls","patternsPrivateApis","blocksStore","name","patternBlockName","unlock","useLayoutClasses","isOverridableBlock","fullAlignments","useInferredLayout","blocks","parentLayout","initialInferredAlignmentRef","length","alignment","current","undefined","isConstrained","type","hasFullAlignment","some","block","includes","attributes","align","layout","hasOverridableBlocks","innerBlocks","setBlockEditMode","setEditMode","mode","forEach","editMode","clientId","RecursionWarning","blockProps","createElement","NOOP","ReusableBlockEditRecursionWrapper","props","ref","hasAlreadyRendered","uniqueId","ReusableBlockEdit","content","__unstableParentLayout","patternClientId","setAttributes","record","hasResolved","id","isMissing","setBlockEditingMode","__unstableMarkLastChangeAsPersistent","userCanEdit","onNavigateToEntityRecord","editingMode","hasPatternOverridesSource","select","canUser","getBlocks","getSettings","getBlockEditingMode","_getBlockEditingMode","getBlockBindingsSource","canEdit","canOverrideBlocks","layoutClasses","className","innerBlocksProps","templateLock","value","onInput","onChange","renderAppender","ButtonBlockAppender","handleEditOriginal","postId","postType","resetContent","children","Fragment","onClick","disabled","__experimentalIsFocusable"],"sources":["@wordpress/block-library/src/block/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRef, useMemo, useEffect } from '@wordpress/element';\nimport {\n\tuseEntityRecord,\n\tstore as coreStore,\n\tuseEntityBlockEditor,\n} from '@wordpress/core-data';\nimport {\n\tPlaceholder,\n\tSpinner,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseInnerBlocksProps,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tuseBlockProps,\n\tWarning,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\tBlockControls,\n} from '@wordpress/block-editor';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\nimport { store as blocksStore } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { name as patternBlockName } from './index';\nimport { unlock } from '../lock-unlock';\n\nconst { useLayoutClasses } = unlock( blockEditorPrivateApis );\nconst { isOverridableBlock } = unlock( patternsPrivateApis );\n\nconst fullAlignments = [ 'full', 'wide', 'left', 'right' ];\n\nconst useInferredLayout = ( blocks, parentLayout ) => {\n\tconst initialInferredAlignmentRef = useRef();\n\n\treturn useMemo( () => {\n\t\t// Exit early if the pattern's blocks haven't loaded yet.\n\t\tif ( ! blocks?.length ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet alignment = initialInferredAlignmentRef.current;\n\n\t\t// Only track the initial alignment so that temporarily removed\n\t\t// alignments can be reapplied.\n\t\tif ( alignment === undefined ) {\n\t\t\tconst isConstrained = parentLayout?.type === 'constrained';\n\t\t\tconst hasFullAlignment = blocks.some( ( block ) =>\n\t\t\t\tfullAlignments.includes( block.attributes.align )\n\t\t\t);\n\n\t\t\talignment = isConstrained && hasFullAlignment ? 'full' : null;\n\t\t\tinitialInferredAlignmentRef.current = alignment;\n\t\t}\n\n\t\tconst layout = alignment ? parentLayout : undefined;\n\n\t\treturn { alignment, layout };\n\t}, [ blocks, parentLayout ] );\n};\n\nfunction hasOverridableBlocks( blocks ) {\n\treturn blocks.some( ( block ) => {\n\t\tif ( isOverridableBlock( block ) ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn hasOverridableBlocks( block.innerBlocks );\n\t} );\n}\n\nfunction setBlockEditMode( setEditMode, blocks, mode ) {\n\tblocks.forEach( ( block ) => {\n\t\tconst editMode =\n\t\t\tmode ||\n\t\t\t( isOverridableBlock( block ) ? 'contentOnly' : 'disabled' );\n\t\tsetEditMode( block.clientId, editMode );\n\n\t\tsetBlockEditMode(\n\t\t\tsetEditMode,\n\t\t\tblock.innerBlocks,\n\t\t\t// Disable editing for nested patterns.\n\t\t\tblock.name === patternBlockName ? 'disabled' : mode\n\t\t);\n\t} );\n}\n\nfunction RecursionWarning() {\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t</Warning>\n\t\t</div>\n\t);\n}\n\nconst NOOP = () => {};\n\n// Wrap the main Edit function for the pattern block with a recursion wrapper\n// that allows short-circuiting rendering as early as possible, before any\n// of the other effects in the block edit have run.\nexport default function ReusableBlockEditRecursionWrapper( props ) {\n\tconst { ref } = props.attributes;\n\tconst hasAlreadyRendered = useHasRecursion( ref );\n\n\tif ( hasAlreadyRendered ) {\n\t\treturn <RecursionWarning />;\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ ref }>\n\t\t\t<ReusableBlockEdit { ...props } />\n\t\t</RecursionProvider>\n\t);\n}\n\nfunction ReusableBlockEdit( {\n\tname,\n\tattributes: { ref, content },\n\t__unstableParentLayout: parentLayout,\n\tclientId: patternClientId,\n\tsetAttributes,\n} ) {\n\tconst { record, hasResolved } = useEntityRecord(\n\t\t'postType',\n\t\t'wp_block',\n\t\tref\n\t);\n\tconst [ blocks ] = useEntityBlockEditor( 'postType', 'wp_block', {\n\t\tid: ref,\n\t} );\n\tconst isMissing = hasResolved && ! record;\n\n\tconst { setBlockEditingMode, __unstableMarkLastChangeAsPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst {\n\t\tinnerBlocks,\n\t\tuserCanEdit,\n\t\tonNavigateToEntityRecord,\n\t\teditingMode,\n\t\thasPatternOverridesSource,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst {\n\t\t\t\tgetBlocks,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getBlockBindingsSource } = unlock( select( blocksStore ) );\n\t\t\tconst canEdit = canUser( 'update', 'blocks', ref );\n\n\t\t\t// For editing link to the site editor if the theme and user permissions support it.\n\t\t\treturn {\n\t\t\t\tinnerBlocks: getBlocks( patternClientId ),\n\t\t\t\tuserCanEdit: canEdit,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetSettings().onNavigateToEntityRecord,\n\t\t\t\teditingMode: _getBlockEditingMode( patternClientId ),\n\t\t\t\thasPatternOverridesSource: !! getBlockBindingsSource(\n\t\t\t\t\t'core/pattern-overrides'\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ patternClientId, ref ]\n\t);\n\n\t// Sync the editing mode of the pattern block with the inner blocks.\n\tuseEffect( () => {\n\t\tsetBlockEditMode(\n\t\t\tsetBlockEditingMode,\n\t\t\tinnerBlocks,\n\t\t\t// Disable editing if the pattern itself is disabled.\n\t\t\teditingMode === 'disabled' || ! hasPatternOverridesSource\n\t\t\t\t? 'disabled'\n\t\t\t\t: undefined\n\t\t);\n\t}, [\n\t\teditingMode,\n\t\tinnerBlocks,\n\t\tsetBlockEditingMode,\n\t\thasPatternOverridesSource,\n\t] );\n\n\tconst canOverrideBlocks = useMemo(\n\t\t() => hasPatternOverridesSource && hasOverridableBlocks( blocks ),\n\t\t[ hasPatternOverridesSource, blocks ]\n\t);\n\n\tconst { alignment, layout } = useInferredLayout( blocks, parentLayout );\n\tconst layoutClasses = useLayoutClasses( { layout }, name );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx(\n\t\t\t'block-library-block__reusable-block-container',\n\t\t\tlayout && layoutClasses,\n\t\t\t{ [ `align${ alignment }` ]: alignment }\n\t\t),\n\t} );\n\n\t// Use `blocks` variable until `innerBlocks` is populated, which has the proper clientIds.\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplateLock: 'all',\n\t\tlayout,\n\t\tvalue: innerBlocks.length > 0 ? innerBlocks : blocks,\n\t\tonInput: NOOP,\n\t\tonChange: NOOP,\n\t\trenderAppender: blocks?.length ? undefined : blocks.ButtonBlockAppender,\n\t} );\n\n\tconst handleEditOriginal = () => {\n\t\tonNavigateToEntityRecord( {\n\t\t\tpostId: ref,\n\t\t\tpostType: 'wp_block',\n\t\t} );\n\t};\n\n\tconst resetContent = () => {\n\t\tif ( content ) {\n\t\t\t// Make sure any previous changes are persisted before resetting.\n\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\tsetAttributes( { content: undefined } );\n\t\t}\n\t};\n\n\tlet children = null;\n\n\tif ( isMissing ) {\n\t\tchildren = (\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block has been deleted or is unavailable.' ) }\n\t\t\t</Warning>\n\t\t);\n\t}\n\n\tif ( ! hasResolved ) {\n\t\tchildren = (\n\t\t\t<Placeholder>\n\t\t\t\t<Spinner />\n\t\t\t</Placeholder>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ userCanEdit && onNavigateToEntityRecord && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton onClick={ handleEditOriginal }>\n\t\t\t\t\t\t\t{ __( 'Edit original' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ canOverrideBlocks && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ resetContent }\n\t\t\t\t\t\t\tdisabled={ ! content }\n\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ children === null ? (\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t) : (\n\t\t\t\t<div { ...blockProps }>{ children }</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { useEffect } from '@wordpress/element';
5
+ import { useSelect, useDispatch } from '@wordpress/data';
6
+ import { useShortcut, store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
7
+ import { __ } from '@wordpress/i18n';
8
+ import { createBlock } from '@wordpress/blocks';
9
+ import { store as blockEditorStore } from '@wordpress/block-editor';
10
+ function BlockKeyboardShortcuts() {
11
+ const {
12
+ registerShortcut
13
+ } = useDispatch(keyboardShortcutsStore);
14
+ const {
15
+ replaceBlocks
16
+ } = useDispatch(blockEditorStore);
17
+ const {
18
+ getBlockName,
19
+ getSelectedBlockClientId,
20
+ getBlockAttributes
21
+ } = useSelect(blockEditorStore);
22
+ const handleTransformHeadingAndParagraph = (event, level) => {
23
+ event.preventDefault();
24
+ const currentClientId = getSelectedBlockClientId();
25
+ if (currentClientId === null) {
26
+ return;
27
+ }
28
+ const blockName = getBlockName(currentClientId);
29
+ const isParagraph = blockName === 'core/paragraph';
30
+ const isHeading = blockName === 'core/heading';
31
+ if (!isParagraph && !isHeading) {
32
+ return;
33
+ }
34
+ const destinationBlockName = level === 0 ? 'core/paragraph' : 'core/heading';
35
+ const attributes = getBlockAttributes(currentClientId);
36
+
37
+ // Avoid unnecessary block transform when attempting to transform to
38
+ // the same block type and/or same level.
39
+ if (isParagraph && level === 0 || isHeading && attributes.level === level) {
40
+ return;
41
+ }
42
+ const textAlign = blockName === 'core/paragraph' ? 'align' : 'textAlign';
43
+ const destinationTextAlign = destinationBlockName === 'core/paragraph' ? 'align' : 'textAlign';
44
+ replaceBlocks(currentClientId, createBlock(destinationBlockName, {
45
+ level,
46
+ content: attributes.content,
47
+ ...{
48
+ [destinationTextAlign]: attributes[textAlign]
49
+ }
50
+ }));
51
+ };
52
+ useEffect(() => {
53
+ registerShortcut({
54
+ name: 'core/block-editor/transform-heading-to-paragraph',
55
+ category: 'block-library',
56
+ description: __('Transform heading to paragraph.'),
57
+ keyCombination: {
58
+ modifier: 'access',
59
+ character: '0'
60
+ },
61
+ aliases: [{
62
+ modifier: 'access',
63
+ character: '7'
64
+ }]
65
+ });
66
+ [1, 2, 3, 4, 5, 6].forEach(level => {
67
+ registerShortcut({
68
+ name: `core/block-editor/transform-paragraph-to-heading-${level}`,
69
+ category: 'block-library',
70
+ description: __('Transform paragraph to heading.'),
71
+ keyCombination: {
72
+ modifier: 'access',
73
+ character: `${level}`
74
+ }
75
+ });
76
+ });
77
+ }, []);
78
+ useShortcut('core/block-editor/transform-heading-to-paragraph', event => handleTransformHeadingAndParagraph(event, 0));
79
+ [1, 2, 3, 4, 5, 6].forEach(level => {
80
+ //the loop is based off on a constant therefore
81
+ //the hook will execute the same way every time
82
+ //eslint-disable-next-line react-hooks/rules-of-hooks
83
+ useShortcut(`core/block-editor/transform-paragraph-to-heading-${level}`, event => handleTransformHeadingAndParagraph(event, level));
84
+ });
85
+ return null;
86
+ }
87
+ export default BlockKeyboardShortcuts;
88
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useSelect","useDispatch","useShortcut","store","keyboardShortcutsStore","__","createBlock","blockEditorStore","BlockKeyboardShortcuts","registerShortcut","replaceBlocks","getBlockName","getSelectedBlockClientId","getBlockAttributes","handleTransformHeadingAndParagraph","event","level","preventDefault","currentClientId","blockName","isParagraph","isHeading","destinationBlockName","attributes","textAlign","destinationTextAlign","content","name","category","description","keyCombination","modifier","character","aliases","forEach"],"sources":["@wordpress/block-library/src/block-keyboard-shortcuts/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tuseShortcut,\n\tstore as keyboardShortcutsStore,\n} from '@wordpress/keyboard-shortcuts';\nimport { __ } from '@wordpress/i18n';\nimport { createBlock } from '@wordpress/blocks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nfunction BlockKeyboardShortcuts() {\n\tconst { registerShortcut } = useDispatch( keyboardShortcutsStore );\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst { getBlockName, getSelectedBlockClientId, getBlockAttributes } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst handleTransformHeadingAndParagraph = ( event, level ) => {\n\t\tevent.preventDefault();\n\n\t\tconst currentClientId = getSelectedBlockClientId();\n\t\tif ( currentClientId === null ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst blockName = getBlockName( currentClientId );\n\t\tconst isParagraph = blockName === 'core/paragraph';\n\t\tconst isHeading = blockName === 'core/heading';\n\n\t\tif ( ! isParagraph && ! isHeading ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst destinationBlockName =\n\t\t\tlevel === 0 ? 'core/paragraph' : 'core/heading';\n\n\t\tconst attributes = getBlockAttributes( currentClientId );\n\n\t\t// Avoid unnecessary block transform when attempting to transform to\n\t\t// the same block type and/or same level.\n\t\tif (\n\t\t\t( isParagraph && level === 0 ) ||\n\t\t\t( isHeading && attributes.level === level )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst textAlign =\n\t\t\tblockName === 'core/paragraph' ? 'align' : 'textAlign';\n\t\tconst destinationTextAlign =\n\t\t\tdestinationBlockName === 'core/paragraph' ? 'align' : 'textAlign';\n\n\t\treplaceBlocks(\n\t\t\tcurrentClientId,\n\t\t\tcreateBlock( destinationBlockName, {\n\t\t\t\tlevel,\n\t\t\t\tcontent: attributes.content,\n\t\t\t\t...{ [ destinationTextAlign ]: attributes[ textAlign ] },\n\t\t\t} )\n\t\t);\n\t};\n\n\tuseEffect( () => {\n\t\tregisterShortcut( {\n\t\t\tname: 'core/block-editor/transform-heading-to-paragraph',\n\t\t\tcategory: 'block-library',\n\t\t\tdescription: __( 'Transform heading to paragraph.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'access',\n\t\t\t\tcharacter: '0',\n\t\t\t},\n\t\t\taliases: [\n\t\t\t\t{\n\t\t\t\t\tmodifier: 'access',\n\t\t\t\t\tcharacter: '7',\n\t\t\t\t},\n\t\t\t],\n\t\t} );\n\n\t\t[ 1, 2, 3, 4, 5, 6 ].forEach( ( level ) => {\n\t\t\tregisterShortcut( {\n\t\t\t\tname: `core/block-editor/transform-paragraph-to-heading-${ level }`,\n\t\t\t\tcategory: 'block-library',\n\t\t\t\tdescription: __( 'Transform paragraph to heading.' ),\n\t\t\t\tkeyCombination: {\n\t\t\t\t\tmodifier: 'access',\n\t\t\t\t\tcharacter: `${ level }`,\n\t\t\t\t},\n\t\t\t} );\n\t\t} );\n\t}, [] );\n\n\tuseShortcut(\n\t\t'core/block-editor/transform-heading-to-paragraph',\n\t\t( event ) => handleTransformHeadingAndParagraph( event, 0 )\n\t);\n\n\t[ 1, 2, 3, 4, 5, 6 ].forEach( ( level ) => {\n\t\t//the loop is based off on a constant therefore\n\t\t//the hook will execute the same way every time\n\t\t//eslint-disable-next-line react-hooks/rules-of-hooks\n\t\tuseShortcut(\n\t\t\t`core/block-editor/transform-paragraph-to-heading-${ level }`,\n\t\t\t( event ) => handleTransformHeadingAndParagraph( event, level )\n\t\t);\n\t} );\n\n\treturn null;\n}\n\nexport default BlockKeyboardShortcuts;\n"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,7 @@ import { createElement } from "react";
2
2
  /**
3
3
  * External dependencies
4
4
  */
5
- import classnames from 'classnames';
5
+ import clsx from 'clsx';
6
6
 
7
7
  /**
8
8
  * WordPress dependencies
@@ -48,7 +48,7 @@ function migrateAlign(attributes) {
48
48
  } = attributes;
49
49
  return {
50
50
  ...otherAttributes,
51
- className: classnames(otherAttributes.className, `align${attributes.align}`)
51
+ className: clsx(otherAttributes.className, `align${attributes.align}`)
52
52
  };
53
53
  }
54
54
  const migrateCustomColorsAndGradients = attributes => {
@@ -212,7 +212,7 @@ const v11 = {
212
212
  const borderProps = getBorderClassesAndStyles(attributes);
213
213
  const colorProps = getColorClassesAndStyles(attributes);
214
214
  const spacingProps = getSpacingClassesAndStyles(attributes);
215
- const buttonClasses = classnames('wp-block-button__link', colorProps.className, borderProps.className, {
215
+ const buttonClasses = clsx('wp-block-button__link', colorProps.className, borderProps.className, {
216
216
  // For backwards compatibility add style that isn't provided via
217
217
  // block support.
218
218
  'no-border-radius': style?.border?.radius === 0
@@ -227,7 +227,7 @@ const v11 = {
227
227
  // if it had already been assigned, for the sake of backward-compatibility.
228
228
  // A title will no longer be assigned for new or updated button block links.
229
229
 
230
- const wrapperClasses = classnames(className, {
230
+ const wrapperClasses = clsx(className, {
231
231
  [`has-custom-width wp-block-button__width-${width}`]: width,
232
232
  [`has-custom-font-size`]: fontSize || style?.typography?.fontSize
233
233
  });
@@ -340,7 +340,7 @@ const v10 = {
340
340
  const borderProps = getBorderClassesAndStyles(attributes);
341
341
  const colorProps = getColorClassesAndStyles(attributes);
342
342
  const spacingProps = getSpacingClassesAndStyles(attributes);
343
- const buttonClasses = classnames('wp-block-button__link', colorProps.className, borderProps.className, {
343
+ const buttonClasses = clsx('wp-block-button__link', colorProps.className, borderProps.className, {
344
344
  // For backwards compatibility add style that isn't provided via
345
345
  // block support.
346
346
  'no-border-radius': style?.border?.radius === 0
@@ -355,7 +355,7 @@ const v10 = {
355
355
  // if it had already been assigned, for the sake of backward-compatibility.
356
356
  // A title will no longer be assigned for new or updated button block links.
357
357
 
358
- const wrapperClasses = classnames(className, {
358
+ const wrapperClasses = clsx(className, {
359
359
  [`has-custom-width wp-block-button__width-${width}`]: width,
360
360
  [`has-custom-font-size`]: fontSize || style?.typography?.fontSize
361
361
  });
@@ -451,7 +451,7 @@ const deprecated = [v11, v10, {
451
451
  }
452
452
  const borderRadius = style?.border?.radius;
453
453
  const colorProps = getColorClassesAndStyles(attributes);
454
- const buttonClasses = classnames('wp-block-button__link', colorProps.className, {
454
+ const buttonClasses = clsx('wp-block-button__link', colorProps.className, {
455
455
  'no-border-radius': style?.border?.radius === 0
456
456
  });
457
457
  const buttonStyle = {
@@ -463,7 +463,7 @@ const deprecated = [v11, v10, {
463
463
  // if it had already been assigned, for the sake of backward-compatibility.
464
464
  // A title will no longer be assigned for new or updated button block links.
465
465
 
466
- const wrapperClasses = classnames(className, {
466
+ const wrapperClasses = clsx(className, {
467
467
  [`has-custom-width wp-block-button__width-${width}`]: width,
468
468
  [`has-custom-font-size`]: fontSize || style?.typography?.fontSize
469
469
  });
@@ -544,7 +544,7 @@ const deprecated = [v11, v10, {
544
544
  width
545
545
  } = attributes;
546
546
  const colorProps = getColorClassesAndStyles(attributes);
547
- const buttonClasses = classnames('wp-block-button__link', colorProps.className, {
547
+ const buttonClasses = clsx('wp-block-button__link', colorProps.className, {
548
548
  'no-border-radius': borderRadius === 0
549
549
  });
550
550
  const buttonStyle = {
@@ -556,7 +556,7 @@ const deprecated = [v11, v10, {
556
556
  // if it had already been assigned, for the sake of backward-compatibility.
557
557
  // A title will no longer be assigned for new or updated button block links.
558
558
 
559
- const wrapperClasses = classnames(className, {
559
+ const wrapperClasses = clsx(className, {
560
560
  [`has-custom-width wp-block-button__width-${width}`]: width
561
561
  });
562
562
  return createElement("div", {
@@ -636,7 +636,7 @@ const deprecated = [v11, v10, {
636
636
  width
637
637
  } = attributes;
638
638
  const colorProps = getColorClassesAndStyles(attributes);
639
- const buttonClasses = classnames('wp-block-button__link', colorProps.className, {
639
+ const buttonClasses = clsx('wp-block-button__link', colorProps.className, {
640
640
  'no-border-radius': borderRadius === 0
641
641
  });
642
642
  const buttonStyle = {
@@ -648,7 +648,7 @@ const deprecated = [v11, v10, {
648
648
  // if it had already been assigned, for the sake of backward-compatibility.
649
649
  // A title will no longer be assigned for new or updated button block links.
650
650
 
651
- const wrapperClasses = classnames(className, {
651
+ const wrapperClasses = clsx(className, {
652
652
  [`has-custom-width wp-block-button__width-${width}`]: width
653
653
  });
654
654
  return createElement("div", {
@@ -719,7 +719,7 @@ const deprecated = [v11, v10, {
719
719
  title,
720
720
  url
721
721
  } = attributes;
722
- const buttonClasses = classnames('wp-block-button__link', {
722
+ const buttonClasses = clsx('wp-block-button__link', {
723
723
  'no-border-radius': borderRadius === 0
724
724
  });
725
725
  const buttonStyle = {
@@ -803,7 +803,7 @@ const deprecated = [v11, v10, {
803
803
  const textClass = getColorClassName('color', textColor);
804
804
  const backgroundClass = !customGradient && getColorClassName('background-color', backgroundColor);
805
805
  const gradientClass = __experimentalGetGradientClass(gradient);
806
- const buttonClasses = classnames('wp-block-button__link', {
806
+ const buttonClasses = clsx('wp-block-button__link', {
807
807
  'has-text-color': textColor || customTextColor,
808
808
  [textClass]: textClass,
809
809
  'has-background': backgroundColor || customBackgroundColor || customGradient || gradient,
@@ -898,7 +898,7 @@ const deprecated = [v11, v10, {
898
898
  } = attributes;
899
899
  const textClass = getColorClassName('color', textColor);
900
900
  const backgroundClass = getColorClassName('background-color', backgroundColor);
901
- const buttonClasses = classnames('wp-block-button__link', {
901
+ const buttonClasses = clsx('wp-block-button__link', {
902
902
  'has-text-color': textColor || customTextColor,
903
903
  [textClass]: textClass,
904
904
  'has-background': backgroundColor || customBackgroundColor,
@@ -954,7 +954,7 @@ const deprecated = [v11, v10, {
954
954
  } = attributes;
955
955
  const textClass = getColorClassName('color', textColor);
956
956
  const backgroundClass = getColorClassName('background-color', backgroundColor);
957
- const buttonClasses = classnames('wp-block-button__link', {
957
+ const buttonClasses = clsx('wp-block-button__link', {
958
958
  'has-text-color': textColor || customTextColor,
959
959
  [textClass]: textClass,
960
960
  'has-background': backgroundColor || customBackgroundColor,