@wordpress/block-library 9.48.1 → 10.0.1-next.v.202606191442.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 (480) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/build/breadcrumbs/edit.cjs +1 -1
  3. package/build/breadcrumbs/edit.cjs.map +1 -1
  4. package/build/button/edit.cjs +1 -1
  5. package/build/button/edit.cjs.map +2 -2
  6. package/build/categories/edit.cjs +1 -1
  7. package/build/categories/edit.cjs.map +1 -1
  8. package/build/code/edit.cjs +1 -1
  9. package/build/code/edit.cjs.map +2 -2
  10. package/build/code/index.cjs +1 -1
  11. package/build/code/index.cjs.map +1 -1
  12. package/build/columns/utils.cjs.map +1 -1
  13. package/build/comments/edit/comments-legacy.cjs +1 -1
  14. package/build/comments/edit/comments-legacy.cjs.map +1 -1
  15. package/build/comments/edit/placeholder.cjs +4 -4
  16. package/build/comments/edit/placeholder.cjs.map +1 -1
  17. package/build/comments-pagination-next/edit.cjs +2 -2
  18. package/build/comments-pagination-next/edit.cjs.map +1 -1
  19. package/build/comments-pagination-previous/edit.cjs +2 -2
  20. package/build/comments-pagination-previous/edit.cjs.map +1 -1
  21. package/build/cover/deprecated.cjs +3 -3
  22. package/build/cover/deprecated.cjs.map +2 -2
  23. package/build/cover/edit/block-controls.cjs +13 -0
  24. package/build/cover/edit/block-controls.cjs.map +2 -2
  25. package/build/cover/edit/index.cjs +61 -2
  26. package/build/cover/edit/index.cjs.map +3 -3
  27. package/build/cover/edit/inspector-controls.cjs +93 -35
  28. package/build/cover/edit/inspector-controls.cjs.map +2 -2
  29. package/build/details/edit.cjs +1 -1
  30. package/build/details/edit.cjs.map +2 -2
  31. package/build/embed/embed-placeholder.cjs +1 -1
  32. package/build/embed/embed-placeholder.cjs.map +2 -2
  33. package/build/file/edit.cjs +3 -11
  34. package/build/file/edit.cjs.map +2 -2
  35. package/build/file/index.cjs +3 -1
  36. package/build/file/index.cjs.map +3 -3
  37. package/build/file/transforms.cjs +11 -32
  38. package/build/file/transforms.cjs.map +2 -2
  39. package/build/file/variations.cjs +38 -0
  40. package/build/file/variations.cjs.map +7 -0
  41. package/build/footnotes/edit.cjs +1 -1
  42. package/build/footnotes/edit.cjs.map +2 -2
  43. package/build/form-input/edit.cjs +1 -1
  44. package/build/form-input/edit.cjs.map +2 -2
  45. package/build/freeform/edit.cjs +1 -1
  46. package/build/freeform/edit.cjs.map +1 -1
  47. package/build/gallery/edit.cjs +2 -2
  48. package/build/gallery/edit.cjs.map +2 -2
  49. package/build/home-link/edit.cjs +1 -1
  50. package/build/home-link/edit.cjs.map +2 -2
  51. package/build/html/index.cjs +1 -1
  52. package/build/html/index.cjs.map +2 -2
  53. package/build/html/modal.cjs +3 -3
  54. package/build/html/modal.cjs.map +2 -2
  55. package/build/icon/block.json +12 -0
  56. package/build/icon/edit.cjs +90 -39
  57. package/build/icon/edit.cjs.map +3 -3
  58. package/build/icon/index.cjs +3 -1
  59. package/build/icon/index.cjs.map +3 -3
  60. package/build/{tab/save.cjs → icon/variations.cjs} +14 -15
  61. package/build/icon/variations.cjs.map +7 -0
  62. package/build/image/block.json +1 -0
  63. package/build/image/edit.cjs +4 -3
  64. package/build/image/edit.cjs.map +2 -2
  65. package/build/image/image.cjs +91 -27
  66. package/build/image/image.cjs.map +2 -2
  67. package/build/image/index.cjs +1 -1
  68. package/build/image/index.cjs.map +2 -2
  69. package/build/image/transforms.cjs +9 -3
  70. package/build/image/transforms.cjs.map +2 -2
  71. package/build/index.cjs +1 -3
  72. package/build/index.cjs.map +2 -2
  73. package/build/latest-posts/edit.cjs +1 -1
  74. package/build/latest-posts/edit.cjs.map +1 -1
  75. package/build/math/edit.cjs +1 -1
  76. package/build/math/index.cjs +1 -1
  77. package/build/math/index.cjs.map +1 -1
  78. package/build/media-text/constants.cjs +1 -1
  79. package/build/media-text/constants.cjs.map +2 -2
  80. package/build/media-text/index.cjs +1 -1
  81. package/build/media-text/index.cjs.map +2 -2
  82. package/build/missing/edit.cjs +2 -2
  83. package/build/missing/edit.cjs.map +1 -1
  84. package/build/navigation/edit/index.cjs +14 -8
  85. package/build/navigation/edit/index.cjs.map +2 -2
  86. package/build/navigation/edit/navigation-menu-selector.cjs +1 -1
  87. package/build/navigation/edit/navigation-menu-selector.cjs.map +2 -2
  88. package/build/navigation/edit/placeholder/index.cjs +1 -1
  89. package/build/navigation/edit/placeholder/index.cjs.map +2 -2
  90. package/build/navigation-link/edit.cjs +1 -1
  91. package/build/navigation-link/edit.cjs.map +2 -2
  92. package/build/navigation-submenu/block.json +7 -0
  93. package/build/navigation-submenu/edit.cjs +1 -1
  94. package/build/navigation-submenu/edit.cjs.map +2 -2
  95. package/build/page-list/block.json +2 -5
  96. package/build/page-list/edit.cjs +1 -11
  97. package/build/page-list/edit.cjs.map +2 -2
  98. package/build/post-author/edit.cjs +1 -1
  99. package/build/post-author/edit.cjs.map +2 -2
  100. package/build/post-author/utils.cjs +1 -1
  101. package/build/post-author/utils.cjs.map +2 -2
  102. package/build/post-date/edit.cjs +2 -2
  103. package/build/post-date/edit.cjs.map +2 -2
  104. package/build/post-excerpt/edit.cjs +2 -2
  105. package/build/post-excerpt/edit.cjs.map +2 -2
  106. package/build/post-featured-image/block.json +1 -0
  107. package/build/post-featured-image/dimension-controls.cjs +90 -178
  108. package/build/post-featured-image/dimension-controls.cjs.map +3 -3
  109. package/build/post-featured-image/edit.cjs +47 -17
  110. package/build/post-featured-image/edit.cjs.map +2 -2
  111. package/build/post-navigation-link/edit.cjs +2 -2
  112. package/build/post-navigation-link/edit.cjs.map +2 -2
  113. package/build/post-time-to-read/edit.cjs +1 -1
  114. package/build/post-time-to-read/edit.cjs.map +1 -1
  115. package/build/preformatted/edit.cjs +1 -1
  116. package/build/preformatted/edit.cjs.map +2 -2
  117. package/build/pullquote/block.json +1 -3
  118. package/build/pullquote/deprecated.cjs +114 -9
  119. package/build/pullquote/deprecated.cjs.map +3 -3
  120. package/build/pullquote/edit.cjs +43 -61
  121. package/build/pullquote/edit.cjs.map +3 -3
  122. package/build/pullquote/save.cjs +5 -26
  123. package/build/pullquote/save.cjs.map +3 -3
  124. package/build/query/edit/inspector-controls/enhanced-pagination-control.cjs +1 -1
  125. package/build/query/edit/inspector-controls/enhanced-pagination-control.cjs.map +1 -1
  126. package/build/query/edit/inspector-controls/order-control.cjs +2 -2
  127. package/build/query/edit/inspector-controls/order-control.cjs.map +2 -2
  128. package/build/query/utils.cjs +2 -2
  129. package/build/query/utils.cjs.map +2 -2
  130. package/build/query-pagination-next/edit.cjs +2 -2
  131. package/build/query-pagination-next/edit.cjs.map +1 -1
  132. package/build/query-pagination-previous/edit.cjs +2 -2
  133. package/build/query-pagination-previous/edit.cjs.map +1 -1
  134. package/build/query-title/edit.cjs +1 -1
  135. package/build/query-title/edit.cjs.map +2 -2
  136. package/build/query-total/edit.cjs +1 -1
  137. package/build/query-total/edit.cjs.map +2 -2
  138. package/build/quote/index.cjs +1 -1
  139. package/build/quote/index.cjs.map +2 -2
  140. package/build/read-more/edit.cjs +1 -1
  141. package/build/read-more/edit.cjs.map +2 -2
  142. package/build/rss/edit.cjs +1 -1
  143. package/build/rss/edit.cjs.map +2 -2
  144. package/build/search/edit.cjs +3 -3
  145. package/build/search/edit.cjs.map +2 -2
  146. package/build/shortcode/edit.cjs +1 -1
  147. package/build/shortcode/edit.cjs.map +2 -2
  148. package/build/site-tagline/edit.cjs +1 -1
  149. package/build/site-tagline/edit.cjs.map +2 -2
  150. package/build/site-title/edit.cjs +1 -1
  151. package/build/site-title/edit.cjs.map +2 -2
  152. package/build/tab-list/block.json +34 -21
  153. package/build/tab-list/edit.cjs +116 -12
  154. package/build/tab-list/edit.cjs.map +3 -3
  155. package/build/tab-list/save.cjs +33 -3
  156. package/build/tab-list/save.cjs.map +3 -3
  157. package/build/tab-panel/add-tab-toolbar-control.cjs +19 -8
  158. package/build/tab-panel/add-tab-toolbar-control.cjs.map +2 -2
  159. package/build/tab-panel/block.json +2 -6
  160. package/build/tab-panel/remove-tab-toolbar-control.cjs +9 -14
  161. package/build/tab-panel/remove-tab-toolbar-control.cjs.map +2 -2
  162. package/build/tab-panels/block.json +2 -27
  163. package/build/table/index.cjs +1 -1
  164. package/build/table/index.cjs.map +2 -2
  165. package/build/tabs/block.json +3 -17
  166. package/build/tabs/edit.cjs +7 -21
  167. package/build/tabs/edit.cjs.map +3 -3
  168. package/build/tabs/index.cjs +6 -10
  169. package/build/tabs/index.cjs.map +2 -2
  170. package/build/tabs/use-tab-list-items-sync.cjs +53 -0
  171. package/build/tabs/use-tab-list-items-sync.cjs.map +7 -0
  172. package/build/tabs/view.cjs +2 -10
  173. package/build/tabs/view.cjs.map +2 -2
  174. package/build/terms-query/edit/inspector-controls/order-control.cjs +2 -2
  175. package/build/terms-query/edit/inspector-controls/order-control.cjs.map +2 -2
  176. package/build/utils/style-state.cjs +164 -0
  177. package/build/utils/style-state.cjs.map +7 -0
  178. package/build/utils/waveform-player.cjs +1 -1
  179. package/build/verse/edit.cjs +1 -1
  180. package/build/verse/edit.cjs.map +2 -2
  181. package/build-module/breadcrumbs/edit.mjs +1 -1
  182. package/build-module/breadcrumbs/edit.mjs.map +1 -1
  183. package/build-module/button/edit.mjs +1 -1
  184. package/build-module/button/edit.mjs.map +2 -2
  185. package/build-module/categories/edit.mjs +1 -1
  186. package/build-module/categories/edit.mjs.map +1 -1
  187. package/build-module/code/edit.mjs +1 -1
  188. package/build-module/code/edit.mjs.map +2 -2
  189. package/build-module/code/index.mjs +1 -1
  190. package/build-module/code/index.mjs.map +1 -1
  191. package/build-module/columns/utils.mjs.map +1 -1
  192. package/build-module/comments/edit/comments-legacy.mjs +1 -1
  193. package/build-module/comments/edit/comments-legacy.mjs.map +1 -1
  194. package/build-module/comments/edit/placeholder.mjs +4 -4
  195. package/build-module/comments/edit/placeholder.mjs.map +1 -1
  196. package/build-module/comments-pagination-next/edit.mjs +2 -2
  197. package/build-module/comments-pagination-next/edit.mjs.map +1 -1
  198. package/build-module/comments-pagination-previous/edit.mjs +2 -2
  199. package/build-module/comments-pagination-previous/edit.mjs.map +1 -1
  200. package/build-module/cover/deprecated.mjs +3 -3
  201. package/build-module/cover/deprecated.mjs.map +2 -2
  202. package/build-module/cover/edit/block-controls.mjs +15 -2
  203. package/build-module/cover/edit/block-controls.mjs.map +2 -2
  204. package/build-module/cover/edit/index.mjs +64 -3
  205. package/build-module/cover/edit/index.mjs.map +2 -2
  206. package/build-module/cover/edit/inspector-controls.mjs +98 -35
  207. package/build-module/cover/edit/inspector-controls.mjs.map +2 -2
  208. package/build-module/details/edit.mjs +1 -1
  209. package/build-module/details/edit.mjs.map +2 -2
  210. package/build-module/embed/embed-placeholder.mjs +1 -1
  211. package/build-module/embed/embed-placeholder.mjs.map +2 -2
  212. package/build-module/file/edit.mjs +5 -13
  213. package/build-module/file/edit.mjs.map +2 -2
  214. package/build-module/file/index.mjs +3 -1
  215. package/build-module/file/index.mjs.map +2 -2
  216. package/build-module/file/transforms.mjs +11 -32
  217. package/build-module/file/transforms.mjs.map +2 -2
  218. package/build-module/file/variations.mjs +17 -0
  219. package/build-module/file/variations.mjs.map +7 -0
  220. package/build-module/footnotes/edit.mjs +1 -1
  221. package/build-module/footnotes/edit.mjs.map +2 -2
  222. package/build-module/form-input/edit.mjs +1 -1
  223. package/build-module/form-input/edit.mjs.map +2 -2
  224. package/build-module/freeform/edit.mjs +1 -1
  225. package/build-module/freeform/edit.mjs.map +1 -1
  226. package/build-module/gallery/edit.mjs +2 -2
  227. package/build-module/gallery/edit.mjs.map +2 -2
  228. package/build-module/home-link/edit.mjs +1 -1
  229. package/build-module/home-link/edit.mjs.map +2 -2
  230. package/build-module/html/index.mjs +1 -1
  231. package/build-module/html/index.mjs.map +2 -2
  232. package/build-module/html/modal.mjs +3 -3
  233. package/build-module/html/modal.mjs.map +2 -2
  234. package/build-module/icon/block.json +12 -0
  235. package/build-module/icon/edit.mjs +94 -40
  236. package/build-module/icon/edit.mjs.map +2 -2
  237. package/build-module/icon/index.mjs +3 -1
  238. package/build-module/icon/index.mjs.map +2 -2
  239. package/build-module/icon/variations.mjs +13 -0
  240. package/build-module/icon/variations.mjs.map +7 -0
  241. package/build-module/image/block.json +1 -0
  242. package/build-module/image/edit.mjs +4 -3
  243. package/build-module/image/edit.mjs.map +2 -2
  244. package/build-module/image/image.mjs +96 -27
  245. package/build-module/image/image.mjs.map +2 -2
  246. package/build-module/image/index.mjs +1 -1
  247. package/build-module/image/index.mjs.map +2 -2
  248. package/build-module/image/transforms.mjs +9 -3
  249. package/build-module/image/transforms.mjs.map +2 -2
  250. package/build-module/index.mjs +1 -3
  251. package/build-module/index.mjs.map +2 -2
  252. package/build-module/latest-posts/edit.mjs +1 -1
  253. package/build-module/latest-posts/edit.mjs.map +1 -1
  254. package/build-module/math/edit.mjs +1 -1
  255. package/build-module/math/index.mjs +1 -1
  256. package/build-module/math/index.mjs.map +1 -1
  257. package/build-module/media-text/constants.mjs +1 -1
  258. package/build-module/media-text/constants.mjs.map +2 -2
  259. package/build-module/media-text/index.mjs +1 -1
  260. package/build-module/media-text/index.mjs.map +2 -2
  261. package/build-module/missing/edit.mjs +2 -2
  262. package/build-module/missing/edit.mjs.map +1 -1
  263. package/build-module/navigation/edit/index.mjs +14 -8
  264. package/build-module/navigation/edit/index.mjs.map +2 -2
  265. package/build-module/navigation/edit/navigation-menu-selector.mjs +1 -1
  266. package/build-module/navigation/edit/navigation-menu-selector.mjs.map +2 -2
  267. package/build-module/navigation/edit/placeholder/index.mjs +1 -1
  268. package/build-module/navigation/edit/placeholder/index.mjs.map +2 -2
  269. package/build-module/navigation-link/edit.mjs +1 -1
  270. package/build-module/navigation-link/edit.mjs.map +2 -2
  271. package/build-module/navigation-submenu/block.json +7 -0
  272. package/build-module/navigation-submenu/edit.mjs +1 -1
  273. package/build-module/navigation-submenu/edit.mjs.map +2 -2
  274. package/build-module/page-list/block.json +2 -5
  275. package/build-module/page-list/edit.mjs +1 -11
  276. package/build-module/page-list/edit.mjs.map +2 -2
  277. package/build-module/post-author/edit.mjs +1 -1
  278. package/build-module/post-author/edit.mjs.map +2 -2
  279. package/build-module/post-author/utils.mjs +1 -1
  280. package/build-module/post-author/utils.mjs.map +2 -2
  281. package/build-module/post-date/edit.mjs +2 -2
  282. package/build-module/post-date/edit.mjs.map +2 -2
  283. package/build-module/post-excerpt/edit.mjs +2 -2
  284. package/build-module/post-excerpt/edit.mjs.map +2 -2
  285. package/build-module/post-featured-image/block.json +1 -0
  286. package/build-module/post-featured-image/dimension-controls.mjs +99 -187
  287. package/build-module/post-featured-image/dimension-controls.mjs.map +2 -2
  288. package/build-module/post-featured-image/edit.mjs +47 -17
  289. package/build-module/post-featured-image/edit.mjs.map +2 -2
  290. package/build-module/post-navigation-link/edit.mjs +2 -2
  291. package/build-module/post-navigation-link/edit.mjs.map +2 -2
  292. package/build-module/post-time-to-read/edit.mjs +1 -1
  293. package/build-module/post-time-to-read/edit.mjs.map +1 -1
  294. package/build-module/preformatted/edit.mjs +1 -1
  295. package/build-module/preformatted/edit.mjs.map +2 -2
  296. package/build-module/pullquote/block.json +1 -3
  297. package/build-module/pullquote/deprecated.mjs +114 -9
  298. package/build-module/pullquote/deprecated.mjs.map +2 -2
  299. package/build-module/pullquote/edit.mjs +44 -67
  300. package/build-module/pullquote/edit.mjs.map +2 -2
  301. package/build-module/pullquote/save.mjs +5 -16
  302. package/build-module/pullquote/save.mjs.map +2 -2
  303. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.mjs +1 -1
  304. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.mjs.map +1 -1
  305. package/build-module/query/edit/inspector-controls/order-control.mjs +2 -2
  306. package/build-module/query/edit/inspector-controls/order-control.mjs.map +2 -2
  307. package/build-module/query/utils.mjs +2 -2
  308. package/build-module/query/utils.mjs.map +2 -2
  309. package/build-module/query-pagination-next/edit.mjs +2 -2
  310. package/build-module/query-pagination-next/edit.mjs.map +1 -1
  311. package/build-module/query-pagination-previous/edit.mjs +2 -2
  312. package/build-module/query-pagination-previous/edit.mjs.map +1 -1
  313. package/build-module/query-title/edit.mjs +1 -1
  314. package/build-module/query-title/edit.mjs.map +2 -2
  315. package/build-module/query-total/edit.mjs +1 -1
  316. package/build-module/query-total/edit.mjs.map +2 -2
  317. package/build-module/quote/index.mjs +1 -1
  318. package/build-module/quote/index.mjs.map +2 -2
  319. package/build-module/read-more/edit.mjs +1 -1
  320. package/build-module/read-more/edit.mjs.map +2 -2
  321. package/build-module/rss/edit.mjs +1 -1
  322. package/build-module/rss/edit.mjs.map +2 -2
  323. package/build-module/search/edit.mjs +3 -3
  324. package/build-module/search/edit.mjs.map +2 -2
  325. package/build-module/shortcode/edit.mjs +1 -1
  326. package/build-module/shortcode/edit.mjs.map +2 -2
  327. package/build-module/site-tagline/edit.mjs +1 -1
  328. package/build-module/site-tagline/edit.mjs.map +2 -2
  329. package/build-module/site-title/edit.mjs +1 -1
  330. package/build-module/site-title/edit.mjs.map +2 -2
  331. package/build-module/tab-list/block.json +34 -21
  332. package/build-module/tab-list/edit.mjs +122 -15
  333. package/build-module/tab-list/edit.mjs.map +2 -2
  334. package/build-module/tab-list/save.mjs +29 -4
  335. package/build-module/tab-list/save.mjs.map +2 -2
  336. package/build-module/tab-panel/add-tab-toolbar-control.mjs +19 -8
  337. package/build-module/tab-panel/add-tab-toolbar-control.mjs.map +2 -2
  338. package/build-module/tab-panel/block.json +2 -6
  339. package/build-module/tab-panel/remove-tab-toolbar-control.mjs +9 -14
  340. package/build-module/tab-panel/remove-tab-toolbar-control.mjs.map +2 -2
  341. package/build-module/tab-panels/block.json +2 -27
  342. package/build-module/table/index.mjs +1 -1
  343. package/build-module/table/index.mjs.map +2 -2
  344. package/build-module/tabs/block.json +3 -17
  345. package/build-module/tabs/edit.mjs +7 -21
  346. package/build-module/tabs/edit.mjs.map +2 -2
  347. package/build-module/tabs/index.mjs +6 -10
  348. package/build-module/tabs/index.mjs.map +2 -2
  349. package/build-module/tabs/use-tab-list-items-sync.mjs +32 -0
  350. package/build-module/tabs/use-tab-list-items-sync.mjs.map +7 -0
  351. package/build-module/tabs/view.mjs +2 -10
  352. package/build-module/tabs/view.mjs.map +2 -2
  353. package/build-module/terms-query/edit/inspector-controls/order-control.mjs +2 -2
  354. package/build-module/terms-query/edit/inspector-controls/order-control.mjs.map +2 -2
  355. package/build-module/utils/style-state.mjs +132 -0
  356. package/build-module/utils/style-state.mjs.map +7 -0
  357. package/build-module/utils/waveform-player.mjs +1 -1
  358. package/build-module/verse/edit.mjs +1 -1
  359. package/build-module/verse/edit.mjs.map +2 -2
  360. package/build-style/editor-rtl.css +12 -16
  361. package/build-style/editor.css +12 -16
  362. package/build-style/icon/style-rtl.css +9 -0
  363. package/build-style/icon/style.css +9 -0
  364. package/build-style/style-rtl.css +11 -24
  365. package/build-style/style.css +11 -24
  366. package/build-style/tab-list/editor-rtl.css +12 -4
  367. package/build-style/tab-list/editor.css +12 -4
  368. package/build-style/{tab → tab-list}/style-rtl.css +2 -2
  369. package/build-style/{tab → tab-list}/style.css +2 -2
  370. package/build-style/tab-panel/style-rtl.css +0 -17
  371. package/build-style/tab-panel/style.css +0 -17
  372. package/package.json +48 -45
  373. package/src/avatar/index.php +2 -2
  374. package/src/block/index.php +2 -26
  375. package/src/comment-author-avatar/index.php +3 -3
  376. package/src/comment-author-name/index.php +1 -1
  377. package/src/comment-date/index.php +1 -1
  378. package/src/cover/edit/block-controls.js +14 -2
  379. package/src/cover/edit/index.js +86 -0
  380. package/src/cover/edit/inspector-controls.js +124 -54
  381. package/src/editor.scss +0 -1
  382. package/src/file/edit.js +3 -16
  383. package/src/file/index.js +2 -0
  384. package/src/file/transforms.js +12 -31
  385. package/src/file/variations.js +17 -0
  386. package/src/gallery/edit.js +13 -13
  387. package/src/icon/README.md +3 -0
  388. package/src/icon/block.json +12 -0
  389. package/src/icon/edit.js +86 -36
  390. package/src/icon/index.js +3 -1
  391. package/src/icon/index.php +23 -0
  392. package/src/icon/style.scss +12 -0
  393. package/src/icon/variations.js +9 -0
  394. package/src/image/README.md +1 -0
  395. package/src/image/block.json +1 -0
  396. package/src/image/edit.js +8 -3
  397. package/src/image/image.js +120 -54
  398. package/src/image/index.php +0 -1
  399. package/src/image/transforms.js +34 -8
  400. package/src/index.js +4 -11
  401. package/src/navigation/edit/index.js +23 -10
  402. package/src/navigation/index.php +58 -0
  403. package/src/navigation-submenu/README.md +5 -0
  404. package/src/navigation-submenu/block.json +7 -0
  405. package/src/page-list/README.md +1 -1
  406. package/src/page-list/block.json +2 -5
  407. package/src/page-list/edit.js +0 -11
  408. package/src/page-list/index.php +1 -1
  409. package/src/post-date/edit.js +2 -2
  410. package/src/post-featured-image/README.md +1 -0
  411. package/src/post-featured-image/block.json +1 -0
  412. package/src/post-featured-image/dimension-controls.js +105 -184
  413. package/src/post-featured-image/edit.js +53 -21
  414. package/src/post-featured-image/index.php +24 -22
  415. package/src/pullquote/README.md +1 -1
  416. package/src/pullquote/block.json +1 -3
  417. package/src/pullquote/deprecated.js +121 -9
  418. package/src/pullquote/edit.js +7 -31
  419. package/src/pullquote/save.js +2 -13
  420. package/src/search/index.php +1 -1
  421. package/src/style.scss +1 -2
  422. package/src/tab-list/README.md +19 -17
  423. package/src/tab-list/block.json +34 -21
  424. package/src/tab-list/edit.js +147 -15
  425. package/src/tab-list/editor.scss +13 -6
  426. package/src/tab-list/index.php +23 -30
  427. package/src/tab-list/save.js +39 -4
  428. package/src/{tab → tab-list}/style.scss +1 -1
  429. package/src/tab-panel/README.md +0 -3
  430. package/src/tab-panel/add-tab-toolbar-control.js +24 -11
  431. package/src/tab-panel/block.json +2 -6
  432. package/src/tab-panel/remove-tab-toolbar-control.js +10 -14
  433. package/src/tab-panel/style.scss +0 -17
  434. package/src/tab-panels/README.md +0 -16
  435. package/src/tab-panels/block.json +2 -27
  436. package/src/tabs/README.md +1 -7
  437. package/src/tabs/block.json +3 -17
  438. package/src/tabs/edit.js +8 -19
  439. package/src/tabs/index.js +6 -10
  440. package/src/tabs/index.php +0 -13
  441. package/src/tabs/use-tab-list-items-sync.js +49 -0
  442. package/src/tabs/view.js +2 -10
  443. package/src/utils/style-state.js +151 -0
  444. package/src/utils/test/style-state.js +307 -0
  445. package/babel-plugin.cjs +0 -150
  446. package/build/tab/block.json +0 -56
  447. package/build/tab/controls.cjs +0 -46
  448. package/build/tab/controls.cjs.map +0 -7
  449. package/build/tab/edit.cjs +0 -135
  450. package/build/tab/edit.cjs.map +0 -7
  451. package/build/tab/index.cjs +0 -58
  452. package/build/tab/index.cjs.map +0 -7
  453. package/build/tab/save.cjs.map +0 -7
  454. package/build/tabs/use-tab-list-sync.cjs +0 -190
  455. package/build/tabs/use-tab-list-sync.cjs.map +0 -7
  456. package/build-module/tab/block.json +0 -56
  457. package/build-module/tab/controls.mjs +0 -15
  458. package/build-module/tab/controls.mjs.map +0 -7
  459. package/build-module/tab/edit.mjs +0 -108
  460. package/build-module/tab/edit.mjs.map +0 -7
  461. package/build-module/tab/index.mjs +0 -20
  462. package/build-module/tab/index.mjs.map +0 -7
  463. package/build-module/tab/save.mjs +0 -14
  464. package/build-module/tab/save.mjs.map +0 -7
  465. package/build-module/tabs/use-tab-list-sync.mjs +0 -169
  466. package/build-module/tabs/use-tab-list-sync.mjs.map +0 -7
  467. package/build-style/tab/editor-rtl.css +0 -11
  468. package/build-style/tab/editor.css +0 -11
  469. package/build-style/tab-panels/style-rtl.css +0 -4
  470. package/build-style/tab-panels/style.css +0 -4
  471. package/src/tab/README.md +0 -69
  472. package/src/tab/block.json +0 -56
  473. package/src/tab/controls.js +0 -19
  474. package/src/tab/edit.js +0 -141
  475. package/src/tab/editor.scss +0 -14
  476. package/src/tab/index.js +0 -24
  477. package/src/tab/index.php +0 -70
  478. package/src/tab/save.js +0 -13
  479. package/src/tab-panels/style.scss +0 -4
  480. package/src/tabs/use-tab-list-sync.js +0 -237
package/src/file/edit.js CHANGED
@@ -23,9 +23,9 @@ import {
23
23
  store as blockEditorStore,
24
24
  __experimentalGetElementClassName,
25
25
  } from '@wordpress/block-editor';
26
- import { useEffect, useState } from '@wordpress/element';
26
+ import { useState } from '@wordpress/element';
27
27
  import { useCopyToClipboard } from '@wordpress/compose';
28
- import { __, _x } from '@wordpress/i18n';
28
+ import { __ } from '@wordpress/i18n';
29
29
  import { file as icon } from '@wordpress/icons';
30
30
  import { store as coreStore } from '@wordpress/core-data';
31
31
  import { store as noticesStore } from '@wordpress/notices';
@@ -90,8 +90,7 @@ function FileEdit( { attributes, isSelected, setAttributes, clientId } ) {
90
90
  );
91
91
 
92
92
  const { createErrorNotice } = useDispatch( noticesStore );
93
- const { toggleSelection, __unstableMarkNextChangeAsNotPersistent } =
94
- useDispatch( blockEditorStore );
93
+ const { toggleSelection } = useDispatch( blockEditorStore );
95
94
 
96
95
  useUploadMediaFromBlobURL( {
97
96
  url: temporaryURL,
@@ -99,18 +98,6 @@ function FileEdit( { attributes, isSelected, setAttributes, clientId } ) {
99
98
  onError: onUploadError,
100
99
  } );
101
100
 
102
- // Note: Handle setting a default value for `downloadButtonText` via HTML API
103
- // when it supports replacing text content for HTML tags.
104
- useEffect( () => {
105
- if ( RichText.isEmpty( downloadButtonText ) ) {
106
- __unstableMarkNextChangeAsNotPersistent();
107
- setAttributes( {
108
- downloadButtonText: _x( 'Download', 'button label' ),
109
- } );
110
- }
111
- // This effect should only run on mount.
112
- }, [] );
113
-
114
101
  function onSelectFile( newMedia ) {
115
102
  if ( ! newMedia || ! newMedia.url ) {
116
103
  // Reset attributes.
package/src/file/index.js CHANGED
@@ -14,6 +14,7 @@ import edit from './edit';
14
14
  import metadata from './block.json';
15
15
  import save from './save';
16
16
  import transforms from './transforms';
17
+ import variations from './variations';
17
18
  import { unlock } from '../lock-unlock';
18
19
 
19
20
  const { fieldsKey, formKey } = unlock( blocksPrivateApis );
@@ -34,6 +35,7 @@ export const settings = {
34
35
  deprecated,
35
36
  edit,
36
37
  save,
38
+ variations,
37
39
  };
38
40
 
39
41
  if ( window.__experimentalContentOnlyInspectorFields ) {
@@ -5,8 +5,12 @@ import { createBlobURL } from '@wordpress/blob';
5
5
  import { createBlock } from '@wordpress/blocks';
6
6
  import { select } from '@wordpress/data';
7
7
  import { store as coreStore } from '@wordpress/core-data';
8
+ import { _x } from '@wordpress/i18n';
8
9
  import { getFilename } from '@wordpress/url';
9
10
 
11
+ // Transforms bypass the default variation, so set the localized default here.
12
+ const downloadButtonText = _x( 'Download', 'button label' );
13
+
10
14
  const transforms = {
11
15
  from: [
12
16
  {
@@ -47,6 +51,7 @@ const transforms = {
47
51
  createBlock( 'core/file', {
48
52
  blob: blobURL,
49
53
  fileName: file.name,
54
+ downloadButtonText,
50
55
  } )
51
56
  );
52
57
  }
@@ -57,41 +62,17 @@ const transforms = {
57
62
  },
58
63
  {
59
64
  type: 'block',
60
- blocks: [ 'core/audio' ],
61
- transform: ( attributes ) => {
62
- return createBlock( 'core/file', {
63
- href: attributes.src,
64
- fileName: attributes.caption,
65
- textLinkHref: attributes.src,
66
- id: attributes.id,
67
- anchor: attributes.anchor,
68
- } );
69
- },
70
- },
71
- {
72
- type: 'block',
73
- blocks: [ 'core/video' ],
74
- transform: ( attributes ) => {
75
- return createBlock( 'core/file', {
76
- href: attributes.src,
77
- fileName: attributes.caption,
78
- textLinkHref: attributes.src,
79
- id: attributes.id,
80
- anchor: attributes.anchor,
81
- } );
82
- },
83
- },
84
- {
85
- type: 'block',
86
- blocks: [ 'core/image' ],
65
+ blocks: [ 'core/audio', 'core/video', 'core/image' ],
87
66
  transform: ( attributes ) => {
67
+ // Audio/Video use `src`, Image uses `url`.
68
+ const href = attributes.src ?? attributes.url;
88
69
  return createBlock( 'core/file', {
89
- href: attributes.url,
90
- fileName:
91
- attributes.caption || getFilename( attributes.url ),
92
- textLinkHref: attributes.url,
70
+ href,
71
+ fileName: attributes.caption || getFilename( href ),
72
+ textLinkHref: href,
93
73
  id: attributes.id,
94
74
  anchor: attributes.anchor,
75
+ downloadButtonText,
95
76
  } );
96
77
  },
97
78
  },
@@ -0,0 +1,17 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { _x } from '@wordpress/i18n';
5
+
6
+ const variations = [
7
+ {
8
+ name: 'default',
9
+ isDefault: true,
10
+ // Translatable defaults can't live in `block.json`, so set it here.
11
+ attributes: {
12
+ downloadButtonText: _x( 'Download', 'button label' ),
13
+ },
14
+ },
15
+ ];
16
+
17
+ export default variations;
@@ -754,17 +754,17 @@ export default function GalleryEdit( props ) {
754
754
  />
755
755
  </ToolsPanelItem>
756
756
  ) }
757
- <ToolsPanelItem
758
- label={ __( 'Navigation button type' ) }
759
- isShownByDefault
760
- hasValue={ () => navigationButtonType !== 'icon' }
761
- onDeselect={ () =>
762
- setAttributes( {
763
- navigationButtonType: 'icon',
764
- } )
765
- }
766
- >
767
- { hasLightboxImages && (
757
+ { lightboxSetting?.allowEditing && hasLightboxImages && (
758
+ <ToolsPanelItem
759
+ label={ __( 'Navigation button type' ) }
760
+ isShownByDefault
761
+ hasValue={ () => navigationButtonType !== 'icon' }
762
+ onDeselect={ () =>
763
+ setAttributes( {
764
+ navigationButtonType: 'icon',
765
+ } )
766
+ }
767
+ >
768
768
  <ToggleGroupControl
769
769
  label={ __( 'Navigation button type' ) }
770
770
  value={ navigationButtonType }
@@ -789,8 +789,8 @@ export default function GalleryEdit( props ) {
789
789
  )
790
790
  ) }
791
791
  </ToggleGroupControl>
792
- ) }
793
- </ToolsPanelItem>
792
+ </ToolsPanelItem>
793
+ ) }
794
794
  </ToolsPanel>
795
795
  </InspectorControls>
796
796
  <BlockControls group="block">
@@ -16,6 +16,9 @@ _Defined via the [`attributes`](https://developer.wordpress.org/block-editor/ref
16
16
  | Attribute | [Type](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-attributes/#type-validation) | [Default](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-attributes/#default-value) | Description |
17
17
  |-----------|------|---------|-------------|
18
18
  | `icon` | `string` | — | [Role](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-attributes/#role): `content` |
19
+ | `flipHorizontal` | `boolean` | `false` | — |
20
+ | `flipVertical` | `boolean` | `false` | — |
21
+ | `rotation` | `number` | `0` | — |
19
22
 
20
23
  ## Supports
21
24
 
@@ -11,6 +11,18 @@
11
11
  "icon": {
12
12
  "type": "string",
13
13
  "role": "content"
14
+ },
15
+ "flipHorizontal": {
16
+ "type": "boolean",
17
+ "default": false
18
+ },
19
+ "flipVertical": {
20
+ "type": "boolean",
21
+ "default": false
22
+ },
23
+ "rotation": {
24
+ "type": "number",
25
+ "default": 0
14
26
  }
15
27
  },
16
28
  "supports": {
package/src/icon/edit.js CHANGED
@@ -11,10 +11,14 @@ import {
11
11
  DropdownMenu,
12
12
  TextControl,
13
13
  ToolbarButton,
14
- ToolbarGroup,
15
14
  __experimentalToolsPanel as ToolsPanel,
16
15
  __experimentalToolsPanelItem as ToolsPanelItem,
17
16
  } from '@wordpress/components';
17
+ import {
18
+ flipHorizontal as flipHorizontalIcon,
19
+ flipVertical as flipVerticalIcon,
20
+ rotateRight,
21
+ } from '@wordpress/icons';
18
22
  import {
19
23
  BlockControls,
20
24
  InspectorControls,
@@ -58,7 +62,8 @@ const IconPlaceholder = ( { className, style } ) => (
58
62
  );
59
63
 
60
64
  export function Edit( { attributes, setAttributes } ) {
61
- const { icon, ariaLabel } = attributes;
65
+ const { icon, ariaLabel, flipHorizontal, flipVertical, rotation } =
66
+ attributes;
62
67
 
63
68
  const [ isInserterOpen, setInserterOpen ] = useState( false );
64
69
 
@@ -87,9 +92,49 @@ export function Edit( { attributes, setAttributes } ) {
87
92
 
88
93
  const iconToDisplay = selectedIcon?.content || '';
89
94
 
95
+ const flipClasses = {
96
+ 'is-flip-horizontal': flipHorizontal,
97
+ 'is-flip-vertical': flipVertical,
98
+ };
99
+
100
+ const rotationStyle = rotation ? { rotate: `${ rotation }deg` } : {};
101
+
90
102
  const blockControls = (
91
103
  <>
92
- <BlockControls group={ isContentOnlyMode ? 'inline' : 'other' }>
104
+ { icon && (
105
+ <BlockControls group="block">
106
+ <ToolbarButton
107
+ icon={ flipHorizontalIcon }
108
+ label={ __( 'Flip horizontal' ) }
109
+ isPressed={ flipHorizontal }
110
+ onClick={ () =>
111
+ setAttributes( {
112
+ flipHorizontal: ! flipHorizontal,
113
+ } )
114
+ }
115
+ />
116
+ <ToolbarButton
117
+ icon={ flipVerticalIcon }
118
+ label={ __( 'Flip vertical' ) }
119
+ isPressed={ flipVertical }
120
+ onClick={ () =>
121
+ setAttributes( {
122
+ flipVertical: ! flipVertical,
123
+ } )
124
+ }
125
+ />
126
+ <ToolbarButton
127
+ icon={ rotateRight }
128
+ label={ __( 'Rotate' ) }
129
+ onClick={ () =>
130
+ setAttributes( {
131
+ rotation: ( ( rotation || 0 ) + 90 ) % 360,
132
+ } )
133
+ }
134
+ />
135
+ </BlockControls>
136
+ ) }
137
+ <BlockControls group="other">
93
138
  <ToolbarButton
94
139
  onClick={ () => {
95
140
  setInserterOpen( true );
@@ -97,38 +142,39 @@ export function Edit( { attributes, setAttributes } ) {
97
142
  >
98
143
  { icon ? __( 'Replace' ) : __( 'Choose icon' ) }
99
144
  </ToolbarButton>
145
+ { isContentOnlyMode && icon && (
146
+ // Add some extra controls for content attributes when content only mode is active.
147
+ // With content only mode active, the inspector is hidden, so users need another way
148
+ // to edit these attributes.
149
+ <DropdownMenu
150
+ icon=""
151
+ toggleProps={ {
152
+ as: ToolbarButton,
153
+ } }
154
+ popoverProps={ {
155
+ className: 'is-alternate',
156
+ } }
157
+ text={ __( 'Label' ) }
158
+ >
159
+ { () => (
160
+ <TextControl
161
+ className="wp-block-icon__toolbar-content"
162
+ label={ __( 'Label' ) }
163
+ value={ ariaLabel || '' }
164
+ onChange={ ( value ) =>
165
+ setAttributes( {
166
+ ariaLabel: value,
167
+ } )
168
+ }
169
+ help={ __(
170
+ 'Briefly describe the icon to help screen reader users. Leave blank for decorative icons.'
171
+ ) }
172
+ __next40pxDefaultSize
173
+ />
174
+ ) }
175
+ </DropdownMenu>
176
+ ) }
100
177
  </BlockControls>
101
- { isContentOnlyMode && icon && (
102
- // Add some extra controls for content attributes when content only mode is active.
103
- // With content only mode active, the inspector is hidden, so users need another way
104
- // to edit these attributes.
105
- <BlockControls group="other">
106
- <ToolbarGroup className="components-toolbar-group">
107
- <DropdownMenu
108
- icon=""
109
- popoverProps={ {
110
- className: 'is-alternate',
111
- } }
112
- text={ __( 'Label' ) }
113
- >
114
- { () => (
115
- <TextControl
116
- className="wp-block-icon__toolbar-content"
117
- label={ __( 'Label' ) }
118
- value={ ariaLabel || '' }
119
- onChange={ ( value ) =>
120
- setAttributes( { ariaLabel: value } )
121
- }
122
- help={ __(
123
- 'Briefly describe the icon to help screen reader users. Leave blank for decorative icons.'
124
- ) }
125
- __next40pxDefaultSize
126
- />
127
- ) }
128
- </DropdownMenu>
129
- </ToolbarGroup>
130
- </BlockControls>
131
- ) }
132
178
  </>
133
179
  );
134
180
  const dropdownMenuProps = useToolsPanelDropdownMenuProps();
@@ -182,13 +228,15 @@ export function Edit( { attributes, setAttributes } ) {
182
228
  colorProps.className,
183
229
  borderProps.className,
184
230
  spacingProps.className,
185
- dimensionsProps.className
231
+ dimensionsProps.className,
232
+ flipClasses
186
233
  ),
187
234
  style: {
188
235
  ...colorProps.style,
189
236
  ...borderProps.style,
190
237
  ...spacingProps.style,
191
238
  ...dimensionsProps.style,
239
+ ...rotationStyle,
192
240
  },
193
241
  } }
194
242
  />
@@ -197,12 +245,14 @@ export function Edit( { attributes, setAttributes } ) {
197
245
  className={ clsx(
198
246
  borderProps.className,
199
247
  spacingProps.className,
200
- dimensionsProps.className
248
+ dimensionsProps.className,
249
+ flipClasses
201
250
  ) }
202
251
  style={ {
203
252
  ...borderProps.style,
204
253
  ...spacingProps.style,
205
254
  ...dimensionsProps.style,
255
+ ...rotationStyle,
206
256
  height: 'auto',
207
257
  } }
208
258
  />
package/src/icon/index.js CHANGED
@@ -5,6 +5,7 @@ import initBlock from '../utils/init-block';
5
5
  import edit from './edit';
6
6
  import metadata from './block.json';
7
7
  import icon from './icon';
8
+ import variations from './variations';
8
9
 
9
10
  const { name } = metadata;
10
11
  export { metadata, name };
@@ -12,7 +13,7 @@ export const settings = {
12
13
  icon,
13
14
  example: {
14
15
  attributes: {
15
- icon: 'core/audio',
16
+ icon: 'core/info',
16
17
  style: {
17
18
  dimensions: {
18
19
  width: '48px',
@@ -20,6 +21,7 @@ export const settings = {
20
21
  },
21
22
  },
22
23
  },
24
+ variations,
23
25
  edit,
24
26
  };
25
27
 
@@ -96,6 +96,29 @@ function render_block_core_icon( $attributes ) {
96
96
  $processor->add_class( $styles['classnames'] );
97
97
  }
98
98
 
99
+ // Apply flip classes to the SVG.
100
+ $flip_horizontal = $attributes['flipHorizontal'] ?? false;
101
+ $flip_vertical = $attributes['flipVertical'] ?? false;
102
+
103
+ if ( $flip_horizontal ) {
104
+ $processor->add_class( 'is-flip-horizontal' );
105
+ }
106
+ if ( $flip_vertical ) {
107
+ $processor->add_class( 'is-flip-vertical' );
108
+ }
109
+
110
+ $rotation = isset( $attributes['rotation'] ) ? (int) $attributes['rotation'] : 0;
111
+
112
+ if ( $rotation ) {
113
+ $current_style = $processor->get_attribute( 'style' ) ?? '';
114
+ $rotation_css = 'rotate: ' . $rotation . 'deg;';
115
+ if ( $current_style ) {
116
+ $processor->set_attribute( 'style', $current_style . ' ' . $rotation_css );
117
+ } else {
118
+ $processor->set_attribute( 'style', $rotation_css );
119
+ }
120
+ }
121
+
99
122
  $aria_label = ! empty( $attributes['ariaLabel'] ) ? $attributes['ariaLabel'] : '';
100
123
 
101
124
  if ( ! $aria_label ) {
@@ -14,6 +14,18 @@
14
14
  svg {
15
15
  box-sizing: border-box;
16
16
  fill: currentColor;
17
+
18
+ &.is-flip-horizontal {
19
+ transform: scaleX(-1);
20
+ }
21
+
22
+ &.is-flip-vertical {
23
+ transform: scaleY(-1);
24
+ }
25
+
26
+ &.is-flip-horizontal.is-flip-vertical {
27
+ transform: scaleX(-1) scaleY(-1);
28
+ }
17
29
  }
18
30
  }
19
31
 
@@ -0,0 +1,9 @@
1
+ const variations = [
2
+ {
3
+ name: 'default',
4
+ isDefault: true,
5
+ attributes: { icon: 'core/info' },
6
+ },
7
+ ];
8
+
9
+ export default variations;
@@ -79,6 +79,7 @@ _Defined via the [`styles`](https://developer.wordpress.org/block-editor/referen
79
79
 
80
80
  _Defined via the [`selectors`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-selectors/) property in block.json._
81
81
 
82
+ - **dimensions**: `.wp-block-image img`
82
83
  - **border**: `.wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder`
83
84
  - **shadow**: `.wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder`
84
85
  - **filter**:
@@ -141,6 +141,7 @@
141
141
  }
142
142
  },
143
143
  "selectors": {
144
+ "dimensions": ".wp-block-image img",
144
145
  "border": ".wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder",
145
146
  "shadow": ".wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder",
146
147
  "filter": {
package/src/image/edit.js CHANGED
@@ -422,6 +422,11 @@ export function ImageEdit( {
422
422
  },
423
423
  [ context, isSingleSelected, metadata?.bindings?.url ]
424
424
  );
425
+ // `height: 'auto'` is not a pinned dimension (it lets the height follow the
426
+ // aspect ratio, e.g. for an image pasted with both width and height). Treat
427
+ // it as absent so the placeholder box keeps its aspect ratio and pinned
428
+ // width instead of collapsing to a 100%×100% fill.
429
+ const pinnedHeight = height === 'auto' ? undefined : height;
425
430
  const placeholder = ( content ) => {
426
431
  return (
427
432
  <Placeholder
@@ -444,11 +449,11 @@ export function ImageEdit( {
444
449
  }
445
450
  style={ {
446
451
  aspectRatio:
447
- ! ( width && height ) && aspectRatio
452
+ ! ( width && pinnedHeight ) && aspectRatio
448
453
  ? aspectRatio
449
454
  : undefined,
450
- width: height && aspectRatio ? '100%' : width,
451
- height: width && aspectRatio ? '100%' : height,
455
+ width: pinnedHeight && aspectRatio ? '100%' : width,
456
+ height: width && aspectRatio ? '100%' : pinnedHeight,
452
457
  objectFit: scale,
453
458
  ...borderProps.style,
454
459
  ...shadowProps.style,