@wordpress/block-editor 10.3.0 → 10.5.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 (460) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +0 -1
  3. package/build/components/alignment-control/ui.js +1 -1
  4. package/build/components/alignment-control/ui.js.map +1 -1
  5. package/build/components/block-alignment-control/constants.js +1 -1
  6. package/build/components/block-alignment-control/constants.js.map +1 -1
  7. package/build/components/block-alignment-matrix-control/index.js +1 -1
  8. package/build/components/block-alignment-matrix-control/index.js.map +1 -1
  9. package/build/components/block-compare/index.js +1 -3
  10. package/build/components/block-compare/index.js.map +1 -1
  11. package/build/components/block-edit/index.js +4 -2
  12. package/build/components/block-edit/index.js.map +1 -1
  13. package/build/components/block-list/block.js +3 -1
  14. package/build/components/block-list/block.js.map +1 -1
  15. package/build/components/block-lock/menu-item.js +1 -1
  16. package/build/components/block-lock/menu-item.js.map +1 -1
  17. package/build/components/block-lock/modal.js +16 -9
  18. package/build/components/block-lock/modal.js.map +1 -1
  19. package/build/components/block-popover/inbetween.js +2 -1
  20. package/build/components/block-popover/inbetween.js.map +1 -1
  21. package/build/components/block-popover/index.js +2 -1
  22. package/build/components/block-popover/index.js.map +1 -1
  23. package/build/components/block-preview/index.js +2 -4
  24. package/build/components/block-preview/index.js.map +1 -1
  25. package/build/components/block-settings-menu/block-settings-dropdown.js +2 -8
  26. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  27. package/build/components/block-styles/utils.js +3 -3
  28. package/build/components/block-styles/utils.js.map +1 -1
  29. package/build/components/block-switcher/index.js +21 -12
  30. package/build/components/block-switcher/index.js.map +1 -1
  31. package/build/components/block-switcher/preview-block-popover.js +1 -1
  32. package/build/components/block-switcher/preview-block-popover.js.map +1 -1
  33. package/build/components/block-tools/insertion-point.js +12 -2
  34. package/build/components/block-tools/insertion-point.js.map +1 -1
  35. package/build/components/block-tools/selected-block-popover.js +27 -4
  36. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  37. package/build/components/block-vertical-alignment-control/ui.js +1 -1
  38. package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
  39. package/build/components/border-radius-control/all-input-control.js +2 -1
  40. package/build/components/border-radius-control/all-input-control.js.map +1 -1
  41. package/build/components/border-radius-control/index.js +2 -1
  42. package/build/components/border-radius-control/index.js.map +1 -1
  43. package/build/components/border-radius-control/input-controls.js +2 -1
  44. package/build/components/border-radius-control/input-controls.js.map +1 -1
  45. package/build/components/colors/with-colors.js +4 -3
  46. package/build/components/colors/with-colors.js.map +1 -1
  47. package/build/components/duotone-control/index.js +1 -1
  48. package/build/components/duotone-control/index.js.map +1 -1
  49. package/build/components/font-sizes/fluid-utils.js +24 -40
  50. package/build/components/font-sizes/fluid-utils.js.map +1 -1
  51. package/build/components/font-sizes/with-font-sizes.js +8 -6
  52. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  53. package/build/components/iframe/index.js +1 -1
  54. package/build/components/iframe/index.js.map +1 -1
  55. package/build/components/image-editor/constants.js +1 -1
  56. package/build/components/image-editor/constants.js.map +1 -1
  57. package/build/components/index.js +9 -0
  58. package/build/components/index.js.map +1 -1
  59. package/build/components/inner-blocks/index.js +10 -4
  60. package/build/components/inner-blocks/index.js.map +1 -1
  61. package/build/components/inserter/hooks/use-insertion-point.js +2 -7
  62. package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
  63. package/build/components/inserter/reusable-blocks-tab.js +4 -1
  64. package/build/components/inserter/reusable-blocks-tab.js.map +1 -1
  65. package/build/components/inserter/search-items.js +23 -2
  66. package/build/components/inserter/search-items.js.map +1 -1
  67. package/build/components/line-height-control/index.js +2 -1
  68. package/build/components/line-height-control/index.js.map +1 -1
  69. package/build/components/link-control/index.js +18 -34
  70. package/build/components/link-control/index.js.map +1 -1
  71. package/build/components/link-control/search-input.js +1 -1
  72. package/build/components/link-control/search-input.js.map +1 -1
  73. package/build/components/link-control/use-internal-input-value.js +26 -0
  74. package/build/components/link-control/use-internal-input-value.js.map +1 -0
  75. package/build/components/list-view/block.js +5 -3
  76. package/build/components/list-view/block.js.map +1 -1
  77. package/build/components/list-view/branch.js +9 -3
  78. package/build/components/list-view/branch.js.map +1 -1
  79. package/build/components/list-view/drop-indicator.js +2 -1
  80. package/build/components/list-view/drop-indicator.js.map +1 -1
  81. package/build/components/media-replace-flow/index.js +1 -1
  82. package/build/components/media-replace-flow/index.js.map +1 -1
  83. package/build/components/off-canvas-editor/block-contents.js +100 -0
  84. package/build/components/off-canvas-editor/block-contents.js.map +1 -0
  85. package/build/components/off-canvas-editor/block-select-button.js +119 -0
  86. package/build/components/off-canvas-editor/block-select-button.js.map +1 -0
  87. package/build/components/off-canvas-editor/block.js +292 -0
  88. package/build/components/off-canvas-editor/block.js.map +1 -0
  89. package/build/components/off-canvas-editor/branch.js +181 -0
  90. package/build/components/off-canvas-editor/branch.js.map +1 -0
  91. package/build/components/off-canvas-editor/context.js +19 -0
  92. package/build/components/off-canvas-editor/context.js.map +1 -0
  93. package/build/components/off-canvas-editor/drop-indicator.js +118 -0
  94. package/build/components/off-canvas-editor/drop-indicator.js.map +1 -0
  95. package/build/components/off-canvas-editor/expander.js +41 -0
  96. package/build/components/off-canvas-editor/expander.js.map +1 -0
  97. package/build/components/off-canvas-editor/index.js +204 -0
  98. package/build/components/off-canvas-editor/index.js.map +1 -0
  99. package/build/components/off-canvas-editor/leaf.js +60 -0
  100. package/build/components/off-canvas-editor/leaf.js.map +1 -0
  101. package/build/components/off-canvas-editor/use-block-selection.js +139 -0
  102. package/build/components/off-canvas-editor/use-block-selection.js.map +1 -0
  103. package/build/components/off-canvas-editor/use-list-view-client-ids.js +33 -0
  104. package/build/components/off-canvas-editor/use-list-view-client-ids.js.map +1 -0
  105. package/build/components/off-canvas-editor/use-list-view-drop-zone.js +235 -0
  106. package/build/components/off-canvas-editor/use-list-view-drop-zone.js.map +1 -0
  107. package/build/components/off-canvas-editor/use-list-view-expand-selected-item.js +60 -0
  108. package/build/components/off-canvas-editor/use-list-view-expand-selected-item.js.map +1 -0
  109. package/build/components/off-canvas-editor/utils.js +60 -0
  110. package/build/components/off-canvas-editor/utils.js.map +1 -0
  111. package/build/components/rich-text/format-toolbar/index.js +1 -1
  112. package/build/components/rich-text/format-toolbar/index.js.map +1 -1
  113. package/build/components/rich-text/format-toolbar-container.js +1 -1
  114. package/build/components/rich-text/format-toolbar-container.js.map +1 -1
  115. package/build/components/rich-text/use-paste-handler.js +1 -1
  116. package/build/components/rich-text/use-paste-handler.js.map +1 -1
  117. package/build/components/spacing-sizes-control/all-input-control.js +6 -2
  118. package/build/components/spacing-sizes-control/all-input-control.js.map +1 -1
  119. package/build/components/spacing-sizes-control/axial-input-controls.js +6 -2
  120. package/build/components/spacing-sizes-control/axial-input-controls.js.map +1 -1
  121. package/build/components/spacing-sizes-control/index.js +6 -2
  122. package/build/components/spacing-sizes-control/index.js.map +1 -1
  123. package/build/components/spacing-sizes-control/input-controls.js +6 -2
  124. package/build/components/spacing-sizes-control/input-controls.js.map +1 -1
  125. package/build/components/spacing-sizes-control/spacing-input-control.js +12 -5
  126. package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  127. package/build/components/url-input/index.js +1 -1
  128. package/build/components/url-input/index.js.map +1 -1
  129. package/build/components/url-popover/index.js +31 -2
  130. package/build/components/url-popover/index.js.map +1 -1
  131. package/build/components/use-setting/index.js +1 -1
  132. package/build/components/use-setting/index.js.map +1 -1
  133. package/build/hooks/border.js +1 -0
  134. package/build/hooks/border.js.map +1 -1
  135. package/build/hooks/color-panel.js +17 -1
  136. package/build/hooks/color-panel.js.map +1 -1
  137. package/build/hooks/color.js +1 -1
  138. package/build/hooks/color.js.map +1 -1
  139. package/build/hooks/content-lock-ui.js +13 -6
  140. package/build/hooks/content-lock-ui.js.map +1 -1
  141. package/build/hooks/dimensions.js +72 -13
  142. package/build/hooks/dimensions.js.map +1 -1
  143. package/build/hooks/font-size.js +1 -0
  144. package/build/hooks/font-size.js.map +1 -1
  145. package/build/hooks/layout.js +5 -4
  146. package/build/hooks/layout.js.map +1 -1
  147. package/build/hooks/margin.js +26 -18
  148. package/build/hooks/margin.js.map +1 -1
  149. package/build/hooks/min-height.js +145 -0
  150. package/build/hooks/min-height.js.map +1 -0
  151. package/build/hooks/padding.js +22 -13
  152. package/build/hooks/padding.js.map +1 -1
  153. package/build/hooks/style.js +3 -2
  154. package/build/hooks/style.js.map +1 -1
  155. package/build/hooks/utils.js +7 -6
  156. package/build/hooks/utils.js.map +1 -1
  157. package/build/layouts/constrained.js +0 -1
  158. package/build/layouts/constrained.js.map +1 -1
  159. package/build/layouts/flex.js +23 -22
  160. package/build/layouts/flex.js.map +1 -1
  161. package/build/store/actions.js +30 -0
  162. package/build/store/actions.js.map +1 -1
  163. package/build/store/array.js +1 -7
  164. package/build/store/array.js.map +1 -1
  165. package/build/store/reducer.js +46 -14
  166. package/build/store/reducer.js.map +1 -1
  167. package/build/store/selectors.js +62 -31
  168. package/build/store/selectors.js.map +1 -1
  169. package/build-module/components/alignment-control/ui.js +1 -1
  170. package/build-module/components/alignment-control/ui.js.map +1 -1
  171. package/build-module/components/block-alignment-control/constants.js +1 -1
  172. package/build-module/components/block-alignment-control/constants.js.map +1 -1
  173. package/build-module/components/block-alignment-matrix-control/index.js +1 -1
  174. package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
  175. package/build-module/components/block-compare/index.js +2 -3
  176. package/build-module/components/block-compare/index.js.map +1 -1
  177. package/build-module/components/block-edit/index.js +4 -2
  178. package/build-module/components/block-edit/index.js.map +1 -1
  179. package/build-module/components/block-list/block.js +3 -1
  180. package/build-module/components/block-list/block.js.map +1 -1
  181. package/build-module/components/block-lock/menu-item.js +2 -2
  182. package/build-module/components/block-lock/menu-item.js.map +1 -1
  183. package/build-module/components/block-lock/modal.js +17 -10
  184. package/build-module/components/block-lock/modal.js.map +1 -1
  185. package/build-module/components/block-popover/inbetween.js +2 -1
  186. package/build-module/components/block-popover/inbetween.js.map +1 -1
  187. package/build-module/components/block-popover/index.js +2 -1
  188. package/build-module/components/block-popover/index.js.map +1 -1
  189. package/build-module/components/block-preview/index.js +2 -3
  190. package/build-module/components/block-preview/index.js.map +1 -1
  191. package/build-module/components/block-settings-menu/block-settings-dropdown.js +2 -7
  192. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  193. package/build-module/components/block-styles/utils.js +3 -3
  194. package/build-module/components/block-styles/utils.js.map +1 -1
  195. package/build-module/components/block-switcher/index.js +21 -11
  196. package/build-module/components/block-switcher/index.js.map +1 -1
  197. package/build-module/components/block-switcher/preview-block-popover.js +1 -1
  198. package/build-module/components/block-switcher/preview-block-popover.js.map +1 -1
  199. package/build-module/components/block-tools/insertion-point.js +12 -2
  200. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  201. package/build-module/components/block-tools/selected-block-popover.js +27 -5
  202. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  203. package/build-module/components/block-vertical-alignment-control/ui.js +1 -1
  204. package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
  205. package/build-module/components/border-radius-control/all-input-control.js +2 -1
  206. package/build-module/components/border-radius-control/all-input-control.js.map +1 -1
  207. package/build-module/components/border-radius-control/index.js +2 -1
  208. package/build-module/components/border-radius-control/index.js.map +1 -1
  209. package/build-module/components/border-radius-control/input-controls.js +2 -1
  210. package/build-module/components/border-radius-control/input-controls.js.map +1 -1
  211. package/build-module/components/colors/with-colors.js +5 -4
  212. package/build-module/components/colors/with-colors.js.map +1 -1
  213. package/build-module/components/duotone-control/index.js +1 -1
  214. package/build-module/components/duotone-control/index.js.map +1 -1
  215. package/build-module/components/font-sizes/fluid-utils.js +24 -40
  216. package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
  217. package/build-module/components/font-sizes/with-font-sizes.js +9 -7
  218. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  219. package/build-module/components/iframe/index.js +1 -1
  220. package/build-module/components/iframe/index.js.map +1 -1
  221. package/build-module/components/image-editor/constants.js +1 -1
  222. package/build-module/components/image-editor/constants.js.map +1 -1
  223. package/build-module/components/index.js +1 -0
  224. package/build-module/components/index.js.map +1 -1
  225. package/build-module/components/inner-blocks/index.js +10 -4
  226. package/build-module/components/inner-blocks/index.js.map +1 -1
  227. package/build-module/components/inserter/hooks/use-insertion-point.js +2 -6
  228. package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
  229. package/build-module/components/inserter/reusable-blocks-tab.js +3 -1
  230. package/build-module/components/inserter/reusable-blocks-tab.js.map +1 -1
  231. package/build-module/components/inserter/search-items.js +23 -3
  232. package/build-module/components/inserter/search-items.js.map +1 -1
  233. package/build-module/components/line-height-control/index.js +2 -1
  234. package/build-module/components/line-height-control/index.js.map +1 -1
  235. package/build-module/components/link-control/index.js +17 -34
  236. package/build-module/components/link-control/index.js.map +1 -1
  237. package/build-module/components/link-control/search-input.js +1 -1
  238. package/build-module/components/link-control/search-input.js.map +1 -1
  239. package/build-module/components/link-control/use-internal-input-value.js +18 -0
  240. package/build-module/components/link-control/use-internal-input-value.js.map +1 -0
  241. package/build-module/components/list-view/block.js +5 -3
  242. package/build-module/components/list-view/block.js.map +1 -1
  243. package/build-module/components/list-view/branch.js +9 -3
  244. package/build-module/components/list-view/branch.js.map +1 -1
  245. package/build-module/components/list-view/drop-indicator.js +2 -1
  246. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  247. package/build-module/components/media-replace-flow/index.js +1 -1
  248. package/build-module/components/media-replace-flow/index.js.map +1 -1
  249. package/build-module/components/off-canvas-editor/block-contents.js +85 -0
  250. package/build-module/components/off-canvas-editor/block-contents.js.map +1 -0
  251. package/build-module/components/off-canvas-editor/block-select-button.js +101 -0
  252. package/build-module/components/off-canvas-editor/block-select-button.js.map +1 -0
  253. package/build-module/components/off-canvas-editor/block.js +268 -0
  254. package/build-module/components/off-canvas-editor/block.js.map +1 -0
  255. package/build-module/components/off-canvas-editor/branch.js +165 -0
  256. package/build-module/components/off-canvas-editor/branch.js.map +1 -0
  257. package/build-module/components/off-canvas-editor/context.js +7 -0
  258. package/build-module/components/off-canvas-editor/context.js.map +1 -0
  259. package/build-module/components/off-canvas-editor/drop-indicator.js +111 -0
  260. package/build-module/components/off-canvas-editor/drop-indicator.js.map +1 -0
  261. package/build-module/components/off-canvas-editor/expander.js +32 -0
  262. package/build-module/components/off-canvas-editor/expander.js.map +1 -0
  263. package/build-module/components/off-canvas-editor/index.js +181 -0
  264. package/build-module/components/off-canvas-editor/index.js.map +1 -0
  265. package/build-module/components/off-canvas-editor/leaf.js +45 -0
  266. package/build-module/components/off-canvas-editor/leaf.js.map +1 -0
  267. package/build-module/components/off-canvas-editor/use-block-selection.js +124 -0
  268. package/build-module/components/off-canvas-editor/use-block-selection.js.map +1 -0
  269. package/build-module/components/off-canvas-editor/use-list-view-client-ids.js +24 -0
  270. package/build-module/components/off-canvas-editor/use-list-view-client-ids.js.map +1 -0
  271. package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js +220 -0
  272. package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js.map +1 -0
  273. package/build-module/components/off-canvas-editor/use-list-view-expand-selected-item.js +50 -0
  274. package/build-module/components/off-canvas-editor/use-list-view-expand-selected-item.js.map +1 -0
  275. package/build-module/components/off-canvas-editor/utils.js +44 -0
  276. package/build-module/components/off-canvas-editor/utils.js.map +1 -0
  277. package/build-module/components/rich-text/format-toolbar/index.js +1 -1
  278. package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
  279. package/build-module/components/rich-text/format-toolbar-container.js +1 -1
  280. package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
  281. package/build-module/components/rich-text/use-paste-handler.js +1 -1
  282. package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
  283. package/build-module/components/spacing-sizes-control/all-input-control.js +6 -2
  284. package/build-module/components/spacing-sizes-control/all-input-control.js.map +1 -1
  285. package/build-module/components/spacing-sizes-control/axial-input-controls.js +6 -2
  286. package/build-module/components/spacing-sizes-control/axial-input-controls.js.map +1 -1
  287. package/build-module/components/spacing-sizes-control/index.js +6 -2
  288. package/build-module/components/spacing-sizes-control/index.js.map +1 -1
  289. package/build-module/components/spacing-sizes-control/input-controls.js +6 -2
  290. package/build-module/components/spacing-sizes-control/input-controls.js.map +1 -1
  291. package/build-module/components/spacing-sizes-control/spacing-input-control.js +12 -5
  292. package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  293. package/build-module/components/url-input/index.js +1 -1
  294. package/build-module/components/url-input/index.js.map +1 -1
  295. package/build-module/components/url-popover/index.js +30 -3
  296. package/build-module/components/url-popover/index.js.map +1 -1
  297. package/build-module/components/use-setting/index.js +1 -1
  298. package/build-module/components/use-setting/index.js.map +1 -1
  299. package/build-module/hooks/border.js +1 -0
  300. package/build-module/hooks/border.js.map +1 -1
  301. package/build-module/hooks/color-panel.js +17 -1
  302. package/build-module/hooks/color-panel.js.map +1 -1
  303. package/build-module/hooks/color.js +1 -1
  304. package/build-module/hooks/color.js.map +1 -1
  305. package/build-module/hooks/content-lock-ui.js +15 -8
  306. package/build-module/hooks/content-lock-ui.js.map +1 -1
  307. package/build-module/hooks/dimensions.js +67 -12
  308. package/build-module/hooks/dimensions.js.map +1 -1
  309. package/build-module/hooks/font-size.js +1 -0
  310. package/build-module/hooks/font-size.js.map +1 -1
  311. package/build-module/hooks/layout.js +6 -5
  312. package/build-module/hooks/layout.js.map +1 -1
  313. package/build-module/hooks/margin.js +27 -19
  314. package/build-module/hooks/margin.js.map +1 -1
  315. package/build-module/hooks/min-height.js +122 -0
  316. package/build-module/hooks/min-height.js.map +1 -0
  317. package/build-module/hooks/padding.js +23 -14
  318. package/build-module/hooks/padding.js.map +1 -1
  319. package/build-module/hooks/style.js +4 -3
  320. package/build-module/hooks/style.js.map +1 -1
  321. package/build-module/hooks/utils.js +7 -7
  322. package/build-module/hooks/utils.js.map +1 -1
  323. package/build-module/layouts/constrained.js +0 -1
  324. package/build-module/layouts/constrained.js.map +1 -1
  325. package/build-module/layouts/flex.js +24 -23
  326. package/build-module/layouts/flex.js.map +1 -1
  327. package/build-module/store/actions.js +26 -0
  328. package/build-module/store/actions.js.map +1 -1
  329. package/build-module/store/array.js +1 -6
  330. package/build-module/store/array.js.map +1 -1
  331. package/build-module/store/reducer.js +44 -14
  332. package/build-module/store/reducer.js.map +1 -1
  333. package/build-module/store/selectors.js +59 -31
  334. package/build-module/store/selectors.js.map +1 -1
  335. package/build-style/style-rtl.css +88 -88
  336. package/build-style/style.css +84 -84
  337. package/package.json +29 -28
  338. package/src/components/alignment-control/README.md +1 -1
  339. package/src/components/alignment-control/ui.js +1 -1
  340. package/src/components/block-alignment-control/constants.js +1 -1
  341. package/src/components/block-alignment-control/test/index.native.js +4 -4
  342. package/src/components/block-alignment-matrix-control/index.js +1 -1
  343. package/src/components/block-breadcrumb/test/__snapshots__/index.js.snap +13 -11
  344. package/src/components/block-breadcrumb/test/index.js +1 -1
  345. package/src/components/block-compare/index.js +3 -2
  346. package/src/components/block-draggable/test/helpers.native.js +3 -3
  347. package/src/components/block-draggable/test/index.native.js +27 -27
  348. package/src/components/block-edit/index.js +2 -1
  349. package/src/components/block-list/block.js +2 -0
  350. package/src/components/block-list/style.scss +11 -6
  351. package/src/components/block-lock/menu-item.js +5 -2
  352. package/src/components/block-lock/modal.js +19 -36
  353. package/src/components/block-lock/style.scss +8 -17
  354. package/src/components/block-mover/stories/index.js +1 -1
  355. package/src/components/block-mover/style.scss +35 -1
  356. package/src/components/block-popover/inbetween.js +1 -0
  357. package/src/components/block-popover/index.js +1 -0
  358. package/src/components/block-popover/style.scss +1 -5
  359. package/src/components/block-preview/index.js +8 -3
  360. package/src/components/block-settings-menu/block-settings-dropdown.js +4 -7
  361. package/src/components/block-styles/utils.js +3 -3
  362. package/src/components/block-switcher/index.js +21 -11
  363. package/src/components/block-switcher/preview-block-popover.js +1 -1
  364. package/src/components/block-tools/insertion-point.js +10 -1
  365. package/src/components/block-tools/selected-block-popover.js +80 -34
  366. package/src/components/block-tools/style.scss +15 -0
  367. package/src/components/block-variation-picker/README.md +1 -1
  368. package/src/components/block-vertical-alignment-control/ui.js +1 -1
  369. package/src/components/border-radius-control/all-input-control.js +1 -0
  370. package/src/components/border-radius-control/index.js +1 -0
  371. package/src/components/border-radius-control/input-controls.js +1 -0
  372. package/src/components/border-radius-control/style.scss +15 -24
  373. package/src/components/color-palette/test/__snapshots__/control.js.snap +85 -83
  374. package/src/components/color-palette/test/control.js +1 -1
  375. package/src/components/colors/with-colors.js +13 -23
  376. package/src/components/default-block-appender/style.scss +1 -0
  377. package/src/components/duotone-control/index.js +1 -1
  378. package/src/components/font-sizes/fluid-utils.js +37 -64
  379. package/src/components/font-sizes/test/fluid-utils.js +5 -5
  380. package/src/components/font-sizes/with-font-sizes.js +15 -13
  381. package/src/components/iframe/index.js +1 -1
  382. package/src/components/image-editor/constants.js +1 -1
  383. package/src/components/index.js +1 -0
  384. package/src/components/inner-blocks/index.js +11 -4
  385. package/src/components/inner-blocks/test/index.js +4 -0
  386. package/src/components/inserter/hooks/use-insertion-point.js +3 -11
  387. package/src/components/inserter/reusable-blocks-tab.js +4 -2
  388. package/src/components/inserter/search-items.js +23 -3
  389. package/src/components/inserter/style.scss +8 -7
  390. package/src/components/inserter/test/reusable-blocks-tab.js +14 -57
  391. package/src/components/inserter/test/search-items.js +6 -0
  392. package/src/components/inserter-list-item/style.scss +2 -0
  393. package/src/components/letter-spacing-control/README.md +55 -0
  394. package/src/components/line-height-control/index.js +1 -0
  395. package/src/components/link-control/README.md +3 -3
  396. package/src/components/link-control/index.js +23 -39
  397. package/src/components/link-control/search-input.js +1 -1
  398. package/src/components/link-control/test/index.js +272 -241
  399. package/src/components/link-control/use-internal-input-value.js +22 -0
  400. package/src/components/list-view/block.js +4 -3
  401. package/src/components/list-view/branch.js +11 -6
  402. package/src/components/list-view/drop-indicator.js +1 -0
  403. package/src/components/list-view/style.scss +1 -36
  404. package/src/components/media-replace-flow/index.js +1 -1
  405. package/src/components/media-replace-flow/test/index.js +69 -51
  406. package/src/components/off-canvas-editor/README.md +5 -0
  407. package/src/components/off-canvas-editor/block-contents.js +89 -0
  408. package/src/components/off-canvas-editor/block-select-button.js +113 -0
  409. package/src/components/off-canvas-editor/block.js +335 -0
  410. package/src/components/off-canvas-editor/branch.js +210 -0
  411. package/src/components/off-canvas-editor/context.js +8 -0
  412. package/src/components/off-canvas-editor/drop-indicator.js +126 -0
  413. package/src/components/off-canvas-editor/expander.js +26 -0
  414. package/src/components/off-canvas-editor/index.js +216 -0
  415. package/src/components/off-canvas-editor/leaf.js +48 -0
  416. package/src/components/off-canvas-editor/style.scss +397 -0
  417. package/src/components/off-canvas-editor/test/utils.js +50 -0
  418. package/src/components/off-canvas-editor/use-block-selection.js +169 -0
  419. package/src/components/off-canvas-editor/use-list-view-client-ids.js +29 -0
  420. package/src/components/off-canvas-editor/use-list-view-drop-zone.js +260 -0
  421. package/src/components/off-canvas-editor/use-list-view-expand-selected-item.js +58 -0
  422. package/src/components/off-canvas-editor/utils.js +58 -0
  423. package/src/components/responsive-block-control/test/index.js +69 -92
  424. package/src/components/rich-text/format-toolbar/index.js +1 -1
  425. package/src/components/rich-text/format-toolbar-container.js +1 -1
  426. package/src/components/rich-text/use-paste-handler.js +1 -1
  427. package/src/components/spacing-sizes-control/all-input-control.js +4 -0
  428. package/src/components/spacing-sizes-control/axial-input-controls.js +4 -0
  429. package/src/components/spacing-sizes-control/index.js +4 -0
  430. package/src/components/spacing-sizes-control/input-controls.js +4 -0
  431. package/src/components/spacing-sizes-control/spacing-input-control.js +10 -1
  432. package/src/components/spacing-sizes-control/style.scss +1 -0
  433. package/src/components/url-input/index.js +1 -1
  434. package/src/components/url-popover/README.md +12 -3
  435. package/src/components/url-popover/index.js +33 -3
  436. package/src/components/use-setting/index.js +7 -1
  437. package/src/hooks/border.js +1 -0
  438. package/src/hooks/color-panel.js +13 -1
  439. package/src/hooks/color.js +2 -0
  440. package/src/hooks/content-lock-ui.js +46 -34
  441. package/src/hooks/dimensions.js +106 -19
  442. package/src/hooks/font-size.js +1 -0
  443. package/src/hooks/layout.js +8 -11
  444. package/src/hooks/margin.js +23 -17
  445. package/src/hooks/min-height.js +121 -0
  446. package/src/hooks/padding.js +23 -19
  447. package/src/hooks/style.js +10 -2
  448. package/src/hooks/test/align.js +96 -72
  449. package/src/hooks/test/style.js +4 -0
  450. package/src/hooks/test/use-typography-props.js +1 -1
  451. package/src/hooks/utils.js +5 -6
  452. package/src/layouts/constrained.js +0 -1
  453. package/src/layouts/flex.js +44 -39
  454. package/src/store/actions.js +26 -0
  455. package/src/store/array.js +1 -6
  456. package/src/store/reducer.js +50 -40
  457. package/src/store/selectors.js +43 -29
  458. package/src/store/test/actions.js +18 -0
  459. package/src/store/test/reducer.js +40 -0
  460. package/src/store/test/selectors.js +20 -1
@@ -29,10 +29,7 @@ import {
29
29
  import { cleanEmptyObject } from './utils';
30
30
  import BlockPopover from '../components/block-popover';
31
31
  import SpacingSizesControl from '../components/spacing-sizes-control';
32
- import {
33
- getSpacingPresetCssVar,
34
- isValueSpacingPreset,
35
- } from '../components/spacing-sizes-control/utils';
32
+ import { getSpacingPresetCssVar } from '../components/spacing-sizes-control/utils';
36
33
  /**
37
34
  * Determines if there is padding support.
38
35
  *
@@ -103,6 +100,8 @@ export function PaddingEdit( props ) {
103
100
  name: blockName,
104
101
  attributes: { style },
105
102
  setAttributes,
103
+ onMouseOver,
104
+ onMouseOut,
106
105
  } = props;
107
106
 
108
107
  const spacingSizes = useSetting( 'spacing.spacingSizes' );
@@ -150,6 +149,8 @@ export function PaddingEdit( props ) {
150
149
  units={ units }
151
150
  allowReset={ false }
152
151
  splitOnAxis={ splitOnAxis }
152
+ onMouseOver={ onMouseOver }
153
+ onMouseOut={ onMouseOut }
153
154
  />
154
155
  ) }
155
156
  { spacingSizes?.length > 0 && (
@@ -161,6 +162,8 @@ export function PaddingEdit( props ) {
161
162
  units={ units }
162
163
  allowReset={ false }
163
164
  splitOnAxis={ splitOnAxis }
165
+ onMouseOver={ onMouseOver }
166
+ onMouseOut={ onMouseOut }
164
167
  />
165
168
  ) }
166
169
  </>
@@ -169,22 +172,22 @@ export function PaddingEdit( props ) {
169
172
  } );
170
173
  }
171
174
 
172
- export function PaddingVisualizer( { clientId, attributes } ) {
175
+ export function PaddingVisualizer( { clientId, attributes, forceShow } ) {
173
176
  const padding = attributes?.style?.spacing?.padding;
174
177
  const style = useMemo( () => {
175
178
  return {
176
- borderTopWidth: isValueSpacingPreset( padding?.top )
179
+ borderTopWidth: padding?.top
177
180
  ? getSpacingPresetCssVar( padding?.top )
178
- : padding?.top,
179
- borderRightWidth: isValueSpacingPreset( padding?.right )
181
+ : 0,
182
+ borderRightWidth: padding?.right
180
183
  ? getSpacingPresetCssVar( padding?.right )
181
- : padding?.right,
182
- borderBottomWidth: isValueSpacingPreset( padding?.bottom )
184
+ : 0,
185
+ borderBottomWidth: padding?.bottom
183
186
  ? getSpacingPresetCssVar( padding?.bottom )
184
- : padding?.bottom,
185
- borderLeftWidth: isValueSpacingPreset( padding?.left )
187
+ : 0,
188
+ borderLeftWidth: padding?.left
186
189
  ? getSpacingPresetCssVar( padding?.left )
187
- : padding?.left,
190
+ : 0,
188
191
  };
189
192
  }, [ padding ] );
190
193
 
@@ -199,21 +202,22 @@ export function PaddingVisualizer( { clientId, attributes } ) {
199
202
  };
200
203
 
201
204
  useEffect( () => {
202
- if ( ! isShallowEqual( padding, valueRef.current ) ) {
205
+ if ( ! isShallowEqual( padding, valueRef.current ) && ! forceShow ) {
203
206
  setIsActive( true );
204
207
  valueRef.current = padding;
205
208
 
206
- clearTimer();
207
-
208
209
  timeoutRef.current = setTimeout( () => {
209
210
  setIsActive( false );
210
211
  }, 400 );
211
212
  }
212
213
 
213
- return () => clearTimer();
214
- }, [ padding ] );
214
+ return () => {
215
+ setIsActive( false );
216
+ clearTimer();
217
+ };
218
+ }, [ padding, forceShow ] );
215
219
 
216
- if ( ! isActive ) {
220
+ if ( ! isActive && ! forceShow ) {
217
221
  return null;
218
222
  }
219
223
 
@@ -27,7 +27,11 @@ import {
27
27
  TYPOGRAPHY_SUPPORT_KEY,
28
28
  TYPOGRAPHY_SUPPORT_KEYS,
29
29
  } from './typography';
30
- import { SPACING_SUPPORT_KEY, DimensionsPanel } from './dimensions';
30
+ import {
31
+ DIMENSIONS_SUPPORT_KEY,
32
+ SPACING_SUPPORT_KEY,
33
+ DimensionsPanel,
34
+ } from './dimensions';
31
35
  import useDisplayBlockControls from '../components/use-display-block-controls';
32
36
  import { shouldSkipSerialization } from './utils';
33
37
 
@@ -35,6 +39,7 @@ const styleSupportKeys = [
35
39
  ...TYPOGRAPHY_SUPPORT_KEYS,
36
40
  BORDER_SUPPORT_KEY,
37
41
  COLOR_SUPPORT_KEY,
42
+ DIMENSIONS_SUPPORT_KEY,
38
43
  SPACING_SUPPORT_KEY,
39
44
  ];
40
45
 
@@ -98,8 +103,11 @@ const skipSerializationPathsEdit = {
98
103
  [ `${ TYPOGRAPHY_SUPPORT_KEY }.__experimentalSkipSerialization` ]: [
99
104
  TYPOGRAPHY_SUPPORT_KEY,
100
105
  ],
106
+ [ `${ DIMENSIONS_SUPPORT_KEY }.__experimentalSkipSerialization` ]: [
107
+ DIMENSIONS_SUPPORT_KEY,
108
+ ],
101
109
  [ `${ SPACING_SUPPORT_KEY }.__experimentalSkipSerialization` ]: [
102
- 'spacing',
110
+ SPACING_SUPPORT_KEY,
103
111
  ],
104
112
  };
105
113
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import renderer, { act } from 'react-test-renderer';
4
+ import { render, screen } from '@testing-library/react';
5
5
 
6
6
  /**
7
7
  * WordPress dependencies
@@ -12,10 +12,13 @@ import {
12
12
  registerBlockType,
13
13
  unregisterBlockType,
14
14
  } from '@wordpress/blocks';
15
+ import { SlotFillProvider } from '@wordpress/components';
15
16
 
16
17
  /**
17
18
  * Internal dependencies
18
19
  */
20
+ import BlockControls from '../../components/block-controls';
21
+ import BlockEdit from '../../components/block-edit';
19
22
  import BlockEditorProvider from '../../components/provider';
20
23
  import {
21
24
  getValidAlignments,
@@ -31,6 +34,7 @@ describe( 'align', () => {
31
34
  save: noop,
32
35
  category: 'text',
33
36
  title: 'block title',
37
+ edit: ( { children } ) => <>{ children }</>,
34
38
  };
35
39
 
36
40
  afterEach( () => {
@@ -154,6 +158,12 @@ describe( 'align', () => {
154
158
  } );
155
159
 
156
160
  describe( 'withToolbarControls', () => {
161
+ const componentProps = {
162
+ name: 'core/foo',
163
+ attributes: {},
164
+ isSelected: true,
165
+ };
166
+
157
167
  it( 'should do nothing if no valid alignments', () => {
158
168
  registerBlockType( 'core/foo', blockSettings );
159
169
 
@@ -161,15 +171,21 @@ describe( 'align', () => {
161
171
  ( { wrapperProps } ) => <div { ...wrapperProps } />
162
172
  );
163
173
 
164
- const wrapper = renderer.create(
165
- <EnhancedComponent
166
- name="core/foo"
167
- attributes={ {} }
168
- isSelected
169
- />
174
+ render(
175
+ <SlotFillProvider>
176
+ <BlockEdit { ...componentProps }>
177
+ <EnhancedComponent { ...componentProps } />
178
+ </BlockEdit>
179
+ <BlockControls.Slot group="block" />
180
+ </SlotFillProvider>
170
181
  );
171
- // When there's only one child, `rendered` in the tree is an object not an array.
172
- expect( wrapper.toTree().rendered ).toBeInstanceOf( Object );
182
+
183
+ expect(
184
+ screen.queryByRole( 'button', {
185
+ name: 'Align',
186
+ expanded: false,
187
+ } )
188
+ ).not.toBeInTheDocument();
173
189
  } );
174
190
 
175
191
  it( 'should render toolbar controls if valid alignments', () => {
@@ -185,14 +201,21 @@ describe( 'align', () => {
185
201
  ( { wrapperProps } ) => <div { ...wrapperProps } />
186
202
  );
187
203
 
188
- const wrapper = renderer.create(
189
- <EnhancedComponent
190
- name="core/foo"
191
- attributes={ {} }
192
- isSelected
193
- />
204
+ render(
205
+ <SlotFillProvider>
206
+ <BlockEdit { ...componentProps }>
207
+ <EnhancedComponent { ...componentProps } />
208
+ </BlockEdit>
209
+ <BlockControls.Slot group="block" />
210
+ </SlotFillProvider>
194
211
  );
195
- expect( wrapper.toTree().rendered ).toHaveLength( 2 );
212
+
213
+ expect(
214
+ screen.getAllByRole( 'button', {
215
+ name: 'Align',
216
+ expanded: false,
217
+ } )
218
+ ).toHaveLength( 2 );
196
219
  } );
197
220
  } );
198
221
 
@@ -207,28 +230,27 @@ describe( 'align', () => {
207
230
  } );
208
231
 
209
232
  const EnhancedComponent = withDataAlign( ( { wrapperProps } ) => (
210
- <div { ...wrapperProps } />
233
+ <button { ...wrapperProps } />
211
234
  ) );
212
235
 
213
- let wrapper;
214
- act( () => {
215
- wrapper = renderer.create(
216
- <BlockEditorProvider
217
- settings={ { alignWide: true, supportsLayout: false } }
218
- value={ [] }
219
- >
220
- <EnhancedComponent
221
- attributes={ {
222
- align: 'wide',
223
- } }
224
- name="core/foo"
225
- />
226
- </BlockEditorProvider>
227
- );
228
- } );
229
- expect( wrapper.root.findByType( 'div' ).props ).toEqual( {
230
- 'data-align': 'wide',
231
- } );
236
+ render(
237
+ <BlockEditorProvider
238
+ settings={ { alignWide: true, supportsLayout: false } }
239
+ value={ [] }
240
+ >
241
+ <EnhancedComponent
242
+ attributes={ {
243
+ align: 'wide',
244
+ } }
245
+ name="core/foo"
246
+ />
247
+ </BlockEditorProvider>
248
+ );
249
+
250
+ expect( screen.getByRole( 'button' ) ).toHaveAttribute(
251
+ 'data-align',
252
+ 'wide'
253
+ );
232
254
  } );
233
255
 
234
256
  it( 'should not render wide/full wrapper props if wide controls are not enabled', () => {
@@ -241,26 +263,27 @@ describe( 'align', () => {
241
263
  } );
242
264
 
243
265
  const EnhancedComponent = withDataAlign( ( { wrapperProps } ) => (
244
- <div { ...wrapperProps } />
266
+ <button { ...wrapperProps } />
245
267
  ) );
246
268
 
247
- let wrapper;
248
- act( () => {
249
- wrapper = renderer.create(
250
- <BlockEditorProvider
251
- settings={ { alignWide: false } }
252
- value={ [] }
253
- >
254
- <EnhancedComponent
255
- name="core/foo"
256
- attributes={ {
257
- align: 'wide',
258
- } }
259
- />
260
- </BlockEditorProvider>
261
- );
262
- } );
263
- expect( wrapper.root.findByType( 'div' ).props ).toEqual( {} );
269
+ render(
270
+ <BlockEditorProvider
271
+ settings={ { alignWide: false } }
272
+ value={ [] }
273
+ >
274
+ <EnhancedComponent
275
+ name="core/foo"
276
+ attributes={ {
277
+ align: 'wide',
278
+ } }
279
+ />
280
+ </BlockEditorProvider>
281
+ );
282
+
283
+ expect( screen.getByRole( 'button' ) ).not.toHaveAttribute(
284
+ 'data-align',
285
+ 'wide'
286
+ );
264
287
  } );
265
288
 
266
289
  it( 'should not render invalid align', () => {
@@ -273,26 +296,27 @@ describe( 'align', () => {
273
296
  } );
274
297
 
275
298
  const EnhancedComponent = withDataAlign( ( { wrapperProps } ) => (
276
- <div { ...wrapperProps } />
299
+ <button { ...wrapperProps } />
277
300
  ) );
278
301
 
279
- let wrapper;
280
- act( () => {
281
- wrapper = renderer.create(
282
- <BlockEditorProvider
283
- settings={ { alignWide: true } }
284
- value={ [] }
285
- >
286
- <EnhancedComponent
287
- name="core/foo"
288
- attributes={ {
289
- align: 'wide',
290
- } }
291
- />
292
- </BlockEditorProvider>
293
- );
294
- } );
295
- expect( wrapper.root.findByType( 'div' ).props ).toEqual( {} );
302
+ render(
303
+ <BlockEditorProvider
304
+ settings={ { alignWide: true } }
305
+ value={ [] }
306
+ >
307
+ <EnhancedComponent
308
+ name="core/foo"
309
+ attributes={ {
310
+ align: 'wide',
311
+ } }
312
+ />
313
+ </BlockEditorProvider>
314
+ );
315
+
316
+ expect( screen.getByRole( 'button' ) ).not.toHaveAttribute(
317
+ 'data-align',
318
+ 'wide'
319
+ );
296
320
  } );
297
321
  } );
298
322
 
@@ -28,6 +28,9 @@ describe( 'getInlineStyles', () => {
28
28
  style: 'dotted',
29
29
  color: '#21759b',
30
30
  },
31
+ dimensions: {
32
+ minHeight: '50vh',
33
+ },
31
34
  spacing: {
32
35
  blockGap: '1em',
33
36
  padding: { top: '10px' },
@@ -44,6 +47,7 @@ describe( 'getInlineStyles', () => {
44
47
  lineHeight: 1.5,
45
48
  fontSize: 10,
46
49
  marginBottom: '15px',
50
+ minHeight: '50vh',
47
51
  paddingTop: '10px',
48
52
  } );
49
53
  } );
@@ -42,7 +42,7 @@ describe( 'getTypographyClassesAndStyles', () => {
42
42
  style: {
43
43
  letterSpacing: '22px',
44
44
  fontSize:
45
- 'clamp(1.5rem, 1.5rem + ((1vw - 0.48rem) * 2.885), 3rem)',
45
+ 'clamp(1.5rem, 1.5rem + ((1vw - 0.48rem) * 0.962), 2rem)',
46
46
  textTransform: 'uppercase',
47
47
  },
48
48
  } );
@@ -1,15 +1,13 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { pickBy, isEmpty, mapValues, get, setWith, clone } from 'lodash';
4
+ import { isEmpty, mapValues, get, setWith, clone } from 'lodash';
5
5
 
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
9
  import { getBlockSupport } from '@wordpress/blocks';
10
10
 
11
- const identity = ( x ) => x;
12
-
13
11
  /**
14
12
  * Removed falsy values from nested object.
15
13
  *
@@ -24,9 +22,10 @@ export const cleanEmptyObject = ( object ) => {
24
22
  ) {
25
23
  return object;
26
24
  }
27
- const cleanedNestedObjects = pickBy(
28
- mapValues( object, cleanEmptyObject ),
29
- identity
25
+ const cleanedNestedObjects = Object.fromEntries(
26
+ Object.entries( mapValues( object, cleanEmptyObject ) ).filter(
27
+ ( [ , value ] ) => Boolean( value )
28
+ )
30
29
  );
31
30
  return isEmpty( cleanedNestedObjects ) ? undefined : cleanedNestedObjects;
32
31
  };
@@ -116,7 +116,6 @@ export default {
116
116
  ) }
117
117
  </p>
118
118
  <ToggleGroupControl
119
- __experimentalIsBorderless
120
119
  label={ __( 'Justification' ) }
121
120
  value={ justifyContent }
122
121
  onChange={ onJustificationChange }
@@ -10,7 +10,14 @@ import {
10
10
  arrowRight,
11
11
  arrowDown,
12
12
  } from '@wordpress/icons';
13
- import { Button, ToggleControl, Flex, FlexItem } from '@wordpress/components';
13
+ import {
14
+ Button,
15
+ ToggleControl,
16
+ Flex,
17
+ FlexItem,
18
+ __experimentalToggleGroupControl as ToggleGroupControl,
19
+ __experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,
20
+ } from '@wordpress/components';
14
21
 
15
22
  /**
16
23
  * Internal dependencies
@@ -257,7 +264,7 @@ function FlexLayoutJustifyContentControl( {
257
264
  onChange={ onJustificationChange }
258
265
  popoverProps={ {
259
266
  position: 'bottom right',
260
- isAlternate: true,
267
+ variant: 'toolbar',
261
268
  } }
262
269
  />
263
270
  );
@@ -289,22 +296,23 @@ function FlexLayoutJustifyContentControl( {
289
296
  }
290
297
 
291
298
  return (
292
- <fieldset className="block-editor-hooks__flex-layout-justification-controls">
293
- <legend>{ __( 'Justification' ) }</legend>
294
- <div>
295
- { justificationOptions.map( ( { value, icon, label } ) => {
296
- return (
297
- <Button
298
- key={ value }
299
- label={ label }
300
- icon={ icon }
301
- isPressed={ justifyContent === value }
302
- onClick={ () => onJustificationChange( value ) }
303
- />
304
- );
305
- } ) }
306
- </div>
307
- </fieldset>
299
+ <ToggleGroupControl
300
+ label={ __( 'Justification' ) }
301
+ value={ justifyContent }
302
+ onChange={ onJustificationChange }
303
+ className="block-editor-hooks__flex-layout-justification-controls"
304
+ >
305
+ { justificationOptions.map( ( { value, icon, label } ) => {
306
+ return (
307
+ <ToggleGroupControlOptionIcon
308
+ key={ value }
309
+ value={ value }
310
+ icon={ icon }
311
+ label={ label }
312
+ />
313
+ );
314
+ } ) }
315
+ </ToggleGroupControl>
308
316
  );
309
317
  }
310
318
 
@@ -327,30 +335,27 @@ function FlexWrapControl( { layout, onChange } ) {
327
335
  function OrientationControl( { layout, onChange } ) {
328
336
  const { orientation = 'horizontal' } = layout;
329
337
  return (
330
- <fieldset className="block-editor-hooks__flex-layout-orientation-controls">
331
- <legend>{ __( 'Orientation' ) }</legend>
332
- <Button
333
- label={ __( 'Horizontal' ) }
338
+ <ToggleGroupControl
339
+ className="block-editor-hooks__flex-layout-orientation-controls"
340
+ label={ __( 'Orientation' ) }
341
+ value={ orientation }
342
+ onChange={ ( value ) =>
343
+ onChange( {
344
+ ...layout,
345
+ orientation: value,
346
+ } )
347
+ }
348
+ >
349
+ <ToggleGroupControlOptionIcon
334
350
  icon={ arrowRight }
335
- isPressed={ orientation === 'horizontal' }
336
- onClick={ () =>
337
- onChange( {
338
- ...layout,
339
- orientation: 'horizontal',
340
- } )
341
- }
351
+ value={ 'horizontal' }
352
+ label={ __( 'Horizontal' ) }
342
353
  />
343
- <Button
344
- label={ __( 'Vertical' ) }
354
+ <ToggleGroupControlOptionIcon
345
355
  icon={ arrowDown }
346
- isPressed={ orientation === 'vertical' }
347
- onClick={ () =>
348
- onChange( {
349
- ...layout,
350
- orientation: 'vertical',
351
- } )
352
- }
356
+ value={ 'vertical' }
357
+ label={ __( 'Vertical' ) }
353
358
  />
354
- </fieldset>
359
+ </ToggleGroupControl>
355
360
  );
356
361
  }
@@ -1263,6 +1263,28 @@ export function toggleBlockMode( clientId ) {
1263
1263
  };
1264
1264
  }
1265
1265
 
1266
+ /**
1267
+ * Returns an action object used in signalling that the block interface, eg. toolbar, outline, etc. should be hidden.
1268
+ *
1269
+ * @return {Object} Action object.
1270
+ */
1271
+ export function __experimentalHideBlockInterface() {
1272
+ return {
1273
+ type: 'HIDE_BLOCK_INTERFACE',
1274
+ };
1275
+ }
1276
+
1277
+ /**
1278
+ * Returns an action object used in signalling that the block interface, eg. toolbar, outline, etc. should be shown.
1279
+ *
1280
+ * @return {Object} Action object.
1281
+ */
1282
+ export function __experimentalShowBlockInterface() {
1283
+ return {
1284
+ type: 'SHOW_BLOCK_INTERFACE',
1285
+ };
1286
+ }
1287
+
1266
1288
  /**
1267
1289
  * Returns an action object used in signalling that the user has begun to type.
1268
1290
  *
@@ -1712,6 +1734,10 @@ export function setBlockVisibility( updates ) {
1712
1734
  /**
1713
1735
  * Action that sets whether a block is being temporaritly edited as blocks.
1714
1736
  *
1737
+ * DO-NOT-USE in production.
1738
+ * This action is created for internal/experimental only usage and may be
1739
+ * removed anytime without any warning, causing breakage on any plugin or theme invoking it.
1740
+ *
1715
1741
  * @param {?string} temporarilyEditingAsBlocks The block's clientId being temporaritly edited as blocks.
1716
1742
  */
1717
1743
  export function __unstableSetTemporarilyEditingAsBlocks(
@@ -1,8 +1,3 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { castArray } from 'lodash';
5
-
6
1
  /**
7
2
  * Insert one or multiple elements into a given position of an array.
8
3
  *
@@ -15,7 +10,7 @@ import { castArray } from 'lodash';
15
10
  export function insertAt( array, elements, index ) {
16
11
  return [
17
12
  ...array.slice( 0, index ),
18
- ...castArray( elements ),
13
+ ...( Array.isArray( elements ) ? elements : [ elements ] ),
19
14
  ...array.slice( index ),
20
15
  ];
21
16
  }