@wordpress/block-library 9.38.0 → 9.39.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 (470) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/block/block.json +2 -1
  3. package/build/breadcrumbs/edit.cjs +15 -5
  4. package/build/breadcrumbs/edit.cjs.map +2 -2
  5. package/build/breadcrumbs/index.cjs +1 -0
  6. package/build/breadcrumbs/index.cjs.map +2 -2
  7. package/build/button/index.cjs +3 -0
  8. package/build/button/index.cjs.map +2 -2
  9. package/build/comment-date/block.json +1 -0
  10. package/build/comment-edit-link/block.json +1 -3
  11. package/build/comment-edit-link/deprecated.cjs +91 -0
  12. package/build/comment-edit-link/deprecated.cjs.map +7 -0
  13. package/build/comment-edit-link/edit.cjs +6 -18
  14. package/build/comment-edit-link/edit.cjs.map +3 -3
  15. package/build/comment-edit-link/index.cjs +2 -0
  16. package/build/comment-edit-link/index.cjs.map +3 -3
  17. package/build/comment-reply-link/block.json +1 -5
  18. package/build/comment-reply-link/deprecated.cjs +84 -0
  19. package/build/comment-reply-link/deprecated.cjs.map +7 -0
  20. package/build/comment-reply-link/edit.cjs +10 -23
  21. package/build/comment-reply-link/edit.cjs.map +3 -3
  22. package/build/comment-reply-link/index.cjs +2 -0
  23. package/build/comment-reply-link/index.cjs.map +3 -3
  24. package/build/comments-title/block.json +1 -3
  25. package/build/comments-title/deprecated.cjs +148 -24
  26. package/build/comments-title/deprecated.cjs.map +3 -3
  27. package/build/comments-title/edit.cjs +17 -31
  28. package/build/comments-title/edit.cjs.map +3 -3
  29. package/build/cover/edit/block-controls.cjs +10 -2
  30. package/build/cover/edit/block-controls.cjs.map +2 -2
  31. package/build/cover/edit/embed-video-url-input.cjs +6 -2
  32. package/build/cover/edit/embed-video-url-input.cjs.map +2 -2
  33. package/build/cover/edit/inspector-controls.cjs +1 -1
  34. package/build/cover/edit/inspector-controls.cjs.map +2 -2
  35. package/build/details/index.cjs +3 -0
  36. package/build/details/index.cjs.map +2 -2
  37. package/build/embed/util.cjs +9 -0
  38. package/build/embed/util.cjs.map +2 -2
  39. package/build/freeform/block.json +2 -1
  40. package/build/heading/index.cjs +3 -0
  41. package/build/heading/index.cjs.map +2 -2
  42. package/build/html/block.json +2 -1
  43. package/build/image/image.cjs +43 -9
  44. package/build/image/image.cjs.map +2 -2
  45. package/build/image/index.cjs +1 -1
  46. package/build/image/index.cjs.map +2 -2
  47. package/build/index.cjs +6 -0
  48. package/build/index.cjs.map +2 -2
  49. package/build/list-item/index.cjs +12 -1
  50. package/build/list-item/index.cjs.map +2 -2
  51. package/build/missing/block.json +2 -1
  52. package/build/more/block.json +2 -1
  53. package/build/more/index.cjs +1 -1
  54. package/build/more/index.cjs.map +2 -2
  55. package/build/navigation/block.json +5 -4
  56. package/build/navigation/deprecated.cjs +133 -5
  57. package/build/navigation/deprecated.cjs.map +2 -2
  58. package/build/navigation/edit/deleted-overlay-warning.cjs +70 -0
  59. package/build/navigation/edit/deleted-overlay-warning.cjs.map +7 -0
  60. package/build/navigation/edit/index.cjs +143 -65
  61. package/build/navigation/edit/index.cjs.map +3 -3
  62. package/build/navigation/edit/overlay-panel.cjs +10 -1
  63. package/build/navigation/edit/overlay-panel.cjs.map +3 -3
  64. package/build/navigation/edit/overlay-preview.cjs +120 -0
  65. package/build/navigation/edit/overlay-preview.cjs.map +7 -0
  66. package/build/navigation/edit/overlay-template-part-selector.cjs +59 -24
  67. package/build/navigation/edit/overlay-template-part-selector.cjs.map +3 -3
  68. package/build/navigation/edit/responsive-wrapper.cjs +12 -1
  69. package/build/navigation/edit/responsive-wrapper.cjs.map +3 -3
  70. package/build/navigation/edit/use-create-overlay.cjs +19 -2
  71. package/build/navigation/edit/use-create-overlay.cjs.map +3 -3
  72. package/build/navigation/utils/get-submenu-visibility.cjs +37 -0
  73. package/build/navigation/utils/get-submenu-visibility.cjs.map +7 -0
  74. package/build/navigation-link/edit.cjs +2 -40
  75. package/build/navigation-link/edit.cjs.map +2 -2
  76. package/build/navigation-link/shared/index.cjs +6 -0
  77. package/build/navigation-link/shared/index.cjs.map +2 -2
  78. package/build/navigation-link/shared/select-label-text.cjs +40 -0
  79. package/build/navigation-link/shared/select-label-text.cjs.map +7 -0
  80. package/build/navigation-link/shared/use-is-dragging-within.cjs +59 -0
  81. package/build/navigation-link/shared/use-is-dragging-within.cjs.map +7 -0
  82. package/build/navigation-submenu/block.json +1 -1
  83. package/build/navigation-submenu/edit.cjs +8 -47
  84. package/build/navigation-submenu/edit.cjs.map +2 -2
  85. package/build/navigation-submenu/index.cjs +2 -2
  86. package/build/navigation-submenu/index.cjs.map +2 -2
  87. package/build/nextpage/block.json +2 -1
  88. package/build/paragraph/block.json +1 -0
  89. package/build/paragraph/index.cjs +1 -1
  90. package/build/paragraph/index.cjs.map +2 -2
  91. package/build/post-excerpt/edit.cjs +1 -1
  92. package/build/post-excerpt/edit.cjs.map +2 -2
  93. package/build/shortcode/block.json +2 -1
  94. package/build/tab/add-tab-toolbar-control.cjs +31 -9
  95. package/build/tab/add-tab-toolbar-control.cjs.map +2 -2
  96. package/build/tab/block.json +18 -4
  97. package/build/tab/controls.cjs +4 -8
  98. package/build/tab/controls.cjs.map +3 -3
  99. package/build/tab/edit.cjs +46 -118
  100. package/build/tab/edit.cjs.map +3 -3
  101. package/build/tab/remove-tab-toolbar-control.cjs +91 -0
  102. package/build/tab/remove-tab-toolbar-control.cjs.map +7 -0
  103. package/build/tab/save.cjs +2 -2
  104. package/build/tab/save.cjs.map +2 -2
  105. package/build/tab-panels/block.json +70 -0
  106. package/build/tab-panels/edit.cjs +63 -0
  107. package/build/tab-panels/edit.cjs.map +7 -0
  108. package/build/tab-panels/icon.cjs +29 -0
  109. package/build/tab-panels/icon.cjs.map +7 -0
  110. package/build/tab-panels/index.cjs +58 -0
  111. package/build/tab-panels/index.cjs.map +7 -0
  112. package/build/tab-panels/save.cjs +33 -0
  113. package/build/tab-panels/save.cjs.map +7 -0
  114. package/build/tabs/block.json +61 -90
  115. package/build/tabs/controls.cjs +19 -221
  116. package/build/tabs/controls.cjs.map +3 -3
  117. package/build/tabs/deprecated.cjs +179 -0
  118. package/build/tabs/deprecated.cjs.map +7 -0
  119. package/build/tabs/edit.cjs +84 -62
  120. package/build/tabs/edit.cjs.map +3 -3
  121. package/build/tabs/index.cjs +3 -1
  122. package/build/tabs/index.cjs.map +3 -3
  123. package/build/tabs/save.cjs +6 -9
  124. package/build/tabs/save.cjs.map +2 -2
  125. package/build/tabs-menu/block.json +77 -0
  126. package/build/tabs-menu/edit.cjs +204 -0
  127. package/build/tabs-menu/edit.cjs.map +7 -0
  128. package/build/tabs-menu/icon.cjs +29 -0
  129. package/build/tabs-menu/icon.cjs.map +7 -0
  130. package/build/tabs-menu/index.cjs +58 -0
  131. package/build/tabs-menu/index.cjs.map +7 -0
  132. package/build/tabs-menu/save.cjs +35 -0
  133. package/build/tabs-menu/save.cjs.map +7 -0
  134. package/build/tabs-menu-item/block.json +98 -0
  135. package/build/tabs-menu-item/controls.cjs +247 -0
  136. package/build/tabs-menu-item/controls.cjs.map +7 -0
  137. package/build/tabs-menu-item/edit.cjs +272 -0
  138. package/build/tabs-menu-item/edit.cjs.map +7 -0
  139. package/build/tabs-menu-item/icon.cjs +29 -0
  140. package/build/tabs-menu-item/icon.cjs.map +7 -0
  141. package/build/tabs-menu-item/index.cjs +58 -0
  142. package/build/tabs-menu-item/index.cjs.map +7 -0
  143. package/build/tabs-menu-item/save.cjs +50 -0
  144. package/build/tabs-menu-item/save.cjs.map +7 -0
  145. package/build/template-part/edit/index.cjs +2 -2
  146. package/build/template-part/edit/index.cjs.map +2 -2
  147. package/build/utils/caption.cjs +4 -6
  148. package/build/utils/caption.cjs.map +3 -3
  149. package/build/verse/block.json +1 -3
  150. package/build/verse/deprecated.cjs +74 -5
  151. package/build/verse/deprecated.cjs.map +3 -3
  152. package/build/verse/edit.cjs +33 -48
  153. package/build/verse/edit.cjs.map +3 -3
  154. package/build/verse/save.cjs +2 -16
  155. package/build/verse/save.cjs.map +3 -3
  156. package/build/video/edit.cjs +4 -2
  157. package/build/video/edit.cjs.map +2 -2
  158. package/build-module/block/block.json +2 -1
  159. package/build-module/breadcrumbs/edit.mjs +15 -5
  160. package/build-module/breadcrumbs/edit.mjs.map +2 -2
  161. package/build-module/breadcrumbs/index.mjs +1 -0
  162. package/build-module/breadcrumbs/index.mjs.map +2 -2
  163. package/build-module/button/index.mjs +3 -0
  164. package/build-module/button/index.mjs.map +2 -2
  165. package/build-module/comment-date/block.json +1 -0
  166. package/build-module/comment-edit-link/block.json +1 -3
  167. package/build-module/comment-edit-link/deprecated.mjs +60 -0
  168. package/build-module/comment-edit-link/deprecated.mjs.map +7 -0
  169. package/build-module/comment-edit-link/edit.mjs +7 -24
  170. package/build-module/comment-edit-link/edit.mjs.map +2 -2
  171. package/build-module/comment-edit-link/index.mjs +2 -0
  172. package/build-module/comment-edit-link/index.mjs.map +2 -2
  173. package/build-module/comment-reply-link/block.json +1 -5
  174. package/build-module/comment-reply-link/deprecated.mjs +53 -0
  175. package/build-module/comment-reply-link/deprecated.mjs.map +7 -0
  176. package/build-module/comment-reply-link/edit.mjs +12 -29
  177. package/build-module/comment-reply-link/edit.mjs.map +2 -2
  178. package/build-module/comment-reply-link/index.mjs +2 -0
  179. package/build-module/comment-reply-link/index.mjs.map +2 -2
  180. package/build-module/comments-title/block.json +1 -3
  181. package/build-module/comments-title/deprecated.mjs +148 -24
  182. package/build-module/comments-title/deprecated.mjs.map +2 -2
  183. package/build-module/comments-title/edit.mjs +17 -32
  184. package/build-module/comments-title/edit.mjs.map +2 -2
  185. package/build-module/cover/edit/block-controls.mjs +11 -3
  186. package/build-module/cover/edit/block-controls.mjs.map +2 -2
  187. package/build-module/cover/edit/embed-video-url-input.mjs +6 -2
  188. package/build-module/cover/edit/embed-video-url-input.mjs.map +2 -2
  189. package/build-module/cover/edit/inspector-controls.mjs +1 -1
  190. package/build-module/cover/edit/inspector-controls.mjs.map +2 -2
  191. package/build-module/details/index.mjs +3 -0
  192. package/build-module/details/index.mjs.map +2 -2
  193. package/build-module/embed/util.mjs +8 -0
  194. package/build-module/embed/util.mjs.map +2 -2
  195. package/build-module/freeform/block.json +2 -1
  196. package/build-module/heading/index.mjs +3 -0
  197. package/build-module/heading/index.mjs.map +2 -2
  198. package/build-module/html/block.json +2 -1
  199. package/build-module/image/image.mjs +43 -9
  200. package/build-module/image/image.mjs.map +2 -2
  201. package/build-module/image/index.mjs +1 -1
  202. package/build-module/image/index.mjs.map +2 -2
  203. package/build-module/index.mjs +6 -0
  204. package/build-module/index.mjs.map +2 -2
  205. package/build-module/list-item/index.mjs +12 -1
  206. package/build-module/list-item/index.mjs.map +2 -2
  207. package/build-module/missing/block.json +2 -1
  208. package/build-module/more/block.json +2 -1
  209. package/build-module/more/index.mjs +1 -1
  210. package/build-module/more/index.mjs.map +2 -2
  211. package/build-module/navigation/block.json +5 -4
  212. package/build-module/navigation/deprecated.mjs +133 -5
  213. package/build-module/navigation/deprecated.mjs.map +2 -2
  214. package/build-module/navigation/edit/deleted-overlay-warning.mjs +49 -0
  215. package/build-module/navigation/edit/deleted-overlay-warning.mjs.map +7 -0
  216. package/build-module/navigation/edit/index.mjs +145 -65
  217. package/build-module/navigation/edit/index.mjs.map +2 -2
  218. package/build-module/navigation/edit/overlay-panel.mjs +10 -1
  219. package/build-module/navigation/edit/overlay-panel.mjs.map +2 -2
  220. package/build-module/navigation/edit/overlay-preview.mjs +99 -0
  221. package/build-module/navigation/edit/overlay-preview.mjs.map +7 -0
  222. package/build-module/navigation/edit/overlay-template-part-selector.mjs +61 -26
  223. package/build-module/navigation/edit/overlay-template-part-selector.mjs.map +2 -2
  224. package/build-module/navigation/edit/responsive-wrapper.mjs +12 -1
  225. package/build-module/navigation/edit/responsive-wrapper.mjs.map +2 -2
  226. package/build-module/navigation/edit/use-create-overlay.mjs +21 -4
  227. package/build-module/navigation/edit/use-create-overlay.mjs.map +2 -2
  228. package/build-module/navigation/utils/get-submenu-visibility.mjs +12 -0
  229. package/build-module/navigation/utils/get-submenu-visibility.mjs.map +7 -0
  230. package/build-module/navigation-link/edit.mjs +4 -40
  231. package/build-module/navigation-link/edit.mjs.map +2 -2
  232. package/build-module/navigation-link/shared/index.mjs +4 -0
  233. package/build-module/navigation-link/shared/index.mjs.map +2 -2
  234. package/build-module/navigation-link/shared/select-label-text.mjs +15 -0
  235. package/build-module/navigation-link/shared/select-label-text.mjs.map +7 -0
  236. package/build-module/navigation-link/shared/use-is-dragging-within.mjs +34 -0
  237. package/build-module/navigation-link/shared/use-is-dragging-within.mjs.map +7 -0
  238. package/build-module/navigation-submenu/block.json +1 -1
  239. package/build-module/navigation-submenu/edit.mjs +10 -47
  240. package/build-module/navigation-submenu/edit.mjs.map +2 -2
  241. package/build-module/navigation-submenu/index.mjs +2 -2
  242. package/build-module/navigation-submenu/index.mjs.map +2 -2
  243. package/build-module/nextpage/block.json +2 -1
  244. package/build-module/paragraph/block.json +1 -0
  245. package/build-module/paragraph/index.mjs +1 -1
  246. package/build-module/paragraph/index.mjs.map +2 -2
  247. package/build-module/post-excerpt/edit.mjs +1 -1
  248. package/build-module/post-excerpt/edit.mjs.map +2 -2
  249. package/build-module/shortcode/block.json +2 -1
  250. package/build-module/tab/add-tab-toolbar-control.mjs +32 -10
  251. package/build-module/tab/add-tab-toolbar-control.mjs.map +2 -2
  252. package/build-module/tab/block.json +18 -4
  253. package/build-module/tab/controls.mjs +4 -8
  254. package/build-module/tab/controls.mjs.map +2 -2
  255. package/build-module/tab/edit.mjs +48 -128
  256. package/build-module/tab/edit.mjs.map +2 -2
  257. package/build-module/tab/remove-tab-toolbar-control.mjs +73 -0
  258. package/build-module/tab/remove-tab-toolbar-control.mjs.map +7 -0
  259. package/build-module/tab/save.mjs +2 -2
  260. package/build-module/tab/save.mjs.map +2 -2
  261. package/build-module/tab-panels/block.json +70 -0
  262. package/build-module/tab-panels/edit.mjs +36 -0
  263. package/build-module/tab-panels/edit.mjs.map +7 -0
  264. package/build-module/tab-panels/icon.mjs +8 -0
  265. package/build-module/tab-panels/icon.mjs.map +7 -0
  266. package/build-module/tab-panels/index.mjs +20 -0
  267. package/build-module/tab-panels/index.mjs.map +7 -0
  268. package/build-module/tab-panels/save.mjs +12 -0
  269. package/build-module/tab-panels/save.mjs.map +7 -0
  270. package/build-module/tabs/block.json +61 -90
  271. package/build-module/tabs/controls.mjs +21 -228
  272. package/build-module/tabs/controls.mjs.map +2 -2
  273. package/build-module/tabs/deprecated.mjs +158 -0
  274. package/build-module/tabs/deprecated.mjs.map +7 -0
  275. package/build-module/tabs/edit.mjs +87 -64
  276. package/build-module/tabs/edit.mjs.map +2 -2
  277. package/build-module/tabs/index.mjs +3 -1
  278. package/build-module/tabs/index.mjs.map +2 -2
  279. package/build-module/tabs/save.mjs +7 -10
  280. package/build-module/tabs/save.mjs.map +2 -2
  281. package/build-module/tabs-menu/block.json +77 -0
  282. package/build-module/tabs-menu/edit.mjs +186 -0
  283. package/build-module/tabs-menu/edit.mjs.map +7 -0
  284. package/build-module/tabs-menu/icon.mjs +8 -0
  285. package/build-module/tabs-menu/icon.mjs.map +7 -0
  286. package/build-module/tabs-menu/index.mjs +20 -0
  287. package/build-module/tabs-menu/index.mjs.map +7 -0
  288. package/build-module/tabs-menu/save.mjs +14 -0
  289. package/build-module/tabs-menu/save.mjs.map +7 -0
  290. package/build-module/tabs-menu-item/block.json +98 -0
  291. package/build-module/tabs-menu-item/controls.mjs +227 -0
  292. package/build-module/tabs-menu-item/controls.mjs.map +7 -0
  293. package/build-module/tabs-menu-item/edit.mjs +253 -0
  294. package/build-module/tabs-menu-item/edit.mjs.map +7 -0
  295. package/build-module/tabs-menu-item/icon.mjs +8 -0
  296. package/build-module/tabs-menu-item/icon.mjs.map +7 -0
  297. package/build-module/tabs-menu-item/index.mjs +20 -0
  298. package/build-module/tabs-menu-item/index.mjs.map +7 -0
  299. package/build-module/tabs-menu-item/save.mjs +29 -0
  300. package/build-module/tabs-menu-item/save.mjs.map +7 -0
  301. package/build-module/template-part/edit/index.mjs +2 -2
  302. package/build-module/template-part/edit/index.mjs.map +2 -2
  303. package/build-module/utils/caption.mjs +1 -3
  304. package/build-module/utils/caption.mjs.map +2 -2
  305. package/build-module/verse/block.json +1 -3
  306. package/build-module/verse/deprecated.mjs +74 -5
  307. package/build-module/verse/deprecated.mjs.map +2 -2
  308. package/build-module/verse/edit.mjs +35 -55
  309. package/build-module/verse/edit.mjs.map +2 -2
  310. package/build-module/verse/save.mjs +2 -6
  311. package/build-module/verse/save.mjs.map +2 -2
  312. package/build-module/video/edit.mjs +4 -2
  313. package/build-module/video/edit.mjs.map +2 -2
  314. package/build-style/editor-rtl.css +64 -21
  315. package/build-style/editor.css +64 -21
  316. package/build-style/gallery/style-rtl.css +1 -1
  317. package/build-style/gallery/style.css +1 -1
  318. package/build-style/media-text/style-rtl.css +2 -0
  319. package/build-style/media-text/style.css +2 -0
  320. package/build-style/navigation/editor-rtl.css +48 -0
  321. package/build-style/navigation/editor.css +48 -0
  322. package/build-style/navigation/style-rtl.css +64 -18
  323. package/build-style/navigation/style.css +64 -18
  324. package/build-style/style-rtl.css +109 -171
  325. package/build-style/style.css +109 -171
  326. package/build-style/tab/style-rtl.css +7 -1
  327. package/build-style/tab/style.css +7 -1
  328. package/build-style/tab-panels/style-rtl.css +4 -0
  329. package/build-style/tab-panels/style.css +4 -0
  330. package/build-style/tabs/style-rtl.css +1 -167
  331. package/build-style/tabs/style.css +1 -167
  332. package/build-style/tabs-menu/editor-rtl.css +4 -0
  333. package/build-style/tabs-menu/editor.css +4 -0
  334. package/build-style/tabs-menu/style-rtl.css +8 -0
  335. package/build-style/tabs-menu/style.css +8 -0
  336. package/build-style/tabs-menu-item/editor-rtl.css +16 -0
  337. package/build-style/tabs-menu-item/editor.css +16 -0
  338. package/build-style/tabs-menu-item/style-rtl.css +34 -0
  339. package/build-style/tabs-menu-item/style.css +34 -0
  340. package/build-style/verse/style-rtl.css +1 -0
  341. package/build-style/verse/style.css +1 -0
  342. package/package.json +37 -37
  343. package/src/block/block.json +2 -1
  344. package/src/breadcrumbs/edit.js +10 -2
  345. package/src/breadcrumbs/index.js +1 -0
  346. package/src/button/index.js +4 -0
  347. package/src/categories/index.php +5 -1
  348. package/src/comment-date/block.json +1 -0
  349. package/src/comment-edit-link/block.json +1 -3
  350. package/src/comment-edit-link/deprecated.js +63 -0
  351. package/src/comment-edit-link/edit.js +7 -31
  352. package/src/comment-edit-link/index.js +2 -0
  353. package/src/comment-reply-link/block.json +1 -5
  354. package/src/comment-reply-link/deprecated.js +56 -0
  355. package/src/comment-reply-link/edit.js +6 -35
  356. package/src/comment-reply-link/index.js +2 -0
  357. package/src/comments-title/block.json +1 -3
  358. package/src/comments-title/deprecated.js +153 -23
  359. package/src/comments-title/edit.js +9 -25
  360. package/src/cover/edit/block-controls.js +14 -3
  361. package/src/cover/edit/embed-video-url-input.js +6 -2
  362. package/src/cover/edit/inspector-controls.js +1 -3
  363. package/src/details/index.js +4 -0
  364. package/src/editor.scss +2 -1
  365. package/src/embed/test/index.js +49 -0
  366. package/src/embed/util.js +21 -0
  367. package/src/freeform/block.json +2 -1
  368. package/src/gallery/style.scss +1 -1
  369. package/src/heading/index.js +4 -0
  370. package/src/html/block.json +2 -1
  371. package/src/image/image.js +63 -11
  372. package/src/image/index.js +4 -1
  373. package/src/index.js +6 -0
  374. package/src/list-item/index.js +16 -0
  375. package/src/media-text/style.scss +2 -0
  376. package/src/missing/block.json +2 -1
  377. package/src/more/block.json +2 -1
  378. package/src/more/index.js +4 -1
  379. package/src/navigation/block.json +5 -4
  380. package/src/navigation/deprecated.js +144 -5
  381. package/src/navigation/edit/deleted-overlay-warning.js +56 -0
  382. package/src/navigation/edit/index.js +181 -70
  383. package/src/navigation/edit/overlay-panel.js +10 -0
  384. package/src/navigation/edit/overlay-preview.js +133 -0
  385. package/src/navigation/edit/overlay-template-part-selector.js +76 -26
  386. package/src/navigation/edit/responsive-wrapper.js +14 -1
  387. package/src/navigation/edit/test/overlay-template-part-selector.js +24 -16
  388. package/src/navigation/edit/test/responsive-wrapper.js +179 -0
  389. package/src/navigation/edit/test/use-create-overlay.js +129 -2
  390. package/src/navigation/edit/use-create-overlay.js +26 -4
  391. package/src/navigation/editor.scss +51 -0
  392. package/src/navigation/index.php +59 -11
  393. package/src/navigation/style.scss +140 -76
  394. package/src/navigation/utils/get-submenu-visibility.js +27 -0
  395. package/src/navigation/utils/test/get-submenu-visibility.js +47 -0
  396. package/src/navigation-link/edit.js +3 -67
  397. package/src/navigation-link/shared/index.js +2 -0
  398. package/src/navigation-link/shared/select-label-text.js +16 -0
  399. package/src/navigation-link/shared/use-is-dragging-within.js +55 -0
  400. package/src/navigation-submenu/block.json +1 -1
  401. package/src/navigation-submenu/edit.js +10 -73
  402. package/src/navigation-submenu/index.js +6 -3
  403. package/src/navigation-submenu/index.php +36 -5
  404. package/src/nextpage/block.json +2 -1
  405. package/src/paragraph/block.json +1 -0
  406. package/src/paragraph/index.js +4 -1
  407. package/src/post-excerpt/edit.js +1 -1
  408. package/src/post-excerpt/index.php +39 -16
  409. package/src/shortcode/block.json +2 -1
  410. package/src/style.scss +3 -0
  411. package/src/tab/add-tab-toolbar-control.js +36 -11
  412. package/src/tab/block.json +18 -4
  413. package/src/tab/controls.js +4 -5
  414. package/src/tab/edit.js +75 -150
  415. package/src/tab/index.php +5 -63
  416. package/src/tab/remove-tab-toolbar-control.js +103 -0
  417. package/src/tab/save.js +1 -3
  418. package/src/tab/style.scss +8 -1
  419. package/src/tab-panels/block.json +70 -0
  420. package/src/tab-panels/edit.js +44 -0
  421. package/src/tab-panels/icon.js +10 -0
  422. package/src/tab-panels/index.js +21 -0
  423. package/src/tab-panels/save.js +11 -0
  424. package/src/tab-panels/style.scss +4 -0
  425. package/src/tabs/block.json +61 -90
  426. package/src/tabs/controls.js +7 -221
  427. package/src/tabs/deprecated.js +214 -0
  428. package/src/tabs/edit.js +108 -68
  429. package/src/tabs/index.js +2 -0
  430. package/src/tabs/index.php +86 -191
  431. package/src/tabs/save.js +6 -13
  432. package/src/tabs/style.scss +1 -187
  433. package/src/tabs-menu/block.json +77 -0
  434. package/src/tabs-menu/edit.js +251 -0
  435. package/src/tabs-menu/editor.scss +6 -0
  436. package/src/tabs-menu/icon.js +10 -0
  437. package/src/tabs-menu/index.js +21 -0
  438. package/src/tabs-menu/index.php +74 -0
  439. package/src/tabs-menu/save.js +18 -0
  440. package/src/tabs-menu/style.scss +8 -0
  441. package/src/tabs-menu-item/block.json +98 -0
  442. package/src/tabs-menu-item/controls.js +262 -0
  443. package/src/tabs-menu-item/edit.js +322 -0
  444. package/src/tabs-menu-item/editor.scss +20 -0
  445. package/src/tabs-menu-item/icon.js +10 -0
  446. package/src/tabs-menu-item/index.js +21 -0
  447. package/src/tabs-menu-item/index.php +82 -0
  448. package/src/tabs-menu-item/save.js +44 -0
  449. package/src/tabs-menu-item/style.scss +42 -0
  450. package/src/template-part/edit/index.js +2 -4
  451. package/src/utils/caption.js +1 -7
  452. package/src/verse/block.json +1 -3
  453. package/src/verse/deprecated.js +83 -4
  454. package/src/verse/edit.js +37 -56
  455. package/src/verse/save.js +2 -11
  456. package/src/verse/style.scss +1 -0
  457. package/src/video/edit.js +4 -2
  458. package/build/tab/tabs-list.cjs +0 -132
  459. package/build/tab/tabs-list.cjs.map +0 -7
  460. package/build/tabs/style-engine.cjs +0 -119
  461. package/build/tabs/style-engine.cjs.map +0 -7
  462. package/build-module/tab/tabs-list.mjs +0 -101
  463. package/build-module/tab/tabs-list.mjs.map +0 -7
  464. package/build-module/tabs/style-engine.mjs +0 -101
  465. package/build-module/tabs/style-engine.mjs.map +0 -7
  466. package/build-style/tabs/editor-rtl.css +0 -26
  467. package/build-style/tabs/editor.css +0 -26
  468. package/src/tab/tabs-list.js +0 -122
  469. package/src/tabs/editor.scss +0 -30
  470. package/src/tabs/style-engine.js +0 -164
@@ -8,11 +8,6 @@
8
8
  "description": "Displays a link to reply to a comment.",
9
9
  "textdomain": "default",
10
10
  "usesContext": [ "commentId" ],
11
- "attributes": {
12
- "textAlign": {
13
- "type": "string"
14
- }
15
- },
16
11
  "supports": {
17
12
  "anchor": true,
18
13
  "color": {
@@ -35,6 +30,7 @@
35
30
  "typography": {
36
31
  "fontSize": true,
37
32
  "lineHeight": true,
33
+ "textAlign": true,
38
34
  "__experimentalFontFamily": true,
39
35
  "__experimentalFontWeight": true,
40
36
  "__experimentalFontStyle": true,
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import migrateTextAlign from '../utils/migrate-text-align';
5
+
6
+ const v1 = {
7
+ attributes: {
8
+ textAlign: {
9
+ type: 'string',
10
+ },
11
+ },
12
+ usesContext: [ 'commentId' ],
13
+ supports: {
14
+ anchor: true,
15
+ color: {
16
+ gradients: true,
17
+ link: true,
18
+ text: false,
19
+ },
20
+ spacing: {
21
+ margin: true,
22
+ padding: true,
23
+ },
24
+ typography: {
25
+ fontSize: true,
26
+ lineHeight: true,
27
+ __experimentalFontFamily: true,
28
+ __experimentalFontWeight: true,
29
+ __experimentalFontStyle: true,
30
+ __experimentalTextTransform: true,
31
+ __experimentalTextDecoration: true,
32
+ __experimentalLetterSpacing: true,
33
+ },
34
+ __experimentalBorder: {
35
+ radius: true,
36
+ color: true,
37
+ width: true,
38
+ style: true,
39
+ },
40
+ html: false,
41
+ },
42
+ save() {
43
+ return null;
44
+ },
45
+ migrate: migrateTextAlign,
46
+ isEligible( attributes ) {
47
+ return (
48
+ !! attributes.textAlign ||
49
+ !! attributes.className?.match(
50
+ /\bhas-text-align-(left|center|right)\b/
51
+ )
52
+ );
53
+ },
54
+ };
55
+
56
+ export default [ v1 ];
@@ -1,49 +1,20 @@
1
- /**
2
- * External dependencies
3
- */
4
- import clsx from 'clsx';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
9
4
  import { __ } from '@wordpress/i18n';
10
- import {
11
- AlignmentControl,
12
- BlockControls,
13
- useBlockProps,
14
- } from '@wordpress/block-editor';
5
+ import { useBlockProps } from '@wordpress/block-editor';
15
6
 
16
7
  /**
17
- * Renders the `core/comment-reply-link` block on the editor.
18
- *
19
- * @param {Object} props React props.
20
- * @param {Object} props.setAttributes Callback for updating block attributes.
21
- * @param {Object} props.attributes Block attributes.
22
- * @param {string} props.attributes.textAlign The `textAlign` attribute.
23
- *
24
- * @return {JSX.Element} React element.
8
+ * Internal dependencies
25
9
  */
26
- function Edit( { setAttributes, attributes: { textAlign } } ) {
27
- const blockProps = useBlockProps( {
28
- className: clsx( {
29
- [ `has-text-align-${ textAlign }` ]: textAlign,
30
- } ),
31
- } );
10
+ import useDeprecatedTextAlign from '../utils/deprecated-text-align-attributes';
32
11
 
33
- const blockControls = (
34
- <BlockControls group="block">
35
- <AlignmentControl
36
- value={ textAlign }
37
- onChange={ ( newAlign ) =>
38
- setAttributes( { textAlign: newAlign } )
39
- }
40
- />
41
- </BlockControls>
42
- );
12
+ function Edit( props ) {
13
+ useDeprecatedTextAlign( props );
14
+ const blockProps = useBlockProps();
43
15
 
44
16
  return (
45
17
  <>
46
- { blockControls }
47
18
  <div { ...blockProps }>
48
19
  <a
49
20
  href="#comment-reply-pseudo-link"
@@ -9,6 +9,7 @@ import { commentReplyLink as icon } from '@wordpress/icons';
9
9
  import initBlock from '../utils/init-block';
10
10
  import metadata from './block.json';
11
11
  import edit from './edit';
12
+ import deprecated from './deprecated';
12
13
 
13
14
  const { name } = metadata;
14
15
  export { metadata, name };
@@ -16,6 +17,7 @@ export { metadata, name };
16
17
  export const settings = {
17
18
  edit,
18
19
  icon,
20
+ deprecated,
19
21
  example: {},
20
22
  };
21
23
 
@@ -9,9 +9,6 @@
9
9
  "textdomain": "default",
10
10
  "usesContext": [ "postId", "postType" ],
11
11
  "attributes": {
12
- "textAlign": {
13
- "type": "string"
14
- },
15
12
  "showPostTitle": {
16
13
  "type": "boolean",
17
14
  "default": true
@@ -52,6 +49,7 @@
52
49
  "typography": {
53
50
  "fontSize": true,
54
51
  "lineHeight": true,
52
+ "textAlign": true,
55
53
  "__experimentalFontFamily": true,
56
54
  "__experimentalFontWeight": true,
57
55
  "__experimentalFontStyle": true,
@@ -1,32 +1,162 @@
1
1
  /**
2
2
  * Internal dependencies
3
3
  */
4
- import metadata from './block.json';
4
+ import migrateTextAlign from '../utils/migrate-text-align';
5
5
 
6
- const { attributes, supports } = metadata;
6
+ const v2 = {
7
+ attributes: {
8
+ textAlign: {
9
+ type: 'string',
10
+ },
11
+ showPostTitle: {
12
+ type: 'boolean',
13
+ default: true,
14
+ },
15
+ showCommentsCount: {
16
+ type: 'boolean',
17
+ default: true,
18
+ },
19
+ level: {
20
+ type: 'number',
21
+ default: 2,
22
+ },
23
+ levelOptions: {
24
+ type: 'array',
25
+ },
26
+ },
27
+ supports: {
28
+ anchor: true,
29
+ align: true,
30
+ html: false,
31
+ __experimentalBorder: {
32
+ radius: true,
33
+ color: true,
34
+ width: true,
35
+ style: true,
36
+ },
37
+ color: {
38
+ gradients: true,
39
+ __experimentalDefaultControls: {
40
+ background: true,
41
+ text: true,
42
+ },
43
+ },
44
+ spacing: {
45
+ margin: true,
46
+ padding: true,
47
+ },
48
+ typography: {
49
+ fontSize: true,
50
+ lineHeight: true,
51
+ __experimentalFontFamily: true,
52
+ __experimentalFontWeight: true,
53
+ __experimentalFontStyle: true,
54
+ __experimentalTextTransform: true,
55
+ __experimentalTextDecoration: true,
56
+ __experimentalLetterSpacing: true,
57
+ __experimentalDefaultControls: {
58
+ fontSize: true,
59
+ __experimentalFontFamily: true,
60
+ __experimentalFontStyle: true,
61
+ __experimentalFontWeight: true,
62
+ },
63
+ },
64
+ interactivity: {
65
+ clientNavigation: true,
66
+ },
67
+ },
68
+ migrate: ( oldAttributes ) => {
69
+ const { singleCommentLabel, multipleCommentsLabel, ...newAttributes } =
70
+ oldAttributes;
71
+ return migrateTextAlign( newAttributes );
72
+ },
73
+ isEligible( attributes ) {
74
+ return (
75
+ !! attributes.textAlign ||
76
+ !! attributes.className?.match(
77
+ /\bhas-text-align-(left|center|right)\b/
78
+ )
79
+ );
80
+ },
81
+ save: () => null,
82
+ };
7
83
 
8
- export default [
9
- {
10
- attributes: {
11
- ...attributes,
12
- singleCommentLabel: {
13
- type: 'string',
84
+ const v1 = {
85
+ attributes: {
86
+ textAlign: {
87
+ type: 'string',
88
+ },
89
+ showPostTitle: {
90
+ type: 'boolean',
91
+ default: true,
92
+ },
93
+ showCommentsCount: {
94
+ type: 'boolean',
95
+ default: true,
96
+ },
97
+ level: {
98
+ type: 'number',
99
+ default: 2,
100
+ },
101
+ levelOptions: {
102
+ type: 'array',
103
+ },
104
+ singleCommentLabel: {
105
+ type: 'string',
106
+ },
107
+ multipleCommentsLabel: {
108
+ type: 'string',
109
+ },
110
+ },
111
+ supports: {
112
+ anchor: true,
113
+ align: true,
114
+ html: false,
115
+ __experimentalBorder: {
116
+ radius: true,
117
+ color: true,
118
+ width: true,
119
+ style: true,
120
+ },
121
+ color: {
122
+ gradients: true,
123
+ __experimentalDefaultControls: {
124
+ background: true,
125
+ text: true,
14
126
  },
15
- multipleCommentsLabel: {
16
- type: 'string',
127
+ },
128
+ spacing: {
129
+ margin: true,
130
+ padding: true,
131
+ },
132
+ typography: {
133
+ fontSize: true,
134
+ lineHeight: true,
135
+ __experimentalFontFamily: true,
136
+ __experimentalFontWeight: true,
137
+ __experimentalFontStyle: true,
138
+ __experimentalTextTransform: true,
139
+ __experimentalTextDecoration: true,
140
+ __experimentalLetterSpacing: true,
141
+ __experimentalDefaultControls: {
142
+ fontSize: true,
143
+ __experimentalFontFamily: true,
144
+ __experimentalFontStyle: true,
145
+ __experimentalFontWeight: true,
17
146
  },
18
147
  },
19
- supports,
20
- migrate: ( oldAttributes ) => {
21
- const {
22
- singleCommentLabel,
23
- multipleCommentsLabel,
24
- ...newAttributes
25
- } = oldAttributes;
26
- return newAttributes;
27
- },
28
- isEligible: ( { multipleCommentsLabel, singleCommentLabel } ) =>
29
- multipleCommentsLabel || singleCommentLabel,
30
- save: () => null,
148
+ interactivity: {
149
+ clientNavigation: true,
150
+ },
151
+ },
152
+ migrate: ( oldAttributes ) => {
153
+ const { singleCommentLabel, multipleCommentsLabel, ...newAttributes } =
154
+ oldAttributes;
155
+ return migrateTextAlign( newAttributes );
31
156
  },
32
- ];
157
+ isEligible: ( { multipleCommentsLabel, singleCommentLabel } ) =>
158
+ multipleCommentsLabel || singleCommentLabel,
159
+ save: () => null,
160
+ };
161
+
162
+ export default [ v2, v1 ];
@@ -1,13 +1,7 @@
1
- /**
2
- * External dependencies
3
- */
4
- import clsx from 'clsx';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
9
4
  import {
10
- AlignmentControl,
11
5
  BlockControls,
12
6
  useBlockProps,
13
7
  InspectorControls,
@@ -30,27 +24,23 @@ import { addQueryArgs } from '@wordpress/url';
30
24
  * Internal dependencies
31
25
  */
32
26
  import { useToolsPanelDropdownMenuProps } from '../utils/hooks';
27
+ import useDeprecatedTextAlign from '../utils/deprecated-text-align-attributes';
33
28
 
34
- export default function Edit( {
35
- attributes: {
36
- textAlign,
29
+ export default function Edit( props ) {
30
+ useDeprecatedTextAlign( props );
31
+ const { attributes, setAttributes, context } = props;
32
+ const {
37
33
  showPostTitle,
38
34
  showCommentsCount,
39
- level,
35
+ level = 2,
40
36
  levelOptions,
41
- },
42
- setAttributes,
43
- context: { postType, postId },
44
- } ) {
37
+ } = attributes;
38
+ const { postId, postType } = context;
45
39
  const TagName = 'h' + level;
46
40
  const [ commentsCount, setCommentsCount ] = useState();
47
41
  const [ rawTitle ] = useEntityProp( 'postType', postType, 'title', postId );
48
42
  const isSiteEditor = typeof postId === 'undefined';
49
- const blockProps = useBlockProps( {
50
- className: clsx( {
51
- [ `has-text-align-${ textAlign }` ]: textAlign,
52
- } ),
53
- } );
43
+ const blockProps = useBlockProps();
54
44
 
55
45
  const {
56
46
  threadCommentsDepth,
@@ -104,12 +94,6 @@ export default function Edit( {
104
94
 
105
95
  const blockControls = (
106
96
  <BlockControls group="block">
107
- <AlignmentControl
108
- value={ textAlign }
109
- onChange={ ( newAlign ) =>
110
- setAttributes( { textAlign: newAlign } )
111
- }
112
- />
113
97
  <HeadingLevelDropdown
114
98
  value={ level }
115
99
  options={ levelOptions }
@@ -17,7 +17,7 @@ import { link } from '@wordpress/icons';
17
17
  /**
18
18
  * Internal dependencies
19
19
  */
20
- import { ALLOWED_MEDIA_TYPES } from '../shared';
20
+ import { ALLOWED_MEDIA_TYPES, EMBED_VIDEO_BACKGROUND_TYPE } from '../shared';
21
21
  import { unlock } from '../../lock-unlock';
22
22
  import EmbedVideoUrlInput from './embed-video-url-input';
23
23
 
@@ -33,8 +33,14 @@ export default function CoverBlockControls( {
33
33
  onSelectEmbedUrl,
34
34
  blockEditingMode,
35
35
  } ) {
36
- const { contentPosition, id, useFeaturedImage, minHeight, minHeightUnit } =
37
- attributes;
36
+ const {
37
+ contentPosition,
38
+ id,
39
+ useFeaturedImage,
40
+ minHeight,
41
+ minHeightUnit,
42
+ backgroundType,
43
+ } = attributes;
38
44
  const { hasInnerBlocks, url } = currentSettings;
39
45
 
40
46
  const [ prevMinHeightValue, setPrevMinHeightValue ] = useState( minHeight );
@@ -133,6 +139,11 @@ export default function CoverBlockControls( {
133
139
  onSelectEmbedUrl( embedUrl );
134
140
  } }
135
141
  onClose={ () => setIsEmbedUrlInputOpen( false ) }
142
+ initialUrl={
143
+ backgroundType === EMBED_VIDEO_BACKGROUND_TYPE
144
+ ? url
145
+ : ''
146
+ }
136
147
  />
137
148
  ) }
138
149
  </>
@@ -15,8 +15,12 @@ import { __ } from '@wordpress/i18n';
15
15
  */
16
16
  import { isValidVideoEmbedUrl } from '../embed-video-utils';
17
17
 
18
- export default function EmbedVideoUrlInput( { onSubmit, onClose } ) {
19
- const [ url, setUrl ] = useState( '' );
18
+ export default function EmbedVideoUrlInput( {
19
+ onSubmit,
20
+ onClose,
21
+ initialUrl = '',
22
+ } ) {
23
+ const [ url, setUrl ] = useState( initialUrl );
20
24
  const [ error, setError ] = useState( '' );
21
25
 
22
26
  const handleConfirm = () => {
@@ -178,9 +178,7 @@ export default function CoverInspectorControls( {
178
178
  } );
179
179
  };
180
180
 
181
- const showFocalPointPicker =
182
- isVideoBackground ||
183
- ( isImageBackground && ( ! hasParallax || isRepeated ) );
181
+ const showFocalPointPicker = isVideoBackground || isImageBackground;
184
182
 
185
183
  const imperativeFocalPointPreview = ( value ) => {
186
184
  const [ styleOfRef, property ] = mediaElement.current
@@ -50,6 +50,10 @@ export const settings = {
50
50
  return customName || summary;
51
51
  }
52
52
 
53
+ if ( context === 'breadcrumb' && customName ) {
54
+ return customName;
55
+ }
56
+
53
57
  if ( context === 'accessibility' ) {
54
58
  return ! hasSummary
55
59
  ? __( 'Details. Empty.' )
package/src/editor.scss CHANGED
@@ -46,7 +46,8 @@
46
46
  @use "./social-links/editor.scss" as *;
47
47
  @use "./spacer/editor.scss" as *;
48
48
  @use "./table/editor.scss" as *;
49
- @use "./tabs/editor.scss" as *;
49
+ @use "./tabs-menu/editor.scss" as *;
50
+ @use "./tabs-menu-item/editor.scss" as *;
50
51
  @use "./template-part/editor.scss" as *;
51
52
  @use "./term-template/editor.scss" as *;
52
53
  @use "./text-columns/editor.scss" as *;
@@ -18,6 +18,7 @@ import {
18
18
  getEmbedInfoByProvider,
19
19
  removeAspectRatioClasses,
20
20
  hasAspectRatioClass,
21
+ hasInlineResponsivePadding,
21
22
  } from '../util';
22
23
  import { embedInstagramIcon } from '../icons';
23
24
  import variations from '../variations';
@@ -30,6 +31,7 @@ jest.mock( '@wordpress/data/src/components/use-select', () => () => ( {} ) );
30
31
  describe( 'utils', () => {
31
32
  beforeAll( () => {
32
33
  registerBlockType( DEFAULT_EMBED_BLOCK, {
34
+ apiVersion: 3,
33
35
  title: 'Embed',
34
36
  category: 'embed',
35
37
  attributes,
@@ -101,7 +103,53 @@ describe( 'utils', () => {
101
103
  )
102
104
  ).toEqual( expected );
103
105
  } );
106
+
107
+ it( 'should not add aspect ratio classes when HTML already contains responsive wrapper with padding-bottom', () => {
108
+ // Flickr embeds come with their own responsive wrapper
109
+ const html =
110
+ '<div style="padding-bottom: 56.25%;"><iframe width="1024" height="576"></iframe></div>';
111
+ const existingClassNames = 'wp-block-embed';
112
+ // Should not add wp-embed-aspect-16-9 and wp-has-aspect-ratio
113
+ // because the HTML already has responsive styling
114
+ expect( getClassNames( html, existingClassNames, true ) ).toEqual(
115
+ existingClassNames
116
+ );
117
+ } );
118
+
119
+ it( 'should not add aspect ratio classes when HTML already contains responsive wrapper with padding-top', () => {
120
+ const html =
121
+ '<div style="padding-top: 56.25%;"><iframe width="1024" height="576"></iframe></div>';
122
+ const existingClassNames = 'wp-block-embed';
123
+ expect( getClassNames( html, existingClassNames, true ) ).toEqual(
124
+ existingClassNames
125
+ );
126
+ } );
104
127
  } );
128
+ describe( 'hasInlineResponsivePadding', () => {
129
+ it( 'should return true when HTML contains padding-bottom percentage', () => {
130
+ const html =
131
+ '<div style="padding-bottom: 56.25%;"><iframe></iframe></div>';
132
+ expect( hasInlineResponsivePadding( html ) ).toBe( true );
133
+ } );
134
+
135
+ it( 'should return true when HTML contains padding-top percentage', () => {
136
+ const html =
137
+ '<div style="padding-top: 75%;"><iframe></iframe></div>';
138
+ expect( hasInlineResponsivePadding( html ) ).toBe( true );
139
+ } );
140
+
141
+ it( 'should return false when HTML has no padding percentage', () => {
142
+ const html = '<iframe width="640" height="360"></iframe>';
143
+ expect( hasInlineResponsivePadding( html ) ).toBe( false );
144
+ } );
145
+
146
+ it( 'should return false when padding uses pixels instead of percentage', () => {
147
+ const html =
148
+ '<div style="padding-bottom: 20px;"><iframe></iframe></div>';
149
+ expect( hasInlineResponsivePadding( html ) ).toBe( false );
150
+ } );
151
+ } );
152
+
105
153
  describe( 'hasAspectRatioClass', () => {
106
154
  it( 'should return false if an aspect ratio class does not exist', () => {
107
155
  const existingClassNames = 'wp-block-embed is-type-video';
@@ -148,6 +196,7 @@ describe( 'utils', () => {
148
196
  ).toBeUndefined();
149
197
 
150
198
  registerBlockType( DEFAULT_EMBED_BLOCK, {
199
+ apiVersion: 3,
151
200
  title: 'Embed',
152
201
  category: 'embed',
153
202
  attributes,
package/src/embed/util.js CHANGED
@@ -195,6 +195,21 @@ export const removeAspectRatioClasses = ( existingClassNames ) => {
195
195
  return outputClassNames.trim();
196
196
  };
197
197
 
198
+ /**
199
+ * Checks if HTML already contains responsive aspect ratio styling.
200
+ * Some embed providers (like Flickr) include their own responsive wrapper
201
+ * with padding-bottom or padding-top percentages for aspect ratio.
202
+ *
203
+ * @param {string} html The embed HTML to check.
204
+ * @return {boolean} True if the HTML already has responsive styling.
205
+ */
206
+ export function hasInlineResponsivePadding( html ) {
207
+ // Check for padding-bottom or padding-top with percentage values in style attributes
208
+ // This pattern matches: padding-bottom: 56.25%; or padding-top: 50%; etc.
209
+ const paddingPattern = /padding-(top|bottom)\s*:\s*[\d.]+%/i;
210
+ return paddingPattern.test( html );
211
+ }
212
+
198
213
  /**
199
214
  * Returns class names with any relevant responsive aspect ratio names.
200
215
  *
@@ -212,6 +227,12 @@ export function getClassNames(
212
227
  return removeAspectRatioClasses( existingClassNames );
213
228
  }
214
229
 
230
+ // If the embed HTML already contains responsive wrapper styling (like Flickr),
231
+ // don't add our own aspect ratio classes to avoid double padding.
232
+ if ( hasInlineResponsivePadding( html ) ) {
233
+ return removeAspectRatioClasses( existingClassNames );
234
+ }
235
+
215
236
  const previewDocument = document.implementation.createHTMLDocument( '' );
216
237
  previewDocument.body.innerHTML = html;
217
238
  const iframe = previewDocument.body.querySelector( 'iframe' );
@@ -18,7 +18,8 @@
18
18
  "lock": false,
19
19
  "reusable": false,
20
20
  "renaming": false,
21
- "visibility": false
21
+ "visibility": false,
22
+ "customCSS": false
22
23
  },
23
24
  "editorStyle": "wp-block-freeform-editor"
24
25
  }
@@ -62,7 +62,7 @@ figure.wp-block-gallery.has-nested-images {
62
62
  &:has(figcaption)::before {
63
63
  content: "";
64
64
  height: 100%;
65
- max-height: 40%;
65
+ max-height: 3em;
66
66
  pointer-events: none;
67
67
 
68
68
  // Blur the background under the gradient scrim.
@@ -48,6 +48,10 @@ export const settings = {
48
48
  return customName || content;
49
49
  }
50
50
 
51
+ if ( context === 'breadcrumb' && customName ) {
52
+ return customName;
53
+ }
54
+
51
55
  if ( context === 'accessibility' ) {
52
56
  return ! hasContent
53
57
  ? sprintf(
@@ -20,7 +20,8 @@
20
20
  "html": false,
21
21
  "interactivity": {
22
22
  "clientNavigation": true
23
- }
23
+ },
24
+ "customCSS": false
24
25
  },
25
26
  "editorStyle": "wp-block-html-editor"
26
27
  }