@wordpress/block-editor 9.0.0 → 9.3.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 (685) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +1 -0
  3. package/build/autocompleters/block.js +3 -1
  4. package/build/autocompleters/block.js.map +1 -1
  5. package/build/components/block-actions/index.js.map +1 -1
  6. package/build/components/block-alignment-control/ui.js.map +1 -1
  7. package/build/components/block-alignment-matrix-control/index.js +4 -13
  8. package/build/components/block-alignment-matrix-control/index.js.map +1 -1
  9. package/build/components/block-breadcrumb/index.js.map +1 -1
  10. package/build/components/block-content-overlay/index.js +4 -82
  11. package/build/components/block-content-overlay/index.js.map +1 -1
  12. package/build/components/block-context/index.js.map +1 -1
  13. package/build/components/block-controls/hook.js.map +1 -1
  14. package/build/components/block-draggable/draggable-chip.native.js +65 -0
  15. package/build/components/block-draggable/draggable-chip.native.js.map +1 -0
  16. package/build/components/block-draggable/dropping-insertion-point.native.js +157 -0
  17. package/build/components/block-draggable/dropping-insertion-point.native.js.map +1 -0
  18. package/build/components/block-draggable/index.js.map +1 -1
  19. package/build/components/block-draggable/index.native.js +488 -0
  20. package/build/components/block-draggable/index.native.js.map +1 -0
  21. package/build/components/block-draggable/use-scroll-when-dragging.native.js +130 -0
  22. package/build/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -0
  23. package/build/components/block-list/block-list-context.native.js +195 -0
  24. package/build/components/block-list/block-list-context.native.js.map +1 -0
  25. package/build/components/block-list/block-list-item-cell.native.js +67 -0
  26. package/build/components/block-list/block-list-item-cell.native.js.map +1 -0
  27. package/build/components/block-list/block-list-item.native.js +12 -9
  28. package/build/components/block-list/block-list-item.native.js.map +1 -1
  29. package/build/components/block-list/block-selection-button.native.js.map +1 -1
  30. package/build/components/block-list/block.js.map +1 -1
  31. package/build/components/block-list/block.native.js +27 -5
  32. package/build/components/block-list/block.native.js.map +1 -1
  33. package/build/components/block-list/index.js +34 -32
  34. package/build/components/block-list/index.js.map +1 -1
  35. package/build/components/block-list/index.native.js +75 -23
  36. package/build/components/block-list/index.native.js.map +1 -1
  37. package/build/components/block-list/use-block-props/index.js +8 -4
  38. package/build/components/block-list/use-block-props/index.js.map +1 -1
  39. package/build/components/block-list/use-block-props/use-block-custom-class-name.js.map +1 -1
  40. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  41. package/build/components/block-list/use-in-between-inserter.js +1 -1
  42. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  43. package/build/components/block-list-appender/index.js.map +1 -1
  44. package/build/components/block-list-appender/index.native.js.map +1 -1
  45. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  46. package/build/components/block-mobile-toolbar/index.native.js +10 -3
  47. package/build/components/block-mobile-toolbar/index.native.js.map +1 -1
  48. package/build/components/block-mover/button.js.map +1 -1
  49. package/build/components/block-mover/index.native.js +17 -4
  50. package/build/components/block-mover/index.native.js.map +1 -1
  51. package/build/components/block-parent-selector/index.js.map +1 -1
  52. package/build/components/block-pattern-setup/index.js +1 -1
  53. package/build/components/block-pattern-setup/index.js.map +1 -1
  54. package/build/components/block-popover/inbetween.js +19 -8
  55. package/build/components/block-popover/inbetween.js.map +1 -1
  56. package/build/components/block-popover/index.js +5 -16
  57. package/build/components/block-popover/index.js.map +1 -1
  58. package/build/components/block-preview/auto.js.map +1 -1
  59. package/build/components/block-preview/index.js +1 -1
  60. package/build/components/block-preview/index.js.map +1 -1
  61. package/build/components/block-selection-clearer/index.js.map +1 -1
  62. package/build/components/block-settings-menu/block-mode-toggle.js +3 -7
  63. package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  64. package/build/components/block-settings-menu/block-settings-dropdown.js +6 -3
  65. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  66. package/build/components/block-styles/index.js +6 -3
  67. package/build/components/block-styles/index.js.map +1 -1
  68. package/build/components/block-styles/menu-items.js +3 -7
  69. package/build/components/block-styles/menu-items.js.map +1 -1
  70. package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
  71. package/build/components/block-toolbar/index.native.js.map +1 -1
  72. package/build/components/block-toolbar/utils.js +5 -8
  73. package/build/components/block-toolbar/utils.js.map +1 -1
  74. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  75. package/build/components/block-tools/block-selection-button.js +1 -0
  76. package/build/components/block-tools/block-selection-button.js.map +1 -1
  77. package/build/components/block-tools/index.js.map +1 -1
  78. package/build/components/block-tools/selected-block-popover.js +1 -29
  79. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  80. package/build/components/block-types-list/index.native.js.map +1 -1
  81. package/build/components/block-variation-transforms/index.js +16 -2
  82. package/build/components/block-variation-transforms/index.js.map +1 -1
  83. package/build/components/border-radius-control/input-controls.js +10 -3
  84. package/build/components/border-radius-control/input-controls.js.map +1 -1
  85. package/build/components/color-style-selector/index.js.map +1 -1
  86. package/build/components/colors/with-colors.js.map +1 -1
  87. package/build/components/colors-gradients/dropdown.js +122 -41
  88. package/build/components/colors-gradients/dropdown.js.map +1 -1
  89. package/build/components/colors-gradients/panel-color-gradient-settings.js +35 -60
  90. package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  91. package/build/components/convert-to-group-buttons/toolbar.js +22 -5
  92. package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
  93. package/build/components/copy-handler/index.js +17 -1
  94. package/build/components/copy-handler/index.js.map +1 -1
  95. package/build/components/default-block-appender/index.js.map +1 -1
  96. package/build/components/default-block-appender/index.native.js.map +1 -1
  97. package/build/components/default-style-picker/index.js.map +1 -1
  98. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  99. package/build/components/iframe/index.js +51 -50
  100. package/build/components/iframe/index.js.map +1 -1
  101. package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  102. package/build/components/image-editor/use-save-image.js +3 -1
  103. package/build/components/image-editor/use-save-image.js.map +1 -1
  104. package/build/components/image-size-control/index.js +3 -1
  105. package/build/components/image-size-control/index.js.map +1 -1
  106. package/build/components/index.js +31 -13
  107. package/build/components/index.js.map +1 -1
  108. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  109. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  110. package/build/components/inserter/block-types-tab.native.js.map +1 -1
  111. package/build/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
  112. package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
  113. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  114. package/build/components/inserter/index.js.map +1 -1
  115. package/build/components/inserter/index.native.js +1 -1
  116. package/build/components/inserter/index.native.js.map +1 -1
  117. package/build/components/inserter/library.js +3 -7
  118. package/build/components/inserter/library.js.map +1 -1
  119. package/build/components/inserter/menu.js.map +1 -1
  120. package/build/components/inserter/menu.native.js.map +1 -1
  121. package/build/components/inserter/no-results.native.js.map +1 -1
  122. package/build/components/inserter/quick-inserter.js.map +1 -1
  123. package/build/components/inserter/search-items.js +1 -1
  124. package/build/components/inserter/search-items.js.map +1 -1
  125. package/build/components/inserter/search-results.native.js.map +1 -1
  126. package/build/components/inspector-popover-header/index.js +56 -0
  127. package/build/components/inspector-popover-header/index.js.map +1 -0
  128. package/build/components/line-height-control/index.js.map +1 -1
  129. package/build/components/link-control/constants.js +11 -1
  130. package/build/components/link-control/constants.js.map +1 -1
  131. package/build/components/link-control/index.js +4 -4
  132. package/build/components/link-control/index.js.map +1 -1
  133. package/build/components/link-control/search-create-button.js +1 -3
  134. package/build/components/link-control/search-create-button.js.map +1 -1
  135. package/build/components/link-control/search-input.js +5 -3
  136. package/build/components/link-control/search-input.js.map +1 -1
  137. package/build/components/link-control/search-results.js +4 -3
  138. package/build/components/link-control/search-results.js.map +1 -1
  139. package/build/components/link-control/settings-drawer.js +3 -7
  140. package/build/components/link-control/settings-drawer.js.map +1 -1
  141. package/build/components/link-control/use-search-handler.js +4 -4
  142. package/build/components/link-control/use-search-handler.js.map +1 -1
  143. package/build/components/list-view/block-contents.js.map +1 -1
  144. package/build/components/list-view/branch.js.map +1 -1
  145. package/build/components/list-view/drop-indicator.js +0 -1
  146. package/build/components/list-view/drop-indicator.js.map +1 -1
  147. package/build/components/list-view/index.js.map +1 -1
  148. package/build/components/list-view/use-block-selection.js.map +1 -1
  149. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  150. package/build/components/list-view/utils.js +1 -7
  151. package/build/components/list-view/utils.js.map +1 -1
  152. package/build/components/media-placeholder/index.js +4 -6
  153. package/build/components/media-placeholder/index.js.map +1 -1
  154. package/build/components/media-replace-flow/index.js +20 -7
  155. package/build/components/media-replace-flow/index.js.map +1 -1
  156. package/build/components/media-upload/index.native.js +10 -4
  157. package/build/components/media-upload/index.native.js.map +1 -1
  158. package/build/components/navigable-toolbar/index.js +12 -2
  159. package/build/components/navigable-toolbar/index.js.map +1 -1
  160. package/build/components/plain-text/index.native.js +62 -7
  161. package/build/components/plain-text/index.native.js.map +1 -1
  162. package/build/components/preview-options/index.js +4 -0
  163. package/build/components/preview-options/index.js.map +1 -1
  164. package/build/components/provider/use-block-sync.js +5 -3
  165. package/build/components/provider/use-block-sync.js.map +1 -1
  166. package/build/components/publish-date-time-picker/index.js +53 -0
  167. package/build/components/publish-date-time-picker/index.js.map +1 -0
  168. package/build/components/rich-text/embed-handler-picker.native.js +4 -8
  169. package/build/components/rich-text/embed-handler-picker.native.js.map +1 -1
  170. package/build/components/rich-text/format-toolbar-container.js +0 -1
  171. package/build/components/rich-text/format-toolbar-container.js.map +1 -1
  172. package/build/components/rich-text/index.js +2 -2
  173. package/build/components/rich-text/index.js.map +1 -1
  174. package/build/components/rich-text/index.native.js +5 -1
  175. package/build/components/rich-text/index.native.js.map +1 -1
  176. package/build/components/rich-text/use-format-types.js.map +1 -1
  177. package/build/components/rich-text/use-mark-persistent.js.map +1 -1
  178. package/build/components/skip-to-selected-block/index.js.map +1 -1
  179. package/build/components/ungroup-button/index.native.js +3 -7
  180. package/build/components/ungroup-button/index.native.js.map +1 -1
  181. package/build/components/url-input/index.js +18 -4
  182. package/build/components/url-input/index.js.map +1 -1
  183. package/build/components/use-block-display-information/index.js.map +1 -1
  184. package/build/components/use-block-drop-zone/index.js.map +1 -1
  185. package/build/components/use-block-drop-zone/index.native.js +167 -0
  186. package/build/components/use-block-drop-zone/index.native.js.map +1 -0
  187. package/build/components/use-display-block-controls/index.native.js.map +1 -1
  188. package/build/components/use-on-block-drop/index.js.map +1 -1
  189. package/build/components/use-on-block-drop/index.native.js +95 -0
  190. package/build/components/use-on-block-drop/index.native.js.map +1 -0
  191. package/build/components/use-setting/index.js.map +1 -1
  192. package/build/components/warning/index.js +6 -1
  193. package/build/components/warning/index.js.map +1 -1
  194. package/build/components/writing-flow/use-arrow-nav.js +12 -12
  195. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  196. package/build/components/writing-flow/use-click-selection.js.map +1 -1
  197. package/build/components/writing-flow/use-drag-selection.js.map +1 -1
  198. package/build/components/writing-flow/use-input.js +15 -0
  199. package/build/components/writing-flow/use-input.js.map +1 -1
  200. package/build/components/writing-flow/use-multi-selection.js.map +1 -1
  201. package/build/components/writing-flow/use-select-all.js.map +1 -1
  202. package/build/components/writing-flow/use-selection-observer.js.map +1 -1
  203. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  204. package/build/elements/index.js +9 -0
  205. package/build/elements/index.js.map +1 -0
  206. package/build/hooks/anchor.js.map +1 -1
  207. package/build/hooks/border.js +2 -7
  208. package/build/hooks/border.js.map +1 -1
  209. package/build/hooks/color-panel.js +14 -7
  210. package/build/hooks/color-panel.js.map +1 -1
  211. package/build/hooks/color-panel.native.js.map +1 -1
  212. package/build/hooks/color.js +8 -88
  213. package/build/hooks/color.js.map +1 -1
  214. package/build/hooks/dimensions.js +14 -4
  215. package/build/hooks/dimensions.js.map +1 -1
  216. package/build/hooks/font-family.js.map +1 -1
  217. package/build/hooks/gap.js.map +1 -1
  218. package/build/hooks/layout.js +38 -1
  219. package/build/hooks/layout.js.map +1 -1
  220. package/build/hooks/style.js +14 -13
  221. package/build/hooks/style.js.map +1 -1
  222. package/build/hooks/typography.js +6 -2
  223. package/build/hooks/typography.js.map +1 -1
  224. package/build/index.js +14 -0
  225. package/build/index.js.map +1 -1
  226. package/build/layouts/flex.js +5 -2
  227. package/build/layouts/flex.js.map +1 -1
  228. package/build/store/actions.js +14 -0
  229. package/build/store/actions.js.map +1 -1
  230. package/build/store/reducer.js +17 -2
  231. package/build/store/reducer.js.map +1 -1
  232. package/build/store/selectors.js +30 -2
  233. package/build/store/selectors.js.map +1 -1
  234. package/build/utils/pasting.js.map +1 -1
  235. package/build/utils/transform-styles/transforms/wrap.js.map +1 -1
  236. package/build-module/autocompleters/block.js +4 -1
  237. package/build-module/autocompleters/block.js.map +1 -1
  238. package/build-module/components/block-actions/index.js.map +1 -1
  239. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  240. package/build-module/components/block-alignment-matrix-control/index.js +3 -11
  241. package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
  242. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  243. package/build-module/components/block-content-overlay/index.js +3 -78
  244. package/build-module/components/block-content-overlay/index.js.map +1 -1
  245. package/build-module/components/block-context/index.js.map +1 -1
  246. package/build-module/components/block-controls/hook.js.map +1 -1
  247. package/build-module/components/block-draggable/draggable-chip.native.js +51 -0
  248. package/build-module/components/block-draggable/draggable-chip.native.js.map +1 -0
  249. package/build-module/components/block-draggable/dropping-insertion-point.native.js +137 -0
  250. package/build-module/components/block-draggable/dropping-insertion-point.native.js.map +1 -0
  251. package/build-module/components/block-draggable/index.js.map +1 -1
  252. package/build-module/components/block-draggable/index.native.js +453 -0
  253. package/build-module/components/block-draggable/index.native.js.map +1 -0
  254. package/build-module/components/block-draggable/use-scroll-when-dragging.native.js +120 -0
  255. package/build-module/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -0
  256. package/build-module/components/block-list/block-list-context.native.js +179 -0
  257. package/build-module/components/block-list/block-list-context.native.js.map +1 -0
  258. package/build-module/components/block-list/block-list-item-cell.native.js +59 -0
  259. package/build-module/components/block-list/block-list-item-cell.native.js.map +1 -0
  260. package/build-module/components/block-list/block-list-item.native.js +12 -9
  261. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  262. package/build-module/components/block-list/block-selection-button.native.js.map +1 -1
  263. package/build-module/components/block-list/block.js.map +1 -1
  264. package/build-module/components/block-list/block.native.js +26 -5
  265. package/build-module/components/block-list/block.native.js.map +1 -1
  266. package/build-module/components/block-list/index.js +35 -33
  267. package/build-module/components/block-list/index.js.map +1 -1
  268. package/build-module/components/block-list/index.native.js +72 -23
  269. package/build-module/components/block-list/index.native.js.map +1 -1
  270. package/build-module/components/block-list/use-block-props/index.js +9 -5
  271. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  272. package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js.map +1 -1
  273. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  274. package/build-module/components/block-list/use-in-between-inserter.js +1 -1
  275. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  276. package/build-module/components/block-list-appender/index.js.map +1 -1
  277. package/build-module/components/block-list-appender/index.native.js.map +1 -1
  278. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  279. package/build-module/components/block-mobile-toolbar/index.native.js +9 -3
  280. package/build-module/components/block-mobile-toolbar/index.native.js.map +1 -1
  281. package/build-module/components/block-mover/button.js.map +1 -1
  282. package/build-module/components/block-mover/index.native.js +18 -5
  283. package/build-module/components/block-mover/index.native.js.map +1 -1
  284. package/build-module/components/block-parent-selector/index.js.map +1 -1
  285. package/build-module/components/block-pattern-setup/index.js +1 -1
  286. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  287. package/build-module/components/block-popover/inbetween.js +19 -8
  288. package/build-module/components/block-popover/inbetween.js.map +1 -1
  289. package/build-module/components/block-popover/index.js +5 -15
  290. package/build-module/components/block-popover/index.js.map +1 -1
  291. package/build-module/components/block-preview/auto.js.map +1 -1
  292. package/build-module/components/block-preview/index.js +1 -1
  293. package/build-module/components/block-preview/index.js.map +1 -1
  294. package/build-module/components/block-selection-clearer/index.js.map +1 -1
  295. package/build-module/components/block-settings-menu/block-mode-toggle.js +3 -5
  296. package/build-module/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  297. package/build-module/components/block-settings-menu/block-settings-dropdown.js +9 -3
  298. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  299. package/build-module/components/block-styles/index.js +5 -2
  300. package/build-module/components/block-styles/index.js.map +1 -1
  301. package/build-module/components/block-styles/menu-items.js +3 -5
  302. package/build-module/components/block-styles/menu-items.js.map +1 -1
  303. package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
  304. package/build-module/components/block-toolbar/index.native.js.map +1 -1
  305. package/build-module/components/block-toolbar/utils.js +3 -5
  306. package/build-module/components/block-toolbar/utils.js.map +1 -1
  307. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  308. package/build-module/components/block-tools/block-selection-button.js +1 -0
  309. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  310. package/build-module/components/block-tools/index.js.map +1 -1
  311. package/build-module/components/block-tools/selected-block-popover.js +2 -29
  312. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  313. package/build-module/components/block-types-list/index.native.js.map +1 -1
  314. package/build-module/components/block-variation-transforms/index.js +13 -2
  315. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  316. package/build-module/components/border-radius-control/input-controls.js +11 -4
  317. package/build-module/components/border-radius-control/input-controls.js.map +1 -1
  318. package/build-module/components/color-style-selector/index.js.map +1 -1
  319. package/build-module/components/colors/with-colors.js.map +1 -1
  320. package/build-module/components/colors-gradients/dropdown.js +124 -43
  321. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  322. package/build-module/components/colors-gradients/panel-color-gradient-settings.js +36 -64
  323. package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  324. package/build-module/components/convert-to-group-buttons/toolbar.js +23 -6
  325. package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
  326. package/build-module/components/copy-handler/index.js +18 -2
  327. package/build-module/components/copy-handler/index.js.map +1 -1
  328. package/build-module/components/default-block-appender/index.js.map +1 -1
  329. package/build-module/components/default-block-appender/index.native.js.map +1 -1
  330. package/build-module/components/default-style-picker/index.js.map +1 -1
  331. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  332. package/build-module/components/iframe/index.js +52 -51
  333. package/build-module/components/iframe/index.js.map +1 -1
  334. package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  335. package/build-module/components/image-editor/use-save-image.js +2 -1
  336. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  337. package/build-module/components/image-size-control/index.js +4 -1
  338. package/build-module/components/image-size-control/index.js.map +1 -1
  339. package/build-module/components/index.js +4 -2
  340. package/build-module/components/index.js.map +1 -1
  341. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  342. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  343. package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
  344. package/build-module/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
  345. package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
  346. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  347. package/build-module/components/inserter/index.js.map +1 -1
  348. package/build-module/components/inserter/index.native.js +1 -1
  349. package/build-module/components/inserter/index.native.js.map +1 -1
  350. package/build-module/components/inserter/library.js +2 -5
  351. package/build-module/components/inserter/library.js.map +1 -1
  352. package/build-module/components/inserter/menu.js.map +1 -1
  353. package/build-module/components/inserter/menu.native.js.map +1 -1
  354. package/build-module/components/inserter/no-results.native.js.map +1 -1
  355. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  356. package/build-module/components/inserter/search-items.js +2 -2
  357. package/build-module/components/inserter/search-items.js.map +1 -1
  358. package/build-module/components/inserter/search-results.native.js.map +1 -1
  359. package/build-module/components/inspector-popover-header/index.js +46 -0
  360. package/build-module/components/inspector-popover-header/index.js.map +1 -0
  361. package/build-module/components/line-height-control/index.js.map +1 -1
  362. package/build-module/components/link-control/constants.js +5 -0
  363. package/build-module/components/link-control/constants.js.map +1 -1
  364. package/build-module/components/link-control/index.js +2 -1
  365. package/build-module/components/link-control/index.js.map +1 -1
  366. package/build-module/components/link-control/search-create-button.js +1 -2
  367. package/build-module/components/link-control/search-create-button.js.map +1 -1
  368. package/build-module/components/link-control/search-input.js +3 -1
  369. package/build-module/components/link-control/search-input.js.map +1 -1
  370. package/build-module/components/link-control/search-results.js +3 -4
  371. package/build-module/components/link-control/search-results.js.map +1 -1
  372. package/build-module/components/link-control/settings-drawer.js +2 -5
  373. package/build-module/components/link-control/settings-drawer.js.map +1 -1
  374. package/build-module/components/link-control/use-search-handler.js +5 -5
  375. package/build-module/components/link-control/use-search-handler.js.map +1 -1
  376. package/build-module/components/list-view/block-contents.js.map +1 -1
  377. package/build-module/components/list-view/branch.js.map +1 -1
  378. package/build-module/components/list-view/drop-indicator.js +0 -1
  379. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  380. package/build-module/components/list-view/index.js.map +1 -1
  381. package/build-module/components/list-view/use-block-selection.js.map +1 -1
  382. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  383. package/build-module/components/list-view/utils.js +1 -6
  384. package/build-module/components/list-view/utils.js.map +1 -1
  385. package/build-module/components/media-placeholder/index.js +2 -3
  386. package/build-module/components/media-placeholder/index.js.map +1 -1
  387. package/build-module/components/media-replace-flow/index.js +22 -9
  388. package/build-module/components/media-replace-flow/index.js.map +1 -1
  389. package/build-module/components/media-upload/index.native.js +8 -3
  390. package/build-module/components/media-upload/index.native.js.map +1 -1
  391. package/build-module/components/navigable-toolbar/index.js +12 -2
  392. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  393. package/build-module/components/plain-text/index.native.js +63 -8
  394. package/build-module/components/plain-text/index.native.js.map +1 -1
  395. package/build-module/components/preview-options/index.js +4 -0
  396. package/build-module/components/preview-options/index.js.map +1 -1
  397. package/build-module/components/provider/use-block-sync.js +4 -1
  398. package/build-module/components/provider/use-block-sync.js.map +1 -1
  399. package/build-module/components/publish-date-time-picker/index.js +40 -0
  400. package/build-module/components/publish-date-time-picker/index.js.map +1 -0
  401. package/build-module/components/rich-text/embed-handler-picker.native.js +3 -5
  402. package/build-module/components/rich-text/embed-handler-picker.native.js.map +1 -1
  403. package/build-module/components/rich-text/format-toolbar-container.js +0 -1
  404. package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
  405. package/build-module/components/rich-text/index.js +2 -2
  406. package/build-module/components/rich-text/index.js.map +1 -1
  407. package/build-module/components/rich-text/index.native.js +5 -1
  408. package/build-module/components/rich-text/index.native.js.map +1 -1
  409. package/build-module/components/rich-text/use-format-types.js.map +1 -1
  410. package/build-module/components/rich-text/use-mark-persistent.js.map +1 -1
  411. package/build-module/components/skip-to-selected-block/index.js.map +1 -1
  412. package/build-module/components/ungroup-button/index.native.js +3 -5
  413. package/build-module/components/ungroup-button/index.native.js.map +1 -1
  414. package/build-module/components/url-input/index.js +15 -2
  415. package/build-module/components/url-input/index.js.map +1 -1
  416. package/build-module/components/use-block-display-information/index.js.map +1 -1
  417. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  418. package/build-module/components/use-block-drop-zone/index.native.js +148 -0
  419. package/build-module/components/use-block-drop-zone/index.native.js.map +1 -0
  420. package/build-module/components/use-display-block-controls/index.native.js.map +1 -1
  421. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  422. package/build-module/components/use-on-block-drop/index.native.js +83 -0
  423. package/build-module/components/use-on-block-drop/index.native.js.map +1 -0
  424. package/build-module/components/use-setting/index.js.map +1 -1
  425. package/build-module/components/warning/index.js +6 -1
  426. package/build-module/components/warning/index.js.map +1 -1
  427. package/build-module/components/writing-flow/use-arrow-nav.js +12 -11
  428. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  429. package/build-module/components/writing-flow/use-click-selection.js.map +1 -1
  430. package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
  431. package/build-module/components/writing-flow/use-input.js +15 -0
  432. package/build-module/components/writing-flow/use-input.js.map +1 -1
  433. package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
  434. package/build-module/components/writing-flow/use-select-all.js.map +1 -1
  435. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
  436. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  437. package/build-module/elements/index.js +2 -0
  438. package/build-module/elements/index.js.map +1 -0
  439. package/build-module/hooks/anchor.js.map +1 -1
  440. package/build-module/hooks/border.js +2 -7
  441. package/build-module/hooks/border.js.map +1 -1
  442. package/build-module/hooks/color-panel.js +11 -6
  443. package/build-module/hooks/color-panel.js.map +1 -1
  444. package/build-module/hooks/color-panel.native.js.map +1 -1
  445. package/build-module/hooks/color.js +8 -88
  446. package/build-module/hooks/color.js.map +1 -1
  447. package/build-module/hooks/dimensions.js +14 -4
  448. package/build-module/hooks/dimensions.js.map +1 -1
  449. package/build-module/hooks/font-family.js.map +1 -1
  450. package/build-module/hooks/gap.js.map +1 -1
  451. package/build-module/hooks/layout.js +39 -2
  452. package/build-module/hooks/layout.js.map +1 -1
  453. package/build-module/hooks/style.js +15 -14
  454. package/build-module/hooks/style.js.map +1 -1
  455. package/build-module/hooks/typography.js +6 -2
  456. package/build-module/hooks/typography.js.map +1 -1
  457. package/build-module/index.js +1 -0
  458. package/build-module/index.js.map +1 -1
  459. package/build-module/layouts/flex.js +4 -2
  460. package/build-module/layouts/flex.js.map +1 -1
  461. package/build-module/store/actions.js +12 -0
  462. package/build-module/store/actions.js.map +1 -1
  463. package/build-module/store/reducer.js +17 -2
  464. package/build-module/store/reducer.js.map +1 -1
  465. package/build-module/store/selectors.js +25 -2
  466. package/build-module/store/selectors.js.map +1 -1
  467. package/build-module/utils/pasting.js.map +1 -1
  468. package/build-module/utils/transform-styles/transforms/wrap.js.map +1 -1
  469. package/build-style/style-rtl.css +79 -197
  470. package/build-style/style.css +79 -197
  471. package/package.json +30 -30
  472. package/src/autocompleters/block.js +2 -1
  473. package/src/components/block-actions/index.js +2 -3
  474. package/src/components/block-alignment-control/ui.js +4 -6
  475. package/src/components/block-alignment-matrix-control/index.js +3 -9
  476. package/src/components/block-breadcrumb/index.js +2 -5
  477. package/src/components/block-compare/test/block-view.js +2 -1
  478. package/src/components/block-content-overlay/index.js +10 -100
  479. package/src/components/block-content-overlay/style.scss +2 -11
  480. package/src/components/block-context/index.js +4 -4
  481. package/src/components/block-controls/hook.js +2 -3
  482. package/src/components/block-draggable/draggable-chip.native.js +49 -0
  483. package/src/components/block-draggable/dropping-insertion-point.native.js +181 -0
  484. package/src/components/block-draggable/dropping-insertion-point.native.scss +8 -0
  485. package/src/components/block-draggable/index.js +6 -13
  486. package/src/components/block-draggable/index.native.js +454 -0
  487. package/src/components/block-draggable/style.native.scss +19 -0
  488. package/src/components/block-draggable/test/__snapshots__/index.native.js.snap +73 -0
  489. package/src/components/block-draggable/test/helpers.native.js +183 -0
  490. package/src/components/block-draggable/test/index.native.js +493 -0
  491. package/src/components/block-draggable/use-scroll-when-dragging.native.js +135 -0
  492. package/src/components/block-edit/test/edit.js +2 -1
  493. package/src/components/block-list/block-list-context.native.js +175 -0
  494. package/src/components/block-list/block-list-item-cell.native.js +49 -0
  495. package/src/components/block-list/block-list-item.native.js +11 -23
  496. package/src/components/block-list/block-selection-button.native.js +2 -3
  497. package/src/components/block-list/block.js +8 -10
  498. package/src/components/block-list/block.native.js +47 -23
  499. package/src/components/block-list/index.js +46 -47
  500. package/src/components/block-list/index.native.js +63 -31
  501. package/src/components/block-list/test/block-list-context.native.js +245 -0
  502. package/src/components/block-list/test/fixtures/block-list-context.native.js +79 -0
  503. package/src/components/block-list/use-block-props/index.js +16 -8
  504. package/src/components/block-list/use-block-props/use-block-custom-class-name.js +2 -3
  505. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +2 -3
  506. package/src/components/block-list/use-in-between-inserter.js +3 -4
  507. package/src/components/block-list-appender/index.js +2 -5
  508. package/src/components/block-list-appender/index.native.js +2 -3
  509. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +4 -6
  510. package/src/components/block-mobile-toolbar/index.native.js +9 -1
  511. package/src/components/block-mover/button.js +2 -3
  512. package/src/components/block-mover/index.native.js +26 -12
  513. package/src/components/block-mover/test/__snapshots__/index.native.js.snap +10 -0
  514. package/src/components/block-parent-selector/index.js +2 -3
  515. package/src/components/block-pattern-setup/index.js +3 -5
  516. package/src/components/block-popover/inbetween.js +21 -8
  517. package/src/components/block-popover/index.js +2 -16
  518. package/src/components/block-popover/style.scss +1 -0
  519. package/src/components/block-preview/auto.js +4 -8
  520. package/src/components/block-preview/index.js +1 -4
  521. package/src/components/block-selection-clearer/index.js +2 -3
  522. package/src/components/block-settings-menu/block-mode-toggle.js +4 -8
  523. package/src/components/block-settings-menu/block-settings-dropdown.js +9 -9
  524. package/src/components/block-styles/index.js +3 -1
  525. package/src/components/block-styles/menu-items.js +2 -5
  526. package/src/components/block-switcher/block-transformations-menu.js +2 -4
  527. package/src/components/block-switcher/style.scss +2 -39
  528. package/src/components/block-toolbar/index.native.js +2 -5
  529. package/src/components/block-toolbar/utils.js +3 -11
  530. package/src/components/block-tools/block-contextual-toolbar.js +2 -5
  531. package/src/components/block-tools/block-selection-button.js +1 -0
  532. package/src/components/block-tools/index.js +2 -3
  533. package/src/components/block-tools/selected-block-popover.js +1 -36
  534. package/src/components/block-tools/style.scss +1 -12
  535. package/src/components/block-types-list/index.native.js +2 -4
  536. package/src/components/block-variation-transforms/index.js +10 -8
  537. package/src/components/border-radius-control/input-controls.js +16 -8
  538. package/src/components/border-radius-control/style.scss +3 -2
  539. package/src/components/color-palette/test/control.js +2 -1
  540. package/src/components/color-style-selector/index.js +27 -28
  541. package/src/components/colors/test/with-colors.js +14 -14
  542. package/src/components/colors/with-colors.js +8 -12
  543. package/src/components/colors-gradients/dropdown.js +135 -62
  544. package/src/components/colors-gradients/panel-color-gradient-settings.js +30 -76
  545. package/src/components/colors-gradients/style.scss +52 -50
  546. package/src/components/colors-gradients/test/control.js +10 -10
  547. package/src/components/convert-to-group-buttons/toolbar.js +32 -19
  548. package/src/components/copy-handler/README.md +7 -2
  549. package/src/components/copy-handler/index.js +26 -6
  550. package/src/components/default-block-appender/index.js +4 -6
  551. package/src/components/default-block-appender/index.native.js +4 -9
  552. package/src/components/default-style-picker/index.js +20 -21
  553. package/src/components/duotone-control/style.scss +1 -7
  554. package/src/components/font-sizes/with-font-sizes.js +2 -3
  555. package/src/components/iframe/index.js +62 -54
  556. package/src/components/image-editor/aspect-ratio-dropdown.js +2 -6
  557. package/src/components/image-editor/use-save-image.js +2 -1
  558. package/src/components/image-size-control/index.js +4 -7
  559. package/src/components/index.js +4 -2
  560. package/src/components/inner-blocks/use-inner-block-template-sync.js +2 -3
  561. package/src/components/inner-blocks/use-nested-settings-update.js +6 -9
  562. package/src/components/inserter/block-types-tab.native.js +2 -3
  563. package/src/components/inserter/hooks/use-block-type-impressions.native.js +2 -3
  564. package/src/components/inserter/hooks/use-insertion-point.js +3 -2
  565. package/src/components/inserter/hooks/use-patterns-state.js +4 -5
  566. package/src/components/inserter/index.js +4 -6
  567. package/src/components/inserter/index.native.js +7 -12
  568. package/src/components/inserter/library.js +2 -5
  569. package/src/components/inserter/menu.js +14 -19
  570. package/src/components/inserter/menu.native.js +8 -6
  571. package/src/components/inserter/no-results.native.js +2 -1
  572. package/src/components/inserter/quick-inserter.js +2 -3
  573. package/src/components/inserter/search-items.js +6 -6
  574. package/src/components/inserter/search-results.native.js +4 -6
  575. package/src/components/inserter/style.scss +2 -1
  576. package/src/components/inspector-popover-header/README.md +76 -0
  577. package/src/components/inspector-popover-header/index.js +56 -0
  578. package/src/components/inspector-popover-header/style.scss +16 -0
  579. package/src/components/line-height-control/index.js +1 -2
  580. package/src/components/link-control/constants.js +11 -0
  581. package/src/components/link-control/index.js +4 -4
  582. package/src/components/link-control/search-create-button.js +4 -2
  583. package/src/components/link-control/search-input.js +3 -1
  584. package/src/components/link-control/search-results.js +4 -5
  585. package/src/components/link-control/settings-drawer.js +2 -5
  586. package/src/components/link-control/test/fixtures/index.js +3 -4
  587. package/src/components/link-control/test/index.js +24 -36
  588. package/src/components/link-control/use-search-handler.js +13 -7
  589. package/src/components/list-view/block-contents.js +2 -4
  590. package/src/components/list-view/branch.js +22 -23
  591. package/src/components/list-view/drop-indicator.js +0 -1
  592. package/src/components/list-view/index.js +4 -8
  593. package/src/components/list-view/style.scss +2 -1
  594. package/src/components/list-view/use-block-selection.js +5 -5
  595. package/src/components/list-view/use-list-view-drop-zone.js +2 -1
  596. package/src/components/list-view/utils.js +1 -6
  597. package/src/components/media-placeholder/index.js +2 -3
  598. package/src/components/media-replace-flow/index.js +77 -48
  599. package/src/components/media-upload/index.native.js +6 -2
  600. package/src/components/media-upload/test/index.native.js +31 -6
  601. package/src/components/navigable-toolbar/index.js +13 -4
  602. package/src/components/panel-color-settings/test/index.js +2 -1
  603. package/src/components/plain-text/index.native.js +60 -8
  604. package/src/components/preview-options/index.js +4 -0
  605. package/src/components/preview-options/style.scss +0 -4
  606. package/src/components/provider/use-block-sync.js +5 -2
  607. package/src/components/publish-date-time-picker/README.md +52 -0
  608. package/src/components/publish-date-time-picker/index.js +39 -0
  609. package/src/components/responsive-block-control/test/index.js +3 -2
  610. package/src/components/rich-text/embed-handler-picker.native.js +2 -5
  611. package/src/components/rich-text/format-toolbar-container.js +0 -1
  612. package/src/components/rich-text/index.js +10 -5
  613. package/src/components/rich-text/index.native.js +4 -0
  614. package/src/components/rich-text/style.scss +2 -8
  615. package/src/components/rich-text/use-format-types.js +16 -16
  616. package/src/components/rich-text/use-mark-persistent.js +2 -3
  617. package/src/components/skip-to-selected-block/index.js +2 -3
  618. package/src/components/ungroup-button/index.native.js +4 -8
  619. package/src/components/url-input/index.js +24 -21
  620. package/src/components/use-block-display-information/index.js +4 -6
  621. package/src/components/use-block-drop-zone/index.js +2 -3
  622. package/src/components/use-block-drop-zone/index.native.js +171 -0
  623. package/src/components/use-block-drop-zone/test/index.js +22 -23
  624. package/src/components/use-display-block-controls/index.native.js +2 -3
  625. package/src/components/use-no-recursive-renders/test/use-no-recursive-renders.js +2 -3
  626. package/src/components/use-on-block-drop/index.js +2 -5
  627. package/src/components/use-on-block-drop/index.native.js +115 -0
  628. package/src/components/use-setting/index.js +8 -6
  629. package/src/components/warning/index.js +47 -42
  630. package/src/components/warning/test/__snapshots__/index.js.snap +15 -6
  631. package/src/components/warning/test/index.js +1 -1
  632. package/src/components/writing-flow/test/index.js +22 -4
  633. package/src/components/writing-flow/use-arrow-nav.js +22 -10
  634. package/src/components/writing-flow/use-click-selection.js +2 -5
  635. package/src/components/writing-flow/use-drag-selection.js +6 -9
  636. package/src/components/writing-flow/use-input.js +12 -0
  637. package/src/components/writing-flow/use-multi-selection.js +2 -4
  638. package/src/components/writing-flow/use-select-all.js +2 -5
  639. package/src/components/writing-flow/use-selection-observer.js +4 -6
  640. package/src/components/writing-flow/use-tab-nav.js +2 -5
  641. package/src/elements/index.js +1 -0
  642. package/src/hooks/anchor.js +1 -1
  643. package/src/hooks/border.js +2 -11
  644. package/src/hooks/border.scss +0 -48
  645. package/src/hooks/color-panel.js +17 -13
  646. package/src/hooks/color-panel.native.js +2 -2
  647. package/src/hooks/color.js +7 -76
  648. package/src/hooks/color.scss +5 -58
  649. package/src/hooks/dimensions.js +11 -3
  650. package/src/hooks/font-family.js +4 -2
  651. package/src/hooks/gap.js +2 -3
  652. package/src/hooks/layout.js +54 -4
  653. package/src/hooks/style.js +25 -39
  654. package/src/hooks/test/align.js +2 -1
  655. package/src/hooks/test/generated-class-name.js +2 -5
  656. package/src/hooks/test/utils.js +2 -5
  657. package/src/hooks/typography.js +2 -0
  658. package/src/index.js +1 -0
  659. package/src/layouts/flex.js +11 -3
  660. package/src/store/actions.js +784 -728
  661. package/src/store/reducer.js +202 -178
  662. package/src/store/selectors.js +82 -54
  663. package/src/store/test/actions.js +2 -1
  664. package/src/store/test/reducer.js +8 -1
  665. package/src/store/test/selectors.js +17 -21
  666. package/src/style.scss +1 -1
  667. package/src/utils/pasting.js +3 -3
  668. package/src/utils/transform-styles/transforms/wrap.js +30 -28
  669. package/tsconfig.tsbuildinfo +1 -1
  670. package/build/components/colors/color-panel.js +0 -82
  671. package/build/components/colors/color-panel.js.map +0 -1
  672. package/build/components/colors/color-panel.native.js +0 -11
  673. package/build/components/colors/color-panel.native.js.map +0 -1
  674. package/build/components/colors-gradients/tools-panel-color-dropdown.js +0 -89
  675. package/build/components/colors-gradients/tools-panel-color-dropdown.js.map +0 -1
  676. package/build-module/components/colors/color-panel.js +0 -70
  677. package/build-module/components/colors/color-panel.js.map +0 -1
  678. package/build-module/components/colors/color-panel.native.js +0 -4
  679. package/build-module/components/colors/color-panel.native.js.map +0 -1
  680. package/build-module/components/colors-gradients/tools-panel-color-dropdown.js +0 -75
  681. package/build-module/components/colors-gradients/tools-panel-color-dropdown.js.map +0 -1
  682. package/src/components/block-alignment-matrix-control/style.scss +0 -10
  683. package/src/components/colors/color-panel.js +0 -91
  684. package/src/components/colors/color-panel.native.js +0 -3
  685. package/src/components/colors-gradients/tools-panel-color-dropdown.js +0 -85
@@ -25,12 +25,10 @@ function setContentEditableWrapper( node, value ) {
25
25
  * Sets a multi-selection based on the native selection across blocks.
26
26
  */
27
27
  export default function useDragSelection() {
28
- const { startMultiSelect, stopMultiSelect } = useDispatch(
29
- blockEditorStore
30
- );
31
- const { isSelectionEnabled, hasMultiSelection } = useSelect(
32
- blockEditorStore
33
- );
28
+ const { startMultiSelect, stopMultiSelect } =
29
+ useDispatch( blockEditorStore );
30
+ const { isSelectionEnabled, hasMultiSelection } =
31
+ useSelect( blockEditorStore );
34
32
  return useRefEffect(
35
33
  ( node ) => {
36
34
  const { ownerDocument } = node;
@@ -61,9 +59,8 @@ export default function useDragSelection() {
61
59
  const selection = defaultView.getSelection();
62
60
 
63
61
  if ( selection.rangeCount ) {
64
- const {
65
- commonAncestorContainer,
66
- } = selection.getRangeAt( 0 );
62
+ const { commonAncestorContainer } =
63
+ selection.getRangeAt( 0 );
67
64
 
68
65
  if (
69
66
  anchorElement.contains( commonAncestorContainer )
@@ -30,6 +30,16 @@ export default function useInput() {
30
30
  } = useDispatch( blockEditorStore );
31
31
 
32
32
  return useRefEffect( ( node ) => {
33
+ function onBeforeInput( event ) {
34
+ if ( ! hasMultiSelection() ) {
35
+ return;
36
+ }
37
+ // Prevent the browser to format something when we have multiselection.
38
+ if ( event.inputType?.startsWith( 'format' ) ) {
39
+ event.preventDefault();
40
+ }
41
+ }
42
+
33
43
  function onKeyDown( event ) {
34
44
  if ( event.defaultPrevented ) {
35
45
  return;
@@ -102,9 +112,11 @@ export default function useInput() {
102
112
  }
103
113
  }
104
114
 
115
+ node.addEventListener( 'beforeinput', onBeforeInput );
105
116
  node.addEventListener( 'keydown', onKeyDown );
106
117
  node.addEventListener( 'compositionstart', onCompositionStart );
107
118
  return () => {
119
+ node.removeEventListener( 'beforeinput', onBeforeInput );
108
120
  node.removeEventListener( 'keydown', onKeyDown );
109
121
  node.removeEventListener( 'compositionstart', onCompositionStart );
110
122
  };
@@ -74,10 +74,8 @@ export default function useMultiSelection() {
74
74
 
75
75
  if ( selection.rangeCount && ! selection.isCollapsed ) {
76
76
  const blockNode = selectedRef.current;
77
- const {
78
- startContainer,
79
- endContainer,
80
- } = selection.getRangeAt( 0 );
77
+ const { startContainer, endContainer } =
78
+ selection.getRangeAt( 0 );
81
79
 
82
80
  if (
83
81
  !! blockNode &&
@@ -17,11 +17,8 @@ import { useRefEffect } from '@wordpress/compose';
17
17
  import { store as blockEditorStore } from '../../store';
18
18
 
19
19
  export default function useSelectAll() {
20
- const {
21
- getBlockOrder,
22
- getSelectedBlockClientIds,
23
- getBlockRootClientId,
24
- } = useSelect( blockEditorStore );
20
+ const { getBlockOrder, getSelectedBlockClientIds, getBlockRootClientId } =
21
+ useSelect( blockEditorStore );
25
22
  const { multiSelect } = useDispatch( blockEditorStore );
26
23
  const isMatch = useShortcutEventMatch();
27
24
 
@@ -73,12 +73,10 @@ function setContentEditableWrapper( node, value ) {
73
73
  * Sets a multi-selection based on the native selection across blocks.
74
74
  */
75
75
  export default function useSelectionObserver() {
76
- const { multiSelect, selectBlock, selectionChange } = useDispatch(
77
- blockEditorStore
78
- );
79
- const { getBlockParents, getBlockSelectionStart } = useSelect(
80
- blockEditorStore
81
- );
76
+ const { multiSelect, selectBlock, selectionChange } =
77
+ useDispatch( blockEditorStore );
78
+ const { getBlockParents, getBlockSelectionStart } =
79
+ useSelect( blockEditorStore );
82
80
  return useRefEffect(
83
81
  ( node ) => {
84
82
  const { ownerDocument } = node;
@@ -17,11 +17,8 @@ export default function useTabNav() {
17
17
  const focusCaptureBeforeRef = useRef();
18
18
  const focusCaptureAfterRef = useRef();
19
19
  const lastFocus = useRef();
20
- const {
21
- hasMultiSelection,
22
- getSelectedBlockClientId,
23
- getBlockCount,
24
- } = useSelect( blockEditorStore );
20
+ const { hasMultiSelection, getSelectedBlockClientId, getBlockCount } =
21
+ useSelect( blockEditorStore );
25
22
  const { setNavigationMode } = useDispatch( blockEditorStore );
26
23
  const isNavigationMode = useSelect(
27
24
  ( select ) => select( blockEditorStore ).isNavigationMode(),
@@ -0,0 +1 @@
1
+ export const __experimentalElementButtonClassName = 'wp-element-button';
@@ -117,7 +117,7 @@ export const withInspectorControl = createHigherOrderComponent(
117
117
  * We plan to remove scoping anchors to 'core/heading' to support
118
118
  * anchors for all eligble blocks. Additionally we plan to explore
119
119
  * leveraging InspectorAdvancedControls instead of a custom
120
- * PanelBody title. https://git.io/Jtcov
120
+ * PanelBody title. https://github.com/WordPress/gutenberg/issues/28363
121
121
  */ }
122
122
  { ! isWeb && props.name === 'core/heading' && (
123
123
  <InspectorControls>
@@ -269,17 +269,8 @@ export function BorderPanel( props ) {
269
269
  colors={ colors }
270
270
  enableAlpha={ true }
271
271
  onChange={ onBorderChange }
272
- popoverClassNames={ {
273
- linked: 'block-editor__border-box-control__popover',
274
- top:
275
- 'block-editor__border-box-control__popover-top',
276
- right:
277
- 'block-editor__border-box-control__popover-right',
278
- bottom:
279
- 'block-editor__border-box-control__popover-bottom',
280
- left:
281
- 'block-editor__border-box-control__popover-left',
282
- } }
272
+ popoverPlacement="left-start"
273
+ popoverOffset={ 40 }
283
274
  showStyle={ isStyleSupported }
284
275
  value={ hydratedBorder }
285
276
  __experimentalHasMultipleOrigins={ true }
@@ -3,51 +3,3 @@
3
3
  grid-column: span 1;
4
4
  }
5
5
  }
6
-
7
- .block-editor__border-box-control__popover,
8
- .block-editor__border-box-control__popover-top,
9
- .block-editor__border-box-control__popover-right,
10
- .block-editor__border-box-control__popover-bottom,
11
- .block-editor__border-box-control__popover-left {
12
- .components-popover__content {
13
- width: 282px;
14
- }
15
- }
16
-
17
- $split-border-control-offset: 55px;
18
-
19
- @include break-medium() {
20
- .block-editor__border-box-control__popover,
21
- .block-editor__border-box-control__popover-left {
22
- .components-popover__content {
23
- margin-right: #{ $grid-unit-50 + $grid-unit-15 } !important;
24
- }
25
- }
26
-
27
- .block-editor__border-box-control__popover-top,
28
- .block-editor__border-box-control__popover-bottom {
29
- .components-popover__content {
30
- margin-right: #{ $grid-unit-50 + $grid-unit-15 + $split-border-control-offset } !important;
31
- }
32
- }
33
-
34
- .block-editor__border-box-control__popover-right {
35
- .components-popover__content {
36
- margin-right: #{ $grid-unit-50 + $grid-unit-15 + ( $split-border-control-offset * 2 )} !important;
37
- }
38
- }
39
-
40
- .block-editor__border-box-control__popover,
41
- .block-editor__border-box-control__popover-top,
42
- .block-editor__border-box-control__popover-right,
43
- .block-editor__border-box-control__popover-bottom,
44
- .block-editor__border-box-control__popover-left {
45
- &.is-from-top .components-popover__content {
46
- margin-top: #{ -($grid-unit-50 + $grid-unit-15) } !important;
47
- }
48
-
49
- &.is-from-bottom .components-popover__content {
50
- margin-bottom: #{ -($grid-unit-50 + $grid-unit-15) } !important;
51
- }
52
- }
53
- }
@@ -6,9 +6,10 @@ import { useState, useEffect } from '@wordpress/element';
6
6
  /**
7
7
  * Internal dependencies
8
8
  */
9
+ import ColorGradientSettingsDropdown from '../components/colors-gradients/dropdown';
9
10
  import ContrastChecker from '../components/contrast-checker';
10
- import ToolsPanelColorDropdown from '../components/colors-gradients/tools-panel-color-dropdown';
11
11
  import InspectorControls from '../components/inspector-controls';
12
+ import useMultipleOriginColorsAndGradients from '../components/colors-gradients/use-multiple-origin-colors-and-gradients';
12
13
  import { __unstableUseBlockRef as useBlockRef } from '../components/block-list/use-block-props/use-block-refs';
13
14
 
14
15
  function getComputedStyle( node ) {
@@ -42,8 +43,8 @@ export default function ColorPanel( {
42
43
  }
43
44
 
44
45
  let backgroundColorNode = ref.current;
45
- let backgroundColor = getComputedStyle( backgroundColorNode )
46
- .backgroundColor;
46
+ let backgroundColor =
47
+ getComputedStyle( backgroundColorNode ).backgroundColor;
47
48
  while (
48
49
  backgroundColor === 'rgba(0, 0, 0, 0)' &&
49
50
  backgroundColorNode.parentNode &&
@@ -51,23 +52,26 @@ export default function ColorPanel( {
51
52
  backgroundColorNode.parentNode.ELEMENT_NODE
52
53
  ) {
53
54
  backgroundColorNode = backgroundColorNode.parentNode;
54
- backgroundColor = getComputedStyle( backgroundColorNode )
55
- .backgroundColor;
55
+ backgroundColor =
56
+ getComputedStyle( backgroundColorNode ).backgroundColor;
56
57
  }
57
58
 
58
59
  setDetectedBackgroundColor( backgroundColor );
59
60
  } );
60
61
 
62
+ const colorGradientSettings = useMultipleOriginColorsAndGradients();
63
+
61
64
  return (
62
65
  <InspectorControls __experimentalGroup="color">
63
- { settings.map( ( setting, index ) => (
64
- <ToolsPanelColorDropdown
65
- key={ index }
66
- settings={ setting }
67
- panelId={ clientId }
68
- enableAlpha={ enableAlpha }
69
- />
70
- ) ) }
66
+ <ColorGradientSettingsDropdown
67
+ enableAlpha={ enableAlpha }
68
+ panelId={ clientId }
69
+ settings={ settings }
70
+ __experimentalIsItemGroup={ false }
71
+ __experimentalHasMultipleOrigins
72
+ __experimentalIsRenderedInSidebar
73
+ { ...colorGradientSettings }
74
+ />
71
75
  { enableContrastChecking && (
72
76
  <ContrastChecker
73
77
  backgroundColor={ detectedBackgroundColor }
@@ -23,8 +23,8 @@ const ColorPanel = ( { settings } ) => {
23
23
  const { baseGlobalStyles } = useSelect( ( select ) => {
24
24
  const { getSettings } = select( blockEditorStore );
25
25
  return {
26
- baseGlobalStyles: getSettings()
27
- ?.__experimentalGlobalStylesBaseStyles?.color,
26
+ baseGlobalStyles:
27
+ getSettings()?.__experimentalGlobalStylesBaseStyles?.color,
28
28
  };
29
29
  } );
30
30
 
@@ -76,34 +76,6 @@ const hasTextColorSupport = ( blockType ) => {
76
76
  return colorSupport && colorSupport.text !== false;
77
77
  };
78
78
 
79
- /**
80
- * Checks whether a color has been set either with a named preset color in
81
- * a top level block attribute or as a custom value within the style attribute
82
- * object.
83
- *
84
- * @param {string} name Name of the color to check.
85
- * @return {boolean} Whether or not a color has a value.
86
- */
87
- const hasColor = ( name ) => ( props ) => {
88
- if ( name === 'background' ) {
89
- return (
90
- !! props.attributes.backgroundColor ||
91
- !! props.attributes.style?.color?.background ||
92
- !! props.attributes.gradient ||
93
- !! props.attributes.style?.color?.gradient
94
- );
95
- }
96
-
97
- if ( name === 'link' ) {
98
- return !! props.attributes.style?.elements?.link?.color?.text;
99
- }
100
-
101
- return (
102
- !! props.attributes[ `${ name }Color` ] ||
103
- !! props.attributes.style?.color?.[ name ]
104
- );
105
- };
106
-
107
79
  /**
108
80
  * Clears a single color property from a style object.
109
81
  *
@@ -114,20 +86,6 @@ const hasColor = ( name ) => ( props ) => {
114
86
  const clearColorFromStyles = ( path, style ) =>
115
87
  cleanEmptyObject( immutableSet( style, path, undefined ) );
116
88
 
117
- /**
118
- * Resets the block attributes for text color.
119
- *
120
- * @param {Object} props Current block props.
121
- * @param {Object} props.attributes Block attributes.
122
- * @param {Function} props.setAttributes Block's setAttributes prop used to apply reset.
123
- */
124
- const resetTextColor = ( { attributes, setAttributes } ) => {
125
- setAttributes( {
126
- textColor: undefined,
127
- style: clearColorFromStyles( [ 'color', 'text' ], attributes.style ),
128
- } );
129
- };
130
-
131
89
  /**
132
90
  * Clears text color related properties from supplied attributes.
133
91
  *
@@ -139,18 +97,6 @@ const resetAllTextFilter = ( attributes ) => ( {
139
97
  style: clearColorFromStyles( [ 'color', 'text' ], attributes.style ),
140
98
  } );
141
99
 
142
- /**
143
- * Resets the block attributes for link color.
144
- *
145
- * @param {Object} props Current block props.
146
- * @param {Object} props.attributes Block attributes.
147
- * @param {Function} props.setAttributes Block's setAttributes prop used to apply reset.
148
- */
149
- const resetLinkColor = ( { attributes, setAttributes } ) => {
150
- const path = [ 'elements', 'link', 'color', 'text' ];
151
- setAttributes( { style: clearColorFromStyles( path, attributes.style ) } );
152
- };
153
-
154
100
  /**
155
101
  * Clears link color related properties from supplied attributes.
156
102
  *
@@ -184,17 +130,6 @@ const clearBackgroundAndGradient = ( attributes ) => ( {
184
130
  },
185
131
  } );
186
132
 
187
- /**
188
- * Resets the block attributes for both background color and gradient.
189
- *
190
- * @param {Object} props Current block props.
191
- * @param {Object} props.attributes Block attributes.
192
- * @param {Function} props.setAttributes Block's setAttributes prop used to apply reset.
193
- */
194
- const resetBackgroundAndGradient = ( { attributes, setAttributes } ) => {
195
- setAttributes( clearBackgroundAndGradient( attributes ) );
196
- };
197
-
198
133
  /**
199
134
  * Filters registered block settings, extending attributes to include
200
135
  * `backgroundColor` and `textColor` attribute.
@@ -496,12 +431,16 @@ export function ColorEdit( props ) {
496
431
 
497
432
  const newStyle = cleanEmptyObject(
498
433
  immutableSet(
499
- style,
434
+ localAttributes.current?.style,
500
435
  [ 'elements', 'link', 'color', 'text' ],
501
436
  newLinkColorValue
502
437
  )
503
438
  );
504
439
  props.setAttributes( { style: newStyle } );
440
+ localAttributes.current = {
441
+ ...localAttributes.current,
442
+ ...{ style: newStyle },
443
+ };
505
444
  };
506
445
 
507
446
  const enableContrastChecking =
@@ -529,8 +468,6 @@ export function ColorEdit( props ) {
529
468
  style?.color?.text
530
469
  ).color,
531
470
  isShownByDefault: defaultColorControls?.text,
532
- hasValue: () => hasColor( 'text' )( props ),
533
- onDeselect: () => resetTextColor( props ),
534
471
  resetAllFilter: resetAllTextFilter,
535
472
  },
536
473
  ]
@@ -553,10 +490,6 @@ export function ColorEdit( props ) {
553
490
  : undefined,
554
491
  isShownByDefault:
555
492
  defaultColorControls?.background,
556
- hasValue: () =>
557
- hasColor( 'background' )( props ),
558
- onDeselect: () =>
559
- resetBackgroundAndGradient( props ),
560
493
  resetAllFilter: clearBackgroundAndGradient,
561
494
  },
562
495
  ]
@@ -570,11 +503,9 @@ export function ColorEdit( props ) {
570
503
  allSolids,
571
504
  style?.elements?.link?.color?.text
572
505
  ),
573
- clearable: !! style?.elements?.link?.color
574
- ?.text,
506
+ clearable:
507
+ !! style?.elements?.link?.color?.text,
575
508
  isShownByDefault: defaultColorControls?.link,
576
- hasValue: () => hasColor( 'link' )( props ),
577
- onDeselect: () => resetLinkColor( props ),
578
509
  resetAllFilter: resetAllLinkFilter,
579
510
  },
580
511
  ]
@@ -22,64 +22,11 @@
22
22
  }
23
23
 
24
24
  /**
25
- * The following styles replicate the separated border of the
26
- * `ItemGroup` component but allows for hidden items. This is because
27
- * to maintain the order of `ToolsPanel` controls, each `ToolsPanelItem`
28
- * must at least render a placeholder which would otherwise interfere
29
- * with the `:last-child` styles.
25
+ * After converting PanelColorGradientSettings to render as a ToolsPanel
26
+ * we need to remove the top margin when wrapping inner content due to
27
+ * rendering via SlotFills.
30
28
  */
31
- .block-editor-tools-panel-color-gradient-settings__item {
32
- padding: 0;
33
-
34
- // Border styles.
35
- border-left: 1px solid rgba(0, 0, 0, 0.1);
36
- border-right: 1px solid rgba(0, 0, 0, 0.1);
37
- border-bottom: 1px solid rgba(0, 0, 0, 0.1);
38
-
39
- &.first {
40
- border-top-left-radius: 2px;
41
- border-top-right-radius: 2px;
42
- border-top: 1px solid rgba(0, 0, 0, 0.1);
43
- }
44
-
45
- &.last {
46
- border-bottom-left-radius: 2px;
47
- border-bottom-right-radius: 2px;
48
- }
49
-
50
- > div,
51
- > div > button {
52
- border-radius: inherit;
53
- }
54
- }
55
-
56
- .block-editor-panel-color-gradient-settings__color-indicator {
57
- // Show a diagonal line (crossed out) for empty swatches.
58
- background: linear-gradient(-45deg, transparent 48%, $gray-300 48%, $gray-300 52%, transparent 52%);
59
- }
60
-
61
- /**
62
- * The following few styles fix the layout and spacing for the due to the
63
- * introduced wrapper element by the `Item` component.
64
- */
65
- .block-editor-tools-panel-color-dropdown {
66
- display: block;
67
- padding: 0;
68
-
69
- > button {
70
- height: 46px;
71
-
72
- &.is-open {
73
- background: $gray-100;
74
- color: var(--wp-admin-theme-color);
75
- }
76
- }
77
- }
78
-
79
- .color-block-support-panel__item-group {
80
- > div {
81
- grid-column: span 2;
82
- border-radius: inherit;
83
- }
29
+ .block-editor-tools-panel-color-gradient-settings__item.first {
30
+ margin-top: 0;
84
31
  }
85
32
  }
@@ -153,7 +153,7 @@ const useIsDimensionsDisabled = ( props = {} ) => {
153
153
  };
154
154
 
155
155
  /**
156
- * Custom hook to retrieve which padding/margin is supported
156
+ * Custom hook to retrieve which padding/margin/blockGap is supported
157
157
  * e.g. top, right, bottom or left.
158
158
  *
159
159
  * Sides are opted into by default. It is only if a specific side is set to
@@ -162,7 +162,7 @@ const useIsDimensionsDisabled = ( props = {} ) => {
162
162
  * @param {string} blockName Block name.
163
163
  * @param {string} feature The feature custom sides relate to e.g. padding or margins.
164
164
  *
165
- * @return {Object} Sides supporting custom margin.
165
+ * @return {?string[]} Strings representing the custom sides available.
166
166
  */
167
167
  export function useCustomSides( blockName, feature ) {
168
168
  const support = getBlockSupport( blockName, SPACING_SUPPORT_KEY );
@@ -172,7 +172,15 @@ export function useCustomSides( blockName, feature ) {
172
172
  return;
173
173
  }
174
174
 
175
- return support[ feature ];
175
+ // Return if the setting is an array of sides (e.g. `[ 'top', 'bottom' ]`).
176
+ if ( Array.isArray( support[ feature ] ) ) {
177
+ return support[ feature ];
178
+ }
179
+
180
+ // Finally, attempt to return `.sides` if the setting is an object.
181
+ if ( support[ feature ]?.sides ) {
182
+ return support[ feature ].sides;
183
+ }
176
184
  }
177
185
 
178
186
  /**
@@ -111,8 +111,10 @@ export function FontFamilyEdit( {
111
111
  } ) {
112
112
  const fontFamilies = useSetting( 'typography.fontFamilies' );
113
113
 
114
- const value = find( fontFamilies, ( { slug } ) => fontFamily === slug )
115
- ?.fontFamily;
114
+ const value = find(
115
+ fontFamilies,
116
+ ( { slug } ) => fontFamily === slug
117
+ )?.fontFamily;
116
118
 
117
119
  function onChange( newValue ) {
118
120
  const predefinedFontFamily = find(
package/src/hooks/gap.js CHANGED
@@ -67,9 +67,8 @@ export function getGapBoxControlValueFromStyle( blockGapValue ) {
67
67
  * @return {string|null} The concatenated gap value (row and column).
68
68
  */
69
69
  export function getGapCSSValue( blockGapValue, defaultValue = '0' ) {
70
- const blockGapBoxControlValue = getGapBoxControlValueFromStyle(
71
- blockGapValue
72
- );
70
+ const blockGapBoxControlValue =
71
+ getGapBoxControlValueFromStyle( blockGapValue );
73
72
  if ( ! blockGapBoxControlValue ) {
74
73
  return null;
75
74
  }
@@ -2,7 +2,7 @@
2
2
  * External dependencies
3
3
  */
4
4
  import classnames from 'classnames';
5
- import { has } from 'lodash';
5
+ import { has, kebabCase } from 'lodash';
6
6
 
7
7
  /**
8
8
  * WordPress dependencies
@@ -32,6 +32,49 @@ import { getLayoutType, getLayoutTypes } from '../layouts';
32
32
 
33
33
  const layoutBlockSupportKey = '__experimentalLayout';
34
34
 
35
+ /**
36
+ * Generates the utility classnames for the given blocks layout attributes.
37
+ * This method was primarily added to reintroduce classnames that were removed
38
+ * in the 5.9 release (https://github.com/WordPress/gutenberg/issues/38719), rather
39
+ * than providing an extensive list of all possible layout classes. The plan is to
40
+ * have the style engine generate a more extensive list of utility classnames which
41
+ * will then replace this method.
42
+ *
43
+ * @param { Array } attributes Array of block attributes.
44
+ *
45
+ * @return { Array } Array of CSS classname strings.
46
+ */
47
+ function getLayoutClasses( attributes ) {
48
+ const layoutClassnames = [];
49
+
50
+ if ( ! attributes.layout ) {
51
+ return layoutClassnames;
52
+ }
53
+
54
+ if ( attributes?.layout?.orientation ) {
55
+ layoutClassnames.push(
56
+ `is-${ kebabCase( attributes.layout.orientation ) }`
57
+ );
58
+ }
59
+
60
+ if ( attributes?.layout?.justifyContent ) {
61
+ layoutClassnames.push(
62
+ `is-content-justification-${ kebabCase(
63
+ attributes.layout.justifyContent
64
+ ) }`
65
+ );
66
+ }
67
+
68
+ if (
69
+ attributes?.layout?.flexWrap &&
70
+ attributes.layout.flexWrap === 'nowrap'
71
+ ) {
72
+ layoutClassnames.push( 'is-nowrap' );
73
+ }
74
+
75
+ return layoutClassnames;
76
+ }
77
+
35
78
  function LayoutPanel( { setAttributes, attributes, name: blockName } ) {
36
79
  const { layout } = attributes;
37
80
  const defaultThemeLayout = useSetting( 'layout' );
@@ -212,9 +255,16 @@ export const withLayoutStyles = createHigherOrderComponent(
212
255
  const usedLayout = layout?.inherit
213
256
  ? defaultThemeLayout
214
257
  : layout || defaultBlockLayout || {};
215
- const className = classnames( props?.className, {
216
- [ `wp-container-${ id }` ]: shouldRenderLayoutStyles,
217
- } );
258
+ const layoutClasses = shouldRenderLayoutStyles
259
+ ? getLayoutClasses( attributes )
260
+ : null;
261
+ const className = classnames(
262
+ props?.className,
263
+ {
264
+ [ `wp-container-${ id }` ]: shouldRenderLayoutStyles,
265
+ },
266
+ layoutClasses
267
+ );
218
268
 
219
269
  return (
220
270
  <>