@wordpress/block-editor 9.8.1-next.957ca95e4c.0 → 10.0.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 (456) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +13 -1
  3. package/build/components/alignment-control/ui.js +6 -5
  4. package/build/components/alignment-control/ui.js.map +1 -1
  5. package/build/components/block-actions/index.js +5 -9
  6. package/build/components/block-actions/index.js.map +1 -1
  7. package/build/components/block-alignment-control/ui.js +5 -5
  8. package/build/components/block-alignment-control/ui.js.map +1 -1
  9. package/build/components/block-content-overlay/index.js +2 -4
  10. package/build/components/block-content-overlay/index.js.map +1 -1
  11. package/build/components/block-draggable/draggable-chip.js +2 -1
  12. package/build/components/block-draggable/draggable-chip.js.map +1 -1
  13. package/build/components/block-edit/edit.js +1 -1
  14. package/build/components/block-edit/edit.js.map +1 -1
  15. package/build/components/block-inspector/index.js +125 -17
  16. package/build/components/block-inspector/index.js.map +1 -1
  17. package/build/components/block-list/block.js +40 -9
  18. package/build/components/block-list/block.js.map +1 -1
  19. package/build/components/block-list/index.js +4 -4
  20. package/build/components/block-list/index.js.map +1 -1
  21. package/build/components/block-list/use-block-props/index.js +14 -11
  22. package/build/components/block-list/use-block-props/index.js.map +1 -1
  23. package/build/components/block-list/use-block-props/use-block-class-names.js +3 -2
  24. package/build/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  25. package/build/components/block-list/use-block-props/use-focus-first-element.js +3 -9
  26. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  27. package/build/components/block-list/use-block-props/use-is-hovered.js +1 -2
  28. package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  29. package/build/components/block-list/use-in-between-inserter.js +7 -12
  30. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  31. package/build/components/block-list-appender/index.js +20 -21
  32. package/build/components/block-list-appender/index.js.map +1 -1
  33. package/build/components/block-list-appender/index.native.js +1 -7
  34. package/build/components/block-list-appender/index.native.js.map +1 -1
  35. package/build/components/block-lock/use-block-lock.js +3 -1
  36. package/build/components/block-lock/use-block-lock.js.map +1 -1
  37. package/build/components/block-mobile-toolbar/block-actions-menu.native.js +20 -10
  38. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  39. package/build/components/block-mover/button.js +4 -6
  40. package/build/components/block-mover/button.js.map +1 -1
  41. package/build/components/block-mover/index.js +4 -6
  42. package/build/components/block-mover/index.js.map +1 -1
  43. package/build/components/block-mover/index.native.js +24 -8
  44. package/build/components/block-mover/index.native.js.map +1 -1
  45. package/build/components/block-popover/inbetween.js +58 -16
  46. package/build/components/block-popover/inbetween.js.map +1 -1
  47. package/build/components/block-popover/index.js +3 -2
  48. package/build/components/block-popover/index.js.map +1 -1
  49. package/build/components/block-preview/auto.js +4 -2
  50. package/build/components/block-preview/auto.js.map +1 -1
  51. package/build/components/block-settings-menu/block-settings-dropdown.js +3 -1
  52. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  53. package/build/components/block-settings-menu-controls/index.js +3 -1
  54. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  55. package/build/components/block-styles/preview-panel.js +7 -1
  56. package/build/components/block-styles/preview-panel.js.map +1 -1
  57. package/build/components/block-switcher/block-transformations-menu.js +114 -25
  58. package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
  59. package/build/components/block-toolbar/index.js +9 -8
  60. package/build/components/block-toolbar/index.js.map +1 -1
  61. package/build/components/block-tools/block-contextual-toolbar.js +3 -2
  62. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  63. package/build/components/block-tools/block-selection-button.js +13 -5
  64. package/build/components/block-tools/block-selection-button.js.map +1 -1
  65. package/build/components/block-tools/index.js +33 -15
  66. package/build/components/block-tools/index.js.map +1 -1
  67. package/build/components/block-tools/insertion-point.js +4 -9
  68. package/build/components/block-tools/insertion-point.js.map +1 -1
  69. package/build/components/block-tools/selected-block-popover.js +9 -8
  70. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  71. package/build/components/block-tools/use-block-toolbar-popover-props.js +13 -8
  72. package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  73. package/build/components/block-tools/zoom-out-mode-inserters.js +71 -0
  74. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -0
  75. package/build/components/block-vertical-alignment-control/ui.js +5 -2
  76. package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
  77. package/build/components/colors-gradients/dropdown.js +1 -1
  78. package/build/components/colors-gradients/dropdown.js.map +1 -1
  79. package/build/components/iframe/index.js +31 -4
  80. package/build/components/iframe/index.js.map +1 -1
  81. package/build/components/inner-blocks/default-block-appender.js +1 -7
  82. package/build/components/inner-blocks/default-block-appender.js.map +1 -1
  83. package/build/components/inner-blocks/index.js +2 -2
  84. package/build/components/inner-blocks/index.js.map +1 -1
  85. package/build/components/inner-blocks/use-inner-block-template-sync.js +5 -5
  86. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  87. package/build/components/inner-blocks/use-nested-settings-update.js +1 -1
  88. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  89. package/build/components/inserter/index.js +3 -6
  90. package/build/components/inserter/index.js.map +1 -1
  91. package/build/components/inserter/library.js +14 -3
  92. package/build/components/inserter/library.js.map +1 -1
  93. package/build/components/inserter/menu.js +21 -8
  94. package/build/components/inserter/menu.js.map +1 -1
  95. package/build/components/inserter/preview-panel.js +1 -1
  96. package/build/components/inserter/preview-panel.js.map +1 -1
  97. package/build/components/inserter/tabs.js +11 -4
  98. package/build/components/inserter/tabs.js.map +1 -1
  99. package/build/components/link-control/link-preview.js +1 -1
  100. package/build/components/link-control/link-preview.js.map +1 -1
  101. package/build/components/link-control/search-input.js +6 -3
  102. package/build/components/link-control/search-input.js.map +1 -1
  103. package/build/components/link-control/search-item.js +36 -5
  104. package/build/components/link-control/search-item.js.map +1 -1
  105. package/build/components/list-view/block.js +23 -11
  106. package/build/components/list-view/block.js.map +1 -1
  107. package/build/components/list-view/branch.js +19 -2
  108. package/build/components/list-view/branch.js.map +1 -1
  109. package/build/components/list-view/index.js +8 -4
  110. package/build/components/list-view/index.js.map +1 -1
  111. package/build/components/list-view/use-block-selection.js +0 -1
  112. package/build/components/list-view/use-block-selection.js.map +1 -1
  113. package/build/components/provider/use-block-sync.js +1 -7
  114. package/build/components/provider/use-block-sync.js.map +1 -1
  115. package/build/components/publish-date-time-picker/index.js +1 -1
  116. package/build/components/publish-date-time-picker/index.js.map +1 -1
  117. package/build/components/rich-text/index.js +27 -19
  118. package/build/components/rich-text/index.js.map +1 -1
  119. package/build/components/rich-text/index.native.js +11 -20
  120. package/build/components/rich-text/index.native.js.map +1 -1
  121. package/build/components/text-decoration-control/index.js +1 -1
  122. package/build/components/text-decoration-control/index.js.map +1 -1
  123. package/build/components/text-transform-control/index.js +1 -1
  124. package/build/components/text-transform-control/index.js.map +1 -1
  125. package/build/components/tool-selector/index.js +6 -11
  126. package/build/components/tool-selector/index.js.map +1 -1
  127. package/build/components/url-popover/index.js +1 -1
  128. package/build/components/url-popover/index.js.map +1 -1
  129. package/build/components/use-block-drop-zone/index.js +7 -4
  130. package/build/components/use-block-drop-zone/index.js.map +1 -1
  131. package/build/components/use-moving-animation/index.js +9 -28
  132. package/build/components/use-moving-animation/index.js.map +1 -1
  133. package/build/components/writing-flow/use-select-all.js +1 -7
  134. package/build/components/writing-flow/use-select-all.js.map +1 -1
  135. package/build/hooks/align.js +14 -2
  136. package/build/hooks/align.js.map +1 -1
  137. package/build/hooks/color-panel.js +2 -1
  138. package/build/hooks/color-panel.js.map +1 -1
  139. package/build/hooks/content-lock-ui.js +145 -0
  140. package/build/hooks/content-lock-ui.js.map +1 -0
  141. package/build/hooks/duotone.js +8 -1
  142. package/build/hooks/duotone.js.map +1 -1
  143. package/build/hooks/index.js +14 -0
  144. package/build/hooks/index.js.map +1 -1
  145. package/build/hooks/layout.js +11 -9
  146. package/build/hooks/layout.js.map +1 -1
  147. package/build/hooks/metadata-name.js +55 -0
  148. package/build/hooks/metadata-name.js.map +1 -0
  149. package/build/hooks/metadata.js +65 -0
  150. package/build/hooks/metadata.js.map +1 -0
  151. package/build/hooks/use-typography-props.js +51 -0
  152. package/build/hooks/use-typography-props.js.map +1 -0
  153. package/build/hooks/utils.js +3 -1
  154. package/build/hooks/utils.js.map +1 -1
  155. package/build/index.js +7 -0
  156. package/build/index.js.map +1 -1
  157. package/build/layouts/constrained.js +59 -20
  158. package/build/layouts/constrained.js.map +1 -1
  159. package/build/store/actions.js +65 -21
  160. package/build/store/actions.js.map +1 -1
  161. package/build/store/reducer.js +39 -18
  162. package/build/store/reducer.js.map +1 -1
  163. package/build/store/selectors.js +95 -9
  164. package/build/store/selectors.js.map +1 -1
  165. package/build/utils/parse-css-unit-to-px.js +1 -1
  166. package/build/utils/parse-css-unit-to-px.js.map +1 -1
  167. package/build-module/components/alignment-control/ui.js +6 -5
  168. package/build-module/components/alignment-control/ui.js.map +1 -1
  169. package/build-module/components/block-actions/index.js +5 -8
  170. package/build-module/components/block-actions/index.js.map +1 -1
  171. package/build-module/components/block-alignment-control/ui.js +5 -5
  172. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  173. package/build-module/components/block-content-overlay/index.js +2 -4
  174. package/build-module/components/block-content-overlay/index.js.map +1 -1
  175. package/build-module/components/block-draggable/draggable-chip.js +2 -1
  176. package/build-module/components/block-draggable/draggable-chip.js.map +1 -1
  177. package/build-module/components/block-edit/edit.js +1 -1
  178. package/build-module/components/block-edit/edit.js.map +1 -1
  179. package/build-module/components/block-inspector/index.js +127 -19
  180. package/build-module/components/block-inspector/index.js.map +1 -1
  181. package/build-module/components/block-list/block.js +41 -9
  182. package/build-module/components/block-list/block.js.map +1 -1
  183. package/build-module/components/block-list/index.js +4 -4
  184. package/build-module/components/block-list/index.js.map +1 -1
  185. package/build-module/components/block-list/use-block-props/index.js +13 -11
  186. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  187. package/build-module/components/block-list/use-block-props/use-block-class-names.js +3 -2
  188. package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  189. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +3 -8
  190. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  191. package/build-module/components/block-list/use-block-props/use-is-hovered.js +1 -2
  192. package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  193. package/build-module/components/block-list/use-in-between-inserter.js +7 -12
  194. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  195. package/build-module/components/block-list-appender/index.js +20 -20
  196. package/build-module/components/block-list-appender/index.js.map +1 -1
  197. package/build-module/components/block-list-appender/index.native.js +1 -6
  198. package/build-module/components/block-list-appender/index.native.js.map +1 -1
  199. package/build-module/components/block-lock/use-block-lock.js +3 -1
  200. package/build-module/components/block-lock/use-block-lock.js.map +1 -1
  201. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +20 -9
  202. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  203. package/build-module/components/block-mover/button.js +4 -5
  204. package/build-module/components/block-mover/button.js.map +1 -1
  205. package/build-module/components/block-mover/index.js +4 -5
  206. package/build-module/components/block-mover/index.js.map +1 -1
  207. package/build-module/components/block-mover/index.native.js +24 -7
  208. package/build-module/components/block-mover/index.native.js.map +1 -1
  209. package/build-module/components/block-popover/inbetween.js +59 -17
  210. package/build-module/components/block-popover/inbetween.js.map +1 -1
  211. package/build-module/components/block-popover/index.js +3 -2
  212. package/build-module/components/block-popover/index.js.map +1 -1
  213. package/build-module/components/block-preview/auto.js +4 -2
  214. package/build-module/components/block-preview/auto.js.map +1 -1
  215. package/build-module/components/block-settings-menu/block-settings-dropdown.js +3 -1
  216. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  217. package/build-module/components/block-settings-menu-controls/index.js +3 -1
  218. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  219. package/build-module/components/block-styles/preview-panel.js +6 -1
  220. package/build-module/components/block-styles/preview-panel.js.map +1 -1
  221. package/build-module/components/block-switcher/block-transformations-menu.js +115 -27
  222. package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
  223. package/build-module/components/block-toolbar/index.js +9 -8
  224. package/build-module/components/block-toolbar/index.js.map +1 -1
  225. package/build-module/components/block-tools/block-contextual-toolbar.js +3 -2
  226. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  227. package/build-module/components/block-tools/block-selection-button.js +12 -5
  228. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  229. package/build-module/components/block-tools/index.js +30 -15
  230. package/build-module/components/block-tools/index.js.map +1 -1
  231. package/build-module/components/block-tools/insertion-point.js +4 -9
  232. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  233. package/build-module/components/block-tools/selected-block-popover.js +9 -8
  234. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  235. package/build-module/components/block-tools/use-block-toolbar-popover-props.js +13 -8
  236. package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -1
  237. package/build-module/components/block-tools/zoom-out-mode-inserters.js +59 -0
  238. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -0
  239. package/build-module/components/block-vertical-alignment-control/ui.js +5 -2
  240. package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
  241. package/build-module/components/colors-gradients/dropdown.js +1 -1
  242. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  243. package/build-module/components/iframe/index.js +32 -5
  244. package/build-module/components/iframe/index.js.map +1 -1
  245. package/build-module/components/inner-blocks/default-block-appender.js +1 -6
  246. package/build-module/components/inner-blocks/default-block-appender.js.map +1 -1
  247. package/build-module/components/inner-blocks/index.js +2 -2
  248. package/build-module/components/inner-blocks/index.js.map +1 -1
  249. package/build-module/components/inner-blocks/use-inner-block-template-sync.js +5 -5
  250. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  251. package/build-module/components/inner-blocks/use-nested-settings-update.js +1 -1
  252. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  253. package/build-module/components/inserter/index.js +3 -6
  254. package/build-module/components/inserter/index.js.map +1 -1
  255. package/build-module/components/inserter/library.js +14 -3
  256. package/build-module/components/inserter/library.js.map +1 -1
  257. package/build-module/components/inserter/menu.js +20 -8
  258. package/build-module/components/inserter/menu.js.map +1 -1
  259. package/build-module/components/inserter/preview-panel.js +1 -1
  260. package/build-module/components/inserter/preview-panel.js.map +1 -1
  261. package/build-module/components/inserter/tabs.js +11 -4
  262. package/build-module/components/inserter/tabs.js.map +1 -1
  263. package/build-module/components/link-control/link-preview.js +1 -1
  264. package/build-module/components/link-control/link-preview.js.map +1 -1
  265. package/build-module/components/link-control/search-input.js +6 -2
  266. package/build-module/components/link-control/search-input.js.map +1 -1
  267. package/build-module/components/link-control/search-item.js +37 -6
  268. package/build-module/components/link-control/search-item.js.map +1 -1
  269. package/build-module/components/list-view/block.js +23 -11
  270. package/build-module/components/list-view/block.js.map +1 -1
  271. package/build-module/components/list-view/branch.js +19 -3
  272. package/build-module/components/list-view/branch.js.map +1 -1
  273. package/build-module/components/list-view/index.js +8 -4
  274. package/build-module/components/list-view/index.js.map +1 -1
  275. package/build-module/components/list-view/use-block-selection.js +0 -1
  276. package/build-module/components/list-view/use-block-selection.js.map +1 -1
  277. package/build-module/components/provider/use-block-sync.js +1 -6
  278. package/build-module/components/provider/use-block-sync.js.map +1 -1
  279. package/build-module/components/publish-date-time-picker/index.js +1 -1
  280. package/build-module/components/publish-date-time-picker/index.js.map +1 -1
  281. package/build-module/components/rich-text/index.js +27 -18
  282. package/build-module/components/rich-text/index.js.map +1 -1
  283. package/build-module/components/rich-text/index.native.js +11 -18
  284. package/build-module/components/rich-text/index.native.js.map +1 -1
  285. package/build-module/components/text-decoration-control/index.js +1 -1
  286. package/build-module/components/text-decoration-control/index.js.map +1 -1
  287. package/build-module/components/text-transform-control/index.js +1 -1
  288. package/build-module/components/text-transform-control/index.js.map +1 -1
  289. package/build-module/components/tool-selector/index.js +6 -11
  290. package/build-module/components/tool-selector/index.js.map +1 -1
  291. package/build-module/components/url-popover/index.js +1 -1
  292. package/build-module/components/url-popover/index.js.map +1 -1
  293. package/build-module/components/use-block-drop-zone/index.js +7 -4
  294. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  295. package/build-module/components/use-moving-animation/index.js +9 -28
  296. package/build-module/components/use-moving-animation/index.js.map +1 -1
  297. package/build-module/components/writing-flow/use-select-all.js +1 -6
  298. package/build-module/components/writing-flow/use-select-all.js.map +1 -1
  299. package/build-module/hooks/align.js +12 -2
  300. package/build-module/hooks/align.js.map +1 -1
  301. package/build-module/hooks/color-panel.js +2 -1
  302. package/build-module/hooks/color-panel.js.map +1 -1
  303. package/build-module/hooks/content-lock-ui.js +128 -0
  304. package/build-module/hooks/content-lock-ui.js.map +1 -0
  305. package/build-module/hooks/duotone.js +6 -1
  306. package/build-module/hooks/duotone.js.map +1 -1
  307. package/build-module/hooks/index.js +4 -0
  308. package/build-module/hooks/index.js.map +1 -1
  309. package/build-module/hooks/layout.js +11 -9
  310. package/build-module/hooks/layout.js.map +1 -1
  311. package/build-module/hooks/metadata-name.js +45 -0
  312. package/build-module/hooks/metadata-name.js.map +1 -0
  313. package/build-module/hooks/metadata.js +50 -0
  314. package/build-module/hooks/metadata.js.map +1 -0
  315. package/build-module/hooks/use-typography-props.js +38 -0
  316. package/build-module/hooks/use-typography-props.js.map +1 -0
  317. package/build-module/hooks/utils.js +4 -2
  318. package/build-module/hooks/utils.js.map +1 -1
  319. package/build-module/index.js +1 -1
  320. package/build-module/index.js.map +1 -1
  321. package/build-module/layouts/constrained.js +61 -22
  322. package/build-module/layouts/constrained.js.map +1 -1
  323. package/build-module/store/actions.js +58 -20
  324. package/build-module/store/actions.js.map +1 -1
  325. package/build-module/store/reducer.js +37 -18
  326. package/build-module/store/reducer.js.map +1 -1
  327. package/build-module/store/selectors.js +80 -9
  328. package/build-module/store/selectors.js.map +1 -1
  329. package/build-module/utils/parse-css-unit-to-px.js +1 -1
  330. package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
  331. package/build-style/style-rtl.css +95 -45
  332. package/build-style/style.css +95 -45
  333. package/package.json +28 -28
  334. package/src/components/alignment-control/test/__snapshots__/index.js.snap +137 -108
  335. package/src/components/alignment-control/test/index.js +124 -33
  336. package/src/components/alignment-control/ui.js +8 -3
  337. package/src/components/block-actions/index.js +9 -8
  338. package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +108 -65
  339. package/src/components/block-alignment-control/test/index.js +95 -31
  340. package/src/components/block-alignment-control/ui.js +2 -2
  341. package/src/components/block-compare/test/__snapshots__/block-view.js.snap +28 -26
  342. package/src/components/block-compare/test/block-view.js +3 -3
  343. package/src/components/block-content-overlay/index.js +2 -6
  344. package/src/components/block-content-overlay/style.scss +24 -3
  345. package/src/components/block-draggable/draggable-chip.js +4 -1
  346. package/src/components/block-edit/edit.js +5 -1
  347. package/src/components/block-edit/test/edit.js +23 -21
  348. package/src/components/block-icon/test/__snapshots__/index.js.snap +22 -0
  349. package/src/components/block-icon/test/index.js +31 -16
  350. package/src/components/block-inspector/index.js +126 -12
  351. package/src/components/block-inspector/style.scss +7 -1
  352. package/src/components/block-list/block.js +53 -13
  353. package/src/components/block-list/index.js +4 -4
  354. package/src/components/block-list/style.scss +39 -12
  355. package/src/components/block-list/test/block-list-context.native.js +11 -13
  356. package/src/components/block-list/use-block-props/index.js +10 -10
  357. package/src/components/block-list/use-block-props/use-block-class-names.js +4 -1
  358. package/src/components/block-list/use-block-props/use-focus-first-element.js +3 -8
  359. package/src/components/block-list/use-block-props/use-is-hovered.js +2 -2
  360. package/src/components/block-list/use-in-between-inserter.js +11 -13
  361. package/src/components/block-list-appender/index.js +27 -18
  362. package/src/components/block-list-appender/index.native.js +3 -6
  363. package/src/components/block-lock/use-block-lock.js +2 -0
  364. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +15 -9
  365. package/src/components/block-mover/button.js +6 -5
  366. package/src/components/block-mover/index.js +8 -7
  367. package/src/components/block-mover/index.native.js +20 -13
  368. package/src/components/block-popover/inbetween.js +85 -21
  369. package/src/components/block-popover/index.js +3 -2
  370. package/src/components/block-popover/style.scss +3 -4
  371. package/src/components/block-preview/auto.js +4 -2
  372. package/src/components/block-settings-menu/block-settings-dropdown.js +4 -0
  373. package/src/components/block-settings-menu-controls/README.md +9 -0
  374. package/src/components/block-settings-menu-controls/index.js +13 -2
  375. package/src/components/block-styles/preview-panel.js +3 -0
  376. package/src/components/block-switcher/block-transformations-menu.js +127 -33
  377. package/src/components/block-switcher/style.scss +4 -2
  378. package/src/components/block-title/test/index.js +28 -25
  379. package/src/components/block-toolbar/index.js +27 -17
  380. package/src/components/block-tools/block-contextual-toolbar.js +10 -3
  381. package/src/components/block-tools/block-selection-button.js +35 -16
  382. package/src/components/block-tools/index.js +40 -24
  383. package/src/components/block-tools/insertion-point.js +3 -7
  384. package/src/components/block-tools/selected-block-popover.js +9 -7
  385. package/src/components/block-tools/style.scss +5 -0
  386. package/src/components/block-tools/use-block-toolbar-popover-props.js +19 -6
  387. package/src/components/block-tools/zoom-out-mode-inserters.js +57 -0
  388. package/src/components/block-vertical-alignment-control/test/__snapshots__/index.js.snap +91 -51
  389. package/src/components/block-vertical-alignment-control/test/index.js +92 -23
  390. package/src/components/block-vertical-alignment-control/ui.js +3 -2
  391. package/src/components/color-palette/test/__snapshots__/control.js.snap +3 -12
  392. package/src/components/colors/test/with-colors.js +37 -12
  393. package/src/components/colors-gradients/dropdown.js +1 -1
  394. package/src/components/contrast-checker/test/index.js +135 -116
  395. package/src/components/default-block-appender/test/__snapshots__/index.js.snap +39 -57
  396. package/src/components/default-block-appender/test/index.js +32 -18
  397. package/src/components/font-sizes/README.MD +9 -0
  398. package/src/components/iframe/index.js +64 -5
  399. package/src/components/inner-blocks/README.md +2 -1
  400. package/src/components/inner-blocks/default-block-appender.js +1 -6
  401. package/src/components/inner-blocks/index.js +3 -2
  402. package/src/components/inner-blocks/use-inner-block-template-sync.js +9 -5
  403. package/src/components/inner-blocks/use-nested-settings-update.js +3 -1
  404. package/src/components/inserter/index.js +2 -8
  405. package/src/components/inserter/library.js +11 -5
  406. package/src/components/inserter/menu.js +42 -29
  407. package/src/components/inserter/preview-panel.js +1 -1
  408. package/src/components/inserter/stories/fixtures.js +44 -0
  409. package/src/components/inserter/stories/index.js +90 -0
  410. package/src/components/inserter/style.scss +21 -27
  411. package/src/components/inserter/tabs.js +8 -4
  412. package/src/components/link-control/link-preview.js +5 -3
  413. package/src/components/link-control/search-input.js +2 -2
  414. package/src/components/link-control/search-item.js +39 -7
  415. package/src/components/list-view/block.js +29 -10
  416. package/src/components/list-view/branch.js +27 -4
  417. package/src/components/list-view/index.js +8 -3
  418. package/src/components/list-view/use-block-selection.js +0 -1
  419. package/src/components/media-placeholder/test/index.js +2 -2
  420. package/src/components/media-replace-flow/README.md +1 -1
  421. package/src/components/provider/use-block-sync.js +3 -6
  422. package/src/components/publish-date-time-picker/index.js +1 -1
  423. package/src/components/rich-text/index.js +24 -35
  424. package/src/components/rich-text/index.native.js +8 -21
  425. package/src/components/text-decoration-control/index.js +1 -1
  426. package/src/components/text-transform-control/index.js +1 -1
  427. package/src/components/tool-selector/index.js +9 -11
  428. package/src/components/url-input/test/button.js +145 -71
  429. package/src/components/url-popover/index.js +1 -1
  430. package/src/components/url-popover/test/__snapshots__/index.js.snap +108 -80
  431. package/src/components/url-popover/test/index.js +14 -12
  432. package/src/components/use-block-drop-zone/index.js +15 -4
  433. package/src/components/use-moving-animation/index.js +9 -24
  434. package/src/components/warning/test/__snapshots__/index.js.snap +11 -14
  435. package/src/components/warning/test/index.js +32 -29
  436. package/src/components/writing-flow/use-select-all.js +4 -6
  437. package/src/hooks/align.js +22 -13
  438. package/src/hooks/color-panel.js +2 -1
  439. package/src/hooks/content-lock-ui.js +161 -0
  440. package/src/hooks/duotone.js +13 -1
  441. package/src/hooks/index.js +4 -0
  442. package/src/hooks/layout.js +25 -19
  443. package/src/hooks/layout.scss +7 -1
  444. package/src/hooks/metadata-name.js +48 -0
  445. package/src/hooks/metadata.js +64 -0
  446. package/src/hooks/test/use-typography-props.js +28 -0
  447. package/src/hooks/use-typography-props.js +41 -0
  448. package/src/hooks/utils.js +2 -11
  449. package/src/index.js +1 -0
  450. package/src/layouts/constrained.js +73 -24
  451. package/src/store/actions.js +45 -4
  452. package/src/store/reducer.js +33 -21
  453. package/src/store/selectors.js +98 -19
  454. package/src/store/test/reducer.js +8 -5
  455. package/src/utils/parse-css-unit-to-px.js +1 -1
  456. package/src/components/colors/test/__snapshots__/with-colors.js.snap +0 -23
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-mover/button.js"],"names":["classnames","castArray","first","last","getBlockType","Button","VisuallyHidden","useInstanceId","useSelect","useDispatch","forwardRef","__","isRTL","chevronLeft","chevronRight","chevronUp","chevronDown","getBlockMoverDescription","store","blockEditorStore","getArrowIcon","direction","orientation","getMovementDirectionLabel","moveDirection","BlockMoverButton","ref","clientIds","moverOrientation","props","instanceId","blocksCount","length","blockType","isDisabled","rootClientId","isFirst","isLast","firstIndex","select","getBlockIndex","getBlockRootClientId","getBlockOrder","getBlock","getBlockListSettings","normalizedClientIds","firstClientId","blockRootClientId","firstBlockIndex","lastBlockIndex","blockOrder","block","isFirstBlock","isLastBlock","blockListOrientation","name","moveBlocksDown","moveBlocksUp","moverFunction","onClick","event","descriptionId","title","BlockMoverUpButton","BlockMoverDownButton"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { castArray, first, last } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { getBlockType } from '@wordpress/blocks';\nimport { Button, VisuallyHidden } from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\nimport { __, isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tchevronLeft,\n\tchevronRight,\n\tchevronUp,\n\tchevronDown,\n} from '@wordpress/icons';\nimport { getBlockMoverDescription } from './mover-description';\nimport { store as blockEditorStore } from '../../store';\n\nconst getArrowIcon = ( direction, orientation ) => {\n\tif ( direction === 'up' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? chevronRight : chevronLeft;\n\t\t}\n\t\treturn chevronUp;\n\t} else if ( direction === 'down' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? chevronLeft : chevronRight;\n\t\t}\n\t\treturn chevronDown;\n\t}\n\treturn null;\n};\n\nconst getMovementDirectionLabel = ( moveDirection, orientation ) => {\n\tif ( moveDirection === 'up' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? __( 'Move right' ) : __( 'Move left' );\n\t\t}\n\t\treturn __( 'Move up' );\n\t} else if ( moveDirection === 'down' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? __( 'Move left' ) : __( 'Move right' );\n\t\t}\n\t\treturn __( 'Move down' );\n\t}\n\treturn null;\n};\n\nconst BlockMoverButton = forwardRef(\n\t(\n\t\t{ clientIds, direction, orientation: moverOrientation, ...props },\n\t\tref\n\t) => {\n\t\tconst instanceId = useInstanceId( BlockMoverButton );\n\t\tconst blocksCount = castArray( clientIds ).length;\n\n\t\tconst {\n\t\t\tblockType,\n\t\t\tisDisabled,\n\t\t\trootClientId,\n\t\t\tisFirst,\n\t\t\tisLast,\n\t\t\tfirstIndex,\n\t\t\torientation = 'vertical',\n\t\t} = useSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetBlockIndex,\n\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\tgetBlockOrder,\n\t\t\t\t\tgetBlock,\n\t\t\t\t\tgetBlockListSettings,\n\t\t\t\t} = select( blockEditorStore );\n\t\t\t\tconst normalizedClientIds = castArray( clientIds );\n\t\t\t\tconst firstClientId = first( normalizedClientIds );\n\t\t\t\tconst blockRootClientId = getBlockRootClientId( firstClientId );\n\t\t\t\tconst firstBlockIndex = getBlockIndex( firstClientId );\n\t\t\t\tconst lastBlockIndex = getBlockIndex(\n\t\t\t\t\tlast( normalizedClientIds )\n\t\t\t\t);\n\t\t\t\tconst blockOrder = getBlockOrder( blockRootClientId );\n\t\t\t\tconst block = getBlock( firstClientId );\n\t\t\t\tconst isFirstBlock = firstBlockIndex === 0;\n\t\t\t\tconst isLastBlock = lastBlockIndex === blockOrder.length - 1;\n\t\t\t\tconst { orientation: blockListOrientation } =\n\t\t\t\t\tgetBlockListSettings( blockRootClientId ) || {};\n\n\t\t\t\treturn {\n\t\t\t\t\tblockType: block ? getBlockType( block.name ) : null,\n\t\t\t\t\tisDisabled: direction === 'up' ? isFirstBlock : isLastBlock,\n\t\t\t\t\trootClientId: blockRootClientId,\n\t\t\t\t\tfirstIndex: firstBlockIndex,\n\t\t\t\t\tisFirst: isFirstBlock,\n\t\t\t\t\tisLast: isLastBlock,\n\t\t\t\t\torientation: moverOrientation || blockListOrientation,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientIds, direction ]\n\t\t);\n\n\t\tconst { moveBlocksDown, moveBlocksUp } =\n\t\t\tuseDispatch( blockEditorStore );\n\t\tconst moverFunction =\n\t\t\tdirection === 'up' ? moveBlocksUp : moveBlocksDown;\n\n\t\tconst onClick = ( event ) => {\n\t\t\tmoverFunction( clientIds, rootClientId );\n\t\t\tif ( props.onClick ) {\n\t\t\t\tprops.onClick( event );\n\t\t\t}\n\t\t};\n\n\t\tconst descriptionId = `block-editor-block-mover-button__description-${ instanceId }`;\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'block-editor-block-mover-button',\n\t\t\t\t\t\t`is-${ direction }-button`\n\t\t\t\t\t) }\n\t\t\t\t\ticon={ getArrowIcon( direction, orientation ) }\n\t\t\t\t\tlabel={ getMovementDirectionLabel(\n\t\t\t\t\t\tdirection,\n\t\t\t\t\t\torientation\n\t\t\t\t\t) }\n\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t\t{ ...props }\n\t\t\t\t\tonClick={ isDisabled ? null : onClick }\n\t\t\t\t\tdisabled={ isDisabled }\n\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t/>\n\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t{ getBlockMoverDescription(\n\t\t\t\t\t\tblocksCount,\n\t\t\t\t\t\tblockType && blockType.title,\n\t\t\t\t\t\tfirstIndex,\n\t\t\t\t\t\tisFirst,\n\t\t\t\t\t\tisLast,\n\t\t\t\t\t\tdirection === 'up' ? -1 : 1,\n\t\t\t\t\t\torientation\n\t\t\t\t\t) }\n\t\t\t\t</VisuallyHidden>\n\t\t\t</>\n\t\t);\n\t}\n);\n\nexport const BlockMoverUpButton = forwardRef( ( props, ref ) => {\n\treturn <BlockMoverButton direction=\"up\" ref={ ref } { ...props } />;\n} );\n\nexport const BlockMoverDownButton = forwardRef( ( props, ref ) => {\n\treturn <BlockMoverButton direction=\"down\" ref={ ref } { ...props } />;\n} );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-mover/button.js"],"names":["classnames","getBlockType","Button","VisuallyHidden","useInstanceId","useSelect","useDispatch","forwardRef","__","isRTL","chevronLeft","chevronRight","chevronUp","chevronDown","getBlockMoverDescription","store","blockEditorStore","getArrowIcon","direction","orientation","getMovementDirectionLabel","moveDirection","BlockMoverButton","ref","clientIds","moverOrientation","props","instanceId","normalizedClientIds","Array","isArray","blocksCount","length","blockType","isDisabled","rootClientId","isFirst","isLast","firstIndex","select","getBlockIndex","getBlockRootClientId","getBlockOrder","getBlock","getBlockListSettings","firstClientId","blockRootClientId","firstBlockIndex","lastBlockIndex","blockOrder","block","isFirstBlock","isLastBlock","blockListOrientation","name","moveBlocksDown","moveBlocksUp","moverFunction","onClick","event","descriptionId","title","BlockMoverUpButton","BlockMoverDownButton"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { getBlockType } from '@wordpress/blocks';\nimport { Button, VisuallyHidden } from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\nimport { __, isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport {\n\tchevronLeft,\n\tchevronRight,\n\tchevronUp,\n\tchevronDown,\n} from '@wordpress/icons';\nimport { getBlockMoverDescription } from './mover-description';\nimport { store as blockEditorStore } from '../../store';\n\nconst getArrowIcon = ( direction, orientation ) => {\n\tif ( direction === 'up' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? chevronRight : chevronLeft;\n\t\t}\n\t\treturn chevronUp;\n\t} else if ( direction === 'down' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? chevronLeft : chevronRight;\n\t\t}\n\t\treturn chevronDown;\n\t}\n\treturn null;\n};\n\nconst getMovementDirectionLabel = ( moveDirection, orientation ) => {\n\tif ( moveDirection === 'up' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? __( 'Move right' ) : __( 'Move left' );\n\t\t}\n\t\treturn __( 'Move up' );\n\t} else if ( moveDirection === 'down' ) {\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\treturn isRTL() ? __( 'Move left' ) : __( 'Move right' );\n\t\t}\n\t\treturn __( 'Move down' );\n\t}\n\treturn null;\n};\n\nconst BlockMoverButton = forwardRef(\n\t(\n\t\t{ clientIds, direction, orientation: moverOrientation, ...props },\n\t\tref\n\t) => {\n\t\tconst instanceId = useInstanceId( BlockMoverButton );\n\t\tconst normalizedClientIds = Array.isArray( clientIds )\n\t\t\t? clientIds\n\t\t\t: [ clientIds ];\n\t\tconst blocksCount = normalizedClientIds.length;\n\n\t\tconst {\n\t\t\tblockType,\n\t\t\tisDisabled,\n\t\t\trootClientId,\n\t\t\tisFirst,\n\t\t\tisLast,\n\t\t\tfirstIndex,\n\t\t\torientation = 'vertical',\n\t\t} = useSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetBlockIndex,\n\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\tgetBlockOrder,\n\t\t\t\t\tgetBlock,\n\t\t\t\t\tgetBlockListSettings,\n\t\t\t\t} = select( blockEditorStore );\n\t\t\t\tconst firstClientId = normalizedClientIds[ 0 ];\n\t\t\t\tconst blockRootClientId = getBlockRootClientId( firstClientId );\n\t\t\t\tconst firstBlockIndex = getBlockIndex( firstClientId );\n\t\t\t\tconst lastBlockIndex = getBlockIndex(\n\t\t\t\t\tnormalizedClientIds[ normalizedClientIds.length - 1 ]\n\t\t\t\t);\n\t\t\t\tconst blockOrder = getBlockOrder( blockRootClientId );\n\t\t\t\tconst block = getBlock( firstClientId );\n\t\t\t\tconst isFirstBlock = firstBlockIndex === 0;\n\t\t\t\tconst isLastBlock = lastBlockIndex === blockOrder.length - 1;\n\t\t\t\tconst { orientation: blockListOrientation } =\n\t\t\t\t\tgetBlockListSettings( blockRootClientId ) || {};\n\n\t\t\t\treturn {\n\t\t\t\t\tblockType: block ? getBlockType( block.name ) : null,\n\t\t\t\t\tisDisabled: direction === 'up' ? isFirstBlock : isLastBlock,\n\t\t\t\t\trootClientId: blockRootClientId,\n\t\t\t\t\tfirstIndex: firstBlockIndex,\n\t\t\t\t\tisFirst: isFirstBlock,\n\t\t\t\t\tisLast: isLastBlock,\n\t\t\t\t\torientation: moverOrientation || blockListOrientation,\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientIds, direction ]\n\t\t);\n\n\t\tconst { moveBlocksDown, moveBlocksUp } =\n\t\t\tuseDispatch( blockEditorStore );\n\t\tconst moverFunction =\n\t\t\tdirection === 'up' ? moveBlocksUp : moveBlocksDown;\n\n\t\tconst onClick = ( event ) => {\n\t\t\tmoverFunction( clientIds, rootClientId );\n\t\t\tif ( props.onClick ) {\n\t\t\t\tprops.onClick( event );\n\t\t\t}\n\t\t};\n\n\t\tconst descriptionId = `block-editor-block-mover-button__description-${ instanceId }`;\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'block-editor-block-mover-button',\n\t\t\t\t\t\t`is-${ direction }-button`\n\t\t\t\t\t) }\n\t\t\t\t\ticon={ getArrowIcon( direction, orientation ) }\n\t\t\t\t\tlabel={ getMovementDirectionLabel(\n\t\t\t\t\t\tdirection,\n\t\t\t\t\t\torientation\n\t\t\t\t\t) }\n\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t\t{ ...props }\n\t\t\t\t\tonClick={ isDisabled ? null : onClick }\n\t\t\t\t\tdisabled={ isDisabled }\n\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t/>\n\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t{ getBlockMoverDescription(\n\t\t\t\t\t\tblocksCount,\n\t\t\t\t\t\tblockType && blockType.title,\n\t\t\t\t\t\tfirstIndex,\n\t\t\t\t\t\tisFirst,\n\t\t\t\t\t\tisLast,\n\t\t\t\t\t\tdirection === 'up' ? -1 : 1,\n\t\t\t\t\t\torientation\n\t\t\t\t\t) }\n\t\t\t\t</VisuallyHidden>\n\t\t\t</>\n\t\t);\n\t}\n);\n\nexport const BlockMoverUpButton = forwardRef( ( props, ref ) => {\n\treturn <BlockMoverButton direction=\"up\" ref={ ref } { ...props } />;\n} );\n\nexport const BlockMoverDownButton = forwardRef( ( props, ref ) => {\n\treturn <BlockMoverButton direction=\"down\" ref={ ref } { ...props } />;\n} );\n"]}
@@ -4,7 +4,6 @@ import { createElement } from "@wordpress/element";
4
4
  /**
5
5
  * External dependencies
6
6
  */
7
- import { first, last, castArray } from 'lodash';
8
7
  import classnames from 'classnames';
9
8
  /**
10
9
  * WordPress dependencies
@@ -43,13 +42,13 @@ function BlockMover(_ref) {
43
42
  getBlockOrder,
44
43
  getBlockRootClientId
45
44
  } = select(blockEditorStore);
46
- const normalizedClientIds = castArray(clientIds);
47
- const firstClientId = first(normalizedClientIds);
45
+ const normalizedClientIds = Array.isArray(clientIds) ? clientIds : [clientIds];
46
+ const firstClientId = normalizedClientIds[0];
48
47
 
49
- const _rootClientId = getBlockRootClientId(first(normalizedClientIds));
48
+ const _rootClientId = getBlockRootClientId(firstClientId);
50
49
 
51
50
  const firstIndex = getBlockIndex(firstClientId);
52
- const lastIndex = getBlockIndex(last(normalizedClientIds));
51
+ const lastIndex = getBlockIndex(normalizedClientIds[normalizedClientIds.length - 1]);
53
52
  const blockOrder = getBlockOrder(_rootClientId);
54
53
  return {
55
54
  canMove: canMoveBlocks(clientIds, _rootClientId),
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-mover/index.js"],"names":["first","last","castArray","classnames","dragHandle","ToolbarGroup","ToolbarItem","Button","useSelect","__","BlockDraggable","BlockMoverUpButton","BlockMoverDownButton","store","blockEditorStore","BlockMover","clientIds","hideDragHandle","canMove","rootClientId","isFirst","isLast","orientation","select","getBlockIndex","getBlockListSettings","canMoveBlocks","getBlockOrder","getBlockRootClientId","normalizedClientIds","firstClientId","_rootClientId","firstIndex","lastIndex","blockOrder","length","dragHandleLabel","draggableProps","itemProps"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { first, last, castArray } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\n\nimport { dragHandle } from '@wordpress/icons';\nimport { ToolbarGroup, ToolbarItem, Button } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockDraggable from '../block-draggable';\nimport { BlockMoverUpButton, BlockMoverDownButton } from './button';\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockMover( { clientIds, hideDragHandle } ) {\n\tconst { canMove, rootClientId, isFirst, isLast, orientation } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockListSettings,\n\t\t\t\tcanMoveBlocks,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst normalizedClientIds = castArray( clientIds );\n\t\t\tconst firstClientId = first( normalizedClientIds );\n\t\t\tconst _rootClientId = getBlockRootClientId(\n\t\t\t\tfirst( normalizedClientIds )\n\t\t\t);\n\t\t\tconst firstIndex = getBlockIndex( firstClientId );\n\t\t\tconst lastIndex = getBlockIndex( last( normalizedClientIds ) );\n\t\t\tconst blockOrder = getBlockOrder( _rootClientId );\n\n\t\t\treturn {\n\t\t\t\tcanMove: canMoveBlocks( clientIds, _rootClientId ),\n\t\t\t\trootClientId: _rootClientId,\n\t\t\t\tisFirst: firstIndex === 0,\n\t\t\t\tisLast: lastIndex === blockOrder.length - 1,\n\t\t\t\torientation: getBlockListSettings( _rootClientId )?.orientation,\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tif ( ! canMove || ( isFirst && isLast && ! rootClientId ) ) {\n\t\treturn null;\n\t}\n\n\tconst dragHandleLabel = __( 'Drag' );\n\n\treturn (\n\t\t<ToolbarGroup\n\t\t\tclassName={ classnames( 'block-editor-block-mover', {\n\t\t\t\t'is-horizontal': orientation === 'horizontal',\n\t\t\t} ) }\n\t\t>\n\t\t\t{ ! hideDragHandle && (\n\t\t\t\t<BlockDraggable clientIds={ clientIds }>\n\t\t\t\t\t{ ( draggableProps ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={ dragHandle }\n\t\t\t\t\t\t\tclassName=\"block-editor-block-mover__drag-handle\"\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\tlabel={ dragHandleLabel }\n\t\t\t\t\t\t\t// Should not be able to tab to drag handle as this\n\t\t\t\t\t\t\t// button can only be used with a pointer device.\n\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t{ ...draggableProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockDraggable>\n\t\t\t) }\n\t\t\t<div className=\"block-editor-block-mover__move-button-container\">\n\t\t\t\t<ToolbarItem>\n\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarItem>\n\t\t\t\t<ToolbarItem>\n\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarItem>\n\t\t\t</div>\n\t\t</ToolbarGroup>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-mover/README.md\n */\nexport default BlockMover;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-mover/index.js"],"names":["classnames","dragHandle","ToolbarGroup","ToolbarItem","Button","useSelect","__","BlockDraggable","BlockMoverUpButton","BlockMoverDownButton","store","blockEditorStore","BlockMover","clientIds","hideDragHandle","canMove","rootClientId","isFirst","isLast","orientation","select","getBlockIndex","getBlockListSettings","canMoveBlocks","getBlockOrder","getBlockRootClientId","normalizedClientIds","Array","isArray","firstClientId","_rootClientId","firstIndex","lastIndex","length","blockOrder","dragHandleLabel","draggableProps","itemProps"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\n\nimport { dragHandle } from '@wordpress/icons';\nimport { ToolbarGroup, ToolbarItem, Button } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockDraggable from '../block-draggable';\nimport { BlockMoverUpButton, BlockMoverDownButton } from './button';\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockMover( { clientIds, hideDragHandle } ) {\n\tconst { canMove, rootClientId, isFirst, isLast, orientation } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockListSettings,\n\t\t\t\tcanMoveBlocks,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst normalizedClientIds = Array.isArray( clientIds )\n\t\t\t\t? clientIds\n\t\t\t\t: [ clientIds ];\n\t\t\tconst firstClientId = normalizedClientIds[ 0 ];\n\t\t\tconst _rootClientId = getBlockRootClientId( firstClientId );\n\t\t\tconst firstIndex = getBlockIndex( firstClientId );\n\t\t\tconst lastIndex = getBlockIndex(\n\t\t\t\tnormalizedClientIds[ normalizedClientIds.length - 1 ]\n\t\t\t);\n\t\t\tconst blockOrder = getBlockOrder( _rootClientId );\n\n\t\t\treturn {\n\t\t\t\tcanMove: canMoveBlocks( clientIds, _rootClientId ),\n\t\t\t\trootClientId: _rootClientId,\n\t\t\t\tisFirst: firstIndex === 0,\n\t\t\t\tisLast: lastIndex === blockOrder.length - 1,\n\t\t\t\torientation: getBlockListSettings( _rootClientId )?.orientation,\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tif ( ! canMove || ( isFirst && isLast && ! rootClientId ) ) {\n\t\treturn null;\n\t}\n\n\tconst dragHandleLabel = __( 'Drag' );\n\n\treturn (\n\t\t<ToolbarGroup\n\t\t\tclassName={ classnames( 'block-editor-block-mover', {\n\t\t\t\t'is-horizontal': orientation === 'horizontal',\n\t\t\t} ) }\n\t\t>\n\t\t\t{ ! hideDragHandle && (\n\t\t\t\t<BlockDraggable clientIds={ clientIds }>\n\t\t\t\t\t{ ( draggableProps ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={ dragHandle }\n\t\t\t\t\t\t\tclassName=\"block-editor-block-mover__drag-handle\"\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\tlabel={ dragHandleLabel }\n\t\t\t\t\t\t\t// Should not be able to tab to drag handle as this\n\t\t\t\t\t\t\t// button can only be used with a pointer device.\n\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t{ ...draggableProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockDraggable>\n\t\t\t) }\n\t\t\t<div className=\"block-editor-block-mover__move-button-container\">\n\t\t\t\t<ToolbarItem>\n\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarItem>\n\t\t\t\t<ToolbarItem>\n\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarItem>\n\t\t\t</div>\n\t\t</ToolbarGroup>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-mover/README.md\n */\nexport default BlockMover;\n"]}
@@ -3,7 +3,6 @@ import { createElement, Fragment } from "@wordpress/element";
3
3
  /**
4
4
  * External dependencies
5
5
  */
6
- import { first, last, partial, castArray } from 'lodash';
7
6
  import { Platform } from 'react-native';
8
7
  /**
9
8
  * WordPress dependencies
@@ -141,12 +140,12 @@ export default compose(withSelect((select, _ref2) => {
141
140
  getBlockRootClientId,
142
141
  getBlockOrder
143
142
  } = select(blockEditorStore);
144
- const normalizedClientIds = castArray(clientIds);
145
- const firstClientId = first(normalizedClientIds);
143
+ const normalizedClientIds = Array.isArray(clientIds) ? clientIds : [clientIds];
144
+ const firstClientId = normalizedClientIds[0];
146
145
  const rootClientId = getBlockRootClientId(firstClientId);
147
146
  const blockOrder = getBlockOrder(rootClientId);
148
147
  const firstIndex = getBlockIndex(firstClientId);
149
- const lastIndex = getBlockIndex(last(normalizedClientIds));
148
+ const lastIndex = getBlockIndex(normalizedClientIds[normalizedClientIds.length - 1]);
150
149
  return {
151
150
  firstIndex,
152
151
  numberOfBlocks: blockOrder.length - 1,
@@ -166,9 +165,27 @@ export default compose(withSelect((select, _ref2) => {
166
165
  moveBlocksToPosition
167
166
  } = dispatch(blockEditorStore);
168
167
  return {
169
- onMoveDown: partial(moveBlocksDown, clientIds, rootClientId),
170
- onMoveUp: partial(moveBlocksUp, clientIds, rootClientId),
171
- onLongMove: targetIndex => partial(moveBlocksToPosition, clientIds, rootClientId, targetIndex)
168
+ onMoveDown: function () {
169
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
170
+ args[_key] = arguments[_key];
171
+ }
172
+
173
+ return moveBlocksDown(clientIds, rootClientId, ...args);
174
+ },
175
+ onMoveUp: function () {
176
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
177
+ args[_key2] = arguments[_key2];
178
+ }
179
+
180
+ return moveBlocksUp(clientIds, rootClientId, ...args);
181
+ },
182
+ onLongMove: targetIndex => function () {
183
+ for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
184
+ args[_key3] = arguments[_key3];
185
+ }
186
+
187
+ return moveBlocksToPosition(clientIds, rootClientId, targetIndex, ...args);
188
+ }
172
189
  };
173
190
  }), withInstanceId)(BlockMover);
174
191
  //# sourceMappingURL=index.native.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-mover/index.native.js"],"names":["first","last","partial","castArray","Platform","__","Picker","ToolbarButton","withInstanceId","compose","withSelect","withDispatch","useCallback","useEffect","useRef","useState","getMoversSetup","store","blockEditorStore","BLOCK_MOVER_DIRECTION_TOP","BLOCK_MOVER_DIRECTION_BOTTOM","BlockMover","isFirst","isLast","canMove","onMoveDown","onMoveUp","onLongMove","firstIndex","numberOfBlocks","rootClientId","isStackedHorizontally","pickerRef","shouldPresentPicker","setShouldPresentPicker","blockPageMoverState","setBlockPageMoverState","undefined","showBlockPageMover","direction","current","presentPicker","description","backwardButtonHint","forwardButtonHint","firstBlockTitle","lastBlockTitle","icon","backward","backwardButtonIcon","forward","forwardButtonIcon","title","backwardButtonTitle","forwardButtonTitle","blockPageMoverOptions","label","value","onSelect","filter","el","onPickerSelect","option","find","onLongPressMoveUp","onLongPressMoveDown","hint","OS","select","clientIds","getBlockIndex","canMoveBlocks","getBlockRootClientId","getBlockOrder","normalizedClientIds","firstClientId","blockOrder","lastIndex","length","dispatch","moveBlocksDown","moveBlocksUp","moveBlocksToPosition","targetIndex"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { first, last, partial, castArray } from 'lodash';\nimport { Platform } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Picker, ToolbarButton } from '@wordpress/components';\nimport { withInstanceId, compose } from '@wordpress/compose';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { useCallback, useEffect, useRef, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getMoversSetup } from './mover-description';\nimport { store as blockEditorStore } from '../../store';\n\nexport const BLOCK_MOVER_DIRECTION_TOP = 'blockPageMoverOptions-moveToTop';\nexport const BLOCK_MOVER_DIRECTION_BOTTOM =\n\t'blockPageMoverOptions-moveToBottom';\n\nexport const BlockMover = ( {\n\tisFirst,\n\tisLast,\n\tcanMove,\n\tonMoveDown,\n\tonMoveUp,\n\tonLongMove,\n\tfirstIndex,\n\tnumberOfBlocks,\n\trootClientId,\n\tisStackedHorizontally,\n} ) => {\n\tconst pickerRef = useRef();\n\tconst [ shouldPresentPicker, setShouldPresentPicker ] = useState( false );\n\tconst [ blockPageMoverState, setBlockPageMoverState ] =\n\t\tuseState( undefined );\n\tconst showBlockPageMover = ( direction ) => () => {\n\t\tif ( ! pickerRef.current ) {\n\t\t\tsetBlockPageMoverState( undefined );\n\t\t\treturn;\n\t\t}\n\n\t\tsetBlockPageMoverState( direction );\n\t\tsetShouldPresentPicker( true );\n\t};\n\n\t// Ensure that the picker is only presented after state updates.\n\tuseEffect( () => {\n\t\tif ( shouldPresentPicker ) {\n\t\t\tpickerRef.current?.presentPicker();\n\t\t\tsetShouldPresentPicker( false );\n\t\t}\n\t}, [ shouldPresentPicker ] );\n\n\tconst {\n\t\tdescription: {\n\t\t\tbackwardButtonHint,\n\t\t\tforwardButtonHint,\n\t\t\tfirstBlockTitle,\n\t\t\tlastBlockTitle,\n\t\t},\n\t\ticon: { backward: backwardButtonIcon, forward: forwardButtonIcon },\n\t\ttitle: { backward: backwardButtonTitle, forward: forwardButtonTitle },\n\t} = getMoversSetup( isStackedHorizontally, { firstIndex } );\n\n\tconst blockPageMoverOptions = [\n\t\t{\n\t\t\ticon: backwardButtonIcon,\n\t\t\tlabel: __( 'Move to top' ),\n\t\t\tvalue: BLOCK_MOVER_DIRECTION_TOP,\n\t\t\tonSelect: () => {\n\t\t\t\tonLongMove()( 0 );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ticon: forwardButtonIcon,\n\t\t\tlabel: __( 'Move to bottom' ),\n\t\t\tvalue: BLOCK_MOVER_DIRECTION_BOTTOM,\n\t\t\tonSelect: () => {\n\t\t\t\tonLongMove()( numberOfBlocks );\n\t\t\t},\n\t\t},\n\t].filter( ( el ) => el.value === blockPageMoverState );\n\n\tconst onPickerSelect = ( value ) => {\n\t\tconst option = blockPageMoverOptions.find(\n\t\t\t( el ) => el.value === value\n\t\t);\n\t\tif ( option && option.onSelect ) option.onSelect();\n\t};\n\n\tconst onLongPressMoveUp = useCallback(\n\t\tshowBlockPageMover( BLOCK_MOVER_DIRECTION_TOP ),\n\t\t[]\n\t);\n\tconst onLongPressMoveDown = useCallback(\n\t\tshowBlockPageMover( BLOCK_MOVER_DIRECTION_BOTTOM ),\n\t\t[]\n\t);\n\n\tif ( ! canMove || ( isFirst && isLast && ! rootClientId ) ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ ! isFirst ? backwardButtonTitle : firstBlockTitle }\n\t\t\t\tisDisabled={ isFirst }\n\t\t\t\tonClick={ onMoveUp }\n\t\t\t\tonLongPress={ onLongPressMoveUp }\n\t\t\t\ticon={ backwardButtonIcon }\n\t\t\t\textraProps={ { hint: backwardButtonHint } }\n\t\t\t/>\n\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ ! isLast ? forwardButtonTitle : lastBlockTitle }\n\t\t\t\tisDisabled={ isLast }\n\t\t\t\tonClick={ onMoveDown }\n\t\t\t\tonLongPress={ onLongPressMoveDown }\n\t\t\t\ticon={ forwardButtonIcon }\n\t\t\t\textraProps={ {\n\t\t\t\t\thint: forwardButtonHint,\n\t\t\t\t} }\n\t\t\t/>\n\n\t\t\t<Picker\n\t\t\t\tref={ pickerRef }\n\t\t\t\toptions={ blockPageMoverOptions }\n\t\t\t\tonChange={ onPickerSelect }\n\t\t\t\ttitle={ __( 'Change block position' ) }\n\t\t\t\tleftAlign={ true }\n\t\t\t\thideCancelButton={ Platform.OS !== 'ios' }\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nexport default compose(\n\twithSelect( ( select, { clientIds } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tcanMoveBlocks,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockOrder,\n\t\t} = select( blockEditorStore );\n\t\tconst normalizedClientIds = castArray( clientIds );\n\t\tconst firstClientId = first( normalizedClientIds );\n\t\tconst rootClientId = getBlockRootClientId( firstClientId );\n\t\tconst blockOrder = getBlockOrder( rootClientId );\n\t\tconst firstIndex = getBlockIndex( firstClientId );\n\t\tconst lastIndex = getBlockIndex( last( normalizedClientIds ) );\n\n\t\treturn {\n\t\t\tfirstIndex,\n\t\t\tnumberOfBlocks: blockOrder.length - 1,\n\t\t\tisFirst: firstIndex === 0,\n\t\t\tisLast: lastIndex === blockOrder.length - 1,\n\t\t\tcanMove: canMoveBlocks( clientIds, rootClientId ),\n\t\t\trootClientId,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, { clientIds, rootClientId } ) => {\n\t\tconst { moveBlocksDown, moveBlocksUp, moveBlocksToPosition } =\n\t\t\tdispatch( blockEditorStore );\n\t\treturn {\n\t\t\tonMoveDown: partial( moveBlocksDown, clientIds, rootClientId ),\n\t\t\tonMoveUp: partial( moveBlocksUp, clientIds, rootClientId ),\n\t\t\tonLongMove: ( targetIndex ) =>\n\t\t\t\tpartial(\n\t\t\t\t\tmoveBlocksToPosition,\n\t\t\t\t\tclientIds,\n\t\t\t\t\trootClientId,\n\t\t\t\t\ttargetIndex\n\t\t\t\t),\n\t\t};\n\t} ),\n\twithInstanceId\n)( BlockMover );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-mover/index.native.js"],"names":["Platform","__","Picker","ToolbarButton","withInstanceId","compose","withSelect","withDispatch","useCallback","useEffect","useRef","useState","getMoversSetup","store","blockEditorStore","BLOCK_MOVER_DIRECTION_TOP","BLOCK_MOVER_DIRECTION_BOTTOM","BlockMover","isFirst","isLast","canMove","onMoveDown","onMoveUp","onLongMove","firstIndex","numberOfBlocks","rootClientId","isStackedHorizontally","pickerRef","shouldPresentPicker","setShouldPresentPicker","blockPageMoverState","setBlockPageMoverState","undefined","showBlockPageMover","direction","current","presentPicker","description","backwardButtonHint","forwardButtonHint","firstBlockTitle","lastBlockTitle","icon","backward","backwardButtonIcon","forward","forwardButtonIcon","title","backwardButtonTitle","forwardButtonTitle","blockPageMoverOptions","label","value","onSelect","filter","el","onPickerSelect","option","find","onLongPressMoveUp","onLongPressMoveDown","hint","OS","select","clientIds","getBlockIndex","canMoveBlocks","getBlockRootClientId","getBlockOrder","normalizedClientIds","Array","isArray","firstClientId","blockOrder","lastIndex","length","dispatch","moveBlocksDown","moveBlocksUp","moveBlocksToPosition","args","targetIndex"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Platform } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Picker, ToolbarButton } from '@wordpress/components';\nimport { withInstanceId, compose } from '@wordpress/compose';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { useCallback, useEffect, useRef, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getMoversSetup } from './mover-description';\nimport { store as blockEditorStore } from '../../store';\n\nexport const BLOCK_MOVER_DIRECTION_TOP = 'blockPageMoverOptions-moveToTop';\nexport const BLOCK_MOVER_DIRECTION_BOTTOM =\n\t'blockPageMoverOptions-moveToBottom';\n\nexport const BlockMover = ( {\n\tisFirst,\n\tisLast,\n\tcanMove,\n\tonMoveDown,\n\tonMoveUp,\n\tonLongMove,\n\tfirstIndex,\n\tnumberOfBlocks,\n\trootClientId,\n\tisStackedHorizontally,\n} ) => {\n\tconst pickerRef = useRef();\n\tconst [ shouldPresentPicker, setShouldPresentPicker ] = useState( false );\n\tconst [ blockPageMoverState, setBlockPageMoverState ] =\n\t\tuseState( undefined );\n\tconst showBlockPageMover = ( direction ) => () => {\n\t\tif ( ! pickerRef.current ) {\n\t\t\tsetBlockPageMoverState( undefined );\n\t\t\treturn;\n\t\t}\n\n\t\tsetBlockPageMoverState( direction );\n\t\tsetShouldPresentPicker( true );\n\t};\n\n\t// Ensure that the picker is only presented after state updates.\n\tuseEffect( () => {\n\t\tif ( shouldPresentPicker ) {\n\t\t\tpickerRef.current?.presentPicker();\n\t\t\tsetShouldPresentPicker( false );\n\t\t}\n\t}, [ shouldPresentPicker ] );\n\n\tconst {\n\t\tdescription: {\n\t\t\tbackwardButtonHint,\n\t\t\tforwardButtonHint,\n\t\t\tfirstBlockTitle,\n\t\t\tlastBlockTitle,\n\t\t},\n\t\ticon: { backward: backwardButtonIcon, forward: forwardButtonIcon },\n\t\ttitle: { backward: backwardButtonTitle, forward: forwardButtonTitle },\n\t} = getMoversSetup( isStackedHorizontally, { firstIndex } );\n\n\tconst blockPageMoverOptions = [\n\t\t{\n\t\t\ticon: backwardButtonIcon,\n\t\t\tlabel: __( 'Move to top' ),\n\t\t\tvalue: BLOCK_MOVER_DIRECTION_TOP,\n\t\t\tonSelect: () => {\n\t\t\t\tonLongMove()( 0 );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ticon: forwardButtonIcon,\n\t\t\tlabel: __( 'Move to bottom' ),\n\t\t\tvalue: BLOCK_MOVER_DIRECTION_BOTTOM,\n\t\t\tonSelect: () => {\n\t\t\t\tonLongMove()( numberOfBlocks );\n\t\t\t},\n\t\t},\n\t].filter( ( el ) => el.value === blockPageMoverState );\n\n\tconst onPickerSelect = ( value ) => {\n\t\tconst option = blockPageMoverOptions.find(\n\t\t\t( el ) => el.value === value\n\t\t);\n\t\tif ( option && option.onSelect ) option.onSelect();\n\t};\n\n\tconst onLongPressMoveUp = useCallback(\n\t\tshowBlockPageMover( BLOCK_MOVER_DIRECTION_TOP ),\n\t\t[]\n\t);\n\tconst onLongPressMoveDown = useCallback(\n\t\tshowBlockPageMover( BLOCK_MOVER_DIRECTION_BOTTOM ),\n\t\t[]\n\t);\n\n\tif ( ! canMove || ( isFirst && isLast && ! rootClientId ) ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ ! isFirst ? backwardButtonTitle : firstBlockTitle }\n\t\t\t\tisDisabled={ isFirst }\n\t\t\t\tonClick={ onMoveUp }\n\t\t\t\tonLongPress={ onLongPressMoveUp }\n\t\t\t\ticon={ backwardButtonIcon }\n\t\t\t\textraProps={ { hint: backwardButtonHint } }\n\t\t\t/>\n\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ ! isLast ? forwardButtonTitle : lastBlockTitle }\n\t\t\t\tisDisabled={ isLast }\n\t\t\t\tonClick={ onMoveDown }\n\t\t\t\tonLongPress={ onLongPressMoveDown }\n\t\t\t\ticon={ forwardButtonIcon }\n\t\t\t\textraProps={ {\n\t\t\t\t\thint: forwardButtonHint,\n\t\t\t\t} }\n\t\t\t/>\n\n\t\t\t<Picker\n\t\t\t\tref={ pickerRef }\n\t\t\t\toptions={ blockPageMoverOptions }\n\t\t\t\tonChange={ onPickerSelect }\n\t\t\t\ttitle={ __( 'Change block position' ) }\n\t\t\t\tleftAlign={ true }\n\t\t\t\thideCancelButton={ Platform.OS !== 'ios' }\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nexport default compose(\n\twithSelect( ( select, { clientIds } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tcanMoveBlocks,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockOrder,\n\t\t} = select( blockEditorStore );\n\t\tconst normalizedClientIds = Array.isArray( clientIds )\n\t\t\t? clientIds\n\t\t\t: [ clientIds ];\n\t\tconst firstClientId = normalizedClientIds[ 0 ];\n\t\tconst rootClientId = getBlockRootClientId( firstClientId );\n\t\tconst blockOrder = getBlockOrder( rootClientId );\n\t\tconst firstIndex = getBlockIndex( firstClientId );\n\t\tconst lastIndex = getBlockIndex(\n\t\t\tnormalizedClientIds[ normalizedClientIds.length - 1 ]\n\t\t);\n\n\t\treturn {\n\t\t\tfirstIndex,\n\t\t\tnumberOfBlocks: blockOrder.length - 1,\n\t\t\tisFirst: firstIndex === 0,\n\t\t\tisLast: lastIndex === blockOrder.length - 1,\n\t\t\tcanMove: canMoveBlocks( clientIds, rootClientId ),\n\t\t\trootClientId,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, { clientIds, rootClientId } ) => {\n\t\tconst { moveBlocksDown, moveBlocksUp, moveBlocksToPosition } =\n\t\t\tdispatch( blockEditorStore );\n\t\treturn {\n\t\t\tonMoveDown: ( ...args ) =>\n\t\t\t\tmoveBlocksDown( clientIds, rootClientId, ...args ),\n\t\t\tonMoveUp: ( ...args ) =>\n\t\t\t\tmoveBlocksUp( clientIds, rootClientId, ...args ),\n\t\t\tonLongMove:\n\t\t\t\t( targetIndex ) =>\n\t\t\t\t( ...args ) =>\n\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\tclientIds,\n\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\ttargetIndex,\n\t\t\t\t\t\t...args\n\t\t\t\t\t),\n\t\t};\n\t} ),\n\twithInstanceId\n)( BlockMover );\n"]}
@@ -10,7 +10,7 @@ import classnames from 'classnames';
10
10
  */
11
11
 
12
12
  import { useSelect } from '@wordpress/data';
13
- import { useCallback, useMemo, createContext } from '@wordpress/element';
13
+ import { useCallback, useMemo, createContext, useReducer, useLayoutEffect } from '@wordpress/element';
14
14
  import { Popover } from '@wordpress/components';
15
15
  import { isRTL } from '@wordpress/i18n';
16
16
  /**
@@ -31,6 +31,8 @@ function BlockPopoverInbetween(_ref) {
31
31
  __unstableContentRef,
32
32
  ...props
33
33
  } = _ref;
34
+ // This is a temporary hack to get the inbetween inserter to recompute properly.
35
+ const [positionRecompute, forceRecompute] = useReducer(s => s + 1, 0);
34
36
  const {
35
37
  orientation,
36
38
  rootClientId,
@@ -44,14 +46,14 @@ function BlockPopoverInbetween(_ref) {
44
46
  isBlockVisible
45
47
  } = select(blockEditorStore);
46
48
 
47
- const _rootClientId = getBlockRootClientId(previousClientId);
49
+ const _rootClientId = getBlockRootClientId(previousClientId !== null && previousClientId !== void 0 ? previousClientId : nextClientId);
48
50
 
49
51
  return {
50
52
  orientation: ((_getBlockListSettings = getBlockListSettings(_rootClientId)) === null || _getBlockListSettings === void 0 ? void 0 : _getBlockListSettings.orientation) || 'vertical',
51
53
  rootClientId: _rootClientId,
52
54
  isVisible: isBlockVisible(previousClientId) && isBlockVisible(nextClientId)
53
55
  };
54
- }, [previousClientId]);
56
+ }, [previousClientId, nextClientId]);
55
57
  const previousElement = useBlockElement(previousClientId);
56
58
  const nextElement = useBlockElement(nextClientId);
57
59
  const isVertical = orientation === 'vertical';
@@ -65,7 +67,7 @@ function BlockPopoverInbetween(_ref) {
65
67
 
66
68
  if (isVertical) {
67
69
  return {
68
- width: previousElement ? previousElement.offsetWidth : nextElement.offsetWidth,
70
+ width: previousRect ? previousRect.width : nextRect.width,
69
71
  height: nextRect && previousRect ? nextRect.top - previousRect.bottom : 0
70
72
  };
71
73
  }
@@ -78,9 +80,9 @@ function BlockPopoverInbetween(_ref) {
78
80
 
79
81
  return {
80
82
  width,
81
- height: previousElement ? previousElement.offsetHeight : nextElement.offsetHeight
83
+ height: previousRect ? previousRect.height : nextRect.height
82
84
  };
83
- }, [previousElement, nextElement, isVertical]);
85
+ }, [previousElement, nextElement, isVertical, positionRecompute, isVisible]);
84
86
  const getAnchorRect = useCallback(() => {
85
87
  if (!previousElement && !nextElement || !isVisible) {
86
88
  return {};
@@ -97,8 +99,8 @@ function BlockPopoverInbetween(_ref) {
97
99
  return {
98
100
  top: previousRect ? previousRect.bottom : nextRect.top,
99
101
  left: previousRect ? previousRect.right : nextRect.right,
100
- right: previousRect ? previousRect.left : nextRect.left,
101
- bottom: nextRect ? nextRect.top : previousRect.bottom,
102
+ right: previousRect ? previousRect.right : nextRect.right,
103
+ bottom: previousRect ? previousRect.bottom : nextRect.top,
102
104
  height: 0,
103
105
  width: 0,
104
106
  ownerDocument
@@ -108,8 +110,8 @@ function BlockPopoverInbetween(_ref) {
108
110
  return {
109
111
  top: previousRect ? previousRect.bottom : nextRect.top,
110
112
  left: previousRect ? previousRect.left : nextRect.left,
111
- right: previousRect ? previousRect.right : nextRect.right,
112
- bottom: nextRect ? nextRect.top : previousRect.bottom,
113
+ right: previousRect ? previousRect.left : nextRect.left,
114
+ bottom: previousRect ? previousRect.bottom : nextRect.top,
113
115
  height: 0,
114
116
  width: 0,
115
117
  ownerDocument
@@ -120,8 +122,8 @@ function BlockPopoverInbetween(_ref) {
120
122
  return {
121
123
  top: previousRect ? previousRect.top : nextRect.top,
122
124
  left: previousRect ? previousRect.left : nextRect.right,
123
- right: nextRect ? nextRect.right : previousRect.left,
124
- bottom: previousRect ? previousRect.bottom : nextRect.bottom,
125
+ right: previousRect ? previousRect.left : nextRect.right,
126
+ bottom: previousRect ? previousRect.top : nextRect.top,
125
127
  height: 0,
126
128
  width: 0,
127
129
  ownerDocument
@@ -131,14 +133,51 @@ function BlockPopoverInbetween(_ref) {
131
133
  return {
132
134
  top: previousRect ? previousRect.top : nextRect.top,
133
135
  left: previousRect ? previousRect.right : nextRect.left,
134
- right: nextRect ? nextRect.left : previousRect.right,
135
- bottom: previousRect ? previousRect.bottom : nextRect.bottom,
136
+ right: previousRect ? previousRect.right : nextRect.left,
137
+ bottom: previousRect ? previousRect.left : nextRect.right,
136
138
  height: 0,
137
139
  width: 0,
138
140
  ownerDocument
139
141
  };
140
- }, [previousElement, nextElement]);
141
- const popoverScrollRef = usePopoverScroll(__unstableContentRef); // If there's either a previous or a next element, show the inbetween popover.
142
+ }, [previousElement, nextElement, positionRecompute, isVisible]);
143
+ const popoverScrollRef = usePopoverScroll(__unstableContentRef); // This is only needed for a smooth transition when moving blocks.
144
+
145
+ useLayoutEffect(() => {
146
+ if (!previousElement) {
147
+ return;
148
+ }
149
+
150
+ const observer = new window.MutationObserver(forceRecompute);
151
+ observer.observe(previousElement, {
152
+ attributes: true
153
+ });
154
+ return () => {
155
+ observer.disconnect();
156
+ };
157
+ }, [previousElement]);
158
+ useLayoutEffect(() => {
159
+ if (!nextElement) {
160
+ return;
161
+ }
162
+
163
+ const observer = new window.MutationObserver(forceRecompute);
164
+ observer.observe(nextElement, {
165
+ attributes: true
166
+ });
167
+ return () => {
168
+ observer.disconnect();
169
+ };
170
+ }, [nextElement]);
171
+ useLayoutEffect(() => {
172
+ if (!previousElement) {
173
+ return;
174
+ }
175
+
176
+ previousElement.ownerDocument.defaultView.addEventListener('resize', forceRecompute);
177
+ return () => {
178
+ previousElement.ownerDocument.defaultView.removeEventListener('resize', forceRecompute);
179
+ };
180
+ }, [previousElement]); // If there's either a previous or a next element, show the inbetween popover.
142
181
  // Note that drag and drop uses the inbetween popover to show the drop indicator
143
182
  // before the first block and after the last block.
144
183
 
@@ -167,8 +206,11 @@ function BlockPopoverInbetween(_ref) {
167
206
  key: nextClientId + '--' + rootClientId
168
207
  }, props, {
169
208
  className: classnames('block-editor-block-popover', 'block-editor-block-popover__inbetween', props.className),
170
- __unstableForcePosition: true
209
+ resize: false,
210
+ flip: false,
211
+ placement: "bottom-start"
171
212
  }), createElement("div", {
213
+ className: "block-editor-block-popover__inbetween-container",
172
214
  style: style
173
215
  }, children));
174
216
  /* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-popover/inbetween.js"],"names":["classnames","useSelect","useCallback","useMemo","createContext","Popover","isRTL","store","blockEditorStore","__unstableUseBlockElement","useBlockElement","usePopoverScroll","InsertionPointOpenRef","BlockPopoverInbetween","previousClientId","nextClientId","children","__unstablePopoverSlot","__unstableContentRef","props","orientation","rootClientId","isVisible","select","getBlockListSettings","getBlockRootClientId","isBlockVisible","_rootClientId","previousElement","nextElement","isVertical","style","previousRect","getBoundingClientRect","nextRect","width","offsetWidth","height","top","bottom","left","right","offsetHeight","getAnchorRect","ownerDocument","popoverScrollRef","className"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useCallback, useMemo, createContext } from '@wordpress/element';\nimport { Popover } from '@wordpress/components';\nimport { isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport usePopoverScroll from './use-popover-scroll';\n\nexport const InsertionPointOpenRef = createContext();\n\nfunction BlockPopoverInbetween( {\n\tpreviousClientId,\n\tnextClientId,\n\tchildren,\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n\t...props\n} ) {\n\tconst { orientation, rootClientId, isVisible } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockListSettings,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tisBlockVisible,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst _rootClientId = getBlockRootClientId( previousClientId );\n\t\t\treturn {\n\t\t\t\torientation:\n\t\t\t\t\tgetBlockListSettings( _rootClientId )?.orientation ||\n\t\t\t\t\t'vertical',\n\t\t\t\trootClientId: _rootClientId,\n\t\t\t\tisVisible:\n\t\t\t\t\tisBlockVisible( previousClientId ) &&\n\t\t\t\t\tisBlockVisible( nextClientId ),\n\t\t\t};\n\t\t},\n\t\t[ previousClientId ]\n\t);\n\tconst previousElement = useBlockElement( previousClientId );\n\tconst nextElement = useBlockElement( nextClientId );\n\tconst isVertical = orientation === 'vertical';\n\tconst style = useMemo( () => {\n\t\tif ( ( ! previousElement && ! nextElement ) || ! isVisible ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tconst previousRect = previousElement\n\t\t\t? previousElement.getBoundingClientRect()\n\t\t\t: null;\n\t\tconst nextRect = nextElement\n\t\t\t? nextElement.getBoundingClientRect()\n\t\t\t: null;\n\n\t\tif ( isVertical ) {\n\t\t\treturn {\n\t\t\t\twidth: previousElement\n\t\t\t\t\t? previousElement.offsetWidth\n\t\t\t\t\t: nextElement.offsetWidth,\n\t\t\t\theight:\n\t\t\t\t\tnextRect && previousRect\n\t\t\t\t\t\t? nextRect.top - previousRect.bottom\n\t\t\t\t\t\t: 0,\n\t\t\t};\n\t\t}\n\n\t\tlet width = 0;\n\t\tif ( previousRect && nextRect ) {\n\t\t\twidth = isRTL()\n\t\t\t\t? previousRect.left - nextRect.right\n\t\t\t\t: nextRect.left - previousRect.right;\n\t\t}\n\n\t\treturn {\n\t\t\twidth,\n\t\t\theight: previousElement\n\t\t\t\t? previousElement.offsetHeight\n\t\t\t\t: nextElement.offsetHeight,\n\t\t};\n\t}, [ previousElement, nextElement, isVertical ] );\n\n\tconst getAnchorRect = useCallback( () => {\n\t\tif ( ( ! previousElement && ! nextElement ) || ! isVisible ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tconst { ownerDocument } = previousElement || nextElement;\n\n\t\tconst previousRect = previousElement\n\t\t\t? previousElement.getBoundingClientRect()\n\t\t\t: null;\n\t\tconst nextRect = nextElement\n\t\t\t? nextElement.getBoundingClientRect()\n\t\t\t: null;\n\n\t\tif ( isVertical ) {\n\t\t\tif ( isRTL() ) {\n\t\t\t\treturn {\n\t\t\t\t\ttop: previousRect ? previousRect.bottom : nextRect.top,\n\t\t\t\t\tleft: previousRect ? previousRect.right : nextRect.right,\n\t\t\t\t\tright: previousRect ? previousRect.left : nextRect.left,\n\t\t\t\t\tbottom: nextRect ? nextRect.top : previousRect.bottom,\n\t\t\t\t\theight: 0,\n\t\t\t\t\twidth: 0,\n\t\t\t\t\townerDocument,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttop: previousRect ? previousRect.bottom : nextRect.top,\n\t\t\t\tleft: previousRect ? previousRect.left : nextRect.left,\n\t\t\t\tright: previousRect ? previousRect.right : nextRect.right,\n\t\t\t\tbottom: nextRect ? nextRect.top : previousRect.bottom,\n\t\t\t\theight: 0,\n\t\t\t\twidth: 0,\n\t\t\t\townerDocument,\n\t\t\t};\n\t\t}\n\n\t\tif ( isRTL() ) {\n\t\t\treturn {\n\t\t\t\ttop: previousRect ? previousRect.top : nextRect.top,\n\t\t\t\tleft: previousRect ? previousRect.left : nextRect.right,\n\t\t\t\tright: nextRect ? nextRect.right : previousRect.left,\n\t\t\t\tbottom: previousRect ? previousRect.bottom : nextRect.bottom,\n\t\t\t\theight: 0,\n\t\t\t\twidth: 0,\n\t\t\t\townerDocument,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\ttop: previousRect ? previousRect.top : nextRect.top,\n\t\t\tleft: previousRect ? previousRect.right : nextRect.left,\n\t\t\tright: nextRect ? nextRect.left : previousRect.right,\n\t\t\tbottom: previousRect ? previousRect.bottom : nextRect.bottom,\n\t\t\theight: 0,\n\t\t\twidth: 0,\n\t\t\townerDocument,\n\t\t};\n\t}, [ previousElement, nextElement ] );\n\n\tconst popoverScrollRef = usePopoverScroll( __unstableContentRef );\n\n\t// If there's either a previous or a next element, show the inbetween popover.\n\t// Note that drag and drop uses the inbetween popover to show the drop indicator\n\t// before the first block and after the last block.\n\tif ( ( ! previousElement && ! nextElement ) || ! isVisible ) {\n\t\treturn null;\n\t}\n\n\t/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n\t// While ideally it would be enough to capture the\n\t// bubbling focus event from the Inserter, due to the\n\t// characteristics of click focusing of `button`s in\n\t// Firefox and Safari, it is not reliable.\n\t//\n\t// See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n\treturn (\n\t\t<Popover\n\t\t\tref={ popoverScrollRef }\n\t\t\tanimate={ false }\n\t\t\tgetAnchorRect={ getAnchorRect }\n\t\t\tfocusOnMount={ false }\n\t\t\t// Render in the old slot if needed for backward compatibility,\n\t\t\t// otherwise render in place (not in the default popover slot).\n\t\t\t__unstableSlotName={ __unstablePopoverSlot || null }\n\t\t\t// Forces a remount of the popover when its position changes\n\t\t\t// This makes sure the popover doesn't animate from its previous position.\n\t\t\tkey={ nextClientId + '--' + rootClientId }\n\t\t\t{ ...props }\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-block-popover',\n\t\t\t\t'block-editor-block-popover__inbetween',\n\t\t\t\tprops.className\n\t\t\t) }\n\t\t\t__unstableForcePosition\n\t\t>\n\t\t\t<div style={ style }>{ children }</div>\n\t\t</Popover>\n\t);\n\t/* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n}\n\nexport default BlockPopoverInbetween;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-popover/inbetween.js"],"names":["classnames","useSelect","useCallback","useMemo","createContext","useReducer","useLayoutEffect","Popover","isRTL","store","blockEditorStore","__unstableUseBlockElement","useBlockElement","usePopoverScroll","InsertionPointOpenRef","BlockPopoverInbetween","previousClientId","nextClientId","children","__unstablePopoverSlot","__unstableContentRef","props","positionRecompute","forceRecompute","s","orientation","rootClientId","isVisible","select","getBlockListSettings","getBlockRootClientId","isBlockVisible","_rootClientId","previousElement","nextElement","isVertical","style","previousRect","getBoundingClientRect","nextRect","width","height","top","bottom","left","right","getAnchorRect","ownerDocument","popoverScrollRef","observer","window","MutationObserver","observe","attributes","disconnect","defaultView","addEventListener","removeEventListener","className"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SACCC,WADD,EAECC,OAFD,EAGCC,aAHD,EAICC,UAJD,EAKCC,eALD,QAMO,oBANP;AAOA,SAASC,OAAT,QAAwB,uBAAxB;AACA,SAASC,KAAT,QAAsB,iBAAtB;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,SAASC,yBAAyB,IAAIC,eAAtC,QAA6D,8CAA7D;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;AAEA,OAAO,MAAMC,qBAAqB,GAAGV,aAAa,EAA3C;;AAEP,SAASW,qBAAT,OAOI;AAAA,MAP4B;AAC/BC,IAAAA,gBAD+B;AAE/BC,IAAAA,YAF+B;AAG/BC,IAAAA,QAH+B;AAI/BC,IAAAA,qBAJ+B;AAK/BC,IAAAA,oBAL+B;AAM/B,OAAGC;AAN4B,GAO5B;AACH;AACA,QAAM,CAAEC,iBAAF,EAAqBC,cAArB,IAAwClB,UAAU,CACrDmB,CAAF,IAASA,CAAC,GAAG,CAD0C,EAEvD,CAFuD,CAAxD;AAKA,QAAM;AAAEC,IAAAA,WAAF;AAAeC,IAAAA,YAAf;AAA6BC,IAAAA;AAA7B,MAA2C1B,SAAS,CACvD2B,MAAF,IAAc;AAAA;;AACb,UAAM;AACLC,MAAAA,oBADK;AAELC,MAAAA,oBAFK;AAGLC,MAAAA;AAHK,QAIFH,MAAM,CAAElB,gBAAF,CAJV;;AAMA,UAAMsB,aAAa,GAAGF,oBAAoB,CACzCd,gBADyC,aACzCA,gBADyC,cACzCA,gBADyC,GACrBC,YADqB,CAA1C;;AAGA,WAAO;AACNQ,MAAAA,WAAW,EACV,0BAAAI,oBAAoB,CAAEG,aAAF,CAApB,gFAAuCP,WAAvC,KACA,UAHK;AAINC,MAAAA,YAAY,EAAEM,aAJR;AAKNL,MAAAA,SAAS,EACRI,cAAc,CAAEf,gBAAF,CAAd,IACAe,cAAc,CAAEd,YAAF;AAPT,KAAP;AASA,GApBwD,EAqBzD,CAAED,gBAAF,EAAoBC,YAApB,CArByD,CAA1D;AAuBA,QAAMgB,eAAe,GAAGrB,eAAe,CAAEI,gBAAF,CAAvC;AACA,QAAMkB,WAAW,GAAGtB,eAAe,CAAEK,YAAF,CAAnC;AACA,QAAMkB,UAAU,GAAGV,WAAW,KAAK,UAAnC;AACA,QAAMW,KAAK,GAAGjC,OAAO,CAAE,MAAM;AAC5B,QAAO,CAAE8B,eAAF,IAAqB,CAAEC,WAAzB,IAA0C,CAAEP,SAAjD,EAA6D;AAC5D,aAAO,EAAP;AACA;;AAED,UAAMU,YAAY,GAAGJ,eAAe,GACjCA,eAAe,CAACK,qBAAhB,EADiC,GAEjC,IAFH;AAGA,UAAMC,QAAQ,GAAGL,WAAW,GACzBA,WAAW,CAACI,qBAAZ,EADyB,GAEzB,IAFH;;AAIA,QAAKH,UAAL,EAAkB;AACjB,aAAO;AACNK,QAAAA,KAAK,EAAEH,YAAY,GAAGA,YAAY,CAACG,KAAhB,GAAwBD,QAAQ,CAACC,KAD9C;AAENC,QAAAA,MAAM,EACLF,QAAQ,IAAIF,YAAZ,GACGE,QAAQ,CAACG,GAAT,GAAeL,YAAY,CAACM,MAD/B,GAEG;AALE,OAAP;AAOA;;AAED,QAAIH,KAAK,GAAG,CAAZ;;AACA,QAAKH,YAAY,IAAIE,QAArB,EAAgC;AAC/BC,MAAAA,KAAK,GAAGhC,KAAK,KACV6B,YAAY,CAACO,IAAb,GAAoBL,QAAQ,CAACM,KADnB,GAEVN,QAAQ,CAACK,IAAT,GAAgBP,YAAY,CAACQ,KAFhC;AAGA;;AAED,WAAO;AACNL,MAAAA,KADM;AAENC,MAAAA,MAAM,EAAEJ,YAAY,GAAGA,YAAY,CAACI,MAAhB,GAAyBF,QAAQ,CAACE;AAFhD,KAAP;AAIA,GAjCoB,EAiClB,CACFR,eADE,EAEFC,WAFE,EAGFC,UAHE,EAIFb,iBAJE,EAKFK,SALE,CAjCkB,CAArB;AAyCA,QAAMmB,aAAa,GAAG5C,WAAW,CAAE,MAAM;AACxC,QAAO,CAAE+B,eAAF,IAAqB,CAAEC,WAAzB,IAA0C,CAAEP,SAAjD,EAA6D;AAC5D,aAAO,EAAP;AACA;;AAED,UAAM;AAAEoB,MAAAA;AAAF,QAAoBd,eAAe,IAAIC,WAA7C;AAEA,UAAMG,YAAY,GAAGJ,eAAe,GACjCA,eAAe,CAACK,qBAAhB,EADiC,GAEjC,IAFH;AAGA,UAAMC,QAAQ,GAAGL,WAAW,GACzBA,WAAW,CAACI,qBAAZ,EADyB,GAEzB,IAFH;;AAIA,QAAKH,UAAL,EAAkB;AACjB,UAAK3B,KAAK,EAAV,EAAe;AACd,eAAO;AACNkC,UAAAA,GAAG,EAAEL,YAAY,GAAGA,YAAY,CAACM,MAAhB,GAAyBJ,QAAQ,CAACG,GAD7C;AAENE,UAAAA,IAAI,EAAEP,YAAY,GAAGA,YAAY,CAACQ,KAAhB,GAAwBN,QAAQ,CAACM,KAF7C;AAGNA,UAAAA,KAAK,EAAER,YAAY,GAAGA,YAAY,CAACQ,KAAhB,GAAwBN,QAAQ,CAACM,KAH9C;AAINF,UAAAA,MAAM,EAAEN,YAAY,GAAGA,YAAY,CAACM,MAAhB,GAAyBJ,QAAQ,CAACG,GAJhD;AAKND,UAAAA,MAAM,EAAE,CALF;AAMND,UAAAA,KAAK,EAAE,CAND;AAONO,UAAAA;AAPM,SAAP;AASA;;AAED,aAAO;AACNL,QAAAA,GAAG,EAAEL,YAAY,GAAGA,YAAY,CAACM,MAAhB,GAAyBJ,QAAQ,CAACG,GAD7C;AAENE,QAAAA,IAAI,EAAEP,YAAY,GAAGA,YAAY,CAACO,IAAhB,GAAuBL,QAAQ,CAACK,IAF5C;AAGNC,QAAAA,KAAK,EAAER,YAAY,GAAGA,YAAY,CAACO,IAAhB,GAAuBL,QAAQ,CAACK,IAH7C;AAIND,QAAAA,MAAM,EAAEN,YAAY,GAAGA,YAAY,CAACM,MAAhB,GAAyBJ,QAAQ,CAACG,GAJhD;AAKND,QAAAA,MAAM,EAAE,CALF;AAMND,QAAAA,KAAK,EAAE,CAND;AAONO,QAAAA;AAPM,OAAP;AASA;;AAED,QAAKvC,KAAK,EAAV,EAAe;AACd,aAAO;AACNkC,QAAAA,GAAG,EAAEL,YAAY,GAAGA,YAAY,CAACK,GAAhB,GAAsBH,QAAQ,CAACG,GAD1C;AAENE,QAAAA,IAAI,EAAEP,YAAY,GAAGA,YAAY,CAACO,IAAhB,GAAuBL,QAAQ,CAACM,KAF5C;AAGNA,QAAAA,KAAK,EAAER,YAAY,GAAGA,YAAY,CAACO,IAAhB,GAAuBL,QAAQ,CAACM,KAH7C;AAINF,QAAAA,MAAM,EAAEN,YAAY,GAAGA,YAAY,CAACK,GAAhB,GAAsBH,QAAQ,CAACG,GAJ7C;AAKND,QAAAA,MAAM,EAAE,CALF;AAMND,QAAAA,KAAK,EAAE,CAND;AAONO,QAAAA;AAPM,OAAP;AASA;;AAED,WAAO;AACNL,MAAAA,GAAG,EAAEL,YAAY,GAAGA,YAAY,CAACK,GAAhB,GAAsBH,QAAQ,CAACG,GAD1C;AAENE,MAAAA,IAAI,EAAEP,YAAY,GAAGA,YAAY,CAACQ,KAAhB,GAAwBN,QAAQ,CAACK,IAF7C;AAGNC,MAAAA,KAAK,EAAER,YAAY,GAAGA,YAAY,CAACQ,KAAhB,GAAwBN,QAAQ,CAACK,IAH9C;AAIND,MAAAA,MAAM,EAAEN,YAAY,GAAGA,YAAY,CAACO,IAAhB,GAAuBL,QAAQ,CAACM,KAJ9C;AAKNJ,MAAAA,MAAM,EAAE,CALF;AAMND,MAAAA,KAAK,EAAE,CAND;AAONO,MAAAA;AAPM,KAAP;AASA,GA3DgC,EA2D9B,CAAEd,eAAF,EAAmBC,WAAnB,EAAgCZ,iBAAhC,EAAmDK,SAAnD,CA3D8B,CAAjC;AA6DA,QAAMqB,gBAAgB,GAAGnC,gBAAgB,CAAEO,oBAAF,CAAzC,CAvIG,CAyIH;;AACAd,EAAAA,eAAe,CAAE,MAAM;AACtB,QAAK,CAAE2B,eAAP,EAAyB;AACxB;AACA;;AACD,UAAMgB,QAAQ,GAAG,IAAIC,MAAM,CAACC,gBAAX,CAA6B5B,cAA7B,CAAjB;AACA0B,IAAAA,QAAQ,CAACG,OAAT,CAAkBnB,eAAlB,EAAmC;AAAEoB,MAAAA,UAAU,EAAE;AAAd,KAAnC;AAEA,WAAO,MAAM;AACZJ,MAAAA,QAAQ,CAACK,UAAT;AACA,KAFD;AAGA,GAVc,EAUZ,CAAErB,eAAF,CAVY,CAAf;AAYA3B,EAAAA,eAAe,CAAE,MAAM;AACtB,QAAK,CAAE4B,WAAP,EAAqB;AACpB;AACA;;AACD,UAAMe,QAAQ,GAAG,IAAIC,MAAM,CAACC,gBAAX,CAA6B5B,cAA7B,CAAjB;AACA0B,IAAAA,QAAQ,CAACG,OAAT,CAAkBlB,WAAlB,EAA+B;AAAEmB,MAAAA,UAAU,EAAE;AAAd,KAA/B;AAEA,WAAO,MAAM;AACZJ,MAAAA,QAAQ,CAACK,UAAT;AACA,KAFD;AAGA,GAVc,EAUZ,CAAEpB,WAAF,CAVY,CAAf;AAYA5B,EAAAA,eAAe,CAAE,MAAM;AACtB,QAAK,CAAE2B,eAAP,EAAyB;AACxB;AACA;;AACDA,IAAAA,eAAe,CAACc,aAAhB,CAA8BQ,WAA9B,CAA0CC,gBAA1C,CACC,QADD,EAECjC,cAFD;AAIA,WAAO,MAAM;AACZU,MAAAA,eAAe,CAACc,aAAhB,CAA8BQ,WAA9B,CAA0CE,mBAA1C,CACC,QADD,EAEClC,cAFD;AAIA,KALD;AAMA,GAdc,EAcZ,CAAEU,eAAF,CAdY,CAAf,CAlKG,CAkLH;AACA;AACA;;AACA,MAAO,CAAEA,eAAF,IAAqB,CAAEC,WAAzB,IAA0C,CAAEP,SAAjD,EAA6D;AAC5D,WAAO,IAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SACC,cAAC,OAAD;AACC,IAAA,GAAG,EAAGqB,gBADP;AAEC,IAAA,OAAO,EAAG,KAFX;AAGC,IAAA,aAAa,EAAGF,aAHjB;AAIC,IAAA,YAAY,EAAG,KAJhB,CAKC;AACA;AAND;AAOC,IAAA,kBAAkB,EAAG3B,qBAAqB,IAAI,IAP/C,CAQC;AACA;AATD;AAUC,IAAA,GAAG,EAAGF,YAAY,GAAG,IAAf,GAAsBS;AAV7B,KAWML,KAXN;AAYC,IAAA,SAAS,EAAGrB,UAAU,CACrB,4BADqB,EAErB,uCAFqB,EAGrBqB,KAAK,CAACqC,SAHe,CAZvB;AAiBC,IAAA,MAAM,EAAG,KAjBV;AAkBC,IAAA,IAAI,EAAG,KAlBR;AAmBC,IAAA,SAAS,EAAC;AAnBX,MAqBC;AACC,IAAA,SAAS,EAAC,iDADX;AAEC,IAAA,KAAK,EAAGtB;AAFT,KAIGlB,QAJH,CArBD,CADD;AA8BA;AACA;;AAED,eAAeH,qBAAf","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tuseCallback,\n\tuseMemo,\n\tcreateContext,\n\tuseReducer,\n\tuseLayoutEffect,\n} from '@wordpress/element';\nimport { Popover } from '@wordpress/components';\nimport { isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport usePopoverScroll from './use-popover-scroll';\n\nexport const InsertionPointOpenRef = createContext();\n\nfunction BlockPopoverInbetween( {\n\tpreviousClientId,\n\tnextClientId,\n\tchildren,\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n\t...props\n} ) {\n\t// This is a temporary hack to get the inbetween inserter to recompute properly.\n\tconst [ positionRecompute, forceRecompute ] = useReducer(\n\t\t( s ) => s + 1,\n\t\t0\n\t);\n\n\tconst { orientation, rootClientId, isVisible } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockListSettings,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tisBlockVisible,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst _rootClientId = getBlockRootClientId(\n\t\t\t\tpreviousClientId ?? nextClientId\n\t\t\t);\n\t\t\treturn {\n\t\t\t\torientation:\n\t\t\t\t\tgetBlockListSettings( _rootClientId )?.orientation ||\n\t\t\t\t\t'vertical',\n\t\t\t\trootClientId: _rootClientId,\n\t\t\t\tisVisible:\n\t\t\t\t\tisBlockVisible( previousClientId ) &&\n\t\t\t\t\tisBlockVisible( nextClientId ),\n\t\t\t};\n\t\t},\n\t\t[ previousClientId, nextClientId ]\n\t);\n\tconst previousElement = useBlockElement( previousClientId );\n\tconst nextElement = useBlockElement( nextClientId );\n\tconst isVertical = orientation === 'vertical';\n\tconst style = useMemo( () => {\n\t\tif ( ( ! previousElement && ! nextElement ) || ! isVisible ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tconst previousRect = previousElement\n\t\t\t? previousElement.getBoundingClientRect()\n\t\t\t: null;\n\t\tconst nextRect = nextElement\n\t\t\t? nextElement.getBoundingClientRect()\n\t\t\t: null;\n\n\t\tif ( isVertical ) {\n\t\t\treturn {\n\t\t\t\twidth: previousRect ? previousRect.width : nextRect.width,\n\t\t\t\theight:\n\t\t\t\t\tnextRect && previousRect\n\t\t\t\t\t\t? nextRect.top - previousRect.bottom\n\t\t\t\t\t\t: 0,\n\t\t\t};\n\t\t}\n\n\t\tlet width = 0;\n\t\tif ( previousRect && nextRect ) {\n\t\t\twidth = isRTL()\n\t\t\t\t? previousRect.left - nextRect.right\n\t\t\t\t: nextRect.left - previousRect.right;\n\t\t}\n\n\t\treturn {\n\t\t\twidth,\n\t\t\theight: previousRect ? previousRect.height : nextRect.height,\n\t\t};\n\t}, [\n\t\tpreviousElement,\n\t\tnextElement,\n\t\tisVertical,\n\t\tpositionRecompute,\n\t\tisVisible,\n\t] );\n\n\tconst getAnchorRect = useCallback( () => {\n\t\tif ( ( ! previousElement && ! nextElement ) || ! isVisible ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tconst { ownerDocument } = previousElement || nextElement;\n\n\t\tconst previousRect = previousElement\n\t\t\t? previousElement.getBoundingClientRect()\n\t\t\t: null;\n\t\tconst nextRect = nextElement\n\t\t\t? nextElement.getBoundingClientRect()\n\t\t\t: null;\n\n\t\tif ( isVertical ) {\n\t\t\tif ( isRTL() ) {\n\t\t\t\treturn {\n\t\t\t\t\ttop: previousRect ? previousRect.bottom : nextRect.top,\n\t\t\t\t\tleft: previousRect ? previousRect.right : nextRect.right,\n\t\t\t\t\tright: previousRect ? previousRect.right : nextRect.right,\n\t\t\t\t\tbottom: previousRect ? previousRect.bottom : nextRect.top,\n\t\t\t\t\theight: 0,\n\t\t\t\t\twidth: 0,\n\t\t\t\t\townerDocument,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttop: previousRect ? previousRect.bottom : nextRect.top,\n\t\t\t\tleft: previousRect ? previousRect.left : nextRect.left,\n\t\t\t\tright: previousRect ? previousRect.left : nextRect.left,\n\t\t\t\tbottom: previousRect ? previousRect.bottom : nextRect.top,\n\t\t\t\theight: 0,\n\t\t\t\twidth: 0,\n\t\t\t\townerDocument,\n\t\t\t};\n\t\t}\n\n\t\tif ( isRTL() ) {\n\t\t\treturn {\n\t\t\t\ttop: previousRect ? previousRect.top : nextRect.top,\n\t\t\t\tleft: previousRect ? previousRect.left : nextRect.right,\n\t\t\t\tright: previousRect ? previousRect.left : nextRect.right,\n\t\t\t\tbottom: previousRect ? previousRect.top : nextRect.top,\n\t\t\t\theight: 0,\n\t\t\t\twidth: 0,\n\t\t\t\townerDocument,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\ttop: previousRect ? previousRect.top : nextRect.top,\n\t\t\tleft: previousRect ? previousRect.right : nextRect.left,\n\t\t\tright: previousRect ? previousRect.right : nextRect.left,\n\t\t\tbottom: previousRect ? previousRect.left : nextRect.right,\n\t\t\theight: 0,\n\t\t\twidth: 0,\n\t\t\townerDocument,\n\t\t};\n\t}, [ previousElement, nextElement, positionRecompute, isVisible ] );\n\n\tconst popoverScrollRef = usePopoverScroll( __unstableContentRef );\n\n\t// This is only needed for a smooth transition when moving blocks.\n\tuseLayoutEffect( () => {\n\t\tif ( ! previousElement ) {\n\t\t\treturn;\n\t\t}\n\t\tconst observer = new window.MutationObserver( forceRecompute );\n\t\tobserver.observe( previousElement, { attributes: true } );\n\n\t\treturn () => {\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [ previousElement ] );\n\n\tuseLayoutEffect( () => {\n\t\tif ( ! nextElement ) {\n\t\t\treturn;\n\t\t}\n\t\tconst observer = new window.MutationObserver( forceRecompute );\n\t\tobserver.observe( nextElement, { attributes: true } );\n\n\t\treturn () => {\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [ nextElement ] );\n\n\tuseLayoutEffect( () => {\n\t\tif ( ! previousElement ) {\n\t\t\treturn;\n\t\t}\n\t\tpreviousElement.ownerDocument.defaultView.addEventListener(\n\t\t\t'resize',\n\t\t\tforceRecompute\n\t\t);\n\t\treturn () => {\n\t\t\tpreviousElement.ownerDocument.defaultView.removeEventListener(\n\t\t\t\t'resize',\n\t\t\t\tforceRecompute\n\t\t\t);\n\t\t};\n\t}, [ previousElement ] );\n\n\t// If there's either a previous or a next element, show the inbetween popover.\n\t// Note that drag and drop uses the inbetween popover to show the drop indicator\n\t// before the first block and after the last block.\n\tif ( ( ! previousElement && ! nextElement ) || ! isVisible ) {\n\t\treturn null;\n\t}\n\n\t/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n\t// While ideally it would be enough to capture the\n\t// bubbling focus event from the Inserter, due to the\n\t// characteristics of click focusing of `button`s in\n\t// Firefox and Safari, it is not reliable.\n\t//\n\t// See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n\treturn (\n\t\t<Popover\n\t\t\tref={ popoverScrollRef }\n\t\t\tanimate={ false }\n\t\t\tgetAnchorRect={ getAnchorRect }\n\t\t\tfocusOnMount={ false }\n\t\t\t// Render in the old slot if needed for backward compatibility,\n\t\t\t// otherwise render in place (not in the default popover slot).\n\t\t\t__unstableSlotName={ __unstablePopoverSlot || null }\n\t\t\t// Forces a remount of the popover when its position changes\n\t\t\t// This makes sure the popover doesn't animate from its previous position.\n\t\t\tkey={ nextClientId + '--' + rootClientId }\n\t\t\t{ ...props }\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-block-popover',\n\t\t\t\t'block-editor-block-popover__inbetween',\n\t\t\t\tprops.className\n\t\t\t) }\n\t\t\tresize={ false }\n\t\t\tflip={ false }\n\t\t\tplacement=\"bottom-start\"\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName=\"block-editor-block-popover__inbetween-container\"\n\t\t\t\tstyle={ style }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t</Popover>\n\t);\n\t/* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n}\n\nexport default BlockPopoverInbetween;\n"]}
@@ -62,8 +62,9 @@ function BlockPopover(_ref, ref) {
62
62
  // otherwise render in place (not in the default popover slot).
63
63
  ,
64
64
  __unstableSlotName: __unstablePopoverSlot || null,
65
- __unstableForcePosition: true,
66
- __unstableShift: true
65
+ resize: false,
66
+ flip: false,
67
+ shift: true
67
68
  }, props, {
68
69
  className: classnames('block-editor-block-popover', props.className)
69
70
  }), __unstableCoverTarget && createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-popover/index.js"],"names":["classnames","useMergeRefs","Popover","forwardRef","useMemo","__unstableUseBlockElement","useBlockElement","usePopoverScroll","BlockPopover","ref","clientId","bottomClientId","children","__unstableRefreshSize","__unstableCoverTarget","__unstablePopoverSlot","__unstableContentRef","props","selectedElement","lastSelectedElement","mergedRefs","style","position","width","offsetWidth","height","offsetHeight","anchorRef","top","bottom","className"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,YAAT,QAA6B,oBAA7B;AACA,SAASC,OAAT,QAAwB,uBAAxB;AACA,SAASC,UAAT,EAAqBC,OAArB,QAAoC,oBAApC;AAEA;AACA;AACA;;AACA,SAASC,yBAAyB,IAAIC,eAAtC,QAA6D,8CAA7D;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;;AAEA,SAASC,YAAT,OAWCC,GAXD,EAYE;AAAA,MAXD;AACCC,IAAAA,QADD;AAECC,IAAAA,cAFD;AAGCC,IAAAA,QAHD;AAICC,IAAAA,qBAJD;AAKCC,IAAAA,qBAAqB,GAAG,KALzB;AAMCC,IAAAA,qBAND;AAOCC,IAAAA,oBAPD;AAQC,OAAGC;AARJ,GAWC;AACD,QAAMC,eAAe,GAAGZ,eAAe,CAAEI,QAAF,CAAvC;AACA,QAAMS,mBAAmB,GAAGb,eAAe,CAAEK,cAAF,aAAEA,cAAF,cAAEA,cAAF,GAAoBD,QAApB,CAA3C;AACA,QAAMU,UAAU,GAAGnB,YAAY,CAAE,CAChCQ,GADgC,EAEhCF,gBAAgB,CAAES,oBAAF,CAFgB,CAAF,CAA/B;AAIA,QAAMK,KAAK,GAAGjB,OAAO,CAAE,MAAM;AAC5B,QAAK,CAAEc,eAAF,IAAqBC,mBAAmB,KAAKD,eAAlD,EAAoE;AACnE,aAAO,EAAP;AACA;;AAED,WAAO;AACNI,MAAAA,QAAQ,EAAE,UADJ;AAENC,MAAAA,KAAK,EAAEL,eAAe,CAACM,WAFjB;AAGNC,MAAAA,MAAM,EAAEP,eAAe,CAACQ;AAHlB,KAAP;AAKA,GAVoB,EAUlB,CAAER,eAAF,EAAmBC,mBAAnB,EAAwCN,qBAAxC,CAVkB,CAArB;;AAYA,MAAK,CAAEK,eAAF,IAAuBP,cAAc,IAAI,CAAEQ,mBAAhD,EAAwE;AACvE,WAAO,IAAP;AACA;;AAED,QAAMQ,SAAS,GAAG;AACjBC,IAAAA,GAAG,EAAEV,eADY;AAEjBW,IAAAA,MAAM,EAAEV;AAFS,GAAlB;AAKA,SACC,cAAC,OAAD;AACC,IAAA,GAAG,EAAGC,UADP;AAEC,IAAA,OAAO,EAAG,KAFX;AAGC,IAAA,QAAQ,EAAC,gBAHV;AAIC,IAAA,YAAY,EAAG,KAJhB;AAKC,IAAA,SAAS,EAAGO,SALb,CAMC;AACA;AAPD;AAQC,IAAA,kBAAkB,EAAGZ,qBAAqB,IAAI,IAR/C;AASC,IAAA,uBAAuB,MATxB;AAUC,IAAA,eAAe;AAVhB,KAWME,KAXN;AAYC,IAAA,SAAS,EAAGjB,UAAU,CACrB,4BADqB,EAErBiB,KAAK,CAACa,SAFe;AAZvB,MAiBGhB,qBAAqB,IAAI;AAAK,IAAA,KAAK,EAAGO;AAAb,KAAuBT,QAAvB,CAjB5B,EAkBG,CAAEE,qBAAF,IAA2BF,QAlB9B,CADD;AAsBA;;AAED,eAAeT,UAAU,CAAEK,YAAF,CAAzB","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useMergeRefs } from '@wordpress/compose';\nimport { Popover } from '@wordpress/components';\nimport { forwardRef, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport usePopoverScroll from './use-popover-scroll';\n\nfunction BlockPopover(\n\t{\n\t\tclientId,\n\t\tbottomClientId,\n\t\tchildren,\n\t\t__unstableRefreshSize,\n\t\t__unstableCoverTarget = false,\n\t\t__unstablePopoverSlot,\n\t\t__unstableContentRef,\n\t\t...props\n\t},\n\tref\n) {\n\tconst selectedElement = useBlockElement( clientId );\n\tconst lastSelectedElement = useBlockElement( bottomClientId ?? clientId );\n\tconst mergedRefs = useMergeRefs( [\n\t\tref,\n\t\tusePopoverScroll( __unstableContentRef ),\n\t] );\n\tconst style = useMemo( () => {\n\t\tif ( ! selectedElement || lastSelectedElement !== selectedElement ) {\n\t\t\treturn {};\n\t\t}\n\n\t\treturn {\n\t\t\tposition: 'absolute',\n\t\t\twidth: selectedElement.offsetWidth,\n\t\t\theight: selectedElement.offsetHeight,\n\t\t};\n\t}, [ selectedElement, lastSelectedElement, __unstableRefreshSize ] );\n\n\tif ( ! selectedElement || ( bottomClientId && ! lastSelectedElement ) ) {\n\t\treturn null;\n\t}\n\n\tconst anchorRef = {\n\t\ttop: selectedElement,\n\t\tbottom: lastSelectedElement,\n\t};\n\n\treturn (\n\t\t<Popover\n\t\t\tref={ mergedRefs }\n\t\t\tanimate={ false }\n\t\t\tposition=\"top right left\"\n\t\t\tfocusOnMount={ false }\n\t\t\tanchorRef={ anchorRef }\n\t\t\t// Render in the old slot if needed for backward compatibility,\n\t\t\t// otherwise render in place (not in the default popover slot).\n\t\t\t__unstableSlotName={ __unstablePopoverSlot || null }\n\t\t\t__unstableForcePosition\n\t\t\t__unstableShift\n\t\t\t{ ...props }\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-block-popover',\n\t\t\t\tprops.className\n\t\t\t) }\n\t\t>\n\t\t\t{ __unstableCoverTarget && <div style={ style }>{ children }</div> }\n\t\t\t{ ! __unstableCoverTarget && children }\n\t\t</Popover>\n\t);\n}\n\nexport default forwardRef( BlockPopover );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-popover/index.js"],"names":["classnames","useMergeRefs","Popover","forwardRef","useMemo","__unstableUseBlockElement","useBlockElement","usePopoverScroll","BlockPopover","ref","clientId","bottomClientId","children","__unstableRefreshSize","__unstableCoverTarget","__unstablePopoverSlot","__unstableContentRef","props","selectedElement","lastSelectedElement","mergedRefs","style","position","width","offsetWidth","height","offsetHeight","anchorRef","top","bottom","className"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,YAAT,QAA6B,oBAA7B;AACA,SAASC,OAAT,QAAwB,uBAAxB;AACA,SAASC,UAAT,EAAqBC,OAArB,QAAoC,oBAApC;AAEA;AACA;AACA;;AACA,SAASC,yBAAyB,IAAIC,eAAtC,QAA6D,8CAA7D;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;;AAEA,SAASC,YAAT,OAWCC,GAXD,EAYE;AAAA,MAXD;AACCC,IAAAA,QADD;AAECC,IAAAA,cAFD;AAGCC,IAAAA,QAHD;AAICC,IAAAA,qBAJD;AAKCC,IAAAA,qBAAqB,GAAG,KALzB;AAMCC,IAAAA,qBAND;AAOCC,IAAAA,oBAPD;AAQC,OAAGC;AARJ,GAWC;AACD,QAAMC,eAAe,GAAGZ,eAAe,CAAEI,QAAF,CAAvC;AACA,QAAMS,mBAAmB,GAAGb,eAAe,CAAEK,cAAF,aAAEA,cAAF,cAAEA,cAAF,GAAoBD,QAApB,CAA3C;AACA,QAAMU,UAAU,GAAGnB,YAAY,CAAE,CAChCQ,GADgC,EAEhCF,gBAAgB,CAAES,oBAAF,CAFgB,CAAF,CAA/B;AAIA,QAAMK,KAAK,GAAGjB,OAAO,CAAE,MAAM;AAC5B,QAAK,CAAEc,eAAF,IAAqBC,mBAAmB,KAAKD,eAAlD,EAAoE;AACnE,aAAO,EAAP;AACA;;AAED,WAAO;AACNI,MAAAA,QAAQ,EAAE,UADJ;AAENC,MAAAA,KAAK,EAAEL,eAAe,CAACM,WAFjB;AAGNC,MAAAA,MAAM,EAAEP,eAAe,CAACQ;AAHlB,KAAP;AAKA,GAVoB,EAUlB,CAAER,eAAF,EAAmBC,mBAAnB,EAAwCN,qBAAxC,CAVkB,CAArB;;AAYA,MAAK,CAAEK,eAAF,IAAuBP,cAAc,IAAI,CAAEQ,mBAAhD,EAAwE;AACvE,WAAO,IAAP;AACA;;AAED,QAAMQ,SAAS,GAAG;AACjBC,IAAAA,GAAG,EAAEV,eADY;AAEjBW,IAAAA,MAAM,EAAEV;AAFS,GAAlB;AAKA,SACC,cAAC,OAAD;AACC,IAAA,GAAG,EAAGC,UADP;AAEC,IAAA,OAAO,EAAG,KAFX;AAGC,IAAA,QAAQ,EAAC,gBAHV;AAIC,IAAA,YAAY,EAAG,KAJhB;AAKC,IAAA,SAAS,EAAGO,SALb,CAMC;AACA;AAPD;AAQC,IAAA,kBAAkB,EAAGZ,qBAAqB,IAAI,IAR/C;AASC,IAAA,MAAM,EAAG,KATV;AAUC,IAAA,IAAI,EAAG,KAVR;AAWC,IAAA,KAAK;AAXN,KAYME,KAZN;AAaC,IAAA,SAAS,EAAGjB,UAAU,CACrB,4BADqB,EAErBiB,KAAK,CAACa,SAFe;AAbvB,MAkBGhB,qBAAqB,IAAI;AAAK,IAAA,KAAK,EAAGO;AAAb,KAAuBT,QAAvB,CAlB5B,EAmBG,CAAEE,qBAAF,IAA2BF,QAnB9B,CADD;AAuBA;;AAED,eAAeT,UAAU,CAAEK,YAAF,CAAzB","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useMergeRefs } from '@wordpress/compose';\nimport { Popover } from '@wordpress/components';\nimport { forwardRef, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport usePopoverScroll from './use-popover-scroll';\n\nfunction BlockPopover(\n\t{\n\t\tclientId,\n\t\tbottomClientId,\n\t\tchildren,\n\t\t__unstableRefreshSize,\n\t\t__unstableCoverTarget = false,\n\t\t__unstablePopoverSlot,\n\t\t__unstableContentRef,\n\t\t...props\n\t},\n\tref\n) {\n\tconst selectedElement = useBlockElement( clientId );\n\tconst lastSelectedElement = useBlockElement( bottomClientId ?? clientId );\n\tconst mergedRefs = useMergeRefs( [\n\t\tref,\n\t\tusePopoverScroll( __unstableContentRef ),\n\t] );\n\tconst style = useMemo( () => {\n\t\tif ( ! selectedElement || lastSelectedElement !== selectedElement ) {\n\t\t\treturn {};\n\t\t}\n\n\t\treturn {\n\t\t\tposition: 'absolute',\n\t\t\twidth: selectedElement.offsetWidth,\n\t\t\theight: selectedElement.offsetHeight,\n\t\t};\n\t}, [ selectedElement, lastSelectedElement, __unstableRefreshSize ] );\n\n\tif ( ! selectedElement || ( bottomClientId && ! lastSelectedElement ) ) {\n\t\treturn null;\n\t}\n\n\tconst anchorRef = {\n\t\ttop: selectedElement,\n\t\tbottom: lastSelectedElement,\n\t};\n\n\treturn (\n\t\t<Popover\n\t\t\tref={ mergedRefs }\n\t\t\tanimate={ false }\n\t\t\tposition=\"top right left\"\n\t\t\tfocusOnMount={ false }\n\t\t\tanchorRef={ anchorRef }\n\t\t\t// Render in the old slot if needed for backward compatibility,\n\t\t\t// otherwise render in place (not in the default popover slot).\n\t\t\t__unstableSlotName={ __unstablePopoverSlot || null }\n\t\t\tresize={ false }\n\t\t\tflip={ false }\n\t\t\tshift\n\t\t\t{ ...props }\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-block-popover',\n\t\t\t\tprops.className\n\t\t\t) }\n\t\t>\n\t\t\t{ __unstableCoverTarget && <div style={ style }>{ children }</div> }\n\t\t\t{ ! __unstableCoverTarget && children }\n\t\t</Popover>\n\t);\n}\n\nexport default forwardRef( BlockPopover );\n"]}
@@ -89,9 +89,11 @@ function AutoBlockPreview(_ref) {
89
89
  documentElement.classList.add('block-editor-block-preview__content-iframe');
90
90
  documentElement.style.position = 'absolute';
91
91
  documentElement.style.width = '100%';
92
- bodyElement.style.padding = __experimentalPadding + 'px'; // necessary for contentResizeListener to work.
92
+ bodyElement.style.padding = __experimentalPadding + 'px'; // Necessary for contentResizeListener to work.
93
93
 
94
- bodyElement.style.position = 'relative';
94
+ bodyElement.style.boxSizing = 'border-box';
95
+ bodyElement.style.position = 'absolute';
96
+ bodyElement.style.width = '100%';
95
97
  }, []),
96
98
  "aria-hidden": true,
97
99
  tabIndex: -1,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-preview/auto.js"],"names":["Disabled","useResizeObserver","pure","useRefEffect","useSelect","useMemo","BlockList","Iframe","EditorStyles","__unstablePresetDuotoneFilter","PresetDuotoneFilter","store","MemoizedBlockList","MAX_HEIGHT","AutoBlockPreview","viewportWidth","__experimentalPadding","__experimentalMinHeight","containerResizeListener","width","containerWidth","contentResizeListener","height","contentHeight","styles","assets","duotone","select","settings","getSettings","__unstableResolvedAssets","__experimentalFeatures","color","editorStyles","css","__unstableType","svgFilters","default","theme","scale","transform","maxHeight","undefined","minHeight","bodyElement","ownerDocument","documentElement","classList","add","style","position","padding","pointerEvents","map","preset","slug"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Disabled } from '@wordpress/components';\nimport { useResizeObserver, pure, useRefEffect } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockList from '../block-list';\nimport Iframe from '../iframe';\nimport EditorStyles from '../editor-styles';\nimport { __unstablePresetDuotoneFilter as PresetDuotoneFilter } from '../../components/duotone';\nimport { store } from '../../store';\n\n// This is used to avoid rendering the block list if the sizes change.\nlet MemoizedBlockList;\n\nconst MAX_HEIGHT = 2000;\n\nfunction AutoBlockPreview( {\n\tviewportWidth,\n\t__experimentalPadding,\n\t__experimentalMinHeight,\n} ) {\n\tconst [ containerResizeListener, { width: containerWidth } ] =\n\t\tuseResizeObserver();\n\tconst [ contentResizeListener, { height: contentHeight } ] =\n\t\tuseResizeObserver();\n\tconst { styles, assets, duotone } = useSelect( ( select ) => {\n\t\tconst settings = select( store ).getSettings();\n\t\treturn {\n\t\t\tstyles: settings.styles,\n\t\t\tassets: settings.__unstableResolvedAssets,\n\t\t\tduotone: settings.__experimentalFeatures?.color?.duotone,\n\t\t};\n\t}, [] );\n\n\t// Avoid scrollbars for pattern previews.\n\tconst editorStyles = useMemo( () => {\n\t\tif ( styles ) {\n\t\t\treturn [\n\t\t\t\t...styles,\n\t\t\t\t{\n\t\t\t\t\tcss: 'body{height:auto;overflow:hidden;}',\n\t\t\t\t\t__unstableType: 'presets',\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\n\t\treturn styles;\n\t}, [ styles ] );\n\n\tconst svgFilters = useMemo( () => {\n\t\treturn [ ...( duotone?.default ?? [] ), ...( duotone?.theme ?? [] ) ];\n\t}, [ duotone ] );\n\n\t// Initialize on render instead of module top level, to avoid circular dependency issues.\n\tMemoizedBlockList = MemoizedBlockList || pure( BlockList );\n\n\tconst scale = containerWidth / viewportWidth;\n\treturn (\n\t\t<div className=\"block-editor-block-preview__container\">\n\t\t\t{ containerResizeListener }\n\t\t\t<Disabled\n\t\t\t\tclassName=\"block-editor-block-preview__content\"\n\t\t\t\tstyle={ {\n\t\t\t\t\ttransform: `scale(${ scale })`,\n\t\t\t\t\theight: contentHeight * scale,\n\t\t\t\t\tmaxHeight:\n\t\t\t\t\t\tcontentHeight > MAX_HEIGHT\n\t\t\t\t\t\t\t? MAX_HEIGHT * scale\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\tminHeight: __experimentalMinHeight,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<Iframe\n\t\t\t\t\thead={ <EditorStyles styles={ editorStyles } /> }\n\t\t\t\t\tassets={ assets }\n\t\t\t\t\tcontentRef={ useRefEffect( ( bodyElement ) => {\n\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\townerDocument: { documentElement },\n\t\t\t\t\t\t} = bodyElement;\n\t\t\t\t\t\tdocumentElement.classList.add(\n\t\t\t\t\t\t\t'block-editor-block-preview__content-iframe'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tdocumentElement.style.position = 'absolute';\n\t\t\t\t\t\tdocumentElement.style.width = '100%';\n\t\t\t\t\t\tbodyElement.style.padding =\n\t\t\t\t\t\t\t__experimentalPadding + 'px';\n\n\t\t\t\t\t\t// necessary for contentResizeListener to work.\n\t\t\t\t\t\tbodyElement.style.position = 'relative';\n\t\t\t\t\t}, [] ) }\n\t\t\t\t\taria-hidden\n\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\twidth: viewportWidth,\n\t\t\t\t\t\theight: contentHeight,\n\t\t\t\t\t\tpointerEvents: 'none',\n\t\t\t\t\t\t// This is a catch-all max-height for patterns.\n\t\t\t\t\t\t// See: https://github.com/WordPress/gutenberg/pull/38175.\n\t\t\t\t\t\tmaxHeight: MAX_HEIGHT,\n\t\t\t\t\t\tminHeight:\n\t\t\t\t\t\t\tscale !== 0 && scale < 1 && __experimentalMinHeight\n\t\t\t\t\t\t\t\t? __experimentalMinHeight / scale\n\t\t\t\t\t\t\t\t: __experimentalMinHeight,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ contentResizeListener }\n\t\t\t\t\t{\n\t\t\t\t\t\t/* Filters need to be rendered before children to avoid Safari rendering issues. */\n\t\t\t\t\t\tsvgFilters.map( ( preset ) => (\n\t\t\t\t\t\t\t<PresetDuotoneFilter\n\t\t\t\t\t\t\t\tpreset={ preset }\n\t\t\t\t\t\t\t\tkey={ preset.slug }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) )\n\t\t\t\t\t}\n\t\t\t\t\t<MemoizedBlockList renderAppender={ false } />\n\t\t\t\t</Iframe>\n\t\t\t</Disabled>\n\t\t</div>\n\t);\n}\n\nexport default AutoBlockPreview;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-preview/auto.js"],"names":["Disabled","useResizeObserver","pure","useRefEffect","useSelect","useMemo","BlockList","Iframe","EditorStyles","__unstablePresetDuotoneFilter","PresetDuotoneFilter","store","MemoizedBlockList","MAX_HEIGHT","AutoBlockPreview","viewportWidth","__experimentalPadding","__experimentalMinHeight","containerResizeListener","width","containerWidth","contentResizeListener","height","contentHeight","styles","assets","duotone","select","settings","getSettings","__unstableResolvedAssets","__experimentalFeatures","color","editorStyles","css","__unstableType","svgFilters","default","theme","scale","transform","maxHeight","undefined","minHeight","bodyElement","ownerDocument","documentElement","classList","add","style","position","padding","boxSizing","pointerEvents","map","preset","slug"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Disabled } from '@wordpress/components';\nimport { useResizeObserver, pure, useRefEffect } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockList from '../block-list';\nimport Iframe from '../iframe';\nimport EditorStyles from '../editor-styles';\nimport { __unstablePresetDuotoneFilter as PresetDuotoneFilter } from '../../components/duotone';\nimport { store } from '../../store';\n\n// This is used to avoid rendering the block list if the sizes change.\nlet MemoizedBlockList;\n\nconst MAX_HEIGHT = 2000;\n\nfunction AutoBlockPreview( {\n\tviewportWidth,\n\t__experimentalPadding,\n\t__experimentalMinHeight,\n} ) {\n\tconst [ containerResizeListener, { width: containerWidth } ] =\n\t\tuseResizeObserver();\n\tconst [ contentResizeListener, { height: contentHeight } ] =\n\t\tuseResizeObserver();\n\tconst { styles, assets, duotone } = useSelect( ( select ) => {\n\t\tconst settings = select( store ).getSettings();\n\t\treturn {\n\t\t\tstyles: settings.styles,\n\t\t\tassets: settings.__unstableResolvedAssets,\n\t\t\tduotone: settings.__experimentalFeatures?.color?.duotone,\n\t\t};\n\t}, [] );\n\n\t// Avoid scrollbars for pattern previews.\n\tconst editorStyles = useMemo( () => {\n\t\tif ( styles ) {\n\t\t\treturn [\n\t\t\t\t...styles,\n\t\t\t\t{\n\t\t\t\t\tcss: 'body{height:auto;overflow:hidden;}',\n\t\t\t\t\t__unstableType: 'presets',\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\n\t\treturn styles;\n\t}, [ styles ] );\n\n\tconst svgFilters = useMemo( () => {\n\t\treturn [ ...( duotone?.default ?? [] ), ...( duotone?.theme ?? [] ) ];\n\t}, [ duotone ] );\n\n\t// Initialize on render instead of module top level, to avoid circular dependency issues.\n\tMemoizedBlockList = MemoizedBlockList || pure( BlockList );\n\n\tconst scale = containerWidth / viewportWidth;\n\treturn (\n\t\t<div className=\"block-editor-block-preview__container\">\n\t\t\t{ containerResizeListener }\n\t\t\t<Disabled\n\t\t\t\tclassName=\"block-editor-block-preview__content\"\n\t\t\t\tstyle={ {\n\t\t\t\t\ttransform: `scale(${ scale })`,\n\t\t\t\t\theight: contentHeight * scale,\n\t\t\t\t\tmaxHeight:\n\t\t\t\t\t\tcontentHeight > MAX_HEIGHT\n\t\t\t\t\t\t\t? MAX_HEIGHT * scale\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\tminHeight: __experimentalMinHeight,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<Iframe\n\t\t\t\t\thead={ <EditorStyles styles={ editorStyles } /> }\n\t\t\t\t\tassets={ assets }\n\t\t\t\t\tcontentRef={ useRefEffect( ( bodyElement ) => {\n\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\townerDocument: { documentElement },\n\t\t\t\t\t\t} = bodyElement;\n\t\t\t\t\t\tdocumentElement.classList.add(\n\t\t\t\t\t\t\t'block-editor-block-preview__content-iframe'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tdocumentElement.style.position = 'absolute';\n\t\t\t\t\t\tdocumentElement.style.width = '100%';\n\t\t\t\t\t\tbodyElement.style.padding =\n\t\t\t\t\t\t\t__experimentalPadding + 'px';\n\n\t\t\t\t\t\t// Necessary for contentResizeListener to work.\n\t\t\t\t\t\tbodyElement.style.boxSizing = 'border-box';\n\t\t\t\t\t\tbodyElement.style.position = 'absolute';\n\t\t\t\t\t\tbodyElement.style.width = '100%';\n\t\t\t\t\t}, [] ) }\n\t\t\t\t\taria-hidden\n\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\twidth: viewportWidth,\n\t\t\t\t\t\theight: contentHeight,\n\t\t\t\t\t\tpointerEvents: 'none',\n\t\t\t\t\t\t// This is a catch-all max-height for patterns.\n\t\t\t\t\t\t// See: https://github.com/WordPress/gutenberg/pull/38175.\n\t\t\t\t\t\tmaxHeight: MAX_HEIGHT,\n\t\t\t\t\t\tminHeight:\n\t\t\t\t\t\t\tscale !== 0 && scale < 1 && __experimentalMinHeight\n\t\t\t\t\t\t\t\t? __experimentalMinHeight / scale\n\t\t\t\t\t\t\t\t: __experimentalMinHeight,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ contentResizeListener }\n\t\t\t\t\t{\n\t\t\t\t\t\t/* Filters need to be rendered before children to avoid Safari rendering issues. */\n\t\t\t\t\t\tsvgFilters.map( ( preset ) => (\n\t\t\t\t\t\t\t<PresetDuotoneFilter\n\t\t\t\t\t\t\t\tpreset={ preset }\n\t\t\t\t\t\t\t\tkey={ preset.slug }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) )\n\t\t\t\t\t}\n\t\t\t\t\t<MemoizedBlockList renderAppender={ false } />\n\t\t\t\t</Iframe>\n\t\t\t</Disabled>\n\t\t</div>\n\t);\n}\n\nexport default AutoBlockPreview;\n"]}
@@ -56,6 +56,7 @@ export function BlockSettingsDropdown(_ref2) {
56
56
  clientIds,
57
57
  __experimentalSelectBlock,
58
58
  children,
59
+ __unstableDisplayLocation,
59
60
  ...props
60
61
  } = _ref2;
61
62
  const blockClientIds = castArray(clientIds);
@@ -212,7 +213,8 @@ export function BlockSettingsDropdown(_ref2) {
212
213
  fillProps: {
213
214
  onClose
214
215
  },
215
- clientIds: clientIds
216
+ clientIds: clientIds,
217
+ __unstableDisplayLocation: __unstableDisplayLocation
216
218
  }), typeof children === 'function' ? children({
217
219
  onClose
218
220
  }) : Children.map(child => cloneElement(child, {