@wordpress/block-editor 9.4.0 → 9.7.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 (483) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +1 -8
  3. package/build/components/block-list/block-invalid-warning.native.js +54 -6
  4. package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
  5. package/build/components/block-list/block.js +14 -4
  6. package/build/components/block-list/block.js.map +1 -1
  7. package/build/components/block-list/block.native.js +2 -1
  8. package/build/components/block-list/block.native.js.map +1 -1
  9. package/build/components/block-list/index.native.js +5 -4
  10. package/build/components/block-list/index.native.js.map +1 -1
  11. package/build/components/block-list/layout.js +20 -5
  12. package/build/components/block-list/layout.js.map +1 -1
  13. package/build/components/block-list/use-block-props/use-block-class-names.js +5 -2
  14. package/build/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  15. package/build/components/block-lock/modal.js +37 -7
  16. package/build/components/block-lock/modal.js.map +1 -1
  17. package/build/components/block-mobile-toolbar/block-actions-menu.native.js +1 -1
  18. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  19. package/build/components/block-mover/mover-description.js +95 -32
  20. package/build/components/block-mover/mover-description.js.map +1 -1
  21. package/build/components/block-pattern-setup/index.js +5 -17
  22. package/build/components/block-pattern-setup/index.js.map +1 -1
  23. package/build/components/block-popover/inbetween.js +2 -2
  24. package/build/components/block-popover/inbetween.js.map +1 -1
  25. package/build/components/block-popover/index.js +1 -1
  26. package/build/components/block-popover/index.js.map +1 -1
  27. package/build/components/block-settings-menu/block-mode-toggle.js +1 -1
  28. package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  29. package/build/components/block-settings-menu/block-settings-dropdown.js +4 -1
  30. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  31. package/build/components/block-settings-menu-controls/index.js +1 -1
  32. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  33. package/build/components/block-styles/index.js +3 -6
  34. package/build/components/block-styles/index.js.map +1 -1
  35. package/build/components/block-styles/preview.native.js.map +1 -1
  36. package/build/components/block-switcher/index.js +7 -1
  37. package/build/components/block-switcher/index.js.map +1 -1
  38. package/build/components/block-title/index.js +8 -2
  39. package/build/components/block-title/index.js.map +1 -1
  40. package/build/components/block-title/use-block-display-title.js +12 -5
  41. package/build/components/block-title/use-block-display-title.js.map +1 -1
  42. package/build/components/block-tools/block-contextual-toolbar.js +1 -1
  43. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  44. package/build/components/block-tools/block-selection-button.js +1 -7
  45. package/build/components/block-tools/block-selection-button.js.map +1 -1
  46. package/build/components/block-tools/index.js +4 -1
  47. package/build/components/block-tools/index.js.map +1 -1
  48. package/build/components/block-types-list/index.js +1 -1
  49. package/build/components/block-types-list/index.js.map +1 -1
  50. package/build/components/block-types-list/index.native.js +65 -23
  51. package/build/components/block-types-list/index.native.js.map +1 -1
  52. package/build/components/border-radius-control/index.js +5 -1
  53. package/build/components/border-radius-control/index.js.map +1 -1
  54. package/build/components/colors/utils.js +6 -2
  55. package/build/components/colors/utils.js.map +1 -1
  56. package/build/components/colors/with-colors.js +1 -1
  57. package/build/components/colors/with-colors.js.map +1 -1
  58. package/build/components/colors-gradients/control.js +49 -39
  59. package/build/components/colors-gradients/control.js.map +1 -1
  60. package/build/components/colors-gradients/dropdown.js +9 -3
  61. package/build/components/colors-gradients/dropdown.js.map +1 -1
  62. package/build/components/date-format-picker/index.js +1 -1
  63. package/build/components/date-format-picker/index.js.map +1 -1
  64. package/build/components/font-appearance-control/index.js +10 -4
  65. package/build/components/font-appearance-control/index.js.map +1 -1
  66. package/build/components/iframe/index.js +19 -6
  67. package/build/components/iframe/index.js.map +1 -1
  68. package/build/components/image-editor/cropper.js +4 -3
  69. package/build/components/image-editor/cropper.js.map +1 -1
  70. package/build/components/image-editor/index.js +3 -1
  71. package/build/components/image-editor/index.js.map +1 -1
  72. package/build/components/image-size-control/index.js +3 -1
  73. package/build/components/image-size-control/index.js.map +1 -1
  74. package/build/components/index.js +13 -6
  75. package/build/components/index.js.map +1 -1
  76. package/build/components/index.native.js +11 -4
  77. package/build/components/index.native.js.map +1 -1
  78. package/build/components/inserter/block-types-tab.native.js +30 -16
  79. package/build/components/inserter/block-types-tab.native.js.map +1 -1
  80. package/build/components/inserter/index.native.js +8 -3
  81. package/build/components/inserter/index.native.js.map +1 -1
  82. package/build/components/inserter/preview-panel.js +8 -8
  83. package/build/components/inserter/preview-panel.js.map +1 -1
  84. package/build/components/inserter/reusable-blocks-tab.native.js +5 -1
  85. package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
  86. package/build/components/inserter/search-results.native.js +5 -2
  87. package/build/components/inserter/search-results.native.js.map +1 -1
  88. package/build/components/inserter/utils.native.js +21 -0
  89. package/build/components/inserter/utils.native.js.map +1 -1
  90. package/build/components/inserter-list-item/index.js +7 -20
  91. package/build/components/inserter-list-item/index.js.map +1 -1
  92. package/build/components/letter-spacing-control/index.js +6 -3
  93. package/build/components/letter-spacing-control/index.js.map +1 -1
  94. package/build/components/line-height-control/index.js +6 -3
  95. package/build/components/line-height-control/index.js.map +1 -1
  96. package/build/components/link-control/index.js +1 -1
  97. package/build/components/link-control/index.js.map +1 -1
  98. package/build/components/link-control/is-url-like.js +1 -7
  99. package/build/components/link-control/is-url-like.js.map +1 -1
  100. package/build/components/link-control/use-search-handler.js +1 -7
  101. package/build/components/link-control/use-search-handler.js.map +1 -1
  102. package/build/components/list-view/block-select-button.js +15 -7
  103. package/build/components/list-view/block-select-button.js.map +1 -1
  104. package/build/components/list-view/branch.js +1 -7
  105. package/build/components/list-view/branch.js.map +1 -1
  106. package/build/components/list-view/drop-indicator.js +1 -1
  107. package/build/components/list-view/drop-indicator.js.map +1 -1
  108. package/build/components/list-view/expander.js +3 -1
  109. package/build/components/list-view/expander.js.map +1 -1
  110. package/build/components/media-placeholder/index.js +13 -2
  111. package/build/components/media-placeholder/index.js.map +1 -1
  112. package/build/components/media-replace-flow/index.js +3 -6
  113. package/build/components/media-replace-flow/index.js.map +1 -1
  114. package/build/components/media-upload/index.native.js +8 -3
  115. package/build/components/media-upload/index.native.js.map +1 -1
  116. package/build/components/observe-typing/index.js +22 -8
  117. package/build/components/observe-typing/index.js.map +1 -1
  118. package/build/components/preview-options/index.js +2 -2
  119. package/build/components/preview-options/index.js.map +1 -1
  120. package/build/components/{use-no-recursive-renders → recursion-provider}/index.js +40 -18
  121. package/build/components/recursion-provider/index.js.map +1 -0
  122. package/build/components/rich-text/format-toolbar-container.js +61 -12
  123. package/build/components/rich-text/format-toolbar-container.js.map +1 -1
  124. package/build/components/rich-text/index.js +8 -2
  125. package/build/components/rich-text/index.js.map +1 -1
  126. package/build/components/rich-text/index.native.js +3 -1
  127. package/build/components/rich-text/index.native.js.map +1 -1
  128. package/build/components/rich-text/use-before-input-rules.js +110 -0
  129. package/build/components/rich-text/use-before-input-rules.js.map +1 -0
  130. package/build/components/rich-text/use-format-types.js +36 -16
  131. package/build/components/rich-text/use-format-types.js.map +1 -1
  132. package/build/components/text-decoration-control/index.js +3 -1
  133. package/build/components/text-decoration-control/index.js.map +1 -1
  134. package/build/components/text-transform-control/index.js +3 -1
  135. package/build/components/text-transform-control/index.js.map +1 -1
  136. package/build/components/url-popover/image-url-input-ui.js +4 -1
  137. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  138. package/build/components/url-popover/index.js +2 -1
  139. package/build/components/url-popover/index.js.map +1 -1
  140. package/build/components/writing-flow/use-arrow-nav.js +38 -27
  141. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  142. package/build/components/writing-flow/use-drag-selection.js +9 -2
  143. package/build/components/writing-flow/use-drag-selection.js.map +1 -1
  144. package/build/components/writing-flow/use-multi-selection.js +3 -47
  145. package/build/components/writing-flow/use-multi-selection.js.map +1 -1
  146. package/build/components/writing-flow/use-select-all.js +3 -1
  147. package/build/components/writing-flow/use-select-all.js.map +1 -1
  148. package/build/components/writing-flow/use-selection-observer.js +1 -3
  149. package/build/components/writing-flow/use-selection-observer.js.map +1 -1
  150. package/build/components/writing-flow/use-tab-nav.js +1 -1
  151. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  152. package/build/hooks/color.js +2 -4
  153. package/build/hooks/color.js.map +1 -1
  154. package/build/hooks/index.js +8 -0
  155. package/build/hooks/index.js.map +1 -1
  156. package/build/hooks/layout.js +61 -15
  157. package/build/hooks/layout.js.map +1 -1
  158. package/build/hooks/style.js +41 -31
  159. package/build/hooks/style.js.map +1 -1
  160. package/build/hooks/utils.js +5 -3
  161. package/build/hooks/utils.js.map +1 -1
  162. package/build/index.js +7 -0
  163. package/build/index.js.map +1 -1
  164. package/build/layouts/flex.js +40 -36
  165. package/build/layouts/flex.js.map +1 -1
  166. package/build/layouts/flow.js +35 -37
  167. package/build/layouts/flow.js.map +1 -1
  168. package/build/layouts/utils.js +35 -3
  169. package/build/layouts/utils.js.map +1 -1
  170. package/build/store/actions.js +15 -18
  171. package/build/store/actions.js.map +1 -1
  172. package/build/store/index.js +0 -4
  173. package/build/store/index.js.map +1 -1
  174. package/build/store/reducer.js +5 -3
  175. package/build/store/reducer.js.map +1 -1
  176. package/build/store/selectors.js +3 -3
  177. package/build/store/selectors.js.map +1 -1
  178. package/build/utils/block-variation-transforms.js +15 -9
  179. package/build/utils/block-variation-transforms.js.map +1 -1
  180. package/build/utils/pasting.js +9 -1
  181. package/build/utils/pasting.js.map +1 -1
  182. package/build-module/components/block-list/block-invalid-warning.native.js +50 -6
  183. package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
  184. package/build-module/components/block-list/block.js +15 -5
  185. package/build-module/components/block-list/block.js.map +1 -1
  186. package/build-module/components/block-list/block.native.js +2 -1
  187. package/build-module/components/block-list/block.native.js.map +1 -1
  188. package/build-module/components/block-list/index.native.js +4 -2
  189. package/build-module/components/block-list/index.native.js.map +1 -1
  190. package/build-module/components/block-list/layout.js +19 -4
  191. package/build-module/components/block-list/layout.js.map +1 -1
  192. package/build-module/components/block-list/use-block-props/use-block-class-names.js +5 -2
  193. package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  194. package/build-module/components/block-lock/modal.js +39 -8
  195. package/build-module/components/block-lock/modal.js.map +1 -1
  196. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +2 -2
  197. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  198. package/build-module/components/block-mover/mover-description.js +97 -33
  199. package/build-module/components/block-mover/mover-description.js.map +1 -1
  200. package/build-module/components/block-pattern-setup/index.js +6 -18
  201. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  202. package/build-module/components/block-popover/inbetween.js +2 -2
  203. package/build-module/components/block-popover/inbetween.js.map +1 -1
  204. package/build-module/components/block-popover/index.js +1 -1
  205. package/build-module/components/block-popover/index.js.map +1 -1
  206. package/build-module/components/block-settings-menu/block-mode-toggle.js +1 -1
  207. package/build-module/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  208. package/build-module/components/block-settings-menu/block-settings-dropdown.js +4 -1
  209. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  210. package/build-module/components/block-settings-menu-controls/index.js +2 -2
  211. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  212. package/build-module/components/block-styles/index.js +4 -7
  213. package/build-module/components/block-styles/index.js.map +1 -1
  214. package/build-module/components/block-styles/preview.native.js.map +1 -1
  215. package/build-module/components/block-switcher/index.js +7 -1
  216. package/build-module/components/block-switcher/index.js.map +1 -1
  217. package/build-module/components/block-title/index.js +8 -2
  218. package/build-module/components/block-title/index.js.map +1 -1
  219. package/build-module/components/block-title/use-block-display-title.js +12 -5
  220. package/build-module/components/block-title/use-block-display-title.js.map +1 -1
  221. package/build-module/components/block-tools/block-contextual-toolbar.js +1 -1
  222. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  223. package/build-module/components/block-tools/block-selection-button.js +1 -7
  224. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  225. package/build-module/components/block-tools/index.js +4 -1
  226. package/build-module/components/block-tools/index.js.map +1 -1
  227. package/build-module/components/block-types-list/index.js +1 -1
  228. package/build-module/components/block-types-list/index.js.map +1 -1
  229. package/build-module/components/block-types-list/index.native.js +67 -25
  230. package/build-module/components/block-types-list/index.native.js.map +1 -1
  231. package/build-module/components/border-radius-control/index.js +6 -2
  232. package/build-module/components/border-radius-control/index.js.map +1 -1
  233. package/build-module/components/colors/utils.js +7 -3
  234. package/build-module/components/colors/utils.js.map +1 -1
  235. package/build-module/components/colors/with-colors.js +2 -2
  236. package/build-module/components/colors/with-colors.js.map +1 -1
  237. package/build-module/components/colors-gradients/control.js +50 -40
  238. package/build-module/components/colors-gradients/control.js.map +1 -1
  239. package/build-module/components/colors-gradients/dropdown.js +10 -4
  240. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  241. package/build-module/components/date-format-picker/index.js +1 -1
  242. package/build-module/components/date-format-picker/index.js.map +1 -1
  243. package/build-module/components/font-appearance-control/index.js +7 -4
  244. package/build-module/components/font-appearance-control/index.js.map +1 -1
  245. package/build-module/components/iframe/index.js +19 -6
  246. package/build-module/components/iframe/index.js.map +1 -1
  247. package/build-module/components/image-editor/cropper.js +4 -3
  248. package/build-module/components/image-editor/cropper.js.map +1 -1
  249. package/build-module/components/image-editor/index.js +3 -1
  250. package/build-module/components/image-editor/index.js.map +1 -1
  251. package/build-module/components/image-size-control/index.js +3 -1
  252. package/build-module/components/image-size-control/index.js.map +1 -1
  253. package/build-module/components/index.js +1 -1
  254. package/build-module/components/index.js.map +1 -1
  255. package/build-module/components/index.native.js +1 -1
  256. package/build-module/components/index.native.js.map +1 -1
  257. package/build-module/components/inserter/block-types-tab.native.js +31 -15
  258. package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
  259. package/build-module/components/inserter/index.native.js +9 -2
  260. package/build-module/components/inserter/index.native.js.map +1 -1
  261. package/build-module/components/inserter/preview-panel.js +9 -9
  262. package/build-module/components/inserter/preview-panel.js.map +1 -1
  263. package/build-module/components/inserter/reusable-blocks-tab.native.js +6 -2
  264. package/build-module/components/inserter/reusable-blocks-tab.native.js.map +1 -1
  265. package/build-module/components/inserter/search-results.native.js +6 -3
  266. package/build-module/components/inserter/search-results.native.js.map +1 -1
  267. package/build-module/components/inserter/utils.native.js +19 -0
  268. package/build-module/components/inserter/utils.native.js.map +1 -1
  269. package/build-module/components/inserter-list-item/index.js +5 -18
  270. package/build-module/components/inserter-list-item/index.js.map +1 -1
  271. package/build-module/components/letter-spacing-control/index.js +5 -3
  272. package/build-module/components/letter-spacing-control/index.js.map +1 -1
  273. package/build-module/components/line-height-control/index.js +5 -3
  274. package/build-module/components/line-height-control/index.js.map +1 -1
  275. package/build-module/components/link-control/index.js +1 -1
  276. package/build-module/components/link-control/index.js.map +1 -1
  277. package/build-module/components/link-control/is-url-like.js +1 -6
  278. package/build-module/components/link-control/is-url-like.js.map +1 -1
  279. package/build-module/components/link-control/use-search-handler.js +1 -6
  280. package/build-module/components/link-control/use-search-handler.js.map +1 -1
  281. package/build-module/components/list-view/block-select-button.js +16 -8
  282. package/build-module/components/list-view/block-select-button.js.map +1 -1
  283. package/build-module/components/list-view/branch.js +1 -6
  284. package/build-module/components/list-view/branch.js.map +1 -1
  285. package/build-module/components/list-view/drop-indicator.js +1 -1
  286. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  287. package/build-module/components/list-view/expander.js +3 -2
  288. package/build-module/components/list-view/expander.js.map +1 -1
  289. package/build-module/components/media-placeholder/index.js +13 -2
  290. package/build-module/components/media-placeholder/index.js.map +1 -1
  291. package/build-module/components/media-replace-flow/index.js +4 -7
  292. package/build-module/components/media-replace-flow/index.js.map +1 -1
  293. package/build-module/components/media-upload/index.native.js +9 -2
  294. package/build-module/components/media-upload/index.native.js.map +1 -1
  295. package/build-module/components/observe-typing/index.js +22 -8
  296. package/build-module/components/observe-typing/index.js.map +1 -1
  297. package/build-module/components/preview-options/index.js +2 -2
  298. package/build-module/components/preview-options/index.js.map +1 -1
  299. package/build-module/components/{use-no-recursive-renders → recursion-provider}/index.js +39 -19
  300. package/build-module/components/recursion-provider/index.js.map +1 -0
  301. package/build-module/components/rich-text/format-toolbar-container.js +58 -12
  302. package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
  303. package/build-module/components/rich-text/index.js +7 -2
  304. package/build-module/components/rich-text/index.js.map +1 -1
  305. package/build-module/components/rich-text/index.native.js +3 -1
  306. package/build-module/components/rich-text/index.native.js.map +1 -1
  307. package/build-module/components/rich-text/use-before-input-rules.js +96 -0
  308. package/build-module/components/rich-text/use-before-input-rules.js.map +1 -0
  309. package/build-module/components/rich-text/use-format-types.js +37 -18
  310. package/build-module/components/rich-text/use-format-types.js.map +1 -1
  311. package/build-module/components/text-decoration-control/index.js +4 -2
  312. package/build-module/components/text-decoration-control/index.js.map +1 -1
  313. package/build-module/components/text-transform-control/index.js +4 -2
  314. package/build-module/components/text-transform-control/index.js.map +1 -1
  315. package/build-module/components/url-popover/image-url-input-ui.js +4 -1
  316. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  317. package/build-module/components/url-popover/index.js +2 -1
  318. package/build-module/components/url-popover/index.js.map +1 -1
  319. package/build-module/components/writing-flow/use-arrow-nav.js +40 -29
  320. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  321. package/build-module/components/writing-flow/use-drag-selection.js +9 -2
  322. package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
  323. package/build-module/components/writing-flow/use-multi-selection.js +3 -45
  324. package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
  325. package/build-module/components/writing-flow/use-select-all.js +3 -1
  326. package/build-module/components/writing-flow/use-select-all.js.map +1 -1
  327. package/build-module/components/writing-flow/use-selection-observer.js +1 -3
  328. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
  329. package/build-module/components/writing-flow/use-tab-nav.js +1 -1
  330. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  331. package/build-module/hooks/color.js +2 -3
  332. package/build-module/hooks/color.js.map +1 -1
  333. package/build-module/hooks/index.js +1 -0
  334. package/build-module/hooks/index.js.map +1 -1
  335. package/build-module/hooks/layout.js +62 -16
  336. package/build-module/hooks/layout.js.map +1 -1
  337. package/build-module/hooks/style.js +44 -35
  338. package/build-module/hooks/style.js.map +1 -1
  339. package/build-module/hooks/utils.js +5 -2
  340. package/build-module/hooks/utils.js.map +1 -1
  341. package/build-module/index.js +1 -1
  342. package/build-module/index.js.map +1 -1
  343. package/build-module/layouts/flex.js +41 -33
  344. package/build-module/layouts/flex.js.map +1 -1
  345. package/build-module/layouts/flow.js +35 -38
  346. package/build-module/layouts/flow.js.map +1 -1
  347. package/build-module/layouts/utils.js +33 -3
  348. package/build-module/layouts/utils.js.map +1 -1
  349. package/build-module/store/actions.js +9 -10
  350. package/build-module/store/actions.js.map +1 -1
  351. package/build-module/store/index.js +0 -4
  352. package/build-module/store/index.js.map +1 -1
  353. package/build-module/store/reducer.js +5 -2
  354. package/build-module/store/reducer.js.map +1 -1
  355. package/build-module/store/selectors.js +4 -4
  356. package/build-module/store/selectors.js.map +1 -1
  357. package/build-module/utils/block-variation-transforms.js +14 -7
  358. package/build-module/utils/block-variation-transforms.js.map +1 -1
  359. package/build-module/utils/pasting.js +9 -1
  360. package/build-module/utils/pasting.js.map +1 -1
  361. package/build-style/style-rtl.css +72 -14
  362. package/build-style/style.css +72 -14
  363. package/package.json +28 -28
  364. package/src/components/block-list/block-invalid-warning.native.js +42 -7
  365. package/src/components/block-list/block.js +15 -4
  366. package/src/components/block-list/block.native.js +1 -0
  367. package/src/components/block-list/index.native.js +2 -2
  368. package/src/components/block-list/layout.js +15 -3
  369. package/src/components/block-list/style.scss +1 -1
  370. package/src/components/block-list/use-block-props/use-block-class-names.js +5 -1
  371. package/src/components/block-lock/modal.js +47 -9
  372. package/src/components/block-lock/style.scss +10 -0
  373. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +3 -3
  374. package/src/components/block-mover/mover-description.js +131 -48
  375. package/src/components/block-mover/test/mover-description.js +55 -3
  376. package/src/components/block-pattern-setup/index.js +3 -15
  377. package/src/components/block-pattern-setup/style.scss +4 -2
  378. package/src/components/block-popover/inbetween.js +2 -1
  379. package/src/components/block-popover/index.js +1 -1
  380. package/src/components/block-popover/style.scss +25 -2
  381. package/src/components/block-settings-menu/block-mode-toggle.js +1 -0
  382. package/src/components/block-settings-menu/block-settings-dropdown.js +4 -1
  383. package/src/components/block-settings-menu-controls/index.js +2 -2
  384. package/src/components/block-styles/index.js +4 -7
  385. package/src/components/block-styles/preview.native.js +1 -0
  386. package/src/components/block-styles/style.scss +10 -0
  387. package/src/components/block-switcher/index.js +7 -1
  388. package/src/components/block-title/index.js +3 -2
  389. package/src/components/block-title/use-block-display-title.js +11 -5
  390. package/src/components/block-tools/block-contextual-toolbar.js +3 -1
  391. package/src/components/block-tools/block-selection-button.js +0 -5
  392. package/src/components/block-tools/index.js +4 -1
  393. package/src/components/block-types-list/index.js +1 -1
  394. package/src/components/block-types-list/index.native.js +76 -24
  395. package/src/components/block-types-list/style.native.scss +18 -0
  396. package/src/components/border-radius-control/index.js +6 -1
  397. package/src/components/color-palette/test/__snapshots__/control.js.snap +91 -79
  398. package/src/components/colors/test/__snapshots__/with-colors.js.snap +1 -1
  399. package/src/components/colors/test/with-colors.js +1 -1
  400. package/src/components/colors/utils.js +5 -2
  401. package/src/components/colors/with-colors.js +2 -2
  402. package/src/components/colors-gradients/control.js +82 -65
  403. package/src/components/colors-gradients/dropdown.js +14 -3
  404. package/src/components/colors-gradients/style.scss +34 -9
  405. package/src/components/colors-gradients/test/control.js +16 -23
  406. package/src/components/date-format-picker/index.js +1 -0
  407. package/src/components/font-appearance-control/index.js +3 -0
  408. package/src/components/iframe/index.js +25 -6
  409. package/src/components/image-editor/cropper.js +9 -3
  410. package/src/components/image-editor/index.js +2 -0
  411. package/src/components/image-size-control/README.md +7 -0
  412. package/src/components/image-size-control/index.js +2 -0
  413. package/src/components/index.js +4 -1
  414. package/src/components/index.native.js +4 -1
  415. package/src/components/inserter/block-types-tab.native.js +42 -21
  416. package/src/components/inserter/index.native.js +7 -2
  417. package/src/components/inserter/preview-panel.js +6 -14
  418. package/src/components/inserter/reusable-blocks-tab.native.js +4 -2
  419. package/src/components/inserter/search-results.native.js +4 -2
  420. package/src/components/inserter/style.scss +1 -1
  421. package/src/components/inserter/test/block-types-tab.native.js +2 -0
  422. package/src/components/inserter/test/utils.native.js +37 -0
  423. package/src/components/inserter/utils.native.js +11 -0
  424. package/src/components/inserter-list-item/index.js +5 -18
  425. package/src/components/letter-spacing-control/index.js +2 -0
  426. package/src/components/line-height-control/index.js +2 -0
  427. package/src/components/link-control/index.js +1 -0
  428. package/src/components/link-control/is-url-like.js +1 -6
  429. package/src/components/link-control/test/index.js +6 -4
  430. package/src/components/link-control/use-search-handler.js +1 -6
  431. package/src/components/list-view/block-select-button.js +29 -14
  432. package/src/components/list-view/branch.js +1 -6
  433. package/src/components/list-view/drop-indicator.js +1 -1
  434. package/src/components/list-view/expander.js +4 -2
  435. package/src/components/list-view/style.scss +18 -4
  436. package/src/components/media-placeholder/index.js +19 -0
  437. package/src/components/media-replace-flow/index.js +3 -6
  438. package/src/components/media-replace-flow/test/index.js +14 -4
  439. package/src/components/media-upload/index.native.js +7 -3
  440. package/src/components/observe-typing/index.js +17 -14
  441. package/src/components/preview-options/index.js +2 -2
  442. package/src/components/{use-no-recursive-renders → recursion-provider}/index.js +39 -28
  443. package/src/components/{use-no-recursive-renders/test/use-no-recursive-renders.js → recursion-provider/test/index.js} +5 -6
  444. package/src/components/rich-text/README.md +13 -1
  445. package/src/components/rich-text/format-toolbar-container.js +63 -14
  446. package/src/components/rich-text/index.js +3 -0
  447. package/src/components/rich-text/index.native.js +2 -0
  448. package/src/components/rich-text/use-before-input-rules.js +91 -0
  449. package/src/components/rich-text/use-format-types.js +38 -17
  450. package/src/components/text-decoration-control/index.js +4 -2
  451. package/src/components/text-transform-control/index.js +4 -2
  452. package/src/components/url-popover/image-url-input-ui.js +3 -0
  453. package/src/components/url-popover/index.js +1 -0
  454. package/src/components/url-popover/test/__snapshots__/index.js.snap +3 -0
  455. package/src/components/writing-flow/use-arrow-nav.js +36 -34
  456. package/src/components/writing-flow/use-drag-selection.js +7 -1
  457. package/src/components/writing-flow/use-multi-selection.js +1 -48
  458. package/src/components/writing-flow/use-select-all.js +2 -1
  459. package/src/components/writing-flow/use-selection-observer.js +2 -3
  460. package/src/components/writing-flow/use-tab-nav.js +1 -1
  461. package/src/hooks/color.js +10 -3
  462. package/src/hooks/index.js +1 -0
  463. package/src/hooks/layout.js +66 -23
  464. package/src/hooks/style.js +46 -39
  465. package/src/hooks/utils.js +7 -3
  466. package/src/index.js +1 -0
  467. package/src/layouts/flex.js +47 -41
  468. package/src/layouts/flow.js +35 -34
  469. package/src/layouts/test/flex.js +21 -0
  470. package/src/layouts/test/flow.js +21 -0
  471. package/src/layouts/test/utils.js +138 -0
  472. package/src/layouts/utils.js +44 -3
  473. package/src/store/actions.js +10 -11
  474. package/src/store/index.js +0 -4
  475. package/src/store/reducer.js +3 -2
  476. package/src/store/selectors.js +3 -4
  477. package/src/utils/block-variation-transforms.js +13 -6
  478. package/src/utils/pasting.js +10 -1
  479. package/src/utils/test/block-variation-transforms.js +24 -0
  480. package/src/utils/test/pasting.js +10 -0
  481. package/tsconfig.json +2 -1
  482. package/build/components/use-no-recursive-renders/index.js.map +0 -1
  483. package/build-module/components/use-no-recursive-renders/index.js.map +0 -1
@@ -17,6 +17,8 @@
17
17
  display: block;
18
18
  width: 100%;
19
19
  padding: $grid-unit-40;
20
+ padding-bottom: 0;
21
+ padding-top: 0;
20
22
  column-count: 2;
21
23
 
22
24
  @include break-huge() {
@@ -53,8 +55,9 @@
53
55
  text-align: left;
54
56
  margin: 0;
55
57
  color: $gray-900;
58
+ position: absolute;
59
+ bottom: 0;
56
60
  // Block UI appearance.
57
- border-radius: $radius-block-ui $radius-block-ui 0 0;
58
61
  background-color: $white;
59
62
  display: flex;
60
63
  flex-direction: row;
@@ -129,5 +132,4 @@
129
132
  .block-editor-block-pattern-setup__carousel,
130
133
  .block-editor-block-pattern-setup__grid {
131
134
  width: 100%;
132
- overflow-y: auto;
133
135
  }
@@ -172,7 +172,7 @@ function BlockPopoverInbetween( {
172
172
  getAnchorRect={ getAnchorRect }
173
173
  focusOnMount={ false }
174
174
  // Render in the old slot if needed for backward compatibility,
175
- // otherwise render in place (not in the the default popover slot).
175
+ // otherwise render in place (not in the default popover slot).
176
176
  __unstableSlotName={ __unstablePopoverSlot || null }
177
177
  // Forces a remount of the popover when its position changes
178
178
  // This makes sure the popover doesn't animate from its previous position.
@@ -180,6 +180,7 @@ function BlockPopoverInbetween( {
180
180
  { ...props }
181
181
  className={ classnames(
182
182
  'block-editor-block-popover',
183
+ 'block-editor-block-popover__inbetween',
183
184
  props.className
184
185
  ) }
185
186
  __unstableForcePosition
@@ -57,7 +57,7 @@ export default function BlockPopover( {
57
57
  focusOnMount={ false }
58
58
  anchorRef={ anchorRef }
59
59
  // Render in the old slot if needed for backward compatibility,
60
- // otherwise render in place (not in the the default popover slot).
60
+ // otherwise render in place (not in the default popover slot).
61
61
  __unstableSlotName={ __unstablePopoverSlot || null }
62
62
  // Observe movement for block animations (especially horizontal).
63
63
  __unstableObserveElement={ selectedElement }
@@ -18,11 +18,34 @@
18
18
 
19
19
  // Allow clicking through the toolbar holder.
20
20
  pointer-events: none;
21
+ }
21
22
 
22
- // Position the block toolbar.
23
- > * {
23
+ // Enable pointer events for the toolbar's content.
24
+ &:not(.block-editor-block-popover__inbetween) .components-popover__content {
25
+ * {
24
26
  pointer-events: all;
25
27
  }
26
28
  }
27
29
  }
28
30
 
31
+ .components-popover.block-editor-block-popover__inbetween {
32
+ // Disable pointer events for dragging and dropping.
33
+ // Without this the insertion point interferes with the
34
+ // drop zone.
35
+ pointer-events: none;
36
+
37
+ * {
38
+ pointer-events: none;
39
+ }
40
+
41
+ // Re-enable pointer events when the inbetween inserter has a '+' button.
42
+ //
43
+ // Needs specificity, do not simplify.
44
+ .is-with-inserter {
45
+ pointer-events: all;
46
+
47
+ * {
48
+ pointer-events: all;
49
+ }
50
+ }
51
+ }
@@ -22,6 +22,7 @@ export function BlockModeToggle( {
22
22
  isCodeEditingEnabled = true,
23
23
  } ) {
24
24
  if (
25
+ ! blockType ||
25
26
  ! hasBlockSupport( blockType, 'html', true ) ||
26
27
  ! isCodeEditingEnabled
27
28
  ) {
@@ -125,7 +125,10 @@ export function BlockSettingsDropdown( {
125
125
  [ __experimentalSelectBlock ]
126
126
  );
127
127
 
128
- const blockTitle = useBlockDisplayTitle( firstBlockClientId, 25 );
128
+ const blockTitle = useBlockDisplayTitle( {
129
+ clientId: firstBlockClientId,
130
+ maximumLength: 25,
131
+ } );
129
132
 
130
133
  const updateSelectionAfterRemove = useCallback(
131
134
  __experimentalSelectBlock
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { compact, map } from 'lodash';
4
+ import { map } from 'lodash';
5
5
 
6
6
  /**
7
7
  * WordPress dependencies
@@ -37,7 +37,7 @@ const BlockSettingsMenuControlsSlot = ( { fillProps, clientIds = null } ) => {
37
37
  clientIds !== null ? clientIds : getSelectedBlockClientIds();
38
38
  return {
39
39
  selectedBlocks: map(
40
- compact( getBlocksByClientId( ids ) ),
40
+ getBlocksByClientId( ids ).filter( Boolean ),
41
41
  ( block ) => block.name
42
42
  ),
43
43
  selectedClientIds: ids,
@@ -11,7 +11,7 @@ import { useState, useLayoutEffect } from '@wordpress/element';
11
11
  import { useViewportMatch } from '@wordpress/compose';
12
12
  import {
13
13
  Button,
14
- __experimentalText as Text,
14
+ __experimentalTruncate as Truncate,
15
15
  Slot,
16
16
  Fill,
17
17
  } from '@wordpress/components';
@@ -117,15 +117,12 @@ function BlockStyles( {
117
117
  onClick={ () => onSelectStylePreview( style ) }
118
118
  aria-current={ activeStyle.name === style.name }
119
119
  >
120
- <Text
121
- as="span"
122
- limit={ 12 }
123
- ellipsizeMode="tail"
120
+ <Truncate
121
+ numberOfLines={ 1 }
124
122
  className="block-editor-block-styles__item-text"
125
- truncate
126
123
  >
127
124
  { buttonText }
128
- </Text>
125
+ </Truncate>
129
126
  </Button>
130
127
  );
131
128
  } ) }
@@ -10,6 +10,7 @@ import {
10
10
  Easing,
11
11
  Image,
12
12
  } from 'react-native';
13
+
13
14
  /**
14
15
  * WordPress dependencies
15
16
  */
@@ -64,6 +64,16 @@
64
64
  box-shadow: inset 0 0 0 1px $white, 0 0 0 2px var(--wp-admin-theme-color);
65
65
  }
66
66
  }
67
+
68
+ .block-editor-block-styles__item-text {
69
+ word-break: break-all;
70
+ // The Button component is white-space: nowrap, and that won't work with line-clamp.
71
+ white-space: normal;
72
+
73
+ // Without this, the ellipsis can sometimes be partially hidden by the Button padding.
74
+ text-align: start;
75
+ text-align-last: center;
76
+ }
67
77
  }
68
78
 
69
79
  // To prevent overflow in the preview container,
@@ -98,8 +98,14 @@ export const BlockSwitcherDropdownMenu = ( { clientIds, blocks } ) => {
98
98
  // Pattern transformation through the `Patterns` API.
99
99
  const onPatternTransform = ( transformedBlocks ) =>
100
100
  replaceBlocks( clientIds, transformedBlocks );
101
+
102
+ /**
103
+ * The `isTemplate` check is a stopgap solution here.
104
+ * Ideally, the Transforms API should handle this
105
+ * by allowing to exclude blocks from wildcard transformations.
106
+ */
101
107
  const hasPossibleBlockTransformations =
102
- !! possibleBlockTransformations.length && canRemove;
108
+ !! possibleBlockTransformations.length && canRemove && ! isTemplate;
103
109
  const hasPatternTransformation = !! patterns?.length && canRemove;
104
110
  if ( ! hasBlockStyles && ! hasPossibleBlockTransformations ) {
105
111
  return (
@@ -17,9 +17,10 @@ import useBlockDisplayTitle from './use-block-display-title';
17
17
  * @param {Object} props
18
18
  * @param {string} props.clientId Client ID of block.
19
19
  * @param {number|undefined} props.maximumLength The maximum length that the block title string may be before truncated.
20
+ * @param {string|undefined} props.context The context to pass to `getBlockLabel`.
20
21
  *
21
22
  * @return {JSX.Element} Block title.
22
23
  */
23
- export default function BlockTitle( { clientId, maximumLength } ) {
24
- return useBlockDisplayTitle( clientId, maximumLength );
24
+ export default function BlockTitle( { clientId, maximumLength, context } ) {
25
+ return useBlockDisplayTitle( { clientId, maximumLength, context } );
25
26
  }
@@ -21,14 +21,20 @@ import { store as blockEditorStore } from '../../store';
21
21
  * @example
22
22
  *
23
23
  * ```js
24
- * useBlockDisplayTitle( 'afd1cb17-2c08-4e7a-91be-007ba7ddc3a1', 17 );
24
+ * useBlockDisplayTitle( { clientId: 'afd1cb17-2c08-4e7a-91be-007ba7ddc3a1', maximumLength: 17 } );
25
25
  * ```
26
26
  *
27
- * @param {string} clientId Client ID of block.
28
- * @param {number|undefined} maximumLength The maximum length that the block title string may be before truncated.
27
+ * @param {Object} props
28
+ * @param {string} props.clientId Client ID of block.
29
+ * @param {number|undefined} props.maximumLength The maximum length that the block title string may be before truncated.
30
+ * @param {string|undefined} props.context The context to pass to `getBlockLabel`.
29
31
  * @return {?string} Block title.
30
32
  */
31
- export default function useBlockDisplayTitle( clientId, maximumLength ) {
33
+ export default function useBlockDisplayTitle( {
34
+ clientId,
35
+ maximumLength,
36
+ context,
37
+ } ) {
32
38
  const { attributes, name, reusableBlockTitle } = useSelect(
33
39
  ( select ) => {
34
40
  if ( ! clientId ) {
@@ -63,7 +69,7 @@ export default function useBlockDisplayTitle( clientId, maximumLength ) {
63
69
  }
64
70
  const blockType = getBlockType( name );
65
71
  const blockLabel = blockType
66
- ? getBlockLabel( blockType, attributes )
72
+ ? getBlockLabel( blockType, attributes, context )
67
73
  : null;
68
74
 
69
75
  const label = reusableBlockTitle || blockLabel;
@@ -36,11 +36,13 @@ function BlockContextualToolbar( { focusOnMount, isFixed, ...props } ) {
36
36
  getBlockType( getBlockName( selectedBlockClientId ) ),
37
37
  hasParents: parents.length,
38
38
  showParentSelector:
39
+ parentBlockType &&
39
40
  hasBlockSupport(
40
41
  parentBlockType,
41
42
  '__experimentalParentSelector',
42
43
  true
43
- ) && selectedBlockClientIds.length <= 1,
44
+ ) &&
45
+ selectedBlockClientIds.length <= 1,
44
46
  };
45
47
  },
46
48
  []
@@ -102,7 +102,6 @@ function BlockSelectionButton( { clientId, rootClientId } ) {
102
102
  getMultiSelectedBlocksEndClientId,
103
103
  getPreviousBlockClientId,
104
104
  getNextBlockClientId,
105
- isNavigationMode,
106
105
  } = useSelect( blockEditorStore );
107
106
  const {
108
107
  selectBlock,
@@ -160,10 +159,6 @@ function BlockSelectionButton( { clientId, rootClientId } ) {
160
159
  selectedBlockClientId;
161
160
  }
162
161
  const startingBlockClientId = hasBlockMovingClientId();
163
- if ( isEscape && isNavigationMode() ) {
164
- clearSelectedBlock();
165
- event.preventDefault();
166
- }
167
162
  if ( isEscape && startingBlockClientId && ! event.defaultPrevented ) {
168
163
  setBlockMovingClientId( null );
169
164
  event.preventDefault();
@@ -53,6 +53,8 @@ export default function BlockTools( {
53
53
  } = useDispatch( blockEditorStore );
54
54
 
55
55
  function onKeyDown( event ) {
56
+ if ( event.defaultPrevented ) return;
57
+
56
58
  if ( isMatch( 'core/block-editor/move-up', event ) ) {
57
59
  const clientIds = getSelectedBlockClientIds();
58
60
  if ( clientIds.length ) {
@@ -93,12 +95,13 @@ export default function BlockTools( {
93
95
  }
94
96
  } else if ( isMatch( 'core/block-editor/unselect', event ) ) {
95
97
  const clientIds = getSelectedBlockClientIds();
96
- if ( clientIds.length > 1 ) {
98
+ if ( clientIds.length ) {
97
99
  event.preventDefault();
98
100
  clearSelectedBlock();
99
101
  event.target.ownerDocument.defaultView
100
102
  .getSelection()
101
103
  .removeAllRanges();
104
+ __unstableContentRef?.current.focus();
102
105
  }
103
106
  }
104
107
  }
@@ -41,7 +41,7 @@ function BlockTypesList( {
41
41
  ) }
42
42
  onSelect={ onSelect }
43
43
  onHover={ onHover }
44
- isDraggable={ isDraggable }
44
+ isDraggable={ isDraggable && ! item.isDisabled }
45
45
  isFirst={ i === 0 && j === 0 }
46
46
  />
47
47
  ) ) }
@@ -4,7 +4,9 @@
4
4
  import {
5
5
  Dimensions,
6
6
  FlatList,
7
+ SectionList,
7
8
  StyleSheet,
9
+ Text,
8
10
  TouchableWithoutFeedback,
9
11
  View,
10
12
  } from 'react-native';
@@ -13,7 +15,11 @@ import {
13
15
  * WordPress dependencies
14
16
  */
15
17
  import { useState, useEffect } from '@wordpress/element';
16
- import { BottomSheet, InserterButton } from '@wordpress/components';
18
+ import { BottomSheet, Gradient, InserterButton } from '@wordpress/components';
19
+ import {
20
+ usePreferredColorScheme,
21
+ usePreferredColorSchemeStyle,
22
+ } from '@wordpress/compose';
17
23
 
18
24
  /**
19
25
  * Internal dependencies
@@ -24,7 +30,7 @@ const MIN_COL_NUM = 3;
24
30
 
25
31
  export default function BlockTypesList( {
26
32
  name,
27
- items,
33
+ sections,
28
34
  onSelect,
29
35
  listProps,
30
36
  initialNumToRender = 3,
@@ -80,33 +86,79 @@ export default function BlockTypesList( {
80
86
  listProps.contentContainerStyle
81
87
  );
82
88
 
89
+ const renderSection = ( { item } ) => {
90
+ return (
91
+ <TouchableWithoutFeedback accessible={ false }>
92
+ <FlatList
93
+ data={ item.list }
94
+ key={ `InserterUI-${ name }-${ numberOfColumns }` } // Re-render when numberOfColumns changes.
95
+ numColumns={ numberOfColumns }
96
+ ItemSeparatorComponent={ () => (
97
+ <TouchableWithoutFeedback accessible={ false }>
98
+ <View
99
+ style={
100
+ styles[ 'block-types-list__row-separator' ]
101
+ }
102
+ />
103
+ </TouchableWithoutFeedback>
104
+ ) }
105
+ scrollEnabled={ false }
106
+ renderItem={ renderListItem }
107
+ />
108
+ </TouchableWithoutFeedback>
109
+ );
110
+ };
111
+
112
+ const renderListItem = ( { item } ) => {
113
+ return (
114
+ <InserterButton
115
+ item={ item }
116
+ itemWidth={ itemWidth }
117
+ maxWidth={ maxWidth }
118
+ onSelect={ onSelect }
119
+ />
120
+ );
121
+ };
122
+
123
+ const colorScheme = usePreferredColorScheme();
124
+ const sectionHeaderGradientValue =
125
+ colorScheme === 'light'
126
+ ? 'linear-gradient(#fff 70%, rgba(255, 255, 255, 0))'
127
+ : 'linear-gradient(#2e2e2e 70%, rgba(46, 46, 46, 0))';
128
+ const sectionHeaderTitleStyles = usePreferredColorSchemeStyle(
129
+ styles[ 'block-types-list__section-header-title' ],
130
+ styles[ 'block-types-list__section-header-title--dark' ]
131
+ );
132
+
133
+ const renderSectionHeader = ( { section: { metadata } } ) => {
134
+ if ( ! metadata?.icon || ! metadata?.title ) {
135
+ return null;
136
+ }
137
+
138
+ return (
139
+ <TouchableWithoutFeedback accessible={ false }>
140
+ <Gradient
141
+ gradientValue={ sectionHeaderGradientValue }
142
+ style={ styles[ 'block-types-list__section-header' ] }
143
+ >
144
+ { metadata?.icon }
145
+ <Text style={ sectionHeaderTitleStyles }>
146
+ { metadata?.title }
147
+ </Text>
148
+ </Gradient>
149
+ </TouchableWithoutFeedback>
150
+ );
151
+ };
152
+
83
153
  return (
84
- <FlatList
154
+ <SectionList
85
155
  onLayout={ onLayout }
86
- key={ `InserterUI-${ name }-${ numberOfColumns }` } // Re-render when numberOfColumns changes.
87
156
  testID={ `InserterUI-${ name }` }
88
157
  keyboardShouldPersistTaps="always"
89
- numColumns={ numberOfColumns }
90
- data={ items }
158
+ sections={ sections }
91
159
  initialNumToRender={ initialNumToRender }
92
- ItemSeparatorComponent={ () => (
93
- <TouchableWithoutFeedback accessible={ false }>
94
- <View
95
- style={ styles[ 'block-types-list__row-separator' ] }
96
- />
97
- </TouchableWithoutFeedback>
98
- ) }
99
- keyExtractor={ ( item ) => item.id }
100
- renderItem={ ( { item } ) => (
101
- <InserterButton
102
- { ...{
103
- item,
104
- itemWidth,
105
- maxWidth,
106
- onSelect,
107
- } }
108
- />
109
- ) }
160
+ renderItem={ renderSection }
161
+ renderSectionHeader={ renderSectionHeader }
110
162
  { ...listProps }
111
163
  contentContainerStyle={ {
112
164
  ...contentContainerStyle,
@@ -5,3 +5,21 @@
5
5
  .block-types-list__column {
6
6
  padding: $grid-unit-20;
7
7
  }
8
+
9
+ .block-types-list__section-header {
10
+ align-items: center;
11
+ flex-direction: row;
12
+ justify-content: center;
13
+ padding-bottom: 16;
14
+ padding-top: 32;
15
+ }
16
+
17
+ .block-types-list__section-header-title {
18
+ color: $black;
19
+ font-size: 16px;
20
+ margin-left: 10px;
21
+ }
22
+
23
+ .block-types-list__section-header-title--dark {
24
+ color: $white;
25
+ }
@@ -2,6 +2,7 @@
2
2
  * WordPress dependencies
3
3
  */
4
4
  import {
5
+ BaseControl,
5
6
  RangeControl,
6
7
  __experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,
7
8
  __experimentalUseCustomUnits as useCustomUnits,
@@ -70,7 +71,9 @@ export default function BorderRadiusControl( { onChange, values } ) {
70
71
 
71
72
  return (
72
73
  <fieldset className="components-border-radius-control">
73
- <legend>{ __( 'Radius' ) }</legend>
74
+ <BaseControl.VisualLabel as="legend">
75
+ { __( 'Radius' ) }
76
+ </BaseControl.VisualLabel>
74
77
  <div className="components-border-radius-control__wrapper">
75
78
  { isLinked ? (
76
79
  <>
@@ -82,6 +85,8 @@ export default function BorderRadiusControl( { onChange, values } ) {
82
85
  units={ units }
83
86
  />
84
87
  <RangeControl
88
+ label={ __( 'Border radius' ) }
89
+ hideLabelFromVision
85
90
  className="components-border-radius-control__range-control"
86
91
  value={ allValue ?? '' }
87
92
  min={ MIN_BORDER_RADIUS_VALUE }