@wordpress/block-editor 12.6.0 → 12.8.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 (2320) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +44 -2
  3. package/build/autocompleters/block.js +9 -24
  4. package/build/autocompleters/block.js.map +1 -1
  5. package/build/autocompleters/link.js +3 -14
  6. package/build/autocompleters/link.js.map +1 -1
  7. package/build/components/alignment-control/index.js +6 -10
  8. package/build/components/alignment-control/index.js.map +1 -1
  9. package/build/components/alignment-control/ui.js +3 -11
  10. package/build/components/alignment-control/ui.js.map +1 -1
  11. package/build/components/autocomplete/index.js +8 -22
  12. package/build/components/autocomplete/index.js.map +1 -1
  13. package/build/components/block-actions/index.js +3 -26
  14. package/build/components/block-actions/index.js.map +1 -1
  15. package/build/components/block-alignment-control/constants.js +1 -3
  16. package/build/components/block-alignment-control/constants.js.map +1 -1
  17. package/build/components/block-alignment-control/index.js +6 -10
  18. package/build/components/block-alignment-control/index.js.map +1 -1
  19. package/build/components/block-alignment-control/ui.js +7 -16
  20. package/build/components/block-alignment-control/ui.js.map +1 -1
  21. package/build/components/block-alignment-control/ui.native.js +5 -13
  22. package/build/components/block-alignment-control/ui.native.js.map +1 -1
  23. package/build/components/block-alignment-control/use-available-alignments.js +10 -18
  24. package/build/components/block-alignment-control/use-available-alignments.js.map +1 -1
  25. package/build/components/block-alignment-matrix-control/index.js +1 -8
  26. package/build/components/block-alignment-matrix-control/index.js.map +1 -1
  27. package/build/components/block-breadcrumb/index.js +2 -15
  28. package/build/components/block-breadcrumb/index.js.map +1 -1
  29. package/build/components/block-caption/index.native.js +7 -16
  30. package/build/components/block-caption/index.native.js.map +1 -1
  31. package/build/components/block-card/index.js +5 -17
  32. package/build/components/block-card/index.js.map +1 -1
  33. package/build/components/block-compare/block-view.js +1 -4
  34. package/build/components/block-compare/block-view.js.map +1 -1
  35. package/build/components/block-compare/index.js +4 -12
  36. package/build/components/block-compare/index.js.map +1 -1
  37. package/build/components/block-content-overlay/index.js +1 -3
  38. package/build/components/block-content-overlay/index.js.map +1 -1
  39. package/build/components/block-context/index.js +3 -5
  40. package/build/components/block-context/index.js.map +1 -1
  41. package/build/components/block-controls/fill.js +3 -8
  42. package/build/components/block-controls/fill.js.map +1 -1
  43. package/build/components/block-controls/groups.js +1 -2
  44. package/build/components/block-controls/groups.js.map +1 -1
  45. package/build/components/block-controls/hook.js +1 -11
  46. package/build/components/block-controls/hook.js.map +1 -1
  47. package/build/components/block-controls/index.js +3 -9
  48. package/build/components/block-controls/index.js.map +1 -1
  49. package/build/components/block-controls/slot.js +3 -14
  50. package/build/components/block-controls/slot.js.map +1 -1
  51. package/build/components/block-controls/slot.native.js +5 -12
  52. package/build/components/block-controls/slot.native.js.map +1 -1
  53. package/build/components/block-controls/use-has-block-controls.js +43 -0
  54. package/build/components/block-controls/use-has-block-controls.js.map +1 -0
  55. package/build/components/block-draggable/draggable-chip.js +2 -9
  56. package/build/components/block-draggable/draggable-chip.js.map +1 -1
  57. package/build/components/block-draggable/draggable-chip.native.js +2 -9
  58. package/build/components/block-draggable/draggable-chip.native.js.map +1 -1
  59. package/build/components/block-draggable/dropping-insertion-point.native.js +2 -23
  60. package/build/components/block-draggable/dropping-insertion-point.native.js.map +1 -1
  61. package/build/components/block-draggable/index.js +3 -15
  62. package/build/components/block-draggable/index.js.map +1 -1
  63. package/build/components/block-draggable/index.native.js +7 -56
  64. package/build/components/block-draggable/index.native.js.map +1 -1
  65. package/build/components/block-draggable/use-scroll-when-dragging.js +9 -13
  66. package/build/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  67. package/build/components/block-draggable/use-scroll-when-dragging.native.js +2 -14
  68. package/build/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -1
  69. package/build/components/block-edit/context.js +1 -3
  70. package/build/components/block-edit/context.js.map +1 -1
  71. package/build/components/block-edit/edit.js +13 -23
  72. package/build/components/block-edit/edit.js.map +1 -1
  73. package/build/components/block-edit/edit.native.js +4 -14
  74. package/build/components/block-edit/edit.native.js.map +1 -1
  75. package/build/components/block-edit/index.js +5 -8
  76. package/build/components/block-edit/index.js.map +1 -1
  77. package/build/components/block-edit-visually-button/index.js +1 -8
  78. package/build/components/block-edit-visually-button/index.js.map +1 -1
  79. package/build/components/block-editing-mode/index.js +3 -12
  80. package/build/components/block-editing-mode/index.js.map +1 -1
  81. package/build/components/block-full-height-alignment-control/index.js +1 -6
  82. package/build/components/block-full-height-alignment-control/index.js.map +1 -1
  83. package/build/components/block-heading-level-dropdown/heading-level-icon.js +2 -6
  84. package/build/components/block-heading-level-dropdown/heading-level-icon.js.map +1 -1
  85. package/build/components/block-heading-level-dropdown/index.js +4 -10
  86. package/build/components/block-heading-level-dropdown/index.js.map +1 -1
  87. package/build/components/block-heading-level-dropdown/index.native.js +2 -8
  88. package/build/components/block-heading-level-dropdown/index.native.js.map +1 -1
  89. package/build/components/block-icon/index.js +2 -10
  90. package/build/components/block-icon/index.js.map +1 -1
  91. package/build/components/block-icon/index.native.js +1 -10
  92. package/build/components/block-icon/index.native.js.map +1 -1
  93. package/build/components/block-info-slot-fill/index.js +5 -13
  94. package/build/components/block-info-slot-fill/index.js.map +1 -1
  95. package/build/components/block-inspector/index.js +11 -46
  96. package/build/components/block-inspector/index.js.map +1 -1
  97. package/build/components/block-inspector/useBlockInspectorAnimationSettings.js +7 -10
  98. package/build/components/block-inspector/useBlockInspectorAnimationSettings.js.map +1 -1
  99. package/build/components/block-list/block-crash-boundary.js +1 -7
  100. package/build/components/block-list/block-crash-boundary.js.map +1 -1
  101. package/build/components/block-list/block-crash-warning.js +1 -7
  102. package/build/components/block-list/block-crash-warning.js.map +1 -1
  103. package/build/components/block-list/block-html.js +7 -15
  104. package/build/components/block-list/block-html.js.map +1 -1
  105. package/build/components/block-list/block-invalid-warning.js +3 -16
  106. package/build/components/block-list/block-invalid-warning.js.map +1 -1
  107. package/build/components/block-list/block-invalid-warning.native.js +4 -16
  108. package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
  109. package/build/components/block-list/block-list-block-context.js +1 -2
  110. package/build/components/block-list/block-list-block-context.js.map +1 -1
  111. package/build/components/block-list/block-list-context.native.js +10 -25
  112. package/build/components/block-list/block-list-context.native.js.map +1 -1
  113. package/build/components/block-list/block-list-item-cell.native.js +1 -8
  114. package/build/components/block-list/block-list-item-cell.native.js.map +1 -1
  115. package/build/components/block-list/block-list-item.native.js +5 -18
  116. package/build/components/block-list/block-list-item.native.js.map +1 -1
  117. package/build/components/block-list/block-outline.native.js +2 -9
  118. package/build/components/block-list/block-outline.native.js.map +1 -1
  119. package/build/components/block-list/block-selection-button.native.js +2 -21
  120. package/build/components/block-list/block-selection-button.native.js.map +1 -1
  121. package/build/components/block-list/block.js +39 -80
  122. package/build/components/block-list/block.js.map +1 -1
  123. package/build/components/block-list/block.native.js +40 -71
  124. package/build/components/block-list/block.native.js.map +1 -1
  125. package/build/components/block-list/grid-item.native.js +1 -6
  126. package/build/components/block-list/grid-item.native.js.map +1 -1
  127. package/build/components/block-list/index.js +11 -32
  128. package/build/components/block-list/index.js.map +1 -1
  129. package/build/components/block-list/index.native.js +18 -49
  130. package/build/components/block-list/index.native.js.map +1 -1
  131. package/build/components/block-list/insertion-point.native.js +1 -9
  132. package/build/components/block-list/insertion-point.native.js.map +1 -1
  133. package/build/components/block-list/layout.js +3 -13
  134. package/build/components/block-list/layout.js.map +1 -1
  135. package/build/components/block-list/subdirectory-icon.js +3 -6
  136. package/build/components/block-list/subdirectory-icon.js.map +1 -1
  137. package/build/components/block-list/use-block-props/index.js +10 -35
  138. package/build/components/block-list/use-block-props/index.js.map +1 -1
  139. package/build/components/block-list/use-block-props/index.native.js +5 -5
  140. package/build/components/block-list/use-block-props/index.native.js.map +1 -1
  141. package/build/components/block-list/use-block-props/use-block-class-names.js +2 -8
  142. package/build/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  143. package/build/components/block-list/use-block-props/use-block-custom-class-name.js +0 -8
  144. package/build/components/block-list/use-block-props/use-block-custom-class-name.js.map +1 -1
  145. package/build/components/block-list/use-block-props/use-block-default-class-name.js +0 -6
  146. package/build/components/block-list/use-block-props/use-block-default-class-name.js.map +1 -1
  147. package/build/components/block-list/use-block-props/use-block-moving-mode-class-names.js +3 -10
  148. package/build/components/block-list/use-block-props/use-block-moving-mode-class-names.js.map +1 -1
  149. package/build/components/block-list/use-block-props/use-block-refs.js +9 -18
  150. package/build/components/block-list/use-block-props/use-block-refs.js.map +1 -1
  151. package/build/components/block-list/use-block-props/use-focus-first-element.js +13 -27
  152. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  153. package/build/components/block-list/use-block-props/use-focus-handler.js +6 -14
  154. package/build/components/block-list/use-block-props/use-focus-handler.js.map +1 -1
  155. package/build/components/block-list/use-block-props/use-intersection-observer.js +1 -4
  156. package/build/components/block-list/use-block-props/use-intersection-observer.js.map +1 -1
  157. package/build/components/block-list/use-block-props/use-is-hovered.js +4 -8
  158. package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  159. package/build/components/block-list/use-block-props/use-nav-mode-exit.js +2 -6
  160. package/build/components/block-list/use-block-props/use-nav-mode-exit.js.map +1 -1
  161. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js +2 -15
  162. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  163. package/build/components/block-list/use-in-between-inserter.js +15 -37
  164. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  165. package/build/components/block-list-appender/index.js +12 -32
  166. package/build/components/block-list-appender/index.js.map +1 -1
  167. package/build/components/block-list-appender/index.native.js +1 -14
  168. package/build/components/block-list-appender/index.native.js.map +1 -1
  169. package/build/components/block-lock/index.js +0 -5
  170. package/build/components/block-lock/index.js.map +1 -1
  171. package/build/components/block-lock/menu-item.js +1 -10
  172. package/build/components/block-lock/menu-item.js.map +1 -1
  173. package/build/components/block-lock/modal.js +10 -22
  174. package/build/components/block-lock/modal.js.map +1 -1
  175. package/build/components/block-lock/toolbar.js +6 -16
  176. package/build/components/block-lock/toolbar.js.map +1 -1
  177. package/build/components/block-lock/use-block-lock.js +0 -3
  178. package/build/components/block-lock/use-block-lock.js.map +1 -1
  179. package/build/components/block-media-update-progress/index.native.js +9 -64
  180. package/build/components/block-media-update-progress/index.native.js.map +1 -1
  181. package/build/components/block-mover/button.js +1 -23
  182. package/build/components/block-mover/button.js.map +1 -1
  183. package/build/components/block-mover/index.js +4 -18
  184. package/build/components/block-mover/index.js.map +1 -1
  185. package/build/components/block-mover/index.native.js +3 -21
  186. package/build/components/block-mover/index.native.js.map +1 -1
  187. package/build/components/block-mover/mover-description.js +41 -63
  188. package/build/components/block-mover/mover-description.js.map +1 -1
  189. package/build/components/block-mover/mover-description.native.js +1 -20
  190. package/build/components/block-mover/mover-description.native.js.map +1 -1
  191. package/build/components/block-navigation/dropdown.js +6 -17
  192. package/build/components/block-navigation/dropdown.js.map +1 -1
  193. package/build/components/block-parent-selector/index.js +11 -43
  194. package/build/components/block-parent-selector/index.js.map +1 -1
  195. package/build/components/block-pattern-setup/constants.js.map +1 -1
  196. package/build/components/block-pattern-setup/index.js +3 -23
  197. package/build/components/block-pattern-setup/index.js.map +1 -1
  198. package/build/components/block-pattern-setup/setup-toolbar.js +1 -9
  199. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  200. package/build/components/block-pattern-setup/use-patterns-setup.js +1 -6
  201. package/build/components/block-pattern-setup/use-patterns-setup.js.map +1 -1
  202. package/build/components/block-patterns-list/index.js +3 -17
  203. package/build/components/block-patterns-list/index.js.map +1 -1
  204. package/build/components/block-popover/drop-zone.js +1 -12
  205. package/build/components/block-popover/drop-zone.js.map +1 -1
  206. package/build/components/block-popover/inbetween.js +16 -33
  207. package/build/components/block-popover/inbetween.js.map +1 -1
  208. package/build/components/block-popover/index.js +15 -26
  209. package/build/components/block-popover/index.js.map +1 -1
  210. package/build/components/block-popover/use-popover-scroll.js +2 -7
  211. package/build/components/block-popover/use-popover-scroll.js.map +1 -1
  212. package/build/components/block-preview/auto.js +15 -19
  213. package/build/components/block-preview/auto.js.map +1 -1
  214. package/build/components/block-preview/index.js +8 -24
  215. package/build/components/block-preview/index.js.map +1 -1
  216. package/build/components/block-quick-navigation/index.js +2 -13
  217. package/build/components/block-quick-navigation/index.js.map +1 -1
  218. package/build/components/block-removal-warning-modal/index.js +5 -15
  219. package/build/components/block-removal-warning-modal/index.js.map +1 -1
  220. package/build/components/block-selection-clearer/index.js +2 -11
  221. package/build/components/block-selection-clearer/index.js.map +1 -1
  222. package/build/components/block-settings/button.native.js +3 -10
  223. package/build/components/block-settings/button.native.js.map +1 -1
  224. package/build/components/block-settings/container.native.js +3 -9
  225. package/build/components/block-settings/container.native.js.map +1 -1
  226. package/build/components/block-settings/index.native.js +0 -5
  227. package/build/components/block-settings/index.native.js.map +1 -1
  228. package/build/components/block-settings-menu/block-convert-button.js +1 -5
  229. package/build/components/block-settings-menu/block-convert-button.js.map +1 -1
  230. package/build/components/block-settings-menu/block-html-convert-button.js +0 -9
  231. package/build/components/block-settings-menu/block-html-convert-button.js.map +1 -1
  232. package/build/components/block-settings-menu/block-mode-toggle.js +1 -13
  233. package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  234. package/build/components/block-settings-menu/block-settings-dropdown.js +16 -53
  235. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  236. package/build/components/block-settings-menu/block-settings-menu-first-item.js +1 -2
  237. package/build/components/block-settings-menu/block-settings-menu-first-item.js.map +1 -1
  238. package/build/components/block-settings-menu/index.js +1 -6
  239. package/build/components/block-settings-menu/index.js.map +1 -1
  240. package/build/components/block-settings-menu-controls/index.js +13 -22
  241. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  242. package/build/components/block-styles/index.js +2 -20
  243. package/build/components/block-styles/index.js.map +1 -1
  244. package/build/components/block-styles/index.native.js +1 -17
  245. package/build/components/block-styles/index.native.js.map +1 -1
  246. package/build/components/block-styles/menu-items.js +1 -9
  247. package/build/components/block-styles/menu-items.js.map +1 -1
  248. package/build/components/block-styles/preview-panel.js +5 -8
  249. package/build/components/block-styles/preview-panel.js.map +1 -1
  250. package/build/components/block-styles/preview.native.js +3 -19
  251. package/build/components/block-styles/preview.native.js.map +1 -1
  252. package/build/components/block-styles/use-styles-for-block.js +1 -15
  253. package/build/components/block-styles/use-styles-for-block.js.map +1 -1
  254. package/build/components/block-styles/utils.js +3 -16
  255. package/build/components/block-styles/utils.js.map +1 -1
  256. package/build/components/block-switcher/block-styles-menu.js +1 -6
  257. package/build/components/block-switcher/block-styles-menu.js.map +1 -1
  258. package/build/components/block-switcher/block-transformations-menu.js +4 -18
  259. package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
  260. package/build/components/block-switcher/block-transformations-menu.native.js +4 -18
  261. package/build/components/block-switcher/block-transformations-menu.native.js.map +1 -1
  262. package/build/components/block-switcher/block-variation-transformations.js +3 -16
  263. package/build/components/block-switcher/block-variation-transformations.js.map +1 -1
  264. package/build/components/block-switcher/index.js +12 -43
  265. package/build/components/block-switcher/index.js.map +1 -1
  266. package/build/components/block-switcher/pattern-transformations-menu.js +3 -14
  267. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  268. package/build/components/block-switcher/preview-block-popover.js +1 -6
  269. package/build/components/block-switcher/preview-block-popover.js.map +1 -1
  270. package/build/components/block-switcher/use-transformed-patterns.js +12 -27
  271. package/build/components/block-switcher/use-transformed-patterns.js.map +1 -1
  272. package/build/components/block-switcher/utils.js +5 -10
  273. package/build/components/block-switcher/utils.js.map +1 -1
  274. package/build/components/block-title/index.js +0 -3
  275. package/build/components/block-title/index.js.map +1 -1
  276. package/build/components/block-title/use-block-display-title.js +2 -15
  277. package/build/components/block-title/use-block-display-title.js.map +1 -1
  278. package/build/components/block-toolbar/block-name-context.js +1 -3
  279. package/build/components/block-toolbar/block-name-context.js.map +1 -1
  280. package/build/components/block-toolbar/block-toolbar-last-item.js +1 -2
  281. package/build/components/block-toolbar/block-toolbar-last-item.js.map +1 -1
  282. package/build/components/block-toolbar/block-toolbar-menu.native.js +24 -43
  283. package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  284. package/build/components/block-toolbar/index.js +10 -64
  285. package/build/components/block-toolbar/index.js.map +1 -1
  286. package/build/components/block-toolbar/index.native.js +1 -15
  287. package/build/components/block-toolbar/index.native.js.map +1 -1
  288. package/build/components/block-toolbar/utils.js +58 -74
  289. package/build/components/block-toolbar/utils.js.map +1 -1
  290. package/build/components/block-tools/back-compat.js +3 -11
  291. package/build/components/block-tools/back-compat.js.map +1 -1
  292. package/build/components/block-tools/block-contextual-toolbar.js +50 -23
  293. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  294. package/build/components/block-tools/block-selection-button.js +8 -43
  295. package/build/components/block-tools/block-selection-button.js.map +1 -1
  296. package/build/components/block-tools/index.js +9 -32
  297. package/build/components/block-tools/index.js.map +1 -1
  298. package/build/components/block-tools/insertion-point.js +8 -30
  299. package/build/components/block-tools/insertion-point.js.map +1 -1
  300. package/build/components/block-tools/selected-block-popover.js +12 -35
  301. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  302. package/build/components/block-tools/use-block-toolbar-popover-props.js +35 -36
  303. package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  304. package/build/components/block-tools/zoom-out-mode-inserters.js +3 -12
  305. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  306. package/build/components/block-types-list/index.js +1 -10
  307. package/build/components/block-types-list/index.js.map +1 -1
  308. package/build/components/block-types-list/index.native.js +3 -22
  309. package/build/components/block-types-list/index.native.js.map +1 -1
  310. package/build/components/block-variation-picker/index.js +1 -8
  311. package/build/components/block-variation-picker/index.js.map +1 -1
  312. package/build/components/block-variation-picker/index.native.js +11 -36
  313. package/build/components/block-variation-picker/index.native.js.map +1 -1
  314. package/build/components/block-variation-transforms/index.js +8 -22
  315. package/build/components/block-variation-transforms/index.js.map +1 -1
  316. package/build/components/block-vertical-alignment-control/icons.js +1 -3
  317. package/build/components/block-vertical-alignment-control/icons.js.map +1 -1
  318. package/build/components/block-vertical-alignment-control/index.js +6 -10
  319. package/build/components/block-vertical-alignment-control/index.js.map +1 -1
  320. package/build/components/block-vertical-alignment-control/ui.js +4 -10
  321. package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
  322. package/build/components/border-radius-control/all-input-control.js +8 -13
  323. package/build/components/border-radius-control/all-input-control.js.map +1 -1
  324. package/build/components/border-radius-control/index.js +5 -16
  325. package/build/components/border-radius-control/index.js.map +1 -1
  326. package/build/components/border-radius-control/input-controls.js +14 -15
  327. package/build/components/border-radius-control/input-controls.js.map +1 -1
  328. package/build/components/border-radius-control/linked-button.js +5 -7
  329. package/build/components/border-radius-control/linked-button.js.map +1 -1
  330. package/build/components/border-radius-control/utils.js +9 -17
  331. package/build/components/border-radius-control/utils.js.map +1 -1
  332. package/build/components/button-block-appender/index.js +5 -19
  333. package/build/components/button-block-appender/index.js.map +1 -1
  334. package/build/components/button-block-appender/index.native.js +4 -13
  335. package/build/components/button-block-appender/index.native.js.map +1 -1
  336. package/build/components/caption/index.native.js +1 -7
  337. package/build/components/caption/index.native.js.map +1 -1
  338. package/build/components/child-layout-control/index.js +8 -13
  339. package/build/components/child-layout-control/index.js.map +1 -1
  340. package/build/components/color-palette/control.js +3 -5
  341. package/build/components/color-palette/control.js.map +1 -1
  342. package/build/components/color-palette/index.js +0 -6
  343. package/build/components/color-palette/index.js.map +1 -1
  344. package/build/components/color-palette/with-color-context.js +2 -8
  345. package/build/components/color-palette/with-color-context.js.map +1 -1
  346. package/build/components/color-style-selector/index.js +3 -14
  347. package/build/components/color-style-selector/index.js.map +1 -1
  348. package/build/components/colors/index.js +0 -4
  349. package/build/components/colors/index.js.map +1 -1
  350. package/build/components/colors/utils.js +5 -20
  351. package/build/components/colors/utils.js.map +1 -1
  352. package/build/components/colors/with-colors.js +15 -30
  353. package/build/components/colors/with-colors.js.map +1 -1
  354. package/build/components/colors-gradients/control.js +7 -19
  355. package/build/components/colors-gradients/control.js.map +1 -1
  356. package/build/components/colors-gradients/dropdown.js +15 -21
  357. package/build/components/colors-gradients/dropdown.js.map +1 -1
  358. package/build/components/colors-gradients/panel-color-gradient-settings.js +7 -20
  359. package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  360. package/build/components/colors-gradients/panel-color-gradient-settings.native.js +1 -5
  361. package/build/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
  362. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +0 -13
  363. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  364. package/build/components/contrast-checker/index.js +20 -31
  365. package/build/components/contrast-checker/index.js.map +1 -1
  366. package/build/components/contrast-checker/index.native.js +4 -21
  367. package/build/components/contrast-checker/index.native.js.map +1 -1
  368. package/build/components/convert-to-group-buttons/index.js +1 -18
  369. package/build/components/convert-to-group-buttons/index.js.map +1 -1
  370. package/build/components/convert-to-group-buttons/index.native.js +5 -17
  371. package/build/components/convert-to-group-buttons/index.native.js.map +1 -1
  372. package/build/components/convert-to-group-buttons/toolbar.js +3 -19
  373. package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
  374. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js +4 -7
  375. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  376. package/build/components/copy-handler/index.js +24 -53
  377. package/build/components/copy-handler/index.js.map +1 -1
  378. package/build/components/date-format-picker/index.js +2 -8
  379. package/build/components/date-format-picker/index.js.map +1 -1
  380. package/build/components/default-block-appender/index.js +4 -18
  381. package/build/components/default-block-appender/index.js.map +1 -1
  382. package/build/components/default-block-appender/index.native.js +14 -21
  383. package/build/components/default-block-appender/index.native.js.map +1 -1
  384. package/build/components/default-style-picker/index.js +4 -12
  385. package/build/components/default-style-picker/index.js.map +1 -1
  386. package/build/components/dimensions-tool/aspect-ratio-tool.js +1 -6
  387. package/build/components/dimensions-tool/aspect-ratio-tool.js.map +1 -1
  388. package/build/components/dimensions-tool/index.js +37 -36
  389. package/build/components/dimensions-tool/index.js.map +1 -1
  390. package/build/components/dimensions-tool/scale-tool.js +1 -5
  391. package/build/components/dimensions-tool/scale-tool.js.map +1 -1
  392. package/build/components/dimensions-tool/width-height-tool.js +5 -15
  393. package/build/components/dimensions-tool/width-height-tool.js.map +1 -1
  394. package/build/components/duotone/components.js +5 -11
  395. package/build/components/duotone/components.js.map +1 -1
  396. package/build/components/duotone/index.js +0 -2
  397. package/build/components/duotone/index.js.map +1 -1
  398. package/build/components/duotone/utils.js +0 -2
  399. package/build/components/duotone/utils.js.map +1 -1
  400. package/build/components/duotone-control/index.js +1 -10
  401. package/build/components/duotone-control/index.js.map +1 -1
  402. package/build/components/editable-text/index.js +4 -8
  403. package/build/components/editable-text/index.js.map +1 -1
  404. package/build/components/editor-styles/index.js +5 -17
  405. package/build/components/editor-styles/index.js.map +1 -1
  406. package/build/components/floating-toolbar/index.native.js +3 -18
  407. package/build/components/floating-toolbar/index.native.js.map +1 -1
  408. package/build/components/floating-toolbar/nav-up-icon.js +1 -5
  409. package/build/components/floating-toolbar/nav-up-icon.js.map +1 -1
  410. package/build/components/font-appearance-control/index.js +25 -30
  411. package/build/components/font-appearance-control/index.js.map +1 -1
  412. package/build/components/font-family/index.js +1 -9
  413. package/build/components/font-family/index.js.map +1 -1
  414. package/build/components/font-sizes/fluid-utils.js +52 -51
  415. package/build/components/font-sizes/fluid-utils.js.map +1 -1
  416. package/build/components/font-sizes/font-size-picker.js +4 -8
  417. package/build/components/font-sizes/font-size-picker.js.map +1 -1
  418. package/build/components/font-sizes/index.js +0 -5
  419. package/build/components/font-sizes/index.js.map +1 -1
  420. package/build/components/font-sizes/index.native.js +0 -4
  421. package/build/components/font-sizes/index.native.js.map +1 -1
  422. package/build/components/font-sizes/utils.js +2 -12
  423. package/build/components/font-sizes/utils.js.map +1 -1
  424. package/build/components/font-sizes/with-font-sizes.js +15 -27
  425. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  426. package/build/components/global-styles/advanced-panel.js +3 -14
  427. package/build/components/global-styles/advanced-panel.js.map +1 -1
  428. package/build/components/global-styles/behaviors-panel.js +64 -0
  429. package/build/components/global-styles/behaviors-panel.js.map +1 -0
  430. package/build/components/global-styles/border-panel.js +22 -43
  431. package/build/components/global-styles/border-panel.js.map +1 -1
  432. package/build/components/global-styles/color-panel.js +30 -69
  433. package/build/components/global-styles/color-panel.js.map +1 -1
  434. package/build/components/global-styles/color-panel.native.js +5 -19
  435. package/build/components/global-styles/color-panel.native.js.map +1 -1
  436. package/build/components/global-styles/context.js +1 -2
  437. package/build/components/global-styles/context.js.map +1 -1
  438. package/build/components/global-styles/dimensions-panel.js +33 -92
  439. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  440. package/build/components/global-styles/effects-panel.js +7 -27
  441. package/build/components/global-styles/effects-panel.js.map +1 -1
  442. package/build/components/global-styles/filters-panel.js +9 -25
  443. package/build/components/global-styles/filters-panel.js.map +1 -1
  444. package/build/components/global-styles/get-block-css-selector.js +33 -31
  445. package/build/components/global-styles/get-block-css-selector.js.map +1 -1
  446. package/build/components/global-styles/hooks.js +136 -71
  447. package/build/components/global-styles/hooks.js.map +1 -1
  448. package/build/components/global-styles/index.js +19 -15
  449. package/build/components/global-styles/index.js.map +1 -1
  450. package/build/components/global-styles/typography-panel.js +25 -87
  451. package/build/components/global-styles/typography-panel.js.map +1 -1
  452. package/build/components/global-styles/typography-utils.js +8 -16
  453. package/build/components/global-styles/typography-utils.js.map +1 -1
  454. package/build/components/global-styles/use-global-styles-output.js +96 -190
  455. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  456. package/build/components/global-styles/utils.js +12 -49
  457. package/build/components/global-styles/utils.js.map +1 -1
  458. package/build/components/gradients/index.js +0 -2
  459. package/build/components/gradients/index.js.map +1 -1
  460. package/build/components/gradients/index.native.js +0 -4
  461. package/build/components/gradients/index.native.js.map +1 -1
  462. package/build/components/gradients/use-gradient.js +3 -21
  463. package/build/components/gradients/use-gradient.js.map +1 -1
  464. package/build/components/gradients/with-gradient.js +3 -5
  465. package/build/components/gradients/with-gradient.js.map +1 -1
  466. package/build/components/height-control/index.js +2 -12
  467. package/build/components/height-control/index.js.map +1 -1
  468. package/build/components/iframe/index.js +23 -46
  469. package/build/components/iframe/index.js.map +1 -1
  470. package/build/components/iframe/use-compatibility-styles.js +8 -20
  471. package/build/components/iframe/use-compatibility-styles.js.map +1 -1
  472. package/build/components/image-editor/aspect-ratio-dropdown.js +3 -9
  473. package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  474. package/build/components/image-editor/constants.js.map +1 -1
  475. package/build/components/image-editor/context.js +3 -9
  476. package/build/components/image-editor/context.js.map +1 -1
  477. package/build/components/image-editor/cropper.js +3 -11
  478. package/build/components/image-editor/cropper.js.map +1 -1
  479. package/build/components/image-editor/form-controls.js +1 -5
  480. package/build/components/image-editor/form-controls.js.map +1 -1
  481. package/build/components/image-editor/index.js +1 -11
  482. package/build/components/image-editor/index.js.map +1 -1
  483. package/build/components/image-editor/rotation-button.js +1 -6
  484. package/build/components/image-editor/rotation-button.js.map +1 -1
  485. package/build/components/image-editor/use-save-image.js +5 -15
  486. package/build/components/image-editor/use-save-image.js.map +1 -1
  487. package/build/components/image-editor/use-transform-image.js +1 -12
  488. package/build/components/image-editor/use-transform-image.js.map +1 -1
  489. package/build/components/image-editor/zoom-dropdown.js +1 -7
  490. package/build/components/image-editor/zoom-dropdown.js.map +1 -1
  491. package/build/components/image-size-control/index.js +1 -9
  492. package/build/components/image-size-control/index.js.map +1 -1
  493. package/build/components/image-size-control/use-dimension-handler.js +7 -14
  494. package/build/components/image-size-control/use-dimension-handler.js.map +1 -1
  495. package/build/components/index.js +25 -115
  496. package/build/components/index.js.map +1 -1
  497. package/build/components/index.native.js +0 -53
  498. package/build/components/index.native.js.map +1 -1
  499. package/build/components/inner-blocks/button-block-appender.js +1 -9
  500. package/build/components/inner-blocks/button-block-appender.js.map +1 -1
  501. package/build/components/inner-blocks/default-block-appender.js +1 -11
  502. package/build/components/inner-blocks/default-block-appender.js.map +1 -1
  503. package/build/components/inner-blocks/index.js +22 -38
  504. package/build/components/inner-blocks/index.js.map +1 -1
  505. package/build/components/inner-blocks/index.native.js +18 -31
  506. package/build/components/inner-blocks/index.native.js.map +1 -1
  507. package/build/components/inner-blocks/use-block-context.js +0 -9
  508. package/build/components/inner-blocks/use-block-context.js.map +1 -1
  509. package/build/components/inner-blocks/use-inner-block-template-sync.js +10 -18
  510. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  511. package/build/components/inner-blocks/use-nested-settings-update.js +18 -27
  512. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  513. package/build/components/inner-blocks/with-client-id.js +3 -5
  514. package/build/components/inner-blocks/with-client-id.js.map +1 -1
  515. package/build/components/inserter/block-patterns-explorer/explorer.js +3 -10
  516. package/build/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
  517. package/build/components/inserter/block-patterns-explorer/patterns-list.js +5 -24
  518. package/build/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
  519. package/build/components/inserter/block-patterns-explorer/sidebar.js +1 -7
  520. package/build/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
  521. package/build/components/inserter/block-patterns-tab.js +12 -33
  522. package/build/components/inserter/block-patterns-tab.js.map +1 -1
  523. package/build/components/inserter/block-types-tab.js +9 -25
  524. package/build/components/inserter/block-types-tab.js.map +1 -1
  525. package/build/components/inserter/block-types-tab.native.js +1 -14
  526. package/build/components/inserter/block-types-tab.native.js.map +1 -1
  527. package/build/components/inserter/hooks/use-block-type-impressions.native.js +9 -12
  528. package/build/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
  529. package/build/components/inserter/hooks/use-block-types-state.js +6 -8
  530. package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
  531. package/build/components/inserter/hooks/use-clipboard-block.native.js +1 -7
  532. package/build/components/inserter/hooks/use-clipboard-block.native.js.map +1 -1
  533. package/build/components/inserter/hooks/use-debounced-input.js +6 -10
  534. package/build/components/inserter/hooks/use-debounced-input.js.map +1 -1
  535. package/build/components/inserter/hooks/use-insertion-point.js +2 -15
  536. package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
  537. package/build/components/inserter/hooks/use-patterns-state.js +6 -13
  538. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  539. package/build/components/inserter/index.js +29 -66
  540. package/build/components/inserter/index.js.map +1 -1
  541. package/build/components/inserter/index.native.js +23 -71
  542. package/build/components/inserter/index.native.js.map +1 -1
  543. package/build/components/inserter/library.js +1 -11
  544. package/build/components/inserter/library.js.map +1 -1
  545. package/build/components/inserter/media-tab/hooks.js +12 -27
  546. package/build/components/inserter/media-tab/hooks.js.map +1 -1
  547. package/build/components/inserter/media-tab/index.js +0 -4
  548. package/build/components/inserter/media-tab/index.js.map +1 -1
  549. package/build/components/inserter/media-tab/media-list.js +3 -7
  550. package/build/components/inserter/media-tab/media-list.js.map +1 -1
  551. package/build/components/inserter/media-tab/media-panel.js +1 -13
  552. package/build/components/inserter/media-tab/media-panel.js.map +1 -1
  553. package/build/components/inserter/media-tab/media-preview.js +10 -35
  554. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  555. package/build/components/inserter/media-tab/media-tab.js +3 -18
  556. package/build/components/inserter/media-tab/media-tab.js.map +1 -1
  557. package/build/components/inserter/media-tab/utils.js +2 -6
  558. package/build/components/inserter/media-tab/utils.js.map +1 -1
  559. package/build/components/inserter/menu.js +2 -22
  560. package/build/components/inserter/menu.js.map +1 -1
  561. package/build/components/inserter/menu.native.js +5 -24
  562. package/build/components/inserter/menu.native.js.map +1 -1
  563. package/build/components/inserter/mobile-tab-navigation.js +3 -7
  564. package/build/components/inserter/mobile-tab-navigation.js.map +1 -1
  565. package/build/components/inserter/no-results.js +1 -5
  566. package/build/components/inserter/no-results.js.map +1 -1
  567. package/build/components/inserter/no-results.native.js +1 -8
  568. package/build/components/inserter/no-results.native.js.map +1 -1
  569. package/build/components/inserter/panel.js +1 -4
  570. package/build/components/inserter/panel.js.map +1 -1
  571. package/build/components/inserter/preview-panel.js +14 -15
  572. package/build/components/inserter/preview-panel.js.map +1 -1
  573. package/build/components/inserter/quick-inserter.js +4 -18
  574. package/build/components/inserter/quick-inserter.js.map +1 -1
  575. package/build/components/inserter/reusable-block-rename-hint.js +2 -16
  576. package/build/components/inserter/reusable-block-rename-hint.js.map +1 -1
  577. package/build/components/inserter/reusable-blocks-tab.js +6 -19
  578. package/build/components/inserter/reusable-blocks-tab.js.map +1 -1
  579. package/build/components/inserter/reusable-blocks-tab.native.js +1 -9
  580. package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
  581. package/build/components/inserter/search-items.js +21 -41
  582. package/build/components/inserter/search-items.js.map +1 -1
  583. package/build/components/inserter/search-results.js +6 -37
  584. package/build/components/inserter/search-results.js.map +1 -1
  585. package/build/components/inserter/search-results.native.js +1 -15
  586. package/build/components/inserter/search-results.native.js.map +1 -1
  587. package/build/components/inserter/tabs.js +1 -17
  588. package/build/components/inserter/tabs.js.map +1 -1
  589. package/build/components/inserter/tabs.native.js +5 -20
  590. package/build/components/inserter/tabs.native.js.map +1 -1
  591. package/build/components/inserter/tips.js +3 -7
  592. package/build/components/inserter/tips.js.map +1 -1
  593. package/build/components/inserter/utils.native.js +2 -9
  594. package/build/components/inserter/utils.native.js.map +1 -1
  595. package/build/components/inserter-draggable-blocks/index.js +1 -8
  596. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  597. package/build/components/inserter-list-item/index.js +2 -17
  598. package/build/components/inserter-list-item/index.js.map +1 -1
  599. package/build/components/inserter-listbox/context.js +1 -2
  600. package/build/components/inserter-listbox/context.js.map +1 -1
  601. package/build/components/inserter-listbox/group.js +1 -7
  602. package/build/components/inserter-listbox/group.js.map +1 -1
  603. package/build/components/inserter-listbox/index.js +1 -9
  604. package/build/components/inserter-listbox/index.js.map +1 -1
  605. package/build/components/inserter-listbox/item.js +9 -14
  606. package/build/components/inserter-listbox/item.js.map +1 -1
  607. package/build/components/inserter-listbox/row.js +1 -7
  608. package/build/components/inserter-listbox/row.js.map +1 -1
  609. package/build/components/inserter-menu-extension/index.js +1 -2
  610. package/build/components/inserter-menu-extension/index.js.map +1 -1
  611. package/build/components/inspector-controls/block-support-slot-container.js +3 -4
  612. package/build/components/inspector-controls/block-support-slot-container.js.map +1 -1
  613. package/build/components/inspector-controls/block-support-tools-panel.js +7 -9
  614. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  615. package/build/components/inspector-controls/fill.js +4 -16
  616. package/build/components/inspector-controls/fill.js.map +1 -1
  617. package/build/components/inspector-controls/fill.native.js +3 -15
  618. package/build/components/inspector-controls/fill.native.js.map +1 -1
  619. package/build/components/inspector-controls/groups.js +1 -2
  620. package/build/components/inspector-controls/groups.js.map +1 -1
  621. package/build/components/inspector-controls/index.js +8 -12
  622. package/build/components/inspector-controls/index.js.map +1 -1
  623. package/build/components/inspector-controls/slot.js +5 -16
  624. package/build/components/inspector-controls/slot.js.map +1 -1
  625. package/build/components/inspector-controls/slot.native.js +3 -10
  626. package/build/components/inspector-controls/slot.native.js.map +1 -1
  627. package/build/components/inspector-controls-tabs/advanced-controls-panel.js +1 -10
  628. package/build/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -1
  629. package/build/components/inspector-controls-tabs/index.js +1 -11
  630. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  631. package/build/components/inspector-controls-tabs/position-controls-panel.js +3 -14
  632. package/build/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
  633. package/build/components/inspector-controls-tabs/settings-tab-hint.js +1 -13
  634. package/build/components/inspector-controls-tabs/settings-tab-hint.js.map +1 -1
  635. package/build/components/inspector-controls-tabs/settings-tab.js +1 -8
  636. package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  637. package/build/components/inspector-controls-tabs/styles-tab.js +1 -10
  638. package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  639. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +14 -24
  640. package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  641. package/build/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js +0 -2
  642. package/build/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js.map +1 -1
  643. package/build/components/inspector-controls-tabs/utils.js +1 -3
  644. package/build/components/inspector-controls-tabs/utils.js.map +1 -1
  645. package/build/components/inspector-popover-header/index.js +1 -5
  646. package/build/components/inspector-popover-header/index.js.map +1 -1
  647. package/build/components/justify-content-control/index.js +6 -10
  648. package/build/components/justify-content-control/index.js.map +1 -1
  649. package/build/components/justify-content-control/ui.js +1 -8
  650. package/build/components/justify-content-control/ui.js.map +1 -1
  651. package/build/components/keyboard-shortcuts/index.js +10 -7
  652. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  653. package/build/components/letter-spacing-control/index.js +2 -7
  654. package/build/components/letter-spacing-control/index.js.map +1 -1
  655. package/build/components/line-height-control/index.js +21 -37
  656. package/build/components/line-height-control/index.js.map +1 -1
  657. package/build/components/line-height-control/index.native.js +5 -7
  658. package/build/components/line-height-control/index.native.js.map +1 -1
  659. package/build/components/line-height-control/utils.js +10 -6
  660. package/build/components/line-height-control/utils.js.map +1 -1
  661. package/build/components/link-control/constants.js +1 -2
  662. package/build/components/link-control/constants.js.map +1 -1
  663. package/build/components/link-control/index.js +79 -52
  664. package/build/components/link-control/index.js.map +1 -1
  665. package/build/components/link-control/is-url-like.js +4 -8
  666. package/build/components/link-control/is-url-like.js.map +1 -1
  667. package/build/components/link-control/link-preview.js +11 -19
  668. package/build/components/link-control/link-preview.js.map +1 -1
  669. package/build/components/link-control/search-create-button.js +4 -12
  670. package/build/components/link-control/search-create-button.js.map +1 -1
  671. package/build/components/link-control/search-input.js +15 -28
  672. package/build/components/link-control/search-input.js.map +1 -1
  673. package/build/components/link-control/search-item.js +7 -19
  674. package/build/components/link-control/search-item.js.map +1 -1
  675. package/build/components/link-control/search-results.js +13 -22
  676. package/build/components/link-control/search-results.js.map +1 -1
  677. package/build/components/link-control/settings-drawer.js +1 -7
  678. package/build/components/link-control/settings-drawer.js.map +1 -1
  679. package/build/components/link-control/settings.js +3 -9
  680. package/build/components/link-control/settings.js.map +1 -1
  681. package/build/components/link-control/use-create-page.js +5 -12
  682. package/build/components/link-control/use-create-page.js.map +1 -1
  683. package/build/components/link-control/use-internal-value.js +9 -12
  684. package/build/components/link-control/use-internal-value.js.map +1 -1
  685. package/build/components/link-control/use-rich-url-data.js +9 -14
  686. package/build/components/link-control/use-rich-url-data.js.map +1 -1
  687. package/build/components/link-control/use-search-handler.js +10 -24
  688. package/build/components/link-control/use-search-handler.js.map +1 -1
  689. package/build/components/link-control/viewer-slot.js +1 -2
  690. package/build/components/link-control/viewer-slot.js.map +1 -1
  691. package/build/components/list-view/appender.js +4 -18
  692. package/build/components/list-view/appender.js.map +1 -1
  693. package/build/components/list-view/aria-referenced-text.js +0 -2
  694. package/build/components/list-view/aria-referenced-text.js.map +1 -1
  695. package/build/components/list-view/block-contents.js +4 -11
  696. package/build/components/list-view/block-contents.js.map +1 -1
  697. package/build/components/list-view/block-select-button.js +31 -32
  698. package/build/components/list-view/block-select-button.js.map +1 -1
  699. package/build/components/list-view/block.js +24 -46
  700. package/build/components/list-view/block.js.map +1 -1
  701. package/build/components/list-view/branch.js +7 -37
  702. package/build/components/list-view/branch.js.map +1 -1
  703. package/build/components/list-view/context.js +1 -4
  704. package/build/components/list-view/context.js.map +1 -1
  705. package/build/components/list-view/drop-indicator.js +35 -47
  706. package/build/components/list-view/drop-indicator.js.map +1 -1
  707. package/build/components/list-view/expander.js +3 -5
  708. package/build/components/list-view/expander.js.map +1 -1
  709. package/build/components/list-view/index.js +18 -39
  710. package/build/components/list-view/index.js.map +1 -1
  711. package/build/components/list-view/leaf.js +1 -8
  712. package/build/components/list-view/leaf.js.map +1 -1
  713. package/build/components/list-view/use-block-selection.js +15 -30
  714. package/build/components/list-view/use-block-selection.js.map +1 -1
  715. package/build/components/list-view/use-list-view-client-ids.js +1 -4
  716. package/build/components/list-view/use-list-view-client-ids.js.map +1 -1
  717. package/build/components/list-view/use-list-view-drop-zone.js +38 -63
  718. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  719. package/build/components/list-view/use-list-view-expand-selected-item.js +5 -7
  720. package/build/components/list-view/use-list-view-expand-selected-item.js.map +1 -1
  721. package/build/components/list-view/use-list-view-images.js +84 -0
  722. package/build/components/list-view/use-list-view-images.js.map +1 -0
  723. package/build/components/list-view/use-list-view-scroll-into-view.js +6 -8
  724. package/build/components/list-view/use-list-view-scroll-into-view.js.map +1 -1
  725. package/build/components/list-view/utils.js +4 -10
  726. package/build/components/list-view/utils.js.map +1 -1
  727. package/build/components/media-placeholder/index.js +11 -71
  728. package/build/components/media-placeholder/index.js.map +1 -1
  729. package/build/components/media-placeholder/index.native.js +7 -30
  730. package/build/components/media-placeholder/index.native.js.map +1 -1
  731. package/build/components/media-replace-flow/index.js +8 -39
  732. package/build/components/media-replace-flow/index.js.map +1 -1
  733. package/build/components/media-replace-flow/index.native.js +13 -4
  734. package/build/components/media-replace-flow/index.native.js.map +1 -1
  735. package/build/components/media-upload/check.js +2 -5
  736. package/build/components/media-upload/check.js.map +1 -1
  737. package/build/components/media-upload/index.js +1 -5
  738. package/build/components/media-upload/index.js.map +1 -1
  739. package/build/components/media-upload/index.native.js +18 -43
  740. package/build/components/media-upload/index.native.js.map +1 -1
  741. package/build/components/media-upload-progress/index.native.js +3 -33
  742. package/build/components/media-upload-progress/index.native.js.map +1 -1
  743. package/build/components/multi-selection-inspector/index.js +3 -16
  744. package/build/components/multi-selection-inspector/index.js.map +1 -1
  745. package/build/components/navigable-toolbar/index.js +10 -32
  746. package/build/components/navigable-toolbar/index.js.map +1 -1
  747. package/build/components/observe-typing/index.js +24 -43
  748. package/build/components/observe-typing/index.js.map +1 -1
  749. package/build/components/panel-color-settings/index.js +3 -7
  750. package/build/components/panel-color-settings/index.js.map +1 -1
  751. package/build/components/plain-text/index.js +0 -7
  752. package/build/components/plain-text/index.js.map +1 -1
  753. package/build/components/plain-text/index.native.js +7 -27
  754. package/build/components/plain-text/index.native.js.map +1 -1
  755. package/build/components/preview-options/index.js +1 -8
  756. package/build/components/preview-options/index.js.map +1 -1
  757. package/build/components/provider/block-refs-provider.js +1 -3
  758. package/build/components/provider/block-refs-provider.js.map +1 -1
  759. package/build/components/provider/index.js +7 -14
  760. package/build/components/provider/index.js.map +1 -1
  761. package/build/components/provider/index.native.js +3 -9
  762. package/build/components/provider/index.native.js.map +1 -1
  763. package/build/components/provider/use-block-sync.js +23 -41
  764. package/build/components/provider/use-block-sync.js.map +1 -1
  765. package/build/components/provider/with-registry-provider.js +1 -9
  766. package/build/components/provider/with-registry-provider.js.map +1 -1
  767. package/build/components/publish-date-time-picker/index.js +1 -9
  768. package/build/components/publish-date-time-picker/index.js.map +1 -1
  769. package/build/components/recursion-provider/index.js +6 -9
  770. package/build/components/recursion-provider/index.js.map +1 -1
  771. package/build/components/resizable-box-popover/index.js +3 -6
  772. package/build/components/resizable-box-popover/index.js.map +1 -1
  773. package/build/components/resolution-tool/index.js +1 -5
  774. package/build/components/resolution-tool/index.js.map +1 -1
  775. package/build/components/responsive-block-control/index.js +3 -16
  776. package/build/components/responsive-block-control/index.js.map +1 -1
  777. package/build/components/responsive-block-control/label.js +2 -7
  778. package/build/components/responsive-block-control/label.js.map +1 -1
  779. package/build/components/rich-text/content.js +3 -13
  780. package/build/components/rich-text/content.js.map +1 -1
  781. package/build/components/rich-text/embed-handler-picker.native.js +1 -7
  782. package/build/components/rich-text/embed-handler-picker.native.js.map +1 -1
  783. package/build/components/rich-text/file-paste-handler.native.js +0 -1
  784. package/build/components/rich-text/file-paste-handler.native.js.map +1 -1
  785. package/build/components/rich-text/format-edit.js +52 -30
  786. package/build/components/rich-text/format-edit.js.map +1 -1
  787. package/build/components/rich-text/format-toolbar/index.js +4 -14
  788. package/build/components/rich-text/format-toolbar/index.js.map +1 -1
  789. package/build/components/rich-text/format-toolbar/index.native.js +1 -4
  790. package/build/components/rich-text/format-toolbar/index.native.js.map +1 -1
  791. package/build/components/rich-text/format-toolbar-container.js +4 -22
  792. package/build/components/rich-text/format-toolbar-container.js.map +1 -1
  793. package/build/components/rich-text/format-toolbar-container.native.js +1 -6
  794. package/build/components/rich-text/format-toolbar-container.native.js.map +1 -1
  795. package/build/components/rich-text/get-rich-text-values.js +12 -38
  796. package/build/components/rich-text/get-rich-text-values.js.map +1 -1
  797. package/build/components/rich-text/index.js +18 -68
  798. package/build/components/rich-text/index.js.map +1 -1
  799. package/build/components/rich-text/index.native.js +48 -94
  800. package/build/components/rich-text/index.native.js.map +1 -1
  801. package/build/components/rich-text/input-event.js +1 -4
  802. package/build/components/rich-text/input-event.js.map +1 -1
  803. package/build/components/rich-text/input-event.native.js +1 -4
  804. package/build/components/rich-text/input-event.native.js.map +1 -1
  805. package/build/components/rich-text/prevent-event-discovery.js +1 -6
  806. package/build/components/rich-text/prevent-event-discovery.js.map +1 -1
  807. package/build/components/rich-text/remove-browser-shortcuts.native.js +0 -2
  808. package/build/components/rich-text/remove-browser-shortcuts.native.js.map +1 -1
  809. package/build/components/rich-text/shortcut.js +1 -5
  810. package/build/components/rich-text/shortcut.js.map +1 -1
  811. package/build/components/rich-text/shortcut.native.js +1 -4
  812. package/build/components/rich-text/shortcut.native.js.map +1 -1
  813. package/build/components/rich-text/split-value.js +18 -17
  814. package/build/components/rich-text/split-value.js.map +1 -1
  815. package/build/components/rich-text/toolbar-button.js +3 -8
  816. package/build/components/rich-text/toolbar-button.js.map +1 -1
  817. package/build/components/rich-text/use-before-input-rules.js +5 -22
  818. package/build/components/rich-text/use-before-input-rules.js.map +1 -1
  819. package/build/components/rich-text/use-delete.js +6 -15
  820. package/build/components/rich-text/use-delete.js.map +1 -1
  821. package/build/components/rich-text/use-enter.js +3 -18
  822. package/build/components/rich-text/use-enter.js.map +1 -1
  823. package/build/components/rich-text/use-firefox-compat.js +5 -41
  824. package/build/components/rich-text/use-firefox-compat.js.map +1 -1
  825. package/build/components/rich-text/use-format-types.js +10 -23
  826. package/build/components/rich-text/use-format-types.js.map +1 -1
  827. package/build/components/rich-text/use-input-events.js +1 -3
  828. package/build/components/rich-text/use-input-events.js.map +1 -1
  829. package/build/components/rich-text/use-input-rules.js +10 -35
  830. package/build/components/rich-text/use-input-rules.js.map +1 -1
  831. package/build/components/rich-text/use-insert-replacement-text.js +0 -5
  832. package/build/components/rich-text/use-insert-replacement-text.js.map +1 -1
  833. package/build/components/rich-text/use-mark-persistent.js +6 -9
  834. package/build/components/rich-text/use-mark-persistent.js.map +1 -1
  835. package/build/components/rich-text/use-paste-handler.js +24 -71
  836. package/build/components/rich-text/use-paste-handler.js.map +1 -1
  837. package/build/components/rich-text/use-remove-browser-shortcuts.js +0 -4
  838. package/build/components/rich-text/use-remove-browser-shortcuts.js.map +1 -1
  839. package/build/components/rich-text/use-shortcuts.js +1 -3
  840. package/build/components/rich-text/use-shortcuts.js.map +1 -1
  841. package/build/components/rich-text/use-undo-automatic-change.js +1 -13
  842. package/build/components/rich-text/use-undo-automatic-change.js.map +1 -1
  843. package/build/components/rich-text/utils.js +3 -15
  844. package/build/components/rich-text/utils.js.map +1 -1
  845. package/build/components/selection-scroll-into-view/index.js +0 -3
  846. package/build/components/selection-scroll-into-view/index.js.map +1 -1
  847. package/build/components/skip-to-selected-block/index.js +2 -12
  848. package/build/components/skip-to-selected-block/index.js.map +1 -1
  849. package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js +1 -6
  850. package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
  851. package/build/components/spacing-sizes-control/index.js +13 -23
  852. package/build/components/spacing-sizes-control/index.js.map +1 -1
  853. package/build/components/spacing-sizes-control/input-controls/axial.js +7 -14
  854. package/build/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
  855. package/build/components/spacing-sizes-control/input-controls/separated.js +3 -8
  856. package/build/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
  857. package/build/components/spacing-sizes-control/input-controls/single.js +3 -7
  858. package/build/components/spacing-sizes-control/input-controls/single.js.map +1 -1
  859. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +6 -29
  860. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  861. package/build/components/spacing-sizes-control/sides-dropdown/index.js +1 -7
  862. package/build/components/spacing-sizes-control/sides-dropdown/index.js.map +1 -1
  863. package/build/components/spacing-sizes-control/utils.js +36 -68
  864. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  865. package/build/components/text-decoration-control/index.js +2 -8
  866. package/build/components/text-decoration-control/index.js.map +1 -1
  867. package/build/components/text-transform-control/index.js +2 -8
  868. package/build/components/text-transform-control/index.js.map +1 -1
  869. package/build/components/tool-selector/index.js +4 -13
  870. package/build/components/tool-selector/index.js.map +1 -1
  871. package/build/components/typewriter/index.js +30 -52
  872. package/build/components/typewriter/index.js.map +1 -1
  873. package/build/components/ungroup-button/index.native.js +1 -16
  874. package/build/components/ungroup-button/index.native.js.map +1 -1
  875. package/build/components/unit-control/index.js +1 -5
  876. package/build/components/unit-control/index.js.map +1 -1
  877. package/build/components/url-input/button.js +2 -13
  878. package/build/components/url-input/button.js.map +1 -1
  879. package/build/components/url-input/index.js +38 -91
  880. package/build/components/url-input/index.js.map +1 -1
  881. package/build/components/url-input/index.native.js +1 -4
  882. package/build/components/url-input/index.native.js.map +1 -1
  883. package/build/components/url-popover/image-url-input-ui.js +3 -36
  884. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  885. package/build/components/url-popover/index.js +5 -20
  886. package/build/components/url-popover/index.js.map +1 -1
  887. package/build/components/url-popover/link-editor.js +1 -8
  888. package/build/components/url-popover/link-editor.js.map +1 -1
  889. package/build/components/url-popover/link-viewer-url.js +1 -8
  890. package/build/components/url-popover/link-viewer-url.js.map +1 -1
  891. package/build/components/url-popover/link-viewer.js +1 -8
  892. package/build/components/url-popover/link-viewer.js.map +1 -1
  893. package/build/components/use-block-commands/index.js +247 -0
  894. package/build/components/use-block-commands/index.js.map +1 -0
  895. package/build/components/use-block-display-information/index.js +1 -9
  896. package/build/components/use-block-display-information/index.js.map +1 -1
  897. package/build/components/use-block-drop-zone/index.js +12 -29
  898. package/build/components/use-block-drop-zone/index.js.map +1 -1
  899. package/build/components/use-block-drop-zone/index.native.js +12 -24
  900. package/build/components/use-block-drop-zone/index.native.js.map +1 -1
  901. package/build/components/use-display-block-controls/index.js +1 -7
  902. package/build/components/use-display-block-controls/index.js.map +1 -1
  903. package/build/components/use-display-block-controls/index.native.js +1 -7
  904. package/build/components/use-display-block-controls/index.native.js.map +1 -1
  905. package/build/components/use-moving-animation/index.js +4 -20
  906. package/build/components/use-moving-animation/index.js.map +1 -1
  907. package/build/components/use-on-block-drop/index.js +19 -38
  908. package/build/components/use-on-block-drop/index.js.map +1 -1
  909. package/build/components/use-on-block-drop/index.native.js +11 -15
  910. package/build/components/use-on-block-drop/index.native.js.map +1 -1
  911. package/build/components/use-on-block-drop/types.js.map +1 -1
  912. package/build/components/use-paste-styles/index.js +10 -27
  913. package/build/components/use-paste-styles/index.js.map +1 -1
  914. package/build/components/use-resize-canvas/index.js +0 -14
  915. package/build/components/use-resize-canvas/index.js.map +1 -1
  916. package/build/components/use-setting/index.js +17 -39
  917. package/build/components/use-setting/index.js.map +1 -1
  918. package/build/components/video-player/gridicon-play.native.js +0 -4
  919. package/build/components/video-player/gridicon-play.native.js.map +1 -1
  920. package/build/components/video-player/index.native.js +9 -24
  921. package/build/components/video-player/index.native.js.map +1 -1
  922. package/build/components/warning/index.js +2 -9
  923. package/build/components/warning/index.js.map +1 -1
  924. package/build/components/warning/index.native.js +1 -10
  925. package/build/components/warning/index.native.js.map +1 -1
  926. package/build/components/writing-flow/index.js +4 -23
  927. package/build/components/writing-flow/index.js.map +1 -1
  928. package/build/components/writing-flow/use-arrow-nav.js +35 -60
  929. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  930. package/build/components/writing-flow/use-click-selection.js +3 -10
  931. package/build/components/writing-flow/use-click-selection.js.map +1 -1
  932. package/build/components/writing-flow/use-drag-selection.js +25 -31
  933. package/build/components/writing-flow/use-drag-selection.js.map +1 -1
  934. package/build/components/writing-flow/use-input.js +6 -21
  935. package/build/components/writing-flow/use-input.js.map +1 -1
  936. package/build/components/writing-flow/use-multi-selection.js +10 -16
  937. package/build/components/writing-flow/use-multi-selection.js.map +1 -1
  938. package/build/components/writing-flow/use-select-all.js +4 -14
  939. package/build/components/writing-flow/use-select-all.js.map +1 -1
  940. package/build/components/writing-flow/use-selection-observer.js +18 -47
  941. package/build/components/writing-flow/use-selection-observer.js.map +1 -1
  942. package/build/components/writing-flow/use-tab-nav.js +28 -44
  943. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  944. package/build/components/writing-mode-control/index.js +2 -8
  945. package/build/components/writing-mode-control/index.js.map +1 -1
  946. package/build/elements/index.js +0 -2
  947. package/build/elements/index.js.map +1 -1
  948. package/build/hooks/align.js +22 -46
  949. package/build/hooks/align.js.map +1 -1
  950. package/build/hooks/align.native.js +5 -9
  951. package/build/hooks/align.native.js.map +1 -1
  952. package/build/hooks/anchor.js +9 -24
  953. package/build/hooks/anchor.js.map +1 -1
  954. package/build/hooks/aria-label.js +5 -11
  955. package/build/hooks/aria-label.js.map +1 -1
  956. package/build/hooks/behaviors.js +14 -32
  957. package/build/hooks/behaviors.js.map +1 -1
  958. package/build/hooks/border.js +47 -80
  959. package/build/hooks/border.js.map +1 -1
  960. package/build/hooks/color.js +31 -69
  961. package/build/hooks/color.js.map +1 -1
  962. package/build/hooks/compat.js +1 -5
  963. package/build/hooks/compat.js.map +1 -1
  964. package/build/hooks/content-lock-ui.js +5 -19
  965. package/build/hooks/content-lock-ui.js.map +1 -1
  966. package/build/hooks/contrast-checker.js +4 -13
  967. package/build/hooks/contrast-checker.js.map +1 -1
  968. package/build/hooks/custom-class-name.js +21 -37
  969. package/build/hooks/custom-class-name.js.map +1 -1
  970. package/build/hooks/custom-class-name.native.js +3 -11
  971. package/build/hooks/custom-class-name.native.js.map +1 -1
  972. package/build/hooks/custom-fields.js +115 -0
  973. package/build/hooks/custom-fields.js.map +1 -0
  974. package/build/hooks/dimensions.js +6 -23
  975. package/build/hooks/dimensions.js.map +1 -1
  976. package/build/hooks/duotone.js +42 -64
  977. package/build/hooks/duotone.js.map +1 -1
  978. package/build/hooks/font-family.js +9 -29
  979. package/build/hooks/font-family.js.map +1 -1
  980. package/build/hooks/font-size.js +36 -62
  981. package/build/hooks/font-size.js.map +1 -1
  982. package/build/hooks/gap.js +1 -7
  983. package/build/hooks/gap.js.map +1 -1
  984. package/build/hooks/generated-class-name.js +1 -5
  985. package/build/hooks/generated-class-name.js.map +1 -1
  986. package/build/hooks/index.js +1 -27
  987. package/build/hooks/index.js.map +1 -1
  988. package/build/hooks/index.native.js +0 -14
  989. package/build/hooks/index.native.js.map +1 -1
  990. package/build/hooks/layout.js +45 -72
  991. package/build/hooks/layout.js.map +1 -1
  992. package/build/hooks/layout.native.js +4 -4
  993. package/build/hooks/layout.native.js.map +1 -1
  994. package/build/hooks/line-height.js +7 -15
  995. package/build/hooks/line-height.js.map +1 -1
  996. package/build/hooks/lock.js +4 -8
  997. package/build/hooks/lock.js.map +1 -1
  998. package/build/hooks/margin.js +1 -13
  999. package/build/hooks/margin.js.map +1 -1
  1000. package/build/hooks/metadata-name.js +4 -8
  1001. package/build/hooks/metadata-name.js.map +1 -1
  1002. package/build/hooks/metadata.js +4 -14
  1003. package/build/hooks/metadata.js.map +1 -1
  1004. package/build/hooks/padding.js +1 -13
  1005. package/build/hooks/padding.js.map +1 -1
  1006. package/build/hooks/position.js +35 -61
  1007. package/build/hooks/position.js.map +1 -1
  1008. package/build/hooks/settings.js +5 -8
  1009. package/build/hooks/settings.js.map +1 -1
  1010. package/build/hooks/style.js +38 -61
  1011. package/build/hooks/style.js.map +1 -1
  1012. package/build/hooks/supports.js +23 -76
  1013. package/build/hooks/supports.js.map +1 -1
  1014. package/build/hooks/typography.js +11 -27
  1015. package/build/hooks/typography.js.map +1 -1
  1016. package/build/hooks/typography.native.js +5 -14
  1017. package/build/hooks/typography.native.js.map +1 -1
  1018. package/build/hooks/use-border-props.js +5 -10
  1019. package/build/hooks/use-border-props.js.map +1 -1
  1020. package/build/hooks/use-cached-truthy.js +0 -2
  1021. package/build/hooks/use-cached-truthy.js.map +1 -1
  1022. package/build/hooks/use-color-props.js +14 -20
  1023. package/build/hooks/use-color-props.js.map +1 -1
  1024. package/build/hooks/use-editor-wrapper-styles.native.js +7 -30
  1025. package/build/hooks/use-editor-wrapper-styles.native.js.map +1 -1
  1026. package/build/hooks/use-spacing-props.js +3 -3
  1027. package/build/hooks/use-spacing-props.js.map +1 -1
  1028. package/build/hooks/use-typography-props.js +2 -9
  1029. package/build/hooks/use-typography-props.js.map +1 -1
  1030. package/build/hooks/utils.js +10 -26
  1031. package/build/hooks/utils.js.map +1 -1
  1032. package/build/index.js +0 -10
  1033. package/build/index.js.map +1 -1
  1034. package/build/index.native.js +0 -3
  1035. package/build/index.native.js.map +1 -1
  1036. package/build/layouts/constrained.js +13 -37
  1037. package/build/layouts/constrained.js.map +1 -1
  1038. package/build/layouts/definitions.js.map +1 -1
  1039. package/build/layouts/flex.js +16 -48
  1040. package/build/layouts/flex.js.map +1 -1
  1041. package/build/layouts/flow.js +7 -23
  1042. package/build/layouts/flow.js.map +1 -1
  1043. package/build/layouts/grid.js +18 -32
  1044. package/build/layouts/grid.js.map +1 -1
  1045. package/build/layouts/index.js +3 -9
  1046. package/build/layouts/index.js.map +1 -1
  1047. package/build/layouts/utils.js +3 -12
  1048. package/build/layouts/utils.js.map +1 -1
  1049. package/build/lock-unlock.js +1 -2
  1050. package/build/lock-unlock.js.map +1 -1
  1051. package/build/private-apis.js +5 -27
  1052. package/build/private-apis.js.map +1 -1
  1053. package/build/private-apis.native.js +2 -8
  1054. package/build/private-apis.native.js.map +1 -1
  1055. package/build/store/actions.js +188 -287
  1056. package/build/store/actions.js.map +1 -1
  1057. package/build/store/array.js +1 -3
  1058. package/build/store/array.js.map +1 -1
  1059. package/build/store/constants.js.map +1 -1
  1060. package/build/store/defaults.js +2 -3
  1061. package/build/store/defaults.js.map +1 -1
  1062. package/build/store/defaults.native.js +3 -3
  1063. package/build/store/defaults.native.js.map +1 -1
  1064. package/build/store/index.js +11 -19
  1065. package/build/store/index.js.map +1 -1
  1066. package/build/store/private-actions.js +26 -91
  1067. package/build/store/private-actions.js.map +1 -1
  1068. package/build/store/private-selectors.js +8 -90
  1069. package/build/store/private-selectors.js.map +1 -1
  1070. package/build/store/reducer.js +161 -358
  1071. package/build/store/reducer.js.map +1 -1
  1072. package/build/store/selectors.js +257 -522
  1073. package/build/store/selectors.js.map +1 -1
  1074. package/build/store/utils.js +0 -1
  1075. package/build/store/utils.js.map +1 -1
  1076. package/build/utils/block-variation-transforms.js +2 -5
  1077. package/build/utils/block-variation-transforms.js.map +1 -1
  1078. package/build/utils/dom.js +4 -12
  1079. package/build/utils/dom.js.map +1 -1
  1080. package/build/utils/index.js +0 -5
  1081. package/build/utils/index.js.map +1 -1
  1082. package/build/utils/math.js +5 -10
  1083. package/build/utils/math.js.map +1 -1
  1084. package/build/utils/object.js +14 -25
  1085. package/build/utils/object.js.map +1 -1
  1086. package/build/utils/order-inserter-block-items.js +2 -5
  1087. package/build/utils/order-inserter-block-items.js.map +1 -1
  1088. package/build/utils/parse-css-unit-to-px.js +14 -66
  1089. package/build/utils/parse-css-unit-to-px.js.map +1 -1
  1090. package/build/utils/pasting.js +9 -15
  1091. package/build/utils/pasting.js.map +1 -1
  1092. package/build/utils/pre-parse-patterns.js +1 -16
  1093. package/build/utils/pre-parse-patterns.js.map +1 -1
  1094. package/build/utils/selection.js +1 -4
  1095. package/build/utils/selection.js.map +1 -1
  1096. package/build/utils/sorting.js +3 -8
  1097. package/build/utils/sorting.js.map +1 -1
  1098. package/build/utils/transform-styles/ast/index.js +0 -3
  1099. package/build/utils/transform-styles/ast/index.js.map +1 -1
  1100. package/build/utils/transform-styles/ast/parse.js +95 -137
  1101. package/build/utils/transform-styles/ast/parse.js.map +1 -1
  1102. package/build/utils/transform-styles/ast/stringify/compiler.js +3 -9
  1103. package/build/utils/transform-styles/ast/stringify/compiler.js.map +1 -1
  1104. package/build/utils/transform-styles/ast/stringify/compress.js +25 -27
  1105. package/build/utils/transform-styles/ast/stringify/compress.js.map +1 -1
  1106. package/build/utils/transform-styles/ast/stringify/identity.js +28 -33
  1107. package/build/utils/transform-styles/ast/stringify/identity.js.map +1 -1
  1108. package/build/utils/transform-styles/ast/stringify/index.js +1 -4
  1109. package/build/utils/transform-styles/ast/stringify/index.js.map +1 -1
  1110. package/build/utils/transform-styles/index.js +0 -11
  1111. package/build/utils/transform-styles/index.js.map +1 -1
  1112. package/build/utils/transform-styles/transforms/url-rewrite.js +12 -25
  1113. package/build/utils/transform-styles/transforms/url-rewrite.js.map +1 -1
  1114. package/build/utils/transform-styles/transforms/wrap.js +7 -9
  1115. package/build/utils/transform-styles/transforms/wrap.js.map +1 -1
  1116. package/build/utils/transform-styles/traverse.js +1 -8
  1117. package/build/utils/transform-styles/traverse.js.map +1 -1
  1118. package/build/utils/use-should-contextual-toolbar-show.js +0 -9
  1119. package/build/utils/use-should-contextual-toolbar-show.js.map +1 -1
  1120. package/build-module/autocompleters/block.js +10 -16
  1121. package/build-module/autocompleters/block.js.map +1 -1
  1122. package/build-module/autocompleters/link.js +2 -8
  1123. package/build-module/autocompleters/link.js.map +1 -1
  1124. package/build-module/components/alignment-control/index.js +5 -7
  1125. package/build-module/components/alignment-control/index.js.map +1 -1
  1126. package/build-module/components/alignment-control/ui.js +2 -7
  1127. package/build-module/components/alignment-control/ui.js.map +1 -1
  1128. package/build-module/components/autocomplete/index.js +10 -15
  1129. package/build-module/components/autocomplete/index.js.map +1 -1
  1130. package/build-module/components/block-actions/index.js +3 -20
  1131. package/build-module/components/block-actions/index.js.map +1 -1
  1132. package/build-module/components/block-alignment-control/constants.js.map +1 -1
  1133. package/build-module/components/block-alignment-control/index.js +5 -7
  1134. package/build-module/components/block-alignment-control/index.js.map +1 -1
  1135. package/build-module/components/block-alignment-control/ui.js +8 -12
  1136. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  1137. package/build-module/components/block-alignment-control/ui.native.js +5 -9
  1138. package/build-module/components/block-alignment-control/ui.native.js.map +1 -1
  1139. package/build-module/components/block-alignment-control/use-available-alignments.js +10 -13
  1140. package/build-module/components/block-alignment-control/use-available-alignments.js.map +1 -1
  1141. package/build-module/components/block-alignment-matrix-control/index.js +0 -5
  1142. package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
  1143. package/build-module/components/block-breadcrumb/index.js +4 -9
  1144. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  1145. package/build-module/components/block-caption/index.native.js +8 -9
  1146. package/build-module/components/block-caption/index.native.js.map +1 -1
  1147. package/build-module/components/block-card/index.js +6 -10
  1148. package/build-module/components/block-card/index.js.map +1 -1
  1149. package/build-module/components/block-compare/block-view.js +0 -1
  1150. package/build-module/components/block-compare/block-view.js.map +1 -1
  1151. package/build-module/components/block-compare/index.js +6 -10
  1152. package/build-module/components/block-compare/index.js.map +1 -1
  1153. package/build-module/components/block-content-overlay/index.js +1 -1
  1154. package/build-module/components/block-content-overlay/index.js.map +1 -1
  1155. package/build-module/components/block-context/index.js +4 -4
  1156. package/build-module/components/block-context/index.js.map +1 -1
  1157. package/build-module/components/block-controls/fill.js +3 -5
  1158. package/build-module/components/block-controls/fill.js.map +1 -1
  1159. package/build-module/components/block-controls/groups.js.map +1 -1
  1160. package/build-module/components/block-controls/hook.js +1 -4
  1161. package/build-module/components/block-controls/hook.js.map +1 -1
  1162. package/build-module/components/block-controls/index.js +2 -4
  1163. package/build-module/components/block-controls/index.js.map +1 -1
  1164. package/build-module/components/block-controls/slot.js +3 -8
  1165. package/build-module/components/block-controls/slot.js.map +1 -1
  1166. package/build-module/components/block-controls/slot.native.js +5 -8
  1167. package/build-module/components/block-controls/slot.native.js.map +1 -1
  1168. package/build-module/components/block-controls/use-has-block-controls.js +34 -0
  1169. package/build-module/components/block-controls/use-has-block-controls.js.map +1 -0
  1170. package/build-module/components/block-draggable/draggable-chip.js +2 -5
  1171. package/build-module/components/block-draggable/draggable-chip.js.map +1 -1
  1172. package/build-module/components/block-draggable/draggable-chip.native.js +3 -4
  1173. package/build-module/components/block-draggable/draggable-chip.native.js.map +1 -1
  1174. package/build-module/components/block-draggable/dropping-insertion-point.native.js +5 -15
  1175. package/build-module/components/block-draggable/dropping-insertion-point.native.js.map +1 -1
  1176. package/build-module/components/block-draggable/index.js +3 -9
  1177. package/build-module/components/block-draggable/index.js.map +1 -1
  1178. package/build-module/components/block-draggable/index.native.js +8 -34
  1179. package/build-module/components/block-draggable/index.native.js.map +1 -1
  1180. package/build-module/components/block-draggable/use-scroll-when-dragging.js +8 -10
  1181. package/build-module/components/block-draggable/use-scroll-when-dragging.js.map +1 -1
  1182. package/build-module/components/block-draggable/use-scroll-when-dragging.native.js +2 -11
  1183. package/build-module/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -1
  1184. package/build-module/components/block-edit/context.js +1 -1
  1185. package/build-module/components/block-edit/context.js.map +1 -1
  1186. package/build-module/components/block-edit/edit.js +16 -20
  1187. package/build-module/components/block-edit/edit.js.map +1 -1
  1188. package/build-module/components/block-edit/edit.native.js +6 -7
  1189. package/build-module/components/block-edit/edit.native.js.map +1 -1
  1190. package/build-module/components/block-edit/index.js +5 -5
  1191. package/build-module/components/block-edit/index.js.map +1 -1
  1192. package/build-module/components/block-edit-visually-button/index.js +1 -4
  1193. package/build-module/components/block-edit-visually-button/index.js.map +1 -1
  1194. package/build-module/components/block-editing-mode/index.js +5 -8
  1195. package/build-module/components/block-editing-mode/index.js.map +1 -1
  1196. package/build-module/components/block-full-height-alignment-control/index.js +0 -3
  1197. package/build-module/components/block-full-height-alignment-control/index.js.map +1 -1
  1198. package/build-module/components/block-heading-level-dropdown/heading-level-icon.js +2 -3
  1199. package/build-module/components/block-heading-level-dropdown/heading-level-icon.js.map +1 -1
  1200. package/build-module/components/block-heading-level-dropdown/index.js +4 -6
  1201. package/build-module/components/block-heading-level-dropdown/index.js.map +1 -1
  1202. package/build-module/components/block-heading-level-dropdown/index.native.js +2 -4
  1203. package/build-module/components/block-heading-level-dropdown/index.native.js.map +1 -1
  1204. package/build-module/components/block-icon/index.js +2 -6
  1205. package/build-module/components/block-icon/index.js.map +1 -1
  1206. package/build-module/components/block-icon/index.native.js +2 -4
  1207. package/build-module/components/block-icon/index.native.js.map +1 -1
  1208. package/build-module/components/block-info-slot-fill/index.js +5 -9
  1209. package/build-module/components/block-info-slot-fill/index.js.map +1 -1
  1210. package/build-module/components/block-inspector/index.js +11 -25
  1211. package/build-module/components/block-inspector/index.js.map +1 -1
  1212. package/build-module/components/block-inspector/useBlockInspectorAnimationSettings.js +7 -8
  1213. package/build-module/components/block-inspector/useBlockInspectorAnimationSettings.js.map +1 -1
  1214. package/build-module/components/block-list/block-crash-boundary.js +0 -6
  1215. package/build-module/components/block-list/block-crash-boundary.js.map +1 -1
  1216. package/build-module/components/block-list/block-crash-warning.js +1 -2
  1217. package/build-module/components/block-list/block-crash-warning.js.map +1 -1
  1218. package/build-module/components/block-list/block-html.js +8 -12
  1219. package/build-module/components/block-list/block-html.js.map +1 -1
  1220. package/build-module/components/block-list/block-invalid-warning.js +3 -9
  1221. package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
  1222. package/build-module/components/block-list/block-invalid-warning.native.js +5 -10
  1223. package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
  1224. package/build-module/components/block-list/block-list-block-context.js.map +1 -1
  1225. package/build-module/components/block-list/block-list-context.native.js +11 -21
  1226. package/build-module/components/block-list/block-list-context.native.js.map +1 -1
  1227. package/build-module/components/block-list/block-list-item-cell.native.js +2 -6
  1228. package/build-module/components/block-list/block-list-item-cell.native.js.map +1 -1
  1229. package/build-module/components/block-list/block-list-item.native.js +8 -12
  1230. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  1231. package/build-module/components/block-list/block-outline.native.js +4 -7
  1232. package/build-module/components/block-list/block-outline.native.js.map +1 -1
  1233. package/build-module/components/block-list/block-selection-button.native.js +3 -10
  1234. package/build-module/components/block-list/block-selection-button.native.js.map +1 -1
  1235. package/build-module/components/block-list/block.js +42 -63
  1236. package/build-module/components/block-list/block.js.map +1 -1
  1237. package/build-module/components/block-list/block.native.js +41 -57
  1238. package/build-module/components/block-list/block.native.js.map +1 -1
  1239. package/build-module/components/block-list/grid-item.native.js +1 -4
  1240. package/build-module/components/block-list/grid-item.native.js.map +1 -1
  1241. package/build-module/components/block-list/index.js +12 -18
  1242. package/build-module/components/block-list/index.js.map +1 -1
  1243. package/build-module/components/block-list/index.native.js +21 -39
  1244. package/build-module/components/block-list/index.native.js.map +1 -1
  1245. package/build-module/components/block-list/insertion-point.native.js +2 -5
  1246. package/build-module/components/block-list/insertion-point.native.js.map +1 -1
  1247. package/build-module/components/block-list/layout.js +3 -8
  1248. package/build-module/components/block-list/layout.js.map +1 -1
  1249. package/build-module/components/block-list/subdirectory-icon.js +2 -4
  1250. package/build-module/components/block-list/subdirectory-icon.js.map +1 -1
  1251. package/build-module/components/block-list/use-block-props/index.js +13 -11
  1252. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  1253. package/build-module/components/block-list/use-block-props/index.native.js +4 -2
  1254. package/build-module/components/block-list/use-block-props/index.native.js.map +1 -1
  1255. package/build-module/components/block-list/use-block-props/use-block-class-names.js +5 -5
  1256. package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  1257. package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js +2 -6
  1258. package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js.map +1 -1
  1259. package/build-module/components/block-list/use-block-props/use-block-default-class-name.js +2 -4
  1260. package/build-module/components/block-list/use-block-props/use-block-default-class-name.js.map +1 -1
  1261. package/build-module/components/block-list/use-block-props/use-block-moving-mode-class-names.js +6 -8
  1262. package/build-module/components/block-list/use-block-props/use-block-moving-mode-class-names.js.map +1 -1
  1263. package/build-module/components/block-list/use-block-props/use-block-refs.js +11 -16
  1264. package/build-module/components/block-list/use-block-props/use-block-refs.js.map +1 -1
  1265. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +15 -21
  1266. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  1267. package/build-module/components/block-list/use-block-props/use-focus-handler.js +8 -11
  1268. package/build-module/components/block-list/use-block-props/use-focus-handler.js.map +1 -1
  1269. package/build-module/components/block-list/use-block-props/use-intersection-observer.js +1 -1
  1270. package/build-module/components/block-list/use-block-props/use-intersection-observer.js.map +1 -1
  1271. package/build-module/components/block-list/use-block-props/use-is-hovered.js +4 -6
  1272. package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  1273. package/build-module/components/block-list/use-block-props/use-nav-mode-exit.js +4 -4
  1274. package/build-module/components/block-list/use-block-props/use-nav-mode-exit.js.map +1 -1
  1275. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +4 -11
  1276. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  1277. package/build-module/components/block-list/use-in-between-inserter.js +15 -30
  1278. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  1279. package/build-module/components/block-list-appender/index.js +13 -26
  1280. package/build-module/components/block-list-appender/index.js.map +1 -1
  1281. package/build-module/components/block-list-appender/index.native.js +1 -9
  1282. package/build-module/components/block-list-appender/index.native.js.map +1 -1
  1283. package/build-module/components/block-lock/index.js.map +1 -1
  1284. package/build-module/components/block-lock/menu-item.js +1 -4
  1285. package/build-module/components/block-lock/menu-item.js.map +1 -1
  1286. package/build-module/components/block-lock/modal.js +12 -13
  1287. package/build-module/components/block-lock/modal.js.map +1 -1
  1288. package/build-module/components/block-lock/toolbar.js +6 -9
  1289. package/build-module/components/block-lock/toolbar.js.map +1 -1
  1290. package/build-module/components/block-lock/use-block-lock.js +2 -2
  1291. package/build-module/components/block-lock/use-block-lock.js.map +1 -1
  1292. package/build-module/components/block-media-update-progress/index.native.js +10 -59
  1293. package/build-module/components/block-media-update-progress/index.native.js.map +1 -1
  1294. package/build-module/components/block-mover/button.js +2 -15
  1295. package/build-module/components/block-mover/button.js.map +1 -1
  1296. package/build-module/components/block-mover/index.js +5 -11
  1297. package/build-module/components/block-mover/index.js.map +1 -1
  1298. package/build-module/components/block-mover/index.native.js +4 -11
  1299. package/build-module/components/block-mover/index.native.js.map +1 -1
  1300. package/build-module/components/block-mover/mover-description.js +40 -61
  1301. package/build-module/components/block-mover/mover-description.js.map +1 -1
  1302. package/build-module/components/block-mover/mover-description.native.js +0 -16
  1303. package/build-module/components/block-mover/mover-description.native.js.map +1 -1
  1304. package/build-module/components/block-navigation/dropdown.js +7 -10
  1305. package/build-module/components/block-navigation/dropdown.js.map +1 -1
  1306. package/build-module/components/block-parent-selector/index.js +14 -35
  1307. package/build-module/components/block-parent-selector/index.js.map +1 -1
  1308. package/build-module/components/block-pattern-setup/constants.js.map +1 -1
  1309. package/build-module/components/block-pattern-setup/index.js +3 -13
  1310. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  1311. package/build-module/components/block-pattern-setup/setup-toolbar.js +1 -6
  1312. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  1313. package/build-module/components/block-pattern-setup/use-patterns-setup.js +1 -5
  1314. package/build-module/components/block-pattern-setup/use-patterns-setup.js.map +1 -1
  1315. package/build-module/components/block-patterns-list/index.js +3 -12
  1316. package/build-module/components/block-patterns-list/index.js.map +1 -1
  1317. package/build-module/components/block-popover/drop-zone.js +1 -6
  1318. package/build-module/components/block-popover/drop-zone.js.map +1 -1
  1319. package/build-module/components/block-popover/inbetween.js +17 -25
  1320. package/build-module/components/block-popover/inbetween.js.map +1 -1
  1321. package/build-module/components/block-popover/index.js +16 -20
  1322. package/build-module/components/block-popover/index.js.map +1 -1
  1323. package/build-module/components/block-popover/use-popover-scroll.js +3 -6
  1324. package/build-module/components/block-popover/use-popover-scroll.js.map +1 -1
  1325. package/build-module/components/block-preview/auto.js +17 -12
  1326. package/build-module/components/block-preview/auto.js.map +1 -1
  1327. package/build-module/components/block-preview/index.js +10 -13
  1328. package/build-module/components/block-preview/index.js.map +1 -1
  1329. package/build-module/components/block-quick-navigation/index.js +2 -7
  1330. package/build-module/components/block-quick-navigation/index.js.map +1 -1
  1331. package/build-module/components/block-removal-warning-modal/index.js +5 -10
  1332. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  1333. package/build-module/components/block-selection-clearer/index.js +4 -8
  1334. package/build-module/components/block-selection-clearer/index.js.map +1 -1
  1335. package/build-module/components/block-settings/button.native.js +2 -5
  1336. package/build-module/components/block-settings/button.native.js.map +1 -1
  1337. package/build-module/components/block-settings/container.native.js +3 -3
  1338. package/build-module/components/block-settings/container.native.js.map +1 -1
  1339. package/build-module/components/block-settings/index.native.js.map +1 -1
  1340. package/build-module/components/block-settings-menu/block-convert-button.js +0 -3
  1341. package/build-module/components/block-settings-menu/block-convert-button.js.map +1 -1
  1342. package/build-module/components/block-settings-menu/block-html-convert-button.js +1 -1
  1343. package/build-module/components/block-settings-menu/block-html-convert-button.js.map +1 -1
  1344. package/build-module/components/block-settings-menu/block-mode-toggle.js +1 -6
  1345. package/build-module/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  1346. package/build-module/components/block-settings-menu/block-settings-dropdown.js +17 -40
  1347. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  1348. package/build-module/components/block-settings-menu/block-settings-menu-first-item.js.map +1 -1
  1349. package/build-module/components/block-settings-menu/index.js +1 -2
  1350. package/build-module/components/block-settings-menu/index.js.map +1 -1
  1351. package/build-module/components/block-settings-menu-controls/index.js +13 -13
  1352. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  1353. package/build-module/components/block-styles/index.js +4 -15
  1354. package/build-module/components/block-styles/index.js.map +1 -1
  1355. package/build-module/components/block-styles/index.native.js +2 -10
  1356. package/build-module/components/block-styles/index.native.js.map +1 -1
  1357. package/build-module/components/block-styles/menu-items.js +1 -6
  1358. package/build-module/components/block-styles/menu-items.js.map +1 -1
  1359. package/build-module/components/block-styles/preview-panel.js +5 -4
  1360. package/build-module/components/block-styles/preview-panel.js.map +1 -1
  1361. package/build-module/components/block-styles/preview.native.js +4 -12
  1362. package/build-module/components/block-styles/preview.native.js.map +1 -1
  1363. package/build-module/components/block-styles/use-styles-for-block.js +3 -11
  1364. package/build-module/components/block-styles/use-styles-for-block.js.map +1 -1
  1365. package/build-module/components/block-styles/utils.js +4 -10
  1366. package/build-module/components/block-styles/utils.js.map +1 -1
  1367. package/build-module/components/block-switcher/block-styles-menu.js +1 -2
  1368. package/build-module/components/block-switcher/block-styles-menu.js.map +1 -1
  1369. package/build-module/components/block-switcher/block-transformations-menu.js +6 -12
  1370. package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
  1371. package/build-module/components/block-switcher/block-transformations-menu.native.js +5 -13
  1372. package/build-module/components/block-switcher/block-transformations-menu.native.js.map +1 -1
  1373. package/build-module/components/block-switcher/block-variation-transformations.js +3 -8
  1374. package/build-module/components/block-switcher/block-variation-transformations.js.map +1 -1
  1375. package/build-module/components/block-switcher/index.js +12 -26
  1376. package/build-module/components/block-switcher/index.js.map +1 -1
  1377. package/build-module/components/block-switcher/pattern-transformations-menu.js +3 -8
  1378. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  1379. package/build-module/components/block-switcher/preview-block-popover.js +1 -2
  1380. package/build-module/components/block-switcher/preview-block-popover.js.map +1 -1
  1381. package/build-module/components/block-switcher/use-transformed-patterns.js +14 -21
  1382. package/build-module/components/block-switcher/use-transformed-patterns.js.map +1 -1
  1383. package/build-module/components/block-switcher/utils.js +6 -6
  1384. package/build-module/components/block-switcher/utils.js.map +1 -1
  1385. package/build-module/components/block-title/index.js +2 -1
  1386. package/build-module/components/block-title/index.js.map +1 -1
  1387. package/build-module/components/block-title/use-block-display-title.js +4 -11
  1388. package/build-module/components/block-title/use-block-display-title.js.map +1 -1
  1389. package/build-module/components/block-toolbar/block-name-context.js +0 -2
  1390. package/build-module/components/block-toolbar/block-name-context.js.map +1 -1
  1391. package/build-module/components/block-toolbar/block-toolbar-last-item.js.map +1 -1
  1392. package/build-module/components/block-toolbar/block-toolbar-menu.native.js +26 -31
  1393. package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  1394. package/build-module/components/block-toolbar/index.js +13 -49
  1395. package/build-module/components/block-toolbar/index.js.map +1 -1
  1396. package/build-module/components/block-toolbar/index.native.js +1 -6
  1397. package/build-module/components/block-toolbar/index.native.js.map +1 -1
  1398. package/build-module/components/block-toolbar/utils.js +56 -69
  1399. package/build-module/components/block-toolbar/utils.js.map +1 -1
  1400. package/build-module/components/block-tools/back-compat.js +3 -4
  1401. package/build-module/components/block-tools/back-compat.js.map +1 -1
  1402. package/build-module/components/block-tools/block-contextual-toolbar.js +51 -13
  1403. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  1404. package/build-module/components/block-tools/block-selection-button.js +11 -30
  1405. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  1406. package/build-module/components/block-tools/index.js +9 -20
  1407. package/build-module/components/block-tools/index.js.map +1 -1
  1408. package/build-module/components/block-tools/insertion-point.js +9 -22
  1409. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  1410. package/build-module/components/block-tools/selected-block-popover.js +13 -25
  1411. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  1412. package/build-module/components/block-tools/use-block-toolbar-popover-props.js +35 -29
  1413. package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  1414. package/build-module/components/block-tools/zoom-out-mode-inserters.js +3 -8
  1415. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  1416. package/build-module/components/block-types-list/index.js +1 -7
  1417. package/build-module/components/block-types-list/index.js.map +1 -1
  1418. package/build-module/components/block-types-list/index.native.js +4 -14
  1419. package/build-module/components/block-types-list/index.native.js.map +1 -1
  1420. package/build-module/components/block-variation-picker/index.js +1 -4
  1421. package/build-module/components/block-variation-picker/index.js.map +1 -1
  1422. package/build-module/components/block-variation-picker/index.native.js +15 -30
  1423. package/build-module/components/block-variation-picker/index.native.js.map +1 -1
  1424. package/build-module/components/block-variation-transforms/index.js +8 -15
  1425. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  1426. package/build-module/components/block-vertical-alignment-control/icons.js +0 -1
  1427. package/build-module/components/block-vertical-alignment-control/icons.js.map +1 -1
  1428. package/build-module/components/block-vertical-alignment-control/index.js +5 -7
  1429. package/build-module/components/block-vertical-alignment-control/index.js.map +1 -1
  1430. package/build-module/components/block-vertical-alignment-control/ui.js +4 -7
  1431. package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
  1432. package/build-module/components/border-radius-control/all-input-control.js +8 -10
  1433. package/build-module/components/border-radius-control/all-input-control.js.map +1 -1
  1434. package/build-module/components/border-radius-control/index.js +5 -8
  1435. package/build-module/components/border-radius-control/index.js.map +1 -1
  1436. package/build-module/components/border-radius-control/input-controls.js +13 -11
  1437. package/build-module/components/border-radius-control/input-controls.js.map +1 -1
  1438. package/build-module/components/border-radius-control/linked-button.js +4 -3
  1439. package/build-module/components/border-radius-control/linked-button.js.map +1 -1
  1440. package/build-module/components/border-radius-control/utils.js +10 -12
  1441. package/build-module/components/border-radius-control/utils.js.map +1 -1
  1442. package/build-module/components/button-block-appender/index.js +6 -12
  1443. package/build-module/components/button-block-appender/index.js.map +1 -1
  1444. package/build-module/components/button-block-appender/index.native.js +5 -7
  1445. package/build-module/components/button-block-appender/index.native.js.map +1 -1
  1446. package/build-module/components/caption/index.native.js +1 -4
  1447. package/build-module/components/caption/index.native.js.map +1 -1
  1448. package/build-module/components/child-layout-control/index.js +7 -10
  1449. package/build-module/components/child-layout-control/index.js.map +1 -1
  1450. package/build-module/components/color-palette/control.js +2 -2
  1451. package/build-module/components/color-palette/control.js.map +1 -1
  1452. package/build-module/components/color-palette/index.js +1 -1
  1453. package/build-module/components/color-palette/index.js.map +1 -1
  1454. package/build-module/components/color-palette/with-color-context.js +3 -3
  1455. package/build-module/components/color-palette/with-color-context.js.map +1 -1
  1456. package/build-module/components/color-style-selector/index.js +2 -9
  1457. package/build-module/components/color-style-selector/index.js.map +1 -1
  1458. package/build-module/components/colors/index.js.map +1 -1
  1459. package/build-module/components/colors/utils.js +5 -10
  1460. package/build-module/components/colors/utils.js.map +1 -1
  1461. package/build-module/components/colors/with-colors.js +17 -25
  1462. package/build-module/components/colors/with-colors.js.map +1 -1
  1463. package/build-module/components/colors-gradients/control.js +8 -15
  1464. package/build-module/components/colors-gradients/control.js.map +1 -1
  1465. package/build-module/components/colors-gradients/dropdown.js +18 -19
  1466. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  1467. package/build-module/components/colors-gradients/panel-color-gradient-settings.js +8 -12
  1468. package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  1469. package/build-module/components/colors-gradients/panel-color-gradient-settings.native.js +2 -3
  1470. package/build-module/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
  1471. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +2 -10
  1472. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  1473. package/build-module/components/contrast-checker/index.js +20 -24
  1474. package/build-module/components/contrast-checker/index.js.map +1 -1
  1475. package/build-module/components/contrast-checker/index.native.js +4 -12
  1476. package/build-module/components/contrast-checker/index.native.js.map +1 -1
  1477. package/build-module/components/convert-to-group-buttons/index.js +1 -12
  1478. package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
  1479. package/build-module/components/convert-to-group-buttons/index.native.js +5 -12
  1480. package/build-module/components/convert-to-group-buttons/index.native.js.map +1 -1
  1481. package/build-module/components/convert-to-group-buttons/toolbar.js +3 -12
  1482. package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
  1483. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js +6 -5
  1484. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  1485. package/build-module/components/copy-handler/index.js +24 -44
  1486. package/build-module/components/copy-handler/index.js.map +1 -1
  1487. package/build-module/components/date-format-picker/index.js +4 -6
  1488. package/build-module/components/date-format-picker/index.js.map +1 -1
  1489. package/build-module/components/default-block-appender/index.js +7 -9
  1490. package/build-module/components/default-block-appender/index.js.map +1 -1
  1491. package/build-module/components/default-block-appender/index.native.js +16 -10
  1492. package/build-module/components/default-block-appender/index.native.js.map +1 -1
  1493. package/build-module/components/default-style-picker/index.js +4 -6
  1494. package/build-module/components/default-style-picker/index.js.map +1 -1
  1495. package/build-module/components/dimensions-tool/aspect-ratio-tool.js +2 -2
  1496. package/build-module/components/dimensions-tool/aspect-ratio-tool.js.map +1 -1
  1497. package/build-module/components/dimensions-tool/index.js +39 -33
  1498. package/build-module/components/dimensions-tool/index.js.map +1 -1
  1499. package/build-module/components/dimensions-tool/scale-tool.js +2 -3
  1500. package/build-module/components/dimensions-tool/scale-tool.js.map +1 -1
  1501. package/build-module/components/dimensions-tool/width-height-tool.js +5 -12
  1502. package/build-module/components/dimensions-tool/width-height-tool.js.map +1 -1
  1503. package/build-module/components/duotone/components.js +7 -7
  1504. package/build-module/components/duotone/components.js.map +1 -1
  1505. package/build-module/components/duotone/index.js.map +1 -1
  1506. package/build-module/components/duotone/utils.js +1 -1
  1507. package/build-module/components/duotone/utils.js.map +1 -1
  1508. package/build-module/components/duotone-control/index.js +0 -6
  1509. package/build-module/components/duotone-control/index.js.map +1 -1
  1510. package/build-module/components/editable-text/index.js +4 -6
  1511. package/build-module/components/editable-text/index.js.map +1 -1
  1512. package/build-module/components/editor-styles/index.js +6 -12
  1513. package/build-module/components/editor-styles/index.js.map +1 -1
  1514. package/build-module/components/floating-toolbar/index.native.js +4 -8
  1515. package/build-module/components/floating-toolbar/index.native.js.map +1 -1
  1516. package/build-module/components/floating-toolbar/nav-up-icon.js +0 -3
  1517. package/build-module/components/floating-toolbar/nav-up-icon.js.map +1 -1
  1518. package/build-module/components/font-appearance-control/index.js +24 -27
  1519. package/build-module/components/font-appearance-control/index.js.map +1 -1
  1520. package/build-module/components/font-family/index.js +1 -5
  1521. package/build-module/components/font-family/index.js.map +1 -1
  1522. package/build-module/components/font-sizes/fluid-utils.js +52 -48
  1523. package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
  1524. package/build-module/components/font-sizes/font-size-picker.js +4 -6
  1525. package/build-module/components/font-sizes/font-size-picker.js.map +1 -1
  1526. package/build-module/components/font-sizes/index.js.map +1 -1
  1527. package/build-module/components/font-sizes/index.native.js.map +1 -1
  1528. package/build-module/components/font-sizes/utils.js +3 -8
  1529. package/build-module/components/font-sizes/utils.js.map +1 -1
  1530. package/build-module/components/font-sizes/with-font-sizes.js +15 -22
  1531. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  1532. package/build-module/components/global-styles/advanced-panel.js +3 -9
  1533. package/build-module/components/global-styles/advanced-panel.js.map +1 -1
  1534. package/build-module/components/global-styles/behaviors-panel.js +57 -0
  1535. package/build-module/components/global-styles/behaviors-panel.js.map +1 -0
  1536. package/build-module/components/global-styles/border-panel.js +22 -36
  1537. package/build-module/components/global-styles/border-panel.js.map +1 -1
  1538. package/build-module/components/global-styles/color-panel.js +31 -56
  1539. package/build-module/components/global-styles/color-panel.js.map +1 -1
  1540. package/build-module/components/global-styles/color-panel.native.js +5 -8
  1541. package/build-module/components/global-styles/color-panel.native.js.map +1 -1
  1542. package/build-module/components/global-styles/context.js.map +1 -1
  1543. package/build-module/components/global-styles/dimensions-panel.js +34 -80
  1544. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  1545. package/build-module/components/global-styles/effects-panel.js +8 -20
  1546. package/build-module/components/global-styles/effects-panel.js.map +1 -1
  1547. package/build-module/components/global-styles/filters-panel.js +10 -20
  1548. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  1549. package/build-module/components/global-styles/get-block-css-selector.js +34 -29
  1550. package/build-module/components/global-styles/get-block-css-selector.js.map +1 -1
  1551. package/build-module/components/global-styles/hooks.js +136 -56
  1552. package/build-module/components/global-styles/hooks.js.map +1 -1
  1553. package/build-module/components/global-styles/index.js +2 -1
  1554. package/build-module/components/global-styles/index.js.map +1 -1
  1555. package/build-module/components/global-styles/typography-panel.js +25 -73
  1556. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  1557. package/build-module/components/global-styles/typography-utils.js +10 -16
  1558. package/build-module/components/global-styles/typography-utils.js.map +1 -1
  1559. package/build-module/components/global-styles/use-global-styles-output.js +99 -163
  1560. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  1561. package/build-module/components/global-styles/utils.js +14 -44
  1562. package/build-module/components/global-styles/utils.js.map +1 -1
  1563. package/build-module/components/gradients/index.js.map +1 -1
  1564. package/build-module/components/gradients/index.native.js.map +1 -1
  1565. package/build-module/components/gradients/use-gradient.js +3 -11
  1566. package/build-module/components/gradients/use-gradient.js.map +1 -1
  1567. package/build-module/components/gradients/with-gradient.js +2 -3
  1568. package/build-module/components/gradients/with-gradient.js.map +1 -1
  1569. package/build-module/components/height-control/index.js +2 -8
  1570. package/build-module/components/height-control/index.js.map +1 -1
  1571. package/build-module/components/iframe/index.js +26 -37
  1572. package/build-module/components/iframe/index.js.map +1 -1
  1573. package/build-module/components/iframe/use-compatibility-styles.js +9 -19
  1574. package/build-module/components/iframe/use-compatibility-styles.js.map +1 -1
  1575. package/build-module/components/image-editor/aspect-ratio-dropdown.js +3 -5
  1576. package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  1577. package/build-module/components/image-editor/constants.js.map +1 -1
  1578. package/build-module/components/image-editor/context.js +3 -3
  1579. package/build-module/components/image-editor/context.js.map +1 -1
  1580. package/build-module/components/image-editor/cropper.js +4 -6
  1581. package/build-module/components/image-editor/cropper.js.map +1 -1
  1582. package/build-module/components/image-editor/form-controls.js +1 -2
  1583. package/build-module/components/image-editor/form-controls.js.map +1 -1
  1584. package/build-module/components/image-editor/index.js +1 -2
  1585. package/build-module/components/image-editor/index.js.map +1 -1
  1586. package/build-module/components/image-editor/rotation-button.js +2 -2
  1587. package/build-module/components/image-editor/rotation-button.js.map +1 -1
  1588. package/build-module/components/image-editor/use-save-image.js +4 -7
  1589. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  1590. package/build-module/components/image-editor/use-transform-image.js +0 -9
  1591. package/build-module/components/image-editor/use-transform-image.js.map +1 -1
  1592. package/build-module/components/image-editor/zoom-dropdown.js +1 -2
  1593. package/build-module/components/image-editor/zoom-dropdown.js.map +1 -1
  1594. package/build-module/components/image-size-control/index.js +1 -4
  1595. package/build-module/components/image-size-control/index.js.map +1 -1
  1596. package/build-module/components/image-size-control/use-dimension-handler.js +6 -12
  1597. package/build-module/components/image-size-control/use-dimension-handler.js.map +1 -1
  1598. package/build-module/components/index.js +11 -1
  1599. package/build-module/components/index.js.map +1 -1
  1600. package/build-module/components/index.native.js +4 -3
  1601. package/build-module/components/index.native.js.map +1 -1
  1602. package/build-module/components/inner-blocks/button-block-appender.js +1 -2
  1603. package/build-module/components/inner-blocks/button-block-appender.js.map +1 -1
  1604. package/build-module/components/inner-blocks/default-block-appender.js +1 -2
  1605. package/build-module/components/inner-blocks/default-block-appender.js.map +1 -1
  1606. package/build-module/components/inner-blocks/index.js +23 -21
  1607. package/build-module/components/inner-blocks/index.js.map +1 -1
  1608. package/build-module/components/inner-blocks/index.native.js +21 -20
  1609. package/build-module/components/inner-blocks/index.native.js.map +1 -1
  1610. package/build-module/components/inner-blocks/use-block-context.js +2 -7
  1611. package/build-module/components/inner-blocks/use-block-context.js.map +1 -1
  1612. package/build-module/components/inner-blocks/use-inner-block-template-sync.js +13 -14
  1613. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  1614. package/build-module/components/inner-blocks/use-nested-settings-update.js +19 -21
  1615. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  1616. package/build-module/components/inner-blocks/with-client-id.js +3 -3
  1617. package/build-module/components/inner-blocks/with-client-id.js.map +1 -1
  1618. package/build-module/components/inserter/block-patterns-explorer/explorer.js +3 -6
  1619. package/build-module/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
  1620. package/build-module/components/inserter/block-patterns-explorer/patterns-list.js +5 -13
  1621. package/build-module/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
  1622. package/build-module/components/inserter/block-patterns-explorer/sidebar.js +0 -5
  1623. package/build-module/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
  1624. package/build-module/components/inserter/block-patterns-tab.js +12 -22
  1625. package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
  1626. package/build-module/components/inserter/block-types-tab.js +9 -16
  1627. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  1628. package/build-module/components/inserter/block-types-tab.native.js +1 -8
  1629. package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
  1630. package/build-module/components/inserter/hooks/use-block-type-impressions.native.js +9 -10
  1631. package/build-module/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
  1632. package/build-module/components/inserter/hooks/use-block-types-state.js +9 -6
  1633. package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
  1634. package/build-module/components/inserter/hooks/use-clipboard-block.native.js +1 -3
  1635. package/build-module/components/inserter/hooks/use-clipboard-block.native.js.map +1 -1
  1636. package/build-module/components/inserter/hooks/use-debounced-input.js +5 -7
  1637. package/build-module/components/inserter/hooks/use-debounced-input.js.map +1 -1
  1638. package/build-module/components/inserter/hooks/use-insertion-point.js +4 -10
  1639. package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
  1640. package/build-module/components/inserter/hooks/use-patterns-state.js +6 -7
  1641. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  1642. package/build-module/components/inserter/index.js +30 -56
  1643. package/build-module/components/inserter/index.js.map +1 -1
  1644. package/build-module/components/inserter/index.native.js +24 -56
  1645. package/build-module/components/inserter/index.native.js.map +1 -1
  1646. package/build-module/components/inserter/library.js +1 -7
  1647. package/build-module/components/inserter/library.js.map +1 -1
  1648. package/build-module/components/inserter/media-tab/hooks.js +14 -25
  1649. package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
  1650. package/build-module/components/inserter/media-tab/index.js.map +1 -1
  1651. package/build-module/components/inserter/media-tab/media-list.js +3 -5
  1652. package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
  1653. package/build-module/components/inserter/media-tab/media-panel.js +1 -4
  1654. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
  1655. package/build-module/components/inserter/media-tab/media-preview.js +11 -24
  1656. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  1657. package/build-module/components/inserter/media-tab/media-tab.js +4 -7
  1658. package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
  1659. package/build-module/components/inserter/media-tab/utils.js +1 -4
  1660. package/build-module/components/inserter/media-tab/utils.js.map +1 -1
  1661. package/build-module/components/inserter/menu.js +3 -5
  1662. package/build-module/components/inserter/menu.js.map +1 -1
  1663. package/build-module/components/inserter/menu.native.js +6 -15
  1664. package/build-module/components/inserter/menu.native.js.map +1 -1
  1665. package/build-module/components/inserter/mobile-tab-navigation.js +2 -4
  1666. package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -1
  1667. package/build-module/components/inserter/no-results.js +0 -3
  1668. package/build-module/components/inserter/no-results.js.map +1 -1
  1669. package/build-module/components/inserter/no-results.native.js +2 -5
  1670. package/build-module/components/inserter/no-results.native.js.map +1 -1
  1671. package/build-module/components/inserter/panel.js +0 -3
  1672. package/build-module/components/inserter/panel.js.map +1 -1
  1673. package/build-module/components/inserter/preview-panel.js +15 -11
  1674. package/build-module/components/inserter/preview-panel.js.map +1 -1
  1675. package/build-module/components/inserter/quick-inserter.js +5 -8
  1676. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  1677. package/build-module/components/inserter/reusable-block-rename-hint.js +1 -7
  1678. package/build-module/components/inserter/reusable-block-rename-hint.js.map +1 -1
  1679. package/build-module/components/inserter/reusable-blocks-tab.js +6 -10
  1680. package/build-module/components/inserter/reusable-blocks-tab.js.map +1 -1
  1681. package/build-module/components/inserter/reusable-blocks-tab.native.js +1 -4
  1682. package/build-module/components/inserter/reusable-blocks-tab.native.js.map +1 -1
  1683. package/build-module/components/inserter/search-items.js +22 -33
  1684. package/build-module/components/inserter/search-items.js.map +1 -1
  1685. package/build-module/components/inserter/search-results.js +6 -18
  1686. package/build-module/components/inserter/search-results.js.map +1 -1
  1687. package/build-module/components/inserter/search-results.native.js +1 -7
  1688. package/build-module/components/inserter/search-results.native.js.map +1 -1
  1689. package/build-module/components/inserter/tabs.js +0 -13
  1690. package/build-module/components/inserter/tabs.js.map +1 -1
  1691. package/build-module/components/inserter/tabs.native.js +6 -13
  1692. package/build-module/components/inserter/tabs.native.js.map +1 -1
  1693. package/build-module/components/inserter/tips.js +2 -4
  1694. package/build-module/components/inserter/tips.js.map +1 -1
  1695. package/build-module/components/inserter/utils.native.js +2 -6
  1696. package/build-module/components/inserter/utils.native.js.map +1 -1
  1697. package/build-module/components/inserter-draggable-blocks/index.js +0 -4
  1698. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  1699. package/build-module/components/inserter-list-item/index.js +3 -10
  1700. package/build-module/components/inserter-list-item/index.js.map +1 -1
  1701. package/build-module/components/inserter-listbox/context.js.map +1 -1
  1702. package/build-module/components/inserter-listbox/group.js +0 -4
  1703. package/build-module/components/inserter-listbox/group.js.map +1 -1
  1704. package/build-module/components/inserter-listbox/index.js +1 -4
  1705. package/build-module/components/inserter-listbox/index.js.map +1 -1
  1706. package/build-module/components/inserter-listbox/item.js +9 -11
  1707. package/build-module/components/inserter-listbox/item.js.map +1 -1
  1708. package/build-module/components/inserter-listbox/row.js +1 -4
  1709. package/build-module/components/inserter-listbox/row.js.map +1 -1
  1710. package/build-module/components/inserter-menu-extension/index.js.map +1 -1
  1711. package/build-module/components/inspector-controls/block-support-slot-container.js +2 -2
  1712. package/build-module/components/inspector-controls/block-support-slot-container.js.map +1 -1
  1713. package/build-module/components/inspector-controls/block-support-tools-panel.js +7 -5
  1714. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  1715. package/build-module/components/inspector-controls/fill.js +4 -10
  1716. package/build-module/components/inspector-controls/fill.js.map +1 -1
  1717. package/build-module/components/inspector-controls/fill.native.js +4 -8
  1718. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  1719. package/build-module/components/inspector-controls/groups.js.map +1 -1
  1720. package/build-module/components/inspector-controls/index.js +7 -7
  1721. package/build-module/components/inspector-controls/index.js.map +1 -1
  1722. package/build-module/components/inspector-controls/slot.js +5 -9
  1723. package/build-module/components/inspector-controls/slot.js.map +1 -1
  1724. package/build-module/components/inspector-controls/slot.native.js +3 -6
  1725. package/build-module/components/inspector-controls/slot.native.js.map +1 -1
  1726. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js +1 -6
  1727. package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -1
  1728. package/build-module/components/inspector-controls-tabs/index.js +1 -4
  1729. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  1730. package/build-module/components/inspector-controls-tabs/position-controls-panel.js +3 -8
  1731. package/build-module/components/inspector-controls-tabs/position-controls-panel.js.map +1 -1
  1732. package/build-module/components/inspector-controls-tabs/settings-tab-hint.js +0 -4
  1733. package/build-module/components/inspector-controls-tabs/settings-tab-hint.js.map +1 -1
  1734. package/build-module/components/inspector-controls-tabs/settings-tab.js +0 -3
  1735. package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  1736. package/build-module/components/inspector-controls-tabs/styles-tab.js +1 -4
  1737. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  1738. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +14 -16
  1739. package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
  1740. package/build-module/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js.map +1 -1
  1741. package/build-module/components/inspector-controls-tabs/utils.js.map +1 -1
  1742. package/build-module/components/inspector-popover-header/index.js +0 -1
  1743. package/build-module/components/inspector-popover-header/index.js.map +1 -1
  1744. package/build-module/components/justify-content-control/index.js +5 -7
  1745. package/build-module/components/justify-content-control/index.js.map +1 -1
  1746. package/build-module/components/justify-content-control/ui.js +0 -4
  1747. package/build-module/components/justify-content-control/ui.js.map +1 -1
  1748. package/build-module/components/keyboard-shortcuts/index.js +9 -3
  1749. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  1750. package/build-module/components/letter-spacing-control/index.js +4 -4
  1751. package/build-module/components/letter-spacing-control/index.js.map +1 -1
  1752. package/build-module/components/line-height-control/index.js +22 -34
  1753. package/build-module/components/line-height-control/index.js.map +1 -1
  1754. package/build-module/components/line-height-control/index.native.js +4 -4
  1755. package/build-module/components/line-height-control/index.native.js.map +1 -1
  1756. package/build-module/components/line-height-control/utils.js +7 -3
  1757. package/build-module/components/line-height-control/utils.js.map +1 -1
  1758. package/build-module/components/link-control/constants.js +3 -2
  1759. package/build-module/components/link-control/constants.js.map +1 -1
  1760. package/build-module/components/link-control/index.js +81 -38
  1761. package/build-module/components/link-control/index.js.map +1 -1
  1762. package/build-module/components/link-control/is-url-like.js +5 -6
  1763. package/build-module/components/link-control/is-url-like.js.map +1 -1
  1764. package/build-module/components/link-control/link-preview.js +12 -11
  1765. package/build-module/components/link-control/link-preview.js.map +1 -1
  1766. package/build-module/components/link-control/search-create-button.js +3 -7
  1767. package/build-module/components/link-control/search-create-button.js.map +1 -1
  1768. package/build-module/components/link-control/search-input.js +18 -23
  1769. package/build-module/components/link-control/search-input.js.map +1 -1
  1770. package/build-module/components/link-control/search-item.js +6 -12
  1771. package/build-module/components/link-control/search-item.js.map +1 -1
  1772. package/build-module/components/link-control/search-results.js +14 -14
  1773. package/build-module/components/link-control/search-results.js.map +1 -1
  1774. package/build-module/components/link-control/settings-drawer.js +0 -3
  1775. package/build-module/components/link-control/settings-drawer.js.map +1 -1
  1776. package/build-module/components/link-control/settings.js +2 -7
  1777. package/build-module/components/link-control/settings.js.map +1 -1
  1778. package/build-module/components/link-control/use-create-page.js +4 -8
  1779. package/build-module/components/link-control/use-create-page.js.map +1 -1
  1780. package/build-module/components/link-control/use-internal-value.js +8 -10
  1781. package/build-module/components/link-control/use-internal-value.js.map +1 -1
  1782. package/build-module/components/link-control/use-rich-url-data.js +9 -12
  1783. package/build-module/components/link-control/use-rich-url-data.js.map +1 -1
  1784. package/build-module/components/link-control/use-search-handler.js +10 -14
  1785. package/build-module/components/link-control/use-search-handler.js.map +1 -1
  1786. package/build-module/components/link-control/viewer-slot.js.map +1 -1
  1787. package/build-module/components/list-view/appender.js +4 -8
  1788. package/build-module/components/list-view/appender.js.map +1 -1
  1789. package/build-module/components/list-view/aria-referenced-text.js +1 -2
  1790. package/build-module/components/list-view/aria-referenced-text.js.map +1 -1
  1791. package/build-module/components/list-view/block-contents.js +5 -5
  1792. package/build-module/components/list-view/block-contents.js.map +1 -1
  1793. package/build-module/components/list-view/block-select-button.js +32 -19
  1794. package/build-module/components/list-view/block-select-button.js.map +1 -1
  1795. package/build-module/components/list-view/block.js +25 -29
  1796. package/build-module/components/list-view/block.js.map +1 -1
  1797. package/build-module/components/list-view/branch.js +9 -28
  1798. package/build-module/components/list-view/branch.js.map +1 -1
  1799. package/build-module/components/list-view/context.js.map +1 -1
  1800. package/build-module/components/list-view/drop-indicator.js +34 -43
  1801. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  1802. package/build-module/components/list-view/expander.js +2 -2
  1803. package/build-module/components/list-view/expander.js.map +1 -1
  1804. package/build-module/components/list-view/index.js +18 -22
  1805. package/build-module/components/list-view/index.js.map +1 -1
  1806. package/build-module/components/list-view/leaf.js +2 -3
  1807. package/build-module/components/list-view/leaf.js.map +1 -1
  1808. package/build-module/components/list-view/use-block-selection.js +15 -22
  1809. package/build-module/components/list-view/use-block-selection.js.map +1 -1
  1810. package/build-module/components/list-view/use-list-view-client-ids.js +2 -1
  1811. package/build-module/components/list-view/use-list-view-client-ids.js.map +1 -1
  1812. package/build-module/components/list-view/use-list-view-drop-zone.js +40 -54
  1813. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  1814. package/build-module/components/list-view/use-list-view-expand-selected-item.js +5 -4
  1815. package/build-module/components/list-view/use-list-view-expand-selected-item.js.map +1 -1
  1816. package/build-module/components/list-view/use-list-view-images.js +78 -0
  1817. package/build-module/components/list-view/use-list-view-images.js.map +1 -0
  1818. package/build-module/components/list-view/use-list-view-scroll-into-view.js +5 -5
  1819. package/build-module/components/list-view/use-list-view-scroll-into-view.js.map +1 -1
  1820. package/build-module/components/list-view/utils.js +3 -4
  1821. package/build-module/components/list-view/utils.js.map +1 -1
  1822. package/build-module/components/media-placeholder/index.js +12 -59
  1823. package/build-module/components/media-placeholder/index.js.map +1 -1
  1824. package/build-module/components/media-placeholder/index.native.js +9 -24
  1825. package/build-module/components/media-placeholder/index.native.js.map +1 -1
  1826. package/build-module/components/media-replace-flow/index.js +9 -25
  1827. package/build-module/components/media-replace-flow/index.js.map +1 -1
  1828. package/build-module/components/media-replace-flow/index.native.js +14 -3
  1829. package/build-module/components/media-replace-flow/index.native.js.map +1 -1
  1830. package/build-module/components/media-upload/check.js +2 -2
  1831. package/build-module/components/media-upload/check.js.map +1 -1
  1832. package/build-module/components/media-upload/index.js +2 -3
  1833. package/build-module/components/media-upload/index.js.map +1 -1
  1834. package/build-module/components/media-upload/index.native.js +18 -29
  1835. package/build-module/components/media-upload/index.native.js.map +1 -1
  1836. package/build-module/components/media-upload-progress/index.native.js +4 -27
  1837. package/build-module/components/media-upload-progress/index.native.js.map +1 -1
  1838. package/build-module/components/multi-selection-inspector/index.js +3 -8
  1839. package/build-module/components/multi-selection-inspector/index.js.map +1 -1
  1840. package/build-module/components/navigable-toolbar/index.js +9 -26
  1841. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  1842. package/build-module/components/observe-typing/index.js +26 -38
  1843. package/build-module/components/observe-typing/index.js.map +1 -1
  1844. package/build-module/components/panel-color-settings/index.js +2 -5
  1845. package/build-module/components/panel-color-settings/index.js.map +1 -1
  1846. package/build-module/components/plain-text/index.js +3 -5
  1847. package/build-module/components/plain-text/index.js.map +1 -1
  1848. package/build-module/components/plain-text/index.native.js +8 -22
  1849. package/build-module/components/plain-text/index.native.js.map +1 -1
  1850. package/build-module/components/preview-options/index.js +1 -2
  1851. package/build-module/components/preview-options/index.js.map +1 -1
  1852. package/build-module/components/provider/block-refs-provider.js +0 -1
  1853. package/build-module/components/provider/block-refs-provider.js.map +1 -1
  1854. package/build-module/components/provider/index.js +8 -5
  1855. package/build-module/components/provider/index.js.map +1 -1
  1856. package/build-module/components/provider/index.native.js +4 -3
  1857. package/build-module/components/provider/index.native.js.map +1 -1
  1858. package/build-module/components/provider/use-block-sync.js +23 -38
  1859. package/build-module/components/provider/use-block-sync.js.map +1 -1
  1860. package/build-module/components/provider/with-registry-provider.js +1 -5
  1861. package/build-module/components/provider/with-registry-provider.js.map +1 -1
  1862. package/build-module/components/publish-date-time-picker/index.js +1 -4
  1863. package/build-module/components/publish-date-time-picker/index.js.map +1 -1
  1864. package/build-module/components/recursion-provider/index.js +6 -7
  1865. package/build-module/components/recursion-provider/index.js.map +1 -1
  1866. package/build-module/components/resizable-box-popover/index.js +3 -3
  1867. package/build-module/components/resizable-box-popover/index.js.map +1 -1
  1868. package/build-module/components/resolution-tool/index.js +0 -1
  1869. package/build-module/components/resolution-tool/index.js.map +1 -1
  1870. package/build-module/components/responsive-block-control/index.js +4 -14
  1871. package/build-module/components/responsive-block-control/index.js.map +1 -1
  1872. package/build-module/components/responsive-block-control/label.js +1 -3
  1873. package/build-module/components/responsive-block-control/label.js.map +1 -1
  1874. package/build-module/components/rich-text/content.js +3 -8
  1875. package/build-module/components/rich-text/content.js.map +1 -1
  1876. package/build-module/components/rich-text/embed-handler-picker.native.js +0 -3
  1877. package/build-module/components/rich-text/embed-handler-picker.native.js.map +1 -1
  1878. package/build-module/components/rich-text/file-paste-handler.native.js.map +1 -1
  1879. package/build-module/components/rich-text/format-edit.js +49 -28
  1880. package/build-module/components/rich-text/format-edit.js.map +1 -1
  1881. package/build-module/components/rich-text/format-toolbar/index.js +5 -9
  1882. package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
  1883. package/build-module/components/rich-text/format-toolbar/index.native.js +1 -3
  1884. package/build-module/components/rich-text/format-toolbar/index.native.js.map +1 -1
  1885. package/build-module/components/rich-text/format-toolbar-container.js +4 -14
  1886. package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
  1887. package/build-module/components/rich-text/format-toolbar-container.native.js +0 -3
  1888. package/build-module/components/rich-text/format-toolbar-container.native.js.map +1 -1
  1889. package/build-module/components/rich-text/get-rich-text-values.js +15 -34
  1890. package/build-module/components/rich-text/get-rich-text-values.js.map +1 -1
  1891. package/build-module/components/rich-text/index.js +19 -37
  1892. package/build-module/components/rich-text/index.js.map +1 -1
  1893. package/build-module/components/rich-text/index.native.js +49 -76
  1894. package/build-module/components/rich-text/index.native.js.map +1 -1
  1895. package/build-module/components/rich-text/input-event.js +1 -2
  1896. package/build-module/components/rich-text/input-event.js.map +1 -1
  1897. package/build-module/components/rich-text/input-event.native.js +0 -1
  1898. package/build-module/components/rich-text/input-event.native.js.map +1 -1
  1899. package/build-module/components/rich-text/prevent-event-discovery.js +0 -4
  1900. package/build-module/components/rich-text/prevent-event-discovery.js.map +1 -1
  1901. package/build-module/components/rich-text/remove-browser-shortcuts.native.js.map +1 -1
  1902. package/build-module/components/rich-text/shortcut.js +1 -2
  1903. package/build-module/components/rich-text/shortcut.js.map +1 -1
  1904. package/build-module/components/rich-text/shortcut.native.js +0 -1
  1905. package/build-module/components/rich-text/shortcut.native.js.map +1 -1
  1906. package/build-module/components/rich-text/split-value.js +19 -16
  1907. package/build-module/components/rich-text/split-value.js.map +1 -1
  1908. package/build-module/components/rich-text/toolbar-button.js +2 -5
  1909. package/build-module/components/rich-text/toolbar-button.js.map +1 -1
  1910. package/build-module/components/rich-text/use-before-input-rules.js +7 -16
  1911. package/build-module/components/rich-text/use-before-input-rules.js.map +1 -1
  1912. package/build-module/components/rich-text/use-delete.js +5 -10
  1913. package/build-module/components/rich-text/use-delete.js.map +1 -1
  1914. package/build-module/components/rich-text/use-enter.js +3 -10
  1915. package/build-module/components/rich-text/use-enter.js.map +1 -1
  1916. package/build-module/components/rich-text/use-firefox-compat.js +5 -35
  1917. package/build-module/components/rich-text/use-firefox-compat.js.map +1 -1
  1918. package/build-module/components/rich-text/use-format-types.js +9 -20
  1919. package/build-module/components/rich-text/use-format-types.js.map +1 -1
  1920. package/build-module/components/rich-text/use-input-events.js +0 -1
  1921. package/build-module/components/rich-text/use-input-events.js.map +1 -1
  1922. package/build-module/components/rich-text/use-input-rules.js +10 -28
  1923. package/build-module/components/rich-text/use-input-rules.js.map +1 -1
  1924. package/build-module/components/rich-text/use-insert-replacement-text.js +2 -3
  1925. package/build-module/components/rich-text/use-insert-replacement-text.js.map +1 -1
  1926. package/build-module/components/rich-text/use-mark-persistent.js +6 -6
  1927. package/build-module/components/rich-text/use-mark-persistent.js.map +1 -1
  1928. package/build-module/components/rich-text/use-paste-handler.js +26 -62
  1929. package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
  1930. package/build-module/components/rich-text/use-remove-browser-shortcuts.js +1 -2
  1931. package/build-module/components/rich-text/use-remove-browser-shortcuts.js.map +1 -1
  1932. package/build-module/components/rich-text/use-shortcuts.js +0 -1
  1933. package/build-module/components/rich-text/use-shortcuts.js.map +1 -1
  1934. package/build-module/components/rich-text/use-undo-automatic-change.js +1 -9
  1935. package/build-module/components/rich-text/use-undo-automatic-change.js.map +1 -1
  1936. package/build-module/components/rich-text/utils.js +2 -6
  1937. package/build-module/components/rich-text/utils.js.map +1 -1
  1938. package/build-module/components/selection-scroll-into-view/index.js +1 -1
  1939. package/build-module/components/selection-scroll-into-view/index.js.map +1 -1
  1940. package/build-module/components/skip-to-selected-block/index.js +2 -7
  1941. package/build-module/components/skip-to-selected-block/index.js.map +1 -1
  1942. package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js +1 -3
  1943. package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
  1944. package/build-module/components/spacing-sizes-control/index.js +13 -14
  1945. package/build-module/components/spacing-sizes-control/index.js.map +1 -1
  1946. package/build-module/components/spacing-sizes-control/input-controls/axial.js +6 -9
  1947. package/build-module/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
  1948. package/build-module/components/spacing-sizes-control/input-controls/separated.js +2 -4
  1949. package/build-module/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
  1950. package/build-module/components/spacing-sizes-control/input-controls/single.js +2 -3
  1951. package/build-module/components/spacing-sizes-control/input-controls/single.js.map +1 -1
  1952. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +6 -19
  1953. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  1954. package/build-module/components/spacing-sizes-control/sides-dropdown/index.js +1 -3
  1955. package/build-module/components/spacing-sizes-control/sides-dropdown/index.js.map +1 -1
  1956. package/build-module/components/spacing-sizes-control/utils.js +35 -52
  1957. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  1958. package/build-module/components/text-decoration-control/index.js +2 -3
  1959. package/build-module/components/text-decoration-control/index.js.map +1 -1
  1960. package/build-module/components/text-transform-control/index.js +2 -3
  1961. package/build-module/components/text-transform-control/index.js.map +1 -1
  1962. package/build-module/components/tool-selector/index.js +4 -7
  1963. package/build-module/components/tool-selector/index.js.map +1 -1
  1964. package/build-module/components/typewriter/index.js +30 -46
  1965. package/build-module/components/typewriter/index.js.map +1 -1
  1966. package/build-module/components/ungroup-button/index.native.js +1 -7
  1967. package/build-module/components/ungroup-button/index.native.js.map +1 -1
  1968. package/build-module/components/unit-control/index.js +1 -2
  1969. package/build-module/components/unit-control/index.js.map +1 -1
  1970. package/build-module/components/url-input/button.js +2 -9
  1971. package/build-module/components/url-input/button.js.map +1 -1
  1972. package/build-module/components/url-input/index.js +41 -81
  1973. package/build-module/components/url-input/index.js.map +1 -1
  1974. package/build-module/components/url-input/index.native.js +1 -2
  1975. package/build-module/components/url-input/index.native.js.map +1 -1
  1976. package/build-module/components/url-popover/image-url-input-ui.js +3 -31
  1977. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  1978. package/build-module/components/url-popover/index.js +5 -12
  1979. package/build-module/components/url-popover/index.js.map +1 -1
  1980. package/build-module/components/url-popover/link-editor.js +2 -3
  1981. package/build-module/components/url-popover/link-editor.js.map +1 -1
  1982. package/build-module/components/url-popover/link-viewer-url.js +1 -4
  1983. package/build-module/components/url-popover/link-viewer-url.js.map +1 -1
  1984. package/build-module/components/url-popover/link-viewer.js +2 -3
  1985. package/build-module/components/url-popover/link-viewer.js.map +1 -1
  1986. package/build-module/components/use-block-commands/index.js +238 -0
  1987. package/build-module/components/use-block-commands/index.js.map +1 -0
  1988. package/build-module/components/use-block-display-information/index.js +3 -6
  1989. package/build-module/components/use-block-display-information/index.js.map +1 -1
  1990. package/build-module/components/use-block-drop-zone/index.js +14 -19
  1991. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  1992. package/build-module/components/use-block-drop-zone/index.native.js +13 -16
  1993. package/build-module/components/use-block-drop-zone/index.native.js.map +1 -1
  1994. package/build-module/components/use-display-block-controls/index.js +1 -4
  1995. package/build-module/components/use-display-block-controls/index.js.map +1 -1
  1996. package/build-module/components/use-display-block-controls/index.native.js +1 -3
  1997. package/build-module/components/use-display-block-controls/index.native.js.map +1 -1
  1998. package/build-module/components/use-moving-animation/index.js +6 -17
  1999. package/build-module/components/use-moving-animation/index.js.map +1 -1
  2000. package/build-module/components/use-on-block-drop/index.js +21 -30
  2001. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  2002. package/build-module/components/use-on-block-drop/index.native.js +13 -12
  2003. package/build-module/components/use-on-block-drop/index.native.js.map +1 -1
  2004. package/build-module/components/use-on-block-drop/types.js.map +1 -1
  2005. package/build-module/components/use-paste-styles/index.js +12 -21
  2006. package/build-module/components/use-paste-styles/index.js.map +1 -1
  2007. package/build-module/components/use-resize-canvas/index.js +1 -13
  2008. package/build-module/components/use-resize-canvas/index.js.map +1 -1
  2009. package/build-module/components/use-setting/index.js +17 -33
  2010. package/build-module/components/use-setting/index.js.map +1 -1
  2011. package/build-module/components/video-player/gridicon-play.native.js +0 -1
  2012. package/build-module/components/video-player/gridicon-play.native.js.map +1 -1
  2013. package/build-module/components/video-player/index.native.js +12 -17
  2014. package/build-module/components/video-player/index.native.js.map +1 -1
  2015. package/build-module/components/warning/index.js +2 -5
  2016. package/build-module/components/warning/index.js.map +1 -1
  2017. package/build-module/components/warning/index.native.js +2 -5
  2018. package/build-module/components/warning/index.native.js.map +1 -1
  2019. package/build-module/components/writing-flow/index.js +5 -9
  2020. package/build-module/components/writing-flow/index.js.map +1 -1
  2021. package/build-module/components/writing-flow/use-arrow-nav.js +37 -53
  2022. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  2023. package/build-module/components/writing-flow/use-click-selection.js +3 -6
  2024. package/build-module/components/writing-flow/use-click-selection.js.map +1 -1
  2025. package/build-module/components/writing-flow/use-drag-selection.js +27 -29
  2026. package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
  2027. package/build-module/components/writing-flow/use-input.js +8 -17
  2028. package/build-module/components/writing-flow/use-input.js.map +1 -1
  2029. package/build-module/components/writing-flow/use-multi-selection.js +10 -14
  2030. package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
  2031. package/build-module/components/writing-flow/use-select-all.js +4 -9
  2032. package/build-module/components/writing-flow/use-select-all.js.map +1 -1
  2033. package/build-module/components/writing-flow/use-selection-observer.js +20 -44
  2034. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
  2035. package/build-module/components/writing-flow/use-tab-nav.js +28 -34
  2036. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  2037. package/build-module/components/writing-mode-control/index.js +2 -3
  2038. package/build-module/components/writing-mode-control/index.js.map +1 -1
  2039. package/build-module/elements/index.js.map +1 -1
  2040. package/build-module/hooks/align.js +25 -36
  2041. package/build-module/hooks/align.js.map +1 -1
  2042. package/build-module/hooks/align.native.js +6 -4
  2043. package/build-module/hooks/align.native.js.map +1 -1
  2044. package/build-module/hooks/anchor.js +11 -15
  2045. package/build-module/hooks/anchor.js.map +1 -1
  2046. package/build-module/hooks/aria-label.js +4 -6
  2047. package/build-module/hooks/aria-label.js.map +1 -1
  2048. package/build-module/hooks/behaviors.js +14 -25
  2049. package/build-module/hooks/behaviors.js.map +1 -1
  2050. package/build-module/hooks/border.js +48 -65
  2051. package/build-module/hooks/border.js.map +1 -1
  2052. package/build-module/hooks/color.js +32 -52
  2053. package/build-module/hooks/color.js.map +1 -1
  2054. package/build-module/hooks/compat.js +0 -4
  2055. package/build-module/hooks/compat.js.map +1 -1
  2056. package/build-module/hooks/content-lock-ui.js +5 -13
  2057. package/build-module/hooks/content-lock-ui.js.map +1 -1
  2058. package/build-module/hooks/contrast-checker.js +4 -11
  2059. package/build-module/hooks/contrast-checker.js.map +1 -1
  2060. package/build-module/hooks/custom-class-name.js +24 -26
  2061. package/build-module/hooks/custom-class-name.js.map +1 -1
  2062. package/build-module/hooks/custom-class-name.native.js +5 -6
  2063. package/build-module/hooks/custom-class-name.native.js.map +1 -1
  2064. package/build-module/hooks/custom-fields.js +113 -0
  2065. package/build-module/hooks/custom-fields.js.map +1 -0
  2066. package/build-module/hooks/dimensions.js +6 -11
  2067. package/build-module/hooks/dimensions.js.map +1 -1
  2068. package/build-module/hooks/duotone.js +43 -49
  2069. package/build-module/hooks/duotone.js.map +1 -1
  2070. package/build-module/hooks/font-family.js +9 -20
  2071. package/build-module/hooks/font-family.js.map +1 -1
  2072. package/build-module/hooks/font-size.js +36 -47
  2073. package/build-module/hooks/font-size.js.map +1 -1
  2074. package/build-module/hooks/gap.js +2 -5
  2075. package/build-module/hooks/gap.js.map +1 -1
  2076. package/build-module/hooks/generated-class-name.js +2 -2
  2077. package/build-module/hooks/generated-class-name.js.map +1 -1
  2078. package/build-module/hooks/index.js +1 -0
  2079. package/build-module/hooks/index.js.map +1 -1
  2080. package/build-module/hooks/index.native.js.map +1 -1
  2081. package/build-module/hooks/layout.js +46 -54
  2082. package/build-module/hooks/layout.js.map +1 -1
  2083. package/build-module/hooks/layout.native.js +5 -3
  2084. package/build-module/hooks/layout.native.js.map +1 -1
  2085. package/build-module/hooks/line-height.js +7 -8
  2086. package/build-module/hooks/line-height.js.map +1 -1
  2087. package/build-module/hooks/lock.js +5 -6
  2088. package/build-module/hooks/lock.js.map +1 -1
  2089. package/build-module/hooks/margin.js +1 -10
  2090. package/build-module/hooks/margin.js.map +1 -1
  2091. package/build-module/hooks/metadata-name.js +5 -6
  2092. package/build-module/hooks/metadata-name.js.map +1 -1
  2093. package/build-module/hooks/metadata.js +3 -7
  2094. package/build-module/hooks/metadata.js.map +1 -1
  2095. package/build-module/hooks/padding.js +1 -10
  2096. package/build-module/hooks/padding.js.map +1 -1
  2097. package/build-module/hooks/position.js +36 -38
  2098. package/build-module/hooks/position.js.map +1 -1
  2099. package/build-module/hooks/settings.js +4 -7
  2100. package/build-module/hooks/settings.js.map +1 -1
  2101. package/build-module/hooks/style.js +39 -44
  2102. package/build-module/hooks/style.js.map +1 -1
  2103. package/build-module/hooks/supports.js +22 -33
  2104. package/build-module/hooks/supports.js.map +1 -1
  2105. package/build-module/hooks/typography.js +11 -16
  2106. package/build-module/hooks/typography.js.map +1 -1
  2107. package/build-module/hooks/typography.native.js +5 -7
  2108. package/build-module/hooks/typography.native.js.map +1 -1
  2109. package/build-module/hooks/use-border-props.js +7 -6
  2110. package/build-module/hooks/use-border-props.js.map +1 -1
  2111. package/build-module/hooks/use-cached-truthy.js +1 -1
  2112. package/build-module/hooks/use-cached-truthy.js.map +1 -1
  2113. package/build-module/hooks/use-color-props.js +18 -17
  2114. package/build-module/hooks/use-color-props.js.map +1 -1
  2115. package/build-module/hooks/use-editor-wrapper-styles.native.js +8 -26
  2116. package/build-module/hooks/use-editor-wrapper-styles.native.js.map +1 -1
  2117. package/build-module/hooks/use-spacing-props.js +5 -3
  2118. package/build-module/hooks/use-spacing-props.js.map +1 -1
  2119. package/build-module/hooks/use-typography-props.js +4 -4
  2120. package/build-module/hooks/use-typography-props.js.map +1 -1
  2121. package/build-module/hooks/utils.js +12 -18
  2122. package/build-module/hooks/utils.js.map +1 -1
  2123. package/build-module/index.js.map +1 -1
  2124. package/build-module/index.native.js.map +1 -1
  2125. package/build-module/layouts/constrained.js +14 -26
  2126. package/build-module/layouts/constrained.js.map +1 -1
  2127. package/build-module/layouts/definitions.js.map +1 -1
  2128. package/build-module/layouts/flex.js +18 -41
  2129. package/build-module/layouts/flex.js.map +1 -1
  2130. package/build-module/layouts/flow.js +8 -17
  2131. package/build-module/layouts/flow.js.map +1 -1
  2132. package/build-module/layouts/grid.js +20 -25
  2133. package/build-module/layouts/grid.js.map +1 -1
  2134. package/build-module/layouts/index.js +2 -2
  2135. package/build-module/layouts/index.js.map +1 -1
  2136. package/build-module/layouts/utils.js +5 -9
  2137. package/build-module/layouts/utils.js.map +1 -1
  2138. package/build-module/lock-unlock.js.map +1 -1
  2139. package/build-module/private-apis.js +6 -5
  2140. package/build-module/private-apis.js.map +1 -1
  2141. package/build-module/private-apis.native.js +3 -2
  2142. package/build-module/private-apis.native.js.map +1 -1
  2143. package/build-module/store/actions.js +189 -198
  2144. package/build-module/store/actions.js.map +1 -1
  2145. package/build-module/store/array.js +1 -1
  2146. package/build-module/store/array.js.map +1 -1
  2147. package/build-module/store/constants.js.map +1 -1
  2148. package/build-module/store/defaults.js +1 -1
  2149. package/build-module/store/defaults.js.map +1 -1
  2150. package/build-module/store/defaults.native.js +2 -1
  2151. package/build-module/store/defaults.native.js.map +1 -1
  2152. package/build-module/store/index.js +13 -9
  2153. package/build-module/store/index.js.map +1 -1
  2154. package/build-module/store/private-actions.js +25 -78
  2155. package/build-module/store/private-actions.js.map +1 -1
  2156. package/build-module/store/private-selectors.js +6 -76
  2157. package/build-module/store/private-selectors.js.map +1 -1
  2158. package/build-module/store/reducer.js +161 -328
  2159. package/build-module/store/reducer.js.map +1 -1
  2160. package/build-module/store/selectors.js +255 -398
  2161. package/build-module/store/selectors.js.map +1 -1
  2162. package/build-module/store/utils.js.map +1 -1
  2163. package/build-module/utils/block-variation-transforms.js +2 -3
  2164. package/build-module/utils/block-variation-transforms.js.map +1 -1
  2165. package/build-module/utils/dom.js +4 -10
  2166. package/build-module/utils/dom.js.map +1 -1
  2167. package/build-module/utils/index.js.map +1 -1
  2168. package/build-module/utils/math.js +5 -7
  2169. package/build-module/utils/math.js.map +1 -1
  2170. package/build-module/utils/object.js +15 -21
  2171. package/build-module/utils/object.js.map +1 -1
  2172. package/build-module/utils/order-inserter-block-items.js +2 -3
  2173. package/build-module/utils/order-inserter-block-items.js.map +1 -1
  2174. package/build-module/utils/parse-css-unit-to-px.js +14 -64
  2175. package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
  2176. package/build-module/utils/pasting.js +8 -12
  2177. package/build-module/utils/pasting.js.map +1 -1
  2178. package/build-module/utils/pre-parse-patterns.js +1 -14
  2179. package/build-module/utils/pre-parse-patterns.js.map +1 -1
  2180. package/build-module/utils/selection.js +1 -2
  2181. package/build-module/utils/selection.js.map +1 -1
  2182. package/build-module/utils/sorting.js +3 -7
  2183. package/build-module/utils/sorting.js.map +1 -1
  2184. package/build-module/utils/transform-styles/ast/index.js +1 -0
  2185. package/build-module/utils/transform-styles/ast/index.js.map +1 -1
  2186. package/build-module/utils/transform-styles/ast/parse.js +95 -134
  2187. package/build-module/utils/transform-styles/ast/parse.js.map +1 -1
  2188. package/build-module/utils/transform-styles/ast/stringify/compiler.js +5 -6
  2189. package/build-module/utils/transform-styles/ast/stringify/compiler.js.map +1 -1
  2190. package/build-module/utils/transform-styles/ast/stringify/compress.js +28 -19
  2191. package/build-module/utils/transform-styles/ast/stringify/compress.js.map +1 -1
  2192. package/build-module/utils/transform-styles/ast/stringify/identity.js +32 -23
  2193. package/build-module/utils/transform-styles/ast/stringify/identity.js.map +1 -1
  2194. package/build-module/utils/transform-styles/ast/stringify/index.js +1 -0
  2195. package/build-module/utils/transform-styles/ast/stringify/index.js.map +1 -1
  2196. package/build-module/utils/transform-styles/index.js +2 -7
  2197. package/build-module/utils/transform-styles/index.js.map +1 -1
  2198. package/build-module/utils/transform-styles/transforms/url-rewrite.js +12 -24
  2199. package/build-module/utils/transform-styles/transforms/url-rewrite.js.map +1 -1
  2200. package/build-module/utils/transform-styles/transforms/wrap.js +7 -8
  2201. package/build-module/utils/transform-styles/transforms/wrap.js.map +1 -1
  2202. package/build-module/utils/transform-styles/traverse.js +1 -4
  2203. package/build-module/utils/transform-styles/traverse.js.map +1 -1
  2204. package/build-module/utils/use-should-contextual-toolbar-show.js +2 -5
  2205. package/build-module/utils/use-should-contextual-toolbar-show.js.map +1 -1
  2206. package/build-style/style-rtl.css +69 -10
  2207. package/build-style/style.css +69 -10
  2208. package/package.json +33 -32
  2209. package/src/autocompleters/block.js +21 -6
  2210. package/src/components/block-caption/README.md +109 -0
  2211. package/src/components/block-controls/use-has-block-controls.js +35 -0
  2212. package/src/components/block-draggable/test/index.native.js +2 -3
  2213. package/src/components/block-editing-mode/index.js +4 -8
  2214. package/src/components/block-inspector/index.js +1 -2
  2215. package/src/components/block-list/block-outline.native.js +2 -2
  2216. package/src/components/block-list/block.js +7 -3
  2217. package/src/components/block-list/index.js +3 -6
  2218. package/src/components/block-list/index.native.js +14 -14
  2219. package/src/components/block-list/test/block-invalid-warning.native.js +15 -1
  2220. package/src/components/block-list/use-in-between-inserter.js +1 -2
  2221. package/src/components/block-list-appender/index.js +1 -2
  2222. package/src/components/block-mover/test/__snapshots__/index.native.js.snap +24 -0
  2223. package/src/components/block-parent-selector/index.js +30 -43
  2224. package/src/components/block-preview/auto.js +8 -1
  2225. package/src/components/block-preview/index.js +0 -1
  2226. package/src/components/block-preview/style.scss +2 -1
  2227. package/src/components/block-settings-menu/block-settings-dropdown.js +4 -13
  2228. package/src/components/block-toolbar/index.js +36 -64
  2229. package/src/components/block-toolbar/style.scss +10 -0
  2230. package/src/components/block-toolbar/utils.js +57 -45
  2231. package/src/components/block-tools/block-contextual-toolbar.js +124 -38
  2232. package/src/components/block-tools/style.scss +49 -13
  2233. package/src/components/block-variation-picker/index.native.js +52 -72
  2234. package/src/components/color-palette/test/__snapshots__/control.js.snap +1 -1
  2235. package/src/components/copy-handler/index.js +1 -0
  2236. package/src/components/default-block-appender/index.native.js +13 -11
  2237. package/src/components/dimensions-tool/index.js +1 -1
  2238. package/src/components/editor-styles/index.js +2 -2
  2239. package/src/components/font-sizes/fluid-utils.js +17 -17
  2240. package/src/components/font-sizes/test/fluid-utils.js +6 -6
  2241. package/src/components/global-styles/behaviors-panel.js +71 -0
  2242. package/src/components/global-styles/hooks.js +114 -5
  2243. package/src/components/global-styles/index.js +3 -0
  2244. package/src/components/global-styles/test/typography-utils.js +61 -6
  2245. package/src/components/global-styles/typography-utils.js +15 -6
  2246. package/src/components/global-styles/use-global-styles-output.js +1 -2
  2247. package/src/components/global-styles/utils.js +2 -1
  2248. package/src/components/iframe/index.js +1 -0
  2249. package/src/components/index.js +7 -0
  2250. package/src/components/inserter/hooks/use-block-types-state.js +15 -6
  2251. package/src/components/inserter/hooks/use-debounced-input.js +8 -7
  2252. package/src/components/inserter/hooks/use-patterns-state.js +2 -1
  2253. package/src/components/inserter/menu.js +1 -0
  2254. package/src/components/inserter/preview-panel.js +15 -11
  2255. package/src/components/inserter/reusable-blocks-tab.js +4 -1
  2256. package/src/components/inserter/search-results.js +2 -1
  2257. package/src/components/inserter/stories/{index.js → index.story.js} +4 -4
  2258. package/src/components/inserter/test/search-items.js +4 -1
  2259. package/src/components/inserter-list-item/index.js +3 -1
  2260. package/src/components/keyboard-shortcuts/index.js +10 -0
  2261. package/src/components/line-height-control/index.js +14 -11
  2262. package/src/components/line-height-control/test/index.js +7 -5
  2263. package/src/components/line-height-control/utils.js +6 -1
  2264. package/src/components/link-control/README.md +12 -3
  2265. package/src/components/link-control/index.js +70 -13
  2266. package/src/components/link-control/link-preview.js +10 -4
  2267. package/src/components/link-control/style.scss +12 -2
  2268. package/src/components/link-control/test/index.js +64 -4
  2269. package/src/components/list-view/block-select-button.js +19 -0
  2270. package/src/components/list-view/block.js +1 -4
  2271. package/src/components/list-view/style.scss +25 -0
  2272. package/src/components/list-view/use-list-view-drop-zone.js +5 -1
  2273. package/src/components/list-view/use-list-view-images.js +79 -0
  2274. package/src/components/media-replace-flow/index.native.js +12 -3
  2275. package/src/components/media-upload/test/index.native.js +1 -0
  2276. package/src/components/rich-text/format-edit.js +62 -38
  2277. package/src/components/rich-text/get-rich-text-values.js +22 -28
  2278. package/src/components/rich-text/index.js +8 -1
  2279. package/src/components/rich-text/use-firefox-compat.js +1 -27
  2280. package/src/components/rich-text/use-format-types.js +3 -3
  2281. package/src/components/rich-text/use-paste-handler.js +4 -23
  2282. package/src/components/spacing-sizes-control/test/utils.js +9 -1
  2283. package/src/components/spacing-sizes-control/utils.js +2 -2
  2284. package/src/components/use-block-commands/index.js +284 -0
  2285. package/src/components/use-block-drop-zone/index.js +1 -2
  2286. package/src/components/use-setting/README.md +39 -0
  2287. package/src/components/writing-flow/use-drag-selection.js +5 -1
  2288. package/src/hooks/behaviors.js +10 -16
  2289. package/src/hooks/border.js +2 -1
  2290. package/src/hooks/custom-fields.js +139 -0
  2291. package/src/hooks/index.js +1 -0
  2292. package/src/hooks/layout.js +13 -4
  2293. package/src/hooks/style.js +7 -3
  2294. package/src/private-apis.js +2 -2
  2295. package/src/store/actions.js +71 -30
  2296. package/src/store/private-actions.js +0 -39
  2297. package/src/store/private-selectors.js +1 -67
  2298. package/src/store/selectors.js +66 -81
  2299. package/src/store/test/actions.js +28 -0
  2300. package/src/store/test/private-actions.js +0 -28
  2301. package/src/store/test/private-selectors.js +88 -261
  2302. package/src/store/test/selectors.js +209 -6
  2303. package/src/utils/transform-styles/ast/parse.js +31 -0
  2304. package/src/utils/transform-styles/ast/stringify/compress.js +13 -0
  2305. package/src/utils/transform-styles/ast/stringify/identity.js +13 -0
  2306. package/src/utils/transform-styles/transforms/test/__snapshots__/wrap.js.snap +8 -0
  2307. package/src/utils/transform-styles/transforms/test/wrap.js +11 -0
  2308. package/tsconfig.tsbuildinfo +1 -1
  2309. /package/src/components/block-draggable/stories/{index.js → index.story.js} +0 -0
  2310. /package/src/components/block-mover/stories/{index.js → index.story.js} +0 -0
  2311. /package/src/components/dimensions-tool/stories/{aspect-ratio-tool.js → aspect-ratio-tool.story.js} +0 -0
  2312. /package/src/components/dimensions-tool/stories/{index.js → index.story.js} +0 -0
  2313. /package/src/components/dimensions-tool/stories/{scale-tool.js → scale-tool.story.js} +0 -0
  2314. /package/src/components/dimensions-tool/stories/{width-height-tool.js → width-height-tool.story.js} +0 -0
  2315. /package/src/components/height-control/stories/{index.js → index.story.js} +0 -0
  2316. /package/src/components/line-height-control/stories/{index.js → index.story.js} +0 -0
  2317. /package/src/components/resolution-tool/stories/{index.js → index.story.js} +0 -0
  2318. /package/src/components/text-decoration-control/stories/{index.js → index.story.js} +0 -0
  2319. /package/src/components/text-transform-control/stories/{index.js → index.story.js} +0 -0
  2320. /package/src/components/url-popover/stories/{index.js → index.story.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/store/reducer.js"],"names":["fastDeepEqual","pipe","combineReducers","select","store","blocksStore","PREFERENCES_DEFAULTS","SETTINGS_DEFAULTS","insertAt","moveTo","identity","x","mapBlockOrder","blocks","rootClientId","result","Map","current","set","forEach","block","clientId","innerBlocks","push","order","subClientId","mapBlockParents","stack","length","parent","currentBlocks","shift","flattenBlocks","transform","getFlattenedClientIds","getFlattenedBlocksWithoutAttributes","attributes","restBlock","getFlattenedBlockAttributes","hasSameKeys","a","b","Object","keys","isUpdatingSameBlockAttribute","action","lastAction","type","undefined","clientIds","updateBlockTreeForBlocks","state","treeToUpdate","tree","flattenedBlocks","assign","get","byClientId","map","subBlock","updateParentInnerBlocksInTree","updatedClientIds","updateChildrenOfUpdatedClientIds","uncontrolledParents","Set","controlledParents","parents","controlledInnerBlocks","add","withBlockTree","reducer","newState","inserterClientIds","replacedClientIds","concat","filter","key","delete","parentsOfRemovedBlocks","removedClientIds","updatedBlockUids","fromRootClientId","toRootClientId","name","ref","updatedId","withPersistentBlockChange","markNextChangeAsNotPersistent","nextState","isExplicitPersistentChange","nextIsPersistentChange","isPersistentChange","withIgnoredBlockChange","IGNORED_ACTION_TYPES","isIgnoredChange","has","withInnerBlocksRemoveCascade","getAllChildren","i","keepControlledInnerBlocks","withBlockReset","withReplaceInnerBlocks","nestedControllers","stateAfterBlocksRemoval","stateAfterInsert","index","stateAfterInsertOrder","_key","withSaveReusableBlock","id","withResetControlledBlocks","tempState","value","changes","updates","values","every","hasChange","updatedAttributeEntries","entries","uniqueByBlock","hasUpdatedAttributes","existingAttributes","newAttributes","blockOrder","subState","mappedBlocks","fromIndex","indexOf","includes","firstClientId","firstIndex","lastClientId","newSubOrder","reduce","hasControlledInnerBlocks","isBlockInterfaceHidden","isTyping","draggedBlocks","blockVisibility","selectionHelper","updateSelection","blockToSelect","indexToSelect","selection","selectionStart","attributeKey","offset","startOffset","selectionEnd","endOffset","start","end","startClientId","endClientId","some","isMultiSelecting","isSelectionEnabled","removalPromptData","selectPrevious","blockNamesForPrompt","blockRemovalRules","rules","initialPosition","blocksMode","insertionPoint","__unstableWithInserter","operation","template","isValid","settings","reset","preferences","prevState","blockName","match","getActiveBlockVariation","insertUsage","time","count","blockListSettings","fromEntries","hasOwnProperty","removedBlock","restBlocks","editorMode","mode","hasBlockMovingClientId","lastBlockAttributesChange","accumulator","highlightedBlock","isHighlighted","lastBlockInserted","source","meta","temporarilyEditingAsBlocks","blockEditingModes","combinedReducers","withAutomaticChangeReset","automaticChangeStatus"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\n/**\n * WordPress dependencies\n */\nimport { pipe } from '@wordpress/compose';\nimport { combineReducers, select } from '@wordpress/data';\nimport { store as blocksStore } from '@wordpress/blocks';\n/**\n * Internal dependencies\n */\nimport { PREFERENCES_DEFAULTS, SETTINGS_DEFAULTS } from './defaults';\nimport { insertAt, moveTo } from './array';\n\nconst identity = ( x ) => x;\n\n/**\n * Given an array of blocks, returns an object where each key is a nesting\n * context, the value of which is an array of block client IDs existing within\n * that nesting context.\n *\n * @param {Array} blocks Blocks to map.\n * @param {?string} rootClientId Assumed root client ID.\n *\n * @return {Object} Block order map object.\n */\nfunction mapBlockOrder( blocks, rootClientId = '' ) {\n\tconst result = new Map();\n\tconst current = [];\n\tresult.set( rootClientId, current );\n\tblocks.forEach( ( block ) => {\n\t\tconst { clientId, innerBlocks } = block;\n\t\tcurrent.push( clientId );\n\t\tmapBlockOrder( innerBlocks, clientId ).forEach(\n\t\t\t( order, subClientId ) => {\n\t\t\t\tresult.set( subClientId, order );\n\t\t\t}\n\t\t);\n\t} );\n\treturn result;\n}\n\n/**\n * Given an array of blocks, returns an object where each key contains\n * the clientId of the block and the value is the parent of the block.\n *\n * @param {Array} blocks Blocks to map.\n * @param {?string} rootClientId Assumed root client ID.\n *\n * @return {Object} Block order map object.\n */\nfunction mapBlockParents( blocks, rootClientId = '' ) {\n\tconst result = [];\n\tconst stack = [ [ rootClientId, blocks ] ];\n\twhile ( stack.length ) {\n\t\tconst [ parent, currentBlocks ] = stack.shift();\n\t\tcurrentBlocks.forEach( ( { innerBlocks, ...block } ) => {\n\t\t\tresult.push( [ block.clientId, parent ] );\n\t\t\tif ( innerBlocks?.length ) {\n\t\t\t\tstack.push( [ block.clientId, innerBlocks ] );\n\t\t\t}\n\t\t} );\n\t}\n\treturn result;\n}\n\n/**\n * Helper method to iterate through all blocks, recursing into inner blocks,\n * applying a transformation function to each one.\n * Returns a flattened object with the transformed blocks.\n *\n * @param {Array} blocks Blocks to flatten.\n * @param {Function} transform Transforming function to be applied to each block.\n *\n * @return {Array} Flattened object.\n */\nfunction flattenBlocks( blocks, transform = identity ) {\n\tconst result = [];\n\n\tconst stack = [ ...blocks ];\n\twhile ( stack.length ) {\n\t\tconst { innerBlocks, ...block } = stack.shift();\n\t\tstack.push( ...innerBlocks );\n\t\tresult.push( [ block.clientId, transform( block ) ] );\n\t}\n\n\treturn result;\n}\n\nfunction getFlattenedClientIds( blocks ) {\n\tconst result = {};\n\tconst stack = [ ...blocks ];\n\twhile ( stack.length ) {\n\t\tconst { innerBlocks, ...block } = stack.shift();\n\t\tstack.push( ...innerBlocks );\n\t\tresult[ block.clientId ] = true;\n\t}\n\n\treturn result;\n}\n\n/**\n * Given an array of blocks, returns an object containing all blocks, without\n * attributes, recursing into inner blocks. Keys correspond to the block client\n * ID, the value of which is the attributes object.\n *\n * @param {Array} blocks Blocks to flatten.\n *\n * @return {Array} Flattened block attributes object.\n */\nfunction getFlattenedBlocksWithoutAttributes( blocks ) {\n\treturn flattenBlocks( blocks, ( block ) => {\n\t\tconst { attributes, ...restBlock } = block;\n\t\treturn restBlock;\n\t} );\n}\n\n/**\n * Given an array of blocks, returns an object containing all block attributes,\n * recursing into inner blocks. Keys correspond to the block client ID, the\n * value of which is the attributes object.\n *\n * @param {Array} blocks Blocks to flatten.\n *\n * @return {Array} Flattened block attributes object.\n */\nfunction getFlattenedBlockAttributes( blocks ) {\n\treturn flattenBlocks( blocks, ( block ) => block.attributes );\n}\n\n/**\n * Returns true if the two object arguments have the same keys, or false\n * otherwise.\n *\n * @param {Object} a First object.\n * @param {Object} b Second object.\n *\n * @return {boolean} Whether the two objects have the same keys.\n */\nexport function hasSameKeys( a, b ) {\n\treturn fastDeepEqual( Object.keys( a ), Object.keys( b ) );\n}\n\n/**\n * Returns true if, given the currently dispatching action and the previously\n * dispatched action, the two actions are updating the same block attribute, or\n * false otherwise.\n *\n * @param {Object} action Currently dispatching action.\n * @param {Object} lastAction Previously dispatched action.\n *\n * @return {boolean} Whether actions are updating the same block attribute.\n */\nexport function isUpdatingSameBlockAttribute( action, lastAction ) {\n\treturn (\n\t\taction.type === 'UPDATE_BLOCK_ATTRIBUTES' &&\n\t\tlastAction !== undefined &&\n\t\tlastAction.type === 'UPDATE_BLOCK_ATTRIBUTES' &&\n\t\tfastDeepEqual( action.clientIds, lastAction.clientIds ) &&\n\t\thasSameKeys( action.attributes, lastAction.attributes )\n\t);\n}\n\nfunction updateBlockTreeForBlocks( state, blocks ) {\n\tconst treeToUpdate = state.tree;\n\tconst stack = [ ...blocks ];\n\tconst flattenedBlocks = [ ...blocks ];\n\twhile ( stack.length ) {\n\t\tconst block = stack.shift();\n\t\tstack.push( ...block.innerBlocks );\n\t\tflattenedBlocks.push( ...block.innerBlocks );\n\t}\n\t// Create objects before mutating them, that way it's always defined.\n\tfor ( const block of flattenedBlocks ) {\n\t\ttreeToUpdate.set( block.clientId, {} );\n\t}\n\tfor ( const block of flattenedBlocks ) {\n\t\ttreeToUpdate.set(\n\t\t\tblock.clientId,\n\t\t\tObject.assign( treeToUpdate.get( block.clientId ), {\n\t\t\t\t...state.byClientId.get( block.clientId ),\n\t\t\t\tattributes: state.attributes.get( block.clientId ),\n\t\t\t\tinnerBlocks: block.innerBlocks.map( ( subBlock ) =>\n\t\t\t\t\ttreeToUpdate.get( subBlock.clientId )\n\t\t\t\t),\n\t\t\t} )\n\t\t);\n\t}\n}\n\nfunction updateParentInnerBlocksInTree(\n\tstate,\n\tupdatedClientIds,\n\tupdateChildrenOfUpdatedClientIds = false\n) {\n\tconst treeToUpdate = state.tree;\n\tconst uncontrolledParents = new Set( [] );\n\tconst controlledParents = new Set();\n\tfor ( const clientId of updatedClientIds ) {\n\t\tlet current = updateChildrenOfUpdatedClientIds\n\t\t\t? clientId\n\t\t\t: state.parents.get( clientId );\n\t\tdo {\n\t\t\tif ( state.controlledInnerBlocks[ current ] ) {\n\t\t\t\t// Should stop on controlled blocks.\n\t\t\t\t// If we reach a controlled parent, break out of the loop.\n\t\t\t\tcontrolledParents.add( current );\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\t// Else continue traversing up through parents.\n\t\t\t\tuncontrolledParents.add( current );\n\t\t\t\tcurrent = state.parents.get( current );\n\t\t\t}\n\t\t} while ( current !== undefined );\n\t}\n\n\t// To make sure the order of assignments doesn't matter,\n\t// we first create empty objects and mutates the inner blocks later.\n\tfor ( const clientId of uncontrolledParents ) {\n\t\ttreeToUpdate.set( clientId, { ...treeToUpdate.get( clientId ) } );\n\t}\n\tfor ( const clientId of uncontrolledParents ) {\n\t\ttreeToUpdate.get( clientId ).innerBlocks = (\n\t\t\tstate.order.get( clientId ) || []\n\t\t).map( ( subClientId ) => treeToUpdate.get( subClientId ) );\n\t}\n\n\t// Controlled parent blocks, need a dedicated key for their inner blocks\n\t// to be used when doing getBlocks( controlledBlockClientId ).\n\tfor ( const clientId of controlledParents ) {\n\t\ttreeToUpdate.set( 'controlled||' + clientId, {\n\t\t\tinnerBlocks: ( state.order.get( clientId ) || [] ).map(\n\t\t\t\t( subClientId ) => treeToUpdate.get( subClientId )\n\t\t\t),\n\t\t} );\n\t}\n}\n\n/**\n * Higher-order reducer intended to compute full block objects key for each block in the post.\n * This is a denormalization to optimize the performance of the getBlock selectors and avoid\n * recomputing the block objects and avoid heavy memoization.\n *\n * @param {Function} reducer Original reducer function.\n *\n * @return {Function} Enhanced reducer function.\n */\nconst withBlockTree =\n\t( reducer ) =>\n\t( state = {}, action ) => {\n\t\tconst newState = reducer( state, action );\n\n\t\tif ( newState === state ) {\n\t\t\treturn state;\n\t\t}\n\n\t\tnewState.tree = state.tree ? state.tree : new Map();\n\t\tswitch ( action.type ) {\n\t\t\tcase 'RECEIVE_BLOCKS':\n\t\t\tcase 'INSERT_BLOCKS': {\n\t\t\t\tnewState.tree = new Map( newState.tree );\n\t\t\t\tupdateBlockTreeForBlocks( newState, action.blocks );\n\t\t\t\tupdateParentInnerBlocksInTree(\n\t\t\t\t\tnewState,\n\t\t\t\t\taction.rootClientId ? [ action.rootClientId ] : [ '' ],\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'UPDATE_BLOCK':\n\t\t\t\tnewState.tree = new Map( newState.tree );\n\t\t\t\tnewState.tree.set( action.clientId, {\n\t\t\t\t\t...newState.tree.get( action.clientId ),\n\t\t\t\t\t...newState.byClientId.get( action.clientId ),\n\t\t\t\t\tattributes: newState.attributes.get( action.clientId ),\n\t\t\t\t} );\n\t\t\t\tupdateParentInnerBlocksInTree(\n\t\t\t\t\tnewState,\n\t\t\t\t\t[ action.clientId ],\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase 'UPDATE_BLOCK_ATTRIBUTES': {\n\t\t\t\tnewState.tree = new Map( newState.tree );\n\t\t\t\taction.clientIds.forEach( ( clientId ) => {\n\t\t\t\t\tnewState.tree.set( clientId, {\n\t\t\t\t\t\t...newState.tree.get( clientId ),\n\t\t\t\t\t\tattributes: newState.attributes.get( clientId ),\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t\tupdateParentInnerBlocksInTree(\n\t\t\t\t\tnewState,\n\t\t\t\t\taction.clientIds,\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN': {\n\t\t\t\tconst inserterClientIds = getFlattenedClientIds(\n\t\t\t\t\taction.blocks\n\t\t\t\t);\n\t\t\t\tnewState.tree = new Map( newState.tree );\n\t\t\t\taction.replacedClientIds\n\t\t\t\t\t.concat(\n\t\t\t\t\t\t// Controlled inner blocks are only removed\n\t\t\t\t\t\t// if the block doesn't move to another position\n\t\t\t\t\t\t// otherwise their content will be lost.\n\t\t\t\t\t\taction.replacedClientIds\n\t\t\t\t\t\t\t.filter(\n\t\t\t\t\t\t\t\t( clientId ) => ! inserterClientIds[ clientId ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.map( ( clientId ) => 'controlled||' + clientId )\n\t\t\t\t\t)\n\t\t\t\t\t.forEach( ( key ) => {\n\t\t\t\t\t\tnewState.tree.delete( key );\n\t\t\t\t\t} );\n\n\t\t\t\tupdateBlockTreeForBlocks( newState, action.blocks );\n\t\t\t\tupdateParentInnerBlocksInTree(\n\t\t\t\t\tnewState,\n\t\t\t\t\taction.blocks.map( ( b ) => b.clientId ),\n\t\t\t\t\tfalse\n\t\t\t\t);\n\n\t\t\t\t// If there are no replaced blocks, it means we're removing blocks so we need to update their parent.\n\t\t\t\tconst parentsOfRemovedBlocks = [];\n\t\t\t\tfor ( const clientId of action.clientIds ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tstate.parents.get( clientId ) !== undefined &&\n\t\t\t\t\t\t( state.parents.get( clientId ) === '' ||\n\t\t\t\t\t\t\tnewState.byClientId.get(\n\t\t\t\t\t\t\t\tstate.parents.get( clientId )\n\t\t\t\t\t\t\t) )\n\t\t\t\t\t) {\n\t\t\t\t\t\tparentsOfRemovedBlocks.push(\n\t\t\t\t\t\t\tstate.parents.get( clientId )\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tupdateParentInnerBlocksInTree(\n\t\t\t\t\tnewState,\n\t\t\t\t\tparentsOfRemovedBlocks,\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN':\n\t\t\t\tconst parentsOfRemovedBlocks = [];\n\t\t\t\tfor ( const clientId of action.clientIds ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tstate.parents.get( clientId ) !== undefined &&\n\t\t\t\t\t\t( state.parents.get( clientId ) === '' ||\n\t\t\t\t\t\t\tnewState.byClientId.get(\n\t\t\t\t\t\t\t\tstate.parents.get( clientId )\n\t\t\t\t\t\t\t) )\n\t\t\t\t\t) {\n\t\t\t\t\t\tparentsOfRemovedBlocks.push(\n\t\t\t\t\t\t\tstate.parents.get( clientId )\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tnewState.tree = new Map( newState.tree );\n\t\t\t\taction.removedClientIds\n\t\t\t\t\t.concat(\n\t\t\t\t\t\taction.removedClientIds.map(\n\t\t\t\t\t\t\t( clientId ) => 'controlled||' + clientId\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t\t.forEach( ( key ) => {\n\t\t\t\t\t\tnewState.tree.delete( key );\n\t\t\t\t\t} );\n\t\t\t\tupdateParentInnerBlocksInTree(\n\t\t\t\t\tnewState,\n\t\t\t\t\tparentsOfRemovedBlocks,\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase 'MOVE_BLOCKS_TO_POSITION': {\n\t\t\t\tconst updatedBlockUids = [];\n\t\t\t\tif ( action.fromRootClientId ) {\n\t\t\t\t\tupdatedBlockUids.push( action.fromRootClientId );\n\t\t\t\t} else {\n\t\t\t\t\tupdatedBlockUids.push( '' );\n\t\t\t\t}\n\t\t\t\tif ( action.toRootClientId ) {\n\t\t\t\t\tupdatedBlockUids.push( action.toRootClientId );\n\t\t\t\t}\n\t\t\t\tnewState.tree = new Map( newState.tree );\n\t\t\t\tupdateParentInnerBlocksInTree(\n\t\t\t\t\tnewState,\n\t\t\t\t\tupdatedBlockUids,\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'MOVE_BLOCKS_UP':\n\t\t\tcase 'MOVE_BLOCKS_DOWN': {\n\t\t\t\tconst updatedBlockUids = [\n\t\t\t\t\taction.rootClientId ? action.rootClientId : '',\n\t\t\t\t];\n\t\t\t\tnewState.tree = new Map( newState.tree );\n\t\t\t\tupdateParentInnerBlocksInTree(\n\t\t\t\t\tnewState,\n\t\t\t\t\tupdatedBlockUids,\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'SAVE_REUSABLE_BLOCK_SUCCESS': {\n\t\t\t\tconst updatedBlockUids = [];\n\t\t\t\tnewState.attributes.forEach( ( attributes, clientId ) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tnewState.byClientId.get( clientId ).name ===\n\t\t\t\t\t\t\t'core/block' &&\n\t\t\t\t\t\tattributes.ref === action.updatedId\n\t\t\t\t\t) {\n\t\t\t\t\t\tupdatedBlockUids.push( clientId );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\tnewState.tree = new Map( newState.tree );\n\t\t\t\tupdatedBlockUids.forEach( ( clientId ) => {\n\t\t\t\t\tnewState.tree.set( clientId, {\n\t\t\t\t\t\t...newState.byClientId.get( clientId ),\n\t\t\t\t\t\tattributes: newState.attributes.get( clientId ),\n\t\t\t\t\t\tinnerBlocks: newState.tree.get( clientId ).innerBlocks,\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t\tupdateParentInnerBlocksInTree(\n\t\t\t\t\tnewState,\n\t\t\t\t\tupdatedBlockUids,\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn newState;\n\t};\n\n/**\n * Higher-order reducer intended to augment the blocks reducer, assigning an\n * `isPersistentChange` property value corresponding to whether a change in\n * state can be considered as persistent. All changes are considered persistent\n * except when updating the same block attribute as in the previous action.\n *\n * @param {Function} reducer Original reducer function.\n *\n * @return {Function} Enhanced reducer function.\n */\nfunction withPersistentBlockChange( reducer ) {\n\tlet lastAction;\n\tlet markNextChangeAsNotPersistent = false;\n\n\treturn ( state, action ) => {\n\t\tlet nextState = reducer( state, action );\n\n\t\tconst isExplicitPersistentChange =\n\t\t\taction.type === 'MARK_LAST_CHANGE_AS_PERSISTENT' ||\n\t\t\tmarkNextChangeAsNotPersistent;\n\n\t\t// Defer to previous state value (or default) unless changing or\n\t\t// explicitly marking as persistent.\n\t\tif ( state === nextState && ! isExplicitPersistentChange ) {\n\t\t\tmarkNextChangeAsNotPersistent =\n\t\t\t\taction.type === 'MARK_NEXT_CHANGE_AS_NOT_PERSISTENT';\n\n\t\t\tconst nextIsPersistentChange = state?.isPersistentChange ?? true;\n\t\t\tif ( state.isPersistentChange === nextIsPersistentChange ) {\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...nextState,\n\t\t\t\tisPersistentChange: nextIsPersistentChange,\n\t\t\t};\n\t\t}\n\n\t\tnextState = {\n\t\t\t...nextState,\n\t\t\tisPersistentChange: isExplicitPersistentChange\n\t\t\t\t? ! markNextChangeAsNotPersistent\n\t\t\t\t: ! isUpdatingSameBlockAttribute( action, lastAction ),\n\t\t};\n\n\t\t// In comparing against the previous action, consider only those which\n\t\t// would have qualified as one which would have been ignored or not\n\t\t// have resulted in a changed state.\n\t\tlastAction = action;\n\t\tmarkNextChangeAsNotPersistent =\n\t\t\taction.type === 'MARK_NEXT_CHANGE_AS_NOT_PERSISTENT';\n\n\t\treturn nextState;\n\t};\n}\n\n/**\n * Higher-order reducer intended to augment the blocks reducer, assigning an\n * `isIgnoredChange` property value corresponding to whether a change in state\n * can be considered as ignored. A change is considered ignored when the result\n * of an action not incurred by direct user interaction.\n *\n * @param {Function} reducer Original reducer function.\n *\n * @return {Function} Enhanced reducer function.\n */\nfunction withIgnoredBlockChange( reducer ) {\n\t/**\n\t * Set of action types for which a blocks state change should be ignored.\n\t *\n\t * @type {Set}\n\t */\n\tconst IGNORED_ACTION_TYPES = new Set( [ 'RECEIVE_BLOCKS' ] );\n\n\treturn ( state, action ) => {\n\t\tconst nextState = reducer( state, action );\n\n\t\tif ( nextState !== state ) {\n\t\t\tnextState.isIgnoredChange = IGNORED_ACTION_TYPES.has( action.type );\n\t\t}\n\n\t\treturn nextState;\n\t};\n}\n\n/**\n * Higher-order reducer targeting the combined blocks reducer, augmenting\n * block client IDs in remove action to include cascade of inner blocks.\n *\n * @param {Function} reducer Original reducer function.\n *\n * @return {Function} Enhanced reducer function.\n */\nconst withInnerBlocksRemoveCascade = ( reducer ) => ( state, action ) => {\n\t// Gets all children which need to be removed.\n\tconst getAllChildren = ( clientIds ) => {\n\t\tlet result = clientIds;\n\t\tfor ( let i = 0; i < result.length; i++ ) {\n\t\t\tif (\n\t\t\t\t! state.order.get( result[ i ] ) ||\n\t\t\t\t( action.keepControlledInnerBlocks &&\n\t\t\t\t\taction.keepControlledInnerBlocks[ result[ i ] ] )\n\t\t\t) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif ( result === clientIds ) {\n\t\t\t\tresult = [ ...result ];\n\t\t\t}\n\n\t\t\tresult.push( ...state.order.get( result[ i ] ) );\n\t\t}\n\t\treturn result;\n\t};\n\n\tif ( state ) {\n\t\tswitch ( action.type ) {\n\t\t\tcase 'REMOVE_BLOCKS':\n\t\t\t\taction = {\n\t\t\t\t\t...action,\n\t\t\t\t\ttype: 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN',\n\t\t\t\t\tremovedClientIds: getAllChildren( action.clientIds ),\n\t\t\t\t};\n\t\t\t\tbreak;\n\t\t\tcase 'REPLACE_BLOCKS':\n\t\t\t\taction = {\n\t\t\t\t\t...action,\n\t\t\t\t\ttype: 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN',\n\t\t\t\t\treplacedClientIds: getAllChildren( action.clientIds ),\n\t\t\t\t};\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn reducer( state, action );\n};\n\n/**\n * Higher-order reducer which targets the combined blocks reducer and handles\n * the `RESET_BLOCKS` action. When dispatched, this action will replace all\n * blocks that exist in the post, leaving blocks that exist only in state (e.g.\n * reusable blocks and blocks controlled by inner blocks controllers) alone.\n *\n * @param {Function} reducer Original reducer function.\n *\n * @return {Function} Enhanced reducer function.\n */\nconst withBlockReset = ( reducer ) => ( state, action ) => {\n\tif ( action.type === 'RESET_BLOCKS' ) {\n\t\tconst newState = {\n\t\t\t...state,\n\t\t\tbyClientId: new Map(\n\t\t\t\tgetFlattenedBlocksWithoutAttributes( action.blocks )\n\t\t\t),\n\t\t\tattributes: new Map( getFlattenedBlockAttributes( action.blocks ) ),\n\t\t\torder: mapBlockOrder( action.blocks ),\n\t\t\tparents: new Map( mapBlockParents( action.blocks ) ),\n\t\t\tcontrolledInnerBlocks: {},\n\t\t};\n\n\t\tnewState.tree = new Map( state?.tree );\n\t\tupdateBlockTreeForBlocks( newState, action.blocks );\n\t\tnewState.tree.set( '', {\n\t\t\tinnerBlocks: action.blocks.map( ( subBlock ) =>\n\t\t\t\tnewState.tree.get( subBlock.clientId )\n\t\t\t),\n\t\t} );\n\n\t\treturn newState;\n\t}\n\n\treturn reducer( state, action );\n};\n\n/**\n * Higher-order reducer which targets the combined blocks reducer and handles\n * the `REPLACE_INNER_BLOCKS` action. When dispatched, this action the state\n * should become equivalent to the execution of a `REMOVE_BLOCKS` action\n * containing all the child's of the root block followed by the execution of\n * `INSERT_BLOCKS` with the new blocks.\n *\n * @param {Function} reducer Original reducer function.\n *\n * @return {Function} Enhanced reducer function.\n */\nconst withReplaceInnerBlocks = ( reducer ) => ( state, action ) => {\n\tif ( action.type !== 'REPLACE_INNER_BLOCKS' ) {\n\t\treturn reducer( state, action );\n\t}\n\n\t// Finds every nested inner block controller. We must check the action blocks\n\t// and not just the block parent state because some inner block controllers\n\t// should be deleted if specified, whereas others should not be deleted. If\n\t// a controlled should not be deleted, then we need to avoid deleting its\n\t// inner blocks from the block state because its inner blocks will not be\n\t// attached to the block in the action.\n\tconst nestedControllers = {};\n\tif ( Object.keys( state.controlledInnerBlocks ).length ) {\n\t\tconst stack = [ ...action.blocks ];\n\t\twhile ( stack.length ) {\n\t\t\tconst { innerBlocks, ...block } = stack.shift();\n\t\t\tstack.push( ...innerBlocks );\n\t\t\tif ( !! state.controlledInnerBlocks[ block.clientId ] ) {\n\t\t\t\tnestedControllers[ block.clientId ] = true;\n\t\t\t}\n\t\t}\n\t}\n\n\t// The `keepControlledInnerBlocks` prop will keep the inner blocks of the\n\t// marked block in the block state so that they can be reattached to the\n\t// marked block when we re-insert everything a few lines below.\n\tlet stateAfterBlocksRemoval = state;\n\tif ( state.order.get( action.rootClientId ) ) {\n\t\tstateAfterBlocksRemoval = reducer( stateAfterBlocksRemoval, {\n\t\t\ttype: 'REMOVE_BLOCKS',\n\t\t\tkeepControlledInnerBlocks: nestedControllers,\n\t\t\tclientIds: state.order.get( action.rootClientId ),\n\t\t} );\n\t}\n\tlet stateAfterInsert = stateAfterBlocksRemoval;\n\tif ( action.blocks.length ) {\n\t\tstateAfterInsert = reducer( stateAfterInsert, {\n\t\t\t...action,\n\t\t\ttype: 'INSERT_BLOCKS',\n\t\t\tindex: 0,\n\t\t} );\n\n\t\t// We need to re-attach the controlled inner blocks to the blocks tree and\n\t\t// preserve their block order. Otherwise, an inner block controller's blocks\n\t\t// will be deleted entirely from its entity.\n\t\tconst stateAfterInsertOrder = new Map( stateAfterInsert.order );\n\t\tObject.keys( nestedControllers ).forEach( ( key ) => {\n\t\t\tif ( state.order.get( key ) ) {\n\t\t\t\tstateAfterInsertOrder.set( key, state.order.get( key ) );\n\t\t\t}\n\t\t} );\n\t\tstateAfterInsert.order = stateAfterInsertOrder;\n\t\tstateAfterInsert.tree = new Map( stateAfterInsert.tree );\n\t\tObject.keys( nestedControllers ).forEach( ( _key ) => {\n\t\t\tconst key = `controlled||${ _key }`;\n\t\t\tif ( state.tree.has( key ) ) {\n\t\t\t\tstateAfterInsert.tree.set( key, state.tree.get( key ) );\n\t\t\t}\n\t\t} );\n\t}\n\treturn stateAfterInsert;\n};\n\n/**\n * Higher-order reducer which targets the combined blocks reducer and handles\n * the `SAVE_REUSABLE_BLOCK_SUCCESS` action. This action can't be handled by\n * regular reducers and needs a higher-order reducer since it needs access to\n * both `byClientId` and `attributes` simultaneously.\n *\n * @param {Function} reducer Original reducer function.\n *\n * @return {Function} Enhanced reducer function.\n */\nconst withSaveReusableBlock = ( reducer ) => ( state, action ) => {\n\tif ( state && action.type === 'SAVE_REUSABLE_BLOCK_SUCCESS' ) {\n\t\tconst { id, updatedId } = action;\n\n\t\t// If a temporary reusable block is saved, we swap the temporary id with the final one.\n\t\tif ( id === updatedId ) {\n\t\t\treturn state;\n\t\t}\n\n\t\tstate = { ...state };\n\t\tstate.attributes = new Map( state.attributes );\n\t\tstate.attributes.forEach( ( attributes, clientId ) => {\n\t\t\tconst { name } = state.byClientId.get( clientId );\n\t\t\tif ( name === 'core/block' && attributes.ref === id ) {\n\t\t\t\tstate.attributes.set( clientId, {\n\t\t\t\t\t...attributes,\n\t\t\t\t\tref: updatedId,\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t}\n\n\treturn reducer( state, action );\n};\n/**\n * Higher-order reducer which removes blocks from state when switching parent block controlled state.\n *\n * @param {Function} reducer Original reducer function.\n *\n * @return {Function} Enhanced reducer function.\n */\nconst withResetControlledBlocks = ( reducer ) => ( state, action ) => {\n\tif ( action.type === 'SET_HAS_CONTROLLED_INNER_BLOCKS' ) {\n\t\t// when switching a block from controlled to uncontrolled or inverse,\n\t\t// we need to remove its content first.\n\t\tconst tempState = reducer( state, {\n\t\t\ttype: 'REPLACE_INNER_BLOCKS',\n\t\t\trootClientId: action.clientId,\n\t\t\tblocks: [],\n\t\t} );\n\t\treturn reducer( tempState, action );\n\t}\n\n\treturn reducer( state, action );\n};\n\n/**\n * Reducer returning the blocks state.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport const blocks = pipe(\n\tcombineReducers,\n\twithSaveReusableBlock, // Needs to be before withBlockCache.\n\twithBlockTree, // Needs to be before withInnerBlocksRemoveCascade.\n\twithInnerBlocksRemoveCascade,\n\twithReplaceInnerBlocks, // Needs to be after withInnerBlocksRemoveCascade.\n\twithBlockReset,\n\twithPersistentBlockChange,\n\twithIgnoredBlockChange,\n\twithResetControlledBlocks\n)( {\n\t// The state is using a Map instead of a plain object for performance reasons.\n\t// You can run the \"./test/performance.js\" unit test to check the impact\n\t// code changes can have on this reducer.\n\tbyClientId( state = new Map(), action ) {\n\t\tswitch ( action.type ) {\n\t\t\tcase 'RECEIVE_BLOCKS':\n\t\t\tcase 'INSERT_BLOCKS': {\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\tgetFlattenedBlocksWithoutAttributes( action.blocks ).forEach(\n\t\t\t\t\t( [ key, value ] ) => {\n\t\t\t\t\t\tnewState.set( key, value );\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\treturn newState;\n\t\t\t}\n\t\t\tcase 'UPDATE_BLOCK': {\n\t\t\t\t// Ignore updates if block isn't known.\n\t\t\t\tif ( ! state.has( action.clientId ) ) {\n\t\t\t\t\treturn state;\n\t\t\t\t}\n\n\t\t\t\t// Do nothing if only attributes change.\n\t\t\t\tconst { attributes, ...changes } = action.updates;\n\t\t\t\tif ( Object.values( changes ).length === 0 ) {\n\t\t\t\t\treturn state;\n\t\t\t\t}\n\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\tnewState.set( action.clientId, {\n\t\t\t\t\t...state.get( action.clientId ),\n\t\t\t\t\t...changes,\n\t\t\t\t} );\n\t\t\t\treturn newState;\n\t\t\t}\n\n\t\t\tcase 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN': {\n\t\t\t\tif ( ! action.blocks ) {\n\t\t\t\t\treturn state;\n\t\t\t\t}\n\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\taction.replacedClientIds.forEach( ( clientId ) => {\n\t\t\t\t\tnewState.delete( clientId );\n\t\t\t\t} );\n\n\t\t\t\tgetFlattenedBlocksWithoutAttributes( action.blocks ).forEach(\n\t\t\t\t\t( [ key, value ] ) => {\n\t\t\t\t\t\tnewState.set( key, value );\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\treturn newState;\n\t\t\t}\n\n\t\t\tcase 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN': {\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\taction.removedClientIds.forEach( ( clientId ) => {\n\t\t\t\t\tnewState.delete( clientId );\n\t\t\t\t} );\n\t\t\t\treturn newState;\n\t\t\t}\n\t\t}\n\n\t\treturn state;\n\t},\n\n\t// The state is using a Map instead of a plain object for performance reasons.\n\t// You can run the \"./test/performance.js\" unit test to check the impact\n\t// code changes can have on this reducer.\n\tattributes( state = new Map(), action ) {\n\t\tswitch ( action.type ) {\n\t\t\tcase 'RECEIVE_BLOCKS':\n\t\t\tcase 'INSERT_BLOCKS': {\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\tgetFlattenedBlockAttributes( action.blocks ).forEach(\n\t\t\t\t\t( [ key, value ] ) => {\n\t\t\t\t\t\tnewState.set( key, value );\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\treturn newState;\n\t\t\t}\n\n\t\t\tcase 'UPDATE_BLOCK': {\n\t\t\t\t// Ignore updates if block isn't known or there are no attribute changes.\n\t\t\t\tif (\n\t\t\t\t\t! state.get( action.clientId ) ||\n\t\t\t\t\t! action.updates.attributes\n\t\t\t\t) {\n\t\t\t\t\treturn state;\n\t\t\t\t}\n\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\tnewState.set( action.clientId, {\n\t\t\t\t\t...state.get( action.clientId ),\n\t\t\t\t\t...action.updates.attributes,\n\t\t\t\t} );\n\t\t\t\treturn newState;\n\t\t\t}\n\n\t\t\tcase 'UPDATE_BLOCK_ATTRIBUTES': {\n\t\t\t\t// Avoid a state change if none of the block IDs are known.\n\t\t\t\tif ( action.clientIds.every( ( id ) => ! state.get( id ) ) ) {\n\t\t\t\t\treturn state;\n\t\t\t\t}\n\n\t\t\t\tlet hasChange = false;\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\tfor ( const clientId of action.clientIds ) {\n\t\t\t\t\tconst updatedAttributeEntries = Object.entries(\n\t\t\t\t\t\taction.uniqueByBlock\n\t\t\t\t\t\t\t? action.attributes[ clientId ]\n\t\t\t\t\t\t\t: action.attributes ?? {}\n\t\t\t\t\t);\n\t\t\t\t\tif ( updatedAttributeEntries.length === 0 ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tlet hasUpdatedAttributes = false;\n\t\t\t\t\tconst existingAttributes = state.get( clientId );\n\t\t\t\t\tconst newAttributes = {};\n\t\t\t\t\tupdatedAttributeEntries.forEach( ( [ key, value ] ) => {\n\t\t\t\t\t\tif ( existingAttributes[ key ] !== value ) {\n\t\t\t\t\t\t\thasUpdatedAttributes = true;\n\t\t\t\t\t\t\tnewAttributes[ key ] = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t\thasChange = hasChange || hasUpdatedAttributes;\n\t\t\t\t\tif ( hasUpdatedAttributes ) {\n\t\t\t\t\t\tnewState.set( clientId, {\n\t\t\t\t\t\t\t...existingAttributes,\n\t\t\t\t\t\t\t...newAttributes,\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn hasChange ? newState : state;\n\t\t\t}\n\n\t\t\tcase 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN': {\n\t\t\t\tif ( ! action.blocks ) {\n\t\t\t\t\treturn state;\n\t\t\t\t}\n\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\taction.replacedClientIds.forEach( ( clientId ) => {\n\t\t\t\t\tnewState.delete( clientId );\n\t\t\t\t} );\n\t\t\t\tgetFlattenedBlockAttributes( action.blocks ).forEach(\n\t\t\t\t\t( [ key, value ] ) => {\n\t\t\t\t\t\tnewState.set( key, value );\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\treturn newState;\n\t\t\t}\n\n\t\t\tcase 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN': {\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\taction.removedClientIds.forEach( ( clientId ) => {\n\t\t\t\t\tnewState.delete( clientId );\n\t\t\t\t} );\n\t\t\t\treturn newState;\n\t\t\t}\n\t\t}\n\n\t\treturn state;\n\t},\n\n\t// The state is using a Map instead of a plain object for performance reasons.\n\t// You can run the \"./test/performance.js\" unit test to check the impact\n\t// code changes can have on this reducer.\n\torder( state = new Map(), action ) {\n\t\tswitch ( action.type ) {\n\t\t\tcase 'RECEIVE_BLOCKS': {\n\t\t\t\tconst blockOrder = mapBlockOrder( action.blocks );\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\tblockOrder.forEach( ( order, clientId ) => {\n\t\t\t\t\tif ( clientId !== '' ) {\n\t\t\t\t\t\tnewState.set( clientId, order );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\tnewState.set(\n\t\t\t\t\t'',\n\t\t\t\t\t( state.get( '' ) ?? [] ).concat( blockOrder[ '' ] )\n\t\t\t\t);\n\t\t\t\treturn newState;\n\t\t\t}\n\t\t\tcase 'INSERT_BLOCKS': {\n\t\t\t\tconst { rootClientId = '' } = action;\n\t\t\t\tconst subState = state.get( rootClientId ) || [];\n\t\t\t\tconst mappedBlocks = mapBlockOrder(\n\t\t\t\t\taction.blocks,\n\t\t\t\t\trootClientId\n\t\t\t\t);\n\t\t\t\tconst { index = subState.length } = action;\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\tmappedBlocks.forEach( ( order, clientId ) => {\n\t\t\t\t\tnewState.set( clientId, order );\n\t\t\t\t} );\n\t\t\t\tnewState.set(\n\t\t\t\t\trootClientId,\n\t\t\t\t\tinsertAt(\n\t\t\t\t\t\tsubState,\n\t\t\t\t\t\tmappedBlocks.get( rootClientId ),\n\t\t\t\t\t\tindex\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\treturn newState;\n\t\t\t}\n\n\t\t\tcase 'MOVE_BLOCKS_TO_POSITION': {\n\t\t\t\tconst {\n\t\t\t\t\tfromRootClientId = '',\n\t\t\t\t\ttoRootClientId = '',\n\t\t\t\t\tclientIds,\n\t\t\t\t} = action;\n\t\t\t\tconst { index = state.get( toRootClientId ).length } = action;\n\n\t\t\t\t// Moving inside the same parent block.\n\t\t\t\tif ( fromRootClientId === toRootClientId ) {\n\t\t\t\t\tconst subState = state.get( toRootClientId );\n\t\t\t\t\tconst fromIndex = subState.indexOf( clientIds[ 0 ] );\n\t\t\t\t\tconst newState = new Map( state );\n\t\t\t\t\tnewState.set(\n\t\t\t\t\t\ttoRootClientId,\n\t\t\t\t\t\tmoveTo(\n\t\t\t\t\t\t\tstate.get( toRootClientId ),\n\t\t\t\t\t\t\tfromIndex,\n\t\t\t\t\t\t\tindex,\n\t\t\t\t\t\t\tclientIds.length\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t\treturn newState;\n\t\t\t\t}\n\n\t\t\t\t// Moving from a parent block to another.\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\tnewState.set(\n\t\t\t\t\tfromRootClientId,\n\t\t\t\t\tstate\n\t\t\t\t\t\t.get( fromRootClientId )\n\t\t\t\t\t\t?.filter( ( id ) => ! clientIds.includes( id ) ) ?? []\n\t\t\t\t);\n\t\t\t\tnewState.set(\n\t\t\t\t\ttoRootClientId,\n\t\t\t\t\tinsertAt( state.get( toRootClientId ), clientIds, index )\n\t\t\t\t);\n\t\t\t\treturn newState;\n\t\t\t}\n\n\t\t\tcase 'MOVE_BLOCKS_UP': {\n\t\t\t\tconst { clientIds, rootClientId = '' } = action;\n\t\t\t\tconst firstClientId = clientIds[ 0 ];\n\t\t\t\tconst subState = state.get( rootClientId );\n\n\t\t\t\tif ( ! subState.length || firstClientId === subState[ 0 ] ) {\n\t\t\t\t\treturn state;\n\t\t\t\t}\n\n\t\t\t\tconst firstIndex = subState.indexOf( firstClientId );\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\tnewState.set(\n\t\t\t\t\trootClientId,\n\t\t\t\t\tmoveTo(\n\t\t\t\t\t\tsubState,\n\t\t\t\t\t\tfirstIndex,\n\t\t\t\t\t\tfirstIndex - 1,\n\t\t\t\t\t\tclientIds.length\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\treturn newState;\n\t\t\t}\n\n\t\t\tcase 'MOVE_BLOCKS_DOWN': {\n\t\t\t\tconst { clientIds, rootClientId = '' } = action;\n\t\t\t\tconst firstClientId = clientIds[ 0 ];\n\t\t\t\tconst lastClientId = clientIds[ clientIds.length - 1 ];\n\t\t\t\tconst subState = state.get( rootClientId );\n\n\t\t\t\tif (\n\t\t\t\t\t! subState.length ||\n\t\t\t\t\tlastClientId === subState[ subState.length - 1 ]\n\t\t\t\t) {\n\t\t\t\t\treturn state;\n\t\t\t\t}\n\n\t\t\t\tconst firstIndex = subState.indexOf( firstClientId );\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\tnewState.set(\n\t\t\t\t\trootClientId,\n\t\t\t\t\tmoveTo(\n\t\t\t\t\t\tsubState,\n\t\t\t\t\t\tfirstIndex,\n\t\t\t\t\t\tfirstIndex + 1,\n\t\t\t\t\t\tclientIds.length\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\treturn newState;\n\t\t\t}\n\n\t\t\tcase 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN': {\n\t\t\t\tconst { clientIds } = action;\n\t\t\t\tif ( ! action.blocks ) {\n\t\t\t\t\treturn state;\n\t\t\t\t}\n\n\t\t\t\tconst mappedBlocks = mapBlockOrder( action.blocks );\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\taction.replacedClientIds.forEach( ( clientId ) => {\n\t\t\t\t\tnewState.delete( clientId );\n\t\t\t\t} );\n\t\t\t\tmappedBlocks.forEach( ( order, clientId ) => {\n\t\t\t\t\tif ( clientId !== '' ) {\n\t\t\t\t\t\tnewState.set( clientId, order );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\tnewState.forEach( ( order, clientId ) => {\n\t\t\t\t\tconst newSubOrder = Object.values( order ).reduce(\n\t\t\t\t\t\t( result, subClientId ) => {\n\t\t\t\t\t\t\tif ( subClientId === clientIds[ 0 ] ) {\n\t\t\t\t\t\t\t\treturn [ ...result, ...mappedBlocks.get( '' ) ];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( clientIds.indexOf( subClientId ) === -1 ) {\n\t\t\t\t\t\t\t\tresult.push( subClientId );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn result;\n\t\t\t\t\t\t},\n\t\t\t\t\t\t[]\n\t\t\t\t\t);\n\t\t\t\t\tnewState.set( clientId, newSubOrder );\n\t\t\t\t} );\n\t\t\t\treturn newState;\n\t\t\t}\n\n\t\t\tcase 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN': {\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\t// Remove inner block ordering for removed blocks.\n\t\t\t\taction.removedClientIds.forEach( ( clientId ) => {\n\t\t\t\t\tnewState.delete( clientId );\n\t\t\t\t} );\n\t\t\t\tnewState.forEach( ( order, clientId ) => {\n\t\t\t\t\tconst newSubOrder =\n\t\t\t\t\t\torder?.filter(\n\t\t\t\t\t\t\t( id ) => ! action.removedClientIds.includes( id )\n\t\t\t\t\t\t) ?? [];\n\t\t\t\t\tif ( newSubOrder.length !== order.length ) {\n\t\t\t\t\t\tnewState.set( clientId, newSubOrder );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn newState;\n\t\t\t}\n\t\t}\n\n\t\treturn state;\n\t},\n\n\t// While technically redundant data as the inverse of `order`, it serves as\n\t// an optimization for the selectors which derive the ancestry of a block.\n\tparents( state = new Map(), action ) {\n\t\tswitch ( action.type ) {\n\t\t\tcase 'RECEIVE_BLOCKS': {\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\tmapBlockParents( action.blocks ).forEach(\n\t\t\t\t\t( [ key, value ] ) => {\n\t\t\t\t\t\tnewState.set( key, value );\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\treturn newState;\n\t\t\t}\n\t\t\tcase 'INSERT_BLOCKS': {\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\tmapBlockParents(\n\t\t\t\t\taction.blocks,\n\t\t\t\t\taction.rootClientId || ''\n\t\t\t\t).forEach( ( [ key, value ] ) => {\n\t\t\t\t\tnewState.set( key, value );\n\t\t\t\t} );\n\t\t\t\treturn newState;\n\t\t\t}\n\t\t\tcase 'MOVE_BLOCKS_TO_POSITION': {\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\taction.clientIds.forEach( ( id ) => {\n\t\t\t\t\tnewState.set( id, action.toRootClientId || '' );\n\t\t\t\t} );\n\t\t\t\treturn newState;\n\t\t\t}\n\n\t\t\tcase 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN': {\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\taction.replacedClientIds.forEach( ( clientId ) => {\n\t\t\t\t\tnewState.delete( clientId );\n\t\t\t\t} );\n\t\t\t\tmapBlockParents(\n\t\t\t\t\taction.blocks,\n\t\t\t\t\tstate.get( action.clientIds[ 0 ] )\n\t\t\t\t).forEach( ( [ key, value ] ) => {\n\t\t\t\t\tnewState.set( key, value );\n\t\t\t\t} );\n\t\t\t\treturn newState;\n\t\t\t}\n\t\t\tcase 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN': {\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\taction.removedClientIds.forEach( ( clientId ) => {\n\t\t\t\t\tnewState.delete( clientId );\n\t\t\t\t} );\n\t\t\t\treturn newState;\n\t\t\t}\n\t\t}\n\n\t\treturn state;\n\t},\n\n\tcontrolledInnerBlocks(\n\t\tstate = {},\n\t\t{ type, clientId, hasControlledInnerBlocks }\n\t) {\n\t\tif ( type === 'SET_HAS_CONTROLLED_INNER_BLOCKS' ) {\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ clientId ]: hasControlledInnerBlocks,\n\t\t\t};\n\t\t}\n\t\treturn state;\n\t},\n} );\n\n/**\n * Reducer returning visibility status of block interface.\n *\n * @param {boolean} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {boolean} Updated state.\n */\nexport function isBlockInterfaceHidden( state = false, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'HIDE_BLOCK_INTERFACE':\n\t\t\treturn true;\n\n\t\tcase 'SHOW_BLOCK_INTERFACE':\n\t\t\treturn false;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning typing state.\n *\n * @param {boolean} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {boolean} Updated state.\n */\nexport function isTyping( state = false, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'START_TYPING':\n\t\t\treturn true;\n\n\t\tcase 'STOP_TYPING':\n\t\t\treturn false;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning dragged block client id.\n *\n * @param {string[]} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {string[]} Updated state.\n */\nexport function draggedBlocks( state = [], action ) {\n\tswitch ( action.type ) {\n\t\tcase 'START_DRAGGING_BLOCKS':\n\t\t\treturn action.clientIds;\n\n\t\tcase 'STOP_DRAGGING_BLOCKS':\n\t\t\treturn [];\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer tracking the visible blocks.\n *\n * @param {Record<string,boolean>} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Record<string,boolean>} Block visibility.\n */\nexport function blockVisibility( state = {}, action ) {\n\tif ( action.type === 'SET_BLOCK_VISIBILITY' ) {\n\t\treturn {\n\t\t\t...state,\n\t\t\t...action.updates,\n\t\t};\n\t}\n\n\treturn state;\n}\n\n/**\n * Internal helper reducer for selectionStart and selectionEnd. Can hold a block\n * selection, represented by an object with property clientId.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nfunction selectionHelper( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'CLEAR_SELECTED_BLOCK': {\n\t\t\tif ( state.clientId ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\treturn state;\n\t\t}\n\t\tcase 'SELECT_BLOCK':\n\t\t\tif ( action.clientId === state.clientId ) {\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\treturn { clientId: action.clientId };\n\t\tcase 'REPLACE_INNER_BLOCKS':\n\t\tcase 'INSERT_BLOCKS': {\n\t\t\tif ( ! action.updateSelection || ! action.blocks.length ) {\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\treturn { clientId: action.blocks[ 0 ].clientId };\n\t\t}\n\t\tcase 'REMOVE_BLOCKS':\n\t\t\tif (\n\t\t\t\t! action.clientIds ||\n\t\t\t\t! action.clientIds.length ||\n\t\t\t\taction.clientIds.indexOf( state.clientId ) === -1\n\t\t\t) {\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\treturn {};\n\t\tcase 'REPLACE_BLOCKS': {\n\t\t\tif ( action.clientIds.indexOf( state.clientId ) === -1 ) {\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\tconst blockToSelect =\n\t\t\t\taction.blocks[ action.indexToSelect ] ||\n\t\t\t\taction.blocks[ action.blocks.length - 1 ];\n\n\t\t\tif ( ! blockToSelect ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tif ( blockToSelect.clientId === state.clientId ) {\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\treturn { clientId: blockToSelect.clientId };\n\t\t}\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning the selection state.\n *\n * @param {boolean} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {boolean} Updated state.\n */\nexport function selection( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SELECTION_CHANGE':\n\t\t\tif ( action.clientId ) {\n\t\t\t\treturn {\n\t\t\t\t\tselectionStart: {\n\t\t\t\t\t\tclientId: action.clientId,\n\t\t\t\t\t\tattributeKey: action.attributeKey,\n\t\t\t\t\t\toffset: action.startOffset,\n\t\t\t\t\t},\n\t\t\t\t\tselectionEnd: {\n\t\t\t\t\t\tclientId: action.clientId,\n\t\t\t\t\t\tattributeKey: action.attributeKey,\n\t\t\t\t\t\toffset: action.endOffset,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tselectionStart: action.start || state.selectionStart,\n\t\t\t\tselectionEnd: action.end || state.selectionEnd,\n\t\t\t};\n\t\tcase 'RESET_SELECTION':\n\t\t\tconst { selectionStart, selectionEnd } = action;\n\t\t\treturn {\n\t\t\t\tselectionStart,\n\t\t\t\tselectionEnd,\n\t\t\t};\n\t\tcase 'MULTI_SELECT':\n\t\t\tconst { start, end } = action;\n\n\t\t\tif (\n\t\t\t\tstart === state.selectionStart?.clientId &&\n\t\t\t\tend === state.selectionEnd?.clientId\n\t\t\t) {\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tselectionStart: { clientId: start },\n\t\t\t\tselectionEnd: { clientId: end },\n\t\t\t};\n\t\tcase 'RESET_BLOCKS':\n\t\t\tconst startClientId = state?.selectionStart?.clientId;\n\t\t\tconst endClientId = state?.selectionEnd?.clientId;\n\n\t\t\t// Do nothing if there's no selected block.\n\t\t\tif ( ! startClientId && ! endClientId ) {\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\t// If the start of the selection won't exist after reset, remove selection.\n\t\t\tif (\n\t\t\t\t! action.blocks.some(\n\t\t\t\t\t( block ) => block.clientId === startClientId\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn {\n\t\t\t\t\tselectionStart: {},\n\t\t\t\t\tselectionEnd: {},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// If the end of the selection won't exist after reset, collapse selection.\n\t\t\tif (\n\t\t\t\t! action.blocks.some(\n\t\t\t\t\t( block ) => block.clientId === endClientId\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn {\n\t\t\t\t\t...state,\n\t\t\t\t\tselectionEnd: state.selectionStart,\n\t\t\t\t};\n\t\t\t}\n\t}\n\n\tconst selectionStart = selectionHelper( state.selectionStart, action );\n\tconst selectionEnd = selectionHelper( state.selectionEnd, action );\n\n\tif (\n\t\tselectionStart === state.selectionStart &&\n\t\tselectionEnd === state.selectionEnd\n\t) {\n\t\treturn state;\n\t}\n\n\treturn {\n\t\tselectionStart,\n\t\tselectionEnd,\n\t};\n}\n\n/**\n * Reducer returning whether the user is multi-selecting.\n *\n * @param {boolean} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {boolean} Updated state.\n */\nexport function isMultiSelecting( state = false, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'START_MULTI_SELECT':\n\t\t\treturn true;\n\n\t\tcase 'STOP_MULTI_SELECT':\n\t\t\treturn false;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning whether selection is enabled.\n *\n * @param {boolean} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {boolean} Updated state.\n */\nexport function isSelectionEnabled( state = true, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'TOGGLE_SELECTION':\n\t\t\treturn action.isSelectionEnabled;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning the data needed to display a prompt when certain blocks\n * are removed, or `false` if no such prompt is requested.\n *\n * @param {boolean} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object|false} Data for removal prompt display, if any.\n */\nfunction removalPromptData( state = false, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'DISPLAY_BLOCK_REMOVAL_PROMPT':\n\t\t\tconst { clientIds, selectPrevious, blockNamesForPrompt } = action;\n\t\t\treturn {\n\t\t\t\tclientIds,\n\t\t\t\tselectPrevious,\n\t\t\t\tblockNamesForPrompt,\n\t\t\t};\n\t\tcase 'CLEAR_BLOCK_REMOVAL_PROMPT':\n\t\t\treturn false;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning any rules that a block editor may provide in order to\n * prevent a user from accidentally removing certain blocks. These rules are\n * then used to display a confirmation prompt to the user. For instance, in the\n * Site Editor, the Query Loop block is important enough to warrant such\n * confirmation.\n *\n * The data is a record whose keys are block types (e.g. 'core/query') and\n * whose values are the explanation to be shown to users (e.g. 'Query Loop\n * displays a list of posts or pages.').\n *\n * @param {boolean} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Record<string,string>} Updated state.\n */\nfunction blockRemovalRules( state = false, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SET_BLOCK_REMOVAL_RULES':\n\t\t\treturn action.rules;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning the initial block selection.\n *\n * Currently this in only used to restore the selection after block deletion and\n * pasting new content.This reducer should eventually be removed in favour of setting\n * selection directly.\n *\n * @param {boolean} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {number|null} Initial position: 0, -1 or null.\n */\nexport function initialPosition( state = null, action ) {\n\tif (\n\t\taction.type === 'REPLACE_BLOCKS' &&\n\t\taction.initialPosition !== undefined\n\t) {\n\t\treturn action.initialPosition;\n\t} else if (\n\t\t[\n\t\t\t'MULTI_SELECT',\n\t\t\t'SELECT_BLOCK',\n\t\t\t'RESET_SELECTION',\n\t\t\t'INSERT_BLOCKS',\n\t\t\t'REPLACE_INNER_BLOCKS',\n\t\t].includes( action.type )\n\t) {\n\t\treturn action.initialPosition;\n\t}\n\n\treturn state;\n}\n\nexport function blocksMode( state = {}, action ) {\n\tif ( action.type === 'TOGGLE_BLOCK_MODE' ) {\n\t\tconst { clientId } = action;\n\t\treturn {\n\t\t\t...state,\n\t\t\t[ clientId ]:\n\t\t\t\tstate[ clientId ] && state[ clientId ] === 'html'\n\t\t\t\t\t? 'visual'\n\t\t\t\t\t: 'html',\n\t\t};\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning the block insertion point visibility, either null if there\n * is not an explicit insertion point assigned, or an object of its `index` and\n * `rootClientId`.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function insertionPoint( state = null, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SHOW_INSERTION_POINT': {\n\t\t\tconst { rootClientId, index, __unstableWithInserter, operation } =\n\t\t\t\taction;\n\t\t\tconst nextState = {\n\t\t\t\trootClientId,\n\t\t\t\tindex,\n\t\t\t\t__unstableWithInserter,\n\t\t\t\toperation,\n\t\t\t};\n\n\t\t\t// Bail out updates if the states are the same.\n\t\t\treturn fastDeepEqual( state, nextState ) ? state : nextState;\n\t\t}\n\n\t\tcase 'HIDE_INSERTION_POINT':\n\t\t\treturn null;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning whether the post blocks match the defined template or not.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {boolean} Updated state.\n */\nexport function template( state = { isValid: true }, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SET_TEMPLATE_VALIDITY':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tisValid: action.isValid,\n\t\t\t};\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning the editor setting.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function settings( state = SETTINGS_DEFAULTS, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'UPDATE_SETTINGS':\n\t\t\tif ( action.reset ) {\n\t\t\t\treturn {\n\t\t\t\t\t...SETTINGS_DEFAULTS,\n\t\t\t\t\t...action.settings,\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t...action.settings,\n\t\t\t};\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning the user preferences.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {string} Updated state.\n */\nexport function preferences( state = PREFERENCES_DEFAULTS, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'INSERT_BLOCKS':\n\t\tcase 'REPLACE_BLOCKS':\n\t\t\treturn action.blocks.reduce( ( prevState, block ) => {\n\t\t\t\tconst { attributes, name: blockName } = block;\n\t\t\t\tlet id = blockName;\n\t\t\t\t// If a block variation match is found change the name to be the same with the\n\t\t\t\t// one that is used for block variations in the Inserter (`getItemFromVariation`).\n\t\t\t\tconst match = select( blocksStore ).getActiveBlockVariation(\n\t\t\t\t\tblockName,\n\t\t\t\t\tattributes\n\t\t\t\t);\n\t\t\t\tif ( match?.name ) {\n\t\t\t\t\tid += '/' + match.name;\n\t\t\t\t}\n\t\t\t\tif ( blockName === 'core/block' ) {\n\t\t\t\t\tid += '/' + attributes.ref;\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\t...prevState,\n\t\t\t\t\tinsertUsage: {\n\t\t\t\t\t\t...prevState.insertUsage,\n\t\t\t\t\t\t[ id ]: {\n\t\t\t\t\t\t\ttime: action.time,\n\t\t\t\t\t\t\tcount: prevState.insertUsage[ id ]\n\t\t\t\t\t\t\t\t? prevState.insertUsage[ id ].count + 1\n\t\t\t\t\t\t\t\t: 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}, state );\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning an object where each key is a block client ID, its value\n * representing the settings for its nested blocks.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport const blockListSettings = ( state = {}, action ) => {\n\tswitch ( action.type ) {\n\t\t// Even if the replaced blocks have the same client ID, our logic\n\t\t// should correct the state.\n\t\tcase 'REPLACE_BLOCKS':\n\t\tcase 'REMOVE_BLOCKS': {\n\t\t\treturn Object.fromEntries(\n\t\t\t\tObject.entries( state ).filter(\n\t\t\t\t\t( [ id ] ) => ! action.clientIds.includes( id )\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\tcase 'UPDATE_BLOCK_LIST_SETTINGS': {\n\t\t\tconst { clientId } = action;\n\t\t\tif ( ! action.settings ) {\n\t\t\t\tif ( state.hasOwnProperty( clientId ) ) {\n\t\t\t\t\tconst { [ clientId ]: removedBlock, ...restBlocks } = state;\n\t\t\t\t\treturn restBlocks;\n\t\t\t\t}\n\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\tif ( fastDeepEqual( state[ clientId ], action.settings ) ) {\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ clientId ]: action.settings,\n\t\t\t};\n\t\t}\n\t}\n\treturn state;\n};\n\n/**\n * Reducer returning which mode is enabled.\n *\n * @param {string} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {string} Updated state.\n */\nexport function editorMode( state = 'edit', action ) {\n\t// Let inserting block in navigation mode always trigger Edit mode.\n\tif ( action.type === 'INSERT_BLOCKS' && state === 'navigation' ) {\n\t\treturn 'edit';\n\t}\n\n\tif ( action.type === 'SET_EDITOR_MODE' ) {\n\t\treturn action.mode;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning whether the block moving mode is enabled or not.\n *\n * @param {string|null} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {string|null} Updated state.\n */\nexport function hasBlockMovingClientId( state = null, action ) {\n\tif ( action.type === 'SET_BLOCK_MOVING_MODE' ) {\n\t\treturn action.hasBlockMovingClientId;\n\t}\n\n\tif ( action.type === 'SET_EDITOR_MODE' ) {\n\t\treturn null;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer return an updated state representing the most recent block attribute\n * update. The state is structured as an object where the keys represent the\n * client IDs of blocks, the values a subset of attributes from the most recent\n * block update. The state is always reset to null if the last action is\n * anything other than an attributes update.\n *\n * @param {Object<string,Object>} state Current state.\n * @param {Object} action Action object.\n *\n * @return {[string,Object]} Updated state.\n */\nexport function lastBlockAttributesChange( state = null, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'UPDATE_BLOCK':\n\t\t\tif ( ! action.updates.attributes ) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treturn { [ action.clientId ]: action.updates.attributes };\n\n\t\tcase 'UPDATE_BLOCK_ATTRIBUTES':\n\t\t\treturn action.clientIds.reduce(\n\t\t\t\t( accumulator, id ) => ( {\n\t\t\t\t\t...accumulator,\n\t\t\t\t\t[ id ]: action.uniqueByBlock\n\t\t\t\t\t\t? action.attributes[ id ]\n\t\t\t\t\t\t: action.attributes,\n\t\t\t\t} ),\n\t\t\t\t{}\n\t\t\t);\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning current highlighted block.\n *\n * @param {boolean} state Current highlighted block.\n * @param {Object} action Dispatched action.\n *\n * @return {string} Updated state.\n */\nexport function highlightedBlock( state, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'TOGGLE_BLOCK_HIGHLIGHT':\n\t\t\tconst { clientId, isHighlighted } = action;\n\n\t\t\tif ( isHighlighted ) {\n\t\t\t\treturn clientId;\n\t\t\t} else if ( state === clientId ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn state;\n\t\tcase 'SELECT_BLOCK':\n\t\t\tif ( action.clientId !== state ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning the block insertion event list state.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function lastBlockInserted( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'INSERT_BLOCKS':\n\t\tcase 'REPLACE_BLOCKS':\n\t\t\tif ( ! action.blocks.length ) {\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\tconst clientIds = action.blocks.map( ( block ) => {\n\t\t\t\treturn block.clientId;\n\t\t\t} );\n\n\t\t\tconst source = action.meta?.source;\n\n\t\t\treturn { clientIds, source };\n\t\tcase 'RESET_BLOCKS':\n\t\t\treturn {};\n\t}\n\treturn state;\n}\n\n/**\n * Reducer returning the block that is eding temporarily edited as blocks.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function temporarilyEditingAsBlocks( state = '', action ) {\n\tif ( action.type === 'SET_TEMPORARILY_EDITING_AS_BLOCKS' ) {\n\t\treturn action.temporarilyEditingAsBlocks;\n\t}\n\treturn state;\n}\n\n/**\n * Reducer returning a map of block client IDs to block editing modes.\n *\n * @param {Map} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Map} Updated state.\n */\nexport function blockEditingModes( state = new Map(), action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SET_BLOCK_EDITING_MODE':\n\t\t\treturn new Map( state ).set( action.clientId, action.mode );\n\t\tcase 'UNSET_BLOCK_EDITING_MODE': {\n\t\t\tconst newState = new Map( state );\n\t\t\tnewState.delete( action.clientId );\n\t\t\treturn newState;\n\t\t}\n\t\tcase 'RESET_BLOCKS': {\n\t\t\treturn state.has( '' )\n\t\t\t\t? new Map().set( '', state.get( '' ) )\n\t\t\t\t: state;\n\t\t}\n\t}\n\treturn state;\n}\n\nconst combinedReducers = combineReducers( {\n\tblocks,\n\tisTyping,\n\tisBlockInterfaceHidden,\n\tdraggedBlocks,\n\tselection,\n\tisMultiSelecting,\n\tisSelectionEnabled,\n\tinitialPosition,\n\tblocksMode,\n\tblockListSettings,\n\tinsertionPoint,\n\ttemplate,\n\tsettings,\n\tpreferences,\n\tlastBlockAttributesChange,\n\teditorMode,\n\thasBlockMovingClientId,\n\thighlightedBlock,\n\tlastBlockInserted,\n\ttemporarilyEditingAsBlocks,\n\tblockVisibility,\n\tblockEditingModes,\n\tremovalPromptData,\n\tblockRemovalRules,\n} );\n\nfunction withAutomaticChangeReset( reducer ) {\n\treturn ( state, action ) => {\n\t\tconst nextState = reducer( state, action );\n\n\t\tif ( ! state ) {\n\t\t\treturn nextState;\n\t\t}\n\n\t\t// Take over the last value without creating a new reference.\n\t\tnextState.automaticChangeStatus = state.automaticChangeStatus;\n\n\t\tif ( action.type === 'MARK_AUTOMATIC_CHANGE' ) {\n\t\t\treturn {\n\t\t\t\t...nextState,\n\t\t\t\tautomaticChangeStatus: 'pending',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\taction.type === 'MARK_AUTOMATIC_CHANGE_FINAL' &&\n\t\t\tstate.automaticChangeStatus === 'pending'\n\t\t) {\n\t\t\treturn {\n\t\t\t\t...nextState,\n\t\t\t\tautomaticChangeStatus: 'final',\n\t\t\t};\n\t\t}\n\n\t\t// If there's a change that doesn't affect blocks or selection, maintain\n\t\t// the current status.\n\t\tif (\n\t\t\tnextState.blocks === state.blocks &&\n\t\t\tnextState.selection === state.selection\n\t\t) {\n\t\t\treturn nextState;\n\t\t}\n\n\t\t// As long as the state is not final, ignore any selection changes.\n\t\tif (\n\t\t\tnextState.automaticChangeStatus !== 'final' &&\n\t\t\tnextState.selection !== state.selection\n\t\t) {\n\t\t\treturn nextState;\n\t\t}\n\n\t\t// Reset the status if blocks change or selection changes (when status is final).\n\t\treturn {\n\t\t\t...nextState,\n\t\t\tautomaticChangeStatus: undefined,\n\t\t};\n\t};\n}\n\nexport default withAutomaticChangeReset( combinedReducers );\n"]}
1
+ {"version":3,"names":["fastDeepEqual","pipe","combineReducers","select","store","blocksStore","PREFERENCES_DEFAULTS","SETTINGS_DEFAULTS","insertAt","moveTo","identity","x","mapBlockOrder","blocks","rootClientId","result","Map","current","set","forEach","block","clientId","innerBlocks","push","order","subClientId","mapBlockParents","stack","length","parent","currentBlocks","shift","flattenBlocks","transform","getFlattenedClientIds","getFlattenedBlocksWithoutAttributes","attributes","restBlock","getFlattenedBlockAttributes","hasSameKeys","a","b","Object","keys","isUpdatingSameBlockAttribute","action","lastAction","type","undefined","clientIds","updateBlockTreeForBlocks","state","treeToUpdate","tree","flattenedBlocks","assign","get","byClientId","map","subBlock","updateParentInnerBlocksInTree","updatedClientIds","updateChildrenOfUpdatedClientIds","uncontrolledParents","Set","controlledParents","parents","controlledInnerBlocks","add","withBlockTree","reducer","newState","inserterClientIds","replacedClientIds","concat","filter","key","delete","parentsOfRemovedBlocks","removedClientIds","updatedBlockUids","fromRootClientId","toRootClientId","name","ref","updatedId","withPersistentBlockChange","markNextChangeAsNotPersistent","nextState","isExplicitPersistentChange","_state$isPersistentCh","nextIsPersistentChange","isPersistentChange","withIgnoredBlockChange","IGNORED_ACTION_TYPES","isIgnoredChange","has","withInnerBlocksRemoveCascade","getAllChildren","i","keepControlledInnerBlocks","withBlockReset","withReplaceInnerBlocks","nestedControllers","stateAfterBlocksRemoval","stateAfterInsert","index","stateAfterInsertOrder","_key","withSaveReusableBlock","id","withResetControlledBlocks","tempState","value","changes","updates","values","every","hasChange","_action$attributes","updatedAttributeEntries","entries","uniqueByBlock","hasUpdatedAttributes","existingAttributes","newAttributes","_state$get","blockOrder","subState","mappedBlocks","_state$get$filter","fromIndex","indexOf","includes","firstClientId","firstIndex","lastClientId","newSubOrder","reduce","_order$filter","hasControlledInnerBlocks","isBlockInterfaceHidden","isTyping","draggedBlocks","blockVisibility","selectionHelper","updateSelection","blockToSelect","indexToSelect","selection","selectionStart","attributeKey","offset","startOffset","selectionEnd","endOffset","start","end","startClientId","endClientId","some","isMultiSelecting","isSelectionEnabled","removalPromptData","selectPrevious","blockNamesForPrompt","blockRemovalRules","rules","initialPosition","blocksMode","insertionPoint","__unstableWithInserter","operation","template","isValid","settings","reset","preferences","prevState","blockName","match","getActiveBlockVariation","insertUsage","time","count","blockListSettings","fromEntries","hasOwnProperty","removedBlock","restBlocks","editorMode","mode","hasBlockMovingClientId","lastBlockAttributesChange","accumulator","highlightedBlock","isHighlighted","lastBlockInserted","source","meta","temporarilyEditingAsBlocks","blockEditingModes","combinedReducers","withAutomaticChangeReset","automaticChangeStatus"],"sources":["@wordpress/block-editor/src/store/reducer.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\n/**\n * WordPress dependencies\n */\nimport { pipe } from '@wordpress/compose';\nimport { combineReducers, select } from '@wordpress/data';\nimport { store as blocksStore } from '@wordpress/blocks';\n/**\n * Internal dependencies\n */\nimport { PREFERENCES_DEFAULTS, SETTINGS_DEFAULTS } from './defaults';\nimport { insertAt, moveTo } from './array';\n\nconst identity = ( x ) => x;\n\n/**\n * Given an array of blocks, returns an object where each key is a nesting\n * context, the value of which is an array of block client IDs existing within\n * that nesting context.\n *\n * @param {Array} blocks Blocks to map.\n * @param {?string} rootClientId Assumed root client ID.\n *\n * @return {Object} Block order map object.\n */\nfunction mapBlockOrder( blocks, rootClientId = '' ) {\n\tconst result = new Map();\n\tconst current = [];\n\tresult.set( rootClientId, current );\n\tblocks.forEach( ( block ) => {\n\t\tconst { clientId, innerBlocks } = block;\n\t\tcurrent.push( clientId );\n\t\tmapBlockOrder( innerBlocks, clientId ).forEach(\n\t\t\t( order, subClientId ) => {\n\t\t\t\tresult.set( subClientId, order );\n\t\t\t}\n\t\t);\n\t} );\n\treturn result;\n}\n\n/**\n * Given an array of blocks, returns an object where each key contains\n * the clientId of the block and the value is the parent of the block.\n *\n * @param {Array} blocks Blocks to map.\n * @param {?string} rootClientId Assumed root client ID.\n *\n * @return {Object} Block order map object.\n */\nfunction mapBlockParents( blocks, rootClientId = '' ) {\n\tconst result = [];\n\tconst stack = [ [ rootClientId, blocks ] ];\n\twhile ( stack.length ) {\n\t\tconst [ parent, currentBlocks ] = stack.shift();\n\t\tcurrentBlocks.forEach( ( { innerBlocks, ...block } ) => {\n\t\t\tresult.push( [ block.clientId, parent ] );\n\t\t\tif ( innerBlocks?.length ) {\n\t\t\t\tstack.push( [ block.clientId, innerBlocks ] );\n\t\t\t}\n\t\t} );\n\t}\n\treturn result;\n}\n\n/**\n * Helper method to iterate through all blocks, recursing into inner blocks,\n * applying a transformation function to each one.\n * Returns a flattened object with the transformed blocks.\n *\n * @param {Array} blocks Blocks to flatten.\n * @param {Function} transform Transforming function to be applied to each block.\n *\n * @return {Array} Flattened object.\n */\nfunction flattenBlocks( blocks, transform = identity ) {\n\tconst result = [];\n\n\tconst stack = [ ...blocks ];\n\twhile ( stack.length ) {\n\t\tconst { innerBlocks, ...block } = stack.shift();\n\t\tstack.push( ...innerBlocks );\n\t\tresult.push( [ block.clientId, transform( block ) ] );\n\t}\n\n\treturn result;\n}\n\nfunction getFlattenedClientIds( blocks ) {\n\tconst result = {};\n\tconst stack = [ ...blocks ];\n\twhile ( stack.length ) {\n\t\tconst { innerBlocks, ...block } = stack.shift();\n\t\tstack.push( ...innerBlocks );\n\t\tresult[ block.clientId ] = true;\n\t}\n\n\treturn result;\n}\n\n/**\n * Given an array of blocks, returns an object containing all blocks, without\n * attributes, recursing into inner blocks. Keys correspond to the block client\n * ID, the value of which is the attributes object.\n *\n * @param {Array} blocks Blocks to flatten.\n *\n * @return {Array} Flattened block attributes object.\n */\nfunction getFlattenedBlocksWithoutAttributes( blocks ) {\n\treturn flattenBlocks( blocks, ( block ) => {\n\t\tconst { attributes, ...restBlock } = block;\n\t\treturn restBlock;\n\t} );\n}\n\n/**\n * Given an array of blocks, returns an object containing all block attributes,\n * recursing into inner blocks. Keys correspond to the block client ID, the\n * value of which is the attributes object.\n *\n * @param {Array} blocks Blocks to flatten.\n *\n * @return {Array} Flattened block attributes object.\n */\nfunction getFlattenedBlockAttributes( blocks ) {\n\treturn flattenBlocks( blocks, ( block ) => block.attributes );\n}\n\n/**\n * Returns true if the two object arguments have the same keys, or false\n * otherwise.\n *\n * @param {Object} a First object.\n * @param {Object} b Second object.\n *\n * @return {boolean} Whether the two objects have the same keys.\n */\nexport function hasSameKeys( a, b ) {\n\treturn fastDeepEqual( Object.keys( a ), Object.keys( b ) );\n}\n\n/**\n * Returns true if, given the currently dispatching action and the previously\n * dispatched action, the two actions are updating the same block attribute, or\n * false otherwise.\n *\n * @param {Object} action Currently dispatching action.\n * @param {Object} lastAction Previously dispatched action.\n *\n * @return {boolean} Whether actions are updating the same block attribute.\n */\nexport function isUpdatingSameBlockAttribute( action, lastAction ) {\n\treturn (\n\t\taction.type === 'UPDATE_BLOCK_ATTRIBUTES' &&\n\t\tlastAction !== undefined &&\n\t\tlastAction.type === 'UPDATE_BLOCK_ATTRIBUTES' &&\n\t\tfastDeepEqual( action.clientIds, lastAction.clientIds ) &&\n\t\thasSameKeys( action.attributes, lastAction.attributes )\n\t);\n}\n\nfunction updateBlockTreeForBlocks( state, blocks ) {\n\tconst treeToUpdate = state.tree;\n\tconst stack = [ ...blocks ];\n\tconst flattenedBlocks = [ ...blocks ];\n\twhile ( stack.length ) {\n\t\tconst block = stack.shift();\n\t\tstack.push( ...block.innerBlocks );\n\t\tflattenedBlocks.push( ...block.innerBlocks );\n\t}\n\t// Create objects before mutating them, that way it's always defined.\n\tfor ( const block of flattenedBlocks ) {\n\t\ttreeToUpdate.set( block.clientId, {} );\n\t}\n\tfor ( const block of flattenedBlocks ) {\n\t\ttreeToUpdate.set(\n\t\t\tblock.clientId,\n\t\t\tObject.assign( treeToUpdate.get( block.clientId ), {\n\t\t\t\t...state.byClientId.get( block.clientId ),\n\t\t\t\tattributes: state.attributes.get( block.clientId ),\n\t\t\t\tinnerBlocks: block.innerBlocks.map( ( subBlock ) =>\n\t\t\t\t\ttreeToUpdate.get( subBlock.clientId )\n\t\t\t\t),\n\t\t\t} )\n\t\t);\n\t}\n}\n\nfunction updateParentInnerBlocksInTree(\n\tstate,\n\tupdatedClientIds,\n\tupdateChildrenOfUpdatedClientIds = false\n) {\n\tconst treeToUpdate = state.tree;\n\tconst uncontrolledParents = new Set( [] );\n\tconst controlledParents = new Set();\n\tfor ( const clientId of updatedClientIds ) {\n\t\tlet current = updateChildrenOfUpdatedClientIds\n\t\t\t? clientId\n\t\t\t: state.parents.get( clientId );\n\t\tdo {\n\t\t\tif ( state.controlledInnerBlocks[ current ] ) {\n\t\t\t\t// Should stop on controlled blocks.\n\t\t\t\t// If we reach a controlled parent, break out of the loop.\n\t\t\t\tcontrolledParents.add( current );\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\t// Else continue traversing up through parents.\n\t\t\t\tuncontrolledParents.add( current );\n\t\t\t\tcurrent = state.parents.get( current );\n\t\t\t}\n\t\t} while ( current !== undefined );\n\t}\n\n\t// To make sure the order of assignments doesn't matter,\n\t// we first create empty objects and mutates the inner blocks later.\n\tfor ( const clientId of uncontrolledParents ) {\n\t\ttreeToUpdate.set( clientId, { ...treeToUpdate.get( clientId ) } );\n\t}\n\tfor ( const clientId of uncontrolledParents ) {\n\t\ttreeToUpdate.get( clientId ).innerBlocks = (\n\t\t\tstate.order.get( clientId ) || []\n\t\t).map( ( subClientId ) => treeToUpdate.get( subClientId ) );\n\t}\n\n\t// Controlled parent blocks, need a dedicated key for their inner blocks\n\t// to be used when doing getBlocks( controlledBlockClientId ).\n\tfor ( const clientId of controlledParents ) {\n\t\ttreeToUpdate.set( 'controlled||' + clientId, {\n\t\t\tinnerBlocks: ( state.order.get( clientId ) || [] ).map(\n\t\t\t\t( subClientId ) => treeToUpdate.get( subClientId )\n\t\t\t),\n\t\t} );\n\t}\n}\n\n/**\n * Higher-order reducer intended to compute full block objects key for each block in the post.\n * This is a denormalization to optimize the performance of the getBlock selectors and avoid\n * recomputing the block objects and avoid heavy memoization.\n *\n * @param {Function} reducer Original reducer function.\n *\n * @return {Function} Enhanced reducer function.\n */\nconst withBlockTree =\n\t( reducer ) =>\n\t( state = {}, action ) => {\n\t\tconst newState = reducer( state, action );\n\n\t\tif ( newState === state ) {\n\t\t\treturn state;\n\t\t}\n\n\t\tnewState.tree = state.tree ? state.tree : new Map();\n\t\tswitch ( action.type ) {\n\t\t\tcase 'RECEIVE_BLOCKS':\n\t\t\tcase 'INSERT_BLOCKS': {\n\t\t\t\tnewState.tree = new Map( newState.tree );\n\t\t\t\tupdateBlockTreeForBlocks( newState, action.blocks );\n\t\t\t\tupdateParentInnerBlocksInTree(\n\t\t\t\t\tnewState,\n\t\t\t\t\taction.rootClientId ? [ action.rootClientId ] : [ '' ],\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'UPDATE_BLOCK':\n\t\t\t\tnewState.tree = new Map( newState.tree );\n\t\t\t\tnewState.tree.set( action.clientId, {\n\t\t\t\t\t...newState.tree.get( action.clientId ),\n\t\t\t\t\t...newState.byClientId.get( action.clientId ),\n\t\t\t\t\tattributes: newState.attributes.get( action.clientId ),\n\t\t\t\t} );\n\t\t\t\tupdateParentInnerBlocksInTree(\n\t\t\t\t\tnewState,\n\t\t\t\t\t[ action.clientId ],\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase 'UPDATE_BLOCK_ATTRIBUTES': {\n\t\t\t\tnewState.tree = new Map( newState.tree );\n\t\t\t\taction.clientIds.forEach( ( clientId ) => {\n\t\t\t\t\tnewState.tree.set( clientId, {\n\t\t\t\t\t\t...newState.tree.get( clientId ),\n\t\t\t\t\t\tattributes: newState.attributes.get( clientId ),\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t\tupdateParentInnerBlocksInTree(\n\t\t\t\t\tnewState,\n\t\t\t\t\taction.clientIds,\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN': {\n\t\t\t\tconst inserterClientIds = getFlattenedClientIds(\n\t\t\t\t\taction.blocks\n\t\t\t\t);\n\t\t\t\tnewState.tree = new Map( newState.tree );\n\t\t\t\taction.replacedClientIds\n\t\t\t\t\t.concat(\n\t\t\t\t\t\t// Controlled inner blocks are only removed\n\t\t\t\t\t\t// if the block doesn't move to another position\n\t\t\t\t\t\t// otherwise their content will be lost.\n\t\t\t\t\t\taction.replacedClientIds\n\t\t\t\t\t\t\t.filter(\n\t\t\t\t\t\t\t\t( clientId ) => ! inserterClientIds[ clientId ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.map( ( clientId ) => 'controlled||' + clientId )\n\t\t\t\t\t)\n\t\t\t\t\t.forEach( ( key ) => {\n\t\t\t\t\t\tnewState.tree.delete( key );\n\t\t\t\t\t} );\n\n\t\t\t\tupdateBlockTreeForBlocks( newState, action.blocks );\n\t\t\t\tupdateParentInnerBlocksInTree(\n\t\t\t\t\tnewState,\n\t\t\t\t\taction.blocks.map( ( b ) => b.clientId ),\n\t\t\t\t\tfalse\n\t\t\t\t);\n\n\t\t\t\t// If there are no replaced blocks, it means we're removing blocks so we need to update their parent.\n\t\t\t\tconst parentsOfRemovedBlocks = [];\n\t\t\t\tfor ( const clientId of action.clientIds ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tstate.parents.get( clientId ) !== undefined &&\n\t\t\t\t\t\t( state.parents.get( clientId ) === '' ||\n\t\t\t\t\t\t\tnewState.byClientId.get(\n\t\t\t\t\t\t\t\tstate.parents.get( clientId )\n\t\t\t\t\t\t\t) )\n\t\t\t\t\t) {\n\t\t\t\t\t\tparentsOfRemovedBlocks.push(\n\t\t\t\t\t\t\tstate.parents.get( clientId )\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tupdateParentInnerBlocksInTree(\n\t\t\t\t\tnewState,\n\t\t\t\t\tparentsOfRemovedBlocks,\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN':\n\t\t\t\tconst parentsOfRemovedBlocks = [];\n\t\t\t\tfor ( const clientId of action.clientIds ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tstate.parents.get( clientId ) !== undefined &&\n\t\t\t\t\t\t( state.parents.get( clientId ) === '' ||\n\t\t\t\t\t\t\tnewState.byClientId.get(\n\t\t\t\t\t\t\t\tstate.parents.get( clientId )\n\t\t\t\t\t\t\t) )\n\t\t\t\t\t) {\n\t\t\t\t\t\tparentsOfRemovedBlocks.push(\n\t\t\t\t\t\t\tstate.parents.get( clientId )\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tnewState.tree = new Map( newState.tree );\n\t\t\t\taction.removedClientIds\n\t\t\t\t\t.concat(\n\t\t\t\t\t\taction.removedClientIds.map(\n\t\t\t\t\t\t\t( clientId ) => 'controlled||' + clientId\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t\t.forEach( ( key ) => {\n\t\t\t\t\t\tnewState.tree.delete( key );\n\t\t\t\t\t} );\n\t\t\t\tupdateParentInnerBlocksInTree(\n\t\t\t\t\tnewState,\n\t\t\t\t\tparentsOfRemovedBlocks,\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase 'MOVE_BLOCKS_TO_POSITION': {\n\t\t\t\tconst updatedBlockUids = [];\n\t\t\t\tif ( action.fromRootClientId ) {\n\t\t\t\t\tupdatedBlockUids.push( action.fromRootClientId );\n\t\t\t\t} else {\n\t\t\t\t\tupdatedBlockUids.push( '' );\n\t\t\t\t}\n\t\t\t\tif ( action.toRootClientId ) {\n\t\t\t\t\tupdatedBlockUids.push( action.toRootClientId );\n\t\t\t\t}\n\t\t\t\tnewState.tree = new Map( newState.tree );\n\t\t\t\tupdateParentInnerBlocksInTree(\n\t\t\t\t\tnewState,\n\t\t\t\t\tupdatedBlockUids,\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'MOVE_BLOCKS_UP':\n\t\t\tcase 'MOVE_BLOCKS_DOWN': {\n\t\t\t\tconst updatedBlockUids = [\n\t\t\t\t\taction.rootClientId ? action.rootClientId : '',\n\t\t\t\t];\n\t\t\t\tnewState.tree = new Map( newState.tree );\n\t\t\t\tupdateParentInnerBlocksInTree(\n\t\t\t\t\tnewState,\n\t\t\t\t\tupdatedBlockUids,\n\t\t\t\t\ttrue\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase 'SAVE_REUSABLE_BLOCK_SUCCESS': {\n\t\t\t\tconst updatedBlockUids = [];\n\t\t\t\tnewState.attributes.forEach( ( attributes, clientId ) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tnewState.byClientId.get( clientId ).name ===\n\t\t\t\t\t\t\t'core/block' &&\n\t\t\t\t\t\tattributes.ref === action.updatedId\n\t\t\t\t\t) {\n\t\t\t\t\t\tupdatedBlockUids.push( clientId );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\tnewState.tree = new Map( newState.tree );\n\t\t\t\tupdatedBlockUids.forEach( ( clientId ) => {\n\t\t\t\t\tnewState.tree.set( clientId, {\n\t\t\t\t\t\t...newState.byClientId.get( clientId ),\n\t\t\t\t\t\tattributes: newState.attributes.get( clientId ),\n\t\t\t\t\t\tinnerBlocks: newState.tree.get( clientId ).innerBlocks,\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t\tupdateParentInnerBlocksInTree(\n\t\t\t\t\tnewState,\n\t\t\t\t\tupdatedBlockUids,\n\t\t\t\t\tfalse\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn newState;\n\t};\n\n/**\n * Higher-order reducer intended to augment the blocks reducer, assigning an\n * `isPersistentChange` property value corresponding to whether a change in\n * state can be considered as persistent. All changes are considered persistent\n * except when updating the same block attribute as in the previous action.\n *\n * @param {Function} reducer Original reducer function.\n *\n * @return {Function} Enhanced reducer function.\n */\nfunction withPersistentBlockChange( reducer ) {\n\tlet lastAction;\n\tlet markNextChangeAsNotPersistent = false;\n\n\treturn ( state, action ) => {\n\t\tlet nextState = reducer( state, action );\n\n\t\tconst isExplicitPersistentChange =\n\t\t\taction.type === 'MARK_LAST_CHANGE_AS_PERSISTENT' ||\n\t\t\tmarkNextChangeAsNotPersistent;\n\n\t\t// Defer to previous state value (or default) unless changing or\n\t\t// explicitly marking as persistent.\n\t\tif ( state === nextState && ! isExplicitPersistentChange ) {\n\t\t\tmarkNextChangeAsNotPersistent =\n\t\t\t\taction.type === 'MARK_NEXT_CHANGE_AS_NOT_PERSISTENT';\n\n\t\t\tconst nextIsPersistentChange = state?.isPersistentChange ?? true;\n\t\t\tif ( state.isPersistentChange === nextIsPersistentChange ) {\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...nextState,\n\t\t\t\tisPersistentChange: nextIsPersistentChange,\n\t\t\t};\n\t\t}\n\n\t\tnextState = {\n\t\t\t...nextState,\n\t\t\tisPersistentChange: isExplicitPersistentChange\n\t\t\t\t? ! markNextChangeAsNotPersistent\n\t\t\t\t: ! isUpdatingSameBlockAttribute( action, lastAction ),\n\t\t};\n\n\t\t// In comparing against the previous action, consider only those which\n\t\t// would have qualified as one which would have been ignored or not\n\t\t// have resulted in a changed state.\n\t\tlastAction = action;\n\t\tmarkNextChangeAsNotPersistent =\n\t\t\taction.type === 'MARK_NEXT_CHANGE_AS_NOT_PERSISTENT';\n\n\t\treturn nextState;\n\t};\n}\n\n/**\n * Higher-order reducer intended to augment the blocks reducer, assigning an\n * `isIgnoredChange` property value corresponding to whether a change in state\n * can be considered as ignored. A change is considered ignored when the result\n * of an action not incurred by direct user interaction.\n *\n * @param {Function} reducer Original reducer function.\n *\n * @return {Function} Enhanced reducer function.\n */\nfunction withIgnoredBlockChange( reducer ) {\n\t/**\n\t * Set of action types for which a blocks state change should be ignored.\n\t *\n\t * @type {Set}\n\t */\n\tconst IGNORED_ACTION_TYPES = new Set( [ 'RECEIVE_BLOCKS' ] );\n\n\treturn ( state, action ) => {\n\t\tconst nextState = reducer( state, action );\n\n\t\tif ( nextState !== state ) {\n\t\t\tnextState.isIgnoredChange = IGNORED_ACTION_TYPES.has( action.type );\n\t\t}\n\n\t\treturn nextState;\n\t};\n}\n\n/**\n * Higher-order reducer targeting the combined blocks reducer, augmenting\n * block client IDs in remove action to include cascade of inner blocks.\n *\n * @param {Function} reducer Original reducer function.\n *\n * @return {Function} Enhanced reducer function.\n */\nconst withInnerBlocksRemoveCascade = ( reducer ) => ( state, action ) => {\n\t// Gets all children which need to be removed.\n\tconst getAllChildren = ( clientIds ) => {\n\t\tlet result = clientIds;\n\t\tfor ( let i = 0; i < result.length; i++ ) {\n\t\t\tif (\n\t\t\t\t! state.order.get( result[ i ] ) ||\n\t\t\t\t( action.keepControlledInnerBlocks &&\n\t\t\t\t\taction.keepControlledInnerBlocks[ result[ i ] ] )\n\t\t\t) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif ( result === clientIds ) {\n\t\t\t\tresult = [ ...result ];\n\t\t\t}\n\n\t\t\tresult.push( ...state.order.get( result[ i ] ) );\n\t\t}\n\t\treturn result;\n\t};\n\n\tif ( state ) {\n\t\tswitch ( action.type ) {\n\t\t\tcase 'REMOVE_BLOCKS':\n\t\t\t\taction = {\n\t\t\t\t\t...action,\n\t\t\t\t\ttype: 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN',\n\t\t\t\t\tremovedClientIds: getAllChildren( action.clientIds ),\n\t\t\t\t};\n\t\t\t\tbreak;\n\t\t\tcase 'REPLACE_BLOCKS':\n\t\t\t\taction = {\n\t\t\t\t\t...action,\n\t\t\t\t\ttype: 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN',\n\t\t\t\t\treplacedClientIds: getAllChildren( action.clientIds ),\n\t\t\t\t};\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn reducer( state, action );\n};\n\n/**\n * Higher-order reducer which targets the combined blocks reducer and handles\n * the `RESET_BLOCKS` action. When dispatched, this action will replace all\n * blocks that exist in the post, leaving blocks that exist only in state (e.g.\n * reusable blocks and blocks controlled by inner blocks controllers) alone.\n *\n * @param {Function} reducer Original reducer function.\n *\n * @return {Function} Enhanced reducer function.\n */\nconst withBlockReset = ( reducer ) => ( state, action ) => {\n\tif ( action.type === 'RESET_BLOCKS' ) {\n\t\tconst newState = {\n\t\t\t...state,\n\t\t\tbyClientId: new Map(\n\t\t\t\tgetFlattenedBlocksWithoutAttributes( action.blocks )\n\t\t\t),\n\t\t\tattributes: new Map( getFlattenedBlockAttributes( action.blocks ) ),\n\t\t\torder: mapBlockOrder( action.blocks ),\n\t\t\tparents: new Map( mapBlockParents( action.blocks ) ),\n\t\t\tcontrolledInnerBlocks: {},\n\t\t};\n\n\t\tnewState.tree = new Map( state?.tree );\n\t\tupdateBlockTreeForBlocks( newState, action.blocks );\n\t\tnewState.tree.set( '', {\n\t\t\tinnerBlocks: action.blocks.map( ( subBlock ) =>\n\t\t\t\tnewState.tree.get( subBlock.clientId )\n\t\t\t),\n\t\t} );\n\n\t\treturn newState;\n\t}\n\n\treturn reducer( state, action );\n};\n\n/**\n * Higher-order reducer which targets the combined blocks reducer and handles\n * the `REPLACE_INNER_BLOCKS` action. When dispatched, this action the state\n * should become equivalent to the execution of a `REMOVE_BLOCKS` action\n * containing all the child's of the root block followed by the execution of\n * `INSERT_BLOCKS` with the new blocks.\n *\n * @param {Function} reducer Original reducer function.\n *\n * @return {Function} Enhanced reducer function.\n */\nconst withReplaceInnerBlocks = ( reducer ) => ( state, action ) => {\n\tif ( action.type !== 'REPLACE_INNER_BLOCKS' ) {\n\t\treturn reducer( state, action );\n\t}\n\n\t// Finds every nested inner block controller. We must check the action blocks\n\t// and not just the block parent state because some inner block controllers\n\t// should be deleted if specified, whereas others should not be deleted. If\n\t// a controlled should not be deleted, then we need to avoid deleting its\n\t// inner blocks from the block state because its inner blocks will not be\n\t// attached to the block in the action.\n\tconst nestedControllers = {};\n\tif ( Object.keys( state.controlledInnerBlocks ).length ) {\n\t\tconst stack = [ ...action.blocks ];\n\t\twhile ( stack.length ) {\n\t\t\tconst { innerBlocks, ...block } = stack.shift();\n\t\t\tstack.push( ...innerBlocks );\n\t\t\tif ( !! state.controlledInnerBlocks[ block.clientId ] ) {\n\t\t\t\tnestedControllers[ block.clientId ] = true;\n\t\t\t}\n\t\t}\n\t}\n\n\t// The `keepControlledInnerBlocks` prop will keep the inner blocks of the\n\t// marked block in the block state so that they can be reattached to the\n\t// marked block when we re-insert everything a few lines below.\n\tlet stateAfterBlocksRemoval = state;\n\tif ( state.order.get( action.rootClientId ) ) {\n\t\tstateAfterBlocksRemoval = reducer( stateAfterBlocksRemoval, {\n\t\t\ttype: 'REMOVE_BLOCKS',\n\t\t\tkeepControlledInnerBlocks: nestedControllers,\n\t\t\tclientIds: state.order.get( action.rootClientId ),\n\t\t} );\n\t}\n\tlet stateAfterInsert = stateAfterBlocksRemoval;\n\tif ( action.blocks.length ) {\n\t\tstateAfterInsert = reducer( stateAfterInsert, {\n\t\t\t...action,\n\t\t\ttype: 'INSERT_BLOCKS',\n\t\t\tindex: 0,\n\t\t} );\n\n\t\t// We need to re-attach the controlled inner blocks to the blocks tree and\n\t\t// preserve their block order. Otherwise, an inner block controller's blocks\n\t\t// will be deleted entirely from its entity.\n\t\tconst stateAfterInsertOrder = new Map( stateAfterInsert.order );\n\t\tObject.keys( nestedControllers ).forEach( ( key ) => {\n\t\t\tif ( state.order.get( key ) ) {\n\t\t\t\tstateAfterInsertOrder.set( key, state.order.get( key ) );\n\t\t\t}\n\t\t} );\n\t\tstateAfterInsert.order = stateAfterInsertOrder;\n\t\tstateAfterInsert.tree = new Map( stateAfterInsert.tree );\n\t\tObject.keys( nestedControllers ).forEach( ( _key ) => {\n\t\t\tconst key = `controlled||${ _key }`;\n\t\t\tif ( state.tree.has( key ) ) {\n\t\t\t\tstateAfterInsert.tree.set( key, state.tree.get( key ) );\n\t\t\t}\n\t\t} );\n\t}\n\treturn stateAfterInsert;\n};\n\n/**\n * Higher-order reducer which targets the combined blocks reducer and handles\n * the `SAVE_REUSABLE_BLOCK_SUCCESS` action. This action can't be handled by\n * regular reducers and needs a higher-order reducer since it needs access to\n * both `byClientId` and `attributes` simultaneously.\n *\n * @param {Function} reducer Original reducer function.\n *\n * @return {Function} Enhanced reducer function.\n */\nconst withSaveReusableBlock = ( reducer ) => ( state, action ) => {\n\tif ( state && action.type === 'SAVE_REUSABLE_BLOCK_SUCCESS' ) {\n\t\tconst { id, updatedId } = action;\n\n\t\t// If a temporary reusable block is saved, we swap the temporary id with the final one.\n\t\tif ( id === updatedId ) {\n\t\t\treturn state;\n\t\t}\n\n\t\tstate = { ...state };\n\t\tstate.attributes = new Map( state.attributes );\n\t\tstate.attributes.forEach( ( attributes, clientId ) => {\n\t\t\tconst { name } = state.byClientId.get( clientId );\n\t\t\tif ( name === 'core/block' && attributes.ref === id ) {\n\t\t\t\tstate.attributes.set( clientId, {\n\t\t\t\t\t...attributes,\n\t\t\t\t\tref: updatedId,\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t}\n\n\treturn reducer( state, action );\n};\n/**\n * Higher-order reducer which removes blocks from state when switching parent block controlled state.\n *\n * @param {Function} reducer Original reducer function.\n *\n * @return {Function} Enhanced reducer function.\n */\nconst withResetControlledBlocks = ( reducer ) => ( state, action ) => {\n\tif ( action.type === 'SET_HAS_CONTROLLED_INNER_BLOCKS' ) {\n\t\t// when switching a block from controlled to uncontrolled or inverse,\n\t\t// we need to remove its content first.\n\t\tconst tempState = reducer( state, {\n\t\t\ttype: 'REPLACE_INNER_BLOCKS',\n\t\t\trootClientId: action.clientId,\n\t\t\tblocks: [],\n\t\t} );\n\t\treturn reducer( tempState, action );\n\t}\n\n\treturn reducer( state, action );\n};\n\n/**\n * Reducer returning the blocks state.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport const blocks = pipe(\n\tcombineReducers,\n\twithSaveReusableBlock, // Needs to be before withBlockCache.\n\twithBlockTree, // Needs to be before withInnerBlocksRemoveCascade.\n\twithInnerBlocksRemoveCascade,\n\twithReplaceInnerBlocks, // Needs to be after withInnerBlocksRemoveCascade.\n\twithBlockReset,\n\twithPersistentBlockChange,\n\twithIgnoredBlockChange,\n\twithResetControlledBlocks\n)( {\n\t// The state is using a Map instead of a plain object for performance reasons.\n\t// You can run the \"./test/performance.js\" unit test to check the impact\n\t// code changes can have on this reducer.\n\tbyClientId( state = new Map(), action ) {\n\t\tswitch ( action.type ) {\n\t\t\tcase 'RECEIVE_BLOCKS':\n\t\t\tcase 'INSERT_BLOCKS': {\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\tgetFlattenedBlocksWithoutAttributes( action.blocks ).forEach(\n\t\t\t\t\t( [ key, value ] ) => {\n\t\t\t\t\t\tnewState.set( key, value );\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\treturn newState;\n\t\t\t}\n\t\t\tcase 'UPDATE_BLOCK': {\n\t\t\t\t// Ignore updates if block isn't known.\n\t\t\t\tif ( ! state.has( action.clientId ) ) {\n\t\t\t\t\treturn state;\n\t\t\t\t}\n\n\t\t\t\t// Do nothing if only attributes change.\n\t\t\t\tconst { attributes, ...changes } = action.updates;\n\t\t\t\tif ( Object.values( changes ).length === 0 ) {\n\t\t\t\t\treturn state;\n\t\t\t\t}\n\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\tnewState.set( action.clientId, {\n\t\t\t\t\t...state.get( action.clientId ),\n\t\t\t\t\t...changes,\n\t\t\t\t} );\n\t\t\t\treturn newState;\n\t\t\t}\n\n\t\t\tcase 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN': {\n\t\t\t\tif ( ! action.blocks ) {\n\t\t\t\t\treturn state;\n\t\t\t\t}\n\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\taction.replacedClientIds.forEach( ( clientId ) => {\n\t\t\t\t\tnewState.delete( clientId );\n\t\t\t\t} );\n\n\t\t\t\tgetFlattenedBlocksWithoutAttributes( action.blocks ).forEach(\n\t\t\t\t\t( [ key, value ] ) => {\n\t\t\t\t\t\tnewState.set( key, value );\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\treturn newState;\n\t\t\t}\n\n\t\t\tcase 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN': {\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\taction.removedClientIds.forEach( ( clientId ) => {\n\t\t\t\t\tnewState.delete( clientId );\n\t\t\t\t} );\n\t\t\t\treturn newState;\n\t\t\t}\n\t\t}\n\n\t\treturn state;\n\t},\n\n\t// The state is using a Map instead of a plain object for performance reasons.\n\t// You can run the \"./test/performance.js\" unit test to check the impact\n\t// code changes can have on this reducer.\n\tattributes( state = new Map(), action ) {\n\t\tswitch ( action.type ) {\n\t\t\tcase 'RECEIVE_BLOCKS':\n\t\t\tcase 'INSERT_BLOCKS': {\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\tgetFlattenedBlockAttributes( action.blocks ).forEach(\n\t\t\t\t\t( [ key, value ] ) => {\n\t\t\t\t\t\tnewState.set( key, value );\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\treturn newState;\n\t\t\t}\n\n\t\t\tcase 'UPDATE_BLOCK': {\n\t\t\t\t// Ignore updates if block isn't known or there are no attribute changes.\n\t\t\t\tif (\n\t\t\t\t\t! state.get( action.clientId ) ||\n\t\t\t\t\t! action.updates.attributes\n\t\t\t\t) {\n\t\t\t\t\treturn state;\n\t\t\t\t}\n\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\tnewState.set( action.clientId, {\n\t\t\t\t\t...state.get( action.clientId ),\n\t\t\t\t\t...action.updates.attributes,\n\t\t\t\t} );\n\t\t\t\treturn newState;\n\t\t\t}\n\n\t\t\tcase 'UPDATE_BLOCK_ATTRIBUTES': {\n\t\t\t\t// Avoid a state change if none of the block IDs are known.\n\t\t\t\tif ( action.clientIds.every( ( id ) => ! state.get( id ) ) ) {\n\t\t\t\t\treturn state;\n\t\t\t\t}\n\n\t\t\t\tlet hasChange = false;\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\tfor ( const clientId of action.clientIds ) {\n\t\t\t\t\tconst updatedAttributeEntries = Object.entries(\n\t\t\t\t\t\taction.uniqueByBlock\n\t\t\t\t\t\t\t? action.attributes[ clientId ]\n\t\t\t\t\t\t\t: action.attributes ?? {}\n\t\t\t\t\t);\n\t\t\t\t\tif ( updatedAttributeEntries.length === 0 ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tlet hasUpdatedAttributes = false;\n\t\t\t\t\tconst existingAttributes = state.get( clientId );\n\t\t\t\t\tconst newAttributes = {};\n\t\t\t\t\tupdatedAttributeEntries.forEach( ( [ key, value ] ) => {\n\t\t\t\t\t\tif ( existingAttributes[ key ] !== value ) {\n\t\t\t\t\t\t\thasUpdatedAttributes = true;\n\t\t\t\t\t\t\tnewAttributes[ key ] = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t\thasChange = hasChange || hasUpdatedAttributes;\n\t\t\t\t\tif ( hasUpdatedAttributes ) {\n\t\t\t\t\t\tnewState.set( clientId, {\n\t\t\t\t\t\t\t...existingAttributes,\n\t\t\t\t\t\t\t...newAttributes,\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn hasChange ? newState : state;\n\t\t\t}\n\n\t\t\tcase 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN': {\n\t\t\t\tif ( ! action.blocks ) {\n\t\t\t\t\treturn state;\n\t\t\t\t}\n\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\taction.replacedClientIds.forEach( ( clientId ) => {\n\t\t\t\t\tnewState.delete( clientId );\n\t\t\t\t} );\n\t\t\t\tgetFlattenedBlockAttributes( action.blocks ).forEach(\n\t\t\t\t\t( [ key, value ] ) => {\n\t\t\t\t\t\tnewState.set( key, value );\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\treturn newState;\n\t\t\t}\n\n\t\t\tcase 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN': {\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\taction.removedClientIds.forEach( ( clientId ) => {\n\t\t\t\t\tnewState.delete( clientId );\n\t\t\t\t} );\n\t\t\t\treturn newState;\n\t\t\t}\n\t\t}\n\n\t\treturn state;\n\t},\n\n\t// The state is using a Map instead of a plain object for performance reasons.\n\t// You can run the \"./test/performance.js\" unit test to check the impact\n\t// code changes can have on this reducer.\n\torder( state = new Map(), action ) {\n\t\tswitch ( action.type ) {\n\t\t\tcase 'RECEIVE_BLOCKS': {\n\t\t\t\tconst blockOrder = mapBlockOrder( action.blocks );\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\tblockOrder.forEach( ( order, clientId ) => {\n\t\t\t\t\tif ( clientId !== '' ) {\n\t\t\t\t\t\tnewState.set( clientId, order );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\tnewState.set(\n\t\t\t\t\t'',\n\t\t\t\t\t( state.get( '' ) ?? [] ).concat( blockOrder[ '' ] )\n\t\t\t\t);\n\t\t\t\treturn newState;\n\t\t\t}\n\t\t\tcase 'INSERT_BLOCKS': {\n\t\t\t\tconst { rootClientId = '' } = action;\n\t\t\t\tconst subState = state.get( rootClientId ) || [];\n\t\t\t\tconst mappedBlocks = mapBlockOrder(\n\t\t\t\t\taction.blocks,\n\t\t\t\t\trootClientId\n\t\t\t\t);\n\t\t\t\tconst { index = subState.length } = action;\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\tmappedBlocks.forEach( ( order, clientId ) => {\n\t\t\t\t\tnewState.set( clientId, order );\n\t\t\t\t} );\n\t\t\t\tnewState.set(\n\t\t\t\t\trootClientId,\n\t\t\t\t\tinsertAt(\n\t\t\t\t\t\tsubState,\n\t\t\t\t\t\tmappedBlocks.get( rootClientId ),\n\t\t\t\t\t\tindex\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\treturn newState;\n\t\t\t}\n\n\t\t\tcase 'MOVE_BLOCKS_TO_POSITION': {\n\t\t\t\tconst {\n\t\t\t\t\tfromRootClientId = '',\n\t\t\t\t\ttoRootClientId = '',\n\t\t\t\t\tclientIds,\n\t\t\t\t} = action;\n\t\t\t\tconst { index = state.get( toRootClientId ).length } = action;\n\n\t\t\t\t// Moving inside the same parent block.\n\t\t\t\tif ( fromRootClientId === toRootClientId ) {\n\t\t\t\t\tconst subState = state.get( toRootClientId );\n\t\t\t\t\tconst fromIndex = subState.indexOf( clientIds[ 0 ] );\n\t\t\t\t\tconst newState = new Map( state );\n\t\t\t\t\tnewState.set(\n\t\t\t\t\t\ttoRootClientId,\n\t\t\t\t\t\tmoveTo(\n\t\t\t\t\t\t\tstate.get( toRootClientId ),\n\t\t\t\t\t\t\tfromIndex,\n\t\t\t\t\t\t\tindex,\n\t\t\t\t\t\t\tclientIds.length\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t\treturn newState;\n\t\t\t\t}\n\n\t\t\t\t// Moving from a parent block to another.\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\tnewState.set(\n\t\t\t\t\tfromRootClientId,\n\t\t\t\t\tstate\n\t\t\t\t\t\t.get( fromRootClientId )\n\t\t\t\t\t\t?.filter( ( id ) => ! clientIds.includes( id ) ) ?? []\n\t\t\t\t);\n\t\t\t\tnewState.set(\n\t\t\t\t\ttoRootClientId,\n\t\t\t\t\tinsertAt( state.get( toRootClientId ), clientIds, index )\n\t\t\t\t);\n\t\t\t\treturn newState;\n\t\t\t}\n\n\t\t\tcase 'MOVE_BLOCKS_UP': {\n\t\t\t\tconst { clientIds, rootClientId = '' } = action;\n\t\t\t\tconst firstClientId = clientIds[ 0 ];\n\t\t\t\tconst subState = state.get( rootClientId );\n\n\t\t\t\tif ( ! subState.length || firstClientId === subState[ 0 ] ) {\n\t\t\t\t\treturn state;\n\t\t\t\t}\n\n\t\t\t\tconst firstIndex = subState.indexOf( firstClientId );\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\tnewState.set(\n\t\t\t\t\trootClientId,\n\t\t\t\t\tmoveTo(\n\t\t\t\t\t\tsubState,\n\t\t\t\t\t\tfirstIndex,\n\t\t\t\t\t\tfirstIndex - 1,\n\t\t\t\t\t\tclientIds.length\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\treturn newState;\n\t\t\t}\n\n\t\t\tcase 'MOVE_BLOCKS_DOWN': {\n\t\t\t\tconst { clientIds, rootClientId = '' } = action;\n\t\t\t\tconst firstClientId = clientIds[ 0 ];\n\t\t\t\tconst lastClientId = clientIds[ clientIds.length - 1 ];\n\t\t\t\tconst subState = state.get( rootClientId );\n\n\t\t\t\tif (\n\t\t\t\t\t! subState.length ||\n\t\t\t\t\tlastClientId === subState[ subState.length - 1 ]\n\t\t\t\t) {\n\t\t\t\t\treturn state;\n\t\t\t\t}\n\n\t\t\t\tconst firstIndex = subState.indexOf( firstClientId );\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\tnewState.set(\n\t\t\t\t\trootClientId,\n\t\t\t\t\tmoveTo(\n\t\t\t\t\t\tsubState,\n\t\t\t\t\t\tfirstIndex,\n\t\t\t\t\t\tfirstIndex + 1,\n\t\t\t\t\t\tclientIds.length\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\treturn newState;\n\t\t\t}\n\n\t\t\tcase 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN': {\n\t\t\t\tconst { clientIds } = action;\n\t\t\t\tif ( ! action.blocks ) {\n\t\t\t\t\treturn state;\n\t\t\t\t}\n\n\t\t\t\tconst mappedBlocks = mapBlockOrder( action.blocks );\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\taction.replacedClientIds.forEach( ( clientId ) => {\n\t\t\t\t\tnewState.delete( clientId );\n\t\t\t\t} );\n\t\t\t\tmappedBlocks.forEach( ( order, clientId ) => {\n\t\t\t\t\tif ( clientId !== '' ) {\n\t\t\t\t\t\tnewState.set( clientId, order );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\tnewState.forEach( ( order, clientId ) => {\n\t\t\t\t\tconst newSubOrder = Object.values( order ).reduce(\n\t\t\t\t\t\t( result, subClientId ) => {\n\t\t\t\t\t\t\tif ( subClientId === clientIds[ 0 ] ) {\n\t\t\t\t\t\t\t\treturn [ ...result, ...mappedBlocks.get( '' ) ];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( clientIds.indexOf( subClientId ) === -1 ) {\n\t\t\t\t\t\t\t\tresult.push( subClientId );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn result;\n\t\t\t\t\t\t},\n\t\t\t\t\t\t[]\n\t\t\t\t\t);\n\t\t\t\t\tnewState.set( clientId, newSubOrder );\n\t\t\t\t} );\n\t\t\t\treturn newState;\n\t\t\t}\n\n\t\t\tcase 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN': {\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\t// Remove inner block ordering for removed blocks.\n\t\t\t\taction.removedClientIds.forEach( ( clientId ) => {\n\t\t\t\t\tnewState.delete( clientId );\n\t\t\t\t} );\n\t\t\t\tnewState.forEach( ( order, clientId ) => {\n\t\t\t\t\tconst newSubOrder =\n\t\t\t\t\t\torder?.filter(\n\t\t\t\t\t\t\t( id ) => ! action.removedClientIds.includes( id )\n\t\t\t\t\t\t) ?? [];\n\t\t\t\t\tif ( newSubOrder.length !== order.length ) {\n\t\t\t\t\t\tnewState.set( clientId, newSubOrder );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn newState;\n\t\t\t}\n\t\t}\n\n\t\treturn state;\n\t},\n\n\t// While technically redundant data as the inverse of `order`, it serves as\n\t// an optimization for the selectors which derive the ancestry of a block.\n\tparents( state = new Map(), action ) {\n\t\tswitch ( action.type ) {\n\t\t\tcase 'RECEIVE_BLOCKS': {\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\tmapBlockParents( action.blocks ).forEach(\n\t\t\t\t\t( [ key, value ] ) => {\n\t\t\t\t\t\tnewState.set( key, value );\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\treturn newState;\n\t\t\t}\n\t\t\tcase 'INSERT_BLOCKS': {\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\tmapBlockParents(\n\t\t\t\t\taction.blocks,\n\t\t\t\t\taction.rootClientId || ''\n\t\t\t\t).forEach( ( [ key, value ] ) => {\n\t\t\t\t\tnewState.set( key, value );\n\t\t\t\t} );\n\t\t\t\treturn newState;\n\t\t\t}\n\t\t\tcase 'MOVE_BLOCKS_TO_POSITION': {\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\taction.clientIds.forEach( ( id ) => {\n\t\t\t\t\tnewState.set( id, action.toRootClientId || '' );\n\t\t\t\t} );\n\t\t\t\treturn newState;\n\t\t\t}\n\n\t\t\tcase 'REPLACE_BLOCKS_AUGMENTED_WITH_CHILDREN': {\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\taction.replacedClientIds.forEach( ( clientId ) => {\n\t\t\t\t\tnewState.delete( clientId );\n\t\t\t\t} );\n\t\t\t\tmapBlockParents(\n\t\t\t\t\taction.blocks,\n\t\t\t\t\tstate.get( action.clientIds[ 0 ] )\n\t\t\t\t).forEach( ( [ key, value ] ) => {\n\t\t\t\t\tnewState.set( key, value );\n\t\t\t\t} );\n\t\t\t\treturn newState;\n\t\t\t}\n\t\t\tcase 'REMOVE_BLOCKS_AUGMENTED_WITH_CHILDREN': {\n\t\t\t\tconst newState = new Map( state );\n\t\t\t\taction.removedClientIds.forEach( ( clientId ) => {\n\t\t\t\t\tnewState.delete( clientId );\n\t\t\t\t} );\n\t\t\t\treturn newState;\n\t\t\t}\n\t\t}\n\n\t\treturn state;\n\t},\n\n\tcontrolledInnerBlocks(\n\t\tstate = {},\n\t\t{ type, clientId, hasControlledInnerBlocks }\n\t) {\n\t\tif ( type === 'SET_HAS_CONTROLLED_INNER_BLOCKS' ) {\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ clientId ]: hasControlledInnerBlocks,\n\t\t\t};\n\t\t}\n\t\treturn state;\n\t},\n} );\n\n/**\n * Reducer returning visibility status of block interface.\n *\n * @param {boolean} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {boolean} Updated state.\n */\nexport function isBlockInterfaceHidden( state = false, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'HIDE_BLOCK_INTERFACE':\n\t\t\treturn true;\n\n\t\tcase 'SHOW_BLOCK_INTERFACE':\n\t\t\treturn false;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning typing state.\n *\n * @param {boolean} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {boolean} Updated state.\n */\nexport function isTyping( state = false, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'START_TYPING':\n\t\t\treturn true;\n\n\t\tcase 'STOP_TYPING':\n\t\t\treturn false;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning dragged block client id.\n *\n * @param {string[]} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {string[]} Updated state.\n */\nexport function draggedBlocks( state = [], action ) {\n\tswitch ( action.type ) {\n\t\tcase 'START_DRAGGING_BLOCKS':\n\t\t\treturn action.clientIds;\n\n\t\tcase 'STOP_DRAGGING_BLOCKS':\n\t\t\treturn [];\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer tracking the visible blocks.\n *\n * @param {Record<string,boolean>} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Record<string,boolean>} Block visibility.\n */\nexport function blockVisibility( state = {}, action ) {\n\tif ( action.type === 'SET_BLOCK_VISIBILITY' ) {\n\t\treturn {\n\t\t\t...state,\n\t\t\t...action.updates,\n\t\t};\n\t}\n\n\treturn state;\n}\n\n/**\n * Internal helper reducer for selectionStart and selectionEnd. Can hold a block\n * selection, represented by an object with property clientId.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nfunction selectionHelper( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'CLEAR_SELECTED_BLOCK': {\n\t\t\tif ( state.clientId ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\treturn state;\n\t\t}\n\t\tcase 'SELECT_BLOCK':\n\t\t\tif ( action.clientId === state.clientId ) {\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\treturn { clientId: action.clientId };\n\t\tcase 'REPLACE_INNER_BLOCKS':\n\t\tcase 'INSERT_BLOCKS': {\n\t\t\tif ( ! action.updateSelection || ! action.blocks.length ) {\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\treturn { clientId: action.blocks[ 0 ].clientId };\n\t\t}\n\t\tcase 'REMOVE_BLOCKS':\n\t\t\tif (\n\t\t\t\t! action.clientIds ||\n\t\t\t\t! action.clientIds.length ||\n\t\t\t\taction.clientIds.indexOf( state.clientId ) === -1\n\t\t\t) {\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\treturn {};\n\t\tcase 'REPLACE_BLOCKS': {\n\t\t\tif ( action.clientIds.indexOf( state.clientId ) === -1 ) {\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\tconst blockToSelect =\n\t\t\t\taction.blocks[ action.indexToSelect ] ||\n\t\t\t\taction.blocks[ action.blocks.length - 1 ];\n\n\t\t\tif ( ! blockToSelect ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tif ( blockToSelect.clientId === state.clientId ) {\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\treturn { clientId: blockToSelect.clientId };\n\t\t}\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning the selection state.\n *\n * @param {boolean} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {boolean} Updated state.\n */\nexport function selection( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SELECTION_CHANGE':\n\t\t\tif ( action.clientId ) {\n\t\t\t\treturn {\n\t\t\t\t\tselectionStart: {\n\t\t\t\t\t\tclientId: action.clientId,\n\t\t\t\t\t\tattributeKey: action.attributeKey,\n\t\t\t\t\t\toffset: action.startOffset,\n\t\t\t\t\t},\n\t\t\t\t\tselectionEnd: {\n\t\t\t\t\t\tclientId: action.clientId,\n\t\t\t\t\t\tattributeKey: action.attributeKey,\n\t\t\t\t\t\toffset: action.endOffset,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tselectionStart: action.start || state.selectionStart,\n\t\t\t\tselectionEnd: action.end || state.selectionEnd,\n\t\t\t};\n\t\tcase 'RESET_SELECTION':\n\t\t\tconst { selectionStart, selectionEnd } = action;\n\t\t\treturn {\n\t\t\t\tselectionStart,\n\t\t\t\tselectionEnd,\n\t\t\t};\n\t\tcase 'MULTI_SELECT':\n\t\t\tconst { start, end } = action;\n\n\t\t\tif (\n\t\t\t\tstart === state.selectionStart?.clientId &&\n\t\t\t\tend === state.selectionEnd?.clientId\n\t\t\t) {\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tselectionStart: { clientId: start },\n\t\t\t\tselectionEnd: { clientId: end },\n\t\t\t};\n\t\tcase 'RESET_BLOCKS':\n\t\t\tconst startClientId = state?.selectionStart?.clientId;\n\t\t\tconst endClientId = state?.selectionEnd?.clientId;\n\n\t\t\t// Do nothing if there's no selected block.\n\t\t\tif ( ! startClientId && ! endClientId ) {\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\t// If the start of the selection won't exist after reset, remove selection.\n\t\t\tif (\n\t\t\t\t! action.blocks.some(\n\t\t\t\t\t( block ) => block.clientId === startClientId\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn {\n\t\t\t\t\tselectionStart: {},\n\t\t\t\t\tselectionEnd: {},\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// If the end of the selection won't exist after reset, collapse selection.\n\t\t\tif (\n\t\t\t\t! action.blocks.some(\n\t\t\t\t\t( block ) => block.clientId === endClientId\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn {\n\t\t\t\t\t...state,\n\t\t\t\t\tselectionEnd: state.selectionStart,\n\t\t\t\t};\n\t\t\t}\n\t}\n\n\tconst selectionStart = selectionHelper( state.selectionStart, action );\n\tconst selectionEnd = selectionHelper( state.selectionEnd, action );\n\n\tif (\n\t\tselectionStart === state.selectionStart &&\n\t\tselectionEnd === state.selectionEnd\n\t) {\n\t\treturn state;\n\t}\n\n\treturn {\n\t\tselectionStart,\n\t\tselectionEnd,\n\t};\n}\n\n/**\n * Reducer returning whether the user is multi-selecting.\n *\n * @param {boolean} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {boolean} Updated state.\n */\nexport function isMultiSelecting( state = false, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'START_MULTI_SELECT':\n\t\t\treturn true;\n\n\t\tcase 'STOP_MULTI_SELECT':\n\t\t\treturn false;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning whether selection is enabled.\n *\n * @param {boolean} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {boolean} Updated state.\n */\nexport function isSelectionEnabled( state = true, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'TOGGLE_SELECTION':\n\t\t\treturn action.isSelectionEnabled;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning the data needed to display a prompt when certain blocks\n * are removed, or `false` if no such prompt is requested.\n *\n * @param {boolean} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object|false} Data for removal prompt display, if any.\n */\nfunction removalPromptData( state = false, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'DISPLAY_BLOCK_REMOVAL_PROMPT':\n\t\t\tconst { clientIds, selectPrevious, blockNamesForPrompt } = action;\n\t\t\treturn {\n\t\t\t\tclientIds,\n\t\t\t\tselectPrevious,\n\t\t\t\tblockNamesForPrompt,\n\t\t\t};\n\t\tcase 'CLEAR_BLOCK_REMOVAL_PROMPT':\n\t\t\treturn false;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning any rules that a block editor may provide in order to\n * prevent a user from accidentally removing certain blocks. These rules are\n * then used to display a confirmation prompt to the user. For instance, in the\n * Site Editor, the Query Loop block is important enough to warrant such\n * confirmation.\n *\n * The data is a record whose keys are block types (e.g. 'core/query') and\n * whose values are the explanation to be shown to users (e.g. 'Query Loop\n * displays a list of posts or pages.').\n *\n * @param {boolean} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Record<string,string>} Updated state.\n */\nfunction blockRemovalRules( state = false, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SET_BLOCK_REMOVAL_RULES':\n\t\t\treturn action.rules;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning the initial block selection.\n *\n * Currently this in only used to restore the selection after block deletion and\n * pasting new content.This reducer should eventually be removed in favour of setting\n * selection directly.\n *\n * @param {boolean} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {number|null} Initial position: 0, -1 or null.\n */\nexport function initialPosition( state = null, action ) {\n\tif (\n\t\taction.type === 'REPLACE_BLOCKS' &&\n\t\taction.initialPosition !== undefined\n\t) {\n\t\treturn action.initialPosition;\n\t} else if (\n\t\t[\n\t\t\t'MULTI_SELECT',\n\t\t\t'SELECT_BLOCK',\n\t\t\t'RESET_SELECTION',\n\t\t\t'INSERT_BLOCKS',\n\t\t\t'REPLACE_INNER_BLOCKS',\n\t\t].includes( action.type )\n\t) {\n\t\treturn action.initialPosition;\n\t}\n\n\treturn state;\n}\n\nexport function blocksMode( state = {}, action ) {\n\tif ( action.type === 'TOGGLE_BLOCK_MODE' ) {\n\t\tconst { clientId } = action;\n\t\treturn {\n\t\t\t...state,\n\t\t\t[ clientId ]:\n\t\t\t\tstate[ clientId ] && state[ clientId ] === 'html'\n\t\t\t\t\t? 'visual'\n\t\t\t\t\t: 'html',\n\t\t};\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning the block insertion point visibility, either null if there\n * is not an explicit insertion point assigned, or an object of its `index` and\n * `rootClientId`.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function insertionPoint( state = null, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SHOW_INSERTION_POINT': {\n\t\t\tconst { rootClientId, index, __unstableWithInserter, operation } =\n\t\t\t\taction;\n\t\t\tconst nextState = {\n\t\t\t\trootClientId,\n\t\t\t\tindex,\n\t\t\t\t__unstableWithInserter,\n\t\t\t\toperation,\n\t\t\t};\n\n\t\t\t// Bail out updates if the states are the same.\n\t\t\treturn fastDeepEqual( state, nextState ) ? state : nextState;\n\t\t}\n\n\t\tcase 'HIDE_INSERTION_POINT':\n\t\t\treturn null;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning whether the post blocks match the defined template or not.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {boolean} Updated state.\n */\nexport function template( state = { isValid: true }, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SET_TEMPLATE_VALIDITY':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tisValid: action.isValid,\n\t\t\t};\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning the editor setting.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function settings( state = SETTINGS_DEFAULTS, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'UPDATE_SETTINGS':\n\t\t\tif ( action.reset ) {\n\t\t\t\treturn {\n\t\t\t\t\t...SETTINGS_DEFAULTS,\n\t\t\t\t\t...action.settings,\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t...action.settings,\n\t\t\t};\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning the user preferences.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {string} Updated state.\n */\nexport function preferences( state = PREFERENCES_DEFAULTS, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'INSERT_BLOCKS':\n\t\tcase 'REPLACE_BLOCKS':\n\t\t\treturn action.blocks.reduce( ( prevState, block ) => {\n\t\t\t\tconst { attributes, name: blockName } = block;\n\t\t\t\tlet id = blockName;\n\t\t\t\t// If a block variation match is found change the name to be the same with the\n\t\t\t\t// one that is used for block variations in the Inserter (`getItemFromVariation`).\n\t\t\t\tconst match = select( blocksStore ).getActiveBlockVariation(\n\t\t\t\t\tblockName,\n\t\t\t\t\tattributes\n\t\t\t\t);\n\t\t\t\tif ( match?.name ) {\n\t\t\t\t\tid += '/' + match.name;\n\t\t\t\t}\n\t\t\t\tif ( blockName === 'core/block' ) {\n\t\t\t\t\tid += '/' + attributes.ref;\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\t...prevState,\n\t\t\t\t\tinsertUsage: {\n\t\t\t\t\t\t...prevState.insertUsage,\n\t\t\t\t\t\t[ id ]: {\n\t\t\t\t\t\t\ttime: action.time,\n\t\t\t\t\t\t\tcount: prevState.insertUsage[ id ]\n\t\t\t\t\t\t\t\t? prevState.insertUsage[ id ].count + 1\n\t\t\t\t\t\t\t\t: 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t}, state );\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning an object where each key is a block client ID, its value\n * representing the settings for its nested blocks.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport const blockListSettings = ( state = {}, action ) => {\n\tswitch ( action.type ) {\n\t\t// Even if the replaced blocks have the same client ID, our logic\n\t\t// should correct the state.\n\t\tcase 'REPLACE_BLOCKS':\n\t\tcase 'REMOVE_BLOCKS': {\n\t\t\treturn Object.fromEntries(\n\t\t\t\tObject.entries( state ).filter(\n\t\t\t\t\t( [ id ] ) => ! action.clientIds.includes( id )\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\tcase 'UPDATE_BLOCK_LIST_SETTINGS': {\n\t\t\tconst { clientId } = action;\n\t\t\tif ( ! action.settings ) {\n\t\t\t\tif ( state.hasOwnProperty( clientId ) ) {\n\t\t\t\t\tconst { [ clientId ]: removedBlock, ...restBlocks } = state;\n\t\t\t\t\treturn restBlocks;\n\t\t\t\t}\n\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\tif ( fastDeepEqual( state[ clientId ], action.settings ) ) {\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t[ clientId ]: action.settings,\n\t\t\t};\n\t\t}\n\t}\n\treturn state;\n};\n\n/**\n * Reducer returning which mode is enabled.\n *\n * @param {string} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {string} Updated state.\n */\nexport function editorMode( state = 'edit', action ) {\n\t// Let inserting block in navigation mode always trigger Edit mode.\n\tif ( action.type === 'INSERT_BLOCKS' && state === 'navigation' ) {\n\t\treturn 'edit';\n\t}\n\n\tif ( action.type === 'SET_EDITOR_MODE' ) {\n\t\treturn action.mode;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning whether the block moving mode is enabled or not.\n *\n * @param {string|null} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {string|null} Updated state.\n */\nexport function hasBlockMovingClientId( state = null, action ) {\n\tif ( action.type === 'SET_BLOCK_MOVING_MODE' ) {\n\t\treturn action.hasBlockMovingClientId;\n\t}\n\n\tif ( action.type === 'SET_EDITOR_MODE' ) {\n\t\treturn null;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer return an updated state representing the most recent block attribute\n * update. The state is structured as an object where the keys represent the\n * client IDs of blocks, the values a subset of attributes from the most recent\n * block update. The state is always reset to null if the last action is\n * anything other than an attributes update.\n *\n * @param {Object<string,Object>} state Current state.\n * @param {Object} action Action object.\n *\n * @return {[string,Object]} Updated state.\n */\nexport function lastBlockAttributesChange( state = null, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'UPDATE_BLOCK':\n\t\t\tif ( ! action.updates.attributes ) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treturn { [ action.clientId ]: action.updates.attributes };\n\n\t\tcase 'UPDATE_BLOCK_ATTRIBUTES':\n\t\t\treturn action.clientIds.reduce(\n\t\t\t\t( accumulator, id ) => ( {\n\t\t\t\t\t...accumulator,\n\t\t\t\t\t[ id ]: action.uniqueByBlock\n\t\t\t\t\t\t? action.attributes[ id ]\n\t\t\t\t\t\t: action.attributes,\n\t\t\t\t} ),\n\t\t\t\t{}\n\t\t\t);\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning current highlighted block.\n *\n * @param {boolean} state Current highlighted block.\n * @param {Object} action Dispatched action.\n *\n * @return {string} Updated state.\n */\nexport function highlightedBlock( state, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'TOGGLE_BLOCK_HIGHLIGHT':\n\t\t\tconst { clientId, isHighlighted } = action;\n\n\t\t\tif ( isHighlighted ) {\n\t\t\t\treturn clientId;\n\t\t\t} else if ( state === clientId ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn state;\n\t\tcase 'SELECT_BLOCK':\n\t\t\tif ( action.clientId !== state ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning the block insertion event list state.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function lastBlockInserted( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'INSERT_BLOCKS':\n\t\tcase 'REPLACE_BLOCKS':\n\t\t\tif ( ! action.blocks.length ) {\n\t\t\t\treturn state;\n\t\t\t}\n\n\t\t\tconst clientIds = action.blocks.map( ( block ) => {\n\t\t\t\treturn block.clientId;\n\t\t\t} );\n\n\t\t\tconst source = action.meta?.source;\n\n\t\t\treturn { clientIds, source };\n\t\tcase 'RESET_BLOCKS':\n\t\t\treturn {};\n\t}\n\treturn state;\n}\n\n/**\n * Reducer returning the block that is eding temporarily edited as blocks.\n *\n * @param {Object} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function temporarilyEditingAsBlocks( state = '', action ) {\n\tif ( action.type === 'SET_TEMPORARILY_EDITING_AS_BLOCKS' ) {\n\t\treturn action.temporarilyEditingAsBlocks;\n\t}\n\treturn state;\n}\n\n/**\n * Reducer returning a map of block client IDs to block editing modes.\n *\n * @param {Map} state Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Map} Updated state.\n */\nexport function blockEditingModes( state = new Map(), action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SET_BLOCK_EDITING_MODE':\n\t\t\treturn new Map( state ).set( action.clientId, action.mode );\n\t\tcase 'UNSET_BLOCK_EDITING_MODE': {\n\t\t\tconst newState = new Map( state );\n\t\t\tnewState.delete( action.clientId );\n\t\t\treturn newState;\n\t\t}\n\t\tcase 'RESET_BLOCKS': {\n\t\t\treturn state.has( '' )\n\t\t\t\t? new Map().set( '', state.get( '' ) )\n\t\t\t\t: state;\n\t\t}\n\t}\n\treturn state;\n}\n\nconst combinedReducers = combineReducers( {\n\tblocks,\n\tisTyping,\n\tisBlockInterfaceHidden,\n\tdraggedBlocks,\n\tselection,\n\tisMultiSelecting,\n\tisSelectionEnabled,\n\tinitialPosition,\n\tblocksMode,\n\tblockListSettings,\n\tinsertionPoint,\n\ttemplate,\n\tsettings,\n\tpreferences,\n\tlastBlockAttributesChange,\n\teditorMode,\n\thasBlockMovingClientId,\n\thighlightedBlock,\n\tlastBlockInserted,\n\ttemporarilyEditingAsBlocks,\n\tblockVisibility,\n\tblockEditingModes,\n\tremovalPromptData,\n\tblockRemovalRules,\n} );\n\nfunction withAutomaticChangeReset( reducer ) {\n\treturn ( state, action ) => {\n\t\tconst nextState = reducer( state, action );\n\n\t\tif ( ! state ) {\n\t\t\treturn nextState;\n\t\t}\n\n\t\t// Take over the last value without creating a new reference.\n\t\tnextState.automaticChangeStatus = state.automaticChangeStatus;\n\n\t\tif ( action.type === 'MARK_AUTOMATIC_CHANGE' ) {\n\t\t\treturn {\n\t\t\t\t...nextState,\n\t\t\t\tautomaticChangeStatus: 'pending',\n\t\t\t};\n\t\t}\n\n\t\tif (\n\t\t\taction.type === 'MARK_AUTOMATIC_CHANGE_FINAL' &&\n\t\t\tstate.automaticChangeStatus === 'pending'\n\t\t) {\n\t\t\treturn {\n\t\t\t\t...nextState,\n\t\t\t\tautomaticChangeStatus: 'final',\n\t\t\t};\n\t\t}\n\n\t\t// If there's a change that doesn't affect blocks or selection, maintain\n\t\t// the current status.\n\t\tif (\n\t\t\tnextState.blocks === state.blocks &&\n\t\t\tnextState.selection === state.selection\n\t\t) {\n\t\t\treturn nextState;\n\t\t}\n\n\t\t// As long as the state is not final, ignore any selection changes.\n\t\tif (\n\t\t\tnextState.automaticChangeStatus !== 'final' &&\n\t\t\tnextState.selection !== state.selection\n\t\t) {\n\t\t\treturn nextState;\n\t\t}\n\n\t\t// Reset the status if blocks change or selection changes (when status is final).\n\t\treturn {\n\t\t\t...nextState,\n\t\t\tautomaticChangeStatus: undefined,\n\t\t};\n\t};\n}\n\nexport default withAutomaticChangeReset( combinedReducers );\n"],"mappings":"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"}