@wordpress/block-library 8.30.0 → 8.32.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 (362) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/block/edit.js +22 -16
  3. package/build/block/edit.js.map +1 -1
  4. package/build/button/edit.native.js +1 -1
  5. package/build/button/edit.native.js.map +1 -1
  6. package/build/code/save.js +3 -1
  7. package/build/code/save.js.map +1 -1
  8. package/build/cover/edit/index.js +2 -1
  9. package/build/cover/edit/index.js.map +1 -1
  10. package/build/details/edit.js +1 -0
  11. package/build/details/edit.js.map +1 -1
  12. package/build/file/edit.js +2 -0
  13. package/build/file/edit.js.map +1 -1
  14. package/build/heading/index.js +4 -3
  15. package/build/heading/index.js.map +1 -1
  16. package/build/image/edit.js +10 -39
  17. package/build/image/edit.js.map +1 -1
  18. package/build/image/image.js +27 -6
  19. package/build/image/image.js.map +1 -1
  20. package/build/media-text/edit.js +33 -9
  21. package/build/media-text/edit.js.map +1 -1
  22. package/build/media-text/index.js +5 -0
  23. package/build/media-text/index.js.map +1 -1
  24. package/build/media-text/media-container.js +30 -11
  25. package/build/media-text/media-container.js.map +1 -1
  26. package/build/media-text/save.js +2 -2
  27. package/build/media-text/save.js.map +1 -1
  28. package/build/navigation/edit/index.js +23 -29
  29. package/build/navigation/edit/index.js.map +1 -1
  30. package/build/navigation/edit/navigation-menu-delete-control.js +12 -20
  31. package/build/navigation/edit/navigation-menu-delete-control.js.map +1 -1
  32. package/build/navigation/edit/navigation-menu-selector.js +24 -23
  33. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  34. package/build/navigation/edit/placeholder/index.js +4 -4
  35. package/build/navigation/edit/placeholder/index.js.map +1 -1
  36. package/build/navigation/use-navigation-menu.js +15 -12
  37. package/build/navigation/use-navigation-menu.js.map +1 -1
  38. package/build/navigation/view.js +12 -2
  39. package/build/navigation/view.js.map +1 -1
  40. package/build/navigation-link/edit.js +52 -27
  41. package/build/navigation-link/edit.js.map +1 -1
  42. package/build/navigation-submenu/edit.js +31 -9
  43. package/build/navigation-submenu/edit.js.map +1 -1
  44. package/build/pattern/edit.js +3 -1
  45. package/build/pattern/edit.js.map +1 -1
  46. package/build/post-author/edit.js +1 -0
  47. package/build/post-author/edit.js.map +1 -1
  48. package/build/post-excerpt/edit.js +1 -0
  49. package/build/post-excerpt/edit.js.map +1 -1
  50. package/build/post-featured-image/edit.js +16 -4
  51. package/build/post-featured-image/edit.js.map +1 -1
  52. package/build/post-featured-image/index.js +13 -2
  53. package/build/post-featured-image/index.js.map +1 -1
  54. package/build/post-featured-image/overlay-controls.js +82 -0
  55. package/build/post-featured-image/overlay-controls.js.map +1 -0
  56. package/build/post-featured-image/overlay.js +5 -54
  57. package/build/post-featured-image/overlay.js.map +1 -1
  58. package/build/post-navigation-link/edit.js +1 -0
  59. package/build/post-navigation-link/edit.js.map +1 -1
  60. package/build/post-terms/edit.js +2 -0
  61. package/build/post-terms/edit.js.map +1 -1
  62. package/build/quote/edit.js +18 -23
  63. package/build/quote/edit.js.map +1 -1
  64. package/build/read-more/edit.js +1 -0
  65. package/build/read-more/edit.js.map +1 -1
  66. package/build/search/edit.js +2 -0
  67. package/build/search/edit.js.map +1 -1
  68. package/build/search/edit.native.js +2 -2
  69. package/build/search/edit.native.js.map +1 -1
  70. package/build/site-tagline/edit.js +13 -4
  71. package/build/site-tagline/edit.js.map +1 -1
  72. package/build/site-tagline/index.js +4 -0
  73. package/build/site-tagline/index.js.map +1 -1
  74. package/build/social-link/edit.js +1 -1
  75. package/build/social-link/edit.js.map +1 -1
  76. package/build/social-link/icons/medium.js +1 -1
  77. package/build/social-link/icons/medium.js.map +1 -1
  78. package/build/social-link/icons/reddit.js +1 -1
  79. package/build/social-link/icons/reddit.js.map +1 -1
  80. package/build/table/deprecated.js +285 -175
  81. package/build/table/deprecated.js.map +1 -1
  82. package/build/table/index.js +1 -1
  83. package/build/template-part/edit/index.js +55 -47
  84. package/build/template-part/edit/index.js.map +1 -1
  85. package/build/template-part/edit/inner-blocks.js +106 -10
  86. package/build/template-part/edit/inner-blocks.js.map +1 -1
  87. package/build/template-part/edit/selection-modal.js +1 -9
  88. package/build/template-part/edit/selection-modal.js.map +1 -1
  89. package/build/utils/caption.js +19 -13
  90. package/build/utils/caption.js.map +1 -1
  91. package/build/utils/hooks.js +1 -0
  92. package/build/utils/hooks.js.map +1 -1
  93. package/build/video/edit.native.js +1 -1
  94. package/build/video/edit.native.js.map +1 -1
  95. package/build-module/block/edit.js +23 -17
  96. package/build-module/block/edit.js.map +1 -1
  97. package/build-module/button/edit.native.js +1 -1
  98. package/build-module/button/edit.native.js.map +1 -1
  99. package/build-module/code/save.js +3 -1
  100. package/build-module/code/save.js.map +1 -1
  101. package/build-module/cover/edit/index.js +2 -1
  102. package/build-module/cover/edit/index.js.map +1 -1
  103. package/build-module/details/edit.js +1 -0
  104. package/build-module/details/edit.js.map +1 -1
  105. package/build-module/file/edit.js +2 -0
  106. package/build-module/file/edit.js.map +1 -1
  107. package/build-module/heading/index.js +4 -3
  108. package/build-module/heading/index.js.map +1 -1
  109. package/build-module/image/edit.js +11 -40
  110. package/build-module/image/edit.js.map +1 -1
  111. package/build-module/image/image.js +27 -6
  112. package/build-module/image/image.js.map +1 -1
  113. package/build-module/media-text/edit.js +34 -10
  114. package/build-module/media-text/edit.js.map +1 -1
  115. package/build-module/media-text/index.js +5 -0
  116. package/build-module/media-text/index.js.map +1 -1
  117. package/build-module/media-text/media-container.js +31 -12
  118. package/build-module/media-text/media-container.js.map +1 -1
  119. package/build-module/media-text/save.js +2 -2
  120. package/build-module/media-text/save.js.map +1 -1
  121. package/build-module/navigation/edit/index.js +24 -30
  122. package/build-module/navigation/edit/index.js.map +1 -1
  123. package/build-module/navigation/edit/navigation-menu-delete-control.js +15 -23
  124. package/build-module/navigation/edit/navigation-menu-delete-control.js.map +1 -1
  125. package/build-module/navigation/edit/navigation-menu-selector.js +24 -23
  126. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  127. package/build-module/navigation/edit/placeholder/index.js +4 -4
  128. package/build-module/navigation/edit/placeholder/index.js.map +1 -1
  129. package/build-module/navigation/use-navigation-menu.js +15 -12
  130. package/build-module/navigation/use-navigation-menu.js.map +1 -1
  131. package/build-module/navigation/view.js +12 -2
  132. package/build-module/navigation/view.js.map +1 -1
  133. package/build-module/navigation-link/edit.js +55 -30
  134. package/build-module/navigation-link/edit.js.map +1 -1
  135. package/build-module/navigation-submenu/edit.js +31 -9
  136. package/build-module/navigation-submenu/edit.js.map +1 -1
  137. package/build-module/pattern/edit.js +3 -1
  138. package/build-module/pattern/edit.js.map +1 -1
  139. package/build-module/post-author/edit.js +1 -0
  140. package/build-module/post-author/edit.js.map +1 -1
  141. package/build-module/post-excerpt/edit.js +1 -0
  142. package/build-module/post-excerpt/edit.js.map +1 -1
  143. package/build-module/post-featured-image/edit.js +17 -5
  144. package/build-module/post-featured-image/edit.js.map +1 -1
  145. package/build-module/post-featured-image/index.js +13 -2
  146. package/build-module/post-featured-image/index.js.map +1 -1
  147. package/build-module/post-featured-image/overlay-controls.js +75 -0
  148. package/build-module/post-featured-image/overlay-controls.js.map +1 -0
  149. package/build-module/post-featured-image/overlay.js +7 -56
  150. package/build-module/post-featured-image/overlay.js.map +1 -1
  151. package/build-module/post-navigation-link/edit.js +1 -0
  152. package/build-module/post-navigation-link/edit.js.map +1 -1
  153. package/build-module/post-terms/edit.js +2 -0
  154. package/build-module/post-terms/edit.js.map +1 -1
  155. package/build-module/quote/edit.js +20 -25
  156. package/build-module/quote/edit.js.map +1 -1
  157. package/build-module/read-more/edit.js +1 -0
  158. package/build-module/read-more/edit.js.map +1 -1
  159. package/build-module/search/edit.js +2 -0
  160. package/build-module/search/edit.js.map +1 -1
  161. package/build-module/search/edit.native.js +2 -2
  162. package/build-module/search/edit.native.js.map +1 -1
  163. package/build-module/site-tagline/edit.js +14 -5
  164. package/build-module/site-tagline/edit.js.map +1 -1
  165. package/build-module/site-tagline/index.js +4 -0
  166. package/build-module/site-tagline/index.js.map +1 -1
  167. package/build-module/social-link/edit.js +1 -1
  168. package/build-module/social-link/edit.js.map +1 -1
  169. package/build-module/social-link/icons/medium.js +1 -1
  170. package/build-module/social-link/icons/medium.js.map +1 -1
  171. package/build-module/social-link/icons/reddit.js +1 -1
  172. package/build-module/social-link/icons/reddit.js.map +1 -1
  173. package/build-module/table/deprecated.js +286 -176
  174. package/build-module/table/deprecated.js.map +1 -1
  175. package/build-module/table/index.js +1 -1
  176. package/build-module/template-part/edit/index.js +58 -50
  177. package/build-module/template-part/edit/index.js.map +1 -1
  178. package/build-module/template-part/edit/inner-blocks.js +108 -12
  179. package/build-module/template-part/edit/inner-blocks.js.map +1 -1
  180. package/build-module/template-part/edit/selection-modal.js +2 -10
  181. package/build-module/template-part/edit/selection-modal.js.map +1 -1
  182. package/build-module/utils/caption.js +19 -13
  183. package/build-module/utils/caption.js.map +1 -1
  184. package/build-module/utils/hooks.js +1 -0
  185. package/build-module/utils/hooks.js.map +1 -1
  186. package/build-module/video/edit.native.js +1 -1
  187. package/build-module/video/edit.native.js.map +1 -1
  188. package/build-style/audio/theme-rtl.css +1 -1
  189. package/build-style/audio/theme.css +1 -1
  190. package/build-style/cover/style-rtl.css +5 -2
  191. package/build-style/cover/style.css +5 -2
  192. package/build-style/editor-rtl.css +22 -12
  193. package/build-style/editor.css +22 -12
  194. package/build-style/embed/theme-rtl.css +1 -1
  195. package/build-style/embed/theme.css +1 -1
  196. package/build-style/file/editor-rtl.css +3 -0
  197. package/build-style/file/editor.css +3 -0
  198. package/build-style/image/editor-rtl.css +0 -3
  199. package/build-style/image/editor.css +0 -3
  200. package/build-style/image/theme-rtl.css +1 -1
  201. package/build-style/image/theme.css +1 -1
  202. package/build-style/media-text/editor-rtl.css +7 -1
  203. package/build-style/media-text/editor.css +7 -1
  204. package/build-style/pullquote/theme-rtl.css +2 -1
  205. package/build-style/pullquote/theme.css +2 -1
  206. package/build-style/quote/theme-rtl.css +6 -6
  207. package/build-style/quote/theme.css +6 -6
  208. package/build-style/search/style-rtl.css +10 -0
  209. package/build-style/search/style.css +10 -0
  210. package/build-style/social-links/editor-rtl.css +0 -4
  211. package/build-style/social-links/editor.css +0 -4
  212. package/build-style/social-links/style-rtl.css +2 -2
  213. package/build-style/social-links/style.css +2 -2
  214. package/build-style/style-rtl.css +17 -4
  215. package/build-style/style.css +17 -4
  216. package/build-style/table/theme-rtl.css +4 -3
  217. package/build-style/table/theme.css +4 -3
  218. package/build-style/template-part/editor-rtl.css +12 -4
  219. package/build-style/template-part/editor.css +12 -4
  220. package/build-style/template-part/theme-rtl.css +1 -1
  221. package/build-style/template-part/theme.css +1 -1
  222. package/build-style/theme-rtl.css +17 -15
  223. package/build-style/theme.css +17 -15
  224. package/build-style/video/theme-rtl.css +1 -1
  225. package/build-style/video/theme.css +1 -1
  226. package/package.json +34 -34
  227. package/src/archives/index.php +4 -0
  228. package/src/audio/theme.scss +1 -1
  229. package/src/avatar/index.php +6 -0
  230. package/src/block/edit.js +43 -32
  231. package/src/block/index.php +4 -0
  232. package/src/block/test/edit.native.js +67 -0
  233. package/src/button/edit.native.js +1 -1
  234. package/src/calendar/index.php +12 -0
  235. package/src/categories/index.php +6 -0
  236. package/src/code/save.js +7 -1
  237. package/src/comment-author-name/index.php +4 -0
  238. package/src/comment-content/index.php +4 -0
  239. package/src/comment-date/index.php +4 -0
  240. package/src/comment-edit-link/index.php +4 -0
  241. package/src/comment-reply-link/index.php +4 -0
  242. package/src/comment-template/index.php +4 -0
  243. package/src/comments/index.php +10 -0
  244. package/src/comments-pagination/index.php +4 -0
  245. package/src/comments-pagination-next/index.php +4 -0
  246. package/src/comments-pagination-numbers/index.php +4 -0
  247. package/src/comments-pagination-previous/index.php +4 -0
  248. package/src/comments-title/index.php +4 -0
  249. package/src/cover/edit/index.js +4 -1
  250. package/src/cover/index.php +4 -0
  251. package/src/cover/style.scss +6 -2
  252. package/src/details/edit.js +1 -0
  253. package/src/embed/theme.scss +1 -1
  254. package/src/file/edit.js +2 -0
  255. package/src/file/editor.scss +3 -0
  256. package/src/file/index.php +4 -0
  257. package/src/gallery/editor.scss +1 -1
  258. package/src/gallery/index.php +7 -1
  259. package/src/heading/index.js +4 -3
  260. package/src/heading/index.php +4 -0
  261. package/src/home-link/index.php +10 -0
  262. package/src/image/edit.js +11 -40
  263. package/src/image/editor.scss +2 -7
  264. package/src/image/image.js +25 -7
  265. package/src/image/index.php +12 -1
  266. package/src/image/theme.scss +1 -1
  267. package/src/latest-comments/index.php +4 -0
  268. package/src/latest-posts/index.php +8 -0
  269. package/src/loginout/index.php +4 -0
  270. package/src/media-text/block.json +5 -0
  271. package/src/media-text/edit.js +70 -19
  272. package/src/media-text/editor.scss +7 -1
  273. package/src/media-text/index.php +70 -0
  274. package/src/media-text/media-container.js +49 -9
  275. package/src/media-text/save.js +2 -2
  276. package/src/navigation/edit/index.js +67 -71
  277. package/src/navigation/edit/navigation-menu-delete-control.js +22 -49
  278. package/src/navigation/edit/navigation-menu-selector.js +39 -21
  279. package/src/navigation/edit/placeholder/index.js +4 -4
  280. package/src/navigation/edit/test/navigation-menu-selector.js +75 -53
  281. package/src/navigation/index.php +109 -26
  282. package/src/navigation/test/use-navigation-menu.js +21 -21
  283. package/src/navigation/use-navigation-menu.js +23 -9
  284. package/src/navigation/view.js +11 -2
  285. package/src/navigation-link/edit.js +64 -39
  286. package/src/navigation-link/index.php +14 -0
  287. package/src/navigation-submenu/edit.js +34 -10
  288. package/src/navigation-submenu/index.php +8 -0
  289. package/src/page-list/index.php +12 -0
  290. package/src/page-list-item/index.php +2 -0
  291. package/src/pattern/edit.js +4 -0
  292. package/src/pattern/index.php +2 -0
  293. package/src/post-author/edit.js +1 -0
  294. package/src/post-author/index.php +4 -0
  295. package/src/post-author-biography/index.php +4 -0
  296. package/src/post-author-name/index.php +4 -0
  297. package/src/post-comments-form/index.php +6 -0
  298. package/src/post-content/index.php +4 -0
  299. package/src/post-date/index.php +4 -0
  300. package/src/post-excerpt/edit.js +1 -0
  301. package/src/post-excerpt/index.php +4 -0
  302. package/src/post-featured-image/block.json +13 -2
  303. package/src/post-featured-image/edit.js +16 -1
  304. package/src/post-featured-image/editor.scss +1 -1
  305. package/src/post-featured-image/index.php +15 -0
  306. package/src/post-featured-image/overlay-controls.js +88 -0
  307. package/src/post-featured-image/overlay.js +17 -84
  308. package/src/post-navigation-link/edit.js +1 -0
  309. package/src/post-navigation-link/index.php +4 -0
  310. package/src/post-template/index.php +4 -0
  311. package/src/post-terms/edit.js +2 -0
  312. package/src/post-terms/index.php +6 -0
  313. package/src/post-title/index.php +2 -0
  314. package/src/pullquote/theme.scss +3 -1
  315. package/src/query/index.php +2 -0
  316. package/src/query-no-results/index.php +6 -0
  317. package/src/query-pagination/index.php +4 -0
  318. package/src/query-pagination-next/index.php +6 -0
  319. package/src/query-pagination-numbers/index.php +6 -0
  320. package/src/query-pagination-previous/index.php +4 -0
  321. package/src/query-title/index.php +4 -0
  322. package/src/quote/edit.js +27 -37
  323. package/src/quote/test/edit.native.js +4 -6
  324. package/src/quote/theme.scss +1 -2
  325. package/src/read-more/edit.js +1 -0
  326. package/src/read-more/index.php +4 -0
  327. package/src/rss/index.php +4 -0
  328. package/src/search/edit.js +2 -0
  329. package/src/search/edit.native.js +2 -2
  330. package/src/search/index.php +19 -1
  331. package/src/search/style.scss +11 -0
  332. package/src/shortcode/index.php +4 -0
  333. package/src/site-logo/editor.scss +2 -2
  334. package/src/site-logo/index.php +20 -0
  335. package/src/site-tagline/block.json +4 -0
  336. package/src/site-tagline/edit.js +16 -3
  337. package/src/site-tagline/index.php +13 -1
  338. package/src/site-title/index.php +4 -0
  339. package/src/social-link/edit.js +1 -1
  340. package/src/social-link/icons/medium.js +1 -1
  341. package/src/social-link/icons/reddit.js +1 -1
  342. package/src/social-link/index.php +22 -9
  343. package/src/social-link/socials-with-bg.scss +1 -1
  344. package/src/social-link/socials-without-bg.scss +1 -1
  345. package/src/social-links/editor.scss +1 -9
  346. package/src/table/block.json +1 -1
  347. package/src/table/deprecated.js +308 -175
  348. package/src/table/theme.scss +4 -2
  349. package/src/tag-cloud/index.php +4 -0
  350. package/src/template-part/edit/index.js +87 -79
  351. package/src/template-part/edit/inner-blocks.js +126 -13
  352. package/src/template-part/edit/selection-modal.js +1 -22
  353. package/src/template-part/editor.scss +11 -3
  354. package/src/template-part/index.php +12 -0
  355. package/src/template-part/theme.scss +1 -1
  356. package/src/term-description/index.php +4 -0
  357. package/src/utils/caption.js +19 -16
  358. package/src/utils/hooks.js +1 -0
  359. package/src/video/edit.native.js +2 -0
  360. package/src/video/editor.scss +2 -2
  361. package/src/video/theme.scss +1 -1
  362. package/tsconfig.json +1 -0
@@ -95,7 +95,7 @@
95
95
  color: rgba(255, 255, 255, 0.65);
96
96
  }
97
97
 
98
- .wp-block-audio {
98
+ :where(.wp-block-audio) {
99
99
  margin: 0 0 1em 0;
100
100
  }
101
101
 
@@ -115,7 +115,7 @@
115
115
  color: rgba(255, 255, 255, 0.65);
116
116
  }
117
117
 
118
- .wp-block-embed {
118
+ :where(.wp-block-embed) {
119
119
  margin: 0 0 1em 0;
120
120
  }
121
121
 
@@ -137,16 +137,17 @@
137
137
  color: rgba(255, 255, 255, 0.65);
138
138
  }
139
139
 
140
- .wp-block-image {
140
+ :where(.wp-block-image) {
141
141
  margin: 0 0 1em 0;
142
142
  }
143
143
 
144
- .wp-block-pullquote {
144
+ :where(.wp-block-pullquote) {
145
145
  border-top: 4px solid currentColor;
146
146
  border-bottom: 4px solid currentColor;
147
147
  margin-bottom: 1.75em;
148
148
  color: currentColor;
149
149
  }
150
+
150
151
  .wp-block-pullquote cite,
151
152
  .wp-block-pullquote footer, .wp-block-pullquote__citation {
152
153
  color: currentColor;
@@ -155,29 +156,29 @@
155
156
  font-style: normal;
156
157
  }
157
158
 
158
- .wp-block-quote {
159
+ :where(.wp-block-quote) {
159
160
  border-right: 0.25em solid currentColor;
160
161
  margin: 0 0 1.75em 0;
161
162
  padding-right: 1em;
162
163
  }
163
- .wp-block-quote cite,
164
- .wp-block-quote footer {
164
+ :where(.wp-block-quote) cite,
165
+ :where(.wp-block-quote) footer {
165
166
  color: currentColor;
166
167
  font-size: 0.8125em;
167
168
  position: relative;
168
169
  font-style: normal;
169
170
  }
170
- .wp-block-quote.has-text-align-right {
171
+ :where(.wp-block-quote).has-text-align-right {
171
172
  border-right: none;
172
173
  border-left: 0.25em solid currentColor;
173
174
  padding-right: 0;
174
175
  padding-left: 1em;
175
176
  }
176
- .wp-block-quote.has-text-align-center {
177
+ :where(.wp-block-quote).has-text-align-center {
177
178
  border: none;
178
179
  padding-right: 0;
179
180
  }
180
- .wp-block-quote.is-style-plain, .wp-block-quote.is-style-large, .wp-block-quote.is-large {
181
+ :where(.wp-block-quote).is-style-plain, :where(.wp-block-quote).is-style-large, :where(.wp-block-quote).is-large {
181
182
  border: none;
182
183
  }
183
184
 
@@ -218,9 +219,6 @@
218
219
  height: 2px;
219
220
  }
220
221
 
221
- .wp-block-table {
222
- margin: 0 0 1em 0;
223
- }
224
222
  .wp-block-table td,
225
223
  .wp-block-table th {
226
224
  word-break: normal;
@@ -234,6 +232,10 @@
234
232
  color: rgba(255, 255, 255, 0.65);
235
233
  }
236
234
 
235
+ :where(.wp-block-table) {
236
+ margin: 0 0 1em 0;
237
+ }
238
+
237
239
  .wp-block-video figcaption {
238
240
  color: #555;
239
241
  font-size: 13px;
@@ -243,11 +245,11 @@
243
245
  color: rgba(255, 255, 255, 0.65);
244
246
  }
245
247
 
246
- .wp-block-video {
248
+ :where(.wp-block-video) {
247
249
  margin: 0 0 1em 0;
248
250
  }
249
251
 
250
- .wp-block-template-part.has-background {
252
+ :where(.wp-block-template-part).has-background {
251
253
  padding: 1.25em 2.375em;
252
254
  margin-top: 0;
253
255
  margin-bottom: 0;
@@ -95,7 +95,7 @@
95
95
  color: rgba(255, 255, 255, 0.65);
96
96
  }
97
97
 
98
- .wp-block-audio {
98
+ :where(.wp-block-audio) {
99
99
  margin: 0 0 1em 0;
100
100
  }
101
101
 
@@ -115,7 +115,7 @@
115
115
  color: rgba(255, 255, 255, 0.65);
116
116
  }
117
117
 
118
- .wp-block-embed {
118
+ :where(.wp-block-embed) {
119
119
  margin: 0 0 1em 0;
120
120
  }
121
121
 
@@ -137,16 +137,17 @@
137
137
  color: rgba(255, 255, 255, 0.65);
138
138
  }
139
139
 
140
- .wp-block-image {
140
+ :where(.wp-block-image) {
141
141
  margin: 0 0 1em 0;
142
142
  }
143
143
 
144
- .wp-block-pullquote {
144
+ :where(.wp-block-pullquote) {
145
145
  border-top: 4px solid currentColor;
146
146
  border-bottom: 4px solid currentColor;
147
147
  margin-bottom: 1.75em;
148
148
  color: currentColor;
149
149
  }
150
+
150
151
  .wp-block-pullquote cite,
151
152
  .wp-block-pullquote footer, .wp-block-pullquote__citation {
152
153
  color: currentColor;
@@ -155,29 +156,29 @@
155
156
  font-style: normal;
156
157
  }
157
158
 
158
- .wp-block-quote {
159
+ :where(.wp-block-quote) {
159
160
  border-left: 0.25em solid currentColor;
160
161
  margin: 0 0 1.75em 0;
161
162
  padding-left: 1em;
162
163
  }
163
- .wp-block-quote cite,
164
- .wp-block-quote footer {
164
+ :where(.wp-block-quote) cite,
165
+ :where(.wp-block-quote) footer {
165
166
  color: currentColor;
166
167
  font-size: 0.8125em;
167
168
  position: relative;
168
169
  font-style: normal;
169
170
  }
170
- .wp-block-quote.has-text-align-right {
171
+ :where(.wp-block-quote).has-text-align-right {
171
172
  border-left: none;
172
173
  border-right: 0.25em solid currentColor;
173
174
  padding-left: 0;
174
175
  padding-right: 1em;
175
176
  }
176
- .wp-block-quote.has-text-align-center {
177
+ :where(.wp-block-quote).has-text-align-center {
177
178
  border: none;
178
179
  padding-left: 0;
179
180
  }
180
- .wp-block-quote.is-style-plain, .wp-block-quote.is-style-large, .wp-block-quote.is-large {
181
+ :where(.wp-block-quote).is-style-plain, :where(.wp-block-quote).is-style-large, :where(.wp-block-quote).is-large {
181
182
  border: none;
182
183
  }
183
184
 
@@ -218,9 +219,6 @@
218
219
  height: 2px;
219
220
  }
220
221
 
221
- .wp-block-table {
222
- margin: 0 0 1em 0;
223
- }
224
222
  .wp-block-table td,
225
223
  .wp-block-table th {
226
224
  word-break: normal;
@@ -234,6 +232,10 @@
234
232
  color: rgba(255, 255, 255, 0.65);
235
233
  }
236
234
 
235
+ :where(.wp-block-table) {
236
+ margin: 0 0 1em 0;
237
+ }
238
+
237
239
  .wp-block-video figcaption {
238
240
  color: #555;
239
241
  font-size: 13px;
@@ -243,11 +245,11 @@
243
245
  color: rgba(255, 255, 255, 0.65);
244
246
  }
245
247
 
246
- .wp-block-video {
248
+ :where(.wp-block-video) {
247
249
  margin: 0 0 1em 0;
248
250
  }
249
251
 
250
- .wp-block-template-part.has-background {
252
+ :where(.wp-block-template-part).has-background {
251
253
  padding: 1.25em 2.375em;
252
254
  margin-top: 0;
253
255
  margin-bottom: 0;
@@ -95,6 +95,6 @@
95
95
  color: rgba(255, 255, 255, 0.65);
96
96
  }
97
97
 
98
- .wp-block-video {
98
+ :where(.wp-block-video) {
99
99
  margin: 0 0 1em 0;
100
100
  }
@@ -95,6 +95,6 @@
95
95
  color: rgba(255, 255, 255, 0.65);
96
96
  }
97
97
 
98
- .wp-block-video {
98
+ :where(.wp-block-video) {
99
99
  margin: 0 0 1em 0;
100
100
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/block-library",
3
- "version": "8.30.0",
3
+ "version": "8.32.0",
4
4
  "description": "Block library for the WordPress editor.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -31,38 +31,38 @@
31
31
  ],
32
32
  "dependencies": {
33
33
  "@babel/runtime": "^7.16.0",
34
- "@wordpress/a11y": "^3.53.0",
35
- "@wordpress/api-fetch": "^6.50.0",
36
- "@wordpress/autop": "^3.53.0",
37
- "@wordpress/blob": "^3.53.0",
38
- "@wordpress/block-editor": "^12.21.0",
39
- "@wordpress/blocks": "^12.30.0",
40
- "@wordpress/components": "^27.1.0",
41
- "@wordpress/compose": "^6.30.0",
42
- "@wordpress/core-data": "^6.30.0",
43
- "@wordpress/data": "^9.23.0",
44
- "@wordpress/date": "^4.53.0",
45
- "@wordpress/deprecated": "^3.53.0",
46
- "@wordpress/dom": "^3.53.0",
47
- "@wordpress/element": "^5.30.0",
48
- "@wordpress/escape-html": "^2.53.0",
49
- "@wordpress/hooks": "^3.53.0",
50
- "@wordpress/html-entities": "^3.53.0",
51
- "@wordpress/i18n": "^4.53.0",
52
- "@wordpress/icons": "^9.44.0",
53
- "@wordpress/interactivity": "^5.2.0",
54
- "@wordpress/interactivity-router": "^1.3.0",
55
- "@wordpress/keycodes": "^3.53.0",
56
- "@wordpress/notices": "^4.21.0",
57
- "@wordpress/patterns": "^1.14.0",
58
- "@wordpress/primitives": "^3.51.0",
59
- "@wordpress/private-apis": "^0.35.0",
60
- "@wordpress/reusable-blocks": "^4.30.0",
61
- "@wordpress/rich-text": "^6.30.0",
62
- "@wordpress/server-side-render": "^4.30.0",
63
- "@wordpress/url": "^3.54.0",
64
- "@wordpress/viewport": "^5.30.0",
65
- "@wordpress/wordcount": "^3.53.0",
34
+ "@wordpress/a11y": "^3.55.0",
35
+ "@wordpress/api-fetch": "^6.52.0",
36
+ "@wordpress/autop": "^3.55.0",
37
+ "@wordpress/blob": "^3.55.0",
38
+ "@wordpress/block-editor": "^12.23.0",
39
+ "@wordpress/blocks": "^12.32.0",
40
+ "@wordpress/components": "^27.3.0",
41
+ "@wordpress/compose": "^6.32.0",
42
+ "@wordpress/core-data": "^6.32.0",
43
+ "@wordpress/data": "^9.25.0",
44
+ "@wordpress/date": "^4.55.0",
45
+ "@wordpress/deprecated": "^3.55.0",
46
+ "@wordpress/dom": "^3.55.0",
47
+ "@wordpress/element": "^5.32.0",
48
+ "@wordpress/escape-html": "^2.55.0",
49
+ "@wordpress/hooks": "^3.55.0",
50
+ "@wordpress/html-entities": "^3.55.0",
51
+ "@wordpress/i18n": "^4.55.0",
52
+ "@wordpress/icons": "^9.46.0",
53
+ "@wordpress/interactivity": "^5.4.0",
54
+ "@wordpress/interactivity-router": "^1.5.0",
55
+ "@wordpress/keycodes": "^3.55.0",
56
+ "@wordpress/notices": "^4.23.0",
57
+ "@wordpress/patterns": "^1.16.0",
58
+ "@wordpress/primitives": "^3.53.0",
59
+ "@wordpress/private-apis": "^0.37.0",
60
+ "@wordpress/reusable-blocks": "^4.32.0",
61
+ "@wordpress/rich-text": "^6.32.0",
62
+ "@wordpress/server-side-render": "^4.32.0",
63
+ "@wordpress/url": "^3.56.0",
64
+ "@wordpress/viewport": "^5.32.0",
65
+ "@wordpress/wordcount": "^3.55.0",
66
66
  "change-case": "^4.1.2",
67
67
  "classnames": "^2.3.1",
68
68
  "colord": "^2.7.0",
@@ -80,5 +80,5 @@
80
80
  "publishConfig": {
81
81
  "access": "public"
82
82
  },
83
- "gitHead": "ac3c3e465a083081a86a4da6ee6fb817b41e5130"
83
+ "gitHead": "ac2b13783c28f959770cf029a797a712f59e1958"
84
84
  }
@@ -8,6 +8,8 @@
8
8
  /**
9
9
  * Renders the `core/archives` block on server.
10
10
  *
11
+ * @since 5.0.0
12
+ *
11
13
  * @see WP_Widget_Archives
12
14
  *
13
15
  * @param array $attributes The block attributes.
@@ -106,6 +108,8 @@ function render_block_core_archives( $attributes ) {
106
108
 
107
109
  /**
108
110
  * Register archives block.
111
+ *
112
+ * @since 5.0.0
109
113
  */
110
114
  function register_block_core_archives() {
111
115
  register_block_type_from_metadata(
@@ -2,6 +2,6 @@
2
2
  @include caption-style-theme();
3
3
  }
4
4
 
5
- .wp-block-audio {
5
+ :where(.wp-block-audio) {
6
6
  margin: 0 0 1em 0;
7
7
  }
@@ -8,6 +8,8 @@
8
8
  /**
9
9
  * Renders the `core/avatar` block on the server.
10
10
  *
11
+ * @since 6.0.0
12
+ *
11
13
  * @param array $attributes Block attributes.
12
14
  * @param string $content Block default content.
13
15
  * @param WP_Block $block Block instance.
@@ -99,6 +101,8 @@ function render_block_core_avatar( $attributes, $content, $block ) {
99
101
  * Generates class names and styles to apply the border support styles for
100
102
  * the Avatar block.
101
103
  *
104
+ * @since 6.3.0
105
+ *
102
106
  * @param array $attributes The block attributes.
103
107
  * @return array The border-related classnames and styles for the block.
104
108
  */
@@ -149,6 +153,8 @@ function get_block_core_avatar_border_attributes( $attributes ) {
149
153
 
150
154
  /**
151
155
  * Registers the `core/avatar` block on the server.
156
+ *
157
+ * @since 6.0.0
152
158
  */
153
159
  function register_block_core_avatar() {
154
160
  register_block_type_from_metadata(
package/src/block/edit.js CHANGED
@@ -28,7 +28,7 @@ import {
28
28
  BlockControls,
29
29
  } from '@wordpress/block-editor';
30
30
  import { privateApis as patternsPrivateApis } from '@wordpress/patterns';
31
- import { parse, cloneBlock } from '@wordpress/blocks';
31
+ import { parse, cloneBlock, store as blocksStore } from '@wordpress/blocks';
32
32
  import { RichTextData } from '@wordpress/rich-text';
33
33
 
34
34
  /**
@@ -38,7 +38,7 @@ import { name as patternBlockName } from './index';
38
38
  import { unlock } from '../lock-unlock';
39
39
 
40
40
  const { useLayoutClasses } = unlock( blockEditorPrivateApis );
41
- const { PARTIAL_SYNCING_SUPPORTED_BLOCKS } = unlock( patternsPrivateApis );
41
+ const { isOverridableBlock } = unlock( patternsPrivateApis );
42
42
 
43
43
  const fullAlignments = [ 'full', 'wide', 'left', 'right' ];
44
44
 
@@ -90,21 +90,9 @@ const useInferredLayout = ( blocks, parentLayout ) => {
90
90
  }, [ blocks, parentLayout ] );
91
91
  };
92
92
 
93
- function hasOverridableAttributes( block ) {
94
- return (
95
- Object.keys( PARTIAL_SYNCING_SUPPORTED_BLOCKS ).includes(
96
- block.name
97
- ) &&
98
- !! block.attributes.metadata?.bindings &&
99
- Object.values( block.attributes.metadata.bindings ).some(
100
- ( binding ) => binding.source === 'core/pattern-overrides'
101
- )
102
- );
103
- }
104
-
105
93
  function hasOverridableBlocks( blocks ) {
106
94
  return blocks.some( ( block ) => {
107
- if ( hasOverridableAttributes( block ) ) return true;
95
+ if ( isOverridableBlock( block ) ) return true;
108
96
  return hasOverridableBlocks( block.innerBlocks );
109
97
  } );
110
98
  }
@@ -133,7 +121,7 @@ function applyInitialContentValuesToInnerBlocks(
133
121
  const metadataName =
134
122
  legacyIdMap?.[ block.clientId ] ?? block.attributes.metadata?.name;
135
123
 
136
- if ( ! metadataName || ! hasOverridableAttributes( block ) ) {
124
+ if ( ! metadataName || ! isOverridableBlock( block ) ) {
137
125
  return { ...block, innerBlocks };
138
126
  }
139
127
 
@@ -184,7 +172,7 @@ function getContentValuesFromInnerBlocks( blocks, defaultValues, legacyIdMap ) {
184
172
  }
185
173
  const metadataName =
186
174
  legacyIdMap?.[ block.clientId ] ?? block.attributes.metadata?.name;
187
- if ( ! metadataName || ! hasOverridableAttributes( block ) ) {
175
+ if ( ! metadataName || ! isOverridableBlock( block ) ) {
188
176
  continue;
189
177
  }
190
178
 
@@ -217,7 +205,7 @@ function setBlockEditMode( setEditMode, blocks, mode ) {
217
205
  blocks.forEach( ( block ) => {
218
206
  const editMode =
219
207
  mode ||
220
- ( hasOverridableAttributes( block ) ? 'contentOnly' : 'disabled' );
208
+ ( isOverridableBlock( block ) ? 'contentOnly' : 'disabled' );
221
209
  setEditMode( block.clientId, editMode );
222
210
 
223
211
  setBlockEditMode(
@@ -265,6 +253,7 @@ export default function ReusableBlockEdit( {
265
253
  getBlockEditingMode,
266
254
  onNavigateToEntityRecord,
267
255
  editingMode,
256
+ hasPatternOverridesSource,
268
257
  } = useSelect(
269
258
  ( select ) => {
270
259
  const { canUser } = select( coreStore );
@@ -273,6 +262,7 @@ export default function ReusableBlockEdit( {
273
262
  getSettings,
274
263
  getBlockEditingMode: _getBlockEditingMode,
275
264
  } = select( blockEditorStore );
265
+ const { getBlockBindingsSource } = unlock( select( blocksStore ) );
276
266
  const blocks = getBlocks( patternClientId );
277
267
  const canEdit = canUser( 'update', 'blocks', ref );
278
268
 
@@ -284,6 +274,9 @@ export default function ReusableBlockEdit( {
284
274
  onNavigateToEntityRecord:
285
275
  getSettings().onNavigateToEntityRecord,
286
276
  editingMode: _getBlockEditingMode( patternClientId ),
277
+ hasPatternOverridesSource: !! getBlockBindingsSource(
278
+ 'core/pattern-overrides'
279
+ ),
287
280
  };
288
281
  },
289
282
  [ patternClientId, ref ]
@@ -295,13 +288,20 @@ export default function ReusableBlockEdit( {
295
288
  setBlockEditingMode,
296
289
  innerBlocks,
297
290
  // Disable editing if the pattern itself is disabled.
298
- editingMode === 'disabled' ? 'disabled' : undefined
291
+ editingMode === 'disabled' || ! hasPatternOverridesSource
292
+ ? 'disabled'
293
+ : undefined
299
294
  );
300
- }, [ editingMode, innerBlocks, setBlockEditingMode ] );
295
+ }, [
296
+ editingMode,
297
+ innerBlocks,
298
+ setBlockEditingMode,
299
+ hasPatternOverridesSource,
300
+ ] );
301
301
 
302
302
  const canOverrideBlocks = useMemo(
303
- () => hasOverridableBlocks( innerBlocks ),
304
- [ innerBlocks ]
303
+ () => hasPatternOverridesSource && hasOverridableBlocks( innerBlocks ),
304
+ [ hasPatternOverridesSource, innerBlocks ]
305
305
  );
306
306
 
307
307
  const initialBlocks = useMemo(
@@ -329,19 +329,21 @@ export default function ReusableBlockEdit( {
329
329
  registry.batch( () => {
330
330
  setBlockEditingMode( patternClientId, 'default' );
331
331
  syncDerivedUpdates( () => {
332
- replaceInnerBlocks(
333
- patternClientId,
334
- applyInitialContentValuesToInnerBlocks(
335
- initialBlocks,
336
- initialContent.current,
337
- defaultContent.current,
338
- legacyIdMap.current
339
- )
340
- );
332
+ const blocks = hasPatternOverridesSource
333
+ ? applyInitialContentValuesToInnerBlocks(
334
+ initialBlocks,
335
+ initialContent.current,
336
+ defaultContent.current,
337
+ legacyIdMap.current
338
+ )
339
+ : initialBlocks;
340
+
341
+ replaceInnerBlocks( patternClientId, blocks );
341
342
  } );
342
343
  setBlockEditingMode( patternClientId, originalEditingMode );
343
344
  } );
344
345
  }, [
346
+ hasPatternOverridesSource,
345
347
  __unstableMarkNextChangeAsNotPersistent,
346
348
  patternClientId,
347
349
  initialBlocks,
@@ -377,6 +379,9 @@ export default function ReusableBlockEdit( {
377
379
  // Sync the `content` attribute from the updated blocks to the pattern block.
378
380
  // `syncDerivedUpdates` is used here to avoid creating an additional undo level.
379
381
  useEffect( () => {
382
+ if ( ! hasPatternOverridesSource ) {
383
+ return;
384
+ }
380
385
  const { getBlocks } = registry.select( blockEditorStore );
381
386
  let prevBlocks = getBlocks( patternClientId );
382
387
  return registry.subscribe( () => {
@@ -394,7 +399,13 @@ export default function ReusableBlockEdit( {
394
399
  } );
395
400
  }
396
401
  }, blockEditorStore );
397
- }, [ syncDerivedUpdates, patternClientId, registry, setAttributes ] );
402
+ }, [
403
+ hasPatternOverridesSource,
404
+ syncDerivedUpdates,
405
+ patternClientId,
406
+ registry,
407
+ setAttributes,
408
+ ] );
398
409
 
399
410
  const handleEditOriginal = () => {
400
411
  onNavigateToEntityRecord( {
@@ -8,6 +8,8 @@
8
8
  /**
9
9
  * Renders the `core/block` block on server.
10
10
  *
11
+ * @since 5.0.0
12
+ *
11
13
  * @global WP_Embed $wp_embed
12
14
  *
13
15
  * @param array $attributes The block attributes.
@@ -97,6 +99,8 @@ function render_block_core_block( $attributes ) {
97
99
 
98
100
  /**
99
101
  * Registers the `core/block` block.
102
+ *
103
+ * @since 5.3.0
100
104
  */
101
105
  function register_block_core_block() {
102
106
  register_block_type_from_metadata(
@@ -6,6 +6,8 @@ import {
6
6
  initializeEditor,
7
7
  fireEvent,
8
8
  within,
9
+ setupApiFetch,
10
+ triggerBlockListLayout,
9
11
  } from 'test/helpers';
10
12
 
11
13
  /**
@@ -42,6 +44,7 @@ const getMockedReusableBlock = ( id ) => ( {
42
44
  id,
43
45
  title: { raw: `Reusable block - ${ id }` },
44
46
  type: 'wp_block',
47
+ meta: { footnotes: '' },
45
48
  } );
46
49
 
47
50
  beforeAll( () => {
@@ -187,4 +190,68 @@ describe( 'Synced patterns', () => {
187
190
  expect( reusableBlock ).toBeDefined();
188
191
  expect( headingInnerBlock ).toBeDefined();
189
192
  } );
193
+
194
+ it( 'renders block after content is updated due to a side effect', async () => {
195
+ // We have to use different ids because entities are cached in memory.
196
+ const id = 5;
197
+ const initialHtml = `<!-- wp:block {"ref":${ id }} /-->`;
198
+ const endpoint = `/wp/v2/blocks/${ id }`;
199
+ const fetchMedia = {
200
+ request: {
201
+ path: `/wp/v2/media/1?context=edit`,
202
+ },
203
+ response: {
204
+ source_url: 'https://cldup.com/cXyG__fTLN.jpg',
205
+ id: 1,
206
+ // We need to include the sizes to trigger the side effect.
207
+ media_details: {
208
+ sizes: {
209
+ large: {
210
+ source_url:
211
+ 'https://cldup.com/cXyG__fTLN.jpg?w=500',
212
+ },
213
+ },
214
+ },
215
+ },
216
+ };
217
+
218
+ // Return mocked response for the block endpoint.
219
+ fetchRequest.mockImplementation( ( { path } ) => {
220
+ let response = {};
221
+ if ( path.startsWith( endpoint ) ) {
222
+ response = getMockedReusableBlock( id );
223
+ }
224
+ // Replace content with an Image block to trigger a side effect.
225
+ // The side effect will be produced when the `source` attribute is replaced
226
+ // with an URL that includes the width query parameter:
227
+ // https://cldup.com/cXyG__fTLN.jpg => https://cldup.com/cXyG__fTLN.jpg?w=500
228
+ response.content.raw = `<!-- wp:image {"id":1,"sizeSlug":"large","linkDestination":"none"} -->
229
+ <figure class="wp-block-image size-large"><img src="https://cldup.com/cXyG__fTLN.jpg" alt="" class="wp-image-1"/></figure>
230
+ <!-- /wp:image -->`;
231
+ return Promise.resolve( response );
232
+ } );
233
+
234
+ const screen = await initializeEditor( {
235
+ initialHtml,
236
+ } );
237
+
238
+ const reusableBlock = await screen.findByLabelText(
239
+ /Pattern Block\. Row 1/
240
+ );
241
+
242
+ // Mock media fetch requests
243
+ setupApiFetch( [ fetchMedia ] );
244
+
245
+ await triggerBlockListLayout(
246
+ within( reusableBlock ).getByTestId( 'block-list-wrapper' )
247
+ );
248
+
249
+ const imageBlock =
250
+ await within( reusableBlock ).getByLabelText(
251
+ 'Image Block. Row 1'
252
+ );
253
+
254
+ expect( reusableBlock ).toBeDefined();
255
+ expect( imageBlock ).toBeDefined();
256
+ } );
190
257
  } );
@@ -494,7 +494,7 @@ function ButtonEdit( props ) {
494
494
  <View pointerEvents="none" style={ outLineStyles } />
495
495
  ) }
496
496
  <RichText
497
- setRef={ onSetRef }
497
+ ref={ onSetRef }
498
498
  placeholder={ placeholderText }
499
499
  value={ text }
500
500
  onChange={ onChangeText }