@wordpress/block-library 10.1.1-next.v.202607070741.0 → 10.3.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 (580) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/build/accordion/block.json +1 -0
  3. package/build/accordion-panel/block.json +1 -0
  4. package/build/button/edit.cjs +18 -8
  5. package/build/button/edit.cjs.map +2 -2
  6. package/build/code/edit.cjs +3 -1
  7. package/build/code/edit.cjs.map +2 -2
  8. package/build/cover/block.json +12 -0
  9. package/build/cover/edit/block-controls.cjs +14 -5
  10. package/build/cover/edit/block-controls.cjs.map +2 -2
  11. package/build/cover/edit/embed-video-url-input.cjs +5 -3
  12. package/build/cover/edit/embed-video-url-input.cjs.map +3 -3
  13. package/build/cover/edit/index.cjs +76 -32
  14. package/build/cover/edit/index.cjs.map +2 -2
  15. package/build/cover/embed-video-utils.cjs +17 -7
  16. package/build/cover/embed-video-utils.cjs.map +2 -2
  17. package/build/details/transforms.cjs +1 -3
  18. package/build/details/transforms.cjs.map +2 -2
  19. package/build/embed/edit.cjs +1 -1
  20. package/build/embed/edit.cjs.map +2 -2
  21. package/build/embed/embed-placeholder.cjs +1 -2
  22. package/build/embed/embed-placeholder.cjs.map +2 -2
  23. package/build/file/edit.cjs +4 -3
  24. package/build/file/edit.cjs.map +2 -2
  25. package/build/file/transforms.cjs +25 -60
  26. package/build/file/transforms.cjs.map +2 -2
  27. package/build/gallery/block.json +4 -2
  28. package/build/gallery/dynamic-gallery.cjs +104 -61
  29. package/build/gallery/dynamic-gallery.cjs.map +3 -3
  30. package/build/gallery/edit.cjs +1 -1
  31. package/build/gallery/edit.cjs.map +3 -3
  32. package/build/gallery/gap-styles.cjs +49 -13
  33. package/build/gallery/gap-styles.cjs.map +3 -3
  34. package/build/gallery/use-dynamic-gallery.cjs +15 -8
  35. package/build/gallery/use-dynamic-gallery.cjs.map +2 -2
  36. package/build/group/transforms.cjs +1 -1
  37. package/build/group/transforms.cjs.map +2 -2
  38. package/build/heading/edit.cjs +1 -1
  39. package/build/heading/edit.cjs.map +2 -2
  40. package/build/html/modal.cjs +63 -54
  41. package/build/html/modal.cjs.map +3 -3
  42. package/build/icon/block.json +5 -3
  43. package/build/icon/components/custom-inserter/icon-grid.cjs +25 -12
  44. package/build/icon/components/custom-inserter/icon-grid.cjs.map +2 -2
  45. package/build/icon/components/custom-inserter/index.cjs +100 -31
  46. package/build/icon/components/custom-inserter/index.cjs.map +3 -3
  47. package/build/icon/edit.cjs +11 -12
  48. package/build/icon/edit.cjs.map +2 -2
  49. package/build/image/block.json +1 -1
  50. package/build/image/edit.cjs +1 -35
  51. package/build/image/edit.cjs.map +2 -2
  52. package/build/image/image.cjs +23 -18
  53. package/build/image/image.cjs.map +3 -3
  54. package/build/image/transforms.cjs +78 -0
  55. package/build/image/transforms.cjs.map +3 -3
  56. package/build/image/use-open-image-media-editor-modal.cjs +6 -2
  57. package/build/image/use-open-image-media-editor-modal.cjs.map +2 -2
  58. package/build/index.cjs +18 -8
  59. package/build/index.cjs.map +2 -2
  60. package/build/latest-posts/edit.cjs +5 -8
  61. package/build/latest-posts/edit.cjs.map +2 -2
  62. package/build/list-item/edit.cjs +1 -1
  63. package/build/list-item/edit.cjs.map +2 -2
  64. package/build/list-item/hooks/use-enter.cjs +14 -17
  65. package/build/list-item/hooks/use-enter.cjs.map +3 -3
  66. package/build/list-item/hooks/use-indent-list-item.cjs +10 -2
  67. package/build/list-item/hooks/use-indent-list-item.cjs.map +2 -2
  68. package/build/list-item/hooks/use-space.cjs +3 -2
  69. package/build/list-item/hooks/use-space.cjs.map +3 -3
  70. package/build/math/edit.cjs +39 -56
  71. package/build/math/edit.cjs.map +3 -3
  72. package/build/media-text/edit.cjs +2 -1
  73. package/build/media-text/edit.cjs.map +2 -2
  74. package/build/more/edit.cjs +2 -2
  75. package/build/more/edit.cjs.map +2 -2
  76. package/build/navigation/edit/index.cjs +30 -16
  77. package/build/navigation/edit/index.cjs.map +3 -3
  78. package/build/navigation/edit/use-layout-custom-properties.cjs +72 -0
  79. package/build/navigation/edit/use-layout-custom-properties.cjs.map +7 -0
  80. package/build/navigation/view.cjs +9 -6
  81. package/build/navigation/view.cjs.map +2 -2
  82. package/build/navigation-link/edit.cjs +3 -3
  83. package/build/navigation-link/edit.cjs.map +2 -2
  84. package/build/navigation-link/link-ui/index.cjs +2 -2
  85. package/build/navigation-link/link-ui/index.cjs.map +2 -2
  86. package/build/paragraph/edit.cjs +5 -2
  87. package/build/paragraph/edit.cjs.map +3 -3
  88. package/build/paragraph/index.cjs +4 -1
  89. package/build/paragraph/index.cjs.map +2 -2
  90. package/build/paragraph/use-enter.cjs +3 -7
  91. package/build/paragraph/use-enter.cjs.map +3 -3
  92. package/build/playlist/block.json +29 -10
  93. package/build/playlist/context.cjs +2 -1
  94. package/build/playlist/context.cjs.map +2 -2
  95. package/build/playlist/edit.cjs +328 -39
  96. package/build/playlist/edit.cjs.map +3 -3
  97. package/build/playlist/index.cjs +1 -1
  98. package/build/playlist/index.cjs.map +2 -2
  99. package/build/playlist/utils.cjs +37 -8
  100. package/build/playlist/utils.cjs.map +2 -2
  101. package/build/playlist/view.cjs +83 -13
  102. package/build/playlist/view.cjs.map +2 -2
  103. package/build/playlist-track/block.json +4 -2
  104. package/build/playlist-track/edit.cjs +115 -70
  105. package/build/playlist-track/edit.cjs.map +2 -2
  106. package/build/post-content/block.json +1 -0
  107. package/build/post-content/edit.cjs +36 -15
  108. package/build/post-content/edit.cjs.map +2 -2
  109. package/build/post-featured-image/edit.cjs +3 -2
  110. package/build/post-featured-image/edit.cjs.map +2 -2
  111. package/build/post-template/block.json +2 -1
  112. package/build/post-template/edit.cjs +10 -1
  113. package/build/post-template/edit.cjs.map +2 -2
  114. package/build/post-terms/edit.cjs +2 -2
  115. package/build/post-terms/edit.cjs.map +2 -2
  116. package/build/post-title/edit.cjs +2 -2
  117. package/build/post-title/edit.cjs.map +2 -2
  118. package/build/preformatted/edit.cjs +3 -1
  119. package/build/preformatted/edit.cjs.map +2 -2
  120. package/build/pullquote/block.json +3 -1
  121. package/build/pullquote/edit.cjs +5 -3
  122. package/build/pullquote/edit.cjs.map +2 -2
  123. package/build/query/block.json +3 -2
  124. package/build/query/edit/inspector-controls/index.cjs +42 -5
  125. package/build/query/edit/inspector-controls/index.cjs.map +2 -2
  126. package/build/query/edit/inspector-controls/offset-controls.cjs +1 -2
  127. package/build/query/edit/inspector-controls/offset-controls.cjs.map +2 -2
  128. package/build/query/edit/inspector-controls/pages-control.cjs +0 -1
  129. package/build/query/edit/inspector-controls/pages-control.cjs.map +2 -2
  130. package/build/query/edit/query-content.cjs +10 -3
  131. package/build/query/edit/query-content.cjs.map +2 -2
  132. package/build/query/index.cjs +2 -1
  133. package/build/query/index.cjs.map +2 -2
  134. package/build/quote/block.json +3 -1
  135. package/build/quote/transforms.cjs +1 -3
  136. package/build/quote/transforms.cjs.map +2 -2
  137. package/build/read-more/edit.cjs +3 -1
  138. package/build/read-more/edit.cjs.map +2 -2
  139. package/build/rss/edit.cjs +0 -1
  140. package/build/rss/edit.cjs.map +2 -2
  141. package/build/site-tagline/edit.cjs +3 -1
  142. package/build/site-tagline/edit.cjs.map +2 -2
  143. package/build/site-title/edit.cjs +3 -1
  144. package/build/site-title/edit.cjs.map +2 -2
  145. package/build/social-links/edit.cjs +11 -4
  146. package/build/social-links/edit.cjs.map +2 -2
  147. package/build/tab-list/block.json +4 -3
  148. package/build/tab-list/edit.cjs +67 -11
  149. package/build/tab-list/edit.cjs.map +3 -3
  150. package/build/tab-list/tab-movers.cjs +87 -0
  151. package/build/tab-list/tab-movers.cjs.map +7 -0
  152. package/build/tab-panel/block.json +1 -6
  153. package/build/tab-panel/edit.cjs +16 -24
  154. package/build/tab-panel/edit.cjs.map +2 -2
  155. package/build/tab-panels/block.json +0 -1
  156. package/build/table/edit.cjs +1 -1
  157. package/build/table/edit.cjs.map +2 -2
  158. package/build/tabs/block.json +0 -5
  159. package/build/tabs/edit.cjs +4 -39
  160. package/build/tabs/edit.cjs.map +3 -3
  161. package/build/tabs/use-tab-actions.cjs +23 -1
  162. package/build/tabs/use-tab-actions.cjs.map +2 -2
  163. package/build/tabs/use-tab-list-items-sync.cjs +19 -1
  164. package/build/tabs/use-tab-list-items-sync.cjs.map +2 -2
  165. package/build/term-name/block.json +1 -3
  166. package/build/term-name/deprecated.cjs +105 -0
  167. package/build/term-name/deprecated.cjs.map +7 -0
  168. package/build/term-name/edit.cjs +11 -37
  169. package/build/term-name/edit.cjs.map +3 -3
  170. package/build/term-name/index.cjs +3 -1
  171. package/build/term-name/index.cjs.map +3 -3
  172. package/build/utils/caption.cjs +2 -2
  173. package/build/utils/caption.cjs.map +2 -2
  174. package/build/utils/waveform-player.cjs +138 -22
  175. package/build/utils/waveform-player.cjs.map +2 -2
  176. package/build/utils/waveform-utils.cjs +315 -17
  177. package/build/utils/waveform-utils.cjs.map +2 -2
  178. package/build/verse/edit.cjs +3 -1
  179. package/build/verse/edit.cjs.map +2 -2
  180. package/build/video/edit.cjs +2 -11
  181. package/build/video/edit.cjs.map +3 -3
  182. package/build/video/tracks-editor.cjs +0 -1
  183. package/build/video/tracks-editor.cjs.map +2 -2
  184. package/build-module/accordion/block.json +1 -0
  185. package/build-module/accordion-panel/block.json +1 -0
  186. package/build-module/button/edit.mjs +19 -14
  187. package/build-module/button/edit.mjs.map +2 -2
  188. package/build-module/code/edit.mjs +3 -1
  189. package/build-module/code/edit.mjs.map +2 -2
  190. package/build-module/cover/block.json +12 -0
  191. package/build-module/cover/edit/block-controls.mjs +14 -5
  192. package/build-module/cover/edit/block-controls.mjs.map +2 -2
  193. package/build-module/cover/edit/embed-video-url-input.mjs +5 -4
  194. package/build-module/cover/edit/embed-video-url-input.mjs.map +2 -2
  195. package/build-module/cover/edit/index.mjs +79 -35
  196. package/build-module/cover/edit/index.mjs.map +2 -2
  197. package/build-module/cover/embed-video-utils.mjs +16 -7
  198. package/build-module/cover/embed-video-utils.mjs.map +2 -2
  199. package/build-module/details/transforms.mjs +2 -7
  200. package/build-module/details/transforms.mjs.map +2 -2
  201. package/build-module/embed/edit.mjs +1 -1
  202. package/build-module/embed/edit.mjs.map +2 -2
  203. package/build-module/embed/embed-placeholder.mjs +1 -2
  204. package/build-module/embed/embed-placeholder.mjs.map +2 -2
  205. package/build-module/file/edit.mjs +4 -3
  206. package/build-module/file/edit.mjs.map +2 -2
  207. package/build-module/file/transforms.mjs +25 -60
  208. package/build-module/file/transforms.mjs.map +2 -2
  209. package/build-module/gallery/block.json +4 -2
  210. package/build-module/gallery/dynamic-gallery.mjs +104 -61
  211. package/build-module/gallery/dynamic-gallery.mjs.map +2 -2
  212. package/build-module/gallery/edit.mjs +3 -3
  213. package/build-module/gallery/edit.mjs.map +2 -2
  214. package/build-module/gallery/gap-styles.mjs +53 -14
  215. package/build-module/gallery/gap-styles.mjs.map +2 -2
  216. package/build-module/gallery/use-dynamic-gallery.mjs +16 -9
  217. package/build-module/gallery/use-dynamic-gallery.mjs.map +2 -2
  218. package/build-module/group/transforms.mjs +2 -5
  219. package/build-module/group/transforms.mjs.map +2 -2
  220. package/build-module/heading/edit.mjs +1 -1
  221. package/build-module/heading/edit.mjs.map +2 -2
  222. package/build-module/html/modal.mjs +68 -55
  223. package/build-module/html/modal.mjs.map +2 -2
  224. package/build-module/icon/block.json +5 -3
  225. package/build-module/icon/components/custom-inserter/icon-grid.mjs +25 -12
  226. package/build-module/icon/components/custom-inserter/icon-grid.mjs.map +2 -2
  227. package/build-module/icon/components/custom-inserter/index.mjs +102 -33
  228. package/build-module/icon/components/custom-inserter/index.mjs.map +2 -2
  229. package/build-module/icon/edit.mjs +11 -12
  230. package/build-module/icon/edit.mjs.map +2 -2
  231. package/build-module/image/block.json +1 -1
  232. package/build-module/image/edit.mjs +1 -35
  233. package/build-module/image/edit.mjs.map +2 -2
  234. package/build-module/image/image.mjs +23 -18
  235. package/build-module/image/image.mjs.map +2 -2
  236. package/build-module/image/transforms.mjs +78 -0
  237. package/build-module/image/transforms.mjs.map +2 -2
  238. package/build-module/image/use-open-image-media-editor-modal.mjs +6 -2
  239. package/build-module/image/use-open-image-media-editor-modal.mjs.map +2 -2
  240. package/build-module/index.mjs +18 -8
  241. package/build-module/index.mjs.map +2 -2
  242. package/build-module/latest-posts/edit.mjs +5 -8
  243. package/build-module/latest-posts/edit.mjs.map +2 -2
  244. package/build-module/list-item/edit.mjs +1 -1
  245. package/build-module/list-item/edit.mjs.map +2 -2
  246. package/build-module/list-item/hooks/use-enter.mjs +15 -21
  247. package/build-module/list-item/hooks/use-enter.mjs.map +2 -2
  248. package/build-module/list-item/hooks/use-indent-list-item.mjs +10 -2
  249. package/build-module/list-item/hooks/use-indent-list-item.mjs.map +2 -2
  250. package/build-module/list-item/hooks/use-space.mjs +4 -6
  251. package/build-module/list-item/hooks/use-space.mjs.map +2 -2
  252. package/build-module/math/edit.mjs +41 -60
  253. package/build-module/math/edit.mjs.map +2 -2
  254. package/build-module/media-text/edit.mjs +2 -1
  255. package/build-module/media-text/edit.mjs.map +2 -2
  256. package/build-module/more/edit.mjs +2 -2
  257. package/build-module/more/edit.mjs.map +2 -2
  258. package/build-module/navigation/edit/index.mjs +30 -16
  259. package/build-module/navigation/edit/index.mjs.map +2 -2
  260. package/build-module/navigation/edit/use-layout-custom-properties.mjs +51 -0
  261. package/build-module/navigation/edit/use-layout-custom-properties.mjs.map +7 -0
  262. package/build-module/navigation/view.mjs +9 -6
  263. package/build-module/navigation/view.mjs.map +2 -2
  264. package/build-module/navigation-link/edit.mjs +3 -3
  265. package/build-module/navigation-link/edit.mjs.map +2 -2
  266. package/build-module/navigation-link/link-ui/index.mjs +2 -2
  267. package/build-module/navigation-link/link-ui/index.mjs.map +2 -2
  268. package/build-module/paragraph/edit.mjs +6 -2
  269. package/build-module/paragraph/edit.mjs.map +2 -2
  270. package/build-module/paragraph/index.mjs +4 -1
  271. package/build-module/paragraph/index.mjs.map +2 -2
  272. package/build-module/paragraph/use-enter.mjs +4 -11
  273. package/build-module/paragraph/use-enter.mjs.map +2 -2
  274. package/build-module/playlist/block.json +29 -10
  275. package/build-module/playlist/context.mjs +2 -1
  276. package/build-module/playlist/context.mjs.map +2 -2
  277. package/build-module/playlist/edit.mjs +331 -41
  278. package/build-module/playlist/edit.mjs.map +2 -2
  279. package/build-module/playlist/index.mjs +1 -1
  280. package/build-module/playlist/index.mjs.map +2 -2
  281. package/build-module/playlist/utils.mjs +35 -7
  282. package/build-module/playlist/utils.mjs.map +2 -2
  283. package/build-module/playlist/view.mjs +89 -14
  284. package/build-module/playlist/view.mjs.map +2 -2
  285. package/build-module/playlist-track/block.json +4 -2
  286. package/build-module/playlist-track/edit.mjs +117 -71
  287. package/build-module/playlist-track/edit.mjs.map +2 -2
  288. package/build-module/post-content/block.json +1 -0
  289. package/build-module/post-content/edit.mjs +37 -15
  290. package/build-module/post-content/edit.mjs.map +2 -2
  291. package/build-module/post-featured-image/edit.mjs +3 -2
  292. package/build-module/post-featured-image/edit.mjs.map +2 -2
  293. package/build-module/post-template/block.json +2 -1
  294. package/build-module/post-template/edit.mjs +10 -1
  295. package/build-module/post-template/edit.mjs.map +2 -2
  296. package/build-module/post-terms/edit.mjs +2 -2
  297. package/build-module/post-terms/edit.mjs.map +2 -2
  298. package/build-module/post-title/edit.mjs +2 -2
  299. package/build-module/post-title/edit.mjs.map +2 -2
  300. package/build-module/preformatted/edit.mjs +3 -1
  301. package/build-module/preformatted/edit.mjs.map +2 -2
  302. package/build-module/pullquote/block.json +3 -1
  303. package/build-module/pullquote/edit.mjs +5 -3
  304. package/build-module/pullquote/edit.mjs.map +2 -2
  305. package/build-module/query/block.json +3 -2
  306. package/build-module/query/edit/inspector-controls/index.mjs +44 -6
  307. package/build-module/query/edit/inspector-controls/index.mjs.map +2 -2
  308. package/build-module/query/edit/inspector-controls/offset-controls.mjs +2 -3
  309. package/build-module/query/edit/inspector-controls/offset-controls.mjs.map +2 -2
  310. package/build-module/query/edit/inspector-controls/pages-control.mjs +0 -1
  311. package/build-module/query/edit/inspector-controls/pages-control.mjs.map +2 -2
  312. package/build-module/query/edit/query-content.mjs +10 -3
  313. package/build-module/query/edit/query-content.mjs.map +2 -2
  314. package/build-module/query/index.mjs +2 -1
  315. package/build-module/query/index.mjs.map +2 -2
  316. package/build-module/quote/block.json +3 -1
  317. package/build-module/quote/transforms.mjs +2 -4
  318. package/build-module/quote/transforms.mjs.map +2 -2
  319. package/build-module/read-more/edit.mjs +3 -1
  320. package/build-module/read-more/edit.mjs.map +2 -2
  321. package/build-module/rss/edit.mjs +0 -1
  322. package/build-module/rss/edit.mjs.map +2 -2
  323. package/build-module/site-tagline/edit.mjs +3 -1
  324. package/build-module/site-tagline/edit.mjs.map +2 -2
  325. package/build-module/site-title/edit.mjs +3 -1
  326. package/build-module/site-title/edit.mjs.map +2 -2
  327. package/build-module/social-links/edit.mjs +11 -4
  328. package/build-module/social-links/edit.mjs.map +2 -2
  329. package/build-module/tab-list/block.json +4 -3
  330. package/build-module/tab-list/edit.mjs +74 -13
  331. package/build-module/tab-list/edit.mjs.map +2 -2
  332. package/build-module/tab-list/tab-movers.mjs +59 -0
  333. package/build-module/tab-list/tab-movers.mjs.map +7 -0
  334. package/build-module/tab-panel/block.json +1 -6
  335. package/build-module/tab-panel/edit.mjs +17 -25
  336. package/build-module/tab-panel/edit.mjs.map +2 -2
  337. package/build-module/tab-panels/block.json +0 -1
  338. package/build-module/table/edit.mjs +1 -1
  339. package/build-module/table/edit.mjs.map +2 -2
  340. package/build-module/tabs/block.json +0 -5
  341. package/build-module/tabs/edit.mjs +5 -45
  342. package/build-module/tabs/edit.mjs.map +2 -2
  343. package/build-module/tabs/use-tab-actions.mjs +23 -1
  344. package/build-module/tabs/use-tab-actions.mjs.map +2 -2
  345. package/build-module/tabs/use-tab-list-items-sync.mjs +19 -1
  346. package/build-module/tabs/use-tab-list-items-sync.mjs.map +2 -2
  347. package/build-module/term-name/block.json +1 -3
  348. package/build-module/term-name/deprecated.mjs +74 -0
  349. package/build-module/term-name/deprecated.mjs.map +7 -0
  350. package/build-module/term-name/edit.mjs +11 -28
  351. package/build-module/term-name/edit.mjs.map +2 -2
  352. package/build-module/term-name/index.mjs +3 -1
  353. package/build-module/term-name/index.mjs.map +2 -2
  354. package/build-module/utils/caption.mjs +2 -2
  355. package/build-module/utils/caption.mjs.map +2 -2
  356. package/build-module/utils/waveform-player.mjs +144 -23
  357. package/build-module/utils/waveform-player.mjs.map +2 -2
  358. package/build-module/utils/waveform-utils.mjs +310 -16
  359. package/build-module/utils/waveform-utils.mjs.map +2 -2
  360. package/build-module/verse/edit.mjs +3 -1
  361. package/build-module/verse/edit.mjs.map +2 -2
  362. package/build-module/video/edit.mjs +2 -11
  363. package/build-module/video/edit.mjs.map +2 -2
  364. package/build-module/video/tracks-editor.mjs +0 -1
  365. package/build-module/video/tracks-editor.mjs.map +2 -2
  366. package/build-style/cover/editor-rtl.css +3 -0
  367. package/build-style/cover/editor.css +3 -0
  368. package/build-style/editor-rtl.css +61 -59
  369. package/build-style/editor.css +61 -59
  370. package/build-style/icon/editor-rtl.css +80 -10
  371. package/build-style/icon/editor.css +80 -10
  372. package/build-style/image/editor-rtl.css +3 -32
  373. package/build-style/image/editor.css +3 -32
  374. package/build-style/more/editor-rtl.css +2 -2
  375. package/build-style/more/editor.css +2 -2
  376. package/build-style/navigation/editor-rtl.css +3 -4
  377. package/build-style/navigation/editor.css +3 -4
  378. package/build-style/navigation-link/editor-rtl.css +1 -1
  379. package/build-style/navigation-link/editor.css +1 -1
  380. package/build-style/nextpage/editor-rtl.css +2 -2
  381. package/build-style/nextpage/editor.css +2 -2
  382. package/build-style/playlist/editor-rtl.css +4 -3
  383. package/build-style/playlist/editor.css +4 -3
  384. package/build-style/playlist/style-rtl.css +81 -5
  385. package/build-style/playlist/style.css +81 -5
  386. package/build-style/playlist-track/style-rtl.css +10 -0
  387. package/build-style/playlist-track/style.css +10 -0
  388. package/build-style/pullquote/editor-rtl.css +4 -0
  389. package/build-style/pullquote/editor.css +4 -0
  390. package/build-style/style-rtl.css +91 -5
  391. package/build-style/style.css +91 -5
  392. package/build-style/tab-list/editor-rtl.css +101 -0
  393. package/build-style/tab-list/editor.css +101 -0
  394. package/build-style/video/editor-rtl.css +1 -1
  395. package/build-style/video/editor.css +1 -1
  396. package/build-types/table-of-contents/list.d.ts +1 -1
  397. package/build-types/table-of-contents/list.d.ts.map +1 -1
  398. package/package.json +47 -45
  399. package/src/accordion/README.md +1 -0
  400. package/src/accordion/block.json +1 -0
  401. package/src/accordion-panel/block.json +1 -0
  402. package/src/breadcrumbs/index.php +3 -1
  403. package/src/button/edit.js +21 -15
  404. package/src/button/index.php +1 -1
  405. package/src/code/edit.js +7 -2
  406. package/src/cover/README.md +60 -0
  407. package/src/cover/block.json +12 -0
  408. package/src/cover/edit/block-controls.js +26 -11
  409. package/src/cover/edit/embed-video-url-input.js +5 -4
  410. package/src/cover/edit/index.js +109 -46
  411. package/src/cover/editor.scss +6 -0
  412. package/src/cover/embed-video-utils.js +38 -13
  413. package/src/cover/index.php +9 -2
  414. package/src/details/transforms.js +2 -7
  415. package/src/editor.scss +1 -0
  416. package/src/embed/edit.js +3 -1
  417. package/src/embed/embed-placeholder.js +9 -8
  418. package/src/file/edit.js +8 -8
  419. package/src/file/transforms.js +28 -60
  420. package/src/form/index.php +6 -4
  421. package/src/gallery/README.md +1 -1
  422. package/src/gallery/block.json +4 -2
  423. package/src/gallery/dynamic-gallery.js +133 -74
  424. package/src/gallery/edit.js +3 -3
  425. package/src/gallery/gap-styles.js +79 -20
  426. package/src/gallery/index.php +103 -43
  427. package/src/gallery/use-dynamic-gallery.js +27 -12
  428. package/src/group/transforms.js +2 -5
  429. package/src/heading/edit.js +1 -1
  430. package/src/html/modal.js +13 -2
  431. package/src/icon/README.md +1 -3
  432. package/src/icon/block.json +5 -3
  433. package/src/icon/components/custom-inserter/icon-grid.js +40 -11
  434. package/src/icon/components/custom-inserter/index.js +98 -25
  435. package/src/icon/edit.js +11 -17
  436. package/src/icon/editor.scss +33 -11
  437. package/src/image/README.md +1 -1
  438. package/src/image/block.json +1 -1
  439. package/src/image/edit.js +1 -57
  440. package/src/image/editor.scss +6 -44
  441. package/src/image/image.js +56 -27
  442. package/src/image/test/use-open-image-media-editor-modal.js +37 -1
  443. package/src/image/transforms.js +128 -0
  444. package/src/image/use-open-image-media-editor-modal.js +8 -1
  445. package/src/index.js +19 -7
  446. package/src/latest-posts/edit.js +5 -8
  447. package/src/latest-posts/index.php +49 -18
  448. package/src/list-item/edit.js +1 -1
  449. package/src/list-item/hooks/use-enter.js +15 -22
  450. package/src/list-item/hooks/use-indent-list-item.js +10 -1
  451. package/src/list-item/hooks/use-space.js +4 -6
  452. package/src/math/edit.js +42 -59
  453. package/src/media-text/edit.js +1 -0
  454. package/src/media-text/editor.scss +1 -0
  455. package/src/media-text/index.php +11 -2
  456. package/src/more/edit.js +7 -4
  457. package/src/more/editor.scss +1 -1
  458. package/src/navigation/edit/index.js +52 -36
  459. package/src/navigation/edit/test/layout-custom-properties.js +138 -0
  460. package/src/navigation/edit/use-layout-custom-properties.js +84 -0
  461. package/src/navigation/editor.scss +1 -2
  462. package/src/navigation/index.php +123 -12
  463. package/src/navigation/test/view.js +51 -0
  464. package/src/navigation/view.js +15 -14
  465. package/src/navigation-link/edit.js +11 -7
  466. package/src/navigation-link/editor.scss +1 -1
  467. package/src/navigation-link/index.php +70 -3
  468. package/src/navigation-link/link-ui/index.js +2 -1
  469. package/src/navigation-link/test/__snapshots__/hooks.js.snap +1 -1
  470. package/src/navigation-submenu/index.php +6 -3
  471. package/src/nextpage/editor.scss +1 -1
  472. package/src/page-list/index.php +4 -3
  473. package/src/paragraph/edit.js +9 -2
  474. package/src/paragraph/index.js +4 -1
  475. package/src/paragraph/use-enter.js +4 -11
  476. package/src/pattern/index.php +5 -5
  477. package/src/playlist/README.md +17 -18
  478. package/src/playlist/block.json +29 -10
  479. package/src/playlist/context.js +1 -0
  480. package/src/playlist/edit.js +395 -59
  481. package/src/playlist/editor.scss +4 -5
  482. package/src/playlist/index.js +1 -1
  483. package/src/playlist/index.php +71 -22
  484. package/src/playlist/style.scss +54 -1
  485. package/src/playlist/test/edit-component.js +139 -0
  486. package/src/playlist/test/edit.js +43 -2
  487. package/src/playlist/utils.js +49 -10
  488. package/src/playlist/view.js +97 -16
  489. package/src/playlist-track/README.md +3 -3
  490. package/src/playlist-track/block.json +4 -2
  491. package/src/playlist-track/edit.js +116 -75
  492. package/src/playlist-track/index.php +26 -11
  493. package/src/playlist-track/style.scss +10 -0
  494. package/src/playlist-track/test/edit.js +253 -0
  495. package/src/post-content/README.md +1 -0
  496. package/src/post-content/block.json +1 -0
  497. package/src/post-content/edit.js +45 -16
  498. package/src/post-excerpt/index.php +4 -1
  499. package/src/post-featured-image/edit.js +3 -2
  500. package/src/post-featured-image/index.php +4 -1
  501. package/src/post-template/README.md +1 -0
  502. package/src/post-template/block.json +2 -1
  503. package/src/post-template/edit.js +9 -0
  504. package/src/post-terms/edit.js +7 -4
  505. package/src/post-title/edit.js +5 -3
  506. package/src/preformatted/edit.js +7 -2
  507. package/src/pullquote/README.md +1 -0
  508. package/src/pullquote/block.json +3 -1
  509. package/src/pullquote/edit.js +9 -4
  510. package/src/pullquote/editor.scss +6 -0
  511. package/src/query/README.md +2 -1
  512. package/src/query/block.json +3 -2
  513. package/src/query/edit/inspector-controls/index.js +47 -4
  514. package/src/query/edit/inspector-controls/offset-controls.js +2 -3
  515. package/src/query/edit/inspector-controls/pages-control.js +0 -1
  516. package/src/query/edit/query-content.js +19 -3
  517. package/src/query/index.js +1 -0
  518. package/src/quote/README.md +1 -0
  519. package/src/quote/block.json +3 -1
  520. package/src/quote/transforms.js +2 -4
  521. package/src/read-more/edit.js +7 -2
  522. package/src/rss/edit.js +0 -1
  523. package/src/rss/index.php +10 -4
  524. package/src/site-tagline/edit.js +7 -2
  525. package/src/site-title/edit.js +7 -2
  526. package/src/social-link/index.php +19 -9
  527. package/src/social-links/edit.js +21 -12
  528. package/src/tab-list/README.md +4 -5
  529. package/src/tab-list/block.json +4 -3
  530. package/src/tab-list/edit.js +92 -28
  531. package/src/tab-list/editor.scss +9 -0
  532. package/src/tab-list/index.php +9 -4
  533. package/src/tab-list/tab-movers.js +72 -0
  534. package/src/tab-panel/README.md +4 -6
  535. package/src/tab-panel/block.json +1 -6
  536. package/src/tab-panel/edit.js +20 -33
  537. package/src/tab-panels/README.md +5 -3
  538. package/src/tab-panels/block.json +0 -1
  539. package/src/table/edit.js +1 -1
  540. package/src/table-of-contents/index.php +386 -1
  541. package/src/tabs/README.md +18 -9
  542. package/src/tabs/block.json +0 -5
  543. package/src/tabs/edit.js +7 -64
  544. package/src/tabs/use-tab-actions.js +32 -3
  545. package/src/tabs/use-tab-list-items-sync.js +24 -4
  546. package/src/tag-cloud/index.php +3 -2
  547. package/src/template-part/index.php +3 -17
  548. package/src/term-name/README.md +1 -1
  549. package/src/term-name/block.json +1 -3
  550. package/src/term-name/deprecated.js +74 -0
  551. package/src/term-name/edit.js +2 -18
  552. package/src/term-name/index.js +2 -0
  553. package/src/utils/caption.js +7 -4
  554. package/src/utils/media-control.scss +1 -5
  555. package/src/utils/test/waveform-player.js +297 -34
  556. package/src/utils/test/waveform-utils.js +473 -5
  557. package/src/utils/waveform-player.js +189 -59
  558. package/src/utils/waveform-utils.js +443 -40
  559. package/src/verse/edit.js +7 -2
  560. package/src/video/edit.js +0 -8
  561. package/src/video/editor.scss +1 -1
  562. package/src/video/index.php +2 -2
  563. package/src/video/tracks-editor.js +0 -1
  564. package/build/image/animated-gif-convert-control.cjs +0 -105
  565. package/build/image/animated-gif-convert-control.cjs.map +0 -7
  566. package/build/utils/gif-conversion-attributes.cjs +0 -40
  567. package/build/utils/gif-conversion-attributes.cjs.map +0 -7
  568. package/build/video/gif-restore-control.cjs +0 -73
  569. package/build/video/gif-restore-control.cjs.map +0 -7
  570. package/build-module/image/animated-gif-convert-control.mjs +0 -87
  571. package/build-module/image/animated-gif-convert-control.mjs.map +0 -7
  572. package/build-module/utils/gif-conversion-attributes.mjs +0 -15
  573. package/build-module/utils/gif-conversion-attributes.mjs.map +0 -7
  574. package/build-module/video/gif-restore-control.mjs +0 -55
  575. package/build-module/video/gif-restore-control.mjs.map +0 -7
  576. package/src/image/animated-gif-convert-control.js +0 -135
  577. package/src/image/test/animated-gif-convert-control.js +0 -276
  578. package/src/utils/gif-conversion-attributes.js +0 -30
  579. package/src/utils/test/gif-conversion-attributes.js +0 -60
  580. package/src/video/gif-restore-control.js +0 -92
@@ -8,12 +8,13 @@ import {
8
8
  __experimentalVStack as VStack,
9
9
  __experimentalToolsPanel as ToolsPanel,
10
10
  __experimentalToolsPanelItem as ToolsPanelItem,
11
+ ToggleControl,
11
12
  __experimentalToggleGroupControl as ToggleGroupControl,
12
13
  __experimentalToggleGroupControlOption as ToggleGroupControlOption,
13
14
  } from '@wordpress/components';
14
15
  import { useSelect } from '@wordpress/data';
15
16
  import { store as coreStore } from '@wordpress/core-data';
16
- import { __ } from '@wordpress/i18n';
17
+ import { __, _x, sprintf } from '@wordpress/i18n';
17
18
  import { debounce } from '@wordpress/compose';
18
19
  import { useState, useMemo } from '@wordpress/element';
19
20
 
@@ -40,7 +41,8 @@ import {
40
41
  import { useToolsPanelDropdownMenuProps } from '../../../utils/hooks';
41
42
 
42
43
  export default function QueryInspectorControls( props ) {
43
- const { attributes, setQuery, isSingular } = props;
44
+ const { attributes, setQuery, isSingular, shouldExcludeCurrentPost } =
45
+ props;
44
46
  const { query } = attributes;
45
47
  const {
46
48
  order,
@@ -55,6 +57,7 @@ export default function QueryInspectorControls( props ) {
55
57
  taxQuery,
56
58
  parents,
57
59
  format,
60
+ excludeCurrent,
58
61
  } = query;
59
62
  const allowedControls = useAllowedControls( attributes );
60
63
  const showSticky = postType === 'post';
@@ -171,12 +174,22 @@ export default function QueryInspectorControls( props ) {
171
174
  [ allowedControls, postTypeHasFormatSupport ]
172
175
  );
173
176
 
177
+ const showExcludeCurrentControl =
178
+ shouldExcludeCurrentPost &&
179
+ isControlAllowed( allowedControls, 'excludeCurrent' );
180
+ const postTypeSingularName = useSelect(
181
+ ( select ) =>
182
+ select( coreStore ).getPostType( postType )?.labels.singular_name,
183
+ [ postType ]
184
+ );
185
+
174
186
  const showFiltersPanel =
175
187
  showTaxControl ||
176
188
  showAuthorControl ||
177
189
  showSearchControl ||
178
190
  showParentControl ||
179
- showFormatControl;
191
+ showFormatControl ||
192
+ showExcludeCurrentControl;
180
193
  const dropdownMenuProps = useToolsPanelDropdownMenuProps();
181
194
 
182
195
  const showPostCountControl = isControlAllowed(
@@ -354,7 +367,10 @@ export default function QueryInspectorControls( props ) {
354
367
  />
355
368
  </ToolsPanelItem>
356
369
  <ToolsPanelItem
357
- label={ __( 'Offset' ) }
370
+ label={ _x(
371
+ 'Offset',
372
+ 'Number of posts to skip in a query'
373
+ ) }
358
374
  hasValue={ () => offset > 0 }
359
375
  onDeselect={ () => setQuery( { offset: 0 } ) }
360
376
  >
@@ -383,6 +399,7 @@ export default function QueryInspectorControls( props ) {
383
399
  search: '',
384
400
  taxQuery: null,
385
401
  format: [],
402
+ excludeCurrent: null,
386
403
  } );
387
404
  setQuerySearch( '' );
388
405
  } }
@@ -463,6 +480,32 @@ export default function QueryInspectorControls( props ) {
463
480
  />
464
481
  </ToolsPanelItem>
465
482
  ) }
483
+ { showExcludeCurrentControl && (
484
+ <ToolsPanelItem
485
+ label={ __( 'Exclude' ) }
486
+ hasValue={ () => excludeCurrent !== null }
487
+ onDeselect={ () =>
488
+ setQuery( { excludeCurrent: null } )
489
+ }
490
+ >
491
+ <ToggleControl
492
+ label={ __( 'Exclude current' ) }
493
+ help={ sprintf(
494
+ /* translators: %s: the post type singular name */
495
+ __(
496
+ 'Exclude the current %s from the query.'
497
+ ),
498
+ postTypeSingularName
499
+ ) }
500
+ checked={ !! excludeCurrent }
501
+ onChange={ ( value ) => {
502
+ setQuery( {
503
+ excludeCurrent: !! value,
504
+ } );
505
+ } }
506
+ />
507
+ </ToolsPanelItem>
508
+ ) }
466
509
  </ToolsPanel>
467
510
  ) }
468
511
  </>
@@ -2,7 +2,7 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { __experimentalNumberControl as NumberControl } from '@wordpress/components';
5
- import { __ } from '@wordpress/i18n';
5
+ import { _x } from '@wordpress/i18n';
6
6
 
7
7
  const MIN_OFFSET = 0;
8
8
  const MAX_OFFSET = 100;
@@ -10,8 +10,7 @@ const MAX_OFFSET = 100;
10
10
  export const OffsetControl = ( { offset = 0, onChange } ) => {
11
11
  return (
12
12
  <NumberControl
13
- __next40pxDefaultSize
14
- label={ __( 'Offset' ) }
13
+ label={ _x( 'Offset', 'Number of posts to skip in a query' ) }
15
14
  value={ offset }
16
15
  min={ MIN_OFFSET }
17
16
  onChange={ ( newOffset ) => {
@@ -7,7 +7,6 @@ import { __ } from '@wordpress/i18n';
7
7
  export const PagesControl = ( { pages, onChange } ) => {
8
8
  return (
9
9
  <NumberControl
10
- __next40pxDefaultSize
11
10
  label={ __( 'Max pages to show' ) }
12
11
  value={ pages }
13
12
  min={ 0 }
@@ -44,8 +44,9 @@ export default function QueryContent( {
44
44
  tagName: TagName = 'div',
45
45
  query: { inherit } = {},
46
46
  } = attributes;
47
- const { templateSlug } = context;
48
- const { isSingular } = getQueryContextFromTemplate( templateSlug );
47
+ const { templateSlug, postType } = context;
48
+ const { isSingular, templateType } =
49
+ getQueryContextFromTemplate( templateSlug );
49
50
  const { __unstableMarkNextChangeAsNotPersistent } =
50
51
  useDispatch( blockEditorStore );
51
52
  const instanceId = useInstanceId( QueryContent );
@@ -77,6 +78,14 @@ export default function QueryContent( {
77
78
  DEFAULTS_POSTS_PER_PAGE,
78
79
  };
79
80
  }, [] );
81
+
82
+ // Whether the "exclude current" filter applies: we're in a singular template
83
+ // and the post type matches the query.
84
+ const shouldExcludeCurrentPost =
85
+ isSingular &&
86
+ ! inherit &&
87
+ ( query.postType === postType || query.postType === templateType );
88
+
80
89
  // There are some effects running where some initialization logic is
81
90
  // happening and setting some values to some attributes (ex. queryId).
82
91
  // These updates can cause an `undo trap` where undoing will result in
@@ -102,15 +111,21 @@ export default function QueryContent( {
102
111
  } else if ( ! query.perPage && postsPerPage ) {
103
112
  newQuery.perPage = postsPerPage;
104
113
  }
105
-
114
+ // Remove the exclusion when it no longer applies, so the filters stay
115
+ // clean. We never force it on: enabling the exclusion is left to the user.
116
+ if ( ! shouldExcludeCurrentPost && query.excludeCurrent !== null ) {
117
+ newQuery.excludeCurrent = null;
118
+ }
106
119
  if ( !! Object.keys( newQuery ).length ) {
107
120
  __unstableMarkNextChangeAsNotPersistent();
108
121
  updateQuery( newQuery );
109
122
  }
110
123
  }, [
111
124
  query.perPage,
125
+ query.excludeCurrent,
112
126
  inherit,
113
127
  postsPerPage,
128
+ shouldExcludeCurrentPost,
114
129
  __unstableMarkNextChangeAsNotPersistent,
115
130
  updateQuery,
116
131
  ] );
@@ -150,6 +165,7 @@ export default function QueryContent( {
150
165
  setAttributes={ setAttributes }
151
166
  clientId={ clientId }
152
167
  isSingular={ isSingular }
168
+ shouldExcludeCurrentPost={ shouldExcludeCurrentPost }
153
169
  />
154
170
  </InspectorControls>
155
171
  <InspectorControls group="advanced">
@@ -34,6 +34,7 @@ export const settings = {
34
34
  search: '',
35
35
  sticky: 'exclude',
36
36
  inherit: false,
37
+ excludeCurrent: null,
37
38
  },
38
39
  },
39
40
  innerBlocks: [
@@ -29,6 +29,7 @@ _Defined via the [`supports`](https://developer.wordpress.org/block-editor/refer
29
29
  - [`background`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#background):
30
30
  - `backgroundImage`: `true`
31
31
  - `backgroundSize`: `true`
32
+ - `gradient`: `true`
32
33
  - [`dimensions`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#dimensions):
33
34
  - `minHeight`: `true`
34
35
  - [`typography`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#typography):
@@ -33,8 +33,10 @@
33
33
  "background": {
34
34
  "backgroundImage": true,
35
35
  "backgroundSize": true,
36
+ "gradient": true,
36
37
  "__experimentalDefaultControls": {
37
- "backgroundImage": true
38
+ "backgroundImage": true,
39
+ "gradient": true
38
40
  }
39
41
  },
40
42
  "__experimentalBorder": {
@@ -4,7 +4,7 @@
4
4
  import { RichText } from '@wordpress/block-editor';
5
5
  import {
6
6
  createBlock,
7
- __experimentalCloneSanitizedBlock,
7
+ cloneSanitizedBlock,
8
8
  switchToBlockType,
9
9
  } from '@wordpress/blocks';
10
10
 
@@ -96,9 +96,7 @@ const transforms = {
96
96
  createBlock(
97
97
  'core/quote',
98
98
  {},
99
- blocks.map( ( block ) =>
100
- __experimentalCloneSanitizedBlock( block )
101
- )
99
+ blocks.map( ( block ) => cloneSanitizedBlock( block ) )
102
100
  ),
103
101
  },
104
102
  ],
@@ -64,8 +64,13 @@ export default function ReadMore( {
64
64
  onChange={ ( newValue ) =>
65
65
  setAttributes( { content: newValue } )
66
66
  }
67
- __unstableOnSplitAtEnd={ () =>
68
- insertBlocksAfter( createBlock( getDefaultBlockName() ) )
67
+ __unstableOnSplitAtEnd={
68
+ insertBlocksAfter
69
+ ? () =>
70
+ insertBlocksAfter(
71
+ createBlock( getDefaultBlockName() )
72
+ )
73
+ : undefined
69
74
  }
70
75
  withoutInteractiveFormatting
71
76
  { ...blockProps }
package/src/rss/edit.js CHANGED
@@ -96,7 +96,6 @@ export default function RSSEdit( { attributes, setAttributes, name } ) {
96
96
  className="wp-block-rss__placeholder-form"
97
97
  >
98
98
  <InputControl
99
- __next40pxDefaultSize
100
99
  label={ label }
101
100
  type="url"
102
101
  hideLabelFromVision
package/src/rss/index.php CHANGED
@@ -15,11 +15,16 @@
15
15
  * @return string Returns the block content with received rss items.
16
16
  */
17
17
  function render_block_core_rss( $attributes ) {
18
- if ( in_array( untrailingslashit( $attributes['feedURL'] ), array( site_url(), home_url() ), true ) ) {
18
+ $feed_url = $attributes['feedURL'] ?? null;
19
+ if ( ! is_string( $feed_url ) ) {
20
+ return '';
21
+ }
22
+
23
+ if ( in_array( untrailingslashit( $feed_url ), array( site_url(), home_url() ), true ) ) {
19
24
  return '<div class="components-placeholder"><div class="notice notice-error">' . __( 'Adding an RSS feed to this site’s homepage is not supported, as it could lead to a loop that slows down your site. Try using another block, like the <strong>Latest Posts</strong> block, to list posts from the site.' ) . '</div></div>';
20
25
  }
21
26
 
22
- $rss = fetch_feed( $attributes['feedURL'] );
27
+ $rss = fetch_feed( $feed_url );
23
28
 
24
29
  if ( is_wp_error( $rss ) ) {
25
30
  return '<div class="components-placeholder"><div class="notice notice-error"><strong>' . __( 'RSS Error:' ) . '</strong> ' . esc_html( $rss->get_error_message() ) . '</div></div>';
@@ -33,7 +38,8 @@ function render_block_core_rss( $attributes ) {
33
38
  $list_items = '';
34
39
 
35
40
  $open_in_new_tab = ! empty( $attributes['openInNewTab'] );
36
- $rel = ! empty( $attributes['rel'] ) ? trim( $attributes['rel'] ) : '';
41
+ $rel_attr = $attributes['rel'] ?? null;
42
+ $rel = is_string( $rel_attr ) && '' !== $rel_attr ? trim( $rel_attr ) : '';
37
43
 
38
44
  $link_attributes = '';
39
45
 
@@ -97,7 +103,7 @@ function render_block_core_rss( $attributes ) {
97
103
  $excerpt = esc_attr( wp_trim_words( $excerpt, $attributes['excerptLength'], ' [&hellip;]' ) );
98
104
 
99
105
  // Change existing [...] to [&hellip;].
100
- if ( '[...]' === substr( $excerpt, -5 ) ) {
106
+ if ( str_ends_with( $excerpt, '[...]' ) ) {
101
107
  $excerpt = substr( $excerpt, 0, -5 ) . '[&hellip;]';
102
108
  }
103
109
 
@@ -59,8 +59,13 @@ export default function SiteTaglineEdit( props ) {
59
59
  tagName={ TagName }
60
60
  value={ tagline }
61
61
  disableLineBreaks
62
- __unstableOnSplitAtEnd={ () =>
63
- insertBlocksAfter( createBlock( getDefaultBlockName() ) )
62
+ __unstableOnSplitAtEnd={
63
+ insertBlocksAfter
64
+ ? () =>
65
+ insertBlocksAfter(
66
+ createBlock( getDefaultBlockName() )
67
+ )
68
+ : undefined
64
69
  }
65
70
  { ...blockProps }
66
71
  />
@@ -73,8 +73,13 @@ export default function SiteTitleEdit( props ) {
73
73
  onChange={ setTitle }
74
74
  allowedFormats={ [] }
75
75
  disableLineBreaks
76
- __unstableOnSplitAtEnd={ () =>
77
- insertBlocksAfter( createBlock( getDefaultBlockName() ) )
76
+ __unstableOnSplitAtEnd={
77
+ insertBlocksAfter
78
+ ? () =>
79
+ insertBlocksAfter(
80
+ createBlock( getDefaultBlockName() )
81
+ )
82
+ : undefined
78
83
  }
79
84
  />
80
85
  </TagName>
@@ -19,19 +19,26 @@
19
19
  function render_block_core_social_link( $attributes, $content, $block ) {
20
20
  $open_in_new_tab = $block->context['openInNewTab'] ?? false;
21
21
 
22
- $text = ! empty( $attributes['label'] ) ? trim( $attributes['label'] ) : '';
22
+ $label_attr = $attributes['label'] ?? null;
23
+ $text = is_string( $label_attr ) && '' !== $label_attr ? trim( $label_attr ) : '';
23
24
 
24
- $service = $attributes['service'] ?? 'Icon';
25
- $url = $attributes['url'] ?? false;
26
- $text = $text ? $text : block_core_social_link_get_name( $service );
27
- $rel = $attributes['rel'] ?? '';
28
- $show_labels = array_key_exists( 'showLabels', $block->context ) ? $block->context['showLabels'] : false;
25
+ $service_attr = $attributes['service'] ?? null;
26
+ $service = is_string( $service_attr ) ? $service_attr : 'Icon';
27
+ $url = $attributes['url'] ?? false;
28
+ $text = $text ? $text : block_core_social_link_get_name( $service );
29
+ $rel_attr = $attributes['rel'] ?? null;
30
+ $rel = is_string( $rel_attr ) ? $rel_attr : '';
31
+ $show_labels = array_key_exists( 'showLabels', $block->context ) ? $block->context['showLabels'] : false;
29
32
 
30
33
  // Don't render a link if there is no URL set.
31
34
  if ( ! $url ) {
32
35
  return '';
33
36
  }
34
37
 
38
+ if ( ! is_string( $url ) ) {
39
+ return '';
40
+ }
41
+
35
42
  /**
36
43
  * Prepend emails with `mailto:` if not set.
37
44
  * The `is_email` returns false for emails with schema.
@@ -100,7 +107,7 @@ add_action( 'init', 'register_block_core_social_link' );
100
107
  */
101
108
  function block_core_social_link_get_icon( $service ) {
102
109
  $services = block_core_social_link_services();
103
- if ( isset( $services[ $service ] ) && isset( $services[ $service ]['icon'] ) ) {
110
+ if ( is_string( $service ) && isset( $services[ $service ] ) && isset( $services[ $service ]['icon'] ) ) {
104
111
  return $services[ $service ]['icon'];
105
112
  }
106
113
 
@@ -118,7 +125,7 @@ function block_core_social_link_get_icon( $service ) {
118
125
  */
119
126
  function block_core_social_link_get_name( $service ) {
120
127
  $services = block_core_social_link_services();
121
- if ( isset( $services[ $service ] ) && isset( $services[ $service ]['name'] ) ) {
128
+ if ( is_string( $service ) && isset( $services[ $service ] ) && isset( $services[ $service ]['name'] ) ) {
122
129
  return $services[ $service ]['name'];
123
130
  }
124
131
 
@@ -136,6 +143,9 @@ function block_core_social_link_get_name( $service ) {
136
143
  * @return array|string
137
144
  */
138
145
  function block_core_social_link_services( $service = '', $field = '' ) {
146
+ if ( ! is_string( $service ) || ! is_string( $field ) ) {
147
+ return array();
148
+ }
139
149
  $services_data = array(
140
150
  'fivehundredpx' => array(
141
151
  'name' => _x( '500px', 'social link block variation name' ),
@@ -295,7 +305,7 @@ function block_core_social_link_services( $service = '', $field = '' ) {
295
305
  ),
296
306
  'tumblr' => array(
297
307
  'name' => _x( 'Tumblr', 'social link block variation name' ),
298
- 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M17.04 21.28h-3.28c-2.84 0-4.94-1.37-4.94-5.02v-5.67H6.08V7.5c2.93-.73 4.11-3.3 4.3-5.48h3.01v4.93h3.47v3.65H13.4v4.93c0 1.47.73 2.01 1.92 2.01h1.73v3.75z" /></path></svg>',
308
+ 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M17.04 21.28h-3.28c-2.84 0-4.94-1.37-4.94-5.02v-5.67H6.08V7.5c2.93-.73 4.11-3.3 4.3-5.48h3.01v4.93h3.47v3.65H13.4v4.93c0 1.47.73 2.01 1.92 2.01h1.73v3.75z"></path></svg>',
299
309
  ),
300
310
  'twitch' => array(
301
311
  'name' => _x( 'Twitch', 'social link block variation name' ),
@@ -30,6 +30,7 @@ import { useSelect } from '@wordpress/data';
30
30
  /**
31
31
  * Internal dependencies
32
32
  */
33
+ import { unlock } from '../lock-unlock';
33
34
  import { useToolsPanelDropdownMenuProps } from '../utils/hooks';
34
35
 
35
36
  const sizeOptions = [
@@ -60,17 +61,23 @@ export function SocialLinksEdit( props ) {
60
61
  size,
61
62
  } = attributes;
62
63
 
63
- const { hasSocialIcons, hasSelectedChild } = useSelect(
64
- ( select ) => {
65
- const { getBlockCount, hasSelectedInnerBlock } =
66
- select( blockEditorStore );
67
- return {
68
- hasSocialIcons: getBlockCount( clientId ) > 0,
69
- hasSelectedChild: hasSelectedInnerBlock( clientId ),
70
- };
71
- },
72
- [ clientId ]
73
- );
64
+ const { hasSocialIcons, hasSelectedChild, hasSelectedStyleState } =
65
+ useSelect(
66
+ ( select ) => {
67
+ const {
68
+ getBlockCount,
69
+ hasSelectedInnerBlock,
70
+ hasSelectedStyleState: hasSelectedBlockStyleState,
71
+ } = unlock( select( blockEditorStore ) );
72
+ return {
73
+ hasSocialIcons: getBlockCount( clientId ) > 0,
74
+ hasSelectedChild: hasSelectedInnerBlock( clientId ),
75
+ hasSelectedStyleState:
76
+ hasSelectedBlockStyleState( clientId ),
77
+ };
78
+ },
79
+ [ clientId ]
80
+ );
74
81
 
75
82
  const hasAnySelected = isSelected || hasSelectedChild;
76
83
 
@@ -157,6 +164,8 @@ export function SocialLinksEdit( props ) {
157
164
  }
158
165
 
159
166
  const colorGradientSettings = useMultipleOriginColorsAndGradients();
167
+ const showColorControls =
168
+ colorGradientSettings.hasColorsOrGradients && ! hasSelectedStyleState;
160
169
 
161
170
  return (
162
171
  <>
@@ -227,7 +236,7 @@ export function SocialLinksEdit( props ) {
227
236
  </ToolsPanelItem>
228
237
  </ToolsPanel>
229
238
  </InspectorControls>
230
- { colorGradientSettings.hasColorsOrGradients && (
239
+ { showColorControls && (
231
240
  <InspectorControls group="color">
232
241
  { colorSettings.map(
233
242
  ( { onChange, label, value, resetAllFilter } ) => (
@@ -1,8 +1,6 @@
1
1
  # Tab List
2
2
 
3
3
  <!-- START TOKEN(Autogenerated block API docs) -->
4
- <div class="callout callout-warning">This block is <strong>experimental</strong> and may change or be removed without notice.</div>
5
-
6
4
  Display the tab buttons for a tabbed interface.
7
5
 
8
6
  - **Name:** `core/tab-list`
@@ -28,6 +26,7 @@ _Defined via the [`attributes`](https://developer.wordpress.org/block-editor/ref
28
26
  _Defined via the [`supports`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/) property in block.json._
29
27
 
30
28
  - [`html`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#html): `false`
29
+ - [`ariaLabel`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#arialabel): `true`
31
30
  - [`visibility`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#visibility): `false`
32
31
  - [`lock`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#lock): `false`
33
32
  - [`color`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#color):
@@ -36,7 +35,7 @@ _Defined via the [`supports`](https://developer.wordpress.org/block-editor/refer
36
35
  - [`typography`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#typography):
37
36
  - [`fontSize`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#typography-fontsize): `true`
38
37
  - [`layout`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#layout):
39
- - [`default`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#layout-default): `{"type":"flex","flexWrap":"nowrap"}`
38
+ - [`default`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#layout-default): `{"type":"flex","flexWrap":"wrap"}`
40
39
  - [`allowVerticalAlignment`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#layout-allowverticalalignment): `false`
41
40
  - [`allowOrientation`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#layout-alloworientation): `false`
42
41
  - [`allowWrap`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#layout-allowwrap): `false`
@@ -68,8 +67,8 @@ _Defined via the [`selectors`](https://developer.wordpress.org/block-editor/refe
68
67
  This is a [**hybrid block**](https://developer.wordpress.org/block-editor/getting-started/fundamentals/static-dynamic-rendering/). It saves static markup that the server may enhance during rendering.
69
68
 
70
69
  ```html
71
- <!-- wp:tab-list {"tabs":[]} -->
72
- <!-- Content... -->
70
+ <!-- wp:tab-list -->
71
+ <div role="tablist" class="wp-block-tab-list"><button type="button" role="tab">Tab 1</button><button type="button" role="tab">Tab 2</button></div>
73
72
  <!-- /wp:tab-list -->
74
73
  ```
75
74
 
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "$schema": "https://schemas.wp.org/trunk/block.json",
3
- "__experimental": true,
4
3
  "apiVersion": 3,
5
4
  "name": "core/tab-list",
6
5
  "title": "Tab List",
@@ -26,6 +25,7 @@
26
25
  },
27
26
  "supports": {
28
27
  "html": false,
28
+ "ariaLabel": true,
29
29
  "visibility": false,
30
30
  "lock": false,
31
31
  "color": {
@@ -51,7 +51,7 @@
51
51
  "layout": {
52
52
  "default": {
53
53
  "type": "flex",
54
- "flexWrap": "nowrap"
54
+ "flexWrap": "wrap"
55
55
  },
56
56
  "allowVerticalAlignment": false,
57
57
  "allowOrientation": false,
@@ -77,5 +77,6 @@
77
77
  "padding": ".wp-block-tab-list button"
78
78
  }
79
79
  },
80
- "style": "wp-block-tab-list"
80
+ "style": "wp-block-tab-list",
81
+ "editorStyle": "wp-block-tab-list-editor"
81
82
  }