@wordpress/block-editor 12.13.0 → 12.15.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 (528) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +1 -1
  3. package/build/components/block-heading-level-dropdown/index.js +1 -1
  4. package/build/components/block-heading-level-dropdown/index.js.map +1 -1
  5. package/build/components/block-list/block.native.js +2 -0
  6. package/build/components/block-list/block.native.js.map +1 -1
  7. package/build/components/block-list/index.js +2 -9
  8. package/build/components/block-list/index.js.map +1 -1
  9. package/build/components/block-list-appender/index.js +16 -3
  10. package/build/components/block-list-appender/index.js.map +1 -1
  11. package/build/components/block-parent-selector/index.js +1 -1
  12. package/build/components/block-parent-selector/index.js.map +1 -1
  13. package/build/components/block-pattern-setup/index.js +25 -16
  14. package/build/components/block-pattern-setup/index.js.map +1 -1
  15. package/build/components/block-pattern-setup/setup-toolbar.js +4 -2
  16. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  17. package/build/components/block-patterns-list/index.js +36 -19
  18. package/build/components/block-patterns-list/index.js.map +1 -1
  19. package/build/components/block-quick-navigation/index.js +6 -4
  20. package/build/components/block-quick-navigation/index.js.map +1 -1
  21. package/build/components/block-rename/index.js +28 -0
  22. package/build/components/block-rename/index.js.map +1 -0
  23. package/build/components/block-rename/is-empty-string.js +10 -0
  24. package/build/components/block-rename/is-empty-string.js.map +1 -0
  25. package/build/components/block-rename/modal.js +87 -0
  26. package/build/components/block-rename/modal.js.map +1 -0
  27. package/build/components/block-rename/rename-control.js +74 -0
  28. package/build/components/block-rename/rename-control.js.map +1 -0
  29. package/build/components/block-rename/use-block-rename.js +17 -0
  30. package/build/components/block-rename/use-block-rename.js.map +1 -0
  31. package/build/components/block-settings-menu/block-settings-dropdown.js +33 -20
  32. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  33. package/build/components/block-settings-menu-controls/index.js +7 -0
  34. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  35. package/build/components/block-styles/index.js +0 -8
  36. package/build/components/block-styles/index.js.map +1 -1
  37. package/build/components/block-switcher/pattern-transformations-menu.js +18 -14
  38. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  39. package/build/components/block-toolbar/block-toolbar-menu.native.js +1 -1
  40. package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  41. package/build/components/block-tools/back-compat.js +2 -2
  42. package/build/components/block-tools/back-compat.js.map +1 -1
  43. package/build/components/block-tools/block-contextual-toolbar.js +11 -81
  44. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  45. package/build/components/block-tools/empty-block-inserter.js +56 -0
  46. package/build/components/block-tools/empty-block-inserter.js.map +1 -0
  47. package/build/components/block-tools/index.js +48 -9
  48. package/build/components/block-tools/index.js.map +1 -1
  49. package/build/components/block-tools/selected-block-tools.js +113 -0
  50. package/build/components/block-tools/selected-block-tools.js.map +1 -0
  51. package/build/components/block-tools/use-selected-block-tool-props.js +56 -0
  52. package/build/components/block-tools/use-selected-block-tool-props.js.map +1 -0
  53. package/build/components/block-types-list/index.js +6 -2
  54. package/build/components/block-types-list/index.js.map +1 -1
  55. package/build/components/date-format-picker/index.js +8 -1
  56. package/build/components/date-format-picker/index.js.map +1 -1
  57. package/build/components/editable-text/index.js +1 -2
  58. package/build/components/editable-text/index.js.map +1 -1
  59. package/build/components/global-styles/advanced-panel.js +1 -1
  60. package/build/components/global-styles/advanced-panel.js.map +1 -1
  61. package/build/components/iframe/index.js +4 -3
  62. package/build/components/iframe/index.js.map +1 -1
  63. package/build/components/image-size-control/index.js +0 -5
  64. package/build/components/image-size-control/index.js.map +1 -1
  65. package/build/components/inner-blocks/index.js +3 -1
  66. package/build/components/inner-blocks/index.js.map +1 -1
  67. package/build/components/inner-blocks/warning-max-depth-exceeded.native.js +29 -31
  68. package/build/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
  69. package/build/components/inserter/block-patterns-explorer/{explorer.js → index.js} +7 -7
  70. package/build/components/inserter/block-patterns-explorer/index.js.map +1 -0
  71. package/build/components/inserter/block-patterns-explorer/{sidebar.js → pattern-explorer-sidebar.js} +1 -1
  72. package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -0
  73. package/build/components/inserter/block-patterns-explorer/{patterns-list.js → pattern-list.js} +4 -4
  74. package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -0
  75. package/build/components/inserter/block-patterns-tab/index.js +75 -0
  76. package/build/components/inserter/block-patterns-tab/index.js.map +1 -0
  77. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +48 -0
  78. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -0
  79. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +108 -0
  80. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -0
  81. package/build/components/inserter/{block-patterns-filter.js → block-patterns-tab/patterns-filter.js} +18 -34
  82. package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -0
  83. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js +55 -0
  84. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -0
  85. package/build/components/inserter/block-patterns-tab/utils.js +69 -0
  86. package/build/components/inserter/block-patterns-tab/utils.js.map +1 -0
  87. package/build/components/inserter/hooks/use-patterns-state.js +2 -1
  88. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  89. package/build/components/inserter/media-tab/media-list.js +9 -5
  90. package/build/components/inserter/media-tab/media-list.js.map +1 -1
  91. package/build/components/inserter/media-tab/media-preview.js +15 -12
  92. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  93. package/build/components/inserter/menu.js +3 -4
  94. package/build/components/inserter/menu.js.map +1 -1
  95. package/build/components/inserter-listbox/index.js +11 -6
  96. package/build/components/inserter-listbox/index.js.map +1 -1
  97. package/build/components/inserter-listbox/item.js +24 -23
  98. package/build/components/inserter-listbox/item.js.map +1 -1
  99. package/build/components/inserter-listbox/row.js +5 -5
  100. package/build/components/inserter-listbox/row.js.map +1 -1
  101. package/build/components/link-control/index.js +6 -5
  102. package/build/components/link-control/index.js.map +1 -1
  103. package/build/components/list-view/block-select-button.js +39 -0
  104. package/build/components/list-view/block-select-button.js.map +1 -1
  105. package/build/components/list-view/block.js +16 -3
  106. package/build/components/list-view/block.js.map +1 -1
  107. package/build/components/list-view/index.js +3 -2
  108. package/build/components/list-view/index.js.map +1 -1
  109. package/build/components/list-view/use-list-view-expand-selected-item.js +2 -3
  110. package/build/components/list-view/use-list-view-expand-selected-item.js.map +1 -1
  111. package/build/components/navigable-toolbar/index.js +69 -18
  112. package/build/components/navigable-toolbar/index.js.map +1 -1
  113. package/build/components/preview-options/index.js +4 -2
  114. package/build/components/preview-options/index.js.map +1 -1
  115. package/build/components/provider/use-block-sync.js +1 -14
  116. package/build/components/provider/use-block-sync.js.map +1 -1
  117. package/build/components/rich-text/index.js +0 -1
  118. package/build/components/rich-text/index.js.map +1 -1
  119. package/build/components/rich-text/index.native.js +4 -2
  120. package/build/components/rich-text/index.native.js.map +1 -1
  121. package/build/components/rich-text/native/format-edit.js +45 -0
  122. package/build/components/rich-text/native/format-edit.js.map +1 -0
  123. package/build/components/rich-text/native/get-format-colors.native.js +41 -0
  124. package/build/components/rich-text/native/get-format-colors.native.js.map +1 -0
  125. package/build/components/rich-text/native/index.js +9 -0
  126. package/build/components/rich-text/native/index.js.map +1 -0
  127. package/build/components/rich-text/native/index.native.js +1189 -0
  128. package/build/components/rich-text/native/index.native.js.map +1 -0
  129. package/build/components/rich-text/native/toolbar-button-with-options.native.js +58 -0
  130. package/build/components/rich-text/native/toolbar-button-with-options.native.js.map +1 -0
  131. package/build/components/rich-text/native/use-format-types.js +111 -0
  132. package/build/components/rich-text/native/use-format-types.js.map +1 -0
  133. package/build/components/rich-text/use-input-rules.js +30 -1
  134. package/build/components/rich-text/use-input-rules.js.map +1 -1
  135. package/build/components/rich-text/use-paste-handler.js +2 -5
  136. package/build/components/rich-text/use-paste-handler.js.map +1 -1
  137. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  138. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  139. package/build/components/url-popover/image-url-input-ui.js +2 -1
  140. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  141. package/build/components/use-block-drop-zone/index.js +4 -1
  142. package/build/components/use-block-drop-zone/index.js.map +1 -1
  143. package/build/components/use-moving-animation/index.js +2 -1
  144. package/build/components/use-moving-animation/index.js.map +1 -1
  145. package/build/components/use-settings/index.js +2 -2
  146. package/build/components/use-settings/index.js.map +1 -1
  147. package/build/components/writing-flow/use-tab-nav.js +7 -3
  148. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  149. package/build/hooks/align.js +10 -10
  150. package/build/hooks/align.js.map +1 -1
  151. package/build/hooks/align.native.js +2 -2
  152. package/build/hooks/align.native.js.map +1 -1
  153. package/build/hooks/anchor.js +7 -6
  154. package/build/hooks/anchor.js.map +1 -1
  155. package/build/hooks/background.js +16 -4
  156. package/build/hooks/background.js.map +1 -1
  157. package/build/hooks/block-hooks.js +7 -8
  158. package/build/hooks/block-hooks.js.map +1 -1
  159. package/build/hooks/block-renaming.js +42 -0
  160. package/build/hooks/block-renaming.js.map +1 -1
  161. package/build/hooks/content-lock-ui.js +5 -5
  162. package/build/hooks/content-lock-ui.js.map +1 -1
  163. package/build/hooks/custom-class-name.js +8 -7
  164. package/build/hooks/custom-class-name.js.map +1 -1
  165. package/build/hooks/custom-fields.js +57 -52
  166. package/build/hooks/custom-fields.js.map +1 -1
  167. package/build/hooks/duotone.js +9 -20
  168. package/build/hooks/duotone.js.map +1 -1
  169. package/build/hooks/index.js +0 -1
  170. package/build/hooks/index.js.map +1 -1
  171. package/build/hooks/layout.js +103 -93
  172. package/build/hooks/layout.js.map +1 -1
  173. package/build/hooks/position.js +10 -9
  174. package/build/hooks/position.js.map +1 -1
  175. package/build/hooks/style.js +10 -13
  176. package/build/hooks/style.js.map +1 -1
  177. package/build/hooks/utils.js +30 -0
  178. package/build/hooks/utils.js.map +1 -1
  179. package/build/layouts/constrained.js +4 -3
  180. package/build/layouts/constrained.js.map +1 -1
  181. package/build/private-apis.js +3 -0
  182. package/build/private-apis.js.map +1 -1
  183. package/build/store/actions.js +30 -37
  184. package/build/store/actions.js.map +1 -1
  185. package/build/store/reducer.js +18 -0
  186. package/build/store/reducer.js.map +1 -1
  187. package/build/store/selectors.js +18 -13
  188. package/build/store/selectors.js.map +1 -1
  189. package/build/utils/transform-styles/index.js +26 -6
  190. package/build/utils/transform-styles/index.js.map +1 -1
  191. package/build-module/components/block-heading-level-dropdown/index.js +1 -1
  192. package/build-module/components/block-heading-level-dropdown/index.js.map +1 -1
  193. package/build-module/components/block-list/block.native.js +2 -0
  194. package/build-module/components/block-list/block.native.js.map +1 -1
  195. package/build-module/components/block-list/index.js +3 -10
  196. package/build-module/components/block-list/index.js.map +1 -1
  197. package/build-module/components/block-list-appender/index.js +16 -3
  198. package/build-module/components/block-list-appender/index.js.map +1 -1
  199. package/build-module/components/block-parent-selector/index.js +1 -1
  200. package/build-module/components/block-parent-selector/index.js.map +1 -1
  201. package/build-module/components/block-pattern-setup/index.js +24 -15
  202. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  203. package/build-module/components/block-pattern-setup/setup-toolbar.js +4 -2
  204. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  205. package/build-module/components/block-patterns-list/index.js +36 -19
  206. package/build-module/components/block-patterns-list/index.js.map +1 -1
  207. package/build-module/components/block-quick-navigation/index.js +7 -5
  208. package/build-module/components/block-quick-navigation/index.js.map +1 -1
  209. package/build-module/components/block-rename/index.js +4 -0
  210. package/build-module/components/block-rename/index.js.map +1 -0
  211. package/build-module/components/block-rename/is-empty-string.js +4 -0
  212. package/build-module/components/block-rename/is-empty-string.js.map +1 -0
  213. package/build-module/components/block-rename/modal.js +79 -0
  214. package/build-module/components/block-rename/modal.js.map +1 -0
  215. package/build-module/components/block-rename/rename-control.js +66 -0
  216. package/build-module/components/block-rename/rename-control.js.map +1 -0
  217. package/build-module/components/block-rename/use-block-rename.js +10 -0
  218. package/build-module/components/block-rename/use-block-rename.js.map +1 -0
  219. package/build-module/components/block-settings-menu/block-settings-dropdown.js +34 -21
  220. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  221. package/build-module/components/block-settings-menu-controls/index.js +7 -0
  222. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  223. package/build-module/components/block-styles/index.js +0 -8
  224. package/build-module/components/block-styles/index.js.map +1 -1
  225. package/build-module/components/block-switcher/pattern-transformations-menu.js +17 -13
  226. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  227. package/build-module/components/block-toolbar/block-toolbar-menu.native.js +1 -1
  228. package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  229. package/build-module/components/block-tools/back-compat.js +1 -1
  230. package/build-module/components/block-tools/back-compat.js.map +1 -1
  231. package/build-module/components/block-tools/block-contextual-toolbar.js +11 -80
  232. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  233. package/build-module/components/block-tools/empty-block-inserter.js +48 -0
  234. package/build-module/components/block-tools/empty-block-inserter.js.map +1 -0
  235. package/build-module/components/block-tools/index.js +48 -9
  236. package/build-module/components/block-tools/index.js.map +1 -1
  237. package/build-module/components/block-tools/selected-block-tools.js +105 -0
  238. package/build-module/components/block-tools/selected-block-tools.js.map +1 -0
  239. package/build-module/components/block-tools/use-selected-block-tool-props.js +50 -0
  240. package/build-module/components/block-tools/use-selected-block-tool-props.js.map +1 -0
  241. package/build-module/components/block-types-list/index.js +6 -2
  242. package/build-module/components/block-types-list/index.js.map +1 -1
  243. package/build-module/components/date-format-picker/index.js +8 -1
  244. package/build-module/components/date-format-picker/index.js.map +1 -1
  245. package/build-module/components/editable-text/index.js +1 -2
  246. package/build-module/components/editable-text/index.js.map +1 -1
  247. package/build-module/components/global-styles/advanced-panel.js +1 -1
  248. package/build-module/components/global-styles/advanced-panel.js.map +1 -1
  249. package/build-module/components/iframe/index.js +4 -3
  250. package/build-module/components/iframe/index.js.map +1 -1
  251. package/build-module/components/image-size-control/index.js +0 -5
  252. package/build-module/components/image-size-control/index.js.map +1 -1
  253. package/build-module/components/inner-blocks/index.js +3 -1
  254. package/build-module/components/inner-blocks/index.js.map +1 -1
  255. package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js +30 -32
  256. package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
  257. package/build-module/components/inserter/block-patterns-explorer/{explorer.js → index.js} +5 -5
  258. package/build-module/components/inserter/block-patterns-explorer/index.js.map +1 -0
  259. package/build-module/components/inserter/block-patterns-explorer/{sidebar.js → pattern-explorer-sidebar.js} +1 -1
  260. package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -0
  261. package/build-module/components/inserter/block-patterns-explorer/{patterns-list.js → pattern-list.js} +3 -3
  262. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -0
  263. package/build-module/components/inserter/block-patterns-tab/index.js +66 -0
  264. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -0
  265. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +42 -0
  266. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -0
  267. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +100 -0
  268. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -0
  269. package/build-module/components/inserter/{block-patterns-filter.js → block-patterns-tab/patterns-filter.js} +7 -20
  270. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -0
  271. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js +47 -0
  272. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -0
  273. package/build-module/components/inserter/block-patterns-tab/utils.js +57 -0
  274. package/build-module/components/inserter/block-patterns-tab/utils.js.map +1 -0
  275. package/build-module/components/inserter/hooks/use-patterns-state.js +2 -1
  276. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  277. package/build-module/components/inserter/media-tab/media-list.js +9 -5
  278. package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
  279. package/build-module/components/inserter/media-tab/media-preview.js +15 -12
  280. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  281. package/build-module/components/inserter/menu.js +4 -3
  282. package/build-module/components/inserter/menu.js.map +1 -1
  283. package/build-module/components/inserter-listbox/index.js +13 -8
  284. package/build-module/components/inserter-listbox/index.js.map +1 -1
  285. package/build-module/components/inserter-listbox/item.js +25 -23
  286. package/build-module/components/inserter-listbox/item.js.map +1 -1
  287. package/build-module/components/inserter-listbox/row.js +6 -5
  288. package/build-module/components/inserter-listbox/row.js.map +1 -1
  289. package/build-module/components/link-control/index.js +7 -6
  290. package/build-module/components/link-control/index.js.map +1 -1
  291. package/build-module/components/list-view/block-select-button.js +39 -0
  292. package/build-module/components/list-view/block-select-button.js.map +1 -1
  293. package/build-module/components/list-view/block.js +16 -3
  294. package/build-module/components/list-view/block.js.map +1 -1
  295. package/build-module/components/list-view/index.js +3 -2
  296. package/build-module/components/list-view/index.js.map +1 -1
  297. package/build-module/components/list-view/use-list-view-expand-selected-item.js +2 -3
  298. package/build-module/components/list-view/use-list-view-expand-selected-item.js.map +1 -1
  299. package/build-module/components/navigable-toolbar/index.js +69 -17
  300. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  301. package/build-module/components/preview-options/index.js +4 -2
  302. package/build-module/components/preview-options/index.js.map +1 -1
  303. package/build-module/components/provider/use-block-sync.js +1 -14
  304. package/build-module/components/provider/use-block-sync.js.map +1 -1
  305. package/build-module/components/rich-text/index.js +0 -1
  306. package/build-module/components/rich-text/index.js.map +1 -1
  307. package/build-module/components/rich-text/index.native.js +4 -2
  308. package/build-module/components/rich-text/index.native.js.map +1 -1
  309. package/build-module/components/rich-text/native/format-edit.js +38 -0
  310. package/build-module/components/rich-text/native/format-edit.js.map +1 -0
  311. package/build-module/components/rich-text/native/get-format-colors.native.js +34 -0
  312. package/build-module/components/rich-text/native/get-format-colors.native.js.map +1 -0
  313. package/build-module/components/rich-text/native/index.js +2 -0
  314. package/build-module/components/rich-text/native/index.js.map +1 -0
  315. package/build-module/components/rich-text/native/index.native.js +1179 -0
  316. package/build-module/components/rich-text/native/index.native.js.map +1 -0
  317. package/build-module/components/rich-text/native/toolbar-button-with-options.native.js +51 -0
  318. package/build-module/components/rich-text/native/toolbar-button-with-options.native.js.map +1 -0
  319. package/build-module/components/rich-text/native/use-format-types.js +104 -0
  320. package/build-module/components/rich-text/native/use-format-types.js.map +1 -0
  321. package/build-module/components/rich-text/use-input-rules.js +31 -2
  322. package/build-module/components/rich-text/use-input-rules.js.map +1 -1
  323. package/build-module/components/rich-text/use-paste-handler.js +2 -5
  324. package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
  325. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  326. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  327. package/build-module/components/url-popover/image-url-input-ui.js +2 -1
  328. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  329. package/build-module/components/use-block-drop-zone/index.js +4 -1
  330. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  331. package/build-module/components/use-moving-animation/index.js +2 -1
  332. package/build-module/components/use-moving-animation/index.js.map +1 -1
  333. package/build-module/components/use-settings/index.js +2 -2
  334. package/build-module/components/use-settings/index.js.map +1 -1
  335. package/build-module/components/writing-flow/use-tab-nav.js +7 -3
  336. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  337. package/build-module/hooks/align.js +8 -8
  338. package/build-module/hooks/align.js.map +1 -1
  339. package/build-module/hooks/align.native.js +2 -2
  340. package/build-module/hooks/align.native.js.map +1 -1
  341. package/build-module/hooks/anchor.js +5 -4
  342. package/build-module/hooks/anchor.js.map +1 -1
  343. package/build-module/hooks/background.js +17 -5
  344. package/build-module/hooks/background.js.map +1 -1
  345. package/build-module/hooks/block-hooks.js +5 -6
  346. package/build-module/hooks/block-hooks.js.map +1 -1
  347. package/build-module/hooks/block-renaming.js +40 -0
  348. package/build-module/hooks/block-renaming.js.map +1 -1
  349. package/build-module/hooks/content-lock-ui.js +3 -3
  350. package/build-module/hooks/content-lock-ui.js.map +1 -1
  351. package/build-module/hooks/custom-class-name.js +6 -5
  352. package/build-module/hooks/custom-class-name.js.map +1 -1
  353. package/build-module/hooks/custom-fields.js +57 -52
  354. package/build-module/hooks/custom-fields.js.map +1 -1
  355. package/build-module/hooks/duotone.js +10 -21
  356. package/build-module/hooks/duotone.js.map +1 -1
  357. package/build-module/hooks/index.js +0 -1
  358. package/build-module/hooks/index.js.map +1 -1
  359. package/build-module/hooks/layout.js +103 -93
  360. package/build-module/hooks/layout.js.map +1 -1
  361. package/build-module/hooks/position.js +11 -10
  362. package/build-module/hooks/position.js.map +1 -1
  363. package/build-module/hooks/style.js +10 -13
  364. package/build-module/hooks/style.js.map +1 -1
  365. package/build-module/hooks/utils.js +30 -1
  366. package/build-module/hooks/utils.js.map +1 -1
  367. package/build-module/layouts/constrained.js +4 -3
  368. package/build-module/layouts/constrained.js.map +1 -1
  369. package/build-module/private-apis.js +4 -1
  370. package/build-module/private-apis.js.map +1 -1
  371. package/build-module/store/actions.js +29 -37
  372. package/build-module/store/actions.js.map +1 -1
  373. package/build-module/store/reducer.js +17 -0
  374. package/build-module/store/reducer.js.map +1 -1
  375. package/build-module/store/selectors.js +17 -13
  376. package/build-module/store/selectors.js.map +1 -1
  377. package/build-module/utils/transform-styles/index.js +24 -7
  378. package/build-module/utils/transform-styles/index.js.map +1 -1
  379. package/build-style/content-rtl.css +6 -6
  380. package/build-style/content.css +6 -6
  381. package/build-style/style-rtl.css +26 -20
  382. package/build-style/style.css +26 -20
  383. package/package.json +31 -31
  384. package/src/components/block-heading-level-dropdown/index.js +1 -1
  385. package/src/components/block-list/block.native.js +2 -0
  386. package/src/components/block-list/index.js +4 -18
  387. package/src/components/block-list-appender/index.js +20 -4
  388. package/src/components/block-parent-selector/index.js +1 -1
  389. package/src/components/block-pattern-setup/index.js +38 -22
  390. package/src/components/block-pattern-setup/setup-toolbar.js +2 -0
  391. package/src/components/block-pattern-setup/style.scss +4 -1
  392. package/src/components/block-patterns-list/README.md +4 -4
  393. package/src/components/block-patterns-list/index.js +60 -34
  394. package/src/components/block-patterns-list/style.scss +7 -0
  395. package/src/components/block-quick-navigation/index.js +11 -5
  396. package/src/components/block-rename/index.js +3 -0
  397. package/src/components/block-rename/is-empty-string.js +3 -0
  398. package/src/components/block-rename/modal.js +115 -0
  399. package/src/components/block-rename/rename-control.js +80 -0
  400. package/src/components/block-rename/use-block-rename.js +10 -0
  401. package/src/components/block-settings-menu/block-settings-dropdown.js +38 -34
  402. package/src/components/block-settings-menu-controls/index.js +9 -0
  403. package/src/components/block-styles/index.js +0 -10
  404. package/src/components/block-switcher/pattern-transformations-menu.js +20 -14
  405. package/src/components/block-toolbar/block-toolbar-menu.native.js +1 -4
  406. package/src/components/block-toolbar/style.scss +8 -0
  407. package/src/components/block-tools/back-compat.js +1 -1
  408. package/src/components/block-tools/block-contextual-toolbar.js +11 -134
  409. package/src/components/block-tools/empty-block-inserter.js +56 -0
  410. package/src/components/block-tools/index.js +72 -16
  411. package/src/components/block-tools/selected-block-tools.js +127 -0
  412. package/src/components/block-tools/style.scss +0 -10
  413. package/src/components/block-tools/use-selected-block-tool-props.js +66 -0
  414. package/src/components/block-types-list/index.js +5 -4
  415. package/src/components/button-block-appender/content.scss +2 -2
  416. package/src/components/date-format-picker/index.js +7 -0
  417. package/src/components/editable-text/README.md +0 -36
  418. package/src/components/editable-text/index.js +1 -8
  419. package/src/components/global-styles/advanced-panel.js +1 -1
  420. package/src/components/iframe/index.js +4 -3
  421. package/src/components/image-size-control/index.js +0 -6
  422. package/src/components/inner-blocks/index.js +6 -2
  423. package/src/components/inner-blocks/warning-max-depth-exceeded.native.js +57 -33
  424. package/src/components/inserter/block-patterns-explorer/{explorer.js → index.js} +4 -4
  425. package/src/components/inserter/block-patterns-explorer/{patterns-list.js → pattern-list.js} +9 -2
  426. package/src/components/inserter/block-patterns-tab/index.js +118 -0
  427. package/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +48 -0
  428. package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +179 -0
  429. package/src/components/inserter/{block-patterns-filter.js → block-patterns-tab/patterns-filter.js} +15 -21
  430. package/src/components/inserter/block-patterns-tab/use-pattern-categories.js +101 -0
  431. package/src/components/inserter/block-patterns-tab/utils.js +78 -0
  432. package/src/components/inserter/hooks/use-patterns-state.js +3 -1
  433. package/src/components/inserter/media-tab/media-list.js +7 -7
  434. package/src/components/inserter/media-tab/media-preview.js +27 -22
  435. package/src/components/inserter/menu.js +4 -5
  436. package/src/components/inserter-listbox/index.js +11 -7
  437. package/src/components/inserter-listbox/item.js +11 -12
  438. package/src/components/inserter-listbox/row.js +6 -12
  439. package/src/components/link-control/README.md +2 -2
  440. package/src/components/link-control/index.js +15 -6
  441. package/src/components/link-control/style.scss +8 -5
  442. package/src/components/list-view/block-select-button.js +44 -1
  443. package/src/components/list-view/block.js +11 -11
  444. package/src/components/list-view/index.js +2 -0
  445. package/src/components/list-view/use-list-view-expand-selected-item.js +7 -8
  446. package/src/components/media-replace-flow/style.scss +2 -2
  447. package/src/components/navigable-toolbar/index.js +71 -25
  448. package/src/components/plain-text/README.md +2 -30
  449. package/src/components/preview-options/index.js +2 -0
  450. package/src/components/provider/use-block-sync.js +2 -21
  451. package/src/components/rich-text/README.md +6 -63
  452. package/src/components/rich-text/index.js +0 -1
  453. package/src/components/rich-text/index.native.js +4 -2
  454. package/src/components/rich-text/native/format-edit.js +44 -0
  455. package/src/components/rich-text/native/get-format-colors.native.js +54 -0
  456. package/src/components/rich-text/native/index.js +1 -0
  457. package/src/components/rich-text/native/index.native.js +1406 -0
  458. package/src/components/rich-text/native/style.native.scss +28 -0
  459. package/src/components/rich-text/native/test/__snapshots__/index.native.js.snap +79 -0
  460. package/src/components/rich-text/native/test/index.native.js +278 -0
  461. package/src/components/rich-text/native/test/performance/rich-text.native.js +44 -0
  462. package/src/components/rich-text/native/toolbar-button-with-options.native.js +61 -0
  463. package/src/components/rich-text/native/use-format-types.js +146 -0
  464. package/src/components/rich-text/use-input-rules.js +30 -2
  465. package/src/components/rich-text/use-paste-handler.js +1 -6
  466. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  467. package/src/components/url-input/README.md +1 -74
  468. package/src/components/url-popover/image-url-input-ui.js +1 -0
  469. package/src/components/use-block-drop-zone/index.js +4 -1
  470. package/src/components/use-moving-animation/index.js +1 -1
  471. package/src/components/use-settings/index.js +2 -2
  472. package/src/components/use-settings/test/index.js +1 -1
  473. package/src/components/writing-flow/use-tab-nav.js +8 -3
  474. package/src/hooks/align.js +8 -8
  475. package/src/hooks/align.native.js +2 -2
  476. package/src/hooks/anchor.js +21 -23
  477. package/src/hooks/background.js +28 -6
  478. package/src/hooks/block-hooks.js +20 -16
  479. package/src/hooks/block-renaming.js +47 -0
  480. package/src/hooks/content-lock-ui.js +3 -3
  481. package/src/hooks/custom-class-name.js +7 -6
  482. package/src/hooks/custom-fields.js +73 -70
  483. package/src/hooks/duotone.js +23 -33
  484. package/src/hooks/index.js +0 -1
  485. package/src/hooks/layout.js +126 -113
  486. package/src/hooks/position.js +8 -21
  487. package/src/hooks/style.js +17 -31
  488. package/src/hooks/test/__snapshots__/align.native.js.snap +5 -5
  489. package/src/hooks/test/align.js +4 -4
  490. package/src/hooks/utils.js +33 -1
  491. package/src/layouts/constrained.js +57 -50
  492. package/src/private-apis.js +4 -1
  493. package/src/store/actions.js +26 -72
  494. package/src/store/reducer.js +19 -0
  495. package/src/store/selectors.js +15 -19
  496. package/src/style.scss +1 -1
  497. package/src/utils/test/transform-styles.js +49 -0
  498. package/src/utils/transform-styles/index.js +39 -13
  499. package/build/components/block-tools/selected-block-popover.js +0 -221
  500. package/build/components/block-tools/selected-block-popover.js.map +0 -1
  501. package/build/components/inserter/block-patterns-explorer/explorer.js.map +0 -1
  502. package/build/components/inserter/block-patterns-explorer/patterns-list.js.map +0 -1
  503. package/build/components/inserter/block-patterns-explorer/sidebar.js.map +0 -1
  504. package/build/components/inserter/block-patterns-filter.js.map +0 -1
  505. package/build/components/inserter/block-patterns-tab.js +0 -270
  506. package/build/components/inserter/block-patterns-tab.js.map +0 -1
  507. package/build/hooks/block-rename-ui.js +0 -165
  508. package/build/hooks/block-rename-ui.js.map +0 -1
  509. package/build/store/utils.js +0 -22
  510. package/build/store/utils.js.map +0 -1
  511. package/build-module/components/block-tools/selected-block-popover.js +0 -213
  512. package/build-module/components/block-tools/selected-block-popover.js.map +0 -1
  513. package/build-module/components/inserter/block-patterns-explorer/explorer.js.map +0 -1
  514. package/build-module/components/inserter/block-patterns-explorer/patterns-list.js.map +0 -1
  515. package/build-module/components/inserter/block-patterns-explorer/sidebar.js.map +0 -1
  516. package/build-module/components/inserter/block-patterns-filter.js.map +0 -1
  517. package/build-module/components/inserter/block-patterns-tab.js +0 -254
  518. package/build-module/components/inserter/block-patterns-tab.js.map +0 -1
  519. package/build-module/hooks/block-rename-ui.js +0 -157
  520. package/build-module/hooks/block-rename-ui.js.map +0 -1
  521. package/build-module/store/utils.js +0 -16
  522. package/build-module/store/utils.js.map +0 -1
  523. package/src/components/block-tools/selected-block-popover.js +0 -265
  524. package/src/components/inserter/block-patterns-tab.js +0 -448
  525. package/src/hooks/block-rename-ui.js +0 -226
  526. package/src/store/utils.js +0 -12
  527. /package/src/{hooks/block-rename-ui.scss → components/block-rename/style.scss} +0 -0
  528. /package/src/components/inserter/block-patterns-explorer/{sidebar.js → pattern-explorer-sidebar.js} +0 -0
@@ -35,7 +35,6 @@ export function usePasteHandler( props ) {
35
35
  onReplace,
36
36
  onSplit,
37
37
  __unstableEmbedURLOnPaste,
38
- preserveWhiteSpace,
39
38
  pastePlainText,
40
39
  } = propsRef.current;
41
40
 
@@ -63,10 +62,7 @@ export function usePasteHandler( props ) {
63
62
  // without filtering the data. The filters are only meant for externally
64
63
  // pasted content and remove inline styles.
65
64
  if ( isInternal ) {
66
- const pastedValue = create( {
67
- html,
68
- preserveWhiteSpace,
69
- } );
65
+ const pastedValue = create( { html } );
70
66
  addActiveFormats( pastedValue, value.activeFormats );
71
67
  onChange( insert( value, pastedValue ) );
72
68
  return;
@@ -136,7 +132,6 @@ export function usePasteHandler( props ) {
136
132
  plainText,
137
133
  mode,
138
134
  tagName,
139
- preserveWhiteSpace,
140
135
  } );
141
136
 
142
137
  if ( typeof content === 'string' ) {
@@ -139,7 +139,7 @@ export default function SpacingInputControl( {
139
139
  useMemo(
140
140
  () => parseQuantityAndUnitFromRawValue( currentValue ),
141
141
  [ currentValue ]
142
- )[ 1 ] || units[ 0 ].value;
142
+ )[ 1 ] || units[ 0 ]?.value;
143
143
 
144
144
  const setInitialValue = () => {
145
145
  if ( value === undefined ) {
@@ -36,41 +36,6 @@ This prop is passed directly to the `URLInput` component.
36
36
 
37
37
  ## Example
38
38
 
39
- {% codetabs %}
40
- {% ES5 %}
41
-
42
- ```js
43
- wp.blocks.registerBlockType( /* ... */, {
44
- // ...
45
-
46
- attributes: {
47
- url: {
48
- type: 'string'
49
- },
50
- text: {
51
- type: 'string'
52
- }
53
- },
54
-
55
- edit: function( props ) {
56
- return React.createElement( wp.blockEditor.URLInputButton, {
57
- className: props.className,
58
- url: props.attributes.url,
59
- onChange: function( url, post ) {
60
- props.setAttributes( { url: url, text: (post && post.title) || 'Click here' } );
61
- }
62
- } );
63
- },
64
-
65
- save: function( props ) {
66
- return React.createElement( 'a', {
67
- href: props.attributes.url,
68
- }, props.attributes.text );
69
- }
70
- } );
71
- ```
72
-
73
- {% ESNext %}
74
39
 
75
40
  ```js
76
41
  import { registerBlockType } from '@wordpress/blocks';
@@ -103,7 +68,6 @@ registerBlockType( /* ... */, {
103
68
  } );
104
69
  ```
105
70
 
106
- {% end %}
107
71
 
108
72
  # `URLInput`
109
73
 
@@ -139,7 +103,7 @@ _Required._ Called when the value changes. The second parameter is `null` unless
139
103
  }
140
104
  ```
141
105
 
142
- ### `onKeydown`: `( event: KeyboardEvent ) => void`
106
+ ### `onKeyDown`: `( event: KeyboardEvent ) => void`
143
107
 
144
108
  A callback invoked on the keydown event.
145
109
 
@@ -172,41 +136,6 @@ Start opting into the new margin-free styles that will become the default in a f
172
136
 
173
137
  ## Example
174
138
 
175
- {% codetabs %}
176
- {% ES5 %}
177
-
178
- ```js
179
- wp.blocks.registerBlockType( /* ... */, {
180
- // ...
181
-
182
- attributes: {
183
- url: {
184
- type: 'string'
185
- },
186
- text: {
187
- type: 'string'
188
- }
189
- },
190
-
191
- edit: function( props ) {
192
- return React.createElement( wp.blockEditor.URLInput, {
193
- className: props.className,
194
- value: props.attributes.url,
195
- onChange: function( url, post ) {
196
- props.setAttributes( { url: url, text: (post && post.title) || 'Click here' } );
197
- }
198
- } );
199
- },
200
-
201
- save: function( props ) {
202
- return React.createElement( 'a', {
203
- href: props.attributes.url,
204
- }, props.attributes.text );
205
- }
206
- } );
207
- ```
208
-
209
- {% ESNext %}
210
139
 
211
140
  ```js
212
141
  import { registerBlockType } from '@wordpress/blocks';
@@ -240,5 +169,3 @@ registerBlockType( /* ... */, {
240
169
  }
241
170
  } );
242
171
  ```
243
-
244
- {% end %}
@@ -249,6 +249,7 @@ const ImageURLInputUI = ( {
249
249
  aria-expanded={ isOpen }
250
250
  onClick={ openLinkUI }
251
251
  ref={ setPopoverAnchor }
252
+ isActive={ !! url }
252
253
  />
253
254
  { isOpen && (
254
255
  <URLPopover
@@ -127,7 +127,8 @@ export function getDropTargetPosition(
127
127
 
128
128
  /**
129
129
  * @typedef {Object} WPBlockDropZoneConfig
130
- * @property {string} rootClientId The root client id for the block list.
130
+ * @property {?HTMLElement} dropZoneElement Optional element to be used as the drop zone.
131
+ * @property {string} rootClientId The root client id for the block list.
131
132
  */
132
133
 
133
134
  /**
@@ -136,6 +137,7 @@ export function getDropTargetPosition(
136
137
  * @param {WPBlockDropZoneConfig} dropZoneConfig configuration data for the drop zone.
137
138
  */
138
139
  export default function useBlockDropZone( {
140
+ dropZoneElement,
139
141
  // An undefined value represents a top-level block. Default to an empty
140
142
  // string for this so that `targetRootClientId` can be easily compared to
141
143
  // values returned by the `getRootBlockClientId` selector, which also uses
@@ -235,6 +237,7 @@ export default function useBlockDropZone( {
235
237
  );
236
238
 
237
239
  return useDropZone( {
240
+ dropZoneElement,
238
241
  isDisabled,
239
242
  onDrop: onBlockDrop,
240
243
  onDragOver( event ) {
@@ -129,7 +129,7 @@ function useMovingAnimation( {
129
129
  const finishedMoving = x === 0 && y === 0;
130
130
  ref.current.style.transformOrigin = 'center center';
131
131
  ref.current.style.transform = finishedMoving
132
- ? undefined
132
+ ? null // Set to `null` to explicitly remove the transform.
133
133
  : `translate3d(${ x }px,${ y }px,0)`;
134
134
  ref.current.style.zIndex = isSelected ? '1' : '';
135
135
 
@@ -254,7 +254,7 @@ export function useSettings( ...paths ) {
254
254
  *
255
255
  * @param {string} path The path to the setting.
256
256
  * @return {any} Returns the value defined for the setting.
257
- * @deprecated 6.4.0 Use useSettings instead.
257
+ * @deprecated 6.5.0 Use useSettings instead.
258
258
  * @example
259
259
  * ```js
260
260
  * const isEnabled = useSetting( 'typography.dropCap' );
@@ -262,7 +262,7 @@ export function useSettings( ...paths ) {
262
262
  */
263
263
  export function useSetting( path ) {
264
264
  deprecated( 'wp.blockEditor.useSetting', {
265
- since: '6.4',
265
+ since: '6.5',
266
266
  alternative: 'wp.blockEditor.useSettings',
267
267
  note: 'The new useSettings function can retrieve multiple settings at once, with better performance.',
268
268
  } );
@@ -135,7 +135,7 @@ describe( 'useSettings', () => {
135
135
  const result = runHook( () => useSetting( 'layout.contentSize' ) );
136
136
  expect( result ).toBe( '840px' );
137
137
  expect( console ).toHaveWarnedWith(
138
- 'wp.blockEditor.useSetting is deprecated since version 6.4. Please use wp.blockEditor.useSettings instead.'
138
+ 'wp.blockEditor.useSetting is deprecated since version 6.5. Please use wp.blockEditor.useSettings instead.'
139
139
  );
140
140
  } );
141
141
  } );
@@ -17,15 +17,20 @@ export default function useTabNav() {
17
17
  const container = useRef();
18
18
  const focusCaptureBeforeRef = useRef();
19
19
  const focusCaptureAfterRef = useRef();
20
- const lastFocus = useRef();
20
+
21
21
  const { hasMultiSelection, getSelectedBlockClientId, getBlockCount } =
22
22
  useSelect( blockEditorStore );
23
- const { setNavigationMode } = useDispatch( blockEditorStore );
23
+ const { setNavigationMode, setLastFocus } = useDispatch( blockEditorStore );
24
24
  const isNavigationMode = useSelect(
25
25
  ( select ) => select( blockEditorStore ).isNavigationMode(),
26
26
  []
27
27
  );
28
28
 
29
+ const lastFocus = useSelect(
30
+ ( select ) => select( blockEditorStore ).getLastFocus(),
31
+ []
32
+ );
33
+
29
34
  // Don't allow tabbing to this element in Navigation mode.
30
35
  const focusCaptureTabIndex = ! isNavigationMode ? '0' : undefined;
31
36
 
@@ -158,7 +163,7 @@ export default function useTabNav() {
158
163
  }
159
164
 
160
165
  function onFocusOut( event ) {
161
- lastFocus.current = event.target;
166
+ setLastFocus( { ...lastFocus, current: event.target } );
162
167
 
163
168
  const { ownerDocument } = node;
164
169
 
@@ -98,8 +98,8 @@ export function addAttribute( settings ) {
98
98
  ...settings.attributes,
99
99
  align: {
100
100
  type: 'string',
101
- // Allow for '' since it is used by updateAlignment function
102
- // in withToolbarControls for special cases with defined default values.
101
+ // Allow for '' since it is used by the `updateAlignment` function
102
+ // in toolbar controls for special cases with defined default values.
103
103
  enum: [ ...ALL_ALIGNMENTS, '' ],
104
104
  },
105
105
  };
@@ -115,7 +115,7 @@ function BlockEditAlignmentToolbarControls( {
115
115
  } ) {
116
116
  // Compute the block valid alignments by taking into account,
117
117
  // if the theme supports wide alignments or not and the layout's
118
- // availble alignments. We do that for conditionally rendering
118
+ // available alignments. We do that for conditionally rendering
119
119
  // Slot.
120
120
  const blockAllowedAlignments = getValidAlignments(
121
121
  getBlockSupport( blockName, 'align' ),
@@ -160,7 +160,7 @@ function BlockEditAlignmentToolbarControls( {
160
160
  *
161
161
  * @return {Function} Wrapped component.
162
162
  */
163
- export const withToolbarControls = createHigherOrderComponent(
163
+ export const withAlignmentControls = createHigherOrderComponent(
164
164
  ( BlockEdit ) => ( props ) => {
165
165
  const hasAlignmentSupport = hasBlockSupport(
166
166
  props.name,
@@ -181,7 +181,7 @@ export const withToolbarControls = createHigherOrderComponent(
181
181
  </>
182
182
  );
183
183
  },
184
- 'withToolbarControls'
184
+ 'withAlignmentControls'
185
185
  );
186
186
 
187
187
  function BlockListBlockWithDataAlign( { block: BlockListBlock, props } ) {
@@ -257,7 +257,7 @@ export function addAssignedAlign( props, blockType, attributes ) {
257
257
 
258
258
  addFilter(
259
259
  'blocks.registerBlockType',
260
- 'core/align/addAttribute',
260
+ 'core/editor/align/addAttribute',
261
261
  addAttribute
262
262
  );
263
263
  addFilter(
@@ -268,10 +268,10 @@ addFilter(
268
268
  addFilter(
269
269
  'editor.BlockEdit',
270
270
  'core/editor/align/with-toolbar-controls',
271
- withToolbarControls
271
+ withAlignmentControls
272
272
  );
273
273
  addFilter(
274
274
  'blocks.getSaveContent.extraProps',
275
- 'core/align/addAssignedAlign',
275
+ 'core/editor/align/addAssignedAlign',
276
276
  addAssignedAlign
277
277
  );
@@ -36,8 +36,8 @@ addFilter(
36
36
  ...settings.attributes,
37
37
  align: {
38
38
  type: 'string',
39
- // Allow for '' since it is used by updateAlignment function
40
- // in withToolbarControls for special cases with defined default values.
39
+ // Allow for '' since it is used by the `updateAlignment` function
40
+ // in toolbar controls for special cases with defined default values.
41
41
  enum: [ ...ALIGNMENTS, '' ],
42
42
  },
43
43
  };
@@ -59,6 +59,7 @@ function BlockEditAnchorControl( { blockName, attributes, setAttributes } ) {
59
59
  const textControl = (
60
60
  <TextControl
61
61
  __nextHasNoMarginBottom
62
+ __next40pxDefaultSize
62
63
  className="html-anchor-control"
63
64
  label={ __( 'HTML anchor' ) }
64
65
  help={
@@ -123,26 +124,23 @@ function BlockEditAnchorControl( { blockName, attributes, setAttributes } ) {
123
124
  *
124
125
  * @return {Component} Wrapped component.
125
126
  */
126
- export const withInspectorControl = createHigherOrderComponent(
127
- ( 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
- },
144
- 'withInspectorControl'
145
- );
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' );
146
144
 
147
145
  /**
148
146
  * Override props assigned to save component to inject anchor ID, if block
@@ -166,11 +164,11 @@ export function addSaveProps( extraProps, blockType, attributes ) {
166
164
  addFilter( 'blocks.registerBlockType', 'core/anchor/attribute', addAttribute );
167
165
  addFilter(
168
166
  'editor.BlockEdit',
169
- 'core/editor/anchor/with-inspector-control',
170
- withInspectorControl
167
+ 'core/editor/anchor/with-inspector-controls',
168
+ withAnchorControls
171
169
  );
172
170
  addFilter(
173
171
  'blocks.getSaveContent.extraProps',
174
- 'core/anchor/save-props',
172
+ 'core/editor/anchor/save-props',
175
173
  addSaveProps
176
174
  );
@@ -8,6 +8,7 @@ import classnames from 'classnames';
8
8
  */
9
9
  import { isBlobURL } from '@wordpress/blob';
10
10
  import { getBlockSupport } from '@wordpress/blocks';
11
+ import { focus } from '@wordpress/dom';
11
12
  import {
12
13
  __experimentalToolsPanelItem as ToolsPanelItem,
13
14
  DropZone,
@@ -19,7 +20,7 @@ import {
19
20
  __experimentalTruncate as Truncate,
20
21
  } from '@wordpress/components';
21
22
  import { useDispatch, useSelect } from '@wordpress/data';
22
- import { Platform, useCallback } from '@wordpress/element';
23
+ import { Platform, useCallback, useRef } from '@wordpress/element';
23
24
  import { __, sprintf } from '@wordpress/i18n';
24
25
  import { store as noticesStore } from '@wordpress/notices';
25
26
  import { getFilename } from '@wordpress/url';
@@ -150,6 +151,8 @@ function BackgroundImagePanelItem( props ) {
150
151
  const { id, title, url } =
151
152
  attributes.style?.background?.backgroundImage || {};
152
153
 
154
+ const replaceContainerRef = useRef();
155
+
153
156
  const { mediaUpload } = useSelect( ( select ) => {
154
157
  return {
155
158
  mediaUpload: select( blockEditorStore ).getSettings().mediaUpload,
@@ -241,17 +244,22 @@ function BackgroundImagePanelItem( props ) {
241
244
  };
242
245
  }, [] );
243
246
 
247
+ const hasValue = hasBackgroundImageValue( props );
248
+
244
249
  return (
245
250
  <ToolsPanelItem
246
251
  className="single-column"
247
- hasValue={ () => hasBackgroundImageValue( props ) }
252
+ hasValue={ () => hasValue }
248
253
  label={ __( 'Background image' ) }
249
254
  onDeselect={ () => resetBackgroundImage( props ) }
250
255
  isShownByDefault={ true }
251
256
  resetAllFilter={ resetAllFilter }
252
257
  panelId={ clientId }
253
258
  >
254
- <div className="block-editor-hooks__background__inspector-media-replace-container">
259
+ <div
260
+ className="block-editor-hooks__background__inspector-media-replace-container"
261
+ ref={ replaceContainerRef }
262
+ >
255
263
  <MediaReplaceFlow
256
264
  mediaId={ id }
257
265
  mediaURL={ url }
@@ -267,9 +275,23 @@ function BackgroundImagePanelItem( props ) {
267
275
  }
268
276
  variant="secondary"
269
277
  >
270
- <MenuItem onClick={ () => resetBackgroundImage( props ) }>
271
- { __( 'Reset ' ) }
272
- </MenuItem>
278
+ { hasValue && (
279
+ <MenuItem
280
+ onClick={ () => {
281
+ const [ toggleButton ] = focus.tabbable.find(
282
+ replaceContainerRef.current
283
+ );
284
+ // Focus the toggle button and close the dropdown menu.
285
+ // This ensures similar behaviour as to selecting an image, where the dropdown is
286
+ // closed and focus is redirected to the dropdown toggle button.
287
+ toggleButton?.focus();
288
+ toggleButton?.click();
289
+ resetBackgroundImage( props );
290
+ } }
291
+ >
292
+ { __( 'Reset ' ) }
293
+ </MenuItem>
294
+ ) }
273
295
  </MediaReplaceFlow>
274
296
  <DropZone
275
297
  onFilesDrop={ onFilesDrop }
@@ -235,23 +235,27 @@ function BlockHooksControl( props ) {
235
235
  );
236
236
  }
237
237
 
238
- export const withBlockHooks = createHigherOrderComponent( ( BlockEdit ) => {
239
- return ( props ) => {
240
- const blockEdit = <BlockEdit key="edit" { ...props } />;
241
- return (
242
- <>
243
- { blockEdit }
244
- <BlockHooksControl
245
- blockName={ props.name }
246
- clientId={ props.clientId }
247
- />
248
- </>
249
- );
250
- };
251
- }, 'withBlockHooks' );
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
+ };
253
+ },
254
+ 'withBlockHooksControls'
255
+ );
252
256
 
253
257
  addFilter(
254
258
  'editor.BlockEdit',
255
- 'core/block-hooks/with-inspector-control',
256
- withBlockHooks
259
+ 'core/editor/block-hooks/with-inspector-controls',
260
+ withBlockHooksControls
257
261
  );
@@ -3,6 +3,15 @@
3
3
  */
4
4
  import { addFilter } from '@wordpress/hooks';
5
5
  import { hasBlockSupport } from '@wordpress/blocks';
6
+ import { createHigherOrderComponent } from '@wordpress/compose';
7
+ import { __ } from '@wordpress/i18n';
8
+ import { TextControl } from '@wordpress/components';
9
+
10
+ /**
11
+ * Internal dependencies
12
+ */
13
+ import { InspectorControls } from '../components';
14
+ import { useBlockRename } from '../components/block-rename';
6
15
 
7
16
  /**
8
17
  * Filters registered block settings, adding an `__experimentalLabel` callback if one does not already exist.
@@ -38,6 +47,44 @@ export function addLabelCallback( settings ) {
38
47
  return settings;
39
48
  }
40
49
 
50
+ export const withBlockRenameControl = createHigherOrderComponent(
51
+ ( BlockEdit ) => ( props ) => {
52
+ const { name, attributes, setAttributes, isSelected } = props;
53
+
54
+ const { canRename } = useBlockRename( name );
55
+
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
+ );
78
+ },
79
+ 'withToolbarControls'
80
+ );
81
+
82
+ addFilter(
83
+ 'editor.BlockEdit',
84
+ 'core/block-rename-ui/with-block-rename-control',
85
+ withBlockRenameControl
86
+ );
87
+
41
88
  addFilter(
42
89
  'blocks.registerBlockType',
43
90
  'core/metadata/addLabelCallback',
@@ -37,7 +37,7 @@ function StopEditingAsBlocksOnOutsideSelect( {
37
37
  return null;
38
38
  }
39
39
 
40
- export const withBlockControls = createHigherOrderComponent(
40
+ export const withContentLockControls = createHigherOrderComponent(
41
41
  ( BlockEdit ) => ( props ) => {
42
42
  const { getBlockListSettings, getSettings } =
43
43
  useSelect( blockEditorStore );
@@ -155,11 +155,11 @@ export const withBlockControls = createHigherOrderComponent(
155
155
  </>
156
156
  );
157
157
  },
158
- 'withToolbarControls'
158
+ 'withContentLockControls'
159
159
  );
160
160
 
161
161
  addFilter(
162
162
  'editor.BlockEdit',
163
163
  'core/content-lock-ui/with-block-controls',
164
- withBlockControls
164
+ withContentLockControls
165
165
  );
@@ -49,6 +49,7 @@ function CustomClassNameControls( { attributes, setAttributes } ) {
49
49
  <InspectorControls group="advanced">
50
50
  <TextControl
51
51
  __nextHasNoMarginBottom
52
+ __next40pxDefaultSize
52
53
  autoComplete="off"
53
54
  label={ __( 'Additional CSS class(es)' ) }
54
55
  value={ attributes.className || '' }
@@ -72,7 +73,7 @@ function CustomClassNameControls( { attributes, setAttributes } ) {
72
73
  *
73
74
  * @return {Component} Wrapped component.
74
75
  */
75
- export const withInspectorControl = createHigherOrderComponent(
76
+ export const withCustomClassNameControls = createHigherOrderComponent(
76
77
  ( BlockEdit ) => {
77
78
  return ( props ) => {
78
79
  const hasCustomClassName = hasBlockSupport(
@@ -94,7 +95,7 @@ export const withInspectorControl = createHigherOrderComponent(
94
95
  );
95
96
  };
96
97
  },
97
- 'withInspectorControl'
98
+ 'withCustomClassNameControls'
98
99
  );
99
100
 
100
101
  /**
@@ -163,17 +164,17 @@ export function addTransforms( result, source, index, results ) {
163
164
 
164
165
  addFilter(
165
166
  'blocks.registerBlockType',
166
- 'core/custom-class-name/attribute',
167
+ 'core/editor/custom-class-name/attribute',
167
168
  addAttribute
168
169
  );
169
170
  addFilter(
170
171
  'editor.BlockEdit',
171
- 'core/editor/custom-class-name/with-inspector-control',
172
- withInspectorControl
172
+ 'core/editor/custom-class-name/with-inspector-controls',
173
+ withCustomClassNameControls
173
174
  );
174
175
  addFilter(
175
176
  'blocks.getSaveContent.extraProps',
176
- 'core/custom-class-name/save-props',
177
+ 'core/editor/custom-class-name/save-props',
177
178
  addSaveProps
178
179
  );
179
180