@wordpress/block-editor 12.14.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 (664) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +10 -5
  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 +16 -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-parent-selector/index.js +1 -1
  28. package/build/components/block-parent-selector/index.js.map +1 -1
  29. package/build/components/block-pattern-setup/index.js +25 -16
  30. package/build/components/block-pattern-setup/index.js.map +1 -1
  31. package/build/components/block-pattern-setup/setup-toolbar.js +4 -2
  32. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  33. package/build/components/block-patterns-list/index.js +37 -20
  34. package/build/components/block-patterns-list/index.js.map +1 -1
  35. package/build/components/block-removal-warning-modal/index.js +2 -9
  36. package/build/components/block-removal-warning-modal/index.js.map +1 -1
  37. package/build/components/block-rename/index.js +28 -0
  38. package/build/components/block-rename/index.js.map +1 -0
  39. package/build/components/block-rename/is-empty-string.js +10 -0
  40. package/build/components/block-rename/is-empty-string.js.map +1 -0
  41. package/build/components/block-rename/modal.js +90 -0
  42. package/build/components/block-rename/modal.js.map +1 -0
  43. package/build/components/block-rename/rename-control.js +74 -0
  44. package/build/components/block-rename/rename-control.js.map +1 -0
  45. package/build/components/block-rename/use-block-rename.js +17 -0
  46. package/build/components/block-rename/use-block-rename.js.map +1 -0
  47. package/build/components/block-settings/container.native.js +6 -4
  48. package/build/components/block-settings/container.native.js.map +1 -1
  49. package/build/components/block-settings-menu/block-settings-dropdown.js +33 -20
  50. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  51. package/build/components/block-settings-menu-controls/index.js +7 -0
  52. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  53. package/build/components/block-styles/index.js +1 -1
  54. package/build/components/block-styles/index.js.map +1 -1
  55. package/build/components/block-styles/index.native.js +3 -2
  56. package/build/components/block-styles/index.native.js.map +1 -1
  57. package/build/components/block-toolbar/block-toolbar-menu.native.js +1 -1
  58. package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  59. package/build/components/block-toolbar/index.js +89 -27
  60. package/build/components/block-toolbar/index.js.map +1 -1
  61. package/build/components/block-tools/block-toolbar-breadcrumb.js +49 -0
  62. package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -0
  63. package/build/components/block-tools/block-toolbar-popover.js +86 -0
  64. package/build/components/block-tools/block-toolbar-popover.js.map +1 -0
  65. package/build/components/block-tools/index.js +27 -24
  66. package/build/components/block-tools/index.js.map +1 -1
  67. package/build/components/block-types-list/index.js +6 -2
  68. package/build/components/block-types-list/index.js.map +1 -1
  69. package/build/components/block-types-list/index.native.js +4 -3
  70. package/build/components/block-types-list/index.native.js.map +1 -1
  71. package/build/components/block-variation-picker/index.native.js +2 -1
  72. package/build/components/block-variation-picker/index.native.js.map +1 -1
  73. package/build/components/colors-gradients/control.js +28 -17
  74. package/build/components/colors-gradients/control.js.map +1 -1
  75. package/build/components/date-format-picker/index.js +8 -1
  76. package/build/components/date-format-picker/index.js.map +1 -1
  77. package/build/components/duotone-control/index.js +1 -4
  78. package/build/components/duotone-control/index.js.map +1 -1
  79. package/build/components/global-styles/advanced-panel.js +1 -1
  80. package/build/components/global-styles/advanced-panel.js.map +1 -1
  81. package/build/components/global-styles/color-panel.js +22 -20
  82. package/build/components/global-styles/color-panel.js.map +1 -1
  83. package/build/components/global-styles/filters-panel.js +9 -3
  84. package/build/components/global-styles/filters-panel.js.map +1 -1
  85. package/build/components/global-styles/typography-panel.js +20 -31
  86. package/build/components/global-styles/typography-panel.js.map +1 -1
  87. package/build/components/image-link-destinations/index.native.js +118 -0
  88. package/build/components/image-link-destinations/index.native.js.map +1 -0
  89. package/build/components/image-size-control/index.js +0 -5
  90. package/build/components/image-size-control/index.js.map +1 -1
  91. package/build/components/index.native.js +8 -0
  92. package/build/components/index.native.js.map +1 -1
  93. package/build/components/inner-blocks/index.js +3 -1
  94. package/build/components/inner-blocks/index.js.map +1 -1
  95. package/build/components/inner-blocks/warning-max-depth-exceeded.native.js +29 -31
  96. package/build/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
  97. package/build/components/inserter/block-patterns-explorer/pattern-list.js +1 -1
  98. package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  99. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +1 -1
  100. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  101. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js +1 -1
  102. package/build/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  103. package/build/components/inserter/block-patterns-tab/utils.js +3 -4
  104. package/build/components/inserter/block-patterns-tab/utils.js.map +1 -1
  105. package/build/components/inserter/hooks/use-patterns-state.js +2 -1
  106. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  107. package/build/components/inserter/media-tab/media-panel.js +2 -2
  108. package/build/components/inserter/media-tab/media-panel.js.map +1 -1
  109. package/build/components/inserter/menu.js +14 -7
  110. package/build/components/inserter/menu.js.map +1 -1
  111. package/build/components/inserter/preview-panel.js +2 -2
  112. package/build/components/inserter/preview-panel.js.map +1 -1
  113. package/build/components/inserter-button/index.native.js +98 -0
  114. package/build/components/inserter-button/index.native.js.map +1 -0
  115. package/build/components/inserter-button/sparkles.js +23 -0
  116. package/build/components/inserter-button/sparkles.js.map +1 -0
  117. package/build/components/inserter-draggable-blocks/index.js +8 -4
  118. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  119. package/build/components/inserter-listbox/index.js +11 -6
  120. package/build/components/inserter-listbox/index.js.map +1 -1
  121. package/build/components/inserter-listbox/item.js +24 -23
  122. package/build/components/inserter-listbox/item.js.map +1 -1
  123. package/build/components/inserter-listbox/row.js +5 -5
  124. package/build/components/inserter-listbox/row.js.map +1 -1
  125. package/build/components/inspector-controls/fill.js +3 -3
  126. package/build/components/inspector-controls/fill.js.map +1 -1
  127. package/build/components/inspector-controls/fill.native.js +3 -3
  128. package/build/components/inspector-controls/fill.native.js.map +1 -1
  129. package/build/components/list-view/use-list-view-expand-selected-item.js +2 -3
  130. package/build/components/list-view/use-list-view-expand-selected-item.js.map +1 -1
  131. package/build/components/navigable-toolbar/index.js +2 -2
  132. package/build/components/navigable-toolbar/index.js.map +1 -1
  133. package/build/components/preview-options/index.js +6 -60
  134. package/build/components/preview-options/index.js.map +1 -1
  135. package/build/components/rich-text/content.js +26 -23
  136. package/build/components/rich-text/content.js.map +1 -1
  137. package/build/components/rich-text/get-rich-text-values.js +2 -1
  138. package/build/components/rich-text/get-rich-text-values.js.map +1 -1
  139. package/build/components/rich-text/index.js +2 -30
  140. package/build/components/rich-text/index.js.map +1 -1
  141. package/build/components/rich-text/index.native.js +10 -17
  142. package/build/components/rich-text/index.native.js.map +1 -1
  143. package/build/components/rich-text/native/get-format-colors.native.js +22 -24
  144. package/build/components/rich-text/native/get-format-colors.native.js.map +1 -1
  145. package/build/components/rich-text/native/index.native.js +41 -37
  146. package/build/components/rich-text/native/index.native.js.map +1 -1
  147. package/build/components/rich-text/use-input-rules.js +35 -2
  148. package/build/components/rich-text/use-input-rules.js.map +1 -1
  149. package/build/components/rich-text/with-deprecations.js +50 -0
  150. package/build/components/rich-text/with-deprecations.js.map +1 -0
  151. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  152. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  153. package/build/components/use-block-drop-zone/index.js +74 -9
  154. package/build/components/use-block-drop-zone/index.js.map +1 -1
  155. package/build/components/use-moving-animation/index.js +2 -1
  156. package/build/components/use-moving-animation/index.js.map +1 -1
  157. package/build/components/use-on-block-drop/index.js +1 -1
  158. package/build/components/use-on-block-drop/index.js.map +1 -1
  159. package/build/components/use-resize-canvas/index.js +4 -1
  160. package/build/components/use-resize-canvas/index.js.map +1 -1
  161. package/build/components/use-settings/index.js +16 -2
  162. package/build/components/use-settings/index.js.map +1 -1
  163. package/build/hooks/align.js +20 -68
  164. package/build/hooks/align.js.map +1 -1
  165. package/build/hooks/align.native.js +11 -1
  166. package/build/hooks/align.native.js.map +1 -1
  167. package/build/hooks/anchor.js +13 -29
  168. package/build/hooks/anchor.js.map +1 -1
  169. package/build/hooks/background.js +28 -31
  170. package/build/hooks/background.js.map +1 -1
  171. package/build/hooks/block-hooks.js +24 -32
  172. package/build/hooks/block-hooks.js.map +1 -1
  173. package/build/hooks/block-renaming.js +38 -0
  174. package/build/hooks/block-renaming.js.map +1 -1
  175. package/build/hooks/border.js +58 -80
  176. package/build/hooks/border.js.map +1 -1
  177. package/build/hooks/color.js +76 -89
  178. package/build/hooks/color.js.map +1 -1
  179. package/build/hooks/content-lock-ui.js +29 -29
  180. package/build/hooks/content-lock-ui.js.map +1 -1
  181. package/build/hooks/custom-class-name.js +12 -29
  182. package/build/hooks/custom-class-name.js.map +1 -1
  183. package/build/hooks/custom-fields.js +64 -73
  184. package/build/hooks/custom-fields.js.map +1 -1
  185. package/build/hooks/dimensions.js +21 -17
  186. package/build/hooks/dimensions.js.map +1 -1
  187. package/build/hooks/duotone.js +31 -61
  188. package/build/hooks/duotone.js.map +1 -1
  189. package/build/hooks/font-family.js +16 -25
  190. package/build/hooks/font-family.js.map +1 -1
  191. package/build/hooks/font-size.js +51 -119
  192. package/build/hooks/font-size.js.map +1 -1
  193. package/build/hooks/index.js +25 -15
  194. package/build/hooks/index.js.map +1 -1
  195. package/build/hooks/index.native.js +10 -3
  196. package/build/hooks/index.native.js.map +1 -1
  197. package/build/hooks/layout-child.js +68 -0
  198. package/build/hooks/layout-child.js.map +1 -0
  199. package/build/hooks/layout.js +29 -108
  200. package/build/hooks/layout.js.map +1 -1
  201. package/build/hooks/padding.js +2 -2
  202. package/build/hooks/padding.js.map +1 -1
  203. package/build/hooks/position.js +40 -62
  204. package/build/hooks/position.js.map +1 -1
  205. package/build/hooks/style.js +51 -88
  206. package/build/hooks/style.js.map +1 -1
  207. package/build/hooks/typography.js +34 -14
  208. package/build/hooks/typography.js.map +1 -1
  209. package/build/hooks/utils.js +154 -7
  210. package/build/hooks/utils.js.map +1 -1
  211. package/build/layouts/constrained.js +4 -3
  212. package/build/layouts/constrained.js.map +1 -1
  213. package/build/private-apis.js +0 -2
  214. package/build/private-apis.js.map +1 -1
  215. package/build/store/private-actions.js +8 -0
  216. package/build/store/private-actions.js.map +1 -1
  217. package/build/store/private-selectors.js +34 -0
  218. package/build/store/private-selectors.js.map +1 -1
  219. package/build/store/reducer.js +8 -0
  220. package/build/store/reducer.js.map +1 -1
  221. package/build/store/selectors.js +10 -58
  222. package/build/store/selectors.js.map +1 -1
  223. package/build/store/utils.js +66 -0
  224. package/build/store/utils.js.map +1 -0
  225. package/build/utils/object.js +21 -61
  226. package/build/utils/object.js.map +1 -1
  227. package/build/utils/selection.js +9 -1
  228. package/build/utils/selection.js.map +1 -1
  229. package/build/utils/transform-styles/index.js +26 -6
  230. package/build/utils/transform-styles/index.js.map +1 -1
  231. package/build-module/components/block-canvas/index.js +23 -7
  232. package/build-module/components/block-canvas/index.js.map +1 -1
  233. package/build-module/components/block-card/index.js +1 -1
  234. package/build-module/components/block-card/index.js.map +1 -1
  235. package/build-module/components/block-controls/hook.js +4 -24
  236. package/build-module/components/block-controls/hook.js.map +1 -1
  237. package/build-module/components/block-edit/context.js +2 -0
  238. package/build-module/components/block-edit/context.js.map +1 -1
  239. package/build-module/components/block-edit/index.js +19 -10
  240. package/build-module/components/block-edit/index.js.map +1 -1
  241. package/build-module/components/block-info-slot-fill/index.js +3 -3
  242. package/build-module/components/block-info-slot-fill/index.js.map +1 -1
  243. package/build-module/components/block-list/block.js +29 -10
  244. package/build-module/components/block-list/block.js.map +1 -1
  245. package/build-module/components/block-list/block.native.js +16 -5
  246. package/build-module/components/block-list/block.native.js.map +1 -1
  247. package/build-module/components/block-list/use-block-props/index.js +62 -19
  248. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  249. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +4 -29
  250. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  251. package/build-module/components/block-list/use-block-props/use-is-hovered.js +4 -14
  252. package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  253. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +4 -2
  254. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  255. package/build-module/components/block-parent-selector/index.js +1 -1
  256. package/build-module/components/block-parent-selector/index.js.map +1 -1
  257. package/build-module/components/block-pattern-setup/index.js +24 -15
  258. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  259. package/build-module/components/block-pattern-setup/setup-toolbar.js +4 -2
  260. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  261. package/build-module/components/block-patterns-list/index.js +37 -20
  262. package/build-module/components/block-patterns-list/index.js.map +1 -1
  263. package/build-module/components/block-removal-warning-modal/index.js +3 -10
  264. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  265. package/build-module/components/block-rename/index.js +4 -0
  266. package/build-module/components/block-rename/index.js.map +1 -0
  267. package/build-module/components/block-rename/is-empty-string.js +4 -0
  268. package/build-module/components/block-rename/is-empty-string.js.map +1 -0
  269. package/build-module/components/block-rename/modal.js +82 -0
  270. package/build-module/components/block-rename/modal.js.map +1 -0
  271. package/build-module/components/block-rename/rename-control.js +66 -0
  272. package/build-module/components/block-rename/rename-control.js.map +1 -0
  273. package/build-module/components/block-rename/use-block-rename.js +10 -0
  274. package/build-module/components/block-rename/use-block-rename.js.map +1 -0
  275. package/build-module/components/block-settings/container.native.js +4 -2
  276. package/build-module/components/block-settings/container.native.js.map +1 -1
  277. package/build-module/components/block-settings-menu/block-settings-dropdown.js +34 -21
  278. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  279. package/build-module/components/block-settings-menu-controls/index.js +7 -0
  280. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  281. package/build-module/components/block-styles/index.js +1 -1
  282. package/build-module/components/block-styles/index.js.map +1 -1
  283. package/build-module/components/block-styles/index.native.js +3 -2
  284. package/build-module/components/block-styles/index.native.js.map +1 -1
  285. package/build-module/components/block-toolbar/block-toolbar-menu.native.js +1 -1
  286. package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  287. package/build-module/components/block-toolbar/index.js +88 -25
  288. package/build-module/components/block-toolbar/index.js.map +1 -1
  289. package/build-module/components/block-tools/block-toolbar-breadcrumb.js +41 -0
  290. package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -0
  291. package/build-module/components/block-tools/block-toolbar-popover.js +76 -0
  292. package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -0
  293. package/build-module/components/block-tools/index.js +27 -24
  294. package/build-module/components/block-tools/index.js.map +1 -1
  295. package/build-module/components/block-types-list/index.js +6 -2
  296. package/build-module/components/block-types-list/index.js.map +1 -1
  297. package/build-module/components/block-types-list/index.native.js +2 -1
  298. package/build-module/components/block-types-list/index.native.js.map +1 -1
  299. package/build-module/components/block-variation-picker/index.native.js +2 -1
  300. package/build-module/components/block-variation-picker/index.native.js.map +1 -1
  301. package/build-module/components/colors-gradients/control.js +29 -18
  302. package/build-module/components/colors-gradients/control.js.map +1 -1
  303. package/build-module/components/date-format-picker/index.js +8 -1
  304. package/build-module/components/date-format-picker/index.js.map +1 -1
  305. package/build-module/components/duotone-control/index.js +1 -4
  306. package/build-module/components/duotone-control/index.js.map +1 -1
  307. package/build-module/components/global-styles/advanced-panel.js +1 -1
  308. package/build-module/components/global-styles/advanced-panel.js.map +1 -1
  309. package/build-module/components/global-styles/color-panel.js +23 -21
  310. package/build-module/components/global-styles/color-panel.js.map +1 -1
  311. package/build-module/components/global-styles/filters-panel.js +10 -4
  312. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  313. package/build-module/components/global-styles/typography-panel.js +20 -31
  314. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  315. package/build-module/components/image-link-destinations/index.native.js +109 -0
  316. package/build-module/components/image-link-destinations/index.native.js.map +1 -0
  317. package/build-module/components/image-size-control/index.js +0 -5
  318. package/build-module/components/image-size-control/index.js.map +1 -1
  319. package/build-module/components/index.native.js +1 -0
  320. package/build-module/components/index.native.js.map +1 -1
  321. package/build-module/components/inner-blocks/index.js +3 -1
  322. package/build-module/components/inner-blocks/index.js.map +1 -1
  323. package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js +30 -32
  324. package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
  325. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
  326. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  327. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +4 -4
  328. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  329. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js +2 -2
  330. package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
  331. package/build-module/components/inserter/block-patterns-tab/utils.js +3 -4
  332. package/build-module/components/inserter/block-patterns-tab/utils.js.map +1 -1
  333. package/build-module/components/inserter/hooks/use-patterns-state.js +2 -1
  334. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  335. package/build-module/components/inserter/media-tab/media-panel.js +1 -1
  336. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
  337. package/build-module/components/inserter/menu.js +14 -7
  338. package/build-module/components/inserter/menu.js.map +1 -1
  339. package/build-module/components/inserter/preview-panel.js +2 -2
  340. package/build-module/components/inserter/preview-panel.js.map +1 -1
  341. package/build-module/components/inserter-button/index.native.js +89 -0
  342. package/build-module/components/inserter-button/index.native.js.map +1 -0
  343. package/build-module/components/inserter-button/sparkles.js +15 -0
  344. package/build-module/components/inserter-button/sparkles.js.map +1 -0
  345. package/build-module/components/inserter-draggable-blocks/index.js +9 -5
  346. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  347. package/build-module/components/inserter-listbox/index.js +13 -8
  348. package/build-module/components/inserter-listbox/index.js.map +1 -1
  349. package/build-module/components/inserter-listbox/item.js +25 -23
  350. package/build-module/components/inserter-listbox/item.js.map +1 -1
  351. package/build-module/components/inserter-listbox/row.js +6 -5
  352. package/build-module/components/inserter-listbox/row.js.map +1 -1
  353. package/build-module/components/inspector-controls/fill.js +3 -3
  354. package/build-module/components/inspector-controls/fill.js.map +1 -1
  355. package/build-module/components/inspector-controls/fill.native.js +3 -3
  356. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  357. package/build-module/components/list-view/use-list-view-expand-selected-item.js +2 -3
  358. package/build-module/components/list-view/use-list-view-expand-selected-item.js.map +1 -1
  359. package/build-module/components/navigable-toolbar/index.js +2 -2
  360. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  361. package/build-module/components/preview-options/index.js +6 -60
  362. package/build-module/components/preview-options/index.js.map +1 -1
  363. package/build-module/components/rich-text/content.js +25 -21
  364. package/build-module/components/rich-text/content.js.map +1 -1
  365. package/build-module/components/rich-text/get-rich-text-values.js +2 -1
  366. package/build-module/components/rich-text/get-rich-text-values.js.map +1 -1
  367. package/build-module/components/rich-text/index.js +4 -32
  368. package/build-module/components/rich-text/index.js.map +1 -1
  369. package/build-module/components/rich-text/index.native.js +11 -19
  370. package/build-module/components/rich-text/index.native.js.map +1 -1
  371. package/build-module/components/rich-text/native/get-format-colors.native.js +22 -24
  372. package/build-module/components/rich-text/native/get-format-colors.native.js.map +1 -1
  373. package/build-module/components/rich-text/native/index.native.js +41 -37
  374. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  375. package/build-module/components/rich-text/use-input-rules.js +36 -3
  376. package/build-module/components/rich-text/use-input-rules.js.map +1 -1
  377. package/build-module/components/rich-text/with-deprecations.js +42 -0
  378. package/build-module/components/rich-text/with-deprecations.js.map +1 -0
  379. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  380. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  381. package/build-module/components/use-block-drop-zone/index.js +73 -9
  382. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  383. package/build-module/components/use-moving-animation/index.js +2 -1
  384. package/build-module/components/use-moving-animation/index.js.map +1 -1
  385. package/build-module/components/use-on-block-drop/index.js +1 -1
  386. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  387. package/build-module/components/use-resize-canvas/index.js +4 -1
  388. package/build-module/components/use-resize-canvas/index.js.map +1 -1
  389. package/build-module/components/use-settings/index.js +15 -3
  390. package/build-module/components/use-settings/index.js.map +1 -1
  391. package/build-module/hooks/align.js +19 -66
  392. package/build-module/hooks/align.js.map +1 -1
  393. package/build-module/hooks/align.native.js +1 -0
  394. package/build-module/hooks/align.native.js.map +1 -1
  395. package/build-module/hooks/anchor.js +11 -26
  396. package/build-module/hooks/anchor.js.map +1 -1
  397. package/build-module/hooks/background.js +26 -28
  398. package/build-module/hooks/background.js.map +1 -1
  399. package/build-module/hooks/block-hooks.js +22 -30
  400. package/build-module/hooks/block-hooks.js.map +1 -1
  401. package/build-module/hooks/block-renaming.js +36 -0
  402. package/build-module/hooks/block-renaming.js.map +1 -1
  403. package/build-module/hooks/border.js +57 -78
  404. package/build-module/hooks/border.js.map +1 -1
  405. package/build-module/hooks/color.js +74 -86
  406. package/build-module/hooks/color.js.map +1 -1
  407. package/build-module/hooks/content-lock-ui.js +27 -27
  408. package/build-module/hooks/content-lock-ui.js.map +1 -1
  409. package/build-module/hooks/custom-class-name.js +11 -27
  410. package/build-module/hooks/custom-class-name.js.map +1 -1
  411. package/build-module/hooks/custom-fields.js +60 -74
  412. package/build-module/hooks/custom-fields.js.map +1 -1
  413. package/build-module/hooks/dimensions.js +21 -16
  414. package/build-module/hooks/dimensions.js.map +1 -1
  415. package/build-module/hooks/duotone.js +30 -61
  416. package/build-module/hooks/duotone.js.map +1 -1
  417. package/build-module/hooks/font-family.js +14 -23
  418. package/build-module/hooks/font-family.js.map +1 -1
  419. package/build-module/hooks/font-size.js +49 -119
  420. package/build-module/hooks/font-size.js.map +1 -1
  421. package/build-module/hooks/index.js +18 -15
  422. package/build-module/hooks/index.js.map +1 -1
  423. package/build-module/hooks/index.native.js +5 -3
  424. package/build-module/hooks/index.native.js.map +1 -1
  425. package/build-module/hooks/layout-child.js +60 -0
  426. package/build-module/hooks/layout-child.js.map +1 -0
  427. package/build-module/hooks/layout.js +26 -105
  428. package/build-module/hooks/layout.js.map +1 -1
  429. package/build-module/hooks/padding.js +2 -2
  430. package/build-module/hooks/padding.js.map +1 -1
  431. package/build-module/hooks/position.js +38 -59
  432. package/build-module/hooks/position.js.map +1 -1
  433. package/build-module/hooks/style.js +51 -84
  434. package/build-module/hooks/style.js.map +1 -1
  435. package/build-module/hooks/typography.js +33 -12
  436. package/build-module/hooks/typography.js.map +1 -1
  437. package/build-module/hooks/utils.js +149 -6
  438. package/build-module/hooks/utils.js.map +1 -1
  439. package/build-module/layouts/constrained.js +4 -3
  440. package/build-module/layouts/constrained.js.map +1 -1
  441. package/build-module/private-apis.js +0 -2
  442. package/build-module/private-apis.js.map +1 -1
  443. package/build-module/store/private-actions.js +7 -0
  444. package/build-module/store/private-actions.js.map +1 -1
  445. package/build-module/store/private-selectors.js +33 -1
  446. package/build-module/store/private-selectors.js.map +1 -1
  447. package/build-module/store/reducer.js +8 -0
  448. package/build-module/store/reducer.js.map +1 -1
  449. package/build-module/store/selectors.js +3 -51
  450. package/build-module/store/selectors.js.map +1 -1
  451. package/build-module/store/utils.js +56 -0
  452. package/build-module/store/utils.js.map +1 -0
  453. package/build-module/utils/object.js +21 -60
  454. package/build-module/utils/object.js.map +1 -1
  455. package/build-module/utils/selection.js +9 -1
  456. package/build-module/utils/selection.js.map +1 -1
  457. package/build-module/utils/transform-styles/index.js +24 -7
  458. package/build-module/utils/transform-styles/index.js.map +1 -1
  459. package/build-style/content-rtl.css +6 -6
  460. package/build-style/content.css +6 -6
  461. package/build-style/style-rtl.css +123 -298
  462. package/build-style/style.css +123 -298
  463. package/package.json +31 -31
  464. package/src/components/block-canvas/index.js +31 -17
  465. package/src/components/block-caption/README.md +2 -2
  466. package/src/components/block-card/index.js +5 -3
  467. package/src/components/block-card/style.scss +7 -3
  468. package/src/components/block-controls/hook.js +8 -30
  469. package/src/components/block-controls/test/index.js +3 -3
  470. package/src/components/block-edit/context.js +3 -0
  471. package/src/components/block-edit/index.js +36 -10
  472. package/src/components/block-info-slot-fill/index.js +6 -3
  473. package/src/components/block-inspector/style.scss +0 -4
  474. package/src/components/block-list/block.js +39 -5
  475. package/src/components/block-list/block.native.js +20 -4
  476. package/src/components/block-list/use-block-props/index.js +74 -21
  477. package/src/components/block-list/use-block-props/use-focus-first-element.js +1 -34
  478. package/src/components/block-list/use-block-props/use-is-hovered.js +2 -13
  479. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +1 -5
  480. package/src/components/block-parent-selector/index.js +1 -1
  481. package/src/components/block-pattern-setup/index.js +38 -22
  482. package/src/components/block-pattern-setup/setup-toolbar.js +2 -0
  483. package/src/components/block-pattern-setup/style.scss +4 -1
  484. package/src/components/block-patterns-list/README.md +4 -4
  485. package/src/components/block-patterns-list/index.js +61 -35
  486. package/src/components/block-patterns-list/style.scss +7 -0
  487. package/src/components/block-removal-warning-modal/index.js +7 -14
  488. package/src/components/block-rename/index.js +3 -0
  489. package/src/components/block-rename/is-empty-string.js +3 -0
  490. package/src/components/block-rename/modal.js +121 -0
  491. package/src/components/block-rename/rename-control.js +80 -0
  492. package/src/components/block-rename/use-block-rename.js +10 -0
  493. package/src/components/block-settings/container.native.js +3 -5
  494. package/src/components/block-settings-menu/block-settings-dropdown.js +38 -34
  495. package/src/components/block-settings-menu-controls/index.js +9 -0
  496. package/src/components/block-styles/index.js +1 -1
  497. package/src/components/block-styles/index.native.js +4 -2
  498. package/src/components/block-styles/style.scss +0 -11
  499. package/src/components/block-switcher/test/__snapshots__/index.js.snap +3 -1
  500. package/src/components/block-toolbar/block-toolbar-menu.native.js +1 -4
  501. package/src/components/block-toolbar/index.js +180 -95
  502. package/src/components/block-toolbar/style.scss +50 -66
  503. package/src/components/block-tools/block-toolbar-breadcrumb.js +46 -0
  504. package/src/components/block-tools/block-toolbar-popover.js +90 -0
  505. package/src/components/block-tools/index.js +42 -29
  506. package/src/components/block-tools/style.scss +60 -172
  507. package/src/components/block-types-list/index.js +5 -4
  508. package/src/components/block-types-list/index.native.js +2 -1
  509. package/src/components/block-variation-picker/index.native.js +1 -1
  510. package/src/components/button-block-appender/content.scss +2 -2
  511. package/src/components/colors-gradients/control.js +49 -30
  512. package/src/components/colors-gradients/style.scss +0 -7
  513. package/src/components/date-format-picker/index.js +7 -0
  514. package/src/components/duotone-control/index.js +2 -5
  515. package/src/components/duotone-control/style.scss +1 -6
  516. package/src/components/editable-text/README.md +0 -36
  517. package/src/components/global-styles/advanced-panel.js +1 -1
  518. package/src/components/global-styles/color-panel.js +34 -25
  519. package/src/components/global-styles/filters-panel.js +8 -4
  520. package/src/components/global-styles/typography-panel.js +23 -43
  521. package/src/components/image-link-destinations/index.native.js +152 -0
  522. package/src/components/image-link-destinations/style.native.scss +16 -0
  523. package/src/components/image-size-control/index.js +0 -6
  524. package/src/components/index.native.js +1 -0
  525. package/src/components/inner-blocks/README.md +13 -2
  526. package/src/components/inner-blocks/index.js +6 -2
  527. package/src/components/inner-blocks/warning-max-depth-exceeded.native.js +57 -33
  528. package/src/components/inserter/block-patterns-explorer/pattern-list.js +5 -1
  529. package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +7 -3
  530. package/src/components/inserter/block-patterns-tab/use-pattern-categories.js +6 -1
  531. package/src/components/inserter/block-patterns-tab/utils.js +6 -4
  532. package/src/components/inserter/hooks/use-patterns-state.js +3 -1
  533. package/src/components/inserter/media-tab/media-panel.js +1 -1
  534. package/src/components/inserter/menu.js +16 -8
  535. package/src/components/inserter/preview-panel.js +2 -2
  536. package/src/components/inserter/style.scss +15 -17
  537. package/src/components/inserter-button/README.md +62 -0
  538. package/src/components/inserter-button/index.native.js +116 -0
  539. package/src/components/inserter-button/sparkles.js +15 -0
  540. package/src/components/inserter-button/style.native.scss +72 -0
  541. package/src/components/inserter-draggable-blocks/index.js +18 -5
  542. package/src/components/inserter-listbox/index.js +11 -7
  543. package/src/components/inserter-listbox/item.js +11 -12
  544. package/src/components/inserter-listbox/row.js +6 -12
  545. package/src/components/inspector-controls/fill.js +6 -3
  546. package/src/components/inspector-controls/fill.native.js +6 -3
  547. package/src/components/link-control/style.scss +1 -1
  548. package/src/components/link-control/test/index.js +1 -1
  549. package/src/components/list-view/use-list-view-expand-selected-item.js +7 -8
  550. package/src/components/navigable-toolbar/README.md +2 -0
  551. package/src/components/navigable-toolbar/index.js +2 -2
  552. package/src/components/plain-text/README.md +0 -28
  553. package/src/components/preview-options/index.js +6 -84
  554. package/src/components/rich-text/README.md +0 -58
  555. package/src/components/rich-text/content.js +27 -20
  556. package/src/components/rich-text/get-rich-text-values.js +6 -1
  557. package/src/components/rich-text/index.js +5 -46
  558. package/src/components/rich-text/index.native.js +9 -26
  559. package/src/components/rich-text/native/get-format-colors.native.js +33 -40
  560. package/src/components/rich-text/native/index.native.js +52 -50
  561. package/src/components/rich-text/use-input-rules.js +36 -3
  562. package/src/components/rich-text/with-deprecations.js +51 -0
  563. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
  564. package/src/components/url-input/README.md +1 -74
  565. package/src/components/use-block-drop-zone/index.js +118 -15
  566. package/src/components/use-moving-animation/index.js +1 -1
  567. package/src/components/use-on-block-drop/index.js +2 -1
  568. package/src/components/use-resize-canvas/README.md +3 -3
  569. package/src/components/use-resize-canvas/index.js +4 -1
  570. package/src/components/use-settings/index.js +17 -3
  571. package/src/components/use-settings/test/index.js +1 -1
  572. package/src/hooks/align.js +15 -76
  573. package/src/hooks/align.native.js +1 -0
  574. package/src/hooks/anchor.js +13 -33
  575. package/src/hooks/background.js +28 -23
  576. package/src/hooks/block-hooks.js +22 -51
  577. package/src/hooks/block-renaming.js +33 -0
  578. package/src/hooks/border.js +67 -118
  579. package/src/hooks/color.js +100 -132
  580. package/src/hooks/content-lock-ui.js +110 -122
  581. package/src/hooks/custom-class-name.js +8 -40
  582. package/src/hooks/custom-fields.js +70 -94
  583. package/src/hooks/dimensions.js +20 -16
  584. package/src/hooks/duotone.js +70 -127
  585. package/src/hooks/font-family.js +10 -29
  586. package/src/hooks/font-size.js +66 -162
  587. package/src/hooks/index.js +42 -15
  588. package/src/hooks/index.native.js +6 -3
  589. package/src/hooks/layout-child.js +53 -0
  590. package/src/hooks/layout.js +25 -110
  591. package/src/hooks/padding.js +2 -2
  592. package/src/hooks/position.js +50 -90
  593. package/src/hooks/style.js +117 -187
  594. package/src/hooks/test/__snapshots__/align.native.js.snap +5 -5
  595. package/src/hooks/test/align.js +1 -178
  596. package/src/hooks/typography.js +20 -16
  597. package/src/hooks/utils.js +187 -6
  598. package/src/layouts/constrained.js +57 -50
  599. package/src/private-apis.js +0 -2
  600. package/src/store/private-actions.js +8 -0
  601. package/src/store/private-selectors.js +45 -0
  602. package/src/store/reducer.js +8 -0
  603. package/src/store/selectors.js +5 -67
  604. package/src/store/utils.js +74 -0
  605. package/src/style.scss +1 -3
  606. package/src/utils/object.js +18 -69
  607. package/src/utils/selection.js +9 -2
  608. package/src/utils/test/transform-styles.js +49 -0
  609. package/src/utils/transform-styles/index.js +39 -13
  610. package/build/components/block-list/use-block-props/use-block-class-names.js +0 -67
  611. package/build/components/block-list/use-block-props/use-block-class-names.js.map +0 -1
  612. package/build/components/block-list/use-block-props/use-block-custom-class-name.js +0 -46
  613. package/build/components/block-list/use-block-props/use-block-custom-class-name.js.map +0 -1
  614. package/build/components/block-list/use-block-props/use-block-default-class-name.js +0 -37
  615. package/build/components/block-list/use-block-props/use-block-default-class-name.js.map +0 -1
  616. package/build/components/block-tools/back-compat.js +0 -45
  617. package/build/components/block-tools/back-compat.js.map +0 -1
  618. package/build/components/block-tools/block-contextual-toolbar.js +0 -91
  619. package/build/components/block-tools/block-contextual-toolbar.js.map +0 -1
  620. package/build/components/block-tools/selected-block-tools.js +0 -113
  621. package/build/components/block-tools/selected-block-tools.js.map +0 -1
  622. package/build/components/inserter/hooks/use-debounced-input.js +0 -22
  623. package/build/components/inserter/hooks/use-debounced-input.js.map +0 -1
  624. package/build/components/use-display-block-controls/index.js +0 -39
  625. package/build/components/use-display-block-controls/index.js.map +0 -1
  626. package/build/components/use-display-block-controls/index.native.js +0 -39
  627. package/build/components/use-display-block-controls/index.native.js.map +0 -1
  628. package/build/hooks/block-rename-ui.js +0 -167
  629. package/build/hooks/block-rename-ui.js.map +0 -1
  630. package/build-module/components/block-list/use-block-props/use-block-class-names.js +0 -60
  631. package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +0 -1
  632. package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js +0 -40
  633. package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js.map +0 -1
  634. package/build-module/components/block-list/use-block-props/use-block-default-class-name.js +0 -31
  635. package/build-module/components/block-list/use-block-props/use-block-default-class-name.js.map +0 -1
  636. package/build-module/components/block-tools/back-compat.js +0 -35
  637. package/build-module/components/block-tools/back-compat.js.map +0 -1
  638. package/build-module/components/block-tools/block-contextual-toolbar.js +0 -83
  639. package/build-module/components/block-tools/block-contextual-toolbar.js.map +0 -1
  640. package/build-module/components/block-tools/selected-block-tools.js +0 -105
  641. package/build-module/components/block-tools/selected-block-tools.js.map +0 -1
  642. package/build-module/components/inserter/hooks/use-debounced-input.js +0 -15
  643. package/build-module/components/inserter/hooks/use-debounced-input.js.map +0 -1
  644. package/build-module/components/use-display-block-controls/index.js +0 -32
  645. package/build-module/components/use-display-block-controls/index.js.map +0 -1
  646. package/build-module/components/use-display-block-controls/index.native.js +0 -32
  647. package/build-module/components/use-display-block-controls/index.native.js.map +0 -1
  648. package/build-module/hooks/block-rename-ui.js +0 -159
  649. package/build-module/hooks/block-rename-ui.js.map +0 -1
  650. package/src/components/block-list/use-block-props/use-block-class-names.js +0 -66
  651. package/src/components/block-list/use-block-props/use-block-custom-class-name.js +0 -44
  652. package/src/components/block-list/use-block-props/use-block-default-class-name.js +0 -35
  653. package/src/components/block-parent-selector/style.scss +0 -11
  654. package/src/components/block-tools/back-compat.js +0 -35
  655. package/src/components/block-tools/block-contextual-toolbar.js +0 -100
  656. package/src/components/block-tools/selected-block-tools.js +0 -127
  657. package/src/components/inserter/hooks/use-debounced-input.js +0 -18
  658. package/src/components/preview-options/README.md +0 -94
  659. package/src/components/preview-options/style.scss +0 -64
  660. package/src/components/use-display-block-controls/index.js +0 -36
  661. package/src/components/use-display-block-controls/index.native.js +0 -37
  662. package/src/hooks/block-rename-ui.js +0 -228
  663. package/src/hooks/test/color.js +0 -112
  664. /package/src/{hooks/block-rename-ui.scss → components/block-rename/style.scss} +0 -0
@@ -11,6 +11,8 @@ import { __, sprintf } from '@wordpress/i18n';
11
11
  import {
12
12
  __unstableGetBlockProps as getBlockProps,
13
13
  getBlockType,
14
+ isReusableBlock,
15
+ getBlockDefaultClassName,
14
16
  store as blocksStore,
15
17
  } from '@wordpress/blocks';
16
18
  import { useMergeRefs, useDisabled } from '@wordpress/compose';
@@ -25,17 +27,12 @@ import { BlockListBlockContext } from '../block-list-block-context';
25
27
  import { useFocusFirstElement } from './use-focus-first-element';
26
28
  import { useIsHovered } from './use-is-hovered';
27
29
  import { useBlockEditContext } from '../../block-edit/context';
28
- import { useBlockClassNames } from './use-block-class-names';
29
- import { useBlockDefaultClassName } from './use-block-default-class-name';
30
- import { useBlockCustomClassName } from './use-block-custom-class-name';
31
- import { useBlockMovingModeClassNames } from './use-block-moving-mode-class-names';
32
30
  import { useFocusHandler } from './use-focus-handler';
33
31
  import { useEventHandlers } from './use-selected-block-event-handlers';
34
32
  import { useNavModeExit } from './use-nav-mode-exit';
35
33
  import { useBlockRefProvider } from './use-block-refs';
36
34
  import { useIntersectionObserver } from './use-intersection-observer';
37
35
  import { store as blockEditorStore } from '../../../store';
38
- import useBlockOverlayActive from '../../block-content-overlay';
39
36
  import { unlock } from '../../../lock-unlock';
40
37
 
41
38
  /**
@@ -99,10 +96,15 @@ export function useBlockProps( props = {}, { __unstableIsHtml } = {} ) {
99
96
  name,
100
97
  blockApiVersion,
101
98
  blockTitle,
99
+ isSelected,
102
100
  isPartOfSelection,
103
101
  adjustScrolling,
104
102
  enableAnimation,
105
103
  isSubtreeDisabled,
104
+ isOutlineEnabled,
105
+ hasOverlay,
106
+ initialPosition,
107
+ classNames,
106
108
  } = useSelect(
107
109
  ( select ) => {
108
110
  const {
@@ -117,9 +119,21 @@ export function useBlockProps( props = {}, { __unstableIsHtml } = {} ) {
117
119
  isAncestorMultiSelected,
118
120
  isFirstMultiSelectedBlock,
119
121
  isBlockSubtreeDisabled,
122
+ getSettings,
123
+ isBlockHighlighted,
124
+ __unstableIsFullySelected,
125
+ __unstableSelectionHasUnmergeableBlock,
126
+ isBlockBeingDragged,
127
+ hasSelectedInnerBlock,
128
+ hasBlockMovingClientId,
129
+ canInsertBlockType,
130
+ getBlockRootClientId,
131
+ __unstableHasActiveBlockOverlayActive,
132
+ __unstableGetEditorMode,
133
+ getSelectedBlocksInitialCaretPosition,
120
134
  } = unlock( select( blockEditorStore ) );
121
135
  const { getActiveBlockVariation } = select( blocksStore );
122
- const isSelected = isBlockSelected( clientId );
136
+ const _isSelected = isBlockSelected( clientId );
123
137
  const isPartOfMultiSelection =
124
138
  isBlockMultiSelected( clientId ) ||
125
139
  isAncestorMultiSelected( clientId );
@@ -127,6 +141,16 @@ export function useBlockProps( props = {}, { __unstableIsHtml } = {} ) {
127
141
  const blockType = getBlockType( blockName );
128
142
  const attributes = getBlockAttributes( clientId );
129
143
  const match = getActiveBlockVariation( blockName, attributes );
144
+ const { outlineMode } = getSettings();
145
+ const isMultiSelected = isBlockMultiSelected( clientId );
146
+ const checkDeep = true;
147
+ const isAncestorOfSelectedBlock = hasSelectedInnerBlock(
148
+ clientId,
149
+ checkDeep
150
+ );
151
+ const typing = isTyping();
152
+ const hasLightBlockWrapper = blockType?.apiVersion > 1;
153
+ const movingClientId = hasBlockMovingClientId();
130
154
 
131
155
  return {
132
156
  index: getBlockIndex( clientId ),
@@ -134,31 +158,62 @@ export function useBlockProps( props = {}, { __unstableIsHtml } = {} ) {
134
158
  name: blockName,
135
159
  blockApiVersion: blockType?.apiVersion || 1,
136
160
  blockTitle: match?.title || blockType?.title,
137
- isPartOfSelection: isSelected || isPartOfMultiSelection,
161
+ isSelected: _isSelected,
162
+ isPartOfSelection: _isSelected || isPartOfMultiSelection,
138
163
  adjustScrolling:
139
- isSelected || isFirstMultiSelectedBlock( clientId ),
164
+ _isSelected || isFirstMultiSelectedBlock( clientId ),
140
165
  enableAnimation:
141
- ! isTyping() &&
166
+ ! typing &&
142
167
  getGlobalBlockCount() <= BLOCK_ANIMATION_THRESHOLD,
143
168
  isSubtreeDisabled: isBlockSubtreeDisabled( clientId ),
169
+ isOutlineEnabled: outlineMode,
170
+ hasOverlay: __unstableHasActiveBlockOverlayActive( clientId ),
171
+ initialPosition:
172
+ _isSelected && __unstableGetEditorMode() === 'edit'
173
+ ? getSelectedBlocksInitialCaretPosition()
174
+ : undefined,
175
+ classNames: classnames(
176
+ {
177
+ 'is-selected': _isSelected,
178
+ 'is-highlighted': isBlockHighlighted( clientId ),
179
+ 'is-multi-selected': isMultiSelected,
180
+ 'is-partially-selected':
181
+ isMultiSelected &&
182
+ ! __unstableIsFullySelected() &&
183
+ ! __unstableSelectionHasUnmergeableBlock(),
184
+ 'is-reusable': isReusableBlock( blockType ),
185
+ 'is-dragging': isBlockBeingDragged( clientId ),
186
+ 'has-child-selected': isAncestorOfSelectedBlock,
187
+ 'remove-outline': _isSelected && outlineMode && typing,
188
+ 'is-block-moving-mode': !! movingClientId,
189
+ 'can-insert-moving-block':
190
+ movingClientId &&
191
+ canInsertBlockType(
192
+ getBlockName( movingClientId ),
193
+ getBlockRootClientId( clientId )
194
+ ),
195
+ },
196
+ hasLightBlockWrapper ? attributes.className : undefined,
197
+ hasLightBlockWrapper
198
+ ? getBlockDefaultClassName( blockName )
199
+ : undefined
200
+ ),
144
201
  };
145
202
  },
146
203
  [ clientId ]
147
204
  );
148
205
 
149
- const hasOverlay = useBlockOverlayActive( clientId );
150
-
151
206
  // translators: %s: Type of block (i.e. Text, Image etc)
152
207
  const blockLabel = sprintf( __( 'Block: %s' ), blockTitle );
153
208
  const htmlSuffix = mode === 'html' && ! __unstableIsHtml ? '-visual' : '';
154
209
  const mergedRefs = useMergeRefs( [
155
210
  props.ref,
156
- useFocusFirstElement( clientId ),
211
+ useFocusFirstElement( { clientId, initialPosition } ),
157
212
  useBlockRefProvider( clientId ),
158
213
  useFocusHandler( clientId ),
159
- useEventHandlers( clientId ),
214
+ useEventHandlers( { clientId, isSelected } ),
160
215
  useNavModeExit( clientId ),
161
- useIsHovered(),
216
+ useIsHovered( { isEnabled: isOutlineEnabled } ),
162
217
  useIntersectionObserver(),
163
218
  useMovingAnimation( {
164
219
  isSelected: isPartOfSelection,
@@ -190,18 +245,16 @@ export function useBlockProps( props = {}, { __unstableIsHtml } = {} ) {
190
245
  'data-title': blockTitle,
191
246
  inert: isSubtreeDisabled ? 'true' : undefined,
192
247
  className: classnames(
193
- // The wp-block className is important for editor styles.
194
- classnames( 'block-editor-block-list__block', {
248
+ 'block-editor-block-list__block',
249
+ {
250
+ // The wp-block className is important for editor styles.
195
251
  'wp-block': ! isAligned,
196
252
  'has-block-overlay': hasOverlay,
197
- } ),
253
+ },
198
254
  className,
199
255
  props.className,
200
256
  wrapperProps.className,
201
- useBlockClassNames( clientId ),
202
- useBlockDefaultClassName( clientId ),
203
- useBlockCustomClassName( clientId ),
204
- useBlockMovingModeClassNames( clientId )
257
+ classNames
205
258
  ),
206
259
  style: { ...wrapperProps.style, ...props.style },
207
260
  };
@@ -18,38 +18,6 @@ import { store as blockEditorStore } from '../../../store';
18
18
 
19
19
  /** @typedef {import('@wordpress/element').RefObject} RefObject */
20
20
 
21
- /**
22
- * Returns the initial position if the block needs to be focussed, `undefined`
23
- * otherwise. The initial position is either 0 (start) or -1 (end).
24
- *
25
- * @param {string} clientId Block client ID.
26
- *
27
- * @return {number} The initial position, either 0 (start) or -1 (end).
28
- */
29
- function useInitialPosition( clientId ) {
30
- return useSelect(
31
- ( select ) => {
32
- const {
33
- getSelectedBlocksInitialCaretPosition,
34
- __unstableGetEditorMode,
35
- isBlockSelected,
36
- } = select( blockEditorStore );
37
-
38
- if ( ! isBlockSelected( clientId ) ) {
39
- return;
40
- }
41
-
42
- if ( __unstableGetEditorMode() !== 'edit' ) {
43
- return;
44
- }
45
-
46
- // If there's no initial position, return 0 to focus the start.
47
- return getSelectedBlocksInitialCaretPosition();
48
- },
49
- [ clientId ]
50
- );
51
- }
52
-
53
21
  /**
54
22
  * Transitions focus to the block or inner tabbable when the block becomes
55
23
  * selected and an initial position is set.
@@ -58,9 +26,8 @@ function useInitialPosition( clientId ) {
58
26
  *
59
27
  * @return {RefObject} React ref with the block element.
60
28
  */
61
- export function useFocusFirstElement( clientId ) {
29
+ export function useFocusFirstElement( { clientId, initialPosition } ) {
62
30
  const ref = useRef();
63
- const initialPosition = useInitialPosition( clientId );
64
31
  const { isBlockSelected, isMultiSelecting } = useSelect( blockEditorStore );
65
32
 
66
33
  useEffect( () => {
@@ -1,14 +1,8 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { useSelect } from '@wordpress/data';
5
4
  import { useRefEffect } from '@wordpress/compose';
6
5
 
7
- /**
8
- * Internal dependencies
9
- */
10
- import { store as blockEditorStore } from '../../../store';
11
-
12
6
  function listener( event ) {
13
7
  if ( event.defaultPrevented ) {
14
8
  return;
@@ -20,16 +14,11 @@ function listener( event ) {
20
14
  event.currentTarget.classList[ action ]( 'is-hovered' );
21
15
  }
22
16
 
23
- /**
17
+ /*
24
18
  * Adds `is-hovered` class when the block is hovered and in navigation or
25
19
  * outline mode.
26
20
  */
27
- export function useIsHovered() {
28
- const isEnabled = useSelect( ( select ) => {
29
- const { getSettings } = select( blockEditorStore );
30
- return getSettings().outlineMode;
31
- }, [] );
32
-
21
+ export function useIsHovered( { isEnabled } ) {
33
22
  return useRefEffect(
34
23
  ( node ) => {
35
24
  if ( isEnabled ) {
@@ -19,11 +19,7 @@ import { store as blockEditorStore } from '../../../store';
19
19
  *
20
20
  * @param {string} clientId Block client ID.
21
21
  */
22
- export function useEventHandlers( clientId ) {
23
- const isSelected = useSelect(
24
- ( select ) => select( blockEditorStore ).isBlockSelected( clientId ),
25
- [ clientId ]
26
- );
22
+ export function useEventHandlers( { clientId, isSelected } ) {
27
23
  const { getBlockRootClientId, getBlockIndex } =
28
24
  useSelect( blockEditorStore );
29
25
  const { insertDefaultBlock, removeBlock } = useDispatch( blockEditorStore );
@@ -74,7 +74,7 @@ export default function BlockParentSelector() {
74
74
  onClick={ () => selectBlock( firstParentClientId ) }
75
75
  label={ sprintf(
76
76
  /* translators: %s: Name of the block's parent. */
77
- __( 'Select %s' ),
77
+ __( 'Select parent block: %s' ),
78
78
  blockInformation?.title
79
79
  ) }
80
80
  showTooltip
@@ -5,9 +5,7 @@ import { useDispatch } from '@wordpress/data';
5
5
  import { cloneBlock } from '@wordpress/blocks';
6
6
  import {
7
7
  VisuallyHidden,
8
- __unstableComposite as Composite,
9
- __unstableUseCompositeState as useCompositeState,
10
- __unstableCompositeItem as CompositeItem,
8
+ privateApis as componentsPrivateApis,
11
9
  } from '@wordpress/components';
12
10
 
13
11
  import { useState } from '@wordpress/element';
@@ -22,6 +20,13 @@ import BlockPreview from '../block-preview';
22
20
  import SetupToolbar from './setup-toolbar';
23
21
  import usePatternsSetup from './use-patterns-setup';
24
22
  import { VIEWMODES } from './constants';
23
+ import { unlock } from '../../lock-unlock';
24
+
25
+ const {
26
+ CompositeV2: Composite,
27
+ CompositeItemV2: CompositeItem,
28
+ useCompositeStoreV2: useCompositeStore,
29
+ } = unlock( componentsPrivateApis );
25
30
 
26
31
  const SetupContent = ( {
27
32
  viewMode,
@@ -30,8 +35,9 @@ const SetupContent = ( {
30
35
  onBlockPatternSelect,
31
36
  showTitles,
32
37
  } ) => {
33
- const composite = useCompositeState();
38
+ const compositeStore = useCompositeStore();
34
39
  const containerClass = 'block-editor-block-pattern-setup__container';
40
+
35
41
  if ( viewMode === VIEWMODES.carousel ) {
36
42
  const slideClass = new Map( [
37
43
  [ activeSlide, 'active-slide' ],
@@ -41,23 +47,25 @@ const SetupContent = ( {
41
47
  return (
42
48
  <div className="block-editor-block-pattern-setup__carousel">
43
49
  <div className={ containerClass }>
44
- <ul className="carousel-container">
50
+ <div className="carousel-container">
45
51
  { patterns.map( ( pattern, index ) => (
46
52
  <BlockPatternSlide
53
+ active={ index === activeSlide }
47
54
  className={ slideClass.get( index ) || '' }
48
55
  key={ pattern.name }
49
56
  pattern={ pattern }
50
57
  />
51
58
  ) ) }
52
- </ul>
59
+ </div>
53
60
  </div>
54
61
  </div>
55
62
  );
56
63
  }
64
+
57
65
  return (
58
66
  <div className="block-editor-block-pattern-setup__grid">
59
67
  <Composite
60
- { ...composite }
68
+ store={ compositeStore }
61
69
  role="listbox"
62
70
  className={ containerClass }
63
71
  aria-label={ __( 'Patterns list' ) }
@@ -67,7 +75,6 @@ const SetupContent = ( {
67
75
  key={ pattern.name }
68
76
  pattern={ pattern }
69
77
  onSelect={ onBlockPatternSelect }
70
- composite={ composite }
71
78
  showTitles={ showTitles }
72
79
  />
73
80
  ) ) }
@@ -76,7 +83,7 @@ const SetupContent = ( {
76
83
  );
77
84
  };
78
85
 
79
- function BlockPattern( { pattern, onSelect, composite, showTitles } ) {
86
+ function BlockPattern( { pattern, onSelect, showTitles } ) {
80
87
  const baseClassName = 'block-editor-block-pattern-setup-list';
81
88
  const { blocks, description, viewportWidth = 700 } = pattern;
82
89
  const descriptionId = useInstanceId(
@@ -84,16 +91,19 @@ function BlockPattern( { pattern, onSelect, composite, showTitles } ) {
84
91
  `${ baseClassName }__item-description`
85
92
  );
86
93
  return (
87
- <div
88
- className={ `${ baseClassName }__list-item` }
89
- aria-label={ pattern.title }
90
- aria-describedby={ pattern.description ? descriptionId : undefined }
91
- >
94
+ <div className={ `${ baseClassName }__list-item` }>
92
95
  <CompositeItem
96
+ render={
97
+ <div
98
+ aria-describedby={
99
+ description ? descriptionId : undefined
100
+ }
101
+ aria-label={ pattern.title }
102
+ className={ `${ baseClassName }__item` }
103
+ />
104
+ }
105
+ id={ `${ baseClassName }__pattern__${ pattern.name }` }
93
106
  role="option"
94
- as="div"
95
- { ...composite }
96
- className={ `${ baseClassName }__item` }
97
107
  onClick={ () => onSelect( blocks ) }
98
108
  >
99
109
  <BlockPreview
@@ -115,14 +125,16 @@ function BlockPattern( { pattern, onSelect, composite, showTitles } ) {
115
125
  );
116
126
  }
117
127
 
118
- function BlockPatternSlide( { className, pattern, minHeight } ) {
128
+ function BlockPatternSlide( { active, className, pattern, minHeight } ) {
119
129
  const { blocks, title, description } = pattern;
120
130
  const descriptionId = useInstanceId(
121
131
  BlockPatternSlide,
122
132
  'block-editor-block-pattern-setup-list__item-description'
123
133
  );
124
134
  return (
125
- <li
135
+ <div
136
+ aria-hidden={ ! active }
137
+ role="img"
126
138
  className={ `pattern-slide ${ className }` }
127
139
  aria-label={ title }
128
140
  aria-describedby={ description ? descriptionId : undefined }
@@ -133,7 +145,7 @@ function BlockPatternSlide( { className, pattern, minHeight } ) {
133
145
  { description }
134
146
  </VisuallyHidden>
135
147
  ) }
136
- </li>
148
+ </div>
137
149
  );
138
150
  }
139
151
 
@@ -178,10 +190,14 @@ const BlockPatternSetup = ( {
178
190
  activeSlide={ activeSlide }
179
191
  totalSlides={ patterns.length }
180
192
  handleNext={ () => {
181
- setActiveSlide( ( active ) => active + 1 );
193
+ setActiveSlide( ( active ) =>
194
+ Math.min( active + 1, patterns.length - 1 )
195
+ );
182
196
  } }
183
197
  handlePrevious={ () => {
184
- setActiveSlide( ( active ) => active - 1 );
198
+ setActiveSlide( ( active ) =>
199
+ Math.max( active - 1, 0 )
200
+ );
185
201
  } }
186
202
  onBlockPatternSelect={ () => {
187
203
  onPatternSelectCallback(
@@ -35,12 +35,14 @@ const CarouselNavigation = ( {
35
35
  label={ __( 'Previous pattern' ) }
36
36
  onClick={ handlePrevious }
37
37
  disabled={ activeSlide === 0 }
38
+ __experimentalIsFocusable
38
39
  />
39
40
  <Button
40
41
  icon={ chevronRight }
41
42
  label={ __( 'Next pattern' ) }
42
43
  onClick={ handleNext }
43
44
  disabled={ activeSlide === totalSlides - 1 }
45
+ __experimentalIsFocusable
44
46
  />
45
47
  </div>
46
48
  );
@@ -32,6 +32,8 @@
32
32
  }
33
33
 
34
34
  .block-editor-block-pattern-setup-list__item {
35
+ scroll-margin: 5px 0;
36
+
35
37
  &:hover .block-editor-block-preview__container {
36
38
  box-shadow: 0 0 0 2px var(--wp-admin-theme-color);
37
39
  }
@@ -44,6 +46,7 @@
44
46
  color: var(--wp-admin-theme-color);
45
47
  }
46
48
  }
49
+
47
50
  .block-editor-block-pattern-setup-list__list-item {
48
51
  break-inside: avoid-column;
49
52
  margin-bottom: $grid-unit-30;
@@ -85,7 +88,7 @@
85
88
  align-items: center;
86
89
  justify-content: space-between;
87
90
  border-top: 1px solid $gray-300;
88
- align-self: flex-end;
91
+ align-self: stretch;
89
92
 
90
93
  .block-editor-block-pattern-setup__display-controls {
91
94
  display: flex;
@@ -1,6 +1,6 @@
1
1
  # Block Patterns List
2
2
 
3
- The `BlockPatternList` component makes a list of the different registered block patterns. It uses the `BlockPreview` component to display a preview for each block pattern.
3
+ The `BlockPatternsList` component makes a list of the different registered block patterns. It uses the `BlockPreview` component to display a preview for each block pattern.
4
4
 
5
5
  For more infos about blocks patterns, read [this](https://make.wordpress.org/core/2020/07/16/block-patterns-in-wordpress-5-5/).
6
6
 
@@ -18,10 +18,10 @@ For more infos about blocks patterns, read [this](https://make.wordpress.org/cor
18
18
  Renders a block patterns list.
19
19
 
20
20
  ```jsx
21
- import { BlockPatternList } from '@wordpress/block-editor';
21
+ import { BlockPatternsList } from '@wordpress/block-editor';
22
22
 
23
- const MyBlockPatternList = () => (
24
- <BlockPatternList
23
+ const MyBlockPatternsList = () => (
24
+ <BlockPatternsList
25
25
  blockPatterns={ shownBlockPatterns }
26
26
  shownPatterns={ shownBlockPatterns }
27
27
  onClickPattern={ onSelectBlockPattern }
@@ -6,13 +6,11 @@ import classnames from 'classnames';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
- import { useState, forwardRef } from '@wordpress/element';
9
+ import { useEffect, useState, forwardRef } from '@wordpress/element';
10
10
  import {
11
11
  VisuallyHidden,
12
- __unstableComposite as Composite,
13
- __unstableUseCompositeState as useCompositeState,
14
- __unstableCompositeItem as CompositeItem,
15
12
  Tooltip,
13
+ privateApis as componentsPrivateApis,
16
14
  __experimentalHStack as HStack,
17
15
  } from '@wordpress/components';
18
16
  import { useInstanceId } from '@wordpress/compose';
@@ -22,9 +20,17 @@ import { Icon, symbol } from '@wordpress/icons';
22
20
  /**
23
21
  * Internal dependencies
24
22
  */
23
+ import { unlock } from '../../lock-unlock';
25
24
  import BlockPreview from '../block-preview';
26
25
  import InserterDraggableBlocks from '../inserter-draggable-blocks';
27
26
  import BlockPatternsPaging from '../block-patterns-paging';
27
+ import { PATTERN_TYPES } from '../inserter/block-patterns-tab/utils';
28
+
29
+ const {
30
+ CompositeV2: Composite,
31
+ CompositeItemV2: CompositeItem,
32
+ useCompositeStoreV2: useCompositeStore,
33
+ } = unlock( componentsPrivateApis );
28
34
 
29
35
  const WithToolTip = ( { showTooltip, title, children } ) => {
30
36
  if ( showTooltip ) {
@@ -34,11 +40,11 @@ const WithToolTip = ( { showTooltip, title, children } ) => {
34
40
  };
35
41
 
36
42
  function BlockPattern( {
43
+ id,
37
44
  isDraggable,
38
45
  pattern,
39
46
  onClick,
40
47
  onHover,
41
- composite,
42
48
  showTooltip,
43
49
  } ) {
44
50
  const [ isDragging, setIsDragging ] = useState( false );
@@ -50,7 +56,7 @@ function BlockPattern( {
50
56
  <InserterDraggableBlocks
51
57
  isEnabled={ isDraggable }
52
58
  blocks={ blocks }
53
- isPattern={ !! pattern }
59
+ pattern={ pattern }
54
60
  >
55
61
  { ( { draggable, onDragStart, onDragEnd } ) => (
56
62
  <div
@@ -71,20 +77,33 @@ function BlockPattern( {
71
77
  } }
72
78
  >
73
79
  <WithToolTip
74
- showTooltip={ showTooltip && ! pattern.id }
80
+ showTooltip={
81
+ showTooltip && ! pattern.type !== PATTERN_TYPES.user
82
+ }
75
83
  title={ pattern.title }
76
84
  >
77
85
  <CompositeItem
78
- role="option"
79
- as="div"
80
- { ...composite }
81
- className={ classnames(
82
- 'block-editor-block-patterns-list__item',
83
- {
84
- 'block-editor-block-patterns-list__list-item-synced':
85
- pattern.id && ! pattern.syncStatus,
86
- }
87
- ) }
86
+ render={
87
+ <div
88
+ role="option"
89
+ aria-label={ pattern.title }
90
+ aria-describedby={
91
+ pattern.description
92
+ ? descriptionId
93
+ : undefined
94
+ }
95
+ className={ classnames(
96
+ 'block-editor-block-patterns-list__item',
97
+ {
98
+ 'block-editor-block-patterns-list__list-item-synced':
99
+ pattern.type ===
100
+ PATTERN_TYPES.user &&
101
+ ! pattern.syncStatus,
102
+ }
103
+ ) }
104
+ />
105
+ }
106
+ id={ id }
88
107
  onClick={ () => {
89
108
  onClick( pattern, blocks );
90
109
  onHover?.( null );
@@ -96,10 +115,6 @@ function BlockPattern( {
96
115
  onHover?.( pattern );
97
116
  } }
98
117
  onMouseLeave={ () => onHover?.( null ) }
99
- aria-label={ pattern.title }
100
- aria-describedby={
101
- pattern.description ? descriptionId : undefined
102
- }
103
118
  >
104
119
  <BlockPreview
105
120
  blocks={ blocks }
@@ -107,15 +122,17 @@ function BlockPattern( {
107
122
  />
108
123
 
109
124
  <HStack className="block-editor-patterns__pattern-details">
110
- { pattern.id && ! pattern.syncStatus && (
111
- <div className="block-editor-patterns__pattern-icon-wrapper">
112
- <Icon
113
- className="block-editor-patterns__pattern-icon"
114
- icon={ symbol }
115
- />
116
- </div>
117
- ) }
118
- { ( ! showTooltip || pattern.id ) && (
125
+ { pattern.type === PATTERN_TYPES.user &&
126
+ ! pattern.syncStatus && (
127
+ <div className="block-editor-patterns__pattern-icon-wrapper">
128
+ <Icon
129
+ className="block-editor-patterns__pattern-icon"
130
+ icon={ symbol }
131
+ />
132
+ </div>
133
+ ) }
134
+ { ( ! showTooltip ||
135
+ pattern.type === PATTERN_TYPES.user ) && (
119
136
  <div className="block-editor-block-patterns-list__item-title">
120
137
  { pattern.title }
121
138
  </div>
@@ -141,7 +158,7 @@ function BlockPatternPlaceholder() {
141
158
  );
142
159
  }
143
160
 
144
- function BlockPatternList(
161
+ function BlockPatternsList(
145
162
  {
146
163
  isDraggable,
147
164
  blockPatterns,
@@ -155,10 +172,19 @@ function BlockPatternList(
155
172
  },
156
173
  ref
157
174
  ) {
158
- const composite = useCompositeState( { orientation } );
175
+ const compositeStore = useCompositeStore( { orientation } );
176
+ const { setActiveId } = compositeStore;
177
+
178
+ useEffect( () => {
179
+ // We reset the active composite item whenever the
180
+ // available patterns change, to make sure that
181
+ // focus is put back to the start.
182
+ setActiveId( undefined );
183
+ }, [ setActiveId, shownPatterns, blockPatterns ] );
184
+
159
185
  return (
160
186
  <Composite
161
- { ...composite }
187
+ store={ compositeStore }
162
188
  role="listbox"
163
189
  className="block-editor-block-patterns-list"
164
190
  aria-label={ label }
@@ -169,11 +195,11 @@ function BlockPatternList(
169
195
  return isShown ? (
170
196
  <BlockPattern
171
197
  key={ pattern.name }
198
+ id={ pattern.name }
172
199
  pattern={ pattern }
173
200
  onClick={ onClickPattern }
174
201
  onHover={ onHover }
175
202
  isDraggable={ isDraggable }
176
- composite={ composite }
177
203
  showTooltip={ showTitlesAsTooltip }
178
204
  />
179
205
  ) : (
@@ -185,4 +211,4 @@ function BlockPatternList(
185
211
  );
186
212
  }
187
213
 
188
- export default forwardRef( BlockPatternList );
214
+ export default forwardRef( BlockPatternsList );