@wordpress/block-library 9.48.1 → 10.0.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 (638) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/build/audio/edit.cjs +8 -1
  3. package/build/audio/edit.cjs.map +2 -2
  4. package/build/breadcrumbs/edit.cjs +1 -2
  5. package/build/breadcrumbs/edit.cjs.map +2 -2
  6. package/build/button/edit.cjs +1 -2
  7. package/build/button/edit.cjs.map +2 -2
  8. package/build/categories/edit.cjs +1 -1
  9. package/build/categories/edit.cjs.map +1 -1
  10. package/build/code/edit.cjs +1 -1
  11. package/build/code/edit.cjs.map +2 -2
  12. package/build/code/index.cjs +1 -1
  13. package/build/code/index.cjs.map +1 -1
  14. package/build/columns/utils.cjs.map +1 -1
  15. package/build/comments/edit/comments-legacy.cjs +1 -1
  16. package/build/comments/edit/comments-legacy.cjs.map +1 -1
  17. package/build/comments/edit/placeholder.cjs +4 -4
  18. package/build/comments/edit/placeholder.cjs.map +1 -1
  19. package/build/comments-pagination-next/edit.cjs +2 -2
  20. package/build/comments-pagination-next/edit.cjs.map +1 -1
  21. package/build/comments-pagination-previous/edit.cjs +2 -2
  22. package/build/comments-pagination-previous/edit.cjs.map +1 -1
  23. package/build/cover/deprecated.cjs +3 -3
  24. package/build/cover/deprecated.cjs.map +2 -2
  25. package/build/cover/edit/block-controls.cjs +13 -0
  26. package/build/cover/edit/block-controls.cjs.map +2 -2
  27. package/build/cover/edit/embed-video-url-input.cjs +0 -1
  28. package/build/cover/edit/embed-video-url-input.cjs.map +2 -2
  29. package/build/cover/edit/index.cjs +61 -2
  30. package/build/cover/edit/index.cjs.map +3 -3
  31. package/build/cover/edit/inspector-controls.cjs +93 -35
  32. package/build/cover/edit/inspector-controls.cjs.map +2 -2
  33. package/build/details/edit.cjs +1 -2
  34. package/build/details/edit.cjs.map +2 -2
  35. package/build/embed/embed-placeholder.cjs +1 -1
  36. package/build/embed/embed-placeholder.cjs.map +2 -2
  37. package/build/file/edit.cjs +3 -11
  38. package/build/file/edit.cjs.map +2 -2
  39. package/build/file/index.cjs +3 -1
  40. package/build/file/index.cjs.map +3 -3
  41. package/build/file/transforms.cjs +11 -32
  42. package/build/file/transforms.cjs.map +2 -2
  43. package/build/{freeform/convert-to-blocks-button.cjs → file/variations.cjs} +16 -18
  44. package/build/file/variations.cjs.map +7 -0
  45. package/build/footnotes/edit.cjs +1 -1
  46. package/build/footnotes/edit.cjs.map +2 -2
  47. package/build/form/edit.cjs +0 -2
  48. package/build/form/edit.cjs.map +2 -2
  49. package/build/form-input/edit.cjs +1 -3
  50. package/build/form-input/edit.cjs.map +2 -2
  51. package/build/freeform/edit.cjs +6 -15
  52. package/build/freeform/edit.cjs.map +3 -3
  53. package/build/freeform/migration-notice.cjs.map +2 -2
  54. package/build/gallery/edit.cjs +2 -2
  55. package/build/gallery/edit.cjs.map +2 -2
  56. package/build/home-link/edit.cjs +1 -2
  57. package/build/home-link/edit.cjs.map +2 -2
  58. package/build/html/index.cjs +1 -1
  59. package/build/html/index.cjs.map +2 -2
  60. package/build/html/modal.cjs +9 -6
  61. package/build/html/modal.cjs.map +2 -2
  62. package/build/icon/block.json +12 -0
  63. package/build/icon/edit.cjs +90 -41
  64. package/build/icon/edit.cjs.map +3 -3
  65. package/build/icon/index.cjs +3 -1
  66. package/build/icon/index.cjs.map +3 -3
  67. package/build/{tab/save.cjs → icon/variations.cjs} +14 -15
  68. package/build/icon/variations.cjs.map +7 -0
  69. package/build/image/block.json +1 -0
  70. package/build/image/edit.cjs +4 -3
  71. package/build/image/edit.cjs.map +2 -2
  72. package/build/image/image.cjs +91 -29
  73. package/build/image/image.cjs.map +2 -2
  74. package/build/image/index.cjs +1 -1
  75. package/build/image/index.cjs.map +2 -2
  76. package/build/image/transforms.cjs +9 -3
  77. package/build/image/transforms.cjs.map +2 -2
  78. package/build/image/use-open-image-media-editor-modal.cjs +5 -25
  79. package/build/image/use-open-image-media-editor-modal.cjs.map +2 -2
  80. package/build/index.cjs +1 -3
  81. package/build/index.cjs.map +2 -2
  82. package/build/latest-posts/edit.cjs +1 -1
  83. package/build/latest-posts/edit.cjs.map +1 -1
  84. package/build/list/ordered-list-settings.cjs +0 -1
  85. package/build/list/ordered-list-settings.cjs.map +2 -2
  86. package/build/math/edit.cjs +1 -1
  87. package/build/math/index.cjs +1 -1
  88. package/build/math/index.cjs.map +1 -1
  89. package/build/media-text/constants.cjs +1 -1
  90. package/build/media-text/constants.cjs.map +2 -2
  91. package/build/media-text/index.cjs +1 -1
  92. package/build/media-text/index.cjs.map +2 -2
  93. package/build/missing/edit.cjs +2 -2
  94. package/build/missing/edit.cjs.map +1 -1
  95. package/build/navigation/edit/index.cjs +19 -13
  96. package/build/navigation/edit/index.cjs.map +2 -2
  97. package/build/navigation/edit/navigation-menu-name-control.cjs +0 -1
  98. package/build/navigation/edit/navigation-menu-name-control.cjs.map +2 -2
  99. package/build/navigation/edit/navigation-menu-selector.cjs +1 -1
  100. package/build/navigation/edit/navigation-menu-selector.cjs.map +2 -2
  101. package/build/navigation/edit/placeholder/index.cjs +1 -1
  102. package/build/navigation/edit/placeholder/index.cjs.map +2 -2
  103. package/build/navigation-link/block.json +1 -1
  104. package/build/navigation-link/edit.cjs +1 -1
  105. package/build/navigation-link/edit.cjs.map +2 -2
  106. package/build/navigation-link/link-ui/page-creator.cjs +0 -1
  107. package/build/navigation-link/link-ui/page-creator.cjs.map +2 -2
  108. package/build/navigation-link/shared/controls.cjs +0 -2
  109. package/build/navigation-link/shared/controls.cjs.map +2 -2
  110. package/build/navigation-submenu/block.json +7 -0
  111. package/build/navigation-submenu/edit.cjs +1 -1
  112. package/build/navigation-submenu/edit.cjs.map +2 -2
  113. package/build/page-list/block.json +2 -5
  114. package/build/page-list/edit.cjs +1 -11
  115. package/build/page-list/edit.cjs.map +2 -2
  116. package/build/playlist-track/edit.cjs +0 -3
  117. package/build/playlist-track/edit.cjs.map +2 -2
  118. package/build/post-author/edit.cjs +1 -1
  119. package/build/post-author/edit.cjs.map +2 -2
  120. package/build/post-author/utils.cjs +1 -1
  121. package/build/post-author/utils.cjs.map +2 -2
  122. package/build/post-comment/edit.cjs +0 -1
  123. package/build/post-comment/edit.cjs.map +2 -2
  124. package/build/post-date/edit.cjs +2 -2
  125. package/build/post-date/edit.cjs.map +2 -2
  126. package/build/post-excerpt/edit.cjs +2 -2
  127. package/build/post-excerpt/edit.cjs.map +2 -2
  128. package/build/post-featured-image/block.json +1 -0
  129. package/build/post-featured-image/dimension-controls.cjs +90 -178
  130. package/build/post-featured-image/dimension-controls.cjs.map +3 -3
  131. package/build/post-featured-image/edit.cjs +47 -18
  132. package/build/post-featured-image/edit.cjs.map +2 -2
  133. package/build/post-navigation-link/edit.cjs +2 -2
  134. package/build/post-navigation-link/edit.cjs.map +2 -2
  135. package/build/post-terms/edit.cjs +0 -1
  136. package/build/post-terms/edit.cjs.map +2 -2
  137. package/build/post-time-to-read/edit.cjs +1 -1
  138. package/build/post-time-to-read/edit.cjs.map +1 -1
  139. package/build/post-title/edit.cjs +0 -1
  140. package/build/post-title/edit.cjs.map +2 -2
  141. package/build/preformatted/edit.cjs +1 -1
  142. package/build/preformatted/edit.cjs.map +2 -2
  143. package/build/pullquote/block.json +1 -3
  144. package/build/pullquote/deprecated.cjs +114 -9
  145. package/build/pullquote/deprecated.cjs.map +3 -3
  146. package/build/pullquote/edit.cjs +43 -61
  147. package/build/pullquote/edit.cjs.map +3 -3
  148. package/build/pullquote/save.cjs +5 -26
  149. package/build/pullquote/save.cjs.map +3 -3
  150. package/build/query/edit/enhanced-pagination-modal.cjs +10 -1
  151. package/build/query/edit/enhanced-pagination-modal.cjs.map +3 -3
  152. package/build/query/edit/inspector-controls/enhanced-pagination-control.cjs +1 -1
  153. package/build/query/edit/inspector-controls/enhanced-pagination-control.cjs.map +1 -1
  154. package/build/query/edit/inspector-controls/index.cjs +0 -1
  155. package/build/query/edit/inspector-controls/index.cjs.map +2 -2
  156. package/build/query/edit/inspector-controls/order-control.cjs +2 -2
  157. package/build/query/edit/inspector-controls/order-control.cjs.map +2 -2
  158. package/build/query/utils.cjs +2 -2
  159. package/build/query/utils.cjs.map +2 -2
  160. package/build/query-pagination-next/edit.cjs +2 -2
  161. package/build/query-pagination-next/edit.cjs.map +1 -1
  162. package/build/query-pagination-previous/edit.cjs +2 -2
  163. package/build/query-pagination-previous/edit.cjs.map +1 -1
  164. package/build/query-title/edit.cjs +1 -1
  165. package/build/query-title/edit.cjs.map +2 -2
  166. package/build/query-total/edit.cjs +1 -1
  167. package/build/query-total/edit.cjs.map +2 -2
  168. package/build/quote/index.cjs +1 -1
  169. package/build/quote/index.cjs.map +2 -2
  170. package/build/read-more/edit.cjs +1 -1
  171. package/build/read-more/edit.cjs.map +2 -2
  172. package/build/rss/edit.cjs +1 -2
  173. package/build/rss/edit.cjs.map +2 -2
  174. package/build/search/block.json +4 -0
  175. package/build/search/edit.cjs +244 -206
  176. package/build/search/edit.cjs.map +2 -2
  177. package/build/shortcode/edit.cjs +1 -1
  178. package/build/shortcode/edit.cjs.map +2 -2
  179. package/build/site-logo/edit.cjs +2 -1
  180. package/build/site-logo/edit.cjs.map +2 -2
  181. package/build/site-tagline/edit.cjs +1 -1
  182. package/build/site-tagline/edit.cjs.map +2 -2
  183. package/build/site-title/edit.cjs +1 -1
  184. package/build/site-title/edit.cjs.map +2 -2
  185. package/build/social-link/edit.cjs +0 -3
  186. package/build/social-link/edit.cjs.map +2 -2
  187. package/build/tab-list/block.json +33 -20
  188. package/build/tab-list/edit.cjs +122 -12
  189. package/build/tab-list/edit.cjs.map +3 -3
  190. package/build/tab-list/init.cjs +28 -0
  191. package/build/tab-list/init.cjs.map +7 -0
  192. package/build/tab-list/save.cjs +33 -3
  193. package/build/tab-list/save.cjs.map +3 -3
  194. package/build/tab-panel/add-tab-toolbar-control.cjs +19 -8
  195. package/build/tab-panel/add-tab-toolbar-control.cjs.map +2 -2
  196. package/build/tab-panel/block.json +2 -6
  197. package/build/tab-panel/edit.cjs +0 -9
  198. package/build/tab-panel/edit.cjs.map +2 -2
  199. package/build/tab-panel/remove-tab-toolbar-control.cjs +9 -14
  200. package/build/tab-panel/remove-tab-toolbar-control.cjs.map +2 -2
  201. package/build/tab-panel/save.cjs +2 -1
  202. package/build/tab-panel/save.cjs.map +2 -2
  203. package/build/tab-panels/block.json +2 -28
  204. package/build/tab-panels/init.cjs +28 -0
  205. package/build/tab-panels/init.cjs.map +7 -0
  206. package/build/table/edit.cjs +0 -2
  207. package/build/table/edit.cjs.map +2 -2
  208. package/build/table/index.cjs +1 -1
  209. package/build/table/index.cjs.map +2 -2
  210. package/build/tabs/block.json +3 -17
  211. package/build/tabs/edit.cjs +7 -21
  212. package/build/tabs/edit.cjs.map +3 -3
  213. package/build/tabs/index.cjs +6 -10
  214. package/build/tabs/index.cjs.map +2 -2
  215. package/build/tabs/use-tab-list-items-sync.cjs +53 -0
  216. package/build/tabs/use-tab-list-items-sync.cjs.map +7 -0
  217. package/build/tabs/view.cjs +22 -104
  218. package/build/tabs/view.cjs.map +2 -2
  219. package/build/template-part/edit/advanced-controls.cjs +0 -1
  220. package/build/template-part/edit/advanced-controls.cjs.map +2 -2
  221. package/build/template-part/edit/title-modal.cjs +1 -2
  222. package/build/template-part/edit/title-modal.cjs.map +2 -2
  223. package/build/terms-query/edit/inspector-controls/order-control.cjs +2 -2
  224. package/build/terms-query/edit/inspector-controls/order-control.cjs.map +2 -2
  225. package/build/utils/style-state.cjs +164 -0
  226. package/build/utils/style-state.cjs.map +7 -0
  227. package/build/utils/waveform-player.cjs +1 -1
  228. package/build/verse/edit.cjs +1 -1
  229. package/build/verse/edit.cjs.map +2 -2
  230. package/build/video/edit.cjs +3 -2
  231. package/build/video/edit.cjs.map +2 -2
  232. package/build/video/tracks-editor.cjs +0 -2
  233. package/build/video/tracks-editor.cjs.map +2 -2
  234. package/build-module/audio/edit.mjs +8 -2
  235. package/build-module/audio/edit.mjs.map +2 -2
  236. package/build-module/breadcrumbs/edit.mjs +1 -2
  237. package/build-module/breadcrumbs/edit.mjs.map +2 -2
  238. package/build-module/button/edit.mjs +1 -2
  239. package/build-module/button/edit.mjs.map +2 -2
  240. package/build-module/categories/edit.mjs +1 -1
  241. package/build-module/categories/edit.mjs.map +1 -1
  242. package/build-module/code/edit.mjs +1 -1
  243. package/build-module/code/edit.mjs.map +2 -2
  244. package/build-module/code/index.mjs +1 -1
  245. package/build-module/code/index.mjs.map +1 -1
  246. package/build-module/columns/utils.mjs.map +1 -1
  247. package/build-module/comments/edit/comments-legacy.mjs +1 -1
  248. package/build-module/comments/edit/comments-legacy.mjs.map +1 -1
  249. package/build-module/comments/edit/placeholder.mjs +4 -4
  250. package/build-module/comments/edit/placeholder.mjs.map +1 -1
  251. package/build-module/comments-pagination-next/edit.mjs +2 -2
  252. package/build-module/comments-pagination-next/edit.mjs.map +1 -1
  253. package/build-module/comments-pagination-previous/edit.mjs +2 -2
  254. package/build-module/comments-pagination-previous/edit.mjs.map +1 -1
  255. package/build-module/cover/deprecated.mjs +3 -3
  256. package/build-module/cover/deprecated.mjs.map +2 -2
  257. package/build-module/cover/edit/block-controls.mjs +15 -2
  258. package/build-module/cover/edit/block-controls.mjs.map +2 -2
  259. package/build-module/cover/edit/embed-video-url-input.mjs +0 -1
  260. package/build-module/cover/edit/embed-video-url-input.mjs.map +2 -2
  261. package/build-module/cover/edit/index.mjs +64 -3
  262. package/build-module/cover/edit/index.mjs.map +2 -2
  263. package/build-module/cover/edit/inspector-controls.mjs +98 -35
  264. package/build-module/cover/edit/inspector-controls.mjs.map +2 -2
  265. package/build-module/details/edit.mjs +1 -2
  266. package/build-module/details/edit.mjs.map +2 -2
  267. package/build-module/embed/embed-placeholder.mjs +1 -1
  268. package/build-module/embed/embed-placeholder.mjs.map +2 -2
  269. package/build-module/file/edit.mjs +5 -13
  270. package/build-module/file/edit.mjs.map +2 -2
  271. package/build-module/file/index.mjs +3 -1
  272. package/build-module/file/index.mjs.map +2 -2
  273. package/build-module/file/transforms.mjs +11 -32
  274. package/build-module/file/transforms.mjs.map +2 -2
  275. package/build-module/file/variations.mjs +17 -0
  276. package/build-module/file/variations.mjs.map +7 -0
  277. package/build-module/footnotes/edit.mjs +1 -1
  278. package/build-module/footnotes/edit.mjs.map +2 -2
  279. package/build-module/form/edit.mjs +0 -2
  280. package/build-module/form/edit.mjs.map +2 -2
  281. package/build-module/form-input/edit.mjs +1 -3
  282. package/build-module/form-input/edit.mjs.map +2 -2
  283. package/build-module/freeform/edit.mjs +6 -15
  284. package/build-module/freeform/edit.mjs.map +2 -2
  285. package/build-module/freeform/migration-notice.mjs.map +2 -2
  286. package/build-module/gallery/edit.mjs +2 -2
  287. package/build-module/gallery/edit.mjs.map +2 -2
  288. package/build-module/home-link/edit.mjs +1 -2
  289. package/build-module/home-link/edit.mjs.map +2 -2
  290. package/build-module/html/index.mjs +1 -1
  291. package/build-module/html/index.mjs.map +2 -2
  292. package/build-module/html/modal.mjs +9 -6
  293. package/build-module/html/modal.mjs.map +2 -2
  294. package/build-module/icon/block.json +12 -0
  295. package/build-module/icon/edit.mjs +94 -42
  296. package/build-module/icon/edit.mjs.map +2 -2
  297. package/build-module/icon/index.mjs +3 -1
  298. package/build-module/icon/index.mjs.map +2 -2
  299. package/build-module/icon/variations.mjs +13 -0
  300. package/build-module/icon/variations.mjs.map +7 -0
  301. package/build-module/image/block.json +1 -0
  302. package/build-module/image/edit.mjs +4 -3
  303. package/build-module/image/edit.mjs.map +2 -2
  304. package/build-module/image/image.mjs +96 -29
  305. package/build-module/image/image.mjs.map +2 -2
  306. package/build-module/image/index.mjs +1 -1
  307. package/build-module/image/index.mjs.map +2 -2
  308. package/build-module/image/transforms.mjs +9 -3
  309. package/build-module/image/transforms.mjs.map +2 -2
  310. package/build-module/image/use-open-image-media-editor-modal.mjs +5 -25
  311. package/build-module/image/use-open-image-media-editor-modal.mjs.map +2 -2
  312. package/build-module/index.mjs +1 -3
  313. package/build-module/index.mjs.map +2 -2
  314. package/build-module/latest-posts/edit.mjs +1 -1
  315. package/build-module/latest-posts/edit.mjs.map +1 -1
  316. package/build-module/list/ordered-list-settings.mjs +0 -1
  317. package/build-module/list/ordered-list-settings.mjs.map +2 -2
  318. package/build-module/math/edit.mjs +1 -1
  319. package/build-module/math/index.mjs +1 -1
  320. package/build-module/math/index.mjs.map +1 -1
  321. package/build-module/media-text/constants.mjs +1 -1
  322. package/build-module/media-text/constants.mjs.map +2 -2
  323. package/build-module/media-text/index.mjs +1 -1
  324. package/build-module/media-text/index.mjs.map +2 -2
  325. package/build-module/missing/edit.mjs +2 -2
  326. package/build-module/missing/edit.mjs.map +1 -1
  327. package/build-module/navigation/edit/index.mjs +19 -13
  328. package/build-module/navigation/edit/index.mjs.map +2 -2
  329. package/build-module/navigation/edit/navigation-menu-name-control.mjs +0 -1
  330. package/build-module/navigation/edit/navigation-menu-name-control.mjs.map +2 -2
  331. package/build-module/navigation/edit/navigation-menu-selector.mjs +1 -1
  332. package/build-module/navigation/edit/navigation-menu-selector.mjs.map +2 -2
  333. package/build-module/navigation/edit/placeholder/index.mjs +1 -1
  334. package/build-module/navigation/edit/placeholder/index.mjs.map +2 -2
  335. package/build-module/navigation-link/block.json +1 -1
  336. package/build-module/navigation-link/edit.mjs +1 -1
  337. package/build-module/navigation-link/edit.mjs.map +2 -2
  338. package/build-module/navigation-link/link-ui/page-creator.mjs +0 -1
  339. package/build-module/navigation-link/link-ui/page-creator.mjs.map +2 -2
  340. package/build-module/navigation-link/shared/controls.mjs +0 -2
  341. package/build-module/navigation-link/shared/controls.mjs.map +2 -2
  342. package/build-module/navigation-submenu/block.json +7 -0
  343. package/build-module/navigation-submenu/edit.mjs +1 -1
  344. package/build-module/navigation-submenu/edit.mjs.map +2 -2
  345. package/build-module/page-list/block.json +2 -5
  346. package/build-module/page-list/edit.mjs +1 -11
  347. package/build-module/page-list/edit.mjs.map +2 -2
  348. package/build-module/playlist-track/edit.mjs +0 -3
  349. package/build-module/playlist-track/edit.mjs.map +2 -2
  350. package/build-module/post-author/edit.mjs +1 -1
  351. package/build-module/post-author/edit.mjs.map +2 -2
  352. package/build-module/post-author/utils.mjs +1 -1
  353. package/build-module/post-author/utils.mjs.map +2 -2
  354. package/build-module/post-comment/edit.mjs +0 -1
  355. package/build-module/post-comment/edit.mjs.map +2 -2
  356. package/build-module/post-date/edit.mjs +2 -2
  357. package/build-module/post-date/edit.mjs.map +2 -2
  358. package/build-module/post-excerpt/edit.mjs +2 -2
  359. package/build-module/post-excerpt/edit.mjs.map +2 -2
  360. package/build-module/post-featured-image/block.json +1 -0
  361. package/build-module/post-featured-image/dimension-controls.mjs +99 -187
  362. package/build-module/post-featured-image/dimension-controls.mjs.map +2 -2
  363. package/build-module/post-featured-image/edit.mjs +47 -18
  364. package/build-module/post-featured-image/edit.mjs.map +2 -2
  365. package/build-module/post-navigation-link/edit.mjs +2 -2
  366. package/build-module/post-navigation-link/edit.mjs.map +2 -2
  367. package/build-module/post-terms/edit.mjs +0 -1
  368. package/build-module/post-terms/edit.mjs.map +2 -2
  369. package/build-module/post-time-to-read/edit.mjs +1 -1
  370. package/build-module/post-time-to-read/edit.mjs.map +1 -1
  371. package/build-module/post-title/edit.mjs +0 -1
  372. package/build-module/post-title/edit.mjs.map +2 -2
  373. package/build-module/preformatted/edit.mjs +1 -1
  374. package/build-module/preformatted/edit.mjs.map +2 -2
  375. package/build-module/pullquote/block.json +1 -3
  376. package/build-module/pullquote/deprecated.mjs +114 -9
  377. package/build-module/pullquote/deprecated.mjs.map +2 -2
  378. package/build-module/pullquote/edit.mjs +44 -67
  379. package/build-module/pullquote/edit.mjs.map +2 -2
  380. package/build-module/pullquote/save.mjs +5 -16
  381. package/build-module/pullquote/save.mjs.map +2 -2
  382. package/build-module/query/edit/enhanced-pagination-modal.mjs +10 -1
  383. package/build-module/query/edit/enhanced-pagination-modal.mjs.map +2 -2
  384. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.mjs +1 -1
  385. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.mjs.map +1 -1
  386. package/build-module/query/edit/inspector-controls/index.mjs +0 -1
  387. package/build-module/query/edit/inspector-controls/index.mjs.map +2 -2
  388. package/build-module/query/edit/inspector-controls/order-control.mjs +2 -2
  389. package/build-module/query/edit/inspector-controls/order-control.mjs.map +2 -2
  390. package/build-module/query/utils.mjs +2 -2
  391. package/build-module/query/utils.mjs.map +2 -2
  392. package/build-module/query-pagination-next/edit.mjs +2 -2
  393. package/build-module/query-pagination-next/edit.mjs.map +1 -1
  394. package/build-module/query-pagination-previous/edit.mjs +2 -2
  395. package/build-module/query-pagination-previous/edit.mjs.map +1 -1
  396. package/build-module/query-title/edit.mjs +1 -1
  397. package/build-module/query-title/edit.mjs.map +2 -2
  398. package/build-module/query-total/edit.mjs +1 -1
  399. package/build-module/query-total/edit.mjs.map +2 -2
  400. package/build-module/quote/index.mjs +1 -1
  401. package/build-module/quote/index.mjs.map +2 -2
  402. package/build-module/read-more/edit.mjs +1 -1
  403. package/build-module/read-more/edit.mjs.map +2 -2
  404. package/build-module/rss/edit.mjs +1 -2
  405. package/build-module/rss/edit.mjs.map +2 -2
  406. package/build-module/search/block.json +4 -0
  407. package/build-module/search/edit.mjs +244 -206
  408. package/build-module/search/edit.mjs.map +2 -2
  409. package/build-module/shortcode/edit.mjs +1 -1
  410. package/build-module/shortcode/edit.mjs.map +2 -2
  411. package/build-module/site-logo/edit.mjs +2 -1
  412. package/build-module/site-logo/edit.mjs.map +2 -2
  413. package/build-module/site-tagline/edit.mjs +1 -1
  414. package/build-module/site-tagline/edit.mjs.map +2 -2
  415. package/build-module/site-title/edit.mjs +1 -1
  416. package/build-module/site-title/edit.mjs.map +2 -2
  417. package/build-module/social-link/edit.mjs +0 -3
  418. package/build-module/social-link/edit.mjs.map +2 -2
  419. package/build-module/tab-list/block.json +33 -20
  420. package/build-module/tab-list/edit.mjs +128 -15
  421. package/build-module/tab-list/edit.mjs.map +2 -2
  422. package/build-module/tab-list/init.mjs +7 -0
  423. package/build-module/tab-list/init.mjs.map +7 -0
  424. package/build-module/tab-list/save.mjs +29 -4
  425. package/build-module/tab-list/save.mjs.map +2 -2
  426. package/build-module/tab-panel/add-tab-toolbar-control.mjs +19 -8
  427. package/build-module/tab-panel/add-tab-toolbar-control.mjs.map +2 -2
  428. package/build-module/tab-panel/block.json +2 -6
  429. package/build-module/tab-panel/edit.mjs +1 -10
  430. package/build-module/tab-panel/edit.mjs.map +2 -2
  431. package/build-module/tab-panel/remove-tab-toolbar-control.mjs +9 -14
  432. package/build-module/tab-panel/remove-tab-toolbar-control.mjs.map +2 -2
  433. package/build-module/tab-panel/save.mjs +2 -1
  434. package/build-module/tab-panel/save.mjs.map +2 -2
  435. package/build-module/tab-panels/block.json +2 -28
  436. package/build-module/tab-panels/init.mjs +7 -0
  437. package/build-module/tab-panels/init.mjs.map +7 -0
  438. package/build-module/table/edit.mjs +0 -2
  439. package/build-module/table/edit.mjs.map +2 -2
  440. package/build-module/table/index.mjs +1 -1
  441. package/build-module/table/index.mjs.map +2 -2
  442. package/build-module/tabs/block.json +3 -17
  443. package/build-module/tabs/edit.mjs +7 -21
  444. package/build-module/tabs/edit.mjs.map +2 -2
  445. package/build-module/tabs/index.mjs +6 -10
  446. package/build-module/tabs/index.mjs.map +2 -2
  447. package/build-module/tabs/use-tab-list-items-sync.mjs +32 -0
  448. package/build-module/tabs/use-tab-list-items-sync.mjs.map +7 -0
  449. package/build-module/tabs/view.mjs +22 -104
  450. package/build-module/tabs/view.mjs.map +2 -2
  451. package/build-module/template-part/edit/advanced-controls.mjs +0 -1
  452. package/build-module/template-part/edit/advanced-controls.mjs.map +2 -2
  453. package/build-module/template-part/edit/title-modal.mjs +1 -2
  454. package/build-module/template-part/edit/title-modal.mjs.map +2 -2
  455. package/build-module/terms-query/edit/inspector-controls/order-control.mjs +2 -2
  456. package/build-module/terms-query/edit/inspector-controls/order-control.mjs.map +2 -2
  457. package/build-module/utils/style-state.mjs +132 -0
  458. package/build-module/utils/style-state.mjs.map +7 -0
  459. package/build-module/utils/waveform-player.mjs +1 -1
  460. package/build-module/verse/edit.mjs +1 -1
  461. package/build-module/verse/edit.mjs.map +2 -2
  462. package/build-module/video/edit.mjs +3 -3
  463. package/build-module/video/edit.mjs.map +2 -2
  464. package/build-module/video/tracks-editor.mjs +0 -2
  465. package/build-module/video/tracks-editor.mjs.map +2 -2
  466. package/build-style/editor-rtl.css +0 -19
  467. package/build-style/editor.css +0 -19
  468. package/build-style/icon/style-rtl.css +9 -0
  469. package/build-style/icon/style.css +9 -0
  470. package/build-style/style-rtl.css +11 -24
  471. package/build-style/style.css +11 -24
  472. package/build-style/{tab → tab-list}/style-rtl.css +2 -2
  473. package/build-style/{tab → tab-list}/style.css +2 -2
  474. package/build-style/tab-panel/style-rtl.css +0 -17
  475. package/build-style/tab-panel/style.css +0 -17
  476. package/package.json +48 -45
  477. package/src/audio/edit.js +5 -9
  478. package/src/avatar/index.php +2 -2
  479. package/src/block/index.php +2 -26
  480. package/src/breadcrumbs/edit.js +0 -1
  481. package/src/button/edit.js +0 -1
  482. package/src/comment-author-avatar/index.php +3 -3
  483. package/src/comment-author-name/index.php +1 -1
  484. package/src/comment-date/index.php +1 -1
  485. package/src/cover/edit/block-controls.js +14 -2
  486. package/src/cover/edit/embed-video-url-input.js +0 -1
  487. package/src/cover/edit/index.js +86 -0
  488. package/src/cover/edit/inspector-controls.js +124 -54
  489. package/src/cover/test/edit.js +51 -2
  490. package/src/details/edit.js +0 -1
  491. package/src/editor.scss +0 -2
  492. package/src/file/edit.js +3 -16
  493. package/src/file/index.js +2 -0
  494. package/src/file/transforms.js +12 -31
  495. package/src/file/variations.js +17 -0
  496. package/src/form/edit.js +0 -2
  497. package/src/form-input/edit.js +0 -2
  498. package/src/freeform/edit.js +6 -29
  499. package/src/freeform/migration-notice.js +2 -4
  500. package/src/gallery/edit.js +13 -13
  501. package/src/home-link/edit.js +0 -1
  502. package/src/html/modal.js +3 -0
  503. package/src/icon/README.md +3 -0
  504. package/src/icon/block.json +12 -0
  505. package/src/icon/edit.js +85 -37
  506. package/src/icon/index.js +3 -1
  507. package/src/icon/index.php +23 -0
  508. package/src/icon/style.scss +12 -0
  509. package/src/icon/variations.js +9 -0
  510. package/src/image/README.md +1 -0
  511. package/src/image/block.json +1 -0
  512. package/src/image/edit.js +8 -3
  513. package/src/image/image.js +120 -56
  514. package/src/image/index.php +0 -1
  515. package/src/image/test/use-open-image-media-editor-modal.js +20 -26
  516. package/src/image/transforms.js +34 -8
  517. package/src/image/use-open-image-media-editor-modal.js +24 -42
  518. package/src/index.js +4 -11
  519. package/src/list/ordered-list-settings.js +0 -1
  520. package/src/navigation/edit/index.js +25 -16
  521. package/src/navigation/edit/navigation-menu-name-control.js +0 -1
  522. package/src/navigation/index.php +58 -0
  523. package/src/navigation-link/README.md +1 -1
  524. package/src/navigation-link/block.json +1 -1
  525. package/src/navigation-link/link-ui/page-creator.js +0 -1
  526. package/src/navigation-link/shared/controls.js +0 -2
  527. package/src/navigation-link/test/__snapshots__/hooks.js.snap +5 -0
  528. package/src/navigation-submenu/README.md +5 -0
  529. package/src/navigation-submenu/block.json +7 -0
  530. package/src/page-list/README.md +1 -1
  531. package/src/page-list/block.json +2 -5
  532. package/src/page-list/edit.js +0 -11
  533. package/src/page-list/index.php +1 -1
  534. package/src/playlist-track/edit.js +0 -3
  535. package/src/post-comment/edit.js +0 -1
  536. package/src/post-date/edit.js +2 -2
  537. package/src/post-featured-image/README.md +1 -0
  538. package/src/post-featured-image/block.json +1 -0
  539. package/src/post-featured-image/dimension-controls.js +105 -184
  540. package/src/post-featured-image/edit.js +53 -22
  541. package/src/post-featured-image/index.php +24 -22
  542. package/src/post-terms/edit.js +0 -1
  543. package/src/post-title/edit.js +0 -1
  544. package/src/pullquote/README.md +1 -1
  545. package/src/pullquote/block.json +1 -3
  546. package/src/pullquote/deprecated.js +121 -9
  547. package/src/pullquote/edit.js +7 -31
  548. package/src/pullquote/save.js +2 -13
  549. package/src/query/edit/enhanced-pagination-modal.js +11 -1
  550. package/src/query/edit/inspector-controls/index.js +0 -1
  551. package/src/rss/edit.js +0 -1
  552. package/src/search/README.md +1 -0
  553. package/src/search/block.json +4 -0
  554. package/src/search/edit.js +106 -55
  555. package/src/search/index.php +25 -1
  556. package/src/site-logo/edit.js +3 -1
  557. package/src/social-link/edit.js +0 -3
  558. package/src/style.scss +1 -2
  559. package/src/tab-list/README.md +19 -17
  560. package/src/tab-list/block.json +33 -20
  561. package/src/tab-list/edit.js +153 -15
  562. package/src/tab-list/index.php +24 -33
  563. package/src/tab-list/init.js +6 -0
  564. package/src/tab-list/save.js +39 -4
  565. package/src/{tab → tab-list}/style.scss +2 -3
  566. package/src/tab-panel/README.md +0 -3
  567. package/src/tab-panel/add-tab-toolbar-control.js +24 -11
  568. package/src/tab-panel/block.json +2 -6
  569. package/src/tab-panel/edit.js +1 -14
  570. package/src/tab-panel/index.php +2 -25
  571. package/src/tab-panel/remove-tab-toolbar-control.js +10 -14
  572. package/src/tab-panel/save.js +1 -0
  573. package/src/tab-panel/style.scss +0 -17
  574. package/src/tab-panels/README.md +0 -16
  575. package/src/tab-panels/block.json +2 -28
  576. package/src/tab-panels/init.js +6 -0
  577. package/src/table/edit.js +0 -2
  578. package/src/tabs/README.md +1 -7
  579. package/src/tabs/block.json +3 -17
  580. package/src/tabs/edit.js +8 -19
  581. package/src/tabs/index.js +6 -10
  582. package/src/tabs/index.php +12 -32
  583. package/src/tabs/use-tab-list-items-sync.js +49 -0
  584. package/src/tabs/view.js +22 -110
  585. package/src/template-part/edit/advanced-controls.js +0 -1
  586. package/src/template-part/edit/title-modal.js +0 -1
  587. package/src/utils/style-state.js +151 -0
  588. package/src/utils/test/style-state.js +307 -0
  589. package/src/video/edit.js +9 -16
  590. package/src/video/tracks-editor.js +0 -2
  591. package/babel-plugin.cjs +0 -150
  592. package/build/freeform/convert-to-blocks-button.cjs.map +0 -7
  593. package/build/list-item/utils.cjs +0 -57
  594. package/build/list-item/utils.cjs.map +0 -7
  595. package/build/tab/block.json +0 -56
  596. package/build/tab/controls.cjs +0 -46
  597. package/build/tab/controls.cjs.map +0 -7
  598. package/build/tab/edit.cjs +0 -135
  599. package/build/tab/edit.cjs.map +0 -7
  600. package/build/tab/index.cjs +0 -58
  601. package/build/tab/index.cjs.map +0 -7
  602. package/build/tab/save.cjs.map +0 -7
  603. package/build/tabs/use-tab-list-sync.cjs +0 -190
  604. package/build/tabs/use-tab-list-sync.cjs.map +0 -7
  605. package/build-module/freeform/convert-to-blocks-button.mjs +0 -19
  606. package/build-module/freeform/convert-to-blocks-button.mjs.map +0 -7
  607. package/build-module/list-item/utils.mjs +0 -32
  608. package/build-module/list-item/utils.mjs.map +0 -7
  609. package/build-module/tab/block.json +0 -56
  610. package/build-module/tab/controls.mjs +0 -15
  611. package/build-module/tab/controls.mjs.map +0 -7
  612. package/build-module/tab/edit.mjs +0 -108
  613. package/build-module/tab/edit.mjs.map +0 -7
  614. package/build-module/tab/index.mjs +0 -20
  615. package/build-module/tab/index.mjs.map +0 -7
  616. package/build-module/tab/save.mjs +0 -14
  617. package/build-module/tab/save.mjs.map +0 -7
  618. package/build-module/tabs/use-tab-list-sync.mjs +0 -169
  619. package/build-module/tabs/use-tab-list-sync.mjs.map +0 -7
  620. package/build-style/tab/editor-rtl.css +0 -11
  621. package/build-style/tab/editor.css +0 -11
  622. package/build-style/tab-list/editor-rtl.css +0 -6
  623. package/build-style/tab-list/editor.css +0 -6
  624. package/build-style/tab-panels/style-rtl.css +0 -4
  625. package/build-style/tab-panels/style.css +0 -4
  626. package/src/freeform/convert-to-blocks-button.js +0 -18
  627. package/src/list-item/utils.js +0 -34
  628. package/src/tab/README.md +0 -69
  629. package/src/tab/block.json +0 -56
  630. package/src/tab/controls.js +0 -19
  631. package/src/tab/edit.js +0 -141
  632. package/src/tab/editor.scss +0 -14
  633. package/src/tab/index.js +0 -24
  634. package/src/tab/index.php +0 -70
  635. package/src/tab/save.js +0 -13
  636. package/src/tab-list/editor.scss +0 -10
  637. package/src/tab-panels/style.scss +0 -4
  638. package/src/tabs/use-tab-list-sync.js +0 -237
@@ -2,207 +2,128 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { __, _x } from '@wordpress/i18n';
5
+ import { __experimentalUseCustomUnits as useCustomUnits } from '@wordpress/components';
5
6
  import {
6
- SelectControl,
7
- __experimentalUnitControl as UnitControl,
8
- __experimentalToggleGroupControl as ToggleGroupControl,
9
- __experimentalToggleGroupControlOption as ToggleGroupControlOption,
10
- __experimentalUseCustomUnits as useCustomUnits,
11
- __experimentalToolsPanelItem as ToolsPanelItem,
12
- } from '@wordpress/components';
13
- import { useSettings } from '@wordpress/block-editor';
7
+ privateApis as blockEditorPrivateApis,
8
+ useSettings,
9
+ } from '@wordpress/block-editor';
14
10
 
15
- const SCALE_OPTIONS = (
16
- <>
17
- <ToggleGroupControlOption
18
- value="cover"
19
- label={ _x( 'Cover', 'Scale option for Image dimension control' ) }
20
- />
21
- <ToggleGroupControlOption
22
- value="contain"
23
- label={ _x(
24
- 'Contain',
25
- 'Scale option for Image dimension control'
26
- ) }
27
- />
28
- <ToggleGroupControlOption
29
- value="fill"
30
- label={ _x( 'Fill', 'Scale option for Image dimension control' ) }
31
- />
32
- </>
33
- );
11
+ /**
12
+ * Internal dependencies
13
+ */
14
+ import {
15
+ getActiveDimensionValue,
16
+ getDimensionUpdateAttributes,
17
+ getStyleStateKey,
18
+ } from '../utils/style-state';
19
+ import { unlock } from '../lock-unlock';
20
+
21
+ const { DimensionsTool } = unlock( blockEditorPrivateApis );
34
22
 
35
23
  const DEFAULT_SCALE = 'cover';
24
+ const DIMENSION_KEYS = [ 'aspectRatio', 'width', 'height', 'scale' ];
36
25
 
37
- const scaleHelp = {
38
- cover: __(
39
- 'Image is scaled and cropped to fill the entire space without being distorted.'
40
- ),
41
- contain: __(
42
- 'Image is scaled to fill the space without clipping nor distorting.'
43
- ),
44
- fill: __(
45
- 'Image will be stretched and distorted to completely fill the space.'
46
- ),
47
- };
26
+ const scaleOptions = [
27
+ {
28
+ value: 'cover',
29
+ label: _x( 'Cover', 'Scale option for Image dimension control' ),
30
+ help: __(
31
+ 'Image is scaled and cropped to fill the entire space without being distorted.'
32
+ ),
33
+ },
34
+ {
35
+ value: 'contain',
36
+ label: _x( 'Contain', 'Scale option for Image dimension control' ),
37
+ help: __(
38
+ 'Image is scaled to fill the space without clipping nor distorting.'
39
+ ),
40
+ },
41
+ {
42
+ value: 'fill',
43
+ label: _x( 'Fill', 'Scale option for Image dimension control' ),
44
+ help: __(
45
+ 'Image will be stretched and distorted to completely fill the space.'
46
+ ),
47
+ },
48
+ ];
48
49
 
49
50
  const DimensionControls = ( {
50
51
  clientId,
51
- attributes: { aspectRatio, width, height, scale },
52
+ attributes,
52
53
  setAttributes,
54
+ selectedStyleState,
55
+ hasSelectedStyleState = false,
53
56
  } ) => {
54
- const [ availableUnits, defaultRatios, themeRatios, showDefaultRatios ] =
55
- useSettings(
56
- 'spacing.units',
57
- 'dimensions.aspectRatios.default',
58
- 'dimensions.aspectRatios.theme',
59
- 'dimensions.defaultAspectRatios'
60
- );
57
+ const { style } = attributes;
58
+ const selectedStyleStateKey = getStyleStateKey( selectedStyleState );
59
+ const activeAspectRatio = getActiveDimensionValue( {
60
+ attributes,
61
+ selectedState: selectedStyleState,
62
+ hasSelectedStyleState,
63
+ attributeKey: 'aspectRatio',
64
+ } );
65
+ const activeWidth = getActiveDimensionValue( {
66
+ attributes,
67
+ selectedState: selectedStyleState,
68
+ hasSelectedStyleState,
69
+ attributeKey: 'width',
70
+ } );
71
+ const activeHeight = getActiveDimensionValue( {
72
+ attributes,
73
+ selectedState: selectedStyleState,
74
+ hasSelectedStyleState,
75
+ attributeKey: 'height',
76
+ } );
77
+ const activeScale = getActiveDimensionValue( {
78
+ attributes,
79
+ selectedState: selectedStyleState,
80
+ hasSelectedStyleState,
81
+ attributeKey: 'scale',
82
+ styleKey: 'objectFit',
83
+ } );
84
+
85
+ const [ availableUnits ] = useSettings( 'spacing.units' );
61
86
  const units = useCustomUnits( {
62
87
  availableUnits: availableUnits || [ 'px', '%', 'vw', 'em', 'rem' ],
63
88
  } );
64
89
 
65
- const onDimensionChange = ( dimension, nextValue ) => {
66
- const parsedValue = parseFloat( nextValue );
67
- /**
68
- * If we have no value set and we change the unit,
69
- * we don't want to set the attribute, as it would
70
- * end up having the unit as value without any number.
71
- */
72
- if ( isNaN( parsedValue ) && nextValue ) {
73
- return;
74
- }
75
- setAttributes( {
76
- [ dimension ]: parsedValue < 0 ? '0' : nextValue,
77
- } );
78
- };
79
- const scaleLabel = _x( 'Scale', 'Image scaling options' );
80
-
81
- const showScaleControl =
82
- height || ( aspectRatio && aspectRatio !== 'auto' );
90
+ const setDimensionAttributes = ( nextDimensions ) => {
91
+ const nextImageDimensions = {
92
+ ...nextDimensions,
93
+ width:
94
+ ! nextDimensions.width && nextDimensions.height
95
+ ? 'auto'
96
+ : nextDimensions.width,
97
+ };
83
98
 
84
- const themeOptions = themeRatios?.map( ( { name, ratio } ) => ( {
85
- label: name,
86
- value: ratio,
87
- } ) );
88
-
89
- const defaultOptions = defaultRatios?.map( ( { name, ratio } ) => ( {
90
- label: name,
91
- value: ratio,
92
- } ) );
93
-
94
- const aspectRatioOptions = [
95
- {
96
- label: _x(
97
- 'Original',
98
- 'Aspect ratio option for dimensions control'
99
- ),
100
- value: 'auto',
101
- },
102
- ...( showDefaultRatios ? defaultOptions : [] ),
103
- ...( themeOptions ? themeOptions : [] ),
104
- ];
99
+ setAttributes(
100
+ getDimensionUpdateAttributes( {
101
+ style,
102
+ selectedState: selectedStyleState,
103
+ hasSelectedStyleState,
104
+ nextDimensions: nextImageDimensions,
105
+ dimensionKeyMap: { scale: 'objectFit' },
106
+ dimensionKeys: DIMENSION_KEYS,
107
+ } )
108
+ );
109
+ };
105
110
 
106
111
  return (
107
- <>
108
- <ToolsPanelItem
109
- hasValue={ () => !! aspectRatio }
110
- label={ __( 'Aspect ratio' ) }
111
- onDeselect={ () => setAttributes( { aspectRatio: undefined } ) }
112
- resetAllFilter={ () => ( {
113
- aspectRatio: undefined,
114
- } ) }
115
- isShownByDefault
116
- panelId={ clientId }
117
- >
118
- <SelectControl
119
- __next40pxDefaultSize
120
- label={ __( 'Aspect ratio' ) }
121
- value={ aspectRatio || 'auto' }
122
- options={ aspectRatioOptions }
123
- onChange={ ( nextAspectRatio ) =>
124
- setAttributes( { aspectRatio: nextAspectRatio } )
125
- }
126
- />
127
- </ToolsPanelItem>
128
- <ToolsPanelItem
129
- className="single-column"
130
- hasValue={ () => !! height }
131
- label={ __( 'Height' ) }
132
- onDeselect={ () => setAttributes( { height: undefined } ) }
133
- resetAllFilter={ () => ( {
134
- height: undefined,
135
- } ) }
136
- isShownByDefault
137
- panelId={ clientId }
138
- >
139
- <UnitControl
140
- __next40pxDefaultSize
141
- label={ __( 'Height' ) }
142
- labelPosition="top"
143
- value={ height || '' }
144
- min={ 0 }
145
- onChange={ ( nextHeight ) =>
146
- onDimensionChange( 'height', nextHeight )
147
- }
148
- units={ units }
149
- />
150
- </ToolsPanelItem>
151
- <ToolsPanelItem
152
- className="single-column"
153
- hasValue={ () => !! width }
154
- label={ __( 'Width' ) }
155
- onDeselect={ () => setAttributes( { width: undefined } ) }
156
- resetAllFilter={ () => ( {
157
- width: undefined,
158
- } ) }
159
- isShownByDefault
160
- panelId={ clientId }
161
- >
162
- <UnitControl
163
- __next40pxDefaultSize
164
- label={ __( 'Width' ) }
165
- labelPosition="top"
166
- value={ width || '' }
167
- min={ 0 }
168
- onChange={ ( nextWidth ) =>
169
- onDimensionChange( 'width', nextWidth )
170
- }
171
- units={ units }
172
- />
173
- </ToolsPanelItem>
174
- { showScaleControl && (
175
- <ToolsPanelItem
176
- hasValue={ () => !! scale && scale !== DEFAULT_SCALE }
177
- label={ scaleLabel }
178
- onDeselect={ () =>
179
- setAttributes( {
180
- scale: DEFAULT_SCALE,
181
- } )
182
- }
183
- resetAllFilter={ () => ( {
184
- scale: DEFAULT_SCALE,
185
- } ) }
186
- isShownByDefault
187
- panelId={ clientId }
188
- >
189
- <ToggleGroupControl
190
- __next40pxDefaultSize
191
- label={ scaleLabel }
192
- value={ scale }
193
- help={ scaleHelp[ scale ] }
194
- onChange={ ( value ) =>
195
- setAttributes( {
196
- scale: value,
197
- } )
198
- }
199
- isBlock
200
- >
201
- { SCALE_OPTIONS }
202
- </ToggleGroupControl>
203
- </ToolsPanelItem>
204
- ) }
205
- </>
112
+ <DimensionsTool
113
+ key={ selectedStyleStateKey }
114
+ panelId={ clientId }
115
+ value={ {
116
+ aspectRatio: activeAspectRatio,
117
+ width: activeWidth,
118
+ height: activeHeight,
119
+ scale: activeScale,
120
+ } }
121
+ onChange={ setDimensionAttributes }
122
+ defaultScale={ DEFAULT_SCALE }
123
+ defaultAspectRatio="auto"
124
+ scaleOptions={ scaleOptions }
125
+ unitsOptions={ units }
126
+ />
206
127
  );
207
128
  };
208
129
 
@@ -49,9 +49,15 @@ import OverlayControls from './overlay-controls';
49
49
  import Overlay from './overlay';
50
50
  import { useToolsPanelDropdownMenuProps } from '../utils/hooks';
51
51
  import { unlock } from '../lock-unlock';
52
+ import { getDimensionResetAttributes } from '../utils/style-state';
52
53
 
53
54
  const ALLOWED_MEDIA_TYPES = [ 'image' ];
54
- const { ResolutionTool } = unlock( blockEditorPrivateApis );
55
+ const { isDefaultBlockStyleState, ResolutionTool } = unlock(
56
+ blockEditorPrivateApis
57
+ );
58
+
59
+ const hasDimensionValue = ( value ) =>
60
+ value !== undefined && value !== null && value !== '';
55
61
  const DEFAULT_MEDIA_SIZE_SLUG = 'full';
56
62
 
57
63
  function FeaturedImageResolutionTool( { image, value, onChange } ) {
@@ -137,12 +143,13 @@ export default function PostFeaturedImageEdit( {
137
143
  return imageId;
138
144
  }, [ storedFeaturedImage, useFirstImageFromPost, postContent ] );
139
145
 
140
- const { media, postType, postPermalink, hasSelectedStyleState } = useSelect(
146
+ const { media, postType, postPermalink, selectedStyleState } = useSelect(
141
147
  ( select ) => {
142
148
  const { getEntityRecord, getPostType, getEditedEntityRecord } =
143
149
  select( coreStore );
144
- const { hasSelectedStyleState: hasSelectedBlockStyleState } =
145
- unlock( select( blockEditorStore ) );
150
+ const { getSelectedBlockStyleState } = unlock(
151
+ select( blockEditorStore )
152
+ );
146
153
  return {
147
154
  media:
148
155
  featuredImage &&
@@ -155,18 +162,19 @@ export default function PostFeaturedImageEdit( {
155
162
  postTypeSlug,
156
163
  postId
157
164
  )?.link,
158
- hasSelectedStyleState: hasSelectedBlockStyleState( clientId ),
165
+ selectedStyleState: getSelectedBlockStyleState( clientId ),
159
166
  };
160
167
  },
161
168
  [ clientId, featuredImage, postTypeSlug, postId ]
162
169
  );
170
+ const hasSelectedStyleState =
171
+ ! isDefaultBlockStyleState( selectedStyleState );
163
172
 
164
173
  const mediaUrl =
165
174
  media?.media_details?.sizes?.[ sizeSlug ]?.source_url ||
166
175
  media?.source_url;
167
176
 
168
177
  const blockProps = useBlockProps( {
169
- style: { width, height, aspectRatio },
170
178
  className: clsx( {
171
179
  'is-transient': temporaryURL,
172
180
  } ),
@@ -184,8 +192,13 @@ export default function PostFeaturedImageEdit( {
184
192
  ) }
185
193
  withIllustration
186
194
  style={ {
187
- height: !! aspectRatio && '100%',
188
- width: !! aspectRatio && '100%',
195
+ aspectRatio,
196
+ height: hasDimensionValue( height )
197
+ ? height
198
+ : hasDimensionValue( width ) && 'auto',
199
+ width: hasDimensionValue( width )
200
+ ? width
201
+ : !! aspectRatio && '100%',
189
202
  ...borderProps.style,
190
203
  ...shadowProps.style,
191
204
  } }
@@ -240,16 +253,32 @@ export default function PostFeaturedImageEdit( {
240
253
  clientId={ clientId }
241
254
  />
242
255
  </InspectorControls>
243
- { ! hasSelectedStyleState && (
244
- <InspectorControls group="dimensions">
245
- <DimensionControls
246
- clientId={ clientId }
247
- attributes={ attributes }
248
- setAttributes={ setAttributes }
249
- media={ media }
250
- />
251
- </InspectorControls>
252
- ) }
256
+ <InspectorControls
257
+ group="dimensions"
258
+ resetAllFilter={ ( attrs ) => {
259
+ return getDimensionResetAttributes( {
260
+ attributes: attrs,
261
+ selectedState: selectedStyleState,
262
+ hasSelectedStyleState,
263
+ keys: [ 'aspectRatio', 'height', 'objectFit', 'width' ],
264
+ defaultAttributes: {
265
+ aspectRatio: undefined,
266
+ height: undefined,
267
+ scale: undefined,
268
+ width: undefined,
269
+ },
270
+ } );
271
+ } }
272
+ >
273
+ <DimensionControls
274
+ clientId={ clientId }
275
+ attributes={ attributes }
276
+ setAttributes={ setAttributes }
277
+ media={ media }
278
+ selectedStyleState={ selectedStyleState }
279
+ hasSelectedStyleState={ hasSelectedStyleState }
280
+ />
281
+ </InspectorControls>
253
282
  { ( featuredImage || isDescendentOfQueryLoop || ! postId ) && (
254
283
  <InspectorControls>
255
284
  <ToolsPanel
@@ -266,7 +295,7 @@ export default function PostFeaturedImageEdit( {
266
295
  >
267
296
  <ToolsPanelItem
268
297
  label={
269
- postType?.labels.singular_name
298
+ postType?.labels?.singular_name
270
299
  ? sprintf(
271
300
  // translators: %s: Name of the post type e.g: "post".
272
301
  __( 'Link to %s' ),
@@ -327,7 +356,6 @@ export default function PostFeaturedImageEdit( {
327
356
  }
328
357
  >
329
358
  <TextControl
330
- __next40pxDefaultSize
331
359
  label={ __( 'Link relation' ) }
332
360
  help={ createInterpolateElement(
333
361
  __(
@@ -398,8 +426,11 @@ export default function PostFeaturedImageEdit( {
398
426
  const imageStyles = {
399
427
  ...borderProps.style,
400
428
  ...shadowProps.style,
401
- height: aspectRatio ? '100%' : height,
402
- width: !! aspectRatio && '100%',
429
+ aspectRatio,
430
+ height: hasDimensionValue( height )
431
+ ? height
432
+ : hasDimensionValue( width ) && 'auto',
433
+ width: hasDimensionValue( width ) ? width : !! aspectRatio && '100%',
403
434
  objectFit: !! ( height || aspectRatio ) && scale,
404
435
  };
405
436
 
@@ -40,16 +40,26 @@ function render_block_core_post_featured_image( $attributes, $content, $block )
40
40
  }
41
41
 
42
42
  $extra_styles = '';
43
+ $has_width = array_key_exists( 'width', $attributes ) && null !== $attributes['width'] && '' !== $attributes['width'];
44
+ $has_height = array_key_exists( 'height', $attributes ) && null !== $attributes['height'] && '' !== $attributes['height'];
43
45
 
44
- // Aspect ratio with a height set needs to override the default width/height.
45
46
  if ( ! empty( $attributes['aspectRatio'] ) ) {
46
- $extra_styles .= 'width:100%;height:100%;';
47
- } elseif ( ! empty( $attributes['height'] ) ) {
48
- $extra_styles .= "height:{$attributes['height']};";
47
+ $extra_styles .= esc_attr( safecss_filter_attr( 'aspect-ratio:' . $attributes['aspectRatio'] ) ) . ';';
48
+ $extra_styles .= 'width:100%;';
49
+ }
50
+
51
+ if ( $has_height ) {
52
+ $extra_styles .= esc_attr( safecss_filter_attr( 'height:' . $attributes['height'] ) ) . ';';
53
+ } elseif ( $has_width ) {
54
+ $extra_styles .= 'height:auto;';
55
+ }
56
+
57
+ if ( $has_width ) {
58
+ $extra_styles .= esc_attr( safecss_filter_attr( 'width:' . $attributes['width'] ) ) . ';';
49
59
  }
50
60
 
51
61
  if ( ! empty( $attributes['scale'] ) ) {
52
- $extra_styles .= "object-fit:{$attributes['scale']};";
62
+ $extra_styles .= esc_attr( safecss_filter_attr( 'object-fit:' . $attributes['scale'] ) ) . ';';
53
63
  }
54
64
  if ( ! empty( $attributes['style']['shadow'] ) ) {
55
65
  $shadow_styles = wp_style_engine_get_styles( array( 'shadow' => $attributes['style']['shadow'] ) );
@@ -90,6 +100,13 @@ function render_block_core_post_featured_image( $attributes, $content, $block )
90
100
  foreach ( $processor->get_attribute_names_with_prefix( '' ) as $name ) {
91
101
  $tag_html->set_attribute( $name, $processor->get_attribute( $name ) );
92
102
  }
103
+ if ( ! empty( $attr['style'] ) ) {
104
+ $existing_style = $tag_html->get_attribute( 'style' );
105
+ $style = is_string( $existing_style ) && '' !== $existing_style
106
+ ? rtrim( $existing_style, ';' ) . ';' . $attr['style']
107
+ : $attr['style'];
108
+ $tag_html->set_attribute( 'style', $style );
109
+ }
93
110
  $featured_image = $tag_html->get_updated_html();
94
111
  }
95
112
  }
@@ -101,13 +118,11 @@ function render_block_core_post_featured_image( $attributes, $content, $block )
101
118
  if ( $is_link ) {
102
119
  $link_target = $attributes['linkTarget'];
103
120
  $rel = ! empty( $attributes['rel'] ) ? 'rel="' . esc_attr( $attributes['rel'] ) . '"' : '';
104
- $height = ! empty( $attributes['height'] ) ? 'style="' . esc_attr( safecss_filter_attr( 'height:' . $attributes['height'] ) ) . '"' : '';
105
121
  $featured_image = sprintf(
106
- '<a href="%1$s" target="%2$s" %3$s %4$s>%5$s%6$s</a>',
122
+ '<a href="%1$s" target="%2$s" %3$s>%4$s%5$s</a>',
107
123
  esc_url( get_the_permalink( $post_ID ) ),
108
124
  esc_attr( $link_target ),
109
125
  $rel,
110
- $height,
111
126
  $featured_image,
112
127
  $overlay_markup
113
128
  );
@@ -115,20 +130,7 @@ function render_block_core_post_featured_image( $attributes, $content, $block )
115
130
  $featured_image = $featured_image . $overlay_markup;
116
131
  }
117
132
 
118
- $aspect_ratio = ! empty( $attributes['aspectRatio'] )
119
- ? esc_attr( safecss_filter_attr( 'aspect-ratio:' . $attributes['aspectRatio'] ) ) . ';'
120
- : '';
121
- $width = ! empty( $attributes['width'] )
122
- ? esc_attr( safecss_filter_attr( 'width:' . $attributes['width'] ) ) . ';'
123
- : '';
124
- $height = ! empty( $attributes['height'] )
125
- ? esc_attr( safecss_filter_attr( 'height:' . $attributes['height'] ) ) . ';'
126
- : '';
127
- if ( ! $height && ! $width && ! $aspect_ratio ) {
128
- $wrapper_attributes = get_block_wrapper_attributes();
129
- } else {
130
- $wrapper_attributes = get_block_wrapper_attributes( array( 'style' => $aspect_ratio . $width . $height ) );
131
- }
133
+ $wrapper_attributes = get_block_wrapper_attributes();
132
134
  return "<figure {$wrapper_attributes}>{$featured_image}</figure>";
133
135
  }
134
136
 
@@ -65,7 +65,6 @@ export default function PostTermsEdit( {
65
65
  <>
66
66
  <InspectorControls group="advanced">
67
67
  <TextControl
68
- __next40pxDefaultSize
69
68
  autoComplete="off"
70
69
  label={ __( 'Separator' ) }
71
70
  value={ separator || '' }
@@ -203,7 +203,6 @@ export default function PostTitleEdit( {
203
203
  }
204
204
  >
205
205
  <TextControl
206
- __next40pxDefaultSize
207
206
  label={ __( 'Link relation' ) }
208
207
  help={ createInterpolateElement(
209
208
  __(
@@ -16,7 +16,6 @@ _Defined via the [`attributes`](https://developer.wordpress.org/block-editor/ref
16
16
  |-----------|------|---------|-------------|
17
17
  | `value` | `rich-text` | — | [Source](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-attributes/#value-source): `rich-text`. [Selector](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-attributes/#value-source): `p`. [Role](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-attributes/#role): `content` |
18
18
  | `citation` | `rich-text` | — | [Source](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-attributes/#value-source): `rich-text`. [Selector](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-attributes/#value-source): `cite`. [Role](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-attributes/#role): `content` |
19
- | `textAlign` | `string` | — | — |
20
19
 
21
20
  ## Supports
22
21
 
@@ -39,6 +38,7 @@ _Defined via the [`supports`](https://developer.wordpress.org/block-editor/refer
39
38
  - [`typography`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#typography):
40
39
  - [`fontSize`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#typography-fontsize): `true`
41
40
  - [`lineHeight`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#typography-lineheight): `true`
41
+ - [`textAlign`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#typography-textalign): `true`
42
42
  - [`interactivity`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#interactivity):
43
43
  - `clientNavigation`: `true`
44
44
 
@@ -18,9 +18,6 @@
18
18
  "source": "rich-text",
19
19
  "selector": "cite",
20
20
  "role": "content"
21
- },
22
- "textAlign": {
23
- "type": "string"
24
21
  }
25
22
  },
26
23
  "supports": {
@@ -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,