@wordpress/block-editor 12.24.0 → 12.25.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 (510) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +1 -1
  3. package/build/components/alignment-control/ui.js +3 -1
  4. package/build/components/alignment-control/ui.js.map +1 -1
  5. package/build/components/block-inspector/index.js +1 -1
  6. package/build/components/block-inspector/index.js.map +1 -1
  7. package/build/components/block-list/block.js +0 -9
  8. package/build/components/block-list/block.js.map +1 -1
  9. package/build/components/block-list/index.js +4 -3
  10. package/build/components/block-list/index.js.map +1 -1
  11. package/build/components/block-list/index.native.js +1 -9
  12. package/build/components/block-list/index.native.js.map +1 -1
  13. package/build/components/block-list/use-block-props/index.js +6 -6
  14. package/build/components/block-list/use-block-props/index.js.map +1 -1
  15. package/build/components/block-list/use-block-props/use-block-refs.js +17 -46
  16. package/build/components/block-list/use-block-props/use-block-refs.js.map +1 -1
  17. package/build/components/block-list/use-block-props/use-is-hovered.js +10 -14
  18. package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  19. package/build/components/block-mover/index.native.js +3 -1
  20. package/build/components/block-mover/index.native.js.map +1 -1
  21. package/build/components/block-settings-menu/block-settings-dropdown.js +0 -25
  22. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  23. package/build/components/block-switcher/pattern-transformations-menu.js +3 -1
  24. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  25. package/build/components/block-switcher/use-transformed-patterns.js +6 -2
  26. package/build/components/block-switcher/use-transformed-patterns.js.map +1 -1
  27. package/build/components/block-switcher/utils.js +15 -5
  28. package/build/components/block-switcher/utils.js.map +1 -1
  29. package/build/components/block-toolbar/use-has-block-toolbar.js +14 -9
  30. package/build/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
  31. package/build/components/block-tools/index.js +3 -1
  32. package/build/components/block-tools/index.js.map +1 -1
  33. package/build/components/block-tools/use-show-block-tools.js +2 -5
  34. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  35. package/build/components/block-tools/zoom-out-mode-inserters.js +5 -1
  36. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  37. package/build/components/block-variation-picker/index.js +3 -2
  38. package/build/components/block-variation-picker/index.js.map +1 -1
  39. package/build/components/block-variation-transforms/index.js +3 -1
  40. package/build/components/block-variation-transforms/index.js.map +1 -1
  41. package/build/components/floating-toolbar/index.native.js +9 -5
  42. package/build/components/floating-toolbar/index.native.js.map +1 -1
  43. package/build/components/global-styles/background-panel.js +1 -1
  44. package/build/components/global-styles/background-panel.js.map +1 -1
  45. package/build/components/global-styles/color-panel.js +3 -1
  46. package/build/components/global-styles/color-panel.js.map +1 -1
  47. package/build/components/global-styles/dimensions-panel.js +16 -0
  48. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  49. package/build/components/global-styles/hooks.js +3 -2
  50. package/build/components/global-styles/hooks.js.map +1 -1
  51. package/build/components/global-styles/typography-panel.js +23 -23
  52. package/build/components/global-styles/typography-panel.js.map +1 -1
  53. package/build/components/global-styles/use-global-styles-output.js +149 -132
  54. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  55. package/build/components/global-styles/utils.js +45 -0
  56. package/build/components/global-styles/utils.js.map +1 -1
  57. package/build/components/inner-blocks/index.js +16 -2
  58. package/build/components/inner-blocks/index.js.map +1 -1
  59. package/build/components/inserter/block-patterns-tab/index.js +12 -31
  60. package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
  61. package/build/components/inserter/block-types-tab.js +4 -0
  62. package/build/components/inserter/block-types-tab.js.map +1 -1
  63. package/build/components/inserter/category-tabs/index.js +56 -0
  64. package/build/components/inserter/category-tabs/index.js.map +1 -0
  65. package/build/components/inserter/media-tab/index.js +2 -2
  66. package/build/components/inserter/media-tab/index.js.map +1 -1
  67. package/build/components/inserter/media-tab/media-panel.js +0 -25
  68. package/build/components/inserter/media-tab/media-panel.js.map +1 -1
  69. package/build/components/inserter/media-tab/media-preview.js +13 -3
  70. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  71. package/build/components/inserter/media-tab/media-tab.js +15 -29
  72. package/build/components/inserter/media-tab/media-tab.js.map +1 -1
  73. package/build/components/inserter/menu.js +59 -69
  74. package/build/components/inserter/menu.js.map +1 -1
  75. package/build/components/inserter/tabs.js +6 -6
  76. package/build/components/inserter/tabs.js.map +1 -1
  77. package/build/components/line-height-control/index.js +6 -2
  78. package/build/components/line-height-control/index.js.map +1 -1
  79. package/build/components/link-control/search-item.js +9 -3
  80. package/build/components/link-control/search-item.js.map +1 -1
  81. package/build/components/list-view/block-select-button.js +5 -170
  82. package/build/components/list-view/block-select-button.js.map +1 -1
  83. package/build/components/list-view/block.js +166 -14
  84. package/build/components/list-view/block.js.map +1 -1
  85. package/build/components/list-view/index.js +1 -1
  86. package/build/components/list-view/index.js.map +1 -1
  87. package/build/components/list-view/use-list-view-drop-zone.js +1 -1
  88. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  89. package/build/components/list-view/utils.js +3 -1
  90. package/build/components/list-view/utils.js.map +1 -1
  91. package/build/components/media-placeholder/index.js +3 -3
  92. package/build/components/media-placeholder/index.js.map +1 -1
  93. package/build/components/navigable-toolbar/index.js +3 -1
  94. package/build/components/navigable-toolbar/index.js.map +1 -1
  95. package/build/components/provider/block-refs-provider.js +3 -4
  96. package/build/components/provider/block-refs-provider.js.map +1 -1
  97. package/build/components/provider/use-block-sync.js +3 -12
  98. package/build/components/provider/use-block-sync.js.map +1 -1
  99. package/build/components/rich-text/event-listeners/before-input-rules.js +93 -0
  100. package/build/components/rich-text/event-listeners/before-input-rules.js.map +1 -0
  101. package/build/components/rich-text/event-listeners/delete.js +58 -0
  102. package/build/components/rich-text/event-listeners/delete.js.map +1 -0
  103. package/build/components/rich-text/event-listeners/enter.js +98 -0
  104. package/build/components/rich-text/event-listeners/enter.js.map +1 -0
  105. package/build/components/rich-text/event-listeners/firefox-compat.js +36 -0
  106. package/build/components/rich-text/event-listeners/firefox-compat.js.map +1 -0
  107. package/build/components/rich-text/event-listeners/index.js +44 -0
  108. package/build/components/rich-text/event-listeners/index.js.map +1 -0
  109. package/build/components/rich-text/event-listeners/input-events.js +22 -0
  110. package/build/components/rich-text/event-listeners/input-events.js.map +1 -0
  111. package/build/components/rich-text/event-listeners/input-rules.js +135 -0
  112. package/build/components/rich-text/event-listeners/input-rules.js.map +1 -0
  113. package/build/components/rich-text/event-listeners/insert-replacement-text.js +33 -0
  114. package/build/components/rich-text/event-listeners/insert-replacement-text.js.map +1 -0
  115. package/build/components/rich-text/event-listeners/paste-handler.js +146 -0
  116. package/build/components/rich-text/event-listeners/paste-handler.js.map +1 -0
  117. package/build/components/rich-text/event-listeners/remove-browser-shortcuts.js +27 -0
  118. package/build/components/rich-text/event-listeners/remove-browser-shortcuts.js.map +1 -0
  119. package/build/components/rich-text/event-listeners/shortcuts.js +22 -0
  120. package/build/components/rich-text/event-listeners/shortcuts.js.map +1 -0
  121. package/build/components/rich-text/event-listeners/undo-automatic-change.js +51 -0
  122. package/build/components/rich-text/event-listeners/undo-automatic-change.js.map +1 -0
  123. package/build/components/rich-text/index.js +11 -31
  124. package/build/components/rich-text/index.js.map +1 -1
  125. package/build/components/rich-text/index.native.js +13 -3
  126. package/build/components/rich-text/index.native.js.map +1 -1
  127. package/build/components/rich-text/multiline.js +6 -2
  128. package/build/components/rich-text/multiline.js.map +1 -1
  129. package/build/components/rich-text/native/index.native.js +12 -0
  130. package/build/components/rich-text/native/index.native.js.map +1 -1
  131. package/build/components/rich-text/use-format-types.js +8 -4
  132. package/build/components/rich-text/use-format-types.js.map +1 -1
  133. package/build/components/segmented-text-control/index.js +62 -0
  134. package/build/components/segmented-text-control/index.js.map +1 -0
  135. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +16 -2
  136. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  137. package/build/components/text-alignment-control/index.js +76 -0
  138. package/build/components/text-alignment-control/index.js.map +1 -0
  139. package/build/components/text-decoration-control/index.js +21 -25
  140. package/build/components/text-decoration-control/index.js.map +1 -1
  141. package/build/components/text-transform-control/index.js +18 -22
  142. package/build/components/text-transform-control/index.js.map +1 -1
  143. package/build/components/use-block-display-information/index.js +9 -3
  144. package/build/components/use-block-display-information/index.js.map +1 -1
  145. package/build/components/use-on-block-drop/index.js +3 -1
  146. package/build/components/use-on-block-drop/index.js.map +1 -1
  147. package/build/components/writing-flow/use-drag-selection.js +3 -1
  148. package/build/components/writing-flow/use-drag-selection.js.map +1 -1
  149. package/build/components/writing-flow/use-tab-nav.js +3 -1
  150. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  151. package/build/components/writing-mode-control/index.js +16 -20
  152. package/build/components/writing-mode-control/index.js.map +1 -1
  153. package/build/hooks/duotone.js +3 -1
  154. package/build/hooks/duotone.js.map +1 -1
  155. package/build/hooks/utils.js +11 -6
  156. package/build/hooks/utils.js.map +1 -1
  157. package/build/private-apis.js +4 -2
  158. package/build/private-apis.js.map +1 -1
  159. package/build/store/actions.js +32 -8
  160. package/build/store/actions.js.map +1 -1
  161. package/build/store/private-selectors.js +27 -6
  162. package/build/store/private-selectors.js.map +1 -1
  163. package/build/store/reducer.js +11 -8
  164. package/build/store/reducer.js.map +1 -1
  165. package/build/store/selectors.js +21 -7
  166. package/build/store/selectors.js.map +1 -1
  167. package/build/utils/object.js +17 -0
  168. package/build/utils/object.js.map +1 -1
  169. package/build/utils/order-inserter-block-items.js +6 -2
  170. package/build/utils/order-inserter-block-items.js.map +1 -1
  171. package/build/utils/pasting.js +6 -2
  172. package/build/utils/pasting.js.map +1 -1
  173. package/build-module/components/alignment-control/ui.js +3 -1
  174. package/build-module/components/alignment-control/ui.js.map +1 -1
  175. package/build-module/components/block-inspector/index.js +1 -1
  176. package/build-module/components/block-inspector/index.js.map +1 -1
  177. package/build-module/components/block-list/block.js +0 -9
  178. package/build-module/components/block-list/block.js.map +1 -1
  179. package/build-module/components/block-list/index.js +4 -3
  180. package/build-module/components/block-list/index.js.map +1 -1
  181. package/build-module/components/block-list/index.native.js +1 -9
  182. package/build-module/components/block-list/index.native.js.map +1 -1
  183. package/build-module/components/block-list/use-block-props/index.js +6 -6
  184. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  185. package/build-module/components/block-list/use-block-props/use-block-refs.js +19 -48
  186. package/build-module/components/block-list/use-block-props/use-block-refs.js.map +1 -1
  187. package/build-module/components/block-list/use-block-props/use-is-hovered.js +10 -14
  188. package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  189. package/build-module/components/block-mover/index.native.js +3 -1
  190. package/build-module/components/block-mover/index.native.js.map +1 -1
  191. package/build-module/components/block-settings-menu/block-settings-dropdown.js +1 -26
  192. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  193. package/build-module/components/block-switcher/pattern-transformations-menu.js +3 -1
  194. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  195. package/build-module/components/block-switcher/use-transformed-patterns.js +6 -2
  196. package/build-module/components/block-switcher/use-transformed-patterns.js.map +1 -1
  197. package/build-module/components/block-switcher/utils.js +15 -5
  198. package/build-module/components/block-switcher/utils.js.map +1 -1
  199. package/build-module/components/block-toolbar/use-has-block-toolbar.js +14 -9
  200. package/build-module/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
  201. package/build-module/components/block-tools/index.js +3 -1
  202. package/build-module/components/block-tools/index.js.map +1 -1
  203. package/build-module/components/block-tools/use-show-block-tools.js +2 -5
  204. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  205. package/build-module/components/block-tools/zoom-out-mode-inserters.js +5 -1
  206. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  207. package/build-module/components/block-variation-picker/index.js +3 -2
  208. package/build-module/components/block-variation-picker/index.js.map +1 -1
  209. package/build-module/components/block-variation-transforms/index.js +3 -1
  210. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  211. package/build-module/components/floating-toolbar/index.native.js +9 -5
  212. package/build-module/components/floating-toolbar/index.native.js.map +1 -1
  213. package/build-module/components/global-styles/background-panel.js +1 -1
  214. package/build-module/components/global-styles/background-panel.js.map +1 -1
  215. package/build-module/components/global-styles/color-panel.js +3 -1
  216. package/build-module/components/global-styles/color-panel.js.map +1 -1
  217. package/build-module/components/global-styles/dimensions-panel.js +17 -1
  218. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  219. package/build-module/components/global-styles/hooks.js +3 -2
  220. package/build-module/components/global-styles/hooks.js.map +1 -1
  221. package/build-module/components/global-styles/typography-panel.js +24 -24
  222. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  223. package/build-module/components/global-styles/use-global-styles-output.js +149 -132
  224. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  225. package/build-module/components/global-styles/utils.js +44 -0
  226. package/build-module/components/global-styles/utils.js.map +1 -1
  227. package/build-module/components/inner-blocks/index.js +16 -2
  228. package/build-module/components/inner-blocks/index.js.map +1 -1
  229. package/build-module/components/inserter/block-patterns-tab/index.js +13 -32
  230. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  231. package/build-module/components/inserter/block-types-tab.js +4 -0
  232. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  233. package/build-module/components/inserter/category-tabs/index.js +49 -0
  234. package/build-module/components/inserter/category-tabs/index.js.map +1 -0
  235. package/build-module/components/inserter/media-tab/index.js +1 -1
  236. package/build-module/components/inserter/media-tab/index.js.map +1 -1
  237. package/build-module/components/inserter/media-tab/media-panel.js +0 -24
  238. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
  239. package/build-module/components/inserter/media-tab/media-preview.js +13 -3
  240. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  241. package/build-module/components/inserter/media-tab/media-tab.js +17 -31
  242. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
  243. package/build-module/components/inserter/menu.js +61 -71
  244. package/build-module/components/inserter/menu.js.map +1 -1
  245. package/build-module/components/inserter/tabs.js +6 -6
  246. package/build-module/components/inserter/tabs.js.map +1 -1
  247. package/build-module/components/line-height-control/index.js +6 -2
  248. package/build-module/components/line-height-control/index.js.map +1 -1
  249. package/build-module/components/link-control/search-item.js +9 -3
  250. package/build-module/components/link-control/search-item.js.map +1 -1
  251. package/build-module/components/list-view/block-select-button.js +7 -172
  252. package/build-module/components/list-view/block-select-button.js.map +1 -1
  253. package/build-module/components/list-view/block.js +167 -15
  254. package/build-module/components/list-view/block.js.map +1 -1
  255. package/build-module/components/list-view/index.js +1 -1
  256. package/build-module/components/list-view/index.js.map +1 -1
  257. package/build-module/components/list-view/use-list-view-drop-zone.js +1 -1
  258. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  259. package/build-module/components/list-view/utils.js +3 -1
  260. package/build-module/components/list-view/utils.js.map +1 -1
  261. package/build-module/components/media-placeholder/index.js +3 -3
  262. package/build-module/components/media-placeholder/index.js.map +1 -1
  263. package/build-module/components/navigable-toolbar/index.js +3 -1
  264. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  265. package/build-module/components/provider/block-refs-provider.js +3 -4
  266. package/build-module/components/provider/block-refs-provider.js.map +1 -1
  267. package/build-module/components/provider/use-block-sync.js +4 -13
  268. package/build-module/components/provider/use-block-sync.js.map +1 -1
  269. package/build-module/components/rich-text/event-listeners/before-input-rules.js +86 -0
  270. package/build-module/components/rich-text/event-listeners/before-input-rules.js.map +1 -0
  271. package/build-module/components/rich-text/event-listeners/delete.js +51 -0
  272. package/build-module/components/rich-text/event-listeners/delete.js.map +1 -0
  273. package/build-module/components/rich-text/event-listeners/enter.js +92 -0
  274. package/build-module/components/rich-text/event-listeners/enter.js.map +1 -0
  275. package/build-module/components/rich-text/event-listeners/firefox-compat.js +29 -0
  276. package/build-module/components/rich-text/event-listeners/firefox-compat.js.map +1 -0
  277. package/build-module/components/rich-text/event-listeners/index.js +36 -0
  278. package/build-module/components/rich-text/event-listeners/index.js.map +1 -0
  279. package/build-module/components/rich-text/event-listeners/input-events.js +15 -0
  280. package/build-module/components/rich-text/event-listeners/input-events.js.map +1 -0
  281. package/build-module/components/rich-text/event-listeners/input-rules.js +127 -0
  282. package/build-module/components/rich-text/event-listeners/input-rules.js.map +1 -0
  283. package/build-module/components/rich-text/event-listeners/insert-replacement-text.js +27 -0
  284. package/build-module/components/rich-text/event-listeners/insert-replacement-text.js.map +1 -0
  285. package/build-module/components/rich-text/event-listeners/paste-handler.js +142 -0
  286. package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -0
  287. package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.js +21 -0
  288. package/build-module/components/rich-text/event-listeners/remove-browser-shortcuts.js.map +1 -0
  289. package/build-module/components/rich-text/event-listeners/shortcuts.js +15 -0
  290. package/build-module/components/rich-text/event-listeners/shortcuts.js.map +1 -0
  291. package/build-module/components/rich-text/event-listeners/undo-automatic-change.js +45 -0
  292. package/build-module/components/rich-text/event-listeners/undo-automatic-change.js.map +1 -0
  293. package/build-module/components/rich-text/index.js +12 -32
  294. package/build-module/components/rich-text/index.js.map +1 -1
  295. package/build-module/components/rich-text/index.native.js +13 -3
  296. package/build-module/components/rich-text/index.native.js.map +1 -1
  297. package/build-module/components/rich-text/multiline.js +6 -2
  298. package/build-module/components/rich-text/multiline.js.map +1 -1
  299. package/build-module/components/rich-text/native/index.native.js +12 -0
  300. package/build-module/components/rich-text/native/index.native.js.map +1 -1
  301. package/build-module/components/rich-text/use-format-types.js +8 -4
  302. package/build-module/components/rich-text/use-format-types.js.map +1 -1
  303. package/build-module/components/segmented-text-control/index.js +55 -0
  304. package/build-module/components/segmented-text-control/index.js.map +1 -0
  305. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +16 -2
  306. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  307. package/build-module/components/text-alignment-control/index.js +68 -0
  308. package/build-module/components/text-alignment-control/index.js.map +1 -0
  309. package/build-module/components/text-decoration-control/index.js +21 -25
  310. package/build-module/components/text-decoration-control/index.js.map +1 -1
  311. package/build-module/components/text-transform-control/index.js +18 -22
  312. package/build-module/components/text-transform-control/index.js.map +1 -1
  313. package/build-module/components/use-block-display-information/index.js +9 -3
  314. package/build-module/components/use-block-display-information/index.js.map +1 -1
  315. package/build-module/components/use-on-block-drop/index.js +3 -1
  316. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  317. package/build-module/components/writing-flow/use-drag-selection.js +3 -1
  318. package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
  319. package/build-module/components/writing-flow/use-tab-nav.js +3 -1
  320. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  321. package/build-module/components/writing-mode-control/index.js +16 -20
  322. package/build-module/components/writing-mode-control/index.js.map +1 -1
  323. package/build-module/hooks/duotone.js +3 -1
  324. package/build-module/hooks/duotone.js.map +1 -1
  325. package/build-module/hooks/utils.js +11 -6
  326. package/build-module/hooks/utils.js.map +1 -1
  327. package/build-module/private-apis.js +4 -2
  328. package/build-module/private-apis.js.map +1 -1
  329. package/build-module/store/actions.js +32 -8
  330. package/build-module/store/actions.js.map +1 -1
  331. package/build-module/store/private-selectors.js +27 -5
  332. package/build-module/store/private-selectors.js.map +1 -1
  333. package/build-module/store/reducer.js +11 -8
  334. package/build-module/store/reducer.js.map +1 -1
  335. package/build-module/store/selectors.js +21 -7
  336. package/build-module/store/selectors.js.map +1 -1
  337. package/build-module/utils/object.js +16 -0
  338. package/build-module/utils/object.js.map +1 -1
  339. package/build-module/utils/order-inserter-block-items.js +6 -2
  340. package/build-module/utils/order-inserter-block-items.js.map +1 -1
  341. package/build-module/utils/pasting.js +6 -2
  342. package/build-module/utils/pasting.js.map +1 -1
  343. package/build-style/content-rtl.css +41 -68
  344. package/build-style/content.css +41 -68
  345. package/build-style/style-rtl.css +100 -199
  346. package/build-style/style.css +100 -199
  347. package/package.json +31 -31
  348. package/src/components/alignment-control/ui.js +3 -1
  349. package/src/components/block-bindings-toolbar-indicator/style.scss +1 -4
  350. package/src/components/block-canvas/style.scss +1 -3
  351. package/src/components/block-draggable/test/helpers.native.js +8 -8
  352. package/src/components/block-inspector/index.js +1 -2
  353. package/src/components/block-list/block.js +2 -13
  354. package/src/components/block-list/content.scss +9 -1
  355. package/src/components/block-list/index.js +4 -4
  356. package/src/components/block-list/index.native.js +1 -6
  357. package/src/components/block-list/use-block-props/index.js +12 -4
  358. package/src/components/block-list/use-block-props/use-block-refs.js +17 -57
  359. package/src/components/block-list/use-block-props/use-is-hovered.js +11 -16
  360. package/src/components/block-mover/index.native.js +3 -1
  361. package/src/components/block-patterns-list/style.scss +1 -3
  362. package/src/components/block-preview/style.scss +13 -15
  363. package/src/components/block-settings-menu/block-settings-dropdown.js +1 -51
  364. package/src/components/block-switcher/pattern-transformations-menu.js +3 -1
  365. package/src/components/block-switcher/use-transformed-patterns.js +6 -2
  366. package/src/components/block-switcher/utils.js +14 -5
  367. package/src/components/block-toolbar/style.scss +8 -11
  368. package/src/components/block-toolbar/use-has-block-toolbar.js +21 -16
  369. package/src/components/block-tools/index.js +3 -1
  370. package/src/components/block-tools/use-show-block-tools.js +36 -48
  371. package/src/components/block-tools/zoom-out-mode-inserters.js +5 -1
  372. package/src/components/block-variation-picker/content.scss +22 -72
  373. package/src/components/block-variation-picker/index.js +3 -2
  374. package/src/components/block-variation-transforms/index.js +3 -1
  375. package/src/components/floating-toolbar/index.native.js +5 -2
  376. package/src/components/global-styles/background-panel.js +1 -3
  377. package/src/components/global-styles/color-panel.js +3 -1
  378. package/src/components/global-styles/dimensions-panel.js +18 -1
  379. package/src/components/global-styles/hooks.js +2 -0
  380. package/src/components/global-styles/test/utils.js +21 -0
  381. package/src/components/global-styles/typography-panel.js +27 -23
  382. package/src/components/global-styles/use-global-styles-output.js +211 -187
  383. package/src/components/global-styles/utils.js +55 -0
  384. package/src/components/inner-blocks/index.js +14 -1
  385. package/src/components/inserter/block-patterns-tab/index.js +15 -65
  386. package/src/components/inserter/block-types-tab.js +5 -0
  387. package/src/components/inserter/category-tabs/index.js +74 -0
  388. package/src/components/inserter/media-tab/index.js +1 -1
  389. package/src/components/inserter/media-tab/media-panel.js +0 -22
  390. package/src/components/inserter/media-tab/media-preview.js +15 -7
  391. package/src/components/inserter/media-tab/media-tab.js +44 -83
  392. package/src/components/inserter/menu.js +139 -117
  393. package/src/components/inserter/style.scss +90 -170
  394. package/src/components/inserter/tabs.js +5 -13
  395. package/src/components/line-height-control/index.js +6 -2
  396. package/src/components/link-control/search-item.js +9 -3
  397. package/src/components/list-view/block-select-button.js +73 -266
  398. package/src/components/list-view/block.js +218 -28
  399. package/src/components/list-view/index.js +1 -1
  400. package/src/components/list-view/style.scss +20 -28
  401. package/src/components/list-view/use-list-view-drop-zone.js +1 -1
  402. package/src/components/list-view/utils.js +3 -1
  403. package/src/components/media-placeholder/content.scss +0 -11
  404. package/src/components/media-placeholder/index.js +3 -3
  405. package/src/components/navigable-toolbar/index.js +3 -1
  406. package/src/components/provider/block-refs-provider.js +3 -8
  407. package/src/components/provider/test/use-block-sync.js +7 -0
  408. package/src/components/provider/use-block-sync.js +3 -20
  409. package/src/components/rich-text/event-listeners/before-input-rules.js +92 -0
  410. package/src/components/rich-text/event-listeners/delete.js +53 -0
  411. package/src/components/rich-text/event-listeners/enter.js +104 -0
  412. package/src/components/rich-text/event-listeners/firefox-compat.js +31 -0
  413. package/src/components/rich-text/event-listeners/index.js +56 -0
  414. package/src/components/rich-text/event-listeners/input-events.js +13 -0
  415. package/src/components/rich-text/event-listeners/input-rules.js +146 -0
  416. package/src/components/rich-text/event-listeners/insert-replacement-text.js +28 -0
  417. package/src/components/rich-text/event-listeners/paste-handler.js +169 -0
  418. package/src/components/rich-text/event-listeners/remove-browser-shortcuts.js +24 -0
  419. package/src/components/rich-text/event-listeners/shortcuts.js +13 -0
  420. package/src/components/rich-text/event-listeners/undo-automatic-change.js +45 -0
  421. package/src/components/rich-text/index.js +7 -34
  422. package/src/components/rich-text/index.native.js +11 -0
  423. package/src/components/rich-text/multiline.js +6 -2
  424. package/src/components/rich-text/native/index.native.js +11 -0
  425. package/src/components/rich-text/use-format-types.js +6 -2
  426. package/src/components/segmented-text-control/index.js +63 -0
  427. package/src/components/{writing-mode-control → segmented-text-control}/style.scss +2 -5
  428. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +16 -1
  429. package/src/components/text-alignment-control/index.js +91 -0
  430. package/src/components/text-alignment-control/stories/index.story.js +39 -0
  431. package/src/components/text-decoration-control/index.js +20 -33
  432. package/src/components/text-transform-control/index.js +17 -30
  433. package/src/components/use-block-display-information/index.js +9 -3
  434. package/src/components/use-on-block-drop/index.js +3 -1
  435. package/src/components/writing-flow/use-drag-selection.js +3 -1
  436. package/src/components/writing-flow/use-tab-nav.js +3 -1
  437. package/src/components/writing-mode-control/index.js +15 -28
  438. package/src/hooks/duotone.js +3 -1
  439. package/src/hooks/utils.js +16 -2
  440. package/src/private-apis.js +4 -2
  441. package/src/store/actions.js +36 -12
  442. package/src/store/private-selectors.js +28 -4
  443. package/src/store/reducer.js +13 -23
  444. package/src/store/selectors.js +20 -7
  445. package/src/style.scss +1 -2
  446. package/src/utils/object.js +16 -0
  447. package/src/utils/order-inserter-block-items.js +6 -2
  448. package/src/utils/pasting.js +6 -2
  449. package/build/components/block-list/use-block-props/use-block-moving-mode-class-names.js +0 -54
  450. package/build/components/block-list/use-block-props/use-block-moving-mode-class-names.js.map +0 -1
  451. package/build/components/rich-text/use-before-input-rules.js +0 -98
  452. package/build/components/rich-text/use-before-input-rules.js.map +0 -1
  453. package/build/components/rich-text/use-delete.js +0 -64
  454. package/build/components/rich-text/use-delete.js.map +0 -1
  455. package/build/components/rich-text/use-enter.js +0 -109
  456. package/build/components/rich-text/use-enter.js.map +0 -1
  457. package/build/components/rich-text/use-firefox-compat.js +0 -44
  458. package/build/components/rich-text/use-firefox-compat.js.map +0 -1
  459. package/build/components/rich-text/use-input-events.js +0 -25
  460. package/build/components/rich-text/use-input-events.js.map +0 -1
  461. package/build/components/rich-text/use-input-rules.js +0 -139
  462. package/build/components/rich-text/use-input-rules.js.map +0 -1
  463. package/build/components/rich-text/use-insert-replacement-text.js +0 -38
  464. package/build/components/rich-text/use-insert-replacement-text.js.map +0 -1
  465. package/build/components/rich-text/use-paste-handler.js +0 -158
  466. package/build/components/rich-text/use-paste-handler.js.map +0 -1
  467. package/build/components/rich-text/use-remove-browser-shortcuts.js +0 -32
  468. package/build/components/rich-text/use-remove-browser-shortcuts.js.map +0 -1
  469. package/build/components/rich-text/use-shortcuts.js +0 -25
  470. package/build/components/rich-text/use-shortcuts.js.map +0 -1
  471. package/build/components/rich-text/use-undo-automatic-change.js +0 -53
  472. package/build/components/rich-text/use-undo-automatic-change.js.map +0 -1
  473. package/build-module/components/block-list/use-block-props/use-block-moving-mode-class-names.js +0 -47
  474. package/build-module/components/block-list/use-block-props/use-block-moving-mode-class-names.js.map +0 -1
  475. package/build-module/components/rich-text/use-before-input-rules.js +0 -92
  476. package/build-module/components/rich-text/use-before-input-rules.js.map +0 -1
  477. package/build-module/components/rich-text/use-delete.js +0 -57
  478. package/build-module/components/rich-text/use-delete.js.map +0 -1
  479. package/build-module/components/rich-text/use-enter.js +0 -102
  480. package/build-module/components/rich-text/use-enter.js.map +0 -1
  481. package/build-module/components/rich-text/use-firefox-compat.js +0 -37
  482. package/build-module/components/rich-text/use-firefox-compat.js.map +0 -1
  483. package/build-module/components/rich-text/use-input-events.js +0 -18
  484. package/build-module/components/rich-text/use-input-events.js.map +0 -1
  485. package/build-module/components/rich-text/use-input-rules.js +0 -132
  486. package/build-module/components/rich-text/use-input-rules.js.map +0 -1
  487. package/build-module/components/rich-text/use-insert-replacement-text.js +0 -32
  488. package/build-module/components/rich-text/use-insert-replacement-text.js.map +0 -1
  489. package/build-module/components/rich-text/use-paste-handler.js +0 -152
  490. package/build-module/components/rich-text/use-paste-handler.js.map +0 -1
  491. package/build-module/components/rich-text/use-remove-browser-shortcuts.js +0 -26
  492. package/build-module/components/rich-text/use-remove-browser-shortcuts.js.map +0 -1
  493. package/build-module/components/rich-text/use-shortcuts.js +0 -18
  494. package/build-module/components/rich-text/use-shortcuts.js.map +0 -1
  495. package/build-module/components/rich-text/use-undo-automatic-change.js +0 -46
  496. package/build-module/components/rich-text/use-undo-automatic-change.js.map +0 -1
  497. package/src/components/block-list/use-block-props/use-block-moving-mode-class-names.js +0 -55
  498. package/src/components/rich-text/use-before-input-rules.js +0 -99
  499. package/src/components/rich-text/use-delete.js +0 -59
  500. package/src/components/rich-text/use-enter.js +0 -110
  501. package/src/components/rich-text/use-firefox-compat.js +0 -39
  502. package/src/components/rich-text/use-input-events.js +0 -19
  503. package/src/components/rich-text/use-input-rules.js +0 -150
  504. package/src/components/rich-text/use-insert-replacement-text.js +0 -31
  505. package/src/components/rich-text/use-paste-handler.js +0 -180
  506. package/src/components/rich-text/use-remove-browser-shortcuts.js +0 -29
  507. package/src/components/rich-text/use-shortcuts.js +0 -19
  508. package/src/components/rich-text/use-undo-automatic-change.js +0 -46
  509. package/src/components/text-decoration-control/style.scss +0 -18
  510. package/src/components/text-transform-control/style.scss +0 -18
@@ -34,7 +34,9 @@ function PatternTransformationsMenu( {
34
34
  } ) {
35
35
  const [ showTransforms, setShowTransforms ] = useState( false );
36
36
  const patterns = useTransformedPatterns( statePatterns, blocks );
37
- if ( ! patterns.length ) return null;
37
+ if ( ! patterns.length ) {
38
+ return null;
39
+ }
38
40
 
39
41
  return (
40
42
  <MenuGroup className="block-editor-block-switcher__pattern__transforms__menugroup">
@@ -62,7 +62,9 @@ export const getPatternTransformedBlocks = (
62
62
  selectedBlock.name,
63
63
  consumedBlocks
64
64
  );
65
- if ( ! match ) continue;
65
+ if ( ! match ) {
66
+ continue;
67
+ }
66
68
  isMatch = true;
67
69
  consumedBlocks.add( match.clientId );
68
70
  // We update (mutate) the matching pattern block.
@@ -71,7 +73,9 @@ export const getPatternTransformedBlocks = (
71
73
  break;
72
74
  }
73
75
  // Bail eary if a selected block has not been matched.
74
- if ( ! isMatch ) return;
76
+ if ( ! isMatch ) {
77
+ return;
78
+ }
75
79
  }
76
80
  return _patternBlocks;
77
81
  };
@@ -22,8 +22,12 @@ export const getMatchingBlockByName = (
22
22
  ) => {
23
23
  const { clientId, name, innerBlocks = [] } = block;
24
24
  // Check if block has been consumed already.
25
- if ( consumedBlocks.has( clientId ) ) return;
26
- if ( name === selectedBlockName ) return block;
25
+ if ( consumedBlocks.has( clientId ) ) {
26
+ return;
27
+ }
28
+ if ( name === selectedBlockName ) {
29
+ return block;
30
+ }
27
31
  // Try to find a matching block from InnerBlocks recursively.
28
32
  for ( const innerBlock of innerBlocks ) {
29
33
  const match = getMatchingBlockByName(
@@ -31,7 +35,9 @@ export const getMatchingBlockByName = (
31
35
  selectedBlockName,
32
36
  consumedBlocks
33
37
  );
34
- if ( match ) return match;
38
+ if ( match ) {
39
+ return match;
40
+ }
35
41
  }
36
42
  };
37
43
 
@@ -47,11 +53,14 @@ export const getMatchingBlockByName = (
47
53
  */
48
54
  export const getRetainedBlockAttributes = ( name, attributes ) => {
49
55
  const contentAttributes = getBlockAttributesNamesByRole( name, 'content' );
50
- if ( ! contentAttributes?.length ) return attributes;
56
+ if ( ! contentAttributes?.length ) {
57
+ return attributes;
58
+ }
51
59
 
52
60
  return contentAttributes.reduce( ( _accumulator, attribute ) => {
53
- if ( attributes[ attribute ] )
61
+ if ( attributes[ attribute ] ) {
54
62
  _accumulator[ attribute ] = attributes[ attribute ];
63
+ }
55
64
  return _accumulator;
56
65
  }, {} );
57
66
  };
@@ -90,11 +90,6 @@
90
90
  }
91
91
  }
92
92
 
93
- .block-editor-block-toolbar .components-toolbar-group,
94
- .block-editor-block-toolbar .components-toolbar {
95
- border-right-color: $gray-200;
96
- }
97
-
98
93
  & > .block-editor-block-toolbar {
99
94
  flex-grow: initial;
100
95
  width: initial;
@@ -109,14 +104,16 @@
109
104
 
110
105
  // Parent selector dot divider
111
106
  &::after {
112
- content: "\00B7";
107
+ align-items: center;
108
+ background-color: $gray-900;
109
+ border-radius: 100%;
110
+ content: "";
111
+ display: inline-flex;
112
+ height: 2px;
113
113
  position: absolute;
114
- font-size: 16px;
115
114
  right: 0;
116
- height: $button-size-compact;
117
- top: 0;
118
- display: inline-flex;
119
- align-items: center;
115
+ top: $grid-unit-20 - $border-width;
116
+ width: 2px;
120
117
  }
121
118
  }
122
119
  }
@@ -15,8 +15,7 @@ import { useHasAnyBlockControls } from '../block-controls/use-has-block-controls
15
15
  * @return {boolean} Whether the block toolbar component will be rendered.
16
16
  */
17
17
  export function useHasBlockToolbar() {
18
- const hasAnyBlockControls = useHasAnyBlockControls();
19
- return useSelect(
18
+ const { isToolbarEnabled, isDefaultEditingMode } = useSelect(
20
19
  ( select ) => {
21
20
  const {
22
21
  getBlockEditingMode,
@@ -28,24 +27,30 @@ export function useHasBlockToolbar() {
28
27
  // for the toolbar, so we use getBlockSelectionStart
29
28
  // instead of getSelectedBlockClientIds
30
29
  const selectedBlockClientId = getBlockSelectionStart();
31
- const isDefaultEditingMode =
32
- getBlockEditingMode( selectedBlockClientId ) === 'default';
30
+
33
31
  const blockType =
34
32
  selectedBlockClientId &&
35
33
  getBlockType( getBlockName( selectedBlockClientId ) );
36
- const isToolbarEnabled =
37
- blockType &&
38
- hasBlockSupport( blockType, '__experimentalToolbar', true );
39
34
 
40
- if (
41
- ! isToolbarEnabled ||
42
- ( ! isDefaultEditingMode && ! hasAnyBlockControls )
43
- ) {
44
- return false;
45
- }
46
-
47
- return true;
35
+ return {
36
+ isToolbarEnabled:
37
+ blockType &&
38
+ hasBlockSupport( blockType, '__experimentalToolbar', true ),
39
+ isDefaultEditingMode:
40
+ getBlockEditingMode( selectedBlockClientId ) === 'default',
41
+ };
48
42
  },
49
- [ hasAnyBlockControls ]
43
+ []
50
44
  );
45
+
46
+ const hasAnyBlockControls = useHasAnyBlockControls();
47
+
48
+ if (
49
+ ! isToolbarEnabled ||
50
+ ( ! isDefaultEditingMode && ! hasAnyBlockControls )
51
+ ) {
52
+ return false;
53
+ }
54
+
55
+ return true;
51
56
  }
@@ -85,7 +85,9 @@ export default function BlockTools( {
85
85
  } = unlock( useDispatch( blockEditorStore ) );
86
86
 
87
87
  function onKeyDown( event ) {
88
- if ( event.defaultPrevented ) return;
88
+ if ( event.defaultPrevented ) {
89
+ return;
90
+ }
89
91
 
90
92
  if ( isMatch( 'core/block-editor/move-up', event ) ) {
91
93
  const clientIds = getSelectedBlockClientIds();
@@ -8,7 +8,6 @@ import { isUnmodifiedDefaultBlock } from '@wordpress/blocks';
8
8
  * Internal dependencies
9
9
  */
10
10
  import { store as blockEditorStore } from '../../store';
11
- import { useHasBlockToolbar } from '../block-toolbar/use-has-block-toolbar';
12
11
 
13
12
  /**
14
13
  * Source of truth for which block tools are showing in the block editor.
@@ -16,55 +15,44 @@ import { useHasBlockToolbar } from '../block-toolbar/use-has-block-toolbar';
16
15
  * @return {Object} Object of which block tools will be shown.
17
16
  */
18
17
  export function useShowBlockTools() {
19
- const hasBlockToolbar = useHasBlockToolbar();
18
+ return useSelect( ( select ) => {
19
+ const {
20
+ getSelectedBlockClientId,
21
+ getFirstMultiSelectedBlockClientId,
22
+ getBlock,
23
+ getSettings,
24
+ hasMultiSelection,
25
+ __unstableGetEditorMode,
26
+ isTyping,
27
+ } = select( blockEditorStore );
20
28
 
21
- return useSelect(
22
- ( select ) => {
23
- const {
24
- getSelectedBlockClientId,
25
- getFirstMultiSelectedBlockClientId,
26
- getBlock,
27
- getSettings,
28
- hasMultiSelection,
29
- __unstableGetEditorMode,
30
- isTyping,
31
- } = select( blockEditorStore );
29
+ const clientId =
30
+ getSelectedBlockClientId() || getFirstMultiSelectedBlockClientId();
32
31
 
33
- const clientId =
34
- getSelectedBlockClientId() ||
35
- getFirstMultiSelectedBlockClientId();
32
+ const block = getBlock( clientId ) || { name: '', attributes: {} };
33
+ const editorMode = __unstableGetEditorMode();
34
+ const hasSelectedBlock = clientId && block?.name;
35
+ const isEmptyDefaultBlock = isUnmodifiedDefaultBlock( block );
36
+ const _showEmptyBlockSideInserter =
37
+ clientId &&
38
+ ! isTyping() &&
39
+ editorMode === 'edit' &&
40
+ isEmptyDefaultBlock;
41
+ const maybeShowBreadcrumb =
42
+ hasSelectedBlock &&
43
+ ! hasMultiSelection() &&
44
+ ( editorMode === 'navigation' || editorMode === 'zoom-out' );
36
45
 
37
- const block = getBlock( clientId ) || { name: '', attributes: {} };
38
- const editorMode = __unstableGetEditorMode();
39
- const hasSelectedBlock = clientId && block?.name;
40
- const isEmptyDefaultBlock = isUnmodifiedDefaultBlock( block );
41
- const _showEmptyBlockSideInserter =
42
- clientId &&
43
- ! isTyping() &&
44
- editorMode === 'edit' &&
45
- isEmptyDefaultBlock;
46
- const maybeShowBreadcrumb =
46
+ return {
47
+ showEmptyBlockSideInserter: _showEmptyBlockSideInserter,
48
+ showBreadcrumb:
49
+ ! _showEmptyBlockSideInserter && maybeShowBreadcrumb,
50
+ showBlockToolbarPopover:
51
+ ! getSettings().hasFixedToolbar &&
52
+ ! _showEmptyBlockSideInserter &&
47
53
  hasSelectedBlock &&
48
- ! hasMultiSelection() &&
49
- ( editorMode === 'navigation' || editorMode === 'zoom-out' );
50
-
51
- return {
52
- showEmptyBlockSideInserter: _showEmptyBlockSideInserter,
53
- showBreadcrumb:
54
- ! _showEmptyBlockSideInserter && maybeShowBreadcrumb,
55
- showBlockToolbarPopover:
56
- hasBlockToolbar &&
57
- ! getSettings().hasFixedToolbar &&
58
- ! _showEmptyBlockSideInserter &&
59
- hasSelectedBlock &&
60
- ! isEmptyDefaultBlock &&
61
- ! maybeShowBreadcrumb,
62
- showFixedToolbar:
63
- editorMode !== 'zoom-out' &&
64
- hasBlockToolbar &&
65
- getSettings().hasFixedToolbar,
66
- };
67
- },
68
- [ hasBlockToolbar ]
69
- );
54
+ ! isEmptyDefaultBlock &&
55
+ ! maybeShowBreadcrumb,
56
+ };
57
+ }, [] );
70
58
  }
@@ -10,11 +10,15 @@ import { useEffect, useState } from '@wordpress/element';
10
10
  import BlockPopoverInbetween from '../block-popover/inbetween';
11
11
  import { store as blockEditorStore } from '../../store';
12
12
  import Inserter from '../inserter';
13
+ import { unlock } from '../../lock-unlock';
13
14
 
14
15
  function ZoomOutModeInserters( { __unstableContentRef } ) {
15
16
  const [ isReady, setIsReady ] = useState( false );
16
17
  const blockOrder = useSelect( ( select ) => {
17
- return select( blockEditorStore ).getBlockOrder();
18
+ const { sectionRootClientId } = unlock(
19
+ select( blockEditorStore ).getSettings()
20
+ );
21
+ return select( blockEditorStore ).getBlockOrder( sectionRootClientId );
18
22
  }, [] );
19
23
 
20
24
  // Defer the initial rendering to avoid the jumps due to the animation.
@@ -1,89 +1,39 @@
1
- .block-editor-block-variation-picker {
2
- .components-placeholder__instructions {
3
- // Defer to vertical margins applied by template picker options.
4
- margin-bottom: 0;
5
- }
6
-
7
- .components-placeholder__fieldset {
8
- // Options will render horizontally, but the immediate children of the
9
- // fieldset are the options and the skip button, oriented vertically.
10
- flex-direction: column;
11
- }
12
-
13
- &.has-many-variations .components-placeholder__fieldset {
14
- // Allow options to occupy a greater amount of the available space if
15
- // many options exist.
16
- max-width: 90%;
17
- }
18
- }
19
-
20
- .block-editor-block-variation-picker__variations.block-editor-block-variation-picker__variations {
1
+ .block-editor-block-variation-picker__variations,
2
+ .block-editor-block-variation-picker__skip,
3
+ .wp-block-group-placeholder__variations {
4
+ list-style: none;
21
5
  display: flex;
22
6
  justify-content: flex-start;
23
7
  flex-direction: row;
24
8
  flex-wrap: wrap;
25
9
  width: 100%;
26
- margin: $grid-unit-20 0;
27
10
  padding: 0;
28
- list-style: none;
11
+ margin: 0;
12
+ gap: $grid-unit-10;
13
+ font-size: $helptext-font-size;
29
14
 
30
- > li {
31
- list-style: none;
32
- margin: $grid-unit-10 ( $grid-unit-10 + $grid-unit-15 ) 0 0;
33
- flex-shrink: 1;
34
- width: 75px;
35
- text-align: center;
36
-
37
- button {
38
- display: inline-flex;
39
- margin-right: 0;
40
- }
15
+ svg {
16
+ fill: $gray-400 !important;
41
17
  }
42
18
 
43
- .block-editor-block-variation-picker__variation {
44
- padding: $grid-unit-10;
19
+ .components-button {
20
+ padding: 4px;
45
21
  }
46
22
 
47
- .block-editor-block-variation-picker__variation-label {
48
- font-family: $default-font;
49
- font-size: 12px;
50
- display: block;
51
- line-height: 1.4;
23
+ .components-button:hover {
24
+ background: none !important; // !important to simplify the selector.
52
25
  }
53
- }
54
26
 
55
- .block-editor-block-variation-picker__variation {
56
- width: 100%;
57
-
58
- &.components-button.has-icon {
59
- // Override default styles inherited from <Button /> to center
60
- // icon horizontally.
61
- justify-content: center;
62
- width: auto;
63
-
64
- &.is-secondary {
65
- background-color: $white;
66
- }
67
- }
68
-
69
- &.components-button {
70
- // Override default styles inherited from <Button /> to allow button
71
- // to grow vertically.
72
- height: auto;
73
- padding: 0;
74
- }
75
-
76
- &::before {
77
- // Use `padding-bottom` trick to style element as perfect square.
78
- content: "";
79
- padding-bottom: 100%;
80
- }
81
-
82
- &:first-child {
83
- margin-left: 0;
27
+ .components-button:hover svg {
28
+ fill: var(--wp-admin-theme-color) !important;
84
29
  }
85
30
 
86
- &:last-child {
87
- margin-right: 0;
31
+ & > li {
32
+ width: auto;
33
+ display: flex;
34
+ flex-direction: column;
35
+ align-items: center;
36
+ gap: $grid-unit-05;
88
37
  }
89
38
  }
39
+
@@ -13,7 +13,7 @@ import { layout } from '@wordpress/icons';
13
13
  function BlockVariationPicker( {
14
14
  icon = layout,
15
15
  label = __( 'Choose variation' ),
16
- instructions = __( 'Select a variation to start with.' ),
16
+ instructions = __( 'Select a variation to start with:' ),
17
17
  variations,
18
18
  onSelect,
19
19
  allowSkip,
@@ -42,7 +42,8 @@ function BlockVariationPicker( {
42
42
  { variations.map( ( variation ) => (
43
43
  <li key={ variation.name }>
44
44
  <Button
45
- variant="secondary"
45
+ __next40pxDefaultSize
46
+ variant="tertiary"
46
47
  icon={
47
48
  variation.icon && variation.icon.src
48
49
  ? variation.icon.src
@@ -180,7 +180,9 @@ function __experimentalBlockVariationTransforms( { blockClientId } ) {
180
180
  };
181
181
 
182
182
  // Skip rendering if there are no variations
183
- if ( ! variations?.length ) return null;
183
+ if ( ! variations?.length ) {
184
+ return null;
185
+ }
184
186
 
185
187
  const baseClass = 'block-editor-block-variation-transforms';
186
188
 
@@ -47,8 +47,9 @@ const FloatingToolbar = ( {
47
47
  }, [ showFloatingToolbar ] );
48
48
 
49
49
  useEffect( () => {
50
- if ( showFloatingToolbar )
50
+ if ( showFloatingToolbar ) {
51
51
  setPreviousSelection( { clientId: selectedClientId, parentId } );
52
+ }
52
53
  }, [ selectedClientId ] );
53
54
 
54
55
  const translationRange =
@@ -115,7 +116,9 @@ export default compose( [
115
116
 
116
117
  const selectedClientId = getSelectedBlockClientId();
117
118
 
118
- if ( ! selectedClientId ) return;
119
+ if ( ! selectedClientId ) {
120
+ return;
121
+ }
119
122
 
120
123
  const rootBlockId = getBlockHierarchyRootClientId( selectedClientId );
121
124
 
@@ -275,9 +275,7 @@ function BackgroundImageToolsPanelItem( {
275
275
  };
276
276
  }, [] );
277
277
 
278
- const hasValue =
279
- hasBackgroundImageValue( style ) ||
280
- hasBackgroundImageValue( inheritedValue );
278
+ const hasValue = hasBackgroundImageValue( style );
281
279
 
282
280
  return (
283
281
  <ToolsPanelItem
@@ -587,7 +587,9 @@ export default function ColorPanel( {
587
587
  ].filter( Boolean );
588
588
 
589
589
  elements.forEach( ( { name, label, showPanel } ) => {
590
- if ( ! showPanel ) return;
590
+ if ( ! showPanel ) {
591
+ return;
592
+ }
591
593
 
592
594
  const elementBackgroundColor = decodeValue(
593
595
  inheritedValue?.elements?.[ name ]?.color?.background
@@ -17,7 +17,7 @@ import {
17
17
  __experimentalView as View,
18
18
  } from '@wordpress/components';
19
19
  import { Icon, positionCenter, stretchWide } from '@wordpress/icons';
20
- import { useCallback, Platform } from '@wordpress/element';
20
+ import { useCallback, useState, Platform } from '@wordpress/element';
21
21
 
22
22
  /**
23
23
  * Internal dependencies
@@ -248,6 +248,10 @@ export default function DimensionsPanel( {
248
248
  ],
249
249
  } );
250
250
 
251
+ //Minimum Margin Value
252
+ const minimumMargin = -Infinity;
253
+ const [ minMarginValue, setMinMarginValue ] = useState( minimumMargin );
254
+
251
255
  // Content Size
252
256
  const showContentSizeControl =
253
257
  useHasContentSize( settings ) && includeLayoutControls;
@@ -435,6 +439,17 @@ export default function DimensionsPanel( {
435
439
 
436
440
  const onMouseLeaveControls = () => onVisualize( false );
437
441
 
442
+ const inputProps = {
443
+ min: minMarginValue,
444
+ onDragStart: () => {
445
+ //Reset to 0 in case the value was negative.
446
+ setMinMarginValue( 0 );
447
+ },
448
+ onDragEnd: () => {
449
+ setMinMarginValue( minimumMargin );
450
+ },
451
+ };
452
+
438
453
  return (
439
454
  <Wrapper
440
455
  resetAllFilter={ resetAllFilter }
@@ -561,6 +576,7 @@ export default function DimensionsPanel( {
561
576
  <BoxControl
562
577
  values={ marginValues }
563
578
  onChange={ setMarginValues }
579
+ inputProps={ inputProps }
564
580
  label={ __( 'Margin' ) }
565
581
  sides={ marginSides }
566
582
  units={ units }
@@ -574,6 +590,7 @@ export default function DimensionsPanel( {
574
590
  <SpacingSizesControl
575
591
  values={ marginValues }
576
592
  onChange={ setMarginValues }
593
+ minimumCustomValue={ -Infinity }
577
594
  label={ __( 'Margin' ) }
578
595
  sides={ marginSides }
579
596
  units={ units }
@@ -68,6 +68,7 @@ const VALID_SETTINGS = [
68
68
  'spacing.units',
69
69
  'typography.fluid',
70
70
  'typography.customFontSize',
71
+ 'typography.defaultFontSizes',
71
72
  'typography.dropCap',
72
73
  'typography.fontFamilies',
73
74
  'typography.fontSizes',
@@ -240,6 +241,7 @@ export function useSettingsForBlockElement(
240
241
  ...updatedSettings.typography,
241
242
  fontSizes: {},
242
243
  customFontSize: false,
244
+ defaultFontSizes: false,
243
245
  };
244
246
  }
245
247
 
@@ -6,6 +6,7 @@ import {
6
6
  getBlockStyleVariationSelector,
7
7
  getPresetVariableFromValue,
8
8
  getValueFromVariable,
9
+ scopeFeatureSelectors,
9
10
  } from '../utils';
10
11
 
11
12
  describe( 'editor utils', () => {
@@ -345,4 +346,24 @@ describe( 'editor utils', () => {
345
346
  }
346
347
  );
347
348
  } );
349
+
350
+ describe( 'scopeFeatureSelectors', () => {
351
+ it( 'correctly scopes selectors while maintaining selectors object structure', () => {
352
+ const actual = scopeFeatureSelectors( '.custom, .secondary', {
353
+ color: '.my-block h1',
354
+ typography: {
355
+ root: '.my-block',
356
+ lineHeight: '.my-block h1',
357
+ },
358
+ } );
359
+
360
+ expect( actual ).toEqual( {
361
+ color: '.custom .my-block h1, .secondary .my-block h1',
362
+ typography: {
363
+ root: '.custom .my-block, .secondary .my-block',
364
+ lineHeight: '.custom .my-block h1, .secondary .my-block h1',
365
+ },
366
+ } );
367
+ } );
368
+ } );
348
369
  } );