@wordpress/block-editor 12.11.1 → 12.12.2-next.f8d8eceb.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 (453) hide show
  1. package/CHANGELOG.md +14 -10
  2. package/README.md +35 -3
  3. package/build/components/block-alignment-control/use-available-alignments.js +30 -28
  4. package/build/components/block-alignment-control/use-available-alignments.js.map +1 -1
  5. package/build/components/block-controls/hook.js +4 -1
  6. package/build/components/block-controls/hook.js.map +1 -1
  7. package/build/components/block-list/block-outline.native.js +1 -1
  8. package/build/components/block-list/block-outline.native.js.map +1 -1
  9. package/build/components/block-list/block.js +2 -0
  10. package/build/components/block-list/block.js.map +1 -1
  11. package/build/components/block-list/block.native.js +4 -4
  12. package/build/components/block-list/block.native.js.map +1 -1
  13. package/build/components/block-list/layout.js +2 -3
  14. package/build/components/block-list/layout.js.map +1 -1
  15. package/build/components/block-preview/index.js +4 -1
  16. package/build/components/block-preview/index.js.map +1 -1
  17. package/build/components/block-styles/index.js +1 -2
  18. package/build/components/block-styles/index.js.map +1 -1
  19. package/build/components/block-switcher/pattern-transformations-menu.js +2 -4
  20. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  21. package/build/components/block-tools/block-contextual-toolbar.js +1 -0
  22. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  23. package/build/components/border-radius-control/index.js +3 -2
  24. package/build/components/border-radius-control/index.js.map +1 -1
  25. package/build/components/color-palette/with-color-context.js +6 -6
  26. package/build/components/color-palette/with-color-context.js.map +1 -1
  27. package/build/components/colors/with-colors.js +2 -8
  28. package/build/components/colors/with-colors.js.map +1 -1
  29. package/build/components/colors-gradients/control.js +6 -7
  30. package/build/components/colors-gradients/control.js.map +1 -1
  31. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +5 -13
  32. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  33. package/build/components/dimensions-tool/index.js +22 -22
  34. package/build/components/dimensions-tool/index.js.map +1 -1
  35. package/build/components/dimensions-tool/scale-tool.js +1 -1
  36. package/build/components/dimensions-tool/scale-tool.js.map +1 -1
  37. package/build/components/font-family/index.js +2 -3
  38. package/build/components/font-family/index.js.map +1 -1
  39. package/build/components/font-sizes/font-size-picker.js +3 -5
  40. package/build/components/font-sizes/font-size-picker.js.map +1 -1
  41. package/build/components/font-sizes/with-font-sizes.js +3 -4
  42. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  43. package/build/components/global-styles/filters-panel.js +7 -8
  44. package/build/components/global-styles/filters-panel.js.map +1 -1
  45. package/build/components/global-styles/image-settings-panel.js +2 -2
  46. package/build/components/global-styles/image-settings-panel.js.map +1 -1
  47. package/build/components/global-styles/typography-panel.js +1 -1
  48. package/build/components/global-styles/typography-panel.js.map +1 -1
  49. package/build/components/gradients/use-gradient.js +2 -5
  50. package/build/components/gradients/use-gradient.js.map +1 -1
  51. package/build/components/height-control/index.js +93 -5
  52. package/build/components/height-control/index.js.map +1 -1
  53. package/build/components/iframe/index.js +9 -1
  54. package/build/components/iframe/index.js.map +1 -1
  55. package/build/components/image-editor/aspect-ratio-dropdown.js +0 -6
  56. package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  57. package/build/components/index.js +9 -2
  58. package/build/components/index.js.map +1 -1
  59. package/build/components/index.native.js +17 -2
  60. package/build/components/index.native.js.map +1 -1
  61. package/build/components/inner-blocks/index.js +2 -2
  62. package/build/components/inner-blocks/index.js.map +1 -1
  63. package/build/components/letter-spacing-control/index.js +3 -3
  64. package/build/components/letter-spacing-control/index.js.map +1 -1
  65. package/build/components/link-control/link-preview.js +5 -2
  66. package/build/components/link-control/link-preview.js.map +1 -1
  67. package/build/components/link-control/search-item.js +11 -0
  68. package/build/components/link-control/search-item.js.map +1 -1
  69. package/build/components/link-control/search-results.js +2 -1
  70. package/build/components/link-control/search-results.js.map +1 -1
  71. package/build/components/link-control/use-internal-value.js +14 -8
  72. package/build/components/link-control/use-internal-value.js.map +1 -1
  73. package/build/components/link-control/use-search-handler.js +10 -5
  74. package/build/components/link-control/use-search-handler.js.map +1 -1
  75. package/build/components/list-view/index.js +6 -5
  76. package/build/components/list-view/index.js.map +1 -1
  77. package/build/components/media-replace-flow/index.js +2 -4
  78. package/build/components/media-replace-flow/index.js.map +1 -1
  79. package/build/components/provider/use-block-sync.js +2 -2
  80. package/build/components/provider/use-block-sync.js.map +1 -1
  81. package/build/components/rich-text/index.js +1 -1
  82. package/build/components/rich-text/index.js.map +1 -1
  83. package/build/components/rich-text/index.native.js +14 -3
  84. package/build/components/rich-text/index.native.js.map +1 -1
  85. package/build/components/rich-text/use-delete.js +1 -1
  86. package/build/components/rich-text/use-delete.js.map +1 -1
  87. package/build/components/rich-text/use-paste-handler.js +25 -22
  88. package/build/components/rich-text/use-paste-handler.js.map +1 -1
  89. package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js +6 -3
  90. package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
  91. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +91 -3
  92. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  93. package/build/components/tool-selector/index.js +1 -2
  94. package/build/components/tool-selector/index.js.map +1 -1
  95. package/build/components/unit-control/index.js +3 -3
  96. package/build/components/unit-control/index.js.map +1 -1
  97. package/build/components/use-block-commands/index.js +96 -47
  98. package/build/components/use-block-commands/index.js.map +1 -1
  99. package/build/components/use-settings/index.js +212 -0
  100. package/build/components/use-settings/index.js.map +1 -0
  101. package/build/components/writing-flow/use-arrow-nav.js +4 -0
  102. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  103. package/build/hooks/align.js +51 -35
  104. package/build/hooks/align.js.map +1 -1
  105. package/build/hooks/anchor.js +37 -32
  106. package/build/hooks/anchor.js.map +1 -1
  107. package/build/hooks/background.js +4 -4
  108. package/build/hooks/background.js.map +1 -1
  109. package/build/hooks/block-rename-ui.js +5 -5
  110. package/build/hooks/block-rename-ui.js.map +1 -1
  111. package/build/hooks/{metadata-name.js → block-renaming.js} +3 -7
  112. package/build/hooks/block-renaming.js.map +1 -0
  113. package/build/hooks/color.js +2 -4
  114. package/build/hooks/color.js.map +1 -1
  115. package/build/hooks/custom-class-name.js +28 -21
  116. package/build/hooks/custom-class-name.js.map +1 -1
  117. package/build/hooks/duotone.js +33 -8
  118. package/build/hooks/duotone.js.map +1 -1
  119. package/build/hooks/font-size.js +4 -4
  120. package/build/hooks/font-size.js.map +1 -1
  121. package/build/hooks/index.js +1 -1
  122. package/build/hooks/index.js.map +1 -1
  123. package/build/hooks/layout.js +16 -17
  124. package/build/hooks/layout.js.map +1 -1
  125. package/build/hooks/line-height.js +3 -3
  126. package/build/hooks/line-height.js.map +1 -1
  127. package/build/hooks/metadata.js +6 -27
  128. package/build/hooks/metadata.js.map +1 -1
  129. package/build/hooks/position.js +2 -3
  130. package/build/hooks/position.js.map +1 -1
  131. package/build/hooks/use-color-props.js +3 -11
  132. package/build/hooks/use-color-props.js.map +1 -1
  133. package/build/hooks/utils.js +2 -43
  134. package/build/hooks/utils.js.map +1 -1
  135. package/build/layouts/constrained.js +3 -3
  136. package/build/layouts/constrained.js.map +1 -1
  137. package/build/layouts/grid.js +25 -3
  138. package/build/layouts/grid.js.map +1 -1
  139. package/build/layouts/utils.js +1 -1
  140. package/build/layouts/utils.js.map +1 -1
  141. package/build/lock-unlock.js +1 -1
  142. package/build/lock-unlock.js.map +1 -1
  143. package/build/store/actions.js +13 -5
  144. package/build/store/actions.js.map +1 -1
  145. package/build/utils/object.js +4 -1
  146. package/build/utils/object.js.map +1 -1
  147. package/build/utils/parse-css-unit-to-px.js +20 -0
  148. package/build/utils/parse-css-unit-to-px.js.map +1 -1
  149. package/build/utils/pasting.js +1 -1
  150. package/build/utils/pasting.js.map +1 -1
  151. package/build/utils/transform-styles/index.js +19 -24
  152. package/build/utils/transform-styles/index.js.map +1 -1
  153. package/build-module/components/block-alignment-control/use-available-alignments.js +30 -28
  154. package/build-module/components/block-alignment-control/use-available-alignments.js.map +1 -1
  155. package/build-module/components/block-controls/hook.js +4 -1
  156. package/build-module/components/block-controls/hook.js.map +1 -1
  157. package/build-module/components/block-list/block-outline.native.js +1 -1
  158. package/build-module/components/block-list/block-outline.native.js.map +1 -1
  159. package/build-module/components/block-list/block.js +2 -0
  160. package/build-module/components/block-list/block.js.map +1 -1
  161. package/build-module/components/block-list/block.native.js +4 -4
  162. package/build-module/components/block-list/block.native.js.map +1 -1
  163. package/build-module/components/block-list/layout.js +2 -2
  164. package/build-module/components/block-list/layout.js.map +1 -1
  165. package/build-module/components/block-preview/index.js +4 -1
  166. package/build-module/components/block-preview/index.js.map +1 -1
  167. package/build-module/components/block-styles/index.js +1 -2
  168. package/build-module/components/block-styles/index.js.map +1 -1
  169. package/build-module/components/block-switcher/pattern-transformations-menu.js +2 -4
  170. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  171. package/build-module/components/block-tools/block-contextual-toolbar.js +1 -0
  172. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  173. package/build-module/components/border-radius-control/index.js +3 -2
  174. package/build-module/components/border-radius-control/index.js.map +1 -1
  175. package/build-module/components/color-palette/with-color-context.js +6 -5
  176. package/build-module/components/color-palette/with-color-context.js.map +1 -1
  177. package/build-module/components/colors/with-colors.js +2 -7
  178. package/build-module/components/colors/with-colors.js.map +1 -1
  179. package/build-module/components/colors-gradients/control.js +6 -7
  180. package/build-module/components/colors-gradients/control.js.map +1 -1
  181. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +5 -12
  182. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  183. package/build-module/components/dimensions-tool/index.js +22 -22
  184. package/build-module/components/dimensions-tool/index.js.map +1 -1
  185. package/build-module/components/dimensions-tool/scale-tool.js +1 -1
  186. package/build-module/components/dimensions-tool/scale-tool.js.map +1 -1
  187. package/build-module/components/font-family/index.js +2 -2
  188. package/build-module/components/font-family/index.js.map +1 -1
  189. package/build-module/components/font-sizes/font-size-picker.js +3 -4
  190. package/build-module/components/font-sizes/font-size-picker.js.map +1 -1
  191. package/build-module/components/font-sizes/with-font-sizes.js +3 -3
  192. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  193. package/build-module/components/global-styles/filters-panel.js +7 -8
  194. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  195. package/build-module/components/global-styles/image-settings-panel.js +2 -2
  196. package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
  197. package/build-module/components/global-styles/typography-panel.js +1 -1
  198. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  199. package/build-module/components/gradients/use-gradient.js +2 -4
  200. package/build-module/components/gradients/use-gradient.js.map +1 -1
  201. package/build-module/components/height-control/index.js +93 -4
  202. package/build-module/components/height-control/index.js.map +1 -1
  203. package/build-module/components/iframe/index.js +9 -1
  204. package/build-module/components/iframe/index.js.map +1 -1
  205. package/build-module/components/image-editor/aspect-ratio-dropdown.js +0 -6
  206. package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  207. package/build-module/components/index.js +1 -1
  208. package/build-module/components/index.js.map +1 -1
  209. package/build-module/components/index.native.js +2 -1
  210. package/build-module/components/index.native.js.map +1 -1
  211. package/build-module/components/inner-blocks/index.js +2 -2
  212. package/build-module/components/inner-blocks/index.js.map +1 -1
  213. package/build-module/components/letter-spacing-control/index.js +3 -2
  214. package/build-module/components/letter-spacing-control/index.js.map +1 -1
  215. package/build-module/components/link-control/link-preview.js +6 -3
  216. package/build-module/components/link-control/link-preview.js.map +1 -1
  217. package/build-module/components/link-control/search-item.js +12 -1
  218. package/build-module/components/link-control/search-item.js.map +1 -1
  219. package/build-module/components/link-control/search-results.js +2 -1
  220. package/build-module/components/link-control/search-results.js.map +1 -1
  221. package/build-module/components/link-control/use-internal-value.js +14 -9
  222. package/build-module/components/link-control/use-internal-value.js.map +1 -1
  223. package/build-module/components/link-control/use-search-handler.js +10 -5
  224. package/build-module/components/link-control/use-search-handler.js.map +1 -1
  225. package/build-module/components/list-view/index.js +7 -6
  226. package/build-module/components/list-view/index.js.map +1 -1
  227. package/build-module/components/media-replace-flow/index.js +3 -5
  228. package/build-module/components/media-replace-flow/index.js.map +1 -1
  229. package/build-module/components/provider/use-block-sync.js +2 -2
  230. package/build-module/components/provider/use-block-sync.js.map +1 -1
  231. package/build-module/components/rich-text/index.js +1 -1
  232. package/build-module/components/rich-text/index.js.map +1 -1
  233. package/build-module/components/rich-text/index.native.js +15 -4
  234. package/build-module/components/rich-text/index.native.js.map +1 -1
  235. package/build-module/components/rich-text/use-delete.js +1 -1
  236. package/build-module/components/rich-text/use-delete.js.map +1 -1
  237. package/build-module/components/rich-text/use-paste-handler.js +25 -22
  238. package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
  239. package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js +6 -2
  240. package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
  241. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +91 -2
  242. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  243. package/build-module/components/tool-selector/index.js +1 -2
  244. package/build-module/components/tool-selector/index.js.map +1 -1
  245. package/build-module/components/unit-control/index.js +3 -2
  246. package/build-module/components/unit-control/index.js.map +1 -1
  247. package/build-module/components/use-block-commands/index.js +95 -47
  248. package/build-module/components/use-block-commands/index.js.map +1 -1
  249. package/build-module/components/use-settings/index.js +203 -0
  250. package/build-module/components/use-settings/index.js.map +1 -0
  251. package/build-module/components/writing-flow/use-arrow-nav.js +4 -0
  252. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  253. package/build-module/hooks/align.js +51 -35
  254. package/build-module/hooks/align.js.map +1 -1
  255. package/build-module/hooks/anchor.js +37 -32
  256. package/build-module/hooks/anchor.js.map +1 -1
  257. package/build-module/hooks/background.js +4 -4
  258. package/build-module/hooks/background.js.map +1 -1
  259. package/build-module/hooks/block-rename-ui.js +6 -6
  260. package/build-module/hooks/block-rename-ui.js.map +1 -1
  261. package/build-module/hooks/{metadata-name.js → block-renaming.js} +3 -6
  262. package/build-module/hooks/block-renaming.js.map +1 -0
  263. package/build-module/hooks/color.js +2 -4
  264. package/build-module/hooks/color.js.map +1 -1
  265. package/build-module/hooks/custom-class-name.js +28 -21
  266. package/build-module/hooks/custom-class-name.js.map +1 -1
  267. package/build-module/hooks/duotone.js +34 -9
  268. package/build-module/hooks/duotone.js.map +1 -1
  269. package/build-module/hooks/font-size.js +4 -4
  270. package/build-module/hooks/font-size.js.map +1 -1
  271. package/build-module/hooks/index.js +1 -1
  272. package/build-module/hooks/index.js.map +1 -1
  273. package/build-module/hooks/layout.js +16 -17
  274. package/build-module/hooks/layout.js.map +1 -1
  275. package/build-module/hooks/line-height.js +3 -3
  276. package/build-module/hooks/line-height.js.map +1 -1
  277. package/build-module/hooks/metadata.js +6 -25
  278. package/build-module/hooks/metadata.js.map +1 -1
  279. package/build-module/hooks/position.js +2 -3
  280. package/build-module/hooks/position.js.map +1 -1
  281. package/build-module/hooks/use-color-props.js +3 -11
  282. package/build-module/hooks/use-color-props.js.map +1 -1
  283. package/build-module/hooks/utils.js +3 -44
  284. package/build-module/hooks/utils.js.map +1 -1
  285. package/build-module/layouts/constrained.js +3 -2
  286. package/build-module/layouts/constrained.js.map +1 -1
  287. package/build-module/layouts/grid.js +25 -3
  288. package/build-module/layouts/grid.js.map +1 -1
  289. package/build-module/layouts/utils.js +1 -1
  290. package/build-module/layouts/utils.js.map +1 -1
  291. package/build-module/lock-unlock.js +1 -1
  292. package/build-module/lock-unlock.js.map +1 -1
  293. package/build-module/store/actions.js +14 -6
  294. package/build-module/store/actions.js.map +1 -1
  295. package/build-module/utils/object.js +3 -1
  296. package/build-module/utils/object.js.map +1 -1
  297. package/build-module/utils/parse-css-unit-to-px.js +20 -0
  298. package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
  299. package/build-module/utils/pasting.js +1 -1
  300. package/build-module/utils/pasting.js.map +1 -1
  301. package/build-module/utils/transform-styles/index.js +20 -24
  302. package/build-module/utils/transform-styles/index.js.map +1 -1
  303. package/build-style/style-rtl.css +24 -12
  304. package/build-style/style.css +24 -12
  305. package/package.json +36 -34
  306. package/src/components/block-alignment-control/use-available-alignments.js +49 -34
  307. package/src/components/block-controls/hook.js +6 -3
  308. package/src/components/block-list/block-outline.native.js +1 -1
  309. package/src/components/block-list/block.js +2 -0
  310. package/src/components/block-list/block.native.js +4 -4
  311. package/src/components/block-list/layout.js +2 -2
  312. package/src/components/block-preview/index.js +7 -1
  313. package/src/components/block-styles/index.js +1 -4
  314. package/src/components/block-styles/style.scss +1 -1
  315. package/src/components/block-switcher/pattern-transformations-menu.js +1 -4
  316. package/src/components/block-switcher/style.scss +6 -0
  317. package/src/components/block-tools/block-contextual-toolbar.js +1 -0
  318. package/src/components/block-tools/style.scss +0 -1
  319. package/src/components/border-radius-control/index.js +3 -2
  320. package/src/components/color-palette/test/__snapshots__/control.js.snap +3 -1
  321. package/src/components/color-palette/with-color-context.js +9 -9
  322. package/src/components/colors/with-colors.js +6 -7
  323. package/src/components/colors-gradients/control.js +10 -7
  324. package/src/components/colors-gradients/style.scss +4 -2
  325. package/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +29 -15
  326. package/src/components/dimensions-tool/index.js +25 -25
  327. package/src/components/dimensions-tool/scale-tool.js +1 -1
  328. package/src/components/font-family/index.js +2 -2
  329. package/src/components/font-sizes/font-size-picker.js +6 -4
  330. package/src/components/font-sizes/with-font-sizes.js +3 -5
  331. package/src/components/global-styles/filters-panel.js +9 -15
  332. package/src/components/global-styles/image-settings-panel.js +2 -2
  333. package/src/components/global-styles/typography-panel.js +1 -1
  334. package/src/components/gradients/use-gradient.js +10 -4
  335. package/src/components/height-control/index.js +53 -4
  336. package/src/components/iframe/index.js +8 -1
  337. package/src/components/image-editor/aspect-ratio-dropdown.js +0 -8
  338. package/src/components/index.js +1 -1
  339. package/src/components/index.native.js +2 -1
  340. package/src/components/inner-blocks/index.js +2 -2
  341. package/src/components/inserter/style.scss +9 -1
  342. package/src/components/letter-spacing-control/index.js +3 -2
  343. package/src/components/link-control/README.md +43 -0
  344. package/src/components/link-control/link-preview.js +11 -5
  345. package/src/components/link-control/search-item.js +14 -0
  346. package/src/components/link-control/search-results.js +1 -0
  347. package/src/components/link-control/style.scss +3 -3
  348. package/src/components/link-control/test/index.js +19 -0
  349. package/src/components/link-control/use-internal-value.js +14 -10
  350. package/src/components/link-control/use-search-handler.js +22 -15
  351. package/src/components/list-view/index.js +13 -3
  352. package/src/components/media-replace-flow/index.js +9 -14
  353. package/src/components/provider/test/use-block-sync.js +1 -1
  354. package/src/components/provider/use-block-sync.js +2 -2
  355. package/src/components/rich-text/index.js +1 -1
  356. package/src/components/rich-text/index.native.js +19 -3
  357. package/src/components/rich-text/use-delete.js +1 -1
  358. package/src/components/rich-text/use-paste-handler.js +27 -24
  359. package/src/components/spacing-sizes-control/hooks/use-spacing-sizes.js +7 -5
  360. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +25 -2
  361. package/src/components/tool-selector/index.js +1 -1
  362. package/src/components/unit-control/index.js +3 -8
  363. package/src/components/use-block-commands/index.js +93 -47
  364. package/src/components/{use-setting → use-settings}/README.md +9 -10
  365. package/src/components/use-settings/index.js +272 -0
  366. package/src/components/{use-setting → use-settings}/test/index.js +47 -5
  367. package/src/components/writing-flow/use-arrow-nav.js +4 -0
  368. package/src/hooks/align.js +79 -54
  369. package/src/hooks/anchor.js +75 -65
  370. package/src/hooks/background.js +7 -9
  371. package/src/hooks/block-rename-ui.js +5 -14
  372. package/src/hooks/{metadata-name.js → block-renaming.js} +4 -7
  373. package/src/hooks/color.js +7 -4
  374. package/src/hooks/custom-class-name.js +36 -31
  375. package/src/hooks/duotone.js +51 -14
  376. package/src/hooks/font-size.js +4 -4
  377. package/src/hooks/index.js +1 -1
  378. package/src/hooks/layout.js +17 -17
  379. package/src/hooks/line-height.js +3 -3
  380. package/src/hooks/metadata.js +6 -38
  381. package/src/hooks/position.js +5 -3
  382. package/src/hooks/use-color-props.js +21 -14
  383. package/src/hooks/utils.js +90 -43
  384. package/src/layouts/constrained.js +3 -8
  385. package/src/layouts/grid.js +50 -2
  386. package/src/layouts/utils.js +2 -1
  387. package/src/lock-unlock.js +1 -1
  388. package/src/store/actions.js +25 -8
  389. package/src/utils/object.js +4 -1
  390. package/src/utils/parse-css-unit-to-px.js +20 -0
  391. package/src/utils/pasting.js +1 -4
  392. package/src/utils/test/__snapshots__/transform-styles.js.snap +103 -0
  393. package/src/utils/test/pasting.js +12 -19
  394. package/src/utils/test/transform-styles.js +217 -0
  395. package/src/utils/transform-styles/index.js +25 -25
  396. package/build/components/use-setting/index.js +0 -159
  397. package/build/components/use-setting/index.js.map +0 -1
  398. package/build/hooks/metadata-name.js.map +0 -1
  399. package/build/utils/transform-styles/ast/index.js +0 -21
  400. package/build/utils/transform-styles/ast/index.js.map +0 -1
  401. package/build/utils/transform-styles/ast/parse.js +0 -660
  402. package/build/utils/transform-styles/ast/parse.js.map +0 -1
  403. package/build/utils/transform-styles/ast/stringify/compiler.js +0 -52
  404. package/build/utils/transform-styles/ast/stringify/compiler.js.map +0 -1
  405. package/build/utils/transform-styles/ast/stringify/compress.js +0 -178
  406. package/build/utils/transform-styles/ast/stringify/compress.js.map +0 -1
  407. package/build/utils/transform-styles/ast/stringify/identity.js +0 -207
  408. package/build/utils/transform-styles/ast/stringify/identity.js.map +0 -1
  409. package/build/utils/transform-styles/ast/stringify/index.js +0 -36
  410. package/build/utils/transform-styles/ast/stringify/index.js.map +0 -1
  411. package/build/utils/transform-styles/transforms/url-rewrite.js +0 -130
  412. package/build/utils/transform-styles/transforms/url-rewrite.js.map +0 -1
  413. package/build/utils/transform-styles/transforms/wrap.js +0 -59
  414. package/build/utils/transform-styles/transforms/wrap.js.map +0 -1
  415. package/build/utils/transform-styles/traverse.js +0 -37
  416. package/build/utils/transform-styles/traverse.js.map +0 -1
  417. package/build-module/components/use-setting/index.js +0 -152
  418. package/build-module/components/use-setting/index.js.map +0 -1
  419. package/build-module/hooks/metadata-name.js.map +0 -1
  420. package/build-module/utils/transform-styles/ast/index.js +0 -6
  421. package/build-module/utils/transform-styles/ast/index.js.map +0 -1
  422. package/build-module/utils/transform-styles/ast/parse.js +0 -654
  423. package/build-module/utils/transform-styles/ast/parse.js.map +0 -1
  424. package/build-module/utils/transform-styles/ast/stringify/compiler.js +0 -49
  425. package/build-module/utils/transform-styles/ast/stringify/compiler.js.map +0 -1
  426. package/build-module/utils/transform-styles/ast/stringify/compress.js +0 -176
  427. package/build-module/utils/transform-styles/ast/stringify/compress.js.map +0 -1
  428. package/build-module/utils/transform-styles/ast/stringify/identity.js +0 -206
  429. package/build-module/utils/transform-styles/ast/stringify/identity.js.map +0 -1
  430. package/build-module/utils/transform-styles/ast/stringify/index.js +0 -29
  431. package/build-module/utils/transform-styles/ast/stringify/index.js.map +0 -1
  432. package/build-module/utils/transform-styles/transforms/url-rewrite.js +0 -123
  433. package/build-module/utils/transform-styles/transforms/url-rewrite.js.map +0 -1
  434. package/build-module/utils/transform-styles/transforms/wrap.js +0 -52
  435. package/build-module/utils/transform-styles/transforms/wrap.js.map +0 -1
  436. package/build-module/utils/transform-styles/traverse.js +0 -28
  437. package/build-module/utils/transform-styles/traverse.js.map +0 -1
  438. package/src/components/use-setting/index.js +0 -213
  439. package/src/utils/transform-styles/ast/index.js +0 -5
  440. package/src/utils/transform-styles/ast/parse.js +0 -732
  441. package/src/utils/transform-styles/ast/stringify/compiler.js +0 -50
  442. package/src/utils/transform-styles/ast/stringify/compress.js +0 -238
  443. package/src/utils/transform-styles/ast/stringify/identity.js +0 -286
  444. package/src/utils/transform-styles/ast/stringify/index.js +0 -32
  445. package/src/utils/transform-styles/test/__snapshots__/traverse.js.snap +0 -7
  446. package/src/utils/transform-styles/test/traverse.js +0 -24
  447. package/src/utils/transform-styles/transforms/test/__snapshots__/url-rewrite.js.snap +0 -25
  448. package/src/utils/transform-styles/transforms/test/__snapshots__/wrap.js.snap +0 -64
  449. package/src/utils/transform-styles/transforms/test/url-rewrite.js +0 -39
  450. package/src/utils/transform-styles/transforms/test/wrap.js +0 -95
  451. package/src/utils/transform-styles/transforms/url-rewrite.js +0 -139
  452. package/src/utils/transform-styles/transforms/wrap.js +0 -56
  453. package/src/utils/transform-styles/traverse.js +0 -32
@@ -16,7 +16,6 @@ import {
16
16
  ToolbarButton,
17
17
  Dropdown,
18
18
  withFilters,
19
- Tooltip,
20
19
  } from '@wordpress/components';
21
20
  import { useSelect, withDispatch } from '@wordpress/data';
22
21
  import { DOWN } from '@wordpress/keycodes';
@@ -220,19 +219,15 @@ const MediaReplaceFlow = ( {
220
219
  { __( 'Current media URL:' ) }
221
220
  </span>
222
221
 
223
- <Tooltip text={ mediaURL }>
224
- <div>
225
- <LinkControl
226
- value={ { url: mediaURL } }
227
- settings={ [] }
228
- showSuggestions={ false }
229
- onChange={ ( { url } ) => {
230
- onSelectURL( url );
231
- editMediaButtonRef.current.focus();
232
- } }
233
- />
234
- </div>
235
- </Tooltip>
222
+ <LinkControl
223
+ value={ { url: mediaURL } }
224
+ settings={ [] }
225
+ showSuggestions={ false }
226
+ onChange={ ( { url } ) => {
227
+ onSelectURL( url );
228
+ editMediaButtonRef.current.focus();
229
+ } }
230
+ />
236
231
  </form>
237
232
  ) }
238
233
  </>
@@ -31,7 +31,7 @@ const TestWrapper = withRegistryProvider( ( props ) => {
31
31
  props.setRegistry( props.registry );
32
32
  }
33
33
  useBlockSync( props );
34
- return <p>Test.</p>;
34
+ return null;
35
35
  } );
36
36
 
37
37
  describe( 'useBlockSync hook', () => {
@@ -180,7 +180,7 @@ export default function useBlockSync( {
180
180
  // bound sync, unset the outbound value to avoid considering it in
181
181
  // subsequent renders.
182
182
  pendingChanges.current.outgoing = [];
183
- const hadSelecton = hasSelectedBlock();
183
+ const hadSelection = hasSelectedBlock();
184
184
  const selectionAnchor = getSelectionStart();
185
185
  const selectionFocus = getSelectionEnd();
186
186
  setControlledBlocks();
@@ -195,7 +195,7 @@ export default function useBlockSync( {
195
195
  const selectionStillExists = getBlock(
196
196
  selectionAnchor.clientId
197
197
  );
198
- if ( hadSelecton && ! selectionStillExists ) {
198
+ if ( hadSelection && ! selectionStillExists ) {
199
199
  selectBlock( clientId );
200
200
  } else {
201
201
  resetSelection( selectionAnchor, selectionFocus );
@@ -141,7 +141,7 @@ export function RichTextWrapper(
141
141
  };
142
142
  };
143
143
  // This selector must run on every render so the right selection state is
144
- // retreived from the store on merge.
144
+ // retrieved from the store on merge.
145
145
  // To do: fix this somehow.
146
146
  const { selectionStart, selectionEnd, isSelected } = useSelect( selector );
147
147
  const { getSelectionStart, getSelectionEnd, getBlockRootClientId } =
@@ -21,6 +21,7 @@ import {
21
21
  __unstableCreateElement,
22
22
  isEmpty,
23
23
  insert,
24
+ remove,
24
25
  create,
25
26
  split,
26
27
  toHTMLString,
@@ -70,6 +71,7 @@ function RichTextWrapper(
70
71
  onSplit,
71
72
  __unstableOnSplitAtEnd: onSplitAtEnd,
72
73
  __unstableOnSplitMiddle: onSplitMiddle,
74
+ __unstableOnSplitAtDoubleLineEnd: onSplitAtDoubleLineEnd,
73
75
  identifier,
74
76
  preserveWhiteSpace,
75
77
  __unstablePastePlainText: pastePlainText,
@@ -339,14 +341,28 @@ function RichTextWrapper(
339
341
  splitStart === splitEnd &&
340
342
  splitEnd === text.length;
341
343
 
342
- if ( shiftKey || ( ! canSplit && ! canSplitAtEnd ) ) {
344
+ if ( shiftKey ) {
343
345
  if ( ! disableLineBreaks ) {
344
346
  onChange( insert( value, '\n' ) );
345
347
  }
346
- } else if ( ! canSplit && canSplitAtEnd ) {
347
- onSplitAtEnd();
348
348
  } else if ( canSplit ) {
349
349
  splitValue( value );
350
+ } else if ( canSplitAtEnd ) {
351
+ onSplitAtEnd();
352
+ } else if (
353
+ // For some blocks it's desirable to split at the end of the
354
+ // block when there are two line breaks at the end of the
355
+ // block, so triple Enter exits the block.
356
+ onSplitAtDoubleLineEnd &&
357
+ splitStart === splitEnd &&
358
+ splitEnd === text.length &&
359
+ text.slice( -2 ) === '\n\n'
360
+ ) {
361
+ value.start = value.end - 2;
362
+ onChange( remove( value ) );
363
+ onSplitAtDoubleLineEnd();
364
+ } else if ( ! disableLineBreaks ) {
365
+ onChange( insert( value, '\n' ) );
350
366
  }
351
367
  },
352
368
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -43,7 +43,7 @@ export function useDelete( props ) {
43
43
  // an intentional user interaction distinguishing between Backspace and
44
44
  // Delete to remove the empty field, but also to avoid merge & remove
45
45
  // causing destruction of two fields (merge, then removed merged).
46
- if ( onRemove && isEmpty( value ) && isReverse ) {
46
+ else if ( onRemove && isEmpty( value ) && isReverse ) {
47
47
  onRemove( ! isReverse );
48
48
  }
49
49
 
@@ -56,26 +56,6 @@ export function usePasteHandler( props ) {
56
56
  return;
57
57
  }
58
58
 
59
- const transformed = formatTypes.reduce(
60
- ( accumlator, { __unstablePasteRule } ) => {
61
- // Only allow one transform.
62
- if ( __unstablePasteRule && accumlator === value ) {
63
- accumlator = __unstablePasteRule( value, {
64
- html,
65
- plainText,
66
- } );
67
- }
68
-
69
- return accumlator;
70
- },
71
- value
72
- );
73
-
74
- if ( transformed !== value ) {
75
- onChange( transformed );
76
- return;
77
- }
78
-
79
59
  const isInternal =
80
60
  event.clipboardData.getData( 'rich-text' ) === 'true';
81
61
 
@@ -139,10 +119,14 @@ export function usePasteHandler( props ) {
139
119
 
140
120
  let mode = onReplace && onSplit ? 'AUTO' : 'INLINE';
141
121
 
122
+ const trimmedPlainText = plainText.trim();
123
+
142
124
  if (
143
125
  __unstableEmbedURLOnPaste &&
144
126
  isEmpty( value ) &&
145
- isURL( plainText.trim() )
127
+ isURL( trimmedPlainText ) &&
128
+ // For the link pasting feature, allow only http(s) protocols.
129
+ /^https?:/.test( trimmedPlainText )
146
130
  ) {
147
131
  mode = 'BLOCKS';
148
132
  }
@@ -156,9 +140,28 @@ export function usePasteHandler( props ) {
156
140
  } );
157
141
 
158
142
  if ( typeof content === 'string' ) {
159
- const valueToInsert = create( { html: content } );
160
- addActiveFormats( valueToInsert, value.activeFormats );
161
- onChange( insert( value, valueToInsert ) );
143
+ const transformed = formatTypes.reduce(
144
+ ( accumlator, { __unstablePasteRule } ) => {
145
+ // Only allow one transform.
146
+ if ( __unstablePasteRule && accumlator === value ) {
147
+ accumlator = __unstablePasteRule( value, {
148
+ html,
149
+ plainText,
150
+ } );
151
+ }
152
+
153
+ return accumlator;
154
+ },
155
+ value
156
+ );
157
+
158
+ if ( transformed !== value ) {
159
+ onChange( transformed );
160
+ } else {
161
+ const valueToInsert = create( { html: content } );
162
+ addActiveFormats( valueToInsert, value.activeFormats );
163
+ onChange( insert( value, valueToInsert ) );
164
+ }
162
165
  } else if ( content.length > 0 ) {
163
166
  if ( onReplace && isEmpty( value ) ) {
164
167
  onReplace( content, content.length - 1, -1 );
@@ -6,13 +6,15 @@ import { __ } from '@wordpress/i18n';
6
6
  /**
7
7
  * Internal dependencies
8
8
  */
9
- import useSetting from '../../use-setting';
9
+ import { useSettings } from '../../use-settings';
10
10
 
11
11
  export default function useSpacingSizes() {
12
- const spacingSizes = [
13
- { name: 0, slug: '0', size: 0 },
14
- ...( useSetting( 'spacing.spacingSizes' ) || [] ),
15
- ];
12
+ const spacingSizes = [ { name: 0, slug: '0', size: 0 } ];
13
+
14
+ const [ settingsSizes ] = useSettings( 'spacing.spacingSizes' );
15
+ if ( settingsSizes ) {
16
+ spacingSizes.push( ...settingsSizes );
17
+ }
16
18
 
17
19
  if ( spacingSizes.length > 8 ) {
18
20
  spacingSizes.unshift( {
@@ -20,7 +20,7 @@ import { settings } from '@wordpress/icons';
20
20
  /**
21
21
  * Internal dependencies
22
22
  */
23
- import useSetting from '../../use-setting';
23
+ import { useSettings } from '../../use-settings';
24
24
  import { store as blockEditorStore } from '../../../store';
25
25
  import {
26
26
  ALL_SIDES,
@@ -38,6 +38,28 @@ const CUSTOM_VALUE_SETTINGS = {
38
38
  vh: { max: 100, steps: 1 },
39
39
  em: { max: 10, steps: 0.1 },
40
40
  rm: { max: 10, steps: 0.1 },
41
+ svw: { max: 100, steps: 1 },
42
+ lvw: { max: 100, steps: 1 },
43
+ dvw: { max: 100, steps: 1 },
44
+ svh: { max: 100, steps: 1 },
45
+ lvh: { max: 100, steps: 1 },
46
+ dvh: { max: 100, steps: 1 },
47
+ vi: { max: 100, steps: 1 },
48
+ svi: { max: 100, steps: 1 },
49
+ lvi: { max: 100, steps: 1 },
50
+ dvi: { max: 100, steps: 1 },
51
+ vb: { max: 100, steps: 1 },
52
+ svb: { max: 100, steps: 1 },
53
+ lvb: { max: 100, steps: 1 },
54
+ dvb: { max: 100, steps: 1 },
55
+ vmin: { max: 100, steps: 1 },
56
+ svmin: { max: 100, steps: 1 },
57
+ lvmin: { max: 100, steps: 1 },
58
+ dvmin: { max: 100, steps: 1 },
59
+ vmax: { max: 100, steps: 1 },
60
+ svmax: { max: 100, steps: 1 },
61
+ lvmax: { max: 100, steps: 1 },
62
+ dvmax: { max: 100, steps: 1 },
41
63
  };
42
64
 
43
65
  export default function SpacingInputControl( {
@@ -80,8 +102,9 @@ export default function SpacingInputControl( {
80
102
  setShowCustomValueControl( true );
81
103
  }
82
104
 
105
+ const [ availableUnits ] = useSettings( 'spacing.units' );
83
106
  const units = useCustomUnits( {
84
- availableUnits: useSetting( 'spacing.units' ) || [ 'px', 'em', 'rem' ],
107
+ availableUnits: availableUnits || [ 'px', 'em', 'rem' ],
85
108
  } );
86
109
 
87
110
  let currentValue = null;
@@ -51,7 +51,7 @@ function ToolSelector( props, ref ) {
51
51
  label={ __( 'Tools' ) }
52
52
  />
53
53
  ) }
54
- popoverProps={ { placement: 'bottom-start', variant: undefined } }
54
+ popoverProps={ { placement: 'bottom-start' } }
55
55
  renderContent={ () => (
56
56
  <>
57
57
  <NavigableMenu role="menu" aria-label={ __( 'Tools' ) }>
@@ -9,17 +9,12 @@ import {
9
9
  /**
10
10
  * Internal dependencies
11
11
  */
12
- import useSetting from '../use-setting';
12
+ import { useSettings } from '../use-settings';
13
13
 
14
14
  export default function UnitControl( { units: unitsProp, ...props } ) {
15
+ const [ availableUnits ] = useSettings( 'spacing.units' );
15
16
  const units = useCustomUnits( {
16
- availableUnits: useSetting( 'spacing.units' ) || [
17
- '%',
18
- 'px',
19
- 'em',
20
- 'rem',
21
- 'vw',
22
- ],
17
+ availableUnits: availableUnits || [ '%', 'px', 'em', 'rem', 'vw' ],
23
18
  units: unitsProp,
24
19
  } );
25
20
 
@@ -22,6 +22,7 @@ import {
22
22
  /**
23
23
  * Internal dependencies
24
24
  */
25
+ import BlockIcon from '../block-icon';
25
26
  import { store as blockEditorStore } from '../../store';
26
27
 
27
28
  export const useTransformCommands = () => {
@@ -100,7 +101,7 @@ export const useTransformCommands = () => {
100
101
  name: 'core/block-editor/transform-to-' + name.replace( '/', '-' ),
101
102
  // translators: %s: block title/name.
102
103
  label: sprintf( __( 'Transform to %s' ), title ),
103
- icon: icon.src,
104
+ icon: <BlockIcon icon={ icon } />,
104
105
  callback: ( { close } ) => {
105
106
  onBlockTransform( name );
106
107
  close();
@@ -112,6 +113,60 @@ export const useTransformCommands = () => {
112
113
  };
113
114
 
114
115
  const useActionsCommands = () => {
116
+ const { clientIds } = useSelect( ( select ) => {
117
+ const { getSelectedBlockClientIds } = select( blockEditorStore );
118
+ const selectedBlockClientIds = getSelectedBlockClientIds();
119
+
120
+ return {
121
+ clientIds: selectedBlockClientIds,
122
+ };
123
+ }, [] );
124
+
125
+ const { getBlockRootClientId, canMoveBlocks, getBlockCount } =
126
+ useSelect( blockEditorStore );
127
+
128
+ const { setBlockMovingClientId, setNavigationMode, selectBlock } =
129
+ useDispatch( blockEditorStore );
130
+
131
+ if ( ! clientIds || clientIds.length < 1 ) {
132
+ return { isLoading: false, commands: [] };
133
+ }
134
+
135
+ const rootClientId = getBlockRootClientId( clientIds[ 0 ] );
136
+
137
+ const canMove =
138
+ canMoveBlocks( clientIds, rootClientId ) &&
139
+ getBlockCount( rootClientId ) !== 1;
140
+
141
+ const commands = [];
142
+
143
+ if ( canMove ) {
144
+ commands.push( {
145
+ name: 'move-to',
146
+ label: __( 'Move to' ),
147
+ callback: () => {
148
+ setNavigationMode( true );
149
+ selectBlock( clientIds[ 0 ] );
150
+ setBlockMovingClientId( clientIds[ 0 ] );
151
+ },
152
+ icon: move,
153
+ } );
154
+ }
155
+
156
+ return {
157
+ isLoading: false,
158
+ commands: commands.map( ( command ) => ( {
159
+ ...command,
160
+ name: 'core/block-editor/action-' + command.name,
161
+ callback: ( { close } ) => {
162
+ command.callback();
163
+ close();
164
+ },
165
+ } ) ),
166
+ };
167
+ };
168
+
169
+ const useQuickActionsCommands = () => {
115
170
  const { clientIds, isUngroupable, isGroupable } = useSelect( ( select ) => {
116
171
  const {
117
172
  getSelectedBlockClientIds,
@@ -130,9 +185,7 @@ const useActionsCommands = () => {
130
185
  canInsertBlockType,
131
186
  getBlockRootClientId,
132
187
  getBlocksByClientId,
133
- canMoveBlocks,
134
188
  canRemoveBlocks,
135
- getBlockCount,
136
189
  } = useSelect( blockEditorStore );
137
190
  const { getDefaultBlockName, getGroupingBlockName } =
138
191
  useSelect( blocksStore );
@@ -145,9 +198,6 @@ const useActionsCommands = () => {
145
198
  duplicateBlocks,
146
199
  insertAfterBlock,
147
200
  insertBeforeBlock,
148
- setBlockMovingClientId,
149
- setNavigationMode,
150
- selectBlock,
151
201
  } = useDispatch( blockEditorStore );
152
202
 
153
203
  const onGroup = () => {
@@ -196,65 +246,54 @@ const useActionsCommands = () => {
196
246
  );
197
247
  } );
198
248
  const canRemove = canRemoveBlocks( clientIds, rootClientId );
199
- const canMove =
200
- canMoveBlocks( clientIds, rootClientId ) &&
201
- getBlockCount( rootClientId ) !== 1;
202
249
 
203
250
  const commands = [];
251
+
252
+ if ( canDuplicate ) {
253
+ commands.push( {
254
+ name: 'duplicate',
255
+ label: __( 'Duplicate' ),
256
+ callback: () => duplicateBlocks( clientIds, true ),
257
+ icon: copy,
258
+ } );
259
+ }
260
+
204
261
  if ( canInsertDefaultBlock ) {
205
262
  commands.push(
206
263
  {
207
- name: 'add-after',
208
- label: __( 'Add after' ),
264
+ name: 'add-before',
265
+ label: __( 'Add before' ),
209
266
  callback: () => {
210
267
  const clientId = Array.isArray( clientIds )
211
- ? clientIds[ clientIds.length - 1 ]
268
+ ? clientIds[ 0 ]
212
269
  : clientId;
213
- insertAfterBlock( clientId );
270
+ insertBeforeBlock( clientId );
214
271
  },
215
272
  icon: add,
216
273
  },
217
274
  {
218
- name: 'add-before',
219
- label: __( 'Add before' ),
275
+ name: 'add-after',
276
+ label: __( 'Add after' ),
220
277
  callback: () => {
221
278
  const clientId = Array.isArray( clientIds )
222
- ? clientIds[ 0 ]
279
+ ? clientIds[ clientIds.length - 1 ]
223
280
  : clientId;
224
- insertBeforeBlock( clientId );
281
+ insertAfterBlock( clientId );
225
282
  },
226
283
  icon: add,
227
284
  }
228
285
  );
229
286
  }
230
- if ( canRemove ) {
231
- commands.push( {
232
- name: 'remove',
233
- label: __( 'Delete' ),
234
- callback: () => removeBlocks( clientIds, true ),
235
- icon: remove,
236
- } );
237
- }
238
- if ( canDuplicate ) {
239
- commands.push( {
240
- name: 'duplicate',
241
- label: __( 'Duplicate' ),
242
- callback: () => duplicateBlocks( clientIds, true ),
243
- icon: copy,
244
- } );
245
- }
246
- if ( canMove ) {
287
+
288
+ if ( isGroupable ) {
247
289
  commands.push( {
248
- name: 'move-to',
249
- label: __( 'Move to' ),
250
- callback: () => {
251
- setNavigationMode( true );
252
- selectBlock( clientIds[ 0 ] );
253
- setBlockMovingClientId( clientIds[ 0 ] );
254
- },
255
- icon: move,
290
+ name: 'Group',
291
+ label: __( 'Group' ),
292
+ callback: onGroup,
293
+ icon: group,
256
294
  } );
257
295
  }
296
+
258
297
  if ( isUngroupable ) {
259
298
  commands.push( {
260
299
  name: 'ungroup',
@@ -263,14 +302,16 @@ const useActionsCommands = () => {
263
302
  icon: ungroup,
264
303
  } );
265
304
  }
266
- if ( isGroupable ) {
305
+
306
+ if ( canRemove ) {
267
307
  commands.push( {
268
- name: 'Group',
269
- label: __( 'Group' ),
270
- callback: onGroup,
271
- icon: group,
308
+ name: 'remove',
309
+ label: __( 'Delete' ),
310
+ callback: () => removeBlocks( clientIds, true ),
311
+ icon: remove,
272
312
  } );
273
313
  }
314
+
274
315
  return {
275
316
  isLoading: false,
276
317
  commands: commands.map( ( command ) => ( {
@@ -293,4 +334,9 @@ export const useBlockCommands = () => {
293
334
  name: 'core/block-editor/blockActions',
294
335
  hook: useActionsCommands,
295
336
  } );
337
+ useCommandLoader( {
338
+ name: 'core/block-editor/blockQuickActions',
339
+ hook: useQuickActionsCommands,
340
+ context: 'block-selection-edit',
341
+ } );
296
342
  };
@@ -1,8 +1,8 @@
1
- ## Use Setting
1
+ ## Use Settings
2
2
 
3
- `useSetting` is a hook that will retrive the setting for the block instance that's in use.
3
+ `useSettings` is a hook that will retrieve the settings for the block instance that's in use.
4
4
 
5
- It does the lookup of the setting in the following order:
5
+ It does the lookup of the settings in the following order:
6
6
 
7
7
  1. Third parties can provide the settings for the block using the filter `blockEditor.useSetting.before`.
8
8
  2. If no third parties have provided this setting, then it looks up in the block instance hierachy starting from the current block and working its way upwards to its ancestors.
@@ -20,20 +20,19 @@ It does the lookup of the setting in the following order:
20
20
  This will fetch the default color palette based on the block instance.
21
21
 
22
22
  ```jsx
23
- import { useSetting } from '@wordpress/block-editor';
23
+ import { useSettings } from '@wordpress/block-editor';
24
24
 
25
- const defaultColorPalette = useSetting( 'color.palette.default' );
25
+ const [ defaultColorPalette ] = useSettings( 'color.palette.default' );
26
26
  ```
27
27
 
28
28
  Refer [here](https://github.com/WordPress/gutenberg/blob/HEAD/docs/how-to-guides/curating-the-editor-experience.md?plain=1#L330) in order to understand how the filter mentioned above `blockEditor.useSetting.before` can be used.
29
29
 
30
30
  ### Props
31
31
 
32
- This hooks accepts the following props.
32
+ This hooks accepts the following arguments.
33
33
 
34
- #### `path`
34
+ #### `paths`
35
35
 
36
- - **Type:** `String`
37
- - **Default:** `undefined`
36
+ - **Type:** `Array<String>`
38
37
 
39
- The path to the setting that is to be used for a block. Ex: `typography.fontSizes`
38
+ Array of paths to the settings to be retrieved. E.g., `[ 'typography.fontSizes' ]`