@wordpress/block-editor 12.15.0 → 12.16.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 (500) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +9 -4
  3. package/build/components/block-canvas/index.js +22 -6
  4. package/build/components/block-canvas/index.js.map +1 -1
  5. package/build/components/block-card/index.js +1 -1
  6. package/build/components/block-card/index.js.map +1 -1
  7. package/build/components/block-controls/hook.js +3 -23
  8. package/build/components/block-controls/hook.js.map +1 -1
  9. package/build/components/block-edit/context.js +5 -1
  10. package/build/components/block-edit/context.js.map +1 -1
  11. package/build/components/block-edit/index.js +18 -9
  12. package/build/components/block-edit/index.js.map +1 -1
  13. package/build/components/block-info-slot-fill/index.js +3 -4
  14. package/build/components/block-info-slot-fill/index.js.map +1 -1
  15. package/build/components/block-list/block.js +28 -9
  16. package/build/components/block-list/block.js.map +1 -1
  17. package/build/components/block-list/block.native.js +14 -5
  18. package/build/components/block-list/block.native.js.map +1 -1
  19. package/build/components/block-list/use-block-props/index.js +61 -18
  20. package/build/components/block-list/use-block-props/index.js.map +1 -1
  21. package/build/components/block-list/use-block-props/use-focus-first-element.js +4 -29
  22. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  23. package/build/components/block-list/use-block-props/use-is-hovered.js +4 -14
  24. package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  25. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js +4 -2
  26. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  27. package/build/components/block-patterns-list/index.js +1 -1
  28. package/build/components/block-patterns-list/index.js.map +1 -1
  29. package/build/components/block-removal-warning-modal/index.js +2 -9
  30. package/build/components/block-removal-warning-modal/index.js.map +1 -1
  31. package/build/components/block-rename/modal.js +3 -0
  32. package/build/components/block-rename/modal.js.map +1 -1
  33. package/build/components/block-settings/container.native.js +6 -4
  34. package/build/components/block-settings/container.native.js.map +1 -1
  35. package/build/components/block-styles/index.js +1 -1
  36. package/build/components/block-styles/index.js.map +1 -1
  37. package/build/components/block-styles/index.native.js +3 -2
  38. package/build/components/block-styles/index.native.js.map +1 -1
  39. package/build/components/block-toolbar/index.js +89 -27
  40. package/build/components/block-toolbar/index.js.map +1 -1
  41. package/build/components/block-tools/block-toolbar-breadcrumb.js +49 -0
  42. package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -0
  43. package/build/components/block-tools/block-toolbar-popover.js +86 -0
  44. package/build/components/block-tools/block-toolbar-popover.js.map +1 -0
  45. package/build/components/block-tools/index.js +27 -24
  46. package/build/components/block-tools/index.js.map +1 -1
  47. package/build/components/block-types-list/index.native.js +4 -3
  48. package/build/components/block-types-list/index.native.js.map +1 -1
  49. package/build/components/block-variation-picker/index.native.js +2 -1
  50. package/build/components/block-variation-picker/index.native.js.map +1 -1
  51. package/build/components/colors-gradients/control.js +28 -17
  52. package/build/components/colors-gradients/control.js.map +1 -1
  53. package/build/components/duotone-control/index.js +1 -4
  54. package/build/components/duotone-control/index.js.map +1 -1
  55. package/build/components/global-styles/color-panel.js +22 -20
  56. package/build/components/global-styles/color-panel.js.map +1 -1
  57. package/build/components/global-styles/filters-panel.js +9 -3
  58. package/build/components/global-styles/filters-panel.js.map +1 -1
  59. package/build/components/global-styles/typography-panel.js +20 -31
  60. package/build/components/global-styles/typography-panel.js.map +1 -1
  61. package/build/components/image-link-destinations/index.native.js +118 -0
  62. package/build/components/image-link-destinations/index.native.js.map +1 -0
  63. package/build/components/index.native.js +8 -0
  64. package/build/components/index.native.js.map +1 -1
  65. package/build/components/inserter/media-tab/media-panel.js +2 -2
  66. package/build/components/inserter/media-tab/media-panel.js.map +1 -1
  67. package/build/components/inserter/menu.js +14 -7
  68. package/build/components/inserter/menu.js.map +1 -1
  69. package/build/components/inserter/preview-panel.js +2 -2
  70. package/build/components/inserter/preview-panel.js.map +1 -1
  71. package/build/components/inserter-button/index.native.js +98 -0
  72. package/build/components/inserter-button/index.native.js.map +1 -0
  73. package/build/components/inserter-button/sparkles.js +23 -0
  74. package/build/components/inserter-button/sparkles.js.map +1 -0
  75. package/build/components/inserter-draggable-blocks/index.js +8 -4
  76. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  77. package/build/components/inspector-controls/fill.js +3 -3
  78. package/build/components/inspector-controls/fill.js.map +1 -1
  79. package/build/components/inspector-controls/fill.native.js +3 -3
  80. package/build/components/inspector-controls/fill.native.js.map +1 -1
  81. package/build/components/navigable-toolbar/index.js +2 -2
  82. package/build/components/navigable-toolbar/index.js.map +1 -1
  83. package/build/components/preview-options/index.js +6 -62
  84. package/build/components/preview-options/index.js.map +1 -1
  85. package/build/components/rich-text/content.js +26 -23
  86. package/build/components/rich-text/content.js.map +1 -1
  87. package/build/components/rich-text/get-rich-text-values.js +2 -1
  88. package/build/components/rich-text/get-rich-text-values.js.map +1 -1
  89. package/build/components/rich-text/index.js +2 -30
  90. package/build/components/rich-text/index.js.map +1 -1
  91. package/build/components/rich-text/index.native.js +9 -16
  92. package/build/components/rich-text/index.native.js.map +1 -1
  93. package/build/components/rich-text/native/get-format-colors.native.js +22 -24
  94. package/build/components/rich-text/native/get-format-colors.native.js.map +1 -1
  95. package/build/components/rich-text/native/index.native.js +7 -34
  96. package/build/components/rich-text/native/index.native.js.map +1 -1
  97. package/build/components/rich-text/use-input-rules.js +5 -1
  98. package/build/components/rich-text/use-input-rules.js.map +1 -1
  99. package/build/components/rich-text/with-deprecations.js +50 -0
  100. package/build/components/rich-text/with-deprecations.js.map +1 -0
  101. package/build/components/use-block-drop-zone/index.js +70 -8
  102. package/build/components/use-block-drop-zone/index.js.map +1 -1
  103. package/build/components/use-on-block-drop/index.js +1 -1
  104. package/build/components/use-on-block-drop/index.js.map +1 -1
  105. package/build/components/use-resize-canvas/index.js +4 -1
  106. package/build/components/use-resize-canvas/index.js.map +1 -1
  107. package/build/components/use-settings/index.js +14 -0
  108. package/build/components/use-settings/index.js.map +1 -1
  109. package/build/hooks/align.js +20 -68
  110. package/build/hooks/align.js.map +1 -1
  111. package/build/hooks/align.native.js +11 -1
  112. package/build/hooks/align.native.js.map +1 -1
  113. package/build/hooks/anchor.js +13 -29
  114. package/build/hooks/anchor.js.map +1 -1
  115. package/build/hooks/background.js +28 -31
  116. package/build/hooks/background.js.map +1 -1
  117. package/build/hooks/block-hooks.js +24 -32
  118. package/build/hooks/block-hooks.js.map +1 -1
  119. package/build/hooks/block-renaming.js +18 -22
  120. package/build/hooks/block-renaming.js.map +1 -1
  121. package/build/hooks/border.js +58 -80
  122. package/build/hooks/border.js.map +1 -1
  123. package/build/hooks/color.js +76 -89
  124. package/build/hooks/color.js.map +1 -1
  125. package/build/hooks/content-lock-ui.js +29 -29
  126. package/build/hooks/content-lock-ui.js.map +1 -1
  127. package/build/hooks/custom-class-name.js +12 -29
  128. package/build/hooks/custom-class-name.js.map +1 -1
  129. package/build/hooks/custom-fields.js +24 -38
  130. package/build/hooks/custom-fields.js.map +1 -1
  131. package/build/hooks/dimensions.js +21 -17
  132. package/build/hooks/dimensions.js.map +1 -1
  133. package/build/hooks/duotone.js +31 -61
  134. package/build/hooks/duotone.js.map +1 -1
  135. package/build/hooks/font-family.js +16 -25
  136. package/build/hooks/font-family.js.map +1 -1
  137. package/build/hooks/font-size.js +51 -119
  138. package/build/hooks/font-size.js.map +1 -1
  139. package/build/hooks/index.js +25 -14
  140. package/build/hooks/index.js.map +1 -1
  141. package/build/hooks/index.native.js +10 -3
  142. package/build/hooks/index.native.js.map +1 -1
  143. package/build/hooks/layout-child.js +68 -0
  144. package/build/hooks/layout-child.js.map +1 -0
  145. package/build/hooks/layout.js +16 -101
  146. package/build/hooks/layout.js.map +1 -1
  147. package/build/hooks/padding.js +2 -2
  148. package/build/hooks/padding.js.map +1 -1
  149. package/build/hooks/position.js +40 -62
  150. package/build/hooks/position.js.map +1 -1
  151. package/build/hooks/style.js +51 -88
  152. package/build/hooks/style.js.map +1 -1
  153. package/build/hooks/typography.js +34 -14
  154. package/build/hooks/typography.js.map +1 -1
  155. package/build/hooks/utils.js +154 -7
  156. package/build/hooks/utils.js.map +1 -1
  157. package/build/private-apis.js +0 -2
  158. package/build/private-apis.js.map +1 -1
  159. package/build/store/private-actions.js +8 -0
  160. package/build/store/private-actions.js.map +1 -1
  161. package/build/store/private-selectors.js +34 -0
  162. package/build/store/private-selectors.js.map +1 -1
  163. package/build/store/reducer.js +8 -0
  164. package/build/store/reducer.js.map +1 -1
  165. package/build/store/selectors.js +10 -60
  166. package/build/store/selectors.js.map +1 -1
  167. package/build/store/utils.js +66 -0
  168. package/build/store/utils.js.map +1 -0
  169. package/build/utils/object.js +21 -61
  170. package/build/utils/object.js.map +1 -1
  171. package/build/utils/selection.js +9 -1
  172. package/build/utils/selection.js.map +1 -1
  173. package/build-module/components/block-canvas/index.js +23 -7
  174. package/build-module/components/block-canvas/index.js.map +1 -1
  175. package/build-module/components/block-card/index.js +1 -1
  176. package/build-module/components/block-card/index.js.map +1 -1
  177. package/build-module/components/block-controls/hook.js +4 -24
  178. package/build-module/components/block-controls/hook.js.map +1 -1
  179. package/build-module/components/block-edit/context.js +2 -0
  180. package/build-module/components/block-edit/context.js.map +1 -1
  181. package/build-module/components/block-edit/index.js +19 -10
  182. package/build-module/components/block-edit/index.js.map +1 -1
  183. package/build-module/components/block-info-slot-fill/index.js +3 -3
  184. package/build-module/components/block-info-slot-fill/index.js.map +1 -1
  185. package/build-module/components/block-list/block.js +29 -10
  186. package/build-module/components/block-list/block.js.map +1 -1
  187. package/build-module/components/block-list/block.native.js +14 -5
  188. package/build-module/components/block-list/block.native.js.map +1 -1
  189. package/build-module/components/block-list/use-block-props/index.js +62 -19
  190. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  191. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +4 -29
  192. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  193. package/build-module/components/block-list/use-block-props/use-is-hovered.js +4 -14
  194. package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  195. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +4 -2
  196. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  197. package/build-module/components/block-patterns-list/index.js +1 -1
  198. package/build-module/components/block-patterns-list/index.js.map +1 -1
  199. package/build-module/components/block-removal-warning-modal/index.js +3 -10
  200. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  201. package/build-module/components/block-rename/modal.js +3 -0
  202. package/build-module/components/block-rename/modal.js.map +1 -1
  203. package/build-module/components/block-settings/container.native.js +4 -2
  204. package/build-module/components/block-settings/container.native.js.map +1 -1
  205. package/build-module/components/block-styles/index.js +1 -1
  206. package/build-module/components/block-styles/index.js.map +1 -1
  207. package/build-module/components/block-styles/index.native.js +3 -2
  208. package/build-module/components/block-styles/index.native.js.map +1 -1
  209. package/build-module/components/block-toolbar/index.js +88 -25
  210. package/build-module/components/block-toolbar/index.js.map +1 -1
  211. package/build-module/components/block-tools/block-toolbar-breadcrumb.js +41 -0
  212. package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -0
  213. package/build-module/components/block-tools/block-toolbar-popover.js +76 -0
  214. package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -0
  215. package/build-module/components/block-tools/index.js +27 -24
  216. package/build-module/components/block-tools/index.js.map +1 -1
  217. package/build-module/components/block-types-list/index.native.js +2 -1
  218. package/build-module/components/block-types-list/index.native.js.map +1 -1
  219. package/build-module/components/block-variation-picker/index.native.js +2 -1
  220. package/build-module/components/block-variation-picker/index.native.js.map +1 -1
  221. package/build-module/components/colors-gradients/control.js +29 -18
  222. package/build-module/components/colors-gradients/control.js.map +1 -1
  223. package/build-module/components/duotone-control/index.js +1 -4
  224. package/build-module/components/duotone-control/index.js.map +1 -1
  225. package/build-module/components/global-styles/color-panel.js +23 -21
  226. package/build-module/components/global-styles/color-panel.js.map +1 -1
  227. package/build-module/components/global-styles/filters-panel.js +10 -4
  228. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  229. package/build-module/components/global-styles/typography-panel.js +20 -31
  230. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  231. package/build-module/components/image-link-destinations/index.native.js +109 -0
  232. package/build-module/components/image-link-destinations/index.native.js.map +1 -0
  233. package/build-module/components/index.native.js +1 -0
  234. package/build-module/components/index.native.js.map +1 -1
  235. package/build-module/components/inserter/media-tab/media-panel.js +1 -1
  236. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
  237. package/build-module/components/inserter/menu.js +14 -7
  238. package/build-module/components/inserter/menu.js.map +1 -1
  239. package/build-module/components/inserter/preview-panel.js +2 -2
  240. package/build-module/components/inserter/preview-panel.js.map +1 -1
  241. package/build-module/components/inserter-button/index.native.js +89 -0
  242. package/build-module/components/inserter-button/index.native.js.map +1 -0
  243. package/build-module/components/inserter-button/sparkles.js +15 -0
  244. package/build-module/components/inserter-button/sparkles.js.map +1 -0
  245. package/build-module/components/inserter-draggable-blocks/index.js +9 -5
  246. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  247. package/build-module/components/inspector-controls/fill.js +3 -3
  248. package/build-module/components/inspector-controls/fill.js.map +1 -1
  249. package/build-module/components/inspector-controls/fill.native.js +3 -3
  250. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  251. package/build-module/components/navigable-toolbar/index.js +2 -2
  252. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  253. package/build-module/components/preview-options/index.js +6 -62
  254. package/build-module/components/preview-options/index.js.map +1 -1
  255. package/build-module/components/rich-text/content.js +25 -21
  256. package/build-module/components/rich-text/content.js.map +1 -1
  257. package/build-module/components/rich-text/get-rich-text-values.js +2 -1
  258. package/build-module/components/rich-text/get-rich-text-values.js.map +1 -1
  259. package/build-module/components/rich-text/index.js +4 -32
  260. package/build-module/components/rich-text/index.js.map +1 -1
  261. package/build-module/components/rich-text/index.native.js +10 -18
  262. package/build-module/components/rich-text/index.native.js.map +1 -1
  263. package/build-module/components/rich-text/native/get-format-colors.native.js +22 -24
  264. package/build-module/components/rich-text/native/get-format-colors.native.js.map +1 -1
  265. package/build-module/components/rich-text/native/index.native.js +7 -34
  266. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  267. package/build-module/components/rich-text/use-input-rules.js +5 -1
  268. package/build-module/components/rich-text/use-input-rules.js.map +1 -1
  269. package/build-module/components/rich-text/with-deprecations.js +42 -0
  270. package/build-module/components/rich-text/with-deprecations.js.map +1 -0
  271. package/build-module/components/use-block-drop-zone/index.js +69 -8
  272. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  273. package/build-module/components/use-on-block-drop/index.js +1 -1
  274. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  275. package/build-module/components/use-resize-canvas/index.js +4 -1
  276. package/build-module/components/use-resize-canvas/index.js.map +1 -1
  277. package/build-module/components/use-settings/index.js +13 -1
  278. package/build-module/components/use-settings/index.js.map +1 -1
  279. package/build-module/hooks/align.js +19 -66
  280. package/build-module/hooks/align.js.map +1 -1
  281. package/build-module/hooks/align.native.js +1 -0
  282. package/build-module/hooks/align.native.js.map +1 -1
  283. package/build-module/hooks/anchor.js +11 -26
  284. package/build-module/hooks/anchor.js.map +1 -1
  285. package/build-module/hooks/background.js +26 -28
  286. package/build-module/hooks/background.js.map +1 -1
  287. package/build-module/hooks/block-hooks.js +22 -30
  288. package/build-module/hooks/block-hooks.js.map +1 -1
  289. package/build-module/hooks/block-renaming.js +17 -21
  290. package/build-module/hooks/block-renaming.js.map +1 -1
  291. package/build-module/hooks/border.js +57 -78
  292. package/build-module/hooks/border.js.map +1 -1
  293. package/build-module/hooks/color.js +74 -86
  294. package/build-module/hooks/color.js.map +1 -1
  295. package/build-module/hooks/content-lock-ui.js +27 -27
  296. package/build-module/hooks/content-lock-ui.js.map +1 -1
  297. package/build-module/hooks/custom-class-name.js +11 -27
  298. package/build-module/hooks/custom-class-name.js.map +1 -1
  299. package/build-module/hooks/custom-fields.js +20 -39
  300. package/build-module/hooks/custom-fields.js.map +1 -1
  301. package/build-module/hooks/dimensions.js +21 -16
  302. package/build-module/hooks/dimensions.js.map +1 -1
  303. package/build-module/hooks/duotone.js +30 -61
  304. package/build-module/hooks/duotone.js.map +1 -1
  305. package/build-module/hooks/font-family.js +14 -23
  306. package/build-module/hooks/font-family.js.map +1 -1
  307. package/build-module/hooks/font-size.js +49 -119
  308. package/build-module/hooks/font-size.js.map +1 -1
  309. package/build-module/hooks/index.js +18 -14
  310. package/build-module/hooks/index.js.map +1 -1
  311. package/build-module/hooks/index.native.js +5 -3
  312. package/build-module/hooks/index.native.js.map +1 -1
  313. package/build-module/hooks/layout-child.js +60 -0
  314. package/build-module/hooks/layout-child.js.map +1 -0
  315. package/build-module/hooks/layout.js +13 -98
  316. package/build-module/hooks/layout.js.map +1 -1
  317. package/build-module/hooks/padding.js +2 -2
  318. package/build-module/hooks/padding.js.map +1 -1
  319. package/build-module/hooks/position.js +38 -59
  320. package/build-module/hooks/position.js.map +1 -1
  321. package/build-module/hooks/style.js +51 -84
  322. package/build-module/hooks/style.js.map +1 -1
  323. package/build-module/hooks/typography.js +33 -12
  324. package/build-module/hooks/typography.js.map +1 -1
  325. package/build-module/hooks/utils.js +149 -6
  326. package/build-module/hooks/utils.js.map +1 -1
  327. package/build-module/private-apis.js +0 -2
  328. package/build-module/private-apis.js.map +1 -1
  329. package/build-module/store/private-actions.js +7 -0
  330. package/build-module/store/private-actions.js.map +1 -1
  331. package/build-module/store/private-selectors.js +33 -1
  332. package/build-module/store/private-selectors.js.map +1 -1
  333. package/build-module/store/reducer.js +8 -0
  334. package/build-module/store/reducer.js.map +1 -1
  335. package/build-module/store/selectors.js +3 -53
  336. package/build-module/store/selectors.js.map +1 -1
  337. package/build-module/store/utils.js +56 -0
  338. package/build-module/store/utils.js.map +1 -0
  339. package/build-module/utils/object.js +21 -60
  340. package/build-module/utils/object.js.map +1 -1
  341. package/build-module/utils/selection.js +9 -1
  342. package/build-module/utils/selection.js.map +1 -1
  343. package/build-style/style-rtl.css +113 -293
  344. package/build-style/style.css +113 -293
  345. package/package.json +31 -31
  346. package/src/components/block-canvas/index.js +31 -17
  347. package/src/components/block-caption/README.md +2 -2
  348. package/src/components/block-card/index.js +5 -3
  349. package/src/components/block-card/style.scss +7 -3
  350. package/src/components/block-controls/hook.js +8 -30
  351. package/src/components/block-controls/test/index.js +3 -3
  352. package/src/components/block-edit/context.js +3 -0
  353. package/src/components/block-edit/index.js +36 -10
  354. package/src/components/block-info-slot-fill/index.js +6 -3
  355. package/src/components/block-inspector/style.scss +0 -4
  356. package/src/components/block-list/block.js +39 -5
  357. package/src/components/block-list/block.native.js +18 -4
  358. package/src/components/block-list/use-block-props/index.js +74 -21
  359. package/src/components/block-list/use-block-props/use-focus-first-element.js +1 -34
  360. package/src/components/block-list/use-block-props/use-is-hovered.js +2 -13
  361. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +1 -5
  362. package/src/components/block-patterns-list/index.js +1 -1
  363. package/src/components/block-removal-warning-modal/index.js +7 -14
  364. package/src/components/block-rename/modal.js +7 -1
  365. package/src/components/block-settings/container.native.js +3 -5
  366. package/src/components/block-styles/index.js +1 -1
  367. package/src/components/block-styles/index.native.js +4 -2
  368. package/src/components/block-styles/style.scss +0 -11
  369. package/src/components/block-switcher/test/__snapshots__/index.js.snap +3 -1
  370. package/src/components/block-toolbar/index.js +180 -95
  371. package/src/components/block-toolbar/style.scss +50 -66
  372. package/src/components/block-tools/block-toolbar-breadcrumb.js +46 -0
  373. package/src/components/block-tools/block-toolbar-popover.js +90 -0
  374. package/src/components/block-tools/index.js +42 -29
  375. package/src/components/block-tools/style.scss +60 -172
  376. package/src/components/block-types-list/index.native.js +2 -1
  377. package/src/components/block-variation-picker/index.native.js +1 -1
  378. package/src/components/colors-gradients/control.js +49 -30
  379. package/src/components/colors-gradients/style.scss +0 -7
  380. package/src/components/duotone-control/index.js +2 -5
  381. package/src/components/duotone-control/style.scss +1 -6
  382. package/src/components/global-styles/color-panel.js +34 -25
  383. package/src/components/global-styles/filters-panel.js +8 -4
  384. package/src/components/global-styles/typography-panel.js +23 -43
  385. package/src/components/image-link-destinations/index.native.js +152 -0
  386. package/src/components/image-link-destinations/style.native.scss +16 -0
  387. package/src/components/index.native.js +1 -0
  388. package/src/components/inner-blocks/README.md +13 -2
  389. package/src/components/inserter/media-tab/media-panel.js +1 -1
  390. package/src/components/inserter/menu.js +16 -8
  391. package/src/components/inserter/preview-panel.js +2 -2
  392. package/src/components/inserter/style.scss +15 -17
  393. package/src/components/inserter-button/README.md +62 -0
  394. package/src/components/inserter-button/index.native.js +116 -0
  395. package/src/components/inserter-button/sparkles.js +15 -0
  396. package/src/components/inserter-button/style.native.scss +72 -0
  397. package/src/components/inserter-draggable-blocks/index.js +18 -5
  398. package/src/components/inspector-controls/fill.js +6 -3
  399. package/src/components/inspector-controls/fill.native.js +6 -3
  400. package/src/components/link-control/style.scss +1 -1
  401. package/src/components/link-control/test/index.js +1 -1
  402. package/src/components/navigable-toolbar/README.md +2 -0
  403. package/src/components/navigable-toolbar/index.js +2 -2
  404. package/src/components/preview-options/index.js +6 -86
  405. package/src/components/rich-text/content.js +27 -20
  406. package/src/components/rich-text/get-rich-text-values.js +6 -1
  407. package/src/components/rich-text/index.js +5 -46
  408. package/src/components/rich-text/index.native.js +8 -25
  409. package/src/components/rich-text/native/get-format-colors.native.js +33 -40
  410. package/src/components/rich-text/native/index.native.js +7 -48
  411. package/src/components/rich-text/use-input-rules.js +6 -1
  412. package/src/components/rich-text/with-deprecations.js +51 -0
  413. package/src/components/use-block-drop-zone/index.js +114 -14
  414. package/src/components/use-on-block-drop/index.js +2 -1
  415. package/src/components/use-resize-canvas/README.md +3 -3
  416. package/src/components/use-resize-canvas/index.js +4 -1
  417. package/src/components/use-settings/index.js +15 -1
  418. package/src/hooks/align.js +15 -76
  419. package/src/hooks/align.native.js +1 -0
  420. package/src/hooks/anchor.js +13 -33
  421. package/src/hooks/background.js +28 -23
  422. package/src/hooks/block-hooks.js +22 -51
  423. package/src/hooks/block-renaming.js +23 -37
  424. package/src/hooks/border.js +67 -118
  425. package/src/hooks/color.js +100 -132
  426. package/src/hooks/content-lock-ui.js +110 -122
  427. package/src/hooks/custom-class-name.js +8 -40
  428. package/src/hooks/custom-fields.js +20 -47
  429. package/src/hooks/dimensions.js +20 -16
  430. package/src/hooks/duotone.js +70 -127
  431. package/src/hooks/font-family.js +10 -29
  432. package/src/hooks/font-size.js +66 -162
  433. package/src/hooks/index.js +42 -14
  434. package/src/hooks/index.native.js +6 -3
  435. package/src/hooks/layout-child.js +53 -0
  436. package/src/hooks/layout.js +13 -102
  437. package/src/hooks/padding.js +2 -2
  438. package/src/hooks/position.js +50 -90
  439. package/src/hooks/style.js +117 -187
  440. package/src/hooks/test/align.js +1 -178
  441. package/src/hooks/typography.js +20 -16
  442. package/src/hooks/utils.js +187 -6
  443. package/src/private-apis.js +0 -2
  444. package/src/store/private-actions.js +8 -0
  445. package/src/store/private-selectors.js +45 -0
  446. package/src/store/reducer.js +8 -0
  447. package/src/store/selectors.js +5 -69
  448. package/src/store/utils.js +74 -0
  449. package/src/style.scss +0 -2
  450. package/src/utils/object.js +18 -69
  451. package/src/utils/selection.js +9 -2
  452. package/build/components/block-list/use-block-props/use-block-class-names.js +0 -67
  453. package/build/components/block-list/use-block-props/use-block-class-names.js.map +0 -1
  454. package/build/components/block-list/use-block-props/use-block-custom-class-name.js +0 -46
  455. package/build/components/block-list/use-block-props/use-block-custom-class-name.js.map +0 -1
  456. package/build/components/block-list/use-block-props/use-block-default-class-name.js +0 -37
  457. package/build/components/block-list/use-block-props/use-block-default-class-name.js.map +0 -1
  458. package/build/components/block-tools/back-compat.js +0 -45
  459. package/build/components/block-tools/back-compat.js.map +0 -1
  460. package/build/components/block-tools/block-contextual-toolbar.js +0 -91
  461. package/build/components/block-tools/block-contextual-toolbar.js.map +0 -1
  462. package/build/components/block-tools/selected-block-tools.js +0 -113
  463. package/build/components/block-tools/selected-block-tools.js.map +0 -1
  464. package/build/components/inserter/hooks/use-debounced-input.js +0 -22
  465. package/build/components/inserter/hooks/use-debounced-input.js.map +0 -1
  466. package/build/components/use-display-block-controls/index.js +0 -39
  467. package/build/components/use-display-block-controls/index.js.map +0 -1
  468. package/build/components/use-display-block-controls/index.native.js +0 -39
  469. package/build/components/use-display-block-controls/index.native.js.map +0 -1
  470. package/build-module/components/block-list/use-block-props/use-block-class-names.js +0 -60
  471. package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +0 -1
  472. package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js +0 -40
  473. package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js.map +0 -1
  474. package/build-module/components/block-list/use-block-props/use-block-default-class-name.js +0 -31
  475. package/build-module/components/block-list/use-block-props/use-block-default-class-name.js.map +0 -1
  476. package/build-module/components/block-tools/back-compat.js +0 -35
  477. package/build-module/components/block-tools/back-compat.js.map +0 -1
  478. package/build-module/components/block-tools/block-contextual-toolbar.js +0 -83
  479. package/build-module/components/block-tools/block-contextual-toolbar.js.map +0 -1
  480. package/build-module/components/block-tools/selected-block-tools.js +0 -105
  481. package/build-module/components/block-tools/selected-block-tools.js.map +0 -1
  482. package/build-module/components/inserter/hooks/use-debounced-input.js +0 -15
  483. package/build-module/components/inserter/hooks/use-debounced-input.js.map +0 -1
  484. package/build-module/components/use-display-block-controls/index.js +0 -32
  485. package/build-module/components/use-display-block-controls/index.js.map +0 -1
  486. package/build-module/components/use-display-block-controls/index.native.js +0 -32
  487. package/build-module/components/use-display-block-controls/index.native.js.map +0 -1
  488. package/src/components/block-list/use-block-props/use-block-class-names.js +0 -66
  489. package/src/components/block-list/use-block-props/use-block-custom-class-name.js +0 -44
  490. package/src/components/block-list/use-block-props/use-block-default-class-name.js +0 -35
  491. package/src/components/block-parent-selector/style.scss +0 -11
  492. package/src/components/block-tools/back-compat.js +0 -35
  493. package/src/components/block-tools/block-contextual-toolbar.js +0 -100
  494. package/src/components/block-tools/selected-block-tools.js +0 -127
  495. package/src/components/inserter/hooks/use-debounced-input.js +0 -18
  496. package/src/components/preview-options/README.md +0 -94
  497. package/src/components/preview-options/style.scss +0 -64
  498. package/src/components/use-display-block-controls/index.js +0 -36
  499. package/src/components/use-display-block-controls/index.native.js +0 -37
  500. package/src/hooks/test/color.js +0 -112
@@ -8,6 +8,7 @@ import { WIDE_ALIGNMENTS } from '@wordpress/components';
8
8
  const ALIGNMENTS = [ 'left', 'center', 'right' ];
9
9
 
10
10
  export * from './align.js';
11
+ export { default } from './align.js';
11
12
 
12
13
  // Used to filter out blocks that don't support wide/full alignment on mobile
13
14
  addFilter(
@@ -5,7 +5,6 @@ import { addFilter } from '@wordpress/hooks';
5
5
  import { PanelBody, TextControl, ExternalLink } from '@wordpress/components';
6
6
  import { __ } from '@wordpress/i18n';
7
7
  import { hasBlockSupport } from '@wordpress/blocks';
8
- import { createHigherOrderComponent } from '@wordpress/compose';
9
8
  import { Platform } from '@wordpress/element';
10
9
 
11
10
  /**
@@ -52,7 +51,11 @@ export function addAttribute( settings ) {
52
51
  return settings;
53
52
  }
54
53
 
55
- function BlockEditAnchorControl( { blockName, attributes, setAttributes } ) {
54
+ function BlockEditAnchorControlPure( {
55
+ name: blockName,
56
+ anchor,
57
+ setAttributes,
58
+ } ) {
56
59
  const blockEditingMode = useBlockEditingMode();
57
60
 
58
61
  const isWeb = Platform.OS === 'web';
@@ -79,7 +82,7 @@ function BlockEditAnchorControl( { blockName, attributes, setAttributes } ) {
79
82
  ) }
80
83
  </>
81
84
  }
82
- value={ attributes.anchor || '' }
85
+ value={ anchor || '' }
83
86
  placeholder={ ! isWeb ? __( 'Add an anchor' ) : null }
84
87
  onChange={ ( nextValue ) => {
85
88
  nextValue = nextValue.replace( ANCHOR_REGEX, '-' );
@@ -116,31 +119,13 @@ function BlockEditAnchorControl( { blockName, attributes, setAttributes } ) {
116
119
  );
117
120
  }
118
121
 
119
- /**
120
- * Override the default edit UI to include a new block inspector control for
121
- * assigning the anchor ID, if block supports anchor.
122
- *
123
- * @param {Component} BlockEdit Original component.
124
- *
125
- * @return {Component} Wrapped component.
126
- */
127
- export const withAnchorControls = createHigherOrderComponent( ( BlockEdit ) => {
128
- return ( props ) => {
129
- return (
130
- <>
131
- <BlockEdit { ...props } />
132
- { props.isSelected &&
133
- hasBlockSupport( props.name, 'anchor' ) && (
134
- <BlockEditAnchorControl
135
- blockName={ props.name }
136
- attributes={ props.attributes }
137
- setAttributes={ props.setAttributes }
138
- />
139
- ) }
140
- </>
141
- );
142
- };
143
- }, 'withAnchorControls' );
122
+ export default {
123
+ edit: BlockEditAnchorControlPure,
124
+ attributeKeys: [ 'anchor' ],
125
+ hasSupport( name ) {
126
+ return hasBlockSupport( name, 'anchor' );
127
+ },
128
+ };
144
129
 
145
130
  /**
146
131
  * Override props assigned to save component to inject anchor ID, if block
@@ -162,11 +147,6 @@ export function addSaveProps( extraProps, blockType, attributes ) {
162
147
  }
163
148
 
164
149
  addFilter( 'blocks.registerBlockType', 'core/anchor/attribute', addAttribute );
165
- addFilter(
166
- 'editor.BlockEdit',
167
- 'core/editor/anchor/with-inspector-controls',
168
- withAnchorControls
169
- );
170
150
  addFilter(
171
151
  'blocks.getSaveContent.extraProps',
172
152
  'core/editor/anchor/save-props',
@@ -24,6 +24,7 @@ import { Platform, useCallback, useRef } from '@wordpress/element';
24
24
  import { __, sprintf } from '@wordpress/i18n';
25
25
  import { store as noticesStore } from '@wordpress/notices';
26
26
  import { getFilename } from '@wordpress/url';
27
+ import { pure } from '@wordpress/compose';
27
28
 
28
29
  /**
29
30
  * Internal dependencies
@@ -41,13 +42,13 @@ export const IMAGE_BACKGROUND_TYPE = 'image';
41
42
  * Checks if there is a current value in the background image block support
42
43
  * attributes.
43
44
  *
44
- * @param {Object} props Block props.
45
+ * @param {Object} style Style attribute.
45
46
  * @return {boolean} Whether or not the block has a background image value set.
46
47
  */
47
- export function hasBackgroundImageValue( props ) {
48
+ export function hasBackgroundImageValue( style ) {
48
49
  const hasValue =
49
- !! props.attributes.style?.background?.backgroundImage?.id ||
50
- !! props.attributes.style?.background?.backgroundImage?.url;
50
+ !! style?.background?.backgroundImage?.id ||
51
+ !! style?.background?.backgroundImage?.url;
51
52
 
52
53
  return hasValue;
53
54
  }
@@ -82,13 +83,10 @@ export function hasBackgroundSupport( blockName, feature = 'any' ) {
82
83
  * Resets the background image block support attributes. This can be used when disabling
83
84
  * the background image controls for a block via a `ToolsPanel`.
84
85
  *
85
- * @param {Object} props Block props.
86
- * @param {Object} props.attributes Block's attributes.
87
- * @param {Object} props.setAttributes Function to set block's attributes.
86
+ * @param {Object} style Style attribute.
87
+ * @param {Function} setAttributes Function to set block's attributes.
88
88
  */
89
- export function resetBackgroundImage( { attributes = {}, setAttributes } ) {
90
- const { style = {} } = attributes;
91
-
89
+ export function resetBackgroundImage( style = {}, setAttributes ) {
92
90
  setAttributes( {
93
91
  style: cleanEmptyObject( {
94
92
  ...style,
@@ -145,11 +143,13 @@ function InspectorImagePreview( { label, filename, url: imgUrl } ) {
145
143
  );
146
144
  }
147
145
 
148
- function BackgroundImagePanelItem( props ) {
149
- const { attributes, clientId, setAttributes } = props;
150
-
151
- const { id, title, url } =
152
- attributes.style?.background?.backgroundImage || {};
146
+ function BackgroundImagePanelItem( { clientId, setAttributes } ) {
147
+ const style = useSelect(
148
+ ( select ) =>
149
+ select( blockEditorStore ).getBlockAttributes( clientId )?.style,
150
+ [ clientId ]
151
+ );
152
+ const { id, title, url } = style?.background?.backgroundImage || {};
153
153
 
154
154
  const replaceContainerRef = useRef();
155
155
 
@@ -167,9 +167,9 @@ function BackgroundImagePanelItem( props ) {
167
167
  const onSelectMedia = ( media ) => {
168
168
  if ( ! media || ! media.url ) {
169
169
  const newStyle = {
170
- ...attributes.style,
170
+ ...style,
171
171
  background: {
172
- ...attributes.style?.background,
172
+ ...style?.background,
173
173
  backgroundImage: undefined,
174
174
  },
175
175
  };
@@ -201,9 +201,9 @@ function BackgroundImagePanelItem( props ) {
201
201
  }
202
202
 
203
203
  const newStyle = {
204
- ...attributes.style,
204
+ ...style,
205
205
  background: {
206
- ...attributes.style?.background,
206
+ ...style?.background,
207
207
  backgroundImage: {
208
208
  url: media.url,
209
209
  id: media.id,
@@ -244,14 +244,14 @@ function BackgroundImagePanelItem( props ) {
244
244
  };
245
245
  }, [] );
246
246
 
247
- const hasValue = hasBackgroundImageValue( props );
247
+ const hasValue = hasBackgroundImageValue( style );
248
248
 
249
249
  return (
250
250
  <ToolsPanelItem
251
251
  className="single-column"
252
252
  hasValue={ () => hasValue }
253
253
  label={ __( 'Background image' ) }
254
- onDeselect={ () => resetBackgroundImage( props ) }
254
+ onDeselect={ () => resetBackgroundImage( style, setAttributes ) }
255
255
  isShownByDefault={ true }
256
256
  resetAllFilter={ resetAllFilter }
257
257
  panelId={ clientId }
@@ -286,7 +286,7 @@ function BackgroundImagePanelItem( props ) {
286
286
  // closed and focus is redirected to the dropdown toggle button.
287
287
  toggleButton?.focus();
288
288
  toggleButton?.click();
289
- resetBackgroundImage( props );
289
+ resetBackgroundImage( style, setAttributes );
290
290
  } }
291
291
  >
292
292
  { __( 'Reset ' ) }
@@ -302,7 +302,7 @@ function BackgroundImagePanelItem( props ) {
302
302
  );
303
303
  }
304
304
 
305
- export function BackgroundImagePanel( props ) {
305
+ function BackgroundImagePanelPure( props ) {
306
306
  const [ backgroundImage ] = useSettings( 'background.backgroundImage' );
307
307
  if (
308
308
  ! backgroundImage ||
@@ -317,3 +317,8 @@ export function BackgroundImagePanel( props ) {
317
317
  </InspectorControls>
318
318
  );
319
319
  }
320
+
321
+ // We don't want block controls to re-render when typing inside a block. `pure`
322
+ // will prevent re-renders unless props change, so only pass the needed props
323
+ // and not the whole attributes object.
324
+ export const BackgroundImagePanel = pure( BackgroundImagePanelPure );
@@ -2,14 +2,12 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import { __ } from '@wordpress/i18n';
5
- import { addFilter } from '@wordpress/hooks';
6
5
  import { Fragment, useMemo } from '@wordpress/element';
7
6
  import {
8
7
  __experimentalHStack as HStack,
9
8
  PanelBody,
10
9
  ToggleControl,
11
10
  } from '@wordpress/components';
12
- import { createHigherOrderComponent } from '@wordpress/compose';
13
11
  import { createBlock, store as blocksStore } from '@wordpress/blocks';
14
12
  import { useDispatch, useSelect } from '@wordpress/data';
15
13
 
@@ -21,7 +19,7 @@ import { store as blockEditorStore } from '../store';
21
19
 
22
20
  const EMPTY_OBJECT = {};
23
21
 
24
- function BlockHooksControl( props ) {
22
+ function BlockHooksControlPure( { name, clientId } ) {
25
23
  const blockTypes = useSelect(
26
24
  ( select ) => select( blocksStore ).getBlockTypes(),
27
25
  []
@@ -30,10 +28,9 @@ function BlockHooksControl( props ) {
30
28
  const hookedBlocksForCurrentBlock = useMemo(
31
29
  () =>
32
30
  blockTypes?.filter(
33
- ( { blockHooks } ) =>
34
- blockHooks && props.blockName in blockHooks
31
+ ( { blockHooks } ) => blockHooks && name in blockHooks
35
32
  ),
36
- [ blockTypes, props.blockName ]
33
+ [ blockTypes, name ]
37
34
  );
38
35
 
39
36
  const { blockIndex, rootClientId, innerBlocksLength } = useSelect(
@@ -42,13 +39,12 @@ function BlockHooksControl( props ) {
42
39
  select( blockEditorStore );
43
40
 
44
41
  return {
45
- blockIndex: getBlockIndex( props.clientId ),
46
- innerBlocksLength: getBlock( props.clientId )?.innerBlocks
47
- ?.length,
48
- rootClientId: getBlockRootClientId( props.clientId ),
42
+ blockIndex: getBlockIndex( clientId ),
43
+ innerBlocksLength: getBlock( clientId )?.innerBlocks?.length,
44
+ rootClientId: getBlockRootClientId( clientId ),
49
45
  };
50
46
  },
51
- [ props.clientId ]
47
+ [ clientId ]
52
48
  );
53
49
 
54
50
  const hookedBlockClientIds = useSelect(
@@ -65,8 +61,7 @@ function BlockHooksControl( props ) {
65
61
  return clientIds;
66
62
  }
67
63
 
68
- const relativePosition =
69
- block?.blockHooks?.[ props.blockName ];
64
+ const relativePosition = block?.blockHooks?.[ name ];
70
65
  let candidates;
71
66
 
72
67
  switch ( relativePosition ) {
@@ -83,12 +78,12 @@ function BlockHooksControl( props ) {
83
78
  // Any of the current block's child blocks (with the right block type) qualifies
84
79
  // as a hooked first or last child block, as the block might've been automatically
85
80
  // inserted and then moved around a bit by the user.
86
- candidates = getBlock( props.clientId ).innerBlocks;
81
+ candidates = getBlock( clientId ).innerBlocks;
87
82
  break;
88
83
  }
89
84
 
90
85
  const hookedBlock = candidates?.find(
91
- ( { name } ) => name === block.name
86
+ ( candidate ) => name === candidate.name
92
87
  );
93
88
 
94
89
  // If the block exists in the designated location, we consider it hooked
@@ -118,12 +113,7 @@ function BlockHooksControl( props ) {
118
113
 
119
114
  return EMPTY_OBJECT;
120
115
  },
121
- [
122
- hookedBlocksForCurrentBlock,
123
- props.blockName,
124
- props.clientId,
125
- rootClientId,
126
- ]
116
+ [ hookedBlocksForCurrentBlock, name, clientId, rootClientId ]
127
117
  );
128
118
 
129
119
  const { insertBlock, removeBlock } = useDispatch( blockEditorStore );
@@ -169,7 +159,7 @@ function BlockHooksControl( props ) {
169
159
  block,
170
160
  // TODO: It'd be great if insertBlock() would accept negative indices for insertion.
171
161
  relativePosition === 'first_child' ? 0 : innerBlocksLength,
172
- props.clientId, // Insert as a child of the current block.
162
+ clientId, // Insert as a child of the current block.
173
163
  false
174
164
  );
175
165
  break;
@@ -207,9 +197,7 @@ function BlockHooksControl( props ) {
207
197
  if ( ! checked ) {
208
198
  // Create and insert block.
209
199
  const relativePosition =
210
- block.blockHooks[
211
- props.blockName
212
- ];
200
+ block.blockHooks[ name ];
213
201
  insertBlockIntoDesignatedLocation(
214
202
  createBlock( block.name ),
215
203
  relativePosition
@@ -218,11 +206,12 @@ function BlockHooksControl( props ) {
218
206
  }
219
207
 
220
208
  // Remove block.
221
- const clientId =
209
+ removeBlock(
222
210
  hookedBlockClientIds[
223
211
  block.name
224
- ];
225
- removeBlock( clientId, false );
212
+ ],
213
+ false
214
+ );
226
215
  } }
227
216
  />
228
217
  );
@@ -235,27 +224,9 @@ function BlockHooksControl( props ) {
235
224
  );
236
225
  }
237
226
 
238
- export const withBlockHooksControls = createHigherOrderComponent(
239
- ( BlockEdit ) => {
240
- return ( props ) => {
241
- return (
242
- <>
243
- <BlockEdit key="edit" { ...props } />
244
- { props.isSelected && (
245
- <BlockHooksControl
246
- blockName={ props.name }
247
- clientId={ props.clientId }
248
- />
249
- ) }
250
- </>
251
- );
252
- };
227
+ export default {
228
+ edit: BlockHooksControlPure,
229
+ hasSupport() {
230
+ return true;
253
231
  },
254
- 'withBlockHooksControls'
255
- );
256
-
257
- addFilter(
258
- 'editor.BlockEdit',
259
- 'core/editor/block-hooks/with-inspector-controls',
260
- withBlockHooksControls
261
- );
232
+ };
@@ -3,7 +3,6 @@
3
3
  */
4
4
  import { addFilter } from '@wordpress/hooks';
5
5
  import { hasBlockSupport } from '@wordpress/blocks';
6
- import { createHigherOrderComponent } from '@wordpress/compose';
7
6
  import { __ } from '@wordpress/i18n';
8
7
  import { TextControl } from '@wordpress/components';
9
8
 
@@ -11,7 +10,6 @@ import { TextControl } from '@wordpress/components';
11
10
  * Internal dependencies
12
11
  */
13
12
  import { InspectorControls } from '../components';
14
- import { useBlockRename } from '../components/block-rename';
15
13
 
16
14
  /**
17
15
  * Filters registered block settings, adding an `__experimentalLabel` callback if one does not already exist.
@@ -47,43 +45,31 @@ export function addLabelCallback( settings ) {
47
45
  return settings;
48
46
  }
49
47
 
50
- export const withBlockRenameControl = createHigherOrderComponent(
51
- ( BlockEdit ) => ( props ) => {
52
- const { name, attributes, setAttributes, isSelected } = props;
53
-
54
- const { canRename } = useBlockRename( name );
48
+ function BlockRenameControlPure( { metadata, setAttributes } ) {
49
+ return (
50
+ <InspectorControls group="advanced">
51
+ <TextControl
52
+ __nextHasNoMarginBottom
53
+ __next40pxDefaultSize
54
+ label={ __( 'Block name' ) }
55
+ value={ metadata?.name || '' }
56
+ onChange={ ( newName ) => {
57
+ setAttributes( {
58
+ metadata: { ...metadata, name: newName },
59
+ } );
60
+ } }
61
+ />
62
+ </InspectorControls>
63
+ );
64
+ }
55
65
 
56
- return (
57
- <>
58
- { isSelected && canRename && (
59
- <InspectorControls group="advanced">
60
- <TextControl
61
- __nextHasNoMarginBottom
62
- label={ __( 'Block name' ) }
63
- value={ attributes?.metadata?.name || '' }
64
- onChange={ ( newName ) => {
65
- setAttributes( {
66
- metadata: {
67
- ...attributes?.metadata,
68
- name: newName,
69
- },
70
- } );
71
- } }
72
- />
73
- </InspectorControls>
74
- ) }
75
- <BlockEdit key="edit" { ...props } />
76
- </>
77
- );
66
+ export default {
67
+ edit: BlockRenameControlPure,
68
+ attributeKeys: [ 'metadata' ],
69
+ hasSupport( name ) {
70
+ return hasBlockSupport( name, 'renaming', true );
78
71
  },
79
- 'withToolbarControls'
80
- );
81
-
82
- addFilter(
83
- 'editor.BlockEdit',
84
- 'core/block-rename-ui/with-block-rename-control',
85
- withBlockRenameControl
86
- );
72
+ };
87
73
 
88
74
  addFilter(
89
75
  'blocks.registerBlockType',