@wordpress/block-editor 8.3.0 → 8.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 (443) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +56 -18
  3. package/build/components/alignment-control/index.js +13 -6
  4. package/build/components/alignment-control/index.js.map +1 -1
  5. package/build/components/block-alignment-control/index.js +13 -6
  6. package/build/components/block-alignment-control/index.js.map +1 -1
  7. package/build/components/block-draggable/index.js +2 -3
  8. package/build/components/block-draggable/index.js.map +1 -1
  9. package/build/components/block-icon/index.js +4 -0
  10. package/build/components/block-icon/index.js.map +1 -1
  11. package/build/components/block-inspector/index.js +6 -1
  12. package/build/components/block-inspector/index.js.map +1 -1
  13. package/build/components/block-list/block-html.js +4 -1
  14. package/build/components/block-list/block-html.js.map +1 -1
  15. package/build/components/block-list/block.js +4 -1
  16. package/build/components/block-list/block.js.map +1 -1
  17. package/build/components/block-list/use-block-props/index.js +1 -6
  18. package/build/components/block-list/use-block-props/index.js.map +1 -1
  19. package/build/components/block-list/use-block-props/use-focus-first-element.js +22 -6
  20. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  21. package/build/components/block-list/use-block-props/use-focus-handler.js +7 -1
  22. package/build/components/block-list/use-block-props/use-focus-handler.js.map +1 -1
  23. package/build/components/block-list-appender/index.js +6 -1
  24. package/build/components/block-list-appender/index.js.map +1 -1
  25. package/build/components/block-lock/index.js +32 -0
  26. package/build/components/block-lock/index.js.map +1 -0
  27. package/build/components/block-lock/menu-item.js +67 -0
  28. package/build/components/block-lock/menu-item.js.map +1 -0
  29. package/build/components/block-lock/modal.js +134 -0
  30. package/build/components/block-lock/modal.js.map +1 -0
  31. package/build/components/block-lock/toolbar.js +78 -0
  32. package/build/components/block-lock/toolbar.js.map +1 -0
  33. package/build/components/block-mover/index.js +4 -0
  34. package/build/components/block-mover/index.js.map +1 -1
  35. package/build/components/block-settings-menu/block-settings-dropdown.js +75 -10
  36. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  37. package/build/components/block-settings-menu-controls/index.js +19 -9
  38. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  39. package/build/components/block-switcher/index.js +1 -1
  40. package/build/components/block-switcher/index.js.map +1 -1
  41. package/build/components/block-title/index.js +2 -2
  42. package/build/components/block-title/index.js.map +1 -1
  43. package/build/components/block-title/use-block-display-title.js +8 -6
  44. package/build/components/block-title/use-block-display-title.js.map +1 -1
  45. package/build/components/block-toolbar/block-name-context.js +17 -0
  46. package/build/components/block-toolbar/block-name-context.js.map +1 -0
  47. package/build/components/block-toolbar/block-toolbar-last-item.js +20 -0
  48. package/build/components/block-toolbar/block-toolbar-last-item.js.map +1 -0
  49. package/build/components/block-toolbar/index.js +24 -5
  50. package/build/components/block-toolbar/index.js.map +1 -1
  51. package/build/components/block-tools/index.js +0 -16
  52. package/build/components/block-tools/index.js.map +1 -1
  53. package/build/components/block-variation-transforms/index.js +92 -47
  54. package/build/components/block-variation-transforms/index.js.map +1 -1
  55. package/build/components/block-vertical-alignment-control/index.js +13 -6
  56. package/build/components/block-vertical-alignment-control/index.js.map +1 -1
  57. package/build/components/border-radius-control/index.js +0 -1
  58. package/build/components/border-radius-control/index.js.map +1 -1
  59. package/build/components/border-radius-control/utils.js +1 -1
  60. package/build/components/border-radius-control/utils.js.map +1 -1
  61. package/build/components/colors-gradients/control.js +3 -1
  62. package/build/components/colors-gradients/control.js.map +1 -1
  63. package/build/components/contrast-checker/index.js +4 -0
  64. package/build/components/contrast-checker/index.js.map +1 -1
  65. package/build/components/convert-to-group-buttons/index.js +8 -0
  66. package/build/components/convert-to-group-buttons/index.js.map +1 -1
  67. package/build/components/convert-to-group-buttons/toolbar.js +105 -0
  68. package/build/components/convert-to-group-buttons/toolbar.js.map +1 -0
  69. package/build/components/copy-handler/index.js +4 -0
  70. package/build/components/copy-handler/index.js.map +1 -1
  71. package/build/components/date-format-picker/index.js +132 -0
  72. package/build/components/date-format-picker/index.js.map +1 -0
  73. package/build/components/font-sizes/font-size-picker.js +4 -0
  74. package/build/components/font-sizes/font-size-picker.js.map +1 -1
  75. package/build/components/iframe/index.js +6 -9
  76. package/build/components/iframe/index.js.map +1 -1
  77. package/build/components/index.js +27 -0
  78. package/build/components/index.js.map +1 -1
  79. package/build/components/justify-content-control/index.js +13 -6
  80. package/build/components/justify-content-control/index.js.map +1 -1
  81. package/build/components/keyboard-shortcuts/index.js +1 -1
  82. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  83. package/build/components/line-height-control/index.js +15 -6
  84. package/build/components/line-height-control/index.js.map +1 -1
  85. package/build/components/list-view/block-select-button.js +24 -23
  86. package/build/components/list-view/block-select-button.js.map +1 -1
  87. package/build/components/list-view/block.js +38 -13
  88. package/build/components/list-view/block.js.map +1 -1
  89. package/build/components/list-view/branch.js +16 -13
  90. package/build/components/list-view/branch.js.map +1 -1
  91. package/build/components/list-view/index.js +7 -1
  92. package/build/components/list-view/index.js.map +1 -1
  93. package/build/components/list-view/use-block-selection.js +9 -2
  94. package/build/components/list-view/use-block-selection.js.map +1 -1
  95. package/build/components/media-replace-flow/index.js +4 -0
  96. package/build/components/media-replace-flow/index.js.map +1 -1
  97. package/build/components/multi-selection-inspector/index.js +1 -1
  98. package/build/components/multi-selection-inspector/index.js.map +1 -1
  99. package/build/components/rich-text/index.js +27 -5
  100. package/build/components/rich-text/index.js.map +1 -1
  101. package/build/components/rich-text/index.native.js +13 -9
  102. package/build/components/rich-text/index.native.js.map +1 -1
  103. package/build/components/rich-text/split-value.js +12 -2
  104. package/build/components/rich-text/split-value.js.map +1 -1
  105. package/build/components/rich-text/use-firefox-compat.js +49 -0
  106. package/build/components/rich-text/use-firefox-compat.js.map +1 -0
  107. package/build/components/rich-text/use-input-rules.js +34 -2
  108. package/build/components/rich-text/use-input-rules.js.map +1 -1
  109. package/build/components/skip-to-selected-block/index.js +4 -0
  110. package/build/components/skip-to-selected-block/index.js.map +1 -1
  111. package/build/components/url-popover/image-url-input-ui.js +11 -27
  112. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  113. package/build/components/writing-flow/index.js +9 -1
  114. package/build/components/writing-flow/index.js.map +1 -1
  115. package/build/components/writing-flow/use-arrow-nav.js +3 -44
  116. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  117. package/build/components/writing-flow/use-click-selection.js +68 -0
  118. package/build/components/writing-flow/use-click-selection.js.map +1 -0
  119. package/build/components/writing-flow/use-drag-selection.js +134 -0
  120. package/build/components/writing-flow/use-drag-selection.js.map +1 -0
  121. package/build/components/writing-flow/use-input.js +116 -0
  122. package/build/components/writing-flow/use-input.js.map +1 -0
  123. package/build/components/writing-flow/use-multi-selection.js +18 -38
  124. package/build/components/writing-flow/use-multi-selection.js.map +1 -1
  125. package/build/components/writing-flow/use-selection-observer.js +161 -0
  126. package/build/components/writing-flow/use-selection-observer.js.map +1 -0
  127. package/build/components/writing-flow/use-tab-nav.js +1 -8
  128. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  129. package/build/hooks/anchor.js +7 -6
  130. package/build/hooks/anchor.js.map +1 -1
  131. package/build/hooks/border-color.js +3 -3
  132. package/build/hooks/border-color.js.map +1 -1
  133. package/build/hooks/border.js +0 -14
  134. package/build/hooks/border.js.map +1 -1
  135. package/build/hooks/color.js +20 -17
  136. package/build/hooks/color.js.map +1 -1
  137. package/build/hooks/font-family.js +5 -1
  138. package/build/hooks/font-family.js.map +1 -1
  139. package/build/hooks/font-size.js +4 -2
  140. package/build/hooks/font-size.js.map +1 -1
  141. package/build/hooks/gap.js +77 -5
  142. package/build/hooks/gap.js.map +1 -1
  143. package/build/hooks/layout.js +7 -2
  144. package/build/hooks/layout.js.map +1 -1
  145. package/build/hooks/style.js +34 -3
  146. package/build/hooks/style.js.map +1 -1
  147. package/build/hooks/utils.js +29 -0
  148. package/build/hooks/utils.js.map +1 -1
  149. package/build/layouts/flex.js +82 -15
  150. package/build/layouts/flex.js.map +1 -1
  151. package/build/layouts/flow.js +22 -13
  152. package/build/layouts/flow.js.map +1 -1
  153. package/build/store/actions.js +297 -51
  154. package/build/store/actions.js.map +1 -1
  155. package/build/store/defaults.js +5 -1
  156. package/build/store/defaults.js.map +1 -1
  157. package/build/store/reducer.js +25 -13
  158. package/build/store/reducer.js.map +1 -1
  159. package/build/store/selectors.js +171 -21
  160. package/build/store/selectors.js.map +1 -1
  161. package/build/utils/dom.js +2 -1
  162. package/build/utils/dom.js.map +1 -1
  163. package/build-module/components/alignment-control/index.js +12 -4
  164. package/build-module/components/alignment-control/index.js.map +1 -1
  165. package/build-module/components/block-alignment-control/index.js +12 -4
  166. package/build-module/components/block-alignment-control/index.js.map +1 -1
  167. package/build-module/components/block-draggable/index.js +2 -3
  168. package/build-module/components/block-draggable/index.js.map +1 -1
  169. package/build-module/components/block-icon/index.js +4 -0
  170. package/build-module/components/block-icon/index.js.map +1 -1
  171. package/build-module/components/block-inspector/index.js +6 -1
  172. package/build-module/components/block-inspector/index.js.map +1 -1
  173. package/build-module/components/block-list/block-html.js +5 -2
  174. package/build-module/components/block-list/block-html.js.map +1 -1
  175. package/build-module/components/block-list/block.js +5 -2
  176. package/build-module/components/block-list/block.js.map +1 -1
  177. package/build-module/components/block-list/use-block-props/index.js +1 -4
  178. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  179. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +22 -6
  180. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  181. package/build-module/components/block-list/use-block-props/use-focus-handler.js +7 -1
  182. package/build-module/components/block-list/use-block-props/use-focus-handler.js.map +1 -1
  183. package/build-module/components/block-list-appender/index.js +6 -1
  184. package/build-module/components/block-list-appender/index.js.map +1 -1
  185. package/build-module/components/block-lock/index.js +4 -0
  186. package/build-module/components/block-lock/index.js.map +1 -0
  187. package/build-module/components/block-lock/menu-item.js +53 -0
  188. package/build-module/components/block-lock/menu-item.js.map +1 -0
  189. package/build-module/components/block-lock/modal.js +119 -0
  190. package/build-module/components/block-lock/modal.js.map +1 -0
  191. package/build-module/components/block-lock/toolbar.js +63 -0
  192. package/build-module/components/block-lock/toolbar.js.map +1 -0
  193. package/build-module/components/block-mover/index.js +4 -0
  194. package/build-module/components/block-mover/index.js.map +1 -1
  195. package/build-module/components/block-settings-menu/block-settings-dropdown.js +75 -12
  196. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  197. package/build-module/components/block-settings-menu-controls/index.js +18 -9
  198. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  199. package/build-module/components/block-switcher/index.js +2 -2
  200. package/build-module/components/block-switcher/index.js.map +1 -1
  201. package/build-module/components/block-title/index.js +2 -2
  202. package/build-module/components/block-title/index.js.map +1 -1
  203. package/build-module/components/block-title/use-block-display-title.js +8 -6
  204. package/build-module/components/block-title/use-block-display-title.js.map +1 -1
  205. package/build-module/components/block-toolbar/block-name-context.js +9 -0
  206. package/build-module/components/block-toolbar/block-name-context.js.map +1 -0
  207. package/build-module/components/block-toolbar/block-toolbar-last-item.js +11 -0
  208. package/build-module/components/block-toolbar/block-toolbar-last-item.js.map +1 -0
  209. package/build-module/components/block-toolbar/index.js +19 -4
  210. package/build-module/components/block-toolbar/index.js.map +1 -1
  211. package/build-module/components/block-tools/index.js +0 -16
  212. package/build-module/components/block-tools/index.js.map +1 -1
  213. package/build-module/components/block-variation-transforms/index.js +95 -49
  214. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  215. package/build-module/components/block-vertical-alignment-control/index.js +12 -4
  216. package/build-module/components/block-vertical-alignment-control/index.js.map +1 -1
  217. package/build-module/components/border-radius-control/index.js +0 -1
  218. package/build-module/components/border-radius-control/index.js.map +1 -1
  219. package/build-module/components/border-radius-control/utils.js +1 -1
  220. package/build-module/components/border-radius-control/utils.js.map +1 -1
  221. package/build-module/components/colors-gradients/control.js +3 -1
  222. package/build-module/components/colors-gradients/control.js.map +1 -1
  223. package/build-module/components/contrast-checker/index.js +4 -0
  224. package/build-module/components/contrast-checker/index.js.map +1 -1
  225. package/build-module/components/convert-to-group-buttons/index.js +2 -1
  226. package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
  227. package/build-module/components/convert-to-group-buttons/toolbar.js +90 -0
  228. package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -0
  229. package/build-module/components/copy-handler/index.js +4 -0
  230. package/build-module/components/copy-handler/index.js.map +1 -1
  231. package/build-module/components/date-format-picker/index.js +122 -0
  232. package/build-module/components/date-format-picker/index.js.map +1 -0
  233. package/build-module/components/font-sizes/font-size-picker.js +4 -0
  234. package/build-module/components/font-sizes/font-size-picker.js.map +1 -1
  235. package/build-module/components/iframe/index.js +6 -9
  236. package/build-module/components/iframe/index.js.map +1 -1
  237. package/build-module/components/index.js +3 -0
  238. package/build-module/components/index.js.map +1 -1
  239. package/build-module/components/justify-content-control/index.js +12 -4
  240. package/build-module/components/justify-content-control/index.js.map +1 -1
  241. package/build-module/components/keyboard-shortcuts/index.js +1 -1
  242. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  243. package/build-module/components/line-height-control/index.js +14 -5
  244. package/build-module/components/line-height-control/index.js.map +1 -1
  245. package/build-module/components/list-view/block-select-button.js +24 -23
  246. package/build-module/components/list-view/block-select-button.js.map +1 -1
  247. package/build-module/components/list-view/block.js +36 -13
  248. package/build-module/components/list-view/block.js.map +1 -1
  249. package/build-module/components/list-view/branch.js +16 -13
  250. package/build-module/components/list-view/branch.js.map +1 -1
  251. package/build-module/components/list-view/index.js +7 -1
  252. package/build-module/components/list-view/index.js.map +1 -1
  253. package/build-module/components/list-view/use-block-selection.js +10 -3
  254. package/build-module/components/list-view/use-block-selection.js.map +1 -1
  255. package/build-module/components/media-replace-flow/index.js +4 -0
  256. package/build-module/components/media-replace-flow/index.js.map +1 -1
  257. package/build-module/components/multi-selection-inspector/index.js +2 -2
  258. package/build-module/components/multi-selection-inspector/index.js.map +1 -1
  259. package/build-module/components/rich-text/index.js +26 -5
  260. package/build-module/components/rich-text/index.js.map +1 -1
  261. package/build-module/components/rich-text/index.native.js +13 -9
  262. package/build-module/components/rich-text/index.native.js.map +1 -1
  263. package/build-module/components/rich-text/split-value.js +12 -2
  264. package/build-module/components/rich-text/split-value.js.map +1 -1
  265. package/build-module/components/rich-text/use-firefox-compat.js +39 -0
  266. package/build-module/components/rich-text/use-firefox-compat.js.map +1 -0
  267. package/build-module/components/rich-text/use-input-rules.js +35 -4
  268. package/build-module/components/rich-text/use-input-rules.js.map +1 -1
  269. package/build-module/components/skip-to-selected-block/index.js +4 -0
  270. package/build-module/components/skip-to-selected-block/index.js.map +1 -1
  271. package/build-module/components/url-popover/image-url-input-ui.js +12 -28
  272. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  273. package/build-module/components/writing-flow/index.js +5 -1
  274. package/build-module/components/writing-flow/index.js.map +1 -1
  275. package/build-module/components/writing-flow/use-arrow-nav.js +4 -45
  276. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  277. package/build-module/components/writing-flow/use-click-selection.js +57 -0
  278. package/build-module/components/writing-flow/use-click-selection.js.map +1 -0
  279. package/build-module/components/writing-flow/use-drag-selection.js +124 -0
  280. package/build-module/components/writing-flow/use-drag-selection.js.map +1 -0
  281. package/build-module/components/writing-flow/use-input.js +104 -0
  282. package/build-module/components/writing-flow/use-input.js.map +1 -0
  283. package/build-module/components/writing-flow/use-multi-selection.js +18 -37
  284. package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
  285. package/build-module/components/writing-flow/use-selection-observer.js +150 -0
  286. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -0
  287. package/build-module/components/writing-flow/use-tab-nav.js +1 -9
  288. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  289. package/build-module/hooks/anchor.js +7 -6
  290. package/build-module/hooks/anchor.js.map +1 -1
  291. package/build-module/hooks/border-color.js +5 -5
  292. package/build-module/hooks/border-color.js.map +1 -1
  293. package/build-module/hooks/border.js +0 -12
  294. package/build-module/hooks/border.js.map +1 -1
  295. package/build-module/hooks/color.js +19 -18
  296. package/build-module/hooks/color.js.map +1 -1
  297. package/build-module/hooks/font-family.js +3 -1
  298. package/build-module/hooks/font-family.js.map +1 -1
  299. package/build-module/hooks/font-size.js +4 -3
  300. package/build-module/hooks/font-size.js.map +1 -1
  301. package/build-module/hooks/gap.js +75 -7
  302. package/build-module/hooks/gap.js.map +1 -1
  303. package/build-module/hooks/layout.js +7 -2
  304. package/build-module/hooks/layout.js.map +1 -1
  305. package/build-module/hooks/style.js +33 -3
  306. package/build-module/hooks/style.js.map +1 -1
  307. package/build-module/hooks/utils.js +26 -0
  308. package/build-module/hooks/utils.js.map +1 -1
  309. package/build-module/layouts/flex.js +81 -16
  310. package/build-module/layouts/flex.js.map +1 -1
  311. package/build-module/layouts/flow.js +20 -13
  312. package/build-module/layouts/flow.js.map +1 -1
  313. package/build-module/store/actions.js +286 -49
  314. package/build-module/store/actions.js.map +1 -1
  315. package/build-module/store/defaults.js +5 -1
  316. package/build-module/store/defaults.js.map +1 -1
  317. package/build-module/store/reducer.js +25 -13
  318. package/build-module/store/reducer.js.map +1 -1
  319. package/build-module/store/selectors.js +162 -20
  320. package/build-module/store/selectors.js.map +1 -1
  321. package/build-module/utils/dom.js +2 -1
  322. package/build-module/utils/dom.js.map +1 -1
  323. package/build-style/style-rtl.css +214 -24
  324. package/build-style/style.css +214 -24
  325. package/build-types/utils/dom.d.ts.map +1 -1
  326. package/package.json +28 -27
  327. package/src/components/alignment-control/index.js +9 -4
  328. package/src/components/block-alignment-control/index.js +9 -4
  329. package/src/components/block-draggable/index.js +2 -5
  330. package/src/components/block-icon/index.js +3 -0
  331. package/src/components/block-inspector/index.js +4 -0
  332. package/src/components/block-list/block-html.js +8 -4
  333. package/src/components/block-list/block.js +5 -1
  334. package/src/components/block-list/style.scss +4 -5
  335. package/src/components/block-list/use-block-props/index.js +0 -5
  336. package/src/components/block-list/use-block-props/use-focus-first-element.js +27 -6
  337. package/src/components/block-list/use-block-props/use-focus-handler.js +8 -0
  338. package/src/components/block-list-appender/index.js +5 -0
  339. package/src/components/block-lock/index.js +3 -0
  340. package/src/components/block-lock/menu-item.js +59 -0
  341. package/src/components/block-lock/modal.js +170 -0
  342. package/src/components/block-lock/style.scss +70 -0
  343. package/src/components/block-lock/toolbar.js +68 -0
  344. package/src/components/block-mover/index.js +3 -0
  345. package/src/components/block-mover/style.scss +4 -0
  346. package/src/components/block-settings-menu/block-settings-dropdown.js +109 -9
  347. package/src/components/block-settings-menu-controls/index.js +33 -12
  348. package/src/components/block-switcher/index.js +2 -2
  349. package/src/components/block-switcher/style.scss +8 -1
  350. package/src/components/block-switcher/test/index.js +2 -2
  351. package/src/components/block-title/README.md +6 -1
  352. package/src/components/block-title/index.js +2 -2
  353. package/src/components/block-title/test/index.js +43 -1
  354. package/src/components/block-title/use-block-display-title.js +10 -7
  355. package/src/components/block-toolbar/block-name-context.js +8 -0
  356. package/src/components/block-toolbar/block-toolbar-last-item.js +12 -0
  357. package/src/components/block-toolbar/index.js +24 -2
  358. package/src/components/block-toolbar/style.scss +10 -0
  359. package/src/components/block-tools/index.js +0 -19
  360. package/src/components/block-tools/style.scss +27 -0
  361. package/src/components/block-variation-transforms/index.js +105 -36
  362. package/src/components/block-variation-transforms/style.scss +1 -1
  363. package/src/components/block-vertical-alignment-control/index.js +9 -4
  364. package/src/components/border-radius-control/index.js +0 -1
  365. package/src/components/border-radius-control/test/utils.js +4 -0
  366. package/src/components/border-radius-control/utils.js +2 -1
  367. package/src/components/button-block-appender/style.scss +5 -1
  368. package/src/components/color-palette/test/__snapshots__/control.js.snap +70 -4
  369. package/src/components/colors-gradients/control.js +1 -1
  370. package/src/components/colors-gradients/style.scss +6 -0
  371. package/src/components/contrast-checker/index.js +3 -0
  372. package/src/components/convert-to-group-buttons/index.js +6 -1
  373. package/src/components/convert-to-group-buttons/toolbar.js +87 -0
  374. package/src/components/copy-handler/index.js +3 -0
  375. package/src/components/date-format-picker/README.md +58 -0
  376. package/src/components/date-format-picker/index.js +161 -0
  377. package/src/components/date-format-picker/style.scss +31 -0
  378. package/src/components/font-sizes/font-size-picker.js +3 -0
  379. package/src/components/iframe/index.js +5 -7
  380. package/src/components/index.js +3 -0
  381. package/src/components/justify-content-control/index.js +9 -4
  382. package/src/components/keyboard-shortcuts/index.js +1 -1
  383. package/src/components/line-height-control/index.js +11 -6
  384. package/src/components/link-control/README.md +1 -1
  385. package/src/components/list-view/block-select-button.js +21 -30
  386. package/src/components/list-view/block.js +55 -13
  387. package/src/components/list-view/branch.js +37 -15
  388. package/src/components/list-view/index.js +6 -0
  389. package/src/components/list-view/style.scss +56 -14
  390. package/src/components/list-view/use-block-selection.js +15 -2
  391. package/src/components/media-placeholder/README.md +8 -0
  392. package/src/components/media-replace-flow/index.js +3 -0
  393. package/src/components/multi-selection-inspector/index.js +2 -2
  394. package/src/components/rich-text/index.js +25 -2
  395. package/src/components/rich-text/index.native.js +24 -8
  396. package/src/components/rich-text/split-value.js +5 -1
  397. package/src/components/rich-text/use-firefox-compat.js +39 -0
  398. package/src/components/rich-text/use-input-rules.js +40 -3
  399. package/src/components/skip-to-selected-block/index.js +3 -0
  400. package/src/components/url-input/style.scss +3 -2
  401. package/src/components/url-popover/image-url-input-ui.js +16 -29
  402. package/src/components/writing-flow/index.js +8 -0
  403. package/src/components/writing-flow/readme.md +28 -0
  404. package/src/components/writing-flow/use-arrow-nav.js +4 -53
  405. package/src/components/writing-flow/use-click-selection.js +65 -0
  406. package/src/components/writing-flow/use-drag-selection.js +126 -0
  407. package/src/components/writing-flow/use-input.js +112 -0
  408. package/src/components/writing-flow/use-multi-selection.js +13 -36
  409. package/src/components/writing-flow/use-selection-observer.js +153 -0
  410. package/src/components/writing-flow/use-tab-nav.js +1 -11
  411. package/src/hooks/anchor.js +8 -6
  412. package/src/hooks/border-color.js +5 -5
  413. package/src/hooks/border.js +0 -13
  414. package/src/hooks/color.js +51 -24
  415. package/src/hooks/font-family.js +5 -2
  416. package/src/hooks/font-size.js +10 -7
  417. package/src/hooks/gap.js +91 -12
  418. package/src/hooks/layout.js +11 -1
  419. package/src/hooks/style.js +40 -4
  420. package/src/hooks/test/gap.js +66 -0
  421. package/src/hooks/test/style.js +94 -0
  422. package/src/hooks/test/utils.js +1 -1
  423. package/src/hooks/utils.js +26 -0
  424. package/src/layouts/flex.js +93 -6
  425. package/src/layouts/flow.js +28 -12
  426. package/src/store/actions.js +349 -32
  427. package/src/store/defaults.js +7 -1
  428. package/src/store/reducer.js +25 -10
  429. package/src/store/selectors.js +207 -25
  430. package/src/store/test/selectors.js +305 -5
  431. package/src/style.scss +2 -0
  432. package/src/utils/dom.js +2 -1
  433. package/tsconfig.tsbuildinfo +1 -1
  434. package/build/components/block-list/use-block-props/use-multi-selection.js +0 -205
  435. package/build/components/block-list/use-block-props/use-multi-selection.js.map +0 -1
  436. package/build/components/block-list/use-block-props/use-scroll-into-view.js +0 -77
  437. package/build/components/block-list/use-block-props/use-scroll-into-view.js.map +0 -1
  438. package/build-module/components/block-list/use-block-props/use-multi-selection.js +0 -192
  439. package/build-module/components/block-list/use-block-props/use-multi-selection.js.map +0 -1
  440. package/build-module/components/block-list/use-block-props/use-scroll-into-view.js +0 -63
  441. package/build-module/components/block-list/use-block-props/use-scroll-into-view.js.map +0 -1
  442. package/src/components/block-list/use-block-props/use-multi-selection.js +0 -227
  443. package/src/components/block-list/use-block-props/use-scroll-into-view.js +0 -73
@@ -5,10 +5,11 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.__unstableMarkAutomaticChange = void 0;
8
+ exports.__unstableMarkAutomaticChange = exports.__unstableExpandSelection = exports.__unstableDeleteSelection = void 0;
9
9
  exports.__unstableMarkLastChangeAsPersistent = __unstableMarkLastChangeAsPersistent;
10
10
  exports.__unstableMarkNextChangeAsNotPersistent = __unstableMarkNextChangeAsNotPersistent;
11
11
  exports.__unstableSaveReusableBlock = __unstableSaveReusableBlock;
12
+ exports.__unstableSplitSelection = void 0;
12
13
  exports.clearSelectedBlock = clearSelectedBlock;
13
14
  exports.duplicateBlocks = void 0;
14
15
  exports.enterFormattedText = enterFormattedText;
@@ -163,6 +164,15 @@ const validateBlocksToTemplate = blocks => _ref3 => {
163
164
  * text value. See `wp.richText.create`.
164
165
  */
165
166
 
167
+ /**
168
+ * A selection object.
169
+ *
170
+ * @typedef {Object} WPSelection
171
+ *
172
+ * @property {WPBlockSelection} start The selection start.
173
+ * @property {WPBlockSelection} end The selection end.
174
+ */
175
+
166
176
  /* eslint-disable jsdoc/valid-types */
167
177
 
168
178
  /**
@@ -690,7 +700,7 @@ const insertBlocks = function (blocks, index, rootClientId) {
690
700
  * @param {?string} rootClientId Optional root client ID of block list on
691
701
  * which to insert.
692
702
  * @param {?number} index Index at which block should be inserted.
693
- * @param {Object} __unstableOptions Wether or not to show an inserter button.
703
+ * @param {Object} __unstableOptions Whether or not to show an inserter button.
694
704
  *
695
705
  * @return {Object} Action object.
696
706
  */
@@ -758,6 +768,251 @@ const synchronizeTemplate = () => _ref11 => {
758
768
  const updatedBlockList = (0, _blocks.synchronizeBlocksWithTemplate)(blocks, template);
759
769
  dispatch.resetBlocks(updatedBlockList);
760
770
  };
771
+
772
+ exports.synchronizeTemplate = synchronizeTemplate;
773
+
774
+ function mapRichTextSettings(attributeDefinition) {
775
+ const {
776
+ multiline: multilineTag,
777
+ __unstableMultilineWrapperTags: multilineWrapperTags,
778
+ __unstablePreserveWhiteSpace: preserveWhiteSpace
779
+ } = attributeDefinition;
780
+ return {
781
+ multilineTag,
782
+ multilineWrapperTags,
783
+ preserveWhiteSpace
784
+ };
785
+ }
786
+ /**
787
+ * Delete the current selection.
788
+ *
789
+ * @param {boolean} isForward
790
+ */
791
+
792
+
793
+ const __unstableDeleteSelection = isForward => _ref12 => {
794
+ let {
795
+ registry,
796
+ select,
797
+ dispatch
798
+ } = _ref12;
799
+ const selectionAnchor = select.getSelectionStart();
800
+ const selectionFocus = select.getSelectionEnd();
801
+ if (selectionAnchor.clientId === selectionFocus.clientId) return; // It's not mergeable if there's no rich text selection.
802
+
803
+ if (!selectionAnchor.attributeKey || !selectionFocus.attributeKey || typeof selectionAnchor.offset === 'undefined' || typeof selectionFocus.offset === 'undefined') return false;
804
+ const anchorRootClientId = select.getBlockRootClientId(selectionAnchor.clientId);
805
+ const focusRootClientId = select.getBlockRootClientId(selectionFocus.clientId); // It's not mergeable if the selection doesn't start and end in the same
806
+ // block list. Maybe in the future it should be allowed.
807
+
808
+ if (anchorRootClientId !== focusRootClientId) {
809
+ return;
810
+ }
811
+
812
+ const blockOrder = select.getBlockOrder(anchorRootClientId);
813
+ const anchorIndex = blockOrder.indexOf(selectionAnchor.clientId);
814
+ const focusIndex = blockOrder.indexOf(selectionFocus.clientId); // Reassign selection start and end based on order.
815
+
816
+ let selectionStart, selectionEnd;
817
+
818
+ if (anchorIndex > focusIndex) {
819
+ selectionStart = selectionFocus;
820
+ selectionEnd = selectionAnchor;
821
+ } else {
822
+ selectionStart = selectionAnchor;
823
+ selectionEnd = selectionFocus;
824
+ }
825
+
826
+ const targetSelection = isForward ? selectionEnd : selectionStart;
827
+ const targetBlock = select.getBlock(targetSelection.clientId);
828
+ const targetBlockType = (0, _blocks.getBlockType)(targetBlock.name);
829
+
830
+ if (!targetBlockType.merge) {
831
+ return;
832
+ }
833
+
834
+ const selectionA = selectionStart;
835
+ const selectionB = selectionEnd;
836
+ const blockA = select.getBlock(selectionA.clientId);
837
+ const blockAType = (0, _blocks.getBlockType)(blockA.name);
838
+ const blockB = select.getBlock(selectionB.clientId);
839
+ const blockBType = (0, _blocks.getBlockType)(blockB.name);
840
+ const htmlA = blockA.attributes[selectionA.attributeKey];
841
+ const htmlB = blockB.attributes[selectionB.attributeKey];
842
+ const attributeDefinitionA = blockAType.attributes[selectionA.attributeKey];
843
+ const attributeDefinitionB = blockBType.attributes[selectionB.attributeKey];
844
+ let valueA = (0, _richText.create)({
845
+ html: htmlA,
846
+ ...mapRichTextSettings(attributeDefinitionA)
847
+ });
848
+ let valueB = (0, _richText.create)({
849
+ html: htmlB,
850
+ ...mapRichTextSettings(attributeDefinitionB)
851
+ }); // A robust way to retain selection position through various transforms
852
+ // is to insert a special character at the position and then recover it.
853
+
854
+ const START_OF_SELECTED_AREA = '\u0086';
855
+ valueA = (0, _richText.remove)(valueA, selectionA.offset, valueA.text.length);
856
+ valueB = (0, _richText.insert)(valueB, START_OF_SELECTED_AREA, 0, selectionB.offset); // Clone the blocks so we don't manipulate the original.
857
+
858
+ const cloneA = (0, _blocks.cloneBlock)(blockA, {
859
+ [selectionA.attributeKey]: (0, _richText.toHTMLString)({
860
+ value: valueA,
861
+ ...mapRichTextSettings(attributeDefinitionA)
862
+ })
863
+ });
864
+ const cloneB = (0, _blocks.cloneBlock)(blockB, {
865
+ [selectionB.attributeKey]: (0, _richText.toHTMLString)({
866
+ value: valueB,
867
+ ...mapRichTextSettings(attributeDefinitionB)
868
+ })
869
+ });
870
+ const followingBlock = isForward ? cloneA : cloneB; // We can only merge blocks with similar types
871
+ // thus, we transform the block to merge first
872
+
873
+ const blocksWithTheSameType = blockA.name === blockB.name ? [followingBlock] : (0, _blocks.switchToBlockType)(followingBlock, targetBlockType.name); // If the block types can not match, do nothing
874
+
875
+ if (!blocksWithTheSameType || !blocksWithTheSameType.length) {
876
+ return;
877
+ }
878
+
879
+ let updatedAttributes;
880
+
881
+ if (isForward) {
882
+ const blockToMerge = blocksWithTheSameType.pop();
883
+ updatedAttributes = targetBlockType.merge(blockToMerge.attributes, cloneB.attributes);
884
+ } else {
885
+ const blockToMerge = blocksWithTheSameType.shift();
886
+ updatedAttributes = targetBlockType.merge(cloneA.attributes, blockToMerge.attributes);
887
+ }
888
+
889
+ const newAttributeKey = (0, _lodash.findKey)(updatedAttributes, v => typeof v === 'string' && v.indexOf(START_OF_SELECTED_AREA) !== -1);
890
+ const convertedHtml = updatedAttributes[newAttributeKey];
891
+ const convertedValue = (0, _richText.create)({
892
+ html: convertedHtml,
893
+ ...mapRichTextSettings(targetBlockType.attributes[newAttributeKey])
894
+ });
895
+ const newOffset = convertedValue.text.indexOf(START_OF_SELECTED_AREA);
896
+ const newValue = (0, _richText.remove)(convertedValue, newOffset, newOffset + 1);
897
+ const newHtml = (0, _richText.toHTMLString)({
898
+ value: newValue,
899
+ ...mapRichTextSettings(targetBlockType.attributes[newAttributeKey])
900
+ });
901
+ updatedAttributes[newAttributeKey] = newHtml;
902
+ const selectedBlockClientIds = select.getSelectedBlockClientIds();
903
+ const replacement = [...(isForward ? blocksWithTheSameType : []), { // Preserve the original client ID.
904
+ ...targetBlock,
905
+ attributes: { ...targetBlock.attributes,
906
+ ...updatedAttributes
907
+ }
908
+ }, ...(isForward ? [] : blocksWithTheSameType)];
909
+ registry.batch(() => {
910
+ dispatch.selectionChange(targetBlock.clientId, newAttributeKey, newOffset, newOffset);
911
+ dispatch.replaceBlocks(selectedBlockClientIds, replacement, 0, // If we don't pass the `indexToSelect` it will default to the last block.
912
+ select.getSelectedBlocksInitialCaretPosition());
913
+ });
914
+ };
915
+ /**
916
+ * Split the current selection.
917
+ */
918
+
919
+
920
+ exports.__unstableDeleteSelection = __unstableDeleteSelection;
921
+
922
+ const __unstableSplitSelection = () => _ref13 => {
923
+ let {
924
+ select,
925
+ dispatch
926
+ } = _ref13;
927
+ const selectionAnchor = select.getSelectionStart();
928
+ const selectionFocus = select.getSelectionEnd();
929
+ if (selectionAnchor.clientId === selectionFocus.clientId) return; // Can't split if the selection is not set.
930
+
931
+ if (!selectionAnchor.attributeKey || !selectionFocus.attributeKey || typeof selectionAnchor.offset === 'undefined' || typeof selectionFocus.offset === 'undefined') return;
932
+ const anchorRootClientId = select.getBlockRootClientId(selectionAnchor.clientId);
933
+ const focusRootClientId = select.getBlockRootClientId(selectionFocus.clientId); // It's not splittable if the selection doesn't start and end in the same
934
+ // block list. Maybe in the future it should be allowed.
935
+
936
+ if (anchorRootClientId !== focusRootClientId) {
937
+ return;
938
+ }
939
+
940
+ const blockOrder = select.getBlockOrder(anchorRootClientId);
941
+ const anchorIndex = blockOrder.indexOf(selectionAnchor.clientId);
942
+ const focusIndex = blockOrder.indexOf(selectionFocus.clientId); // Reassign selection start and end based on order.
943
+
944
+ let selectionStart, selectionEnd;
945
+
946
+ if (anchorIndex > focusIndex) {
947
+ selectionStart = selectionFocus;
948
+ selectionEnd = selectionAnchor;
949
+ } else {
950
+ selectionStart = selectionAnchor;
951
+ selectionEnd = selectionFocus;
952
+ }
953
+
954
+ const selectionA = selectionStart;
955
+ const selectionB = selectionEnd;
956
+ const blockA = select.getBlock(selectionA.clientId);
957
+ const blockAType = (0, _blocks.getBlockType)(blockA.name);
958
+ const blockB = select.getBlock(selectionB.clientId);
959
+ const blockBType = (0, _blocks.getBlockType)(blockB.name);
960
+ const htmlA = blockA.attributes[selectionA.attributeKey];
961
+ const htmlB = blockB.attributes[selectionB.attributeKey];
962
+ const attributeDefinitionA = blockAType.attributes[selectionA.attributeKey];
963
+ const attributeDefinitionB = blockBType.attributes[selectionB.attributeKey];
964
+ let valueA = (0, _richText.create)({
965
+ html: htmlA,
966
+ ...mapRichTextSettings(attributeDefinitionA)
967
+ });
968
+ let valueB = (0, _richText.create)({
969
+ html: htmlB,
970
+ ...mapRichTextSettings(attributeDefinitionB)
971
+ });
972
+ valueA = (0, _richText.remove)(valueA, selectionA.offset, valueA.text.length);
973
+ valueB = (0, _richText.remove)(valueB, 0, selectionB.offset);
974
+ dispatch.replaceBlocks(select.getSelectedBlockClientIds(), [{ // Preserve the original client ID.
975
+ ...blockA,
976
+ attributes: { ...blockA.attributes,
977
+ [selectionA.attributeKey]: (0, _richText.toHTMLString)({
978
+ value: valueA,
979
+ ...mapRichTextSettings(attributeDefinitionA)
980
+ })
981
+ }
982
+ }, (0, _blocks.createBlock)((0, _blocks.getDefaultBlockName)()), { // Preserve the original client ID.
983
+ ...blockB,
984
+ attributes: { ...blockB.attributes,
985
+ [selectionB.attributeKey]: (0, _richText.toHTMLString)({
986
+ value: valueB,
987
+ ...mapRichTextSettings(attributeDefinitionB)
988
+ })
989
+ }
990
+ }], 1, // If we don't pass the `indexToSelect` it will default to the last block.
991
+ select.getSelectedBlocksInitialCaretPosition());
992
+ };
993
+ /**
994
+ * Expand the selection to cover the entire blocks, removing partial selection.
995
+ */
996
+
997
+
998
+ exports.__unstableSplitSelection = __unstableSplitSelection;
999
+
1000
+ const __unstableExpandSelection = () => _ref14 => {
1001
+ let {
1002
+ select,
1003
+ dispatch
1004
+ } = _ref14;
1005
+ const selectionAnchor = select.getSelectionStart();
1006
+ const selectionFocus = select.getSelectionEnd();
1007
+ dispatch.selectionChange({
1008
+ start: {
1009
+ clientId: selectionAnchor.clientId
1010
+ },
1011
+ end: {
1012
+ clientId: selectionFocus.clientId
1013
+ }
1014
+ });
1015
+ };
761
1016
  /**
762
1017
  * Action that merges two blocks.
763
1018
  *
@@ -766,13 +1021,13 @@ const synchronizeTemplate = () => _ref11 => {
766
1021
  */
767
1022
 
768
1023
 
769
- exports.synchronizeTemplate = synchronizeTemplate;
1024
+ exports.__unstableExpandSelection = __unstableExpandSelection;
770
1025
 
771
- const mergeBlocks = (firstBlockClientId, secondBlockClientId) => _ref12 => {
1026
+ const mergeBlocks = (firstBlockClientId, secondBlockClientId) => _ref15 => {
772
1027
  let {
773
1028
  select,
774
1029
  dispatch
775
- } = _ref12;
1030
+ } = _ref15;
776
1031
  const blocks = [firstBlockClientId, secondBlockClientId];
777
1032
  dispatch({
778
1033
  type: 'MERGE_BLOCKS',
@@ -820,21 +1075,13 @@ const mergeBlocks = (firstBlockClientId, secondBlockClientId) => _ref12 => {
820
1075
  if (canRestoreTextSelection) {
821
1076
  const selectedBlock = clientId === clientIdA ? cloneA : cloneB;
822
1077
  const html = selectedBlock.attributes[attributeKey];
823
- const {
824
- multiline: multilineTag,
825
- __unstableMultilineWrapperTags: multilineWrapperTags,
826
- __unstablePreserveWhiteSpace: preserveWhiteSpace
827
- } = attributeDefinition;
828
1078
  const value = (0, _richText.insert)((0, _richText.create)({
829
1079
  html,
830
- multilineTag,
831
- multilineWrapperTags,
832
- preserveWhiteSpace
1080
+ ...mapRichTextSettings(attributeDefinition)
833
1081
  }), START_OF_SELECTED_AREA, offset, offset);
834
1082
  selectedBlock.attributes[attributeKey] = (0, _richText.toHTMLString)({
835
1083
  value,
836
- multilineTag,
837
- preserveWhiteSpace
1084
+ ...mapRichTextSettings(attributeDefinition)
838
1085
  });
839
1086
  } // We can only merge blocks with similar types
840
1087
  // thus, we transform the block to merge first.
@@ -852,23 +1099,15 @@ const mergeBlocks = (firstBlockClientId, secondBlockClientId) => _ref12 => {
852
1099
  if (canRestoreTextSelection) {
853
1100
  const newAttributeKey = (0, _lodash.findKey)(updatedAttributes, v => typeof v === 'string' && v.indexOf(START_OF_SELECTED_AREA) !== -1);
854
1101
  const convertedHtml = updatedAttributes[newAttributeKey];
855
- const {
856
- multiline: multilineTag,
857
- __unstableMultilineWrapperTags: multilineWrapperTags,
858
- __unstablePreserveWhiteSpace: preserveWhiteSpace
859
- } = blockAType.attributes[newAttributeKey];
860
1102
  const convertedValue = (0, _richText.create)({
861
1103
  html: convertedHtml,
862
- multilineTag,
863
- multilineWrapperTags,
864
- preserveWhiteSpace
1104
+ ...mapRichTextSettings(blockAType.attributes[newAttributeKey])
865
1105
  });
866
1106
  const newOffset = convertedValue.text.indexOf(START_OF_SELECTED_AREA);
867
1107
  const newValue = (0, _richText.remove)(convertedValue, newOffset, newOffset + 1);
868
1108
  const newHtml = (0, _richText.toHTMLString)({
869
1109
  value: newValue,
870
- multilineTag,
871
- preserveWhiteSpace
1110
+ ...mapRichTextSettings(blockAType.attributes[newAttributeKey])
872
1111
  });
873
1112
  updatedAttributes[newAttributeKey] = newHtml;
874
1113
  dispatch.selectionChange(blockA.clientId, newAttributeKey, newOffset, newOffset);
@@ -895,11 +1134,11 @@ exports.mergeBlocks = mergeBlocks;
895
1134
 
896
1135
  const removeBlocks = function (clientIds) {
897
1136
  let selectPrevious = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
898
- return _ref13 => {
1137
+ return _ref16 => {
899
1138
  let {
900
1139
  select,
901
1140
  dispatch
902
- } = _ref13;
1141
+ } = _ref16;
903
1142
 
904
1143
  if (!clientIds || !clientIds.length) {
905
1144
  return;
@@ -1066,22 +1305,29 @@ function exitFormattedText() {
1066
1305
  /**
1067
1306
  * Action that changes the position of the user caret.
1068
1307
  *
1069
- * @param {string} clientId The selected block client ID.
1070
- * @param {string} attributeKey The selected block attribute key.
1071
- * @param {number} startOffset The start offset.
1072
- * @param {number} endOffset The end offset.
1308
+ * @param {string|WPSelection} clientId The selected block client ID.
1309
+ * @param {string} attributeKey The selected block attribute key.
1310
+ * @param {number} startOffset The start offset.
1311
+ * @param {number} endOffset The end offset.
1073
1312
  *
1074
1313
  * @return {Object} Action object.
1075
1314
  */
1076
1315
 
1077
1316
 
1078
1317
  function selectionChange(clientId, attributeKey, startOffset, endOffset) {
1318
+ if (typeof clientId === 'string') {
1319
+ return {
1320
+ type: 'SELECTION_CHANGE',
1321
+ clientId,
1322
+ attributeKey,
1323
+ startOffset,
1324
+ endOffset
1325
+ };
1326
+ }
1327
+
1079
1328
  return {
1080
1329
  type: 'SELECTION_CHANGE',
1081
- clientId,
1082
- attributeKey,
1083
- startOffset,
1084
- endOffset
1330
+ ...clientId
1085
1331
  };
1086
1332
  }
1087
1333
  /**
@@ -1094,10 +1340,10 @@ function selectionChange(clientId, attributeKey, startOffset, endOffset) {
1094
1340
  */
1095
1341
 
1096
1342
 
1097
- const insertDefaultBlock = (attributes, rootClientId, index) => _ref14 => {
1343
+ const insertDefaultBlock = (attributes, rootClientId, index) => _ref17 => {
1098
1344
  let {
1099
1345
  dispatch
1100
- } = _ref14;
1346
+ } = _ref17;
1101
1347
  // Abort if there is no default block type (if it has been unregistered).
1102
1348
  const defaultBlockName = (0, _blocks.getDefaultBlockName)();
1103
1349
 
@@ -1194,10 +1440,10 @@ function __unstableMarkNextChangeAsNotPersistent() {
1194
1440
  */
1195
1441
 
1196
1442
 
1197
- const __unstableMarkAutomaticChange = () => _ref15 => {
1443
+ const __unstableMarkAutomaticChange = () => _ref18 => {
1198
1444
  let {
1199
1445
  dispatch
1200
- } = _ref15;
1446
+ } = _ref18;
1201
1447
  dispatch({
1202
1448
  type: 'MARK_AUTOMATIC_CHANGE'
1203
1449
  });
@@ -1221,10 +1467,10 @@ exports.__unstableMarkAutomaticChange = __unstableMarkAutomaticChange;
1221
1467
 
1222
1468
  const setNavigationMode = function () {
1223
1469
  let isNavigationMode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
1224
- return _ref16 => {
1470
+ return _ref19 => {
1225
1471
  let {
1226
1472
  dispatch
1227
- } = _ref16;
1473
+ } = _ref19;
1228
1474
  dispatch({
1229
1475
  type: 'SET_NAVIGATION_MODE',
1230
1476
  isNavigationMode
@@ -1248,10 +1494,10 @@ exports.setNavigationMode = setNavigationMode;
1248
1494
 
1249
1495
  const setBlockMovingClientId = function () {
1250
1496
  let hasBlockMovingClientId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
1251
- return _ref17 => {
1497
+ return _ref20 => {
1252
1498
  let {
1253
1499
  dispatch
1254
- } = _ref17;
1500
+ } = _ref20;
1255
1501
  dispatch({
1256
1502
  type: 'SET_BLOCK_MOVING_MODE',
1257
1503
  hasBlockMovingClientId
@@ -1274,11 +1520,11 @@ exports.setBlockMovingClientId = setBlockMovingClientId;
1274
1520
 
1275
1521
  const duplicateBlocks = function (clientIds) {
1276
1522
  let updateSelection = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
1277
- return _ref18 => {
1523
+ return _ref21 => {
1278
1524
  let {
1279
1525
  select,
1280
1526
  dispatch
1281
- } = _ref18;
1527
+ } = _ref21;
1282
1528
 
1283
1529
  if (!clientIds || !clientIds.length) {
1284
1530
  return;
@@ -1319,11 +1565,11 @@ const duplicateBlocks = function (clientIds) {
1319
1565
 
1320
1566
  exports.duplicateBlocks = duplicateBlocks;
1321
1567
 
1322
- const insertBeforeBlock = clientId => _ref19 => {
1568
+ const insertBeforeBlock = clientId => _ref22 => {
1323
1569
  let {
1324
1570
  select,
1325
1571
  dispatch
1326
- } = _ref19;
1572
+ } = _ref22;
1327
1573
 
1328
1574
  if (!clientId) {
1329
1575
  return;
@@ -1348,11 +1594,11 @@ const insertBeforeBlock = clientId => _ref19 => {
1348
1594
 
1349
1595
  exports.insertBeforeBlock = insertBeforeBlock;
1350
1596
 
1351
- const insertAfterBlock = clientId => _ref20 => {
1597
+ const insertAfterBlock = clientId => _ref23 => {
1352
1598
  let {
1353
1599
  select,
1354
1600
  dispatch
1355
- } = _ref20;
1601
+ } = _ref23;
1356
1602
 
1357
1603
  if (!clientId) {
1358
1604
  return;
@@ -1392,10 +1638,10 @@ function toggleBlockHighlight(clientId, isHighlighted) {
1392
1638
  */
1393
1639
 
1394
1640
 
1395
- const flashBlock = clientId => async _ref21 => {
1641
+ const flashBlock = clientId => async _ref24 => {
1396
1642
  let {
1397
1643
  dispatch
1398
- } = _ref21;
1644
+ } = _ref24;
1399
1645
  dispatch(toggleBlockHighlight(clientId, true));
1400
1646
  await new Promise(resolve => setTimeout(resolve, 150));
1401
1647
  dispatch(toggleBlockHighlight(clientId, false));