@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
@@ -7,8 +7,6 @@ exports.default = exports.BlockMover = exports.BLOCK_MOVER_DIRECTION_TOP = expor
7
7
 
8
8
  var _element = require("@wordpress/element");
9
9
 
10
- var _lodash = require("lodash");
11
-
12
10
  var _reactNative = require("react-native");
13
11
 
14
12
  var _i18n = require("@wordpress/i18n");
@@ -161,12 +159,12 @@ var _default = (0, _compose.compose)((0, _data.withSelect)((select, _ref2) => {
161
159
  getBlockRootClientId,
162
160
  getBlockOrder
163
161
  } = select(_store.store);
164
- const normalizedClientIds = (0, _lodash.castArray)(clientIds);
165
- const firstClientId = (0, _lodash.first)(normalizedClientIds);
162
+ const normalizedClientIds = Array.isArray(clientIds) ? clientIds : [clientIds];
163
+ const firstClientId = normalizedClientIds[0];
166
164
  const rootClientId = getBlockRootClientId(firstClientId);
167
165
  const blockOrder = getBlockOrder(rootClientId);
168
166
  const firstIndex = getBlockIndex(firstClientId);
169
- const lastIndex = getBlockIndex((0, _lodash.last)(normalizedClientIds));
167
+ const lastIndex = getBlockIndex(normalizedClientIds[normalizedClientIds.length - 1]);
170
168
  return {
171
169
  firstIndex,
172
170
  numberOfBlocks: blockOrder.length - 1,
@@ -186,9 +184,27 @@ var _default = (0, _compose.compose)((0, _data.withSelect)((select, _ref2) => {
186
184
  moveBlocksToPosition
187
185
  } = dispatch(_store.store);
188
186
  return {
189
- onMoveDown: (0, _lodash.partial)(moveBlocksDown, clientIds, rootClientId),
190
- onMoveUp: (0, _lodash.partial)(moveBlocksUp, clientIds, rootClientId),
191
- onLongMove: targetIndex => (0, _lodash.partial)(moveBlocksToPosition, clientIds, rootClientId, targetIndex)
187
+ onMoveDown: function () {
188
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
189
+ args[_key] = arguments[_key];
190
+ }
191
+
192
+ return moveBlocksDown(clientIds, rootClientId, ...args);
193
+ },
194
+ onMoveUp: function () {
195
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
196
+ args[_key2] = arguments[_key2];
197
+ }
198
+
199
+ return moveBlocksUp(clientIds, rootClientId, ...args);
200
+ },
201
+ onLongMove: targetIndex => function () {
202
+ for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
203
+ args[_key3] = arguments[_key3];
204
+ }
205
+
206
+ return moveBlocksToPosition(clientIds, rootClientId, targetIndex, ...args);
207
+ }
192
208
  };
193
209
  }), _compose.withInstanceId)(BlockMover);
194
210
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-mover/index.native.js"],"names":["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","Platform","OS","select","clientIds","getBlockIndex","canMoveBlocks","getBlockRootClientId","getBlockOrder","blockEditorStore","normalizedClientIds","firstClientId","blockOrder","lastIndex","length","dispatch","moveBlocksDown","moveBlocksUp","moveBlocksToPosition","targetIndex","withInstanceId"],"mappings":";;;;;;;AAaA;;AAVA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AAMA;;AACA;;AAnBA;AACA;AACA;;AAIA;AACA;AACA;;AAOA;AACA;AACA;AAIO,MAAMA,yBAAyB,GAAG,iCAAlC;;AACA,MAAMC,4BAA4B,GACxC,oCADM;;;AAGA,MAAMC,UAAU,GAAG,QAWnB;AAAA,MAXqB;AAC3BC,IAAAA,OAD2B;AAE3BC,IAAAA,MAF2B;AAG3BC,IAAAA,OAH2B;AAI3BC,IAAAA,UAJ2B;AAK3BC,IAAAA,QAL2B;AAM3BC,IAAAA,UAN2B;AAO3BC,IAAAA,UAP2B;AAQ3BC,IAAAA,cAR2B;AAS3BC,IAAAA,YAT2B;AAU3BC,IAAAA;AAV2B,GAWrB;AACN,QAAMC,SAAS,GAAG,sBAAlB;AACA,QAAM,CAAEC,mBAAF,EAAuBC,sBAAvB,IAAkD,uBAAU,KAAV,CAAxD;AACA,QAAM,CAAEC,mBAAF,EAAuBC,sBAAvB,IACL,uBAAUC,SAAV,CADD;;AAEA,QAAMC,kBAAkB,GAAKC,SAAF,IAAiB,MAAM;AACjD,QAAK,CAAEP,SAAS,CAACQ,OAAjB,EAA2B;AAC1BJ,MAAAA,sBAAsB,CAAEC,SAAF,CAAtB;AACA;AACA;;AAEDD,IAAAA,sBAAsB,CAAEG,SAAF,CAAtB;AACAL,IAAAA,sBAAsB,CAAE,IAAF,CAAtB;AACA,GARD,CALM,CAeN;;;AACA,0BAAW,MAAM;AAChB,QAAKD,mBAAL,EAA2B;AAAA;;AAC1B,4BAAAD,SAAS,CAACQ,OAAV,0EAAmBC,aAAnB;AACAP,MAAAA,sBAAsB,CAAE,KAAF,CAAtB;AACA;AACD,GALD,EAKG,CAAED,mBAAF,CALH;AAOA,QAAM;AACLS,IAAAA,WAAW,EAAE;AACZC,MAAAA,kBADY;AAEZC,MAAAA,iBAFY;AAGZC,MAAAA,eAHY;AAIZC,MAAAA;AAJY,KADR;AAOLC,IAAAA,IAAI,EAAE;AAAEC,MAAAA,QAAQ,EAAEC,kBAAZ;AAAgCC,MAAAA,OAAO,EAAEC;AAAzC,KAPD;AAQLC,IAAAA,KAAK,EAAE;AAAEJ,MAAAA,QAAQ,EAAEK,mBAAZ;AAAiCH,MAAAA,OAAO,EAAEI;AAA1C;AARF,MASF,sCAAgBvB,qBAAhB,EAAuC;AAAEH,IAAAA;AAAF,GAAvC,CATJ;AAWA,QAAM2B,qBAAqB,GAAG,CAC7B;AACCR,IAAAA,IAAI,EAAEE,kBADP;AAECO,IAAAA,KAAK,EAAE,cAAI,aAAJ,CAFR;AAGCC,IAAAA,KAAK,EAAEtC,yBAHR;AAICuC,IAAAA,QAAQ,EAAE,MAAM;AACf/B,MAAAA,UAAU,GAAI,CAAJ,CAAV;AACA;AANF,GAD6B,EAS7B;AACCoB,IAAAA,IAAI,EAAEI,iBADP;AAECK,IAAAA,KAAK,EAAE,cAAI,gBAAJ,CAFR;AAGCC,IAAAA,KAAK,EAAErC,4BAHR;AAICsC,IAAAA,QAAQ,EAAE,MAAM;AACf/B,MAAAA,UAAU,GAAIE,cAAJ,CAAV;AACA;AANF,GAT6B,EAiB5B8B,MAjB4B,CAiBlBC,EAAF,IAAUA,EAAE,CAACH,KAAH,KAAatB,mBAjBH,CAA9B;;AAmBA,QAAM0B,cAAc,GAAKJ,KAAF,IAAa;AACnC,UAAMK,MAAM,GAAGP,qBAAqB,CAACQ,IAAtB,CACZH,EAAF,IAAUA,EAAE,CAACH,KAAH,KAAaA,KADT,CAAf;AAGA,QAAKK,MAAM,IAAIA,MAAM,CAACJ,QAAtB,EAAiCI,MAAM,CAACJ,QAAP;AACjC,GALD;;AAOA,QAAMM,iBAAiB,GAAG,0BACzB1B,kBAAkB,CAAEnB,yBAAF,CADO,EAEzB,EAFyB,CAA1B;AAIA,QAAM8C,mBAAmB,GAAG,0BAC3B3B,kBAAkB,CAAElB,4BAAF,CADS,EAE3B,EAF2B,CAA5B;;AAKA,MAAK,CAAEI,OAAF,IAAeF,OAAO,IAAIC,MAAX,IAAqB,CAAEO,YAA3C,EAA4D;AAC3D,WAAO,IAAP;AACA;;AAED,SACC,qDACC,4BAAC,yBAAD;AACC,IAAA,KAAK,EAAG,CAAER,OAAF,GAAY+B,mBAAZ,GAAkCR,eAD3C;AAEC,IAAA,UAAU,EAAGvB,OAFd;AAGC,IAAA,OAAO,EAAGI,QAHX;AAIC,IAAA,WAAW,EAAGsC,iBAJf;AAKC,IAAA,IAAI,EAAGf,kBALR;AAMC,IAAA,UAAU,EAAG;AAAEiB,MAAAA,IAAI,EAAEvB;AAAR;AANd,IADD,EAUC,4BAAC,yBAAD;AACC,IAAA,KAAK,EAAG,CAAEpB,MAAF,GAAW+B,kBAAX,GAAgCR,cADzC;AAEC,IAAA,UAAU,EAAGvB,MAFd;AAGC,IAAA,OAAO,EAAGE,UAHX;AAIC,IAAA,WAAW,EAAGwC,mBAJf;AAKC,IAAA,IAAI,EAAGd,iBALR;AAMC,IAAA,UAAU,EAAG;AACZe,MAAAA,IAAI,EAAEtB;AADM;AANd,IAVD,EAqBC,4BAAC,kBAAD;AACC,IAAA,GAAG,EAAGZ,SADP;AAEC,IAAA,OAAO,EAAGuB,qBAFX;AAGC,IAAA,QAAQ,EAAGM,cAHZ;AAIC,IAAA,KAAK,EAAG,cAAI,uBAAJ,CAJT;AAKC,IAAA,SAAS,EAAG,IALb;AAMC,IAAA,gBAAgB,EAAGM,sBAASC,EAAT,KAAgB;AANpC,IArBD,CADD;AAgCA,CApHM;;;;eAsHQ,sBACd,sBAAY,CAAEC,MAAF,YAA6B;AAAA,MAAnB;AAAEC,IAAAA;AAAF,GAAmB;AACxC,QAAM;AACLC,IAAAA,aADK;AAELC,IAAAA,aAFK;AAGLC,IAAAA,oBAHK;AAILC,IAAAA;AAJK,MAKFL,MAAM,CAAEM,YAAF,CALV;AAMA,QAAMC,mBAAmB,GAAG,uBAAWN,SAAX,CAA5B;AACA,QAAMO,aAAa,GAAG,mBAAOD,mBAAP,CAAtB;AACA,QAAM9C,YAAY,GAAG2C,oBAAoB,CAAEI,aAAF,CAAzC;AACA,QAAMC,UAAU,GAAGJ,aAAa,CAAE5C,YAAF,CAAhC;AACA,QAAMF,UAAU,GAAG2C,aAAa,CAAEM,aAAF,CAAhC;AACA,QAAME,SAAS,GAAGR,aAAa,CAAE,kBAAMK,mBAAN,CAAF,CAA/B;AAEA,SAAO;AACNhD,IAAAA,UADM;AAENC,IAAAA,cAAc,EAAEiD,UAAU,CAACE,MAAX,GAAoB,CAF9B;AAGN1D,IAAAA,OAAO,EAAEM,UAAU,KAAK,CAHlB;AAINL,IAAAA,MAAM,EAAEwD,SAAS,KAAKD,UAAU,CAACE,MAAX,GAAoB,CAJpC;AAKNxD,IAAAA,OAAO,EAAEgD,aAAa,CAAEF,SAAF,EAAaxC,YAAb,CALhB;AAMNA,IAAAA;AANM,GAAP;AAQA,CAtBD,CADc,EAwBd,wBAAc,CAAEmD,QAAF,YAA6C;AAAA,MAAjC;AAAEX,IAAAA,SAAF;AAAaxC,IAAAA;AAAb,GAAiC;AAC1D,QAAM;AAAEoD,IAAAA,cAAF;AAAkBC,IAAAA,YAAlB;AAAgCC,IAAAA;AAAhC,MACLH,QAAQ,CAAEN,YAAF,CADT;AAEA,SAAO;AACNlD,IAAAA,UAAU,EAAE,qBAASyD,cAAT,EAAyBZ,SAAzB,EAAoCxC,YAApC,CADN;AAENJ,IAAAA,QAAQ,EAAE,qBAASyD,YAAT,EAAuBb,SAAvB,EAAkCxC,YAAlC,CAFJ;AAGNH,IAAAA,UAAU,EAAI0D,WAAF,IACX,qBACCD,oBADD,EAECd,SAFD,EAGCxC,YAHD,EAICuD,WAJD;AAJK,GAAP;AAWA,CAdD,CAxBc,EAuCdC,uBAvCc,EAwCZjE,UAxCY,C","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":["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","Platform","OS","select","clientIds","getBlockIndex","canMoveBlocks","getBlockRootClientId","getBlockOrder","blockEditorStore","normalizedClientIds","Array","isArray","firstClientId","blockOrder","lastIndex","length","dispatch","moveBlocksDown","moveBlocksUp","moveBlocksToPosition","args","targetIndex","withInstanceId"],"mappings":";;;;;;;AAYA;;AATA;;AAKA;;AACA;;AACA;;AACA;;AAMA;;AACA;;AAlBA;AACA;AACA;;AAGA;AACA;AACA;;AAOA;AACA;AACA;AAIO,MAAMA,yBAAyB,GAAG,iCAAlC;;AACA,MAAMC,4BAA4B,GACxC,oCADM;;;AAGA,MAAMC,UAAU,GAAG,QAWnB;AAAA,MAXqB;AAC3BC,IAAAA,OAD2B;AAE3BC,IAAAA,MAF2B;AAG3BC,IAAAA,OAH2B;AAI3BC,IAAAA,UAJ2B;AAK3BC,IAAAA,QAL2B;AAM3BC,IAAAA,UAN2B;AAO3BC,IAAAA,UAP2B;AAQ3BC,IAAAA,cAR2B;AAS3BC,IAAAA,YAT2B;AAU3BC,IAAAA;AAV2B,GAWrB;AACN,QAAMC,SAAS,GAAG,sBAAlB;AACA,QAAM,CAAEC,mBAAF,EAAuBC,sBAAvB,IAAkD,uBAAU,KAAV,CAAxD;AACA,QAAM,CAAEC,mBAAF,EAAuBC,sBAAvB,IACL,uBAAUC,SAAV,CADD;;AAEA,QAAMC,kBAAkB,GAAKC,SAAF,IAAiB,MAAM;AACjD,QAAK,CAAEP,SAAS,CAACQ,OAAjB,EAA2B;AAC1BJ,MAAAA,sBAAsB,CAAEC,SAAF,CAAtB;AACA;AACA;;AAEDD,IAAAA,sBAAsB,CAAEG,SAAF,CAAtB;AACAL,IAAAA,sBAAsB,CAAE,IAAF,CAAtB;AACA,GARD,CALM,CAeN;;;AACA,0BAAW,MAAM;AAChB,QAAKD,mBAAL,EAA2B;AAAA;;AAC1B,4BAAAD,SAAS,CAACQ,OAAV,0EAAmBC,aAAnB;AACAP,MAAAA,sBAAsB,CAAE,KAAF,CAAtB;AACA;AACD,GALD,EAKG,CAAED,mBAAF,CALH;AAOA,QAAM;AACLS,IAAAA,WAAW,EAAE;AACZC,MAAAA,kBADY;AAEZC,MAAAA,iBAFY;AAGZC,MAAAA,eAHY;AAIZC,MAAAA;AAJY,KADR;AAOLC,IAAAA,IAAI,EAAE;AAAEC,MAAAA,QAAQ,EAAEC,kBAAZ;AAAgCC,MAAAA,OAAO,EAAEC;AAAzC,KAPD;AAQLC,IAAAA,KAAK,EAAE;AAAEJ,MAAAA,QAAQ,EAAEK,mBAAZ;AAAiCH,MAAAA,OAAO,EAAEI;AAA1C;AARF,MASF,sCAAgBvB,qBAAhB,EAAuC;AAAEH,IAAAA;AAAF,GAAvC,CATJ;AAWA,QAAM2B,qBAAqB,GAAG,CAC7B;AACCR,IAAAA,IAAI,EAAEE,kBADP;AAECO,IAAAA,KAAK,EAAE,cAAI,aAAJ,CAFR;AAGCC,IAAAA,KAAK,EAAEtC,yBAHR;AAICuC,IAAAA,QAAQ,EAAE,MAAM;AACf/B,MAAAA,UAAU,GAAI,CAAJ,CAAV;AACA;AANF,GAD6B,EAS7B;AACCoB,IAAAA,IAAI,EAAEI,iBADP;AAECK,IAAAA,KAAK,EAAE,cAAI,gBAAJ,CAFR;AAGCC,IAAAA,KAAK,EAAErC,4BAHR;AAICsC,IAAAA,QAAQ,EAAE,MAAM;AACf/B,MAAAA,UAAU,GAAIE,cAAJ,CAAV;AACA;AANF,GAT6B,EAiB5B8B,MAjB4B,CAiBlBC,EAAF,IAAUA,EAAE,CAACH,KAAH,KAAatB,mBAjBH,CAA9B;;AAmBA,QAAM0B,cAAc,GAAKJ,KAAF,IAAa;AACnC,UAAMK,MAAM,GAAGP,qBAAqB,CAACQ,IAAtB,CACZH,EAAF,IAAUA,EAAE,CAACH,KAAH,KAAaA,KADT,CAAf;AAGA,QAAKK,MAAM,IAAIA,MAAM,CAACJ,QAAtB,EAAiCI,MAAM,CAACJ,QAAP;AACjC,GALD;;AAOA,QAAMM,iBAAiB,GAAG,0BACzB1B,kBAAkB,CAAEnB,yBAAF,CADO,EAEzB,EAFyB,CAA1B;AAIA,QAAM8C,mBAAmB,GAAG,0BAC3B3B,kBAAkB,CAAElB,4BAAF,CADS,EAE3B,EAF2B,CAA5B;;AAKA,MAAK,CAAEI,OAAF,IAAeF,OAAO,IAAIC,MAAX,IAAqB,CAAEO,YAA3C,EAA4D;AAC3D,WAAO,IAAP;AACA;;AAED,SACC,qDACC,4BAAC,yBAAD;AACC,IAAA,KAAK,EAAG,CAAER,OAAF,GAAY+B,mBAAZ,GAAkCR,eAD3C;AAEC,IAAA,UAAU,EAAGvB,OAFd;AAGC,IAAA,OAAO,EAAGI,QAHX;AAIC,IAAA,WAAW,EAAGsC,iBAJf;AAKC,IAAA,IAAI,EAAGf,kBALR;AAMC,IAAA,UAAU,EAAG;AAAEiB,MAAAA,IAAI,EAAEvB;AAAR;AANd,IADD,EAUC,4BAAC,yBAAD;AACC,IAAA,KAAK,EAAG,CAAEpB,MAAF,GAAW+B,kBAAX,GAAgCR,cADzC;AAEC,IAAA,UAAU,EAAGvB,MAFd;AAGC,IAAA,OAAO,EAAGE,UAHX;AAIC,IAAA,WAAW,EAAGwC,mBAJf;AAKC,IAAA,IAAI,EAAGd,iBALR;AAMC,IAAA,UAAU,EAAG;AACZe,MAAAA,IAAI,EAAEtB;AADM;AANd,IAVD,EAqBC,4BAAC,kBAAD;AACC,IAAA,GAAG,EAAGZ,SADP;AAEC,IAAA,OAAO,EAAGuB,qBAFX;AAGC,IAAA,QAAQ,EAAGM,cAHZ;AAIC,IAAA,KAAK,EAAG,cAAI,uBAAJ,CAJT;AAKC,IAAA,SAAS,EAAG,IALb;AAMC,IAAA,gBAAgB,EAAGM,sBAASC,EAAT,KAAgB;AANpC,IArBD,CADD;AAgCA,CApHM;;;;eAsHQ,sBACd,sBAAY,CAAEC,MAAF,YAA6B;AAAA,MAAnB;AAAEC,IAAAA;AAAF,GAAmB;AACxC,QAAM;AACLC,IAAAA,aADK;AAELC,IAAAA,aAFK;AAGLC,IAAAA,oBAHK;AAILC,IAAAA;AAJK,MAKFL,MAAM,CAAEM,YAAF,CALV;AAMA,QAAMC,mBAAmB,GAAGC,KAAK,CAACC,OAAN,CAAeR,SAAf,IACzBA,SADyB,GAEzB,CAAEA,SAAF,CAFH;AAGA,QAAMS,aAAa,GAAGH,mBAAmB,CAAE,CAAF,CAAzC;AACA,QAAM9C,YAAY,GAAG2C,oBAAoB,CAAEM,aAAF,CAAzC;AACA,QAAMC,UAAU,GAAGN,aAAa,CAAE5C,YAAF,CAAhC;AACA,QAAMF,UAAU,GAAG2C,aAAa,CAAEQ,aAAF,CAAhC;AACA,QAAME,SAAS,GAAGV,aAAa,CAC9BK,mBAAmB,CAAEA,mBAAmB,CAACM,MAApB,GAA6B,CAA/B,CADW,CAA/B;AAIA,SAAO;AACNtD,IAAAA,UADM;AAENC,IAAAA,cAAc,EAAEmD,UAAU,CAACE,MAAX,GAAoB,CAF9B;AAGN5D,IAAAA,OAAO,EAAEM,UAAU,KAAK,CAHlB;AAINL,IAAAA,MAAM,EAAE0D,SAAS,KAAKD,UAAU,CAACE,MAAX,GAAoB,CAJpC;AAKN1D,IAAAA,OAAO,EAAEgD,aAAa,CAAEF,SAAF,EAAaxC,YAAb,CALhB;AAMNA,IAAAA;AANM,GAAP;AAQA,CA1BD,CADc,EA4Bd,wBAAc,CAAEqD,QAAF,YAA6C;AAAA,MAAjC;AAAEb,IAAAA,SAAF;AAAaxC,IAAAA;AAAb,GAAiC;AAC1D,QAAM;AAAEsD,IAAAA,cAAF;AAAkBC,IAAAA,YAAlB;AAAgCC,IAAAA;AAAhC,MACLH,QAAQ,CAAER,YAAF,CADT;AAEA,SAAO;AACNlD,IAAAA,UAAU,EAAE;AAAA,wCAAK8D,IAAL;AAAKA,QAAAA,IAAL;AAAA;;AAAA,aACXH,cAAc,CAAEd,SAAF,EAAaxC,YAAb,EAA2B,GAAGyD,IAA9B,CADH;AAAA,KADN;AAGN7D,IAAAA,QAAQ,EAAE;AAAA,yCAAK6D,IAAL;AAAKA,QAAAA,IAAL;AAAA;;AAAA,aACTF,YAAY,CAAEf,SAAF,EAAaxC,YAAb,EAA2B,GAAGyD,IAA9B,CADH;AAAA,KAHJ;AAKN5D,IAAAA,UAAU,EACP6D,WAAF,IACA;AAAA,yCAAKD,IAAL;AAAKA,QAAAA,IAAL;AAAA;;AAAA,aACCD,oBAAoB,CACnBhB,SADmB,EAEnBxC,YAFmB,EAGnB0D,WAHmB,EAInB,GAAGD,IAJgB,CADrB;AAAA;AAPK,GAAP;AAeA,CAlBD,CA5Bc,EA+CdE,uBA/Cc,EAgDZpE,UAhDY,C","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"]}
@@ -48,6 +48,8 @@ function BlockPopoverInbetween(_ref) {
48
48
  __unstableContentRef,
49
49
  ...props
50
50
  } = _ref;
51
+ // This is a temporary hack to get the inbetween inserter to recompute properly.
52
+ const [positionRecompute, forceRecompute] = (0, _element.useReducer)(s => s + 1, 0);
51
53
  const {
52
54
  orientation,
53
55
  rootClientId,
@@ -61,14 +63,14 @@ function BlockPopoverInbetween(_ref) {
61
63
  isBlockVisible
62
64
  } = select(_store.store);
63
65
 
64
- const _rootClientId = getBlockRootClientId(previousClientId);
66
+ const _rootClientId = getBlockRootClientId(previousClientId !== null && previousClientId !== void 0 ? previousClientId : nextClientId);
65
67
 
66
68
  return {
67
69
  orientation: ((_getBlockListSettings = getBlockListSettings(_rootClientId)) === null || _getBlockListSettings === void 0 ? void 0 : _getBlockListSettings.orientation) || 'vertical',
68
70
  rootClientId: _rootClientId,
69
71
  isVisible: isBlockVisible(previousClientId) && isBlockVisible(nextClientId)
70
72
  };
71
- }, [previousClientId]);
73
+ }, [previousClientId, nextClientId]);
72
74
  const previousElement = (0, _useBlockRefs.__unstableUseBlockElement)(previousClientId);
73
75
  const nextElement = (0, _useBlockRefs.__unstableUseBlockElement)(nextClientId);
74
76
  const isVertical = orientation === 'vertical';
@@ -82,7 +84,7 @@ function BlockPopoverInbetween(_ref) {
82
84
 
83
85
  if (isVertical) {
84
86
  return {
85
- width: previousElement ? previousElement.offsetWidth : nextElement.offsetWidth,
87
+ width: previousRect ? previousRect.width : nextRect.width,
86
88
  height: nextRect && previousRect ? nextRect.top - previousRect.bottom : 0
87
89
  };
88
90
  }
@@ -95,9 +97,9 @@ function BlockPopoverInbetween(_ref) {
95
97
 
96
98
  return {
97
99
  width,
98
- height: previousElement ? previousElement.offsetHeight : nextElement.offsetHeight
100
+ height: previousRect ? previousRect.height : nextRect.height
99
101
  };
100
- }, [previousElement, nextElement, isVertical]);
102
+ }, [previousElement, nextElement, isVertical, positionRecompute, isVisible]);
101
103
  const getAnchorRect = (0, _element.useCallback)(() => {
102
104
  if (!previousElement && !nextElement || !isVisible) {
103
105
  return {};
@@ -114,8 +116,8 @@ function BlockPopoverInbetween(_ref) {
114
116
  return {
115
117
  top: previousRect ? previousRect.bottom : nextRect.top,
116
118
  left: previousRect ? previousRect.right : nextRect.right,
117
- right: previousRect ? previousRect.left : nextRect.left,
118
- bottom: nextRect ? nextRect.top : previousRect.bottom,
119
+ right: previousRect ? previousRect.right : nextRect.right,
120
+ bottom: previousRect ? previousRect.bottom : nextRect.top,
119
121
  height: 0,
120
122
  width: 0,
121
123
  ownerDocument
@@ -125,8 +127,8 @@ function BlockPopoverInbetween(_ref) {
125
127
  return {
126
128
  top: previousRect ? previousRect.bottom : nextRect.top,
127
129
  left: previousRect ? previousRect.left : nextRect.left,
128
- right: previousRect ? previousRect.right : nextRect.right,
129
- bottom: nextRect ? nextRect.top : previousRect.bottom,
130
+ right: previousRect ? previousRect.left : nextRect.left,
131
+ bottom: previousRect ? previousRect.bottom : nextRect.top,
130
132
  height: 0,
131
133
  width: 0,
132
134
  ownerDocument
@@ -137,8 +139,8 @@ function BlockPopoverInbetween(_ref) {
137
139
  return {
138
140
  top: previousRect ? previousRect.top : nextRect.top,
139
141
  left: previousRect ? previousRect.left : nextRect.right,
140
- right: nextRect ? nextRect.right : previousRect.left,
141
- bottom: previousRect ? previousRect.bottom : nextRect.bottom,
142
+ right: previousRect ? previousRect.left : nextRect.right,
143
+ bottom: previousRect ? previousRect.top : nextRect.top,
142
144
  height: 0,
143
145
  width: 0,
144
146
  ownerDocument
@@ -148,14 +150,51 @@ function BlockPopoverInbetween(_ref) {
148
150
  return {
149
151
  top: previousRect ? previousRect.top : nextRect.top,
150
152
  left: previousRect ? previousRect.right : nextRect.left,
151
- right: nextRect ? nextRect.left : previousRect.right,
152
- bottom: previousRect ? previousRect.bottom : nextRect.bottom,
153
+ right: previousRect ? previousRect.right : nextRect.left,
154
+ bottom: previousRect ? previousRect.left : nextRect.right,
153
155
  height: 0,
154
156
  width: 0,
155
157
  ownerDocument
156
158
  };
157
- }, [previousElement, nextElement]);
158
- const popoverScrollRef = (0, _usePopoverScroll.default)(__unstableContentRef); // If there's either a previous or a next element, show the inbetween popover.
159
+ }, [previousElement, nextElement, positionRecompute, isVisible]);
160
+ const popoverScrollRef = (0, _usePopoverScroll.default)(__unstableContentRef); // This is only needed for a smooth transition when moving blocks.
161
+
162
+ (0, _element.useLayoutEffect)(() => {
163
+ if (!previousElement) {
164
+ return;
165
+ }
166
+
167
+ const observer = new window.MutationObserver(forceRecompute);
168
+ observer.observe(previousElement, {
169
+ attributes: true
170
+ });
171
+ return () => {
172
+ observer.disconnect();
173
+ };
174
+ }, [previousElement]);
175
+ (0, _element.useLayoutEffect)(() => {
176
+ if (!nextElement) {
177
+ return;
178
+ }
179
+
180
+ const observer = new window.MutationObserver(forceRecompute);
181
+ observer.observe(nextElement, {
182
+ attributes: true
183
+ });
184
+ return () => {
185
+ observer.disconnect();
186
+ };
187
+ }, [nextElement]);
188
+ (0, _element.useLayoutEffect)(() => {
189
+ if (!previousElement) {
190
+ return;
191
+ }
192
+
193
+ previousElement.ownerDocument.defaultView.addEventListener('resize', forceRecompute);
194
+ return () => {
195
+ previousElement.ownerDocument.defaultView.removeEventListener('resize', forceRecompute);
196
+ };
197
+ }, [previousElement]); // If there's either a previous or a next element, show the inbetween popover.
159
198
  // Note that drag and drop uses the inbetween popover to show the drop indicator
160
199
  // before the first block and after the last block.
161
200
 
@@ -184,8 +223,11 @@ function BlockPopoverInbetween(_ref) {
184
223
  key: nextClientId + '--' + rootClientId
185
224
  }, props, {
186
225
  className: (0, _classnames.default)('block-editor-block-popover', 'block-editor-block-popover__inbetween', props.className),
187
- __unstableForcePosition: true
226
+ resize: false,
227
+ flip: false,
228
+ placement: "bottom-start"
188
229
  }), (0, _element.createElement)("div", {
230
+ className: "block-editor-block-popover__inbetween-container",
189
231
  style: style
190
232
  }, children));
191
233
  /* 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":["InsertionPointOpenRef","BlockPopoverInbetween","previousClientId","nextClientId","children","__unstablePopoverSlot","__unstableContentRef","props","orientation","rootClientId","isVisible","select","getBlockListSettings","getBlockRootClientId","isBlockVisible","blockEditorStore","_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":["InsertionPointOpenRef","BlockPopoverInbetween","previousClientId","nextClientId","children","__unstablePopoverSlot","__unstableContentRef","props","positionRecompute","forceRecompute","s","orientation","rootClientId","isVisible","select","getBlockListSettings","getBlockRootClientId","isBlockVisible","blockEditorStore","_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":"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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 {\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"]}
@@ -75,8 +75,9 @@ function BlockPopover(_ref, ref) {
75
75
  // otherwise render in place (not in the default popover slot).
76
76
  ,
77
77
  __unstableSlotName: __unstablePopoverSlot || null,
78
- __unstableForcePosition: true,
79
- __unstableShift: true
78
+ resize: false,
79
+ flip: false,
80
+ shift: true
80
81
  }, props, {
81
82
  className: (0, _classnames.default)('block-editor-block-popover', props.className)
82
83
  }), __unstableCoverTarget && (0, _element.createElement)("div", {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-popover/index.js"],"names":["BlockPopover","ref","clientId","bottomClientId","children","__unstableRefreshSize","__unstableCoverTarget","__unstablePopoverSlot","__unstableContentRef","props","selectedElement","lastSelectedElement","mergedRefs","style","position","width","offsetWidth","height","offsetHeight","anchorRef","top","bottom","className"],"mappings":";;;;;;;;;AAUA;;;;AAPA;;AAKA;;AACA;;AAMA;;AACA;;AAhBA;AACA;AACA;;AAGA;AACA;AACA;;AAKA;AACA;AACA;AAIA,SAASA,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,GAAG,6CAAiBR,QAAjB,CAAxB;AACA,QAAMS,mBAAmB,GAAG,6CAAiBR,cAAjB,aAAiBA,cAAjB,cAAiBA,cAAjB,GAAmCD,QAAnC,CAA5B;AACA,QAAMU,UAAU,GAAG,2BAAc,CAChCX,GADgC,EAEhC,+BAAkBO,oBAAlB,CAFgC,CAAd,CAAnB;AAIA,QAAMK,KAAK,GAAG,sBAAS,MAAM;AAC5B,QAAK,CAAEH,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,GAVa,EAUX,CAAER,eAAF,EAAmBC,mBAAnB,EAAwCN,qBAAxC,CAVW,CAAd;;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,4BAAC,mBAAD;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,EAAG,yBACX,4BADW,EAEXA,KAAK,CAACa,SAFK;AAZb,MAiBGhB,qBAAqB,IAAI;AAAK,IAAA,KAAK,EAAGO;AAAb,KAAuBT,QAAvB,CAjB5B,EAkBG,CAAEE,qBAAF,IAA2BF,QAlB9B,CADD;AAsBA;;eAEc,yBAAYJ,YAAZ,C","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":["BlockPopover","ref","clientId","bottomClientId","children","__unstableRefreshSize","__unstableCoverTarget","__unstablePopoverSlot","__unstableContentRef","props","selectedElement","lastSelectedElement","mergedRefs","style","position","width","offsetWidth","height","offsetHeight","anchorRef","top","bottom","className"],"mappings":";;;;;;;;;AAUA;;;;AAPA;;AAKA;;AACA;;AAMA;;AACA;;AAhBA;AACA;AACA;;AAGA;AACA;AACA;;AAKA;AACA;AACA;AAIA,SAASA,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,GAAG,6CAAiBR,QAAjB,CAAxB;AACA,QAAMS,mBAAmB,GAAG,6CAAiBR,cAAjB,aAAiBA,cAAjB,cAAiBA,cAAjB,GAAmCD,QAAnC,CAA5B;AACA,QAAMU,UAAU,GAAG,2BAAc,CAChCX,GADgC,EAEhC,+BAAkBO,oBAAlB,CAFgC,CAAd,CAAnB;AAIA,QAAMK,KAAK,GAAG,sBAAS,MAAM;AAC5B,QAAK,CAAEH,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,GAVa,EAUX,CAAER,eAAF,EAAmBC,mBAAnB,EAAwCN,qBAAxC,CAVW,CAAd;;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,4BAAC,mBAAD;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,EAAG,yBACX,4BADW,EAEXA,KAAK,CAACa,SAFK;AAbb,MAkBGhB,qBAAqB,IAAI;AAAK,IAAA,KAAK,EAAGO;AAAb,KAAuBT,QAAvB,CAlB5B,EAmBG,CAAEE,qBAAF,IAA2BF,QAnB9B,CADD;AAuBA;;eAEc,yBAAYJ,YAAZ,C","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"]}
@@ -105,9 +105,11 @@ function AutoBlockPreview(_ref) {
105
105
  documentElement.classList.add('block-editor-block-preview__content-iframe');
106
106
  documentElement.style.position = 'absolute';
107
107
  documentElement.style.width = '100%';
108
- bodyElement.style.padding = __experimentalPadding + 'px'; // necessary for contentResizeListener to work.
108
+ bodyElement.style.padding = __experimentalPadding + 'px'; // Necessary for contentResizeListener to work.
109
109
 
110
- bodyElement.style.position = 'relative';
110
+ bodyElement.style.boxSizing = 'border-box';
111
+ bodyElement.style.position = 'absolute';
112
+ bodyElement.style.width = '100%';
111
113
  }, []),
112
114
  "aria-hidden": true,
113
115
  tabIndex: -1,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-preview/auto.js"],"names":["MemoizedBlockList","MAX_HEIGHT","AutoBlockPreview","viewportWidth","__experimentalPadding","__experimentalMinHeight","containerResizeListener","width","containerWidth","contentResizeListener","height","contentHeight","styles","assets","duotone","select","settings","store","getSettings","__unstableResolvedAssets","__experimentalFeatures","color","editorStyles","css","__unstableType","svgFilters","default","theme","BlockList","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":["MemoizedBlockList","MAX_HEIGHT","AutoBlockPreview","viewportWidth","__experimentalPadding","__experimentalMinHeight","containerResizeListener","width","containerWidth","contentResizeListener","height","contentHeight","styles","assets","duotone","select","settings","store","getSettings","__unstableResolvedAssets","__experimentalFeatures","color","editorStyles","css","__unstableType","svgFilters","default","theme","BlockList","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"]}
@@ -82,6 +82,7 @@ function BlockSettingsDropdown(_ref2) {
82
82
  clientIds,
83
83
  __experimentalSelectBlock,
84
84
  children,
85
+ __unstableDisplayLocation,
85
86
  ...props
86
87
  } = _ref2;
87
88
  const blockClientIds = (0, _lodash.castArray)(clientIds);
@@ -238,7 +239,8 @@ function BlockSettingsDropdown(_ref2) {
238
239
  fillProps: {
239
240
  onClose
240
241
  },
241
- clientIds: clientIds
242
+ clientIds: clientIds,
243
+ __unstableDisplayLocation: __unstableDisplayLocation
242
244
  }), typeof children === 'function' ? children({
243
245
  onClose
244
246
  }) : _element.Children.map(child => (0, _element.cloneElement)(child, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-settings-dropdown.js"],"names":["noop","POPOVER_PROPS","className","position","isAlternate","CopyMenuItem","blocks","onCopy","ref","copyMenuItemLabel","length","BlockSettingsDropdown","clientIds","__experimentalSelectBlock","children","props","blockClientIds","count","firstBlockClientId","firstParentClientId","hasReducedUI","onlyBlock","parentBlockType","previousBlockClientId","nextBlockClientId","selectedBlockClientIds","select","getBlockCount","getBlockName","getBlockParents","getPreviousBlockClientId","getNextBlockClientId","getSelectedBlockClientIds","getSettings","blockEditorStore","parents","_firstParentClientId","parentBlockName","shortcuts","getShortcutRepresentation","keyboardShortcutsStore","duplicate","remove","insertAfter","insertBefore","selectBlock","toggleBlockHighlight","updateSelectionAfterDuplicate","clientIdsPromise","ids","blockTitle","clientId","maximumLength","updateSelectionAfterRemove","blockToSelect","includes","label","removeBlockLabel","selectParentButtonRef","gestures","showParentOutlineGestures","onChange","isFocused","canDuplicate","canInsertDefaultBlock","canMove","canRemove","onDuplicate","onInsertAfter","onInsertBefore","onRemove","onMoveTo","moreVertical","onClose","undefined","icon","title","Children","map","child"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { castArray, flow } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { getBlockType, serialize } from '@wordpress/blocks';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { moreVertical } from '@wordpress/icons';\nimport {\n\tChildren,\n\tcloneElement,\n\tuseCallback,\n\tuseRef,\n} from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { useCopyToClipboard } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockActions from '../block-actions';\nimport BlockIcon from '../block-icon';\nimport BlockModeToggle from './block-mode-toggle';\nimport BlockHTMLConvertButton from './block-html-convert-button';\nimport __unstableBlockSettingsMenuFirstItem from './block-settings-menu-first-item';\nimport BlockSettingsMenuControls from '../block-settings-menu-controls';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\nimport { useShowMoversGestures } from '../block-toolbar/utils';\n\nconst noop = () => {};\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tposition: 'bottom right',\n\tisAlternate: true,\n};\n\nfunction CopyMenuItem( { blocks, onCopy } ) {\n\tconst ref = useCopyToClipboard( () => serialize( blocks ), onCopy );\n\tconst copyMenuItemLabel =\n\t\tblocks.length > 1 ? __( 'Copy blocks' ) : __( 'Copy block' );\n\treturn <MenuItem ref={ ref }>{ copyMenuItemLabel }</MenuItem>;\n}\n\nexport function BlockSettingsDropdown( {\n\tclientIds,\n\t__experimentalSelectBlock,\n\tchildren,\n\t...props\n} ) {\n\tconst blockClientIds = castArray( clientIds );\n\tconst count = blockClientIds.length;\n\tconst firstBlockClientId = blockClientIds[ 0 ];\n\tconst {\n\t\tfirstParentClientId,\n\t\thasReducedUI,\n\t\tonlyBlock,\n\t\tparentBlockType,\n\t\tpreviousBlockClientId,\n\t\tnextBlockClientId,\n\t\tselectedBlockClientIds,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetSettings,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst parents = getBlockParents( firstBlockClientId );\n\t\t\tconst _firstParentClientId = parents[ parents.length - 1 ];\n\t\t\tconst parentBlockName = getBlockName( _firstParentClientId );\n\n\t\t\treturn {\n\t\t\t\tfirstParentClientId: _firstParentClientId,\n\t\t\t\thasReducedUI: getSettings().hasReducedUI,\n\t\t\t\tonlyBlock: 1 === getBlockCount(),\n\t\t\t\tparentBlockType: getBlockType( parentBlockName ),\n\t\t\t\tpreviousBlockClientId:\n\t\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ),\n\t\t\t\tnextBlockClientId: getNextBlockClientId( firstBlockClientId ),\n\t\t\t\tselectedBlockClientIds: getSelectedBlockClientIds(),\n\t\t\t};\n\t\t},\n\t\t[ firstBlockClientId ]\n\t);\n\n\tconst shortcuts = useSelect( ( select ) => {\n\t\tconst { getShortcutRepresentation } = select( keyboardShortcutsStore );\n\t\treturn {\n\t\t\tduplicate: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/duplicate'\n\t\t\t),\n\t\t\tremove: getShortcutRepresentation( 'core/block-editor/remove' ),\n\t\t\tinsertAfter: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-after'\n\t\t\t),\n\t\t\tinsertBefore: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-before'\n\t\t\t),\n\t\t};\n\t}, [] );\n\n\tconst { selectBlock, toggleBlockHighlight } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst updateSelectionAfterDuplicate = useCallback(\n\t\t__experimentalSelectBlock\n\t\t\t? async ( clientIdsPromise ) => {\n\t\t\t\t\tconst ids = await clientIdsPromise;\n\t\t\t\t\tif ( ids && ids[ 0 ] ) {\n\t\t\t\t\t\t__experimentalSelectBlock( ids[ 0 ] );\n\t\t\t\t\t}\n\t\t\t }\n\t\t\t: noop,\n\t\t[ __experimentalSelectBlock ]\n\t);\n\n\tconst blockTitle = useBlockDisplayTitle( {\n\t\tclientId: firstBlockClientId,\n\t\tmaximumLength: 25,\n\t} );\n\n\tconst updateSelectionAfterRemove = useCallback(\n\t\t__experimentalSelectBlock\n\t\t\t? () => {\n\t\t\t\t\tconst blockToSelect =\n\t\t\t\t\t\tpreviousBlockClientId || nextBlockClientId;\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tblockToSelect &&\n\t\t\t\t\t\t// From the block options dropdown, it's possible to remove a block that is not selected,\n\t\t\t\t\t\t// in this case, it's not necessary to update the selection since the selected block wasn't removed.\n\t\t\t\t\t\tselectedBlockClientIds.includes( firstBlockClientId ) &&\n\t\t\t\t\t\t// Don't update selection when next/prev block also is in the selection ( and gets removed ),\n\t\t\t\t\t\t// In case someone selects all blocks and removes them at once.\n\t\t\t\t\t\t! selectedBlockClientIds.includes( blockToSelect )\n\t\t\t\t\t) {\n\t\t\t\t\t\t__experimentalSelectBlock( blockToSelect );\n\t\t\t\t\t}\n\t\t\t }\n\t\t\t: noop,\n\t\t[\n\t\t\t__experimentalSelectBlock,\n\t\t\tpreviousBlockClientId,\n\t\t\tnextBlockClientId,\n\t\t\tselectedBlockClientIds,\n\t\t]\n\t);\n\n\tconst label = sprintf(\n\t\t/* translators: %s: block name */\n\t\t__( 'Remove %s' ),\n\t\tblockTitle\n\t);\n\tconst removeBlockLabel = count === 1 ? label : __( 'Remove blocks' );\n\n\t// Allows highlighting the parent block outline when focusing or hovering\n\t// the parent block selector within the child.\n\tconst selectParentButtonRef = useRef();\n\tconst { gestures: showParentOutlineGestures } = useShowMoversGestures( {\n\t\tref: selectParentButtonRef,\n\t\tonChange( isFocused ) {\n\t\t\tif ( isFocused && hasReducedUI ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttoggleBlockHighlight( firstParentClientId, isFocused );\n\t\t},\n\t} );\n\n\treturn (\n\t\t<BlockActions\n\t\t\tclientIds={ clientIds }\n\t\t\t__experimentalUpdateSelection={ ! __experimentalSelectBlock }\n\t\t>\n\t\t\t{ ( {\n\t\t\t\tcanDuplicate,\n\t\t\t\tcanInsertDefaultBlock,\n\t\t\t\tcanMove,\n\t\t\t\tcanRemove,\n\t\t\t\tonDuplicate,\n\t\t\t\tonInsertAfter,\n\t\t\t\tonInsertBefore,\n\t\t\t\tonRemove,\n\t\t\t\tonCopy,\n\t\t\t\tonMoveTo,\n\t\t\t\tblocks,\n\t\t\t} ) => (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t\tnoIcons\n\t\t\t\t\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<__unstableBlockSettingsMenuFirstItem.Slot\n\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ firstParentClientId !== undefined && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t{ ...showParentOutlineGestures }\n\t\t\t\t\t\t\t\t\t\tref={ selectParentButtonRef }\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ parentBlockType.icon }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\tselectBlock( firstParentClientId )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: Name of the block's parent. */\n\t\t\t\t\t\t\t\t\t\t\t__( 'Select parent block (%s)' ),\n\t\t\t\t\t\t\t\t\t\t\tparentBlockType.title\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t<BlockHTMLConvertButton\n\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ canDuplicate && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonDuplicate,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterDuplicate\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.duplicate }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ canInsertDefaultBlock && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonInsertBefore\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.insertBefore }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Insert before' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonInsertAfter\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.insertAfter }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Insert after' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ canMove && ! onlyBlock && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ flow( onClose, onMoveTo ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Move to' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t<BlockModeToggle\n\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\n\t\t\t\t\t\t\t\t\t\tonToggle={ onClose }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t<BlockSettingsMenuControls.Slot\n\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ typeof children === 'function'\n\t\t\t\t\t\t\t\t? children( { onClose } )\n\t\t\t\t\t\t\t\t: Children.map( ( child ) =>\n\t\t\t\t\t\t\t\t\t\tcloneElement( child, { onClose } )\n\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonRemove,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterRemove\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.remove }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ removeBlockLabel }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t</MenuGroup>\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</DropdownMenu>\n\t\t\t) }\n\t\t</BlockActions>\n\t);\n}\n\nexport default BlockSettingsDropdown;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-settings-dropdown.js"],"names":["noop","POPOVER_PROPS","className","position","isAlternate","CopyMenuItem","blocks","onCopy","ref","copyMenuItemLabel","length","BlockSettingsDropdown","clientIds","__experimentalSelectBlock","children","__unstableDisplayLocation","props","blockClientIds","count","firstBlockClientId","firstParentClientId","hasReducedUI","onlyBlock","parentBlockType","previousBlockClientId","nextBlockClientId","selectedBlockClientIds","select","getBlockCount","getBlockName","getBlockParents","getPreviousBlockClientId","getNextBlockClientId","getSelectedBlockClientIds","getSettings","blockEditorStore","parents","_firstParentClientId","parentBlockName","shortcuts","getShortcutRepresentation","keyboardShortcutsStore","duplicate","remove","insertAfter","insertBefore","selectBlock","toggleBlockHighlight","updateSelectionAfterDuplicate","clientIdsPromise","ids","blockTitle","clientId","maximumLength","updateSelectionAfterRemove","blockToSelect","includes","label","removeBlockLabel","selectParentButtonRef","gestures","showParentOutlineGestures","onChange","isFocused","canDuplicate","canInsertDefaultBlock","canMove","canRemove","onDuplicate","onInsertAfter","onInsertBefore","onRemove","onMoveTo","moreVertical","onClose","undefined","icon","title","Children","map","child"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { castArray, flow } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { getBlockType, serialize } from '@wordpress/blocks';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { moreVertical } from '@wordpress/icons';\nimport {\n\tChildren,\n\tcloneElement,\n\tuseCallback,\n\tuseRef,\n} from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { useCopyToClipboard } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockActions from '../block-actions';\nimport BlockIcon from '../block-icon';\nimport BlockModeToggle from './block-mode-toggle';\nimport BlockHTMLConvertButton from './block-html-convert-button';\nimport __unstableBlockSettingsMenuFirstItem from './block-settings-menu-first-item';\nimport BlockSettingsMenuControls from '../block-settings-menu-controls';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\nimport { useShowMoversGestures } from '../block-toolbar/utils';\n\nconst noop = () => {};\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tposition: 'bottom right',\n\tisAlternate: true,\n};\n\nfunction CopyMenuItem( { blocks, onCopy } ) {\n\tconst ref = useCopyToClipboard( () => serialize( blocks ), onCopy );\n\tconst copyMenuItemLabel =\n\t\tblocks.length > 1 ? __( 'Copy blocks' ) : __( 'Copy block' );\n\treturn <MenuItem ref={ ref }>{ copyMenuItemLabel }</MenuItem>;\n}\n\nexport function BlockSettingsDropdown( {\n\tclientIds,\n\t__experimentalSelectBlock,\n\tchildren,\n\t__unstableDisplayLocation,\n\t...props\n} ) {\n\tconst blockClientIds = castArray( clientIds );\n\tconst count = blockClientIds.length;\n\tconst firstBlockClientId = blockClientIds[ 0 ];\n\tconst {\n\t\tfirstParentClientId,\n\t\thasReducedUI,\n\t\tonlyBlock,\n\t\tparentBlockType,\n\t\tpreviousBlockClientId,\n\t\tnextBlockClientId,\n\t\tselectedBlockClientIds,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetSettings,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst parents = getBlockParents( firstBlockClientId );\n\t\t\tconst _firstParentClientId = parents[ parents.length - 1 ];\n\t\t\tconst parentBlockName = getBlockName( _firstParentClientId );\n\n\t\t\treturn {\n\t\t\t\tfirstParentClientId: _firstParentClientId,\n\t\t\t\thasReducedUI: getSettings().hasReducedUI,\n\t\t\t\tonlyBlock: 1 === getBlockCount(),\n\t\t\t\tparentBlockType: getBlockType( parentBlockName ),\n\t\t\t\tpreviousBlockClientId:\n\t\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ),\n\t\t\t\tnextBlockClientId: getNextBlockClientId( firstBlockClientId ),\n\t\t\t\tselectedBlockClientIds: getSelectedBlockClientIds(),\n\t\t\t};\n\t\t},\n\t\t[ firstBlockClientId ]\n\t);\n\n\tconst shortcuts = useSelect( ( select ) => {\n\t\tconst { getShortcutRepresentation } = select( keyboardShortcutsStore );\n\t\treturn {\n\t\t\tduplicate: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/duplicate'\n\t\t\t),\n\t\t\tremove: getShortcutRepresentation( 'core/block-editor/remove' ),\n\t\t\tinsertAfter: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-after'\n\t\t\t),\n\t\t\tinsertBefore: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-before'\n\t\t\t),\n\t\t};\n\t}, [] );\n\n\tconst { selectBlock, toggleBlockHighlight } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst updateSelectionAfterDuplicate = useCallback(\n\t\t__experimentalSelectBlock\n\t\t\t? async ( clientIdsPromise ) => {\n\t\t\t\t\tconst ids = await clientIdsPromise;\n\t\t\t\t\tif ( ids && ids[ 0 ] ) {\n\t\t\t\t\t\t__experimentalSelectBlock( ids[ 0 ] );\n\t\t\t\t\t}\n\t\t\t }\n\t\t\t: noop,\n\t\t[ __experimentalSelectBlock ]\n\t);\n\n\tconst blockTitle = useBlockDisplayTitle( {\n\t\tclientId: firstBlockClientId,\n\t\tmaximumLength: 25,\n\t} );\n\n\tconst updateSelectionAfterRemove = useCallback(\n\t\t__experimentalSelectBlock\n\t\t\t? () => {\n\t\t\t\t\tconst blockToSelect =\n\t\t\t\t\t\tpreviousBlockClientId || nextBlockClientId;\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tblockToSelect &&\n\t\t\t\t\t\t// From the block options dropdown, it's possible to remove a block that is not selected,\n\t\t\t\t\t\t// in this case, it's not necessary to update the selection since the selected block wasn't removed.\n\t\t\t\t\t\tselectedBlockClientIds.includes( firstBlockClientId ) &&\n\t\t\t\t\t\t// Don't update selection when next/prev block also is in the selection ( and gets removed ),\n\t\t\t\t\t\t// In case someone selects all blocks and removes them at once.\n\t\t\t\t\t\t! selectedBlockClientIds.includes( blockToSelect )\n\t\t\t\t\t) {\n\t\t\t\t\t\t__experimentalSelectBlock( blockToSelect );\n\t\t\t\t\t}\n\t\t\t }\n\t\t\t: noop,\n\t\t[\n\t\t\t__experimentalSelectBlock,\n\t\t\tpreviousBlockClientId,\n\t\t\tnextBlockClientId,\n\t\t\tselectedBlockClientIds,\n\t\t]\n\t);\n\n\tconst label = sprintf(\n\t\t/* translators: %s: block name */\n\t\t__( 'Remove %s' ),\n\t\tblockTitle\n\t);\n\tconst removeBlockLabel = count === 1 ? label : __( 'Remove blocks' );\n\n\t// Allows highlighting the parent block outline when focusing or hovering\n\t// the parent block selector within the child.\n\tconst selectParentButtonRef = useRef();\n\tconst { gestures: showParentOutlineGestures } = useShowMoversGestures( {\n\t\tref: selectParentButtonRef,\n\t\tonChange( isFocused ) {\n\t\t\tif ( isFocused && hasReducedUI ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttoggleBlockHighlight( firstParentClientId, isFocused );\n\t\t},\n\t} );\n\n\treturn (\n\t\t<BlockActions\n\t\t\tclientIds={ clientIds }\n\t\t\t__experimentalUpdateSelection={ ! __experimentalSelectBlock }\n\t\t>\n\t\t\t{ ( {\n\t\t\t\tcanDuplicate,\n\t\t\t\tcanInsertDefaultBlock,\n\t\t\t\tcanMove,\n\t\t\t\tcanRemove,\n\t\t\t\tonDuplicate,\n\t\t\t\tonInsertAfter,\n\t\t\t\tonInsertBefore,\n\t\t\t\tonRemove,\n\t\t\t\tonCopy,\n\t\t\t\tonMoveTo,\n\t\t\t\tblocks,\n\t\t\t} ) => (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t\tnoIcons\n\t\t\t\t\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<__unstableBlockSettingsMenuFirstItem.Slot\n\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ firstParentClientId !== undefined && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t{ ...showParentOutlineGestures }\n\t\t\t\t\t\t\t\t\t\tref={ selectParentButtonRef }\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ parentBlockType.icon }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\tselectBlock( firstParentClientId )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: Name of the block's parent. */\n\t\t\t\t\t\t\t\t\t\t\t__( 'Select parent block (%s)' ),\n\t\t\t\t\t\t\t\t\t\t\tparentBlockType.title\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t<BlockHTMLConvertButton\n\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ canDuplicate && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonDuplicate,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterDuplicate\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.duplicate }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ canInsertDefaultBlock && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonInsertBefore\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.insertBefore }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Insert before' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonInsertAfter\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.insertAfter }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Insert after' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ canMove && ! onlyBlock && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ flow( onClose, onMoveTo ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Move to' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t<BlockModeToggle\n\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\n\t\t\t\t\t\t\t\t\t\tonToggle={ onClose }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t<BlockSettingsMenuControls.Slot\n\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t\t__unstableDisplayLocation={\n\t\t\t\t\t\t\t\t\t__unstableDisplayLocation\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ typeof children === 'function'\n\t\t\t\t\t\t\t\t? children( { onClose } )\n\t\t\t\t\t\t\t\t: Children.map( ( child ) =>\n\t\t\t\t\t\t\t\t\t\tcloneElement( child, { onClose } )\n\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonRemove,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterRemove\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.remove }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ removeBlockLabel }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t</MenuGroup>\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</DropdownMenu>\n\t\t\t) }\n\t\t</BlockActions>\n\t);\n}\n\nexport default BlockSettingsDropdown;\n"]}
@@ -42,7 +42,8 @@ const {
42
42
  const BlockSettingsMenuControlsSlot = _ref => {
43
43
  let {
44
44
  fillProps,
45
- clientIds = null
45
+ clientIds = null,
46
+ __unstableDisplayLocation
46
47
  } = _ref;
47
48
  const {
48
49
  selectedBlocks,
@@ -75,6 +76,7 @@ const BlockSettingsMenuControlsSlot = _ref => {
75
76
  const showConvertToGroupButton = (isGroupable || isUngroupable) && canRemove;
76
77
  return (0, _element.createElement)(Slot, {
77
78
  fillProps: { ...fillProps,
79
+ __unstableDisplayLocation,
78
80
  selectedBlocks,
79
81
  selectedClientIds
80
82
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-settings-menu-controls/index.js"],"names":["Fill","Slot","BlockSettingsMenuControlsSlot","fillProps","clientIds","selectedBlocks","selectedClientIds","canRemove","select","getBlocksByClientId","getSelectedBlockClientIds","canRemoveBlocks","blockEditorStore","ids","filter","Boolean","block","name","canLock","showLockButton","length","convertToGroupButtonProps","isGroupable","isUngroupable","showConvertToGroupButton","fills","onClose","BlockSettingsMenuControls","props","document"],"mappings":";;;;;;;;;;;;;AAGA;;AAKA;;AAKA;;AAKA;;AAIA;;AACA;;AAvBA;AACA;AACA;;AAGA;AACA;AACA;;AAQA;AACA;AACA;AAQA,MAAM;AAAEA,EAAAA,IAAF;AAAQC,EAAAA;AAAR,IAAiB,gCAAgB,2BAAhB,CAAvB;;AAEA,MAAMC,6BAA6B,GAAG,QAAuC;AAAA,MAArC;AAAEC,IAAAA,SAAF;AAAaC,IAAAA,SAAS,GAAG;AAAzB,GAAqC;AAC5E,QAAM;AAAEC,IAAAA,cAAF;AAAkBC,IAAAA,iBAAlB;AAAqCC,IAAAA;AAArC,MAAmD,qBACtDC,MAAF,IAAc;AACb,UAAM;AACLC,MAAAA,mBADK;AAELC,MAAAA,yBAFK;AAGLC,MAAAA;AAHK,QAIFH,MAAM,CAAEI,YAAF,CAJV;AAKA,UAAMC,GAAG,GACRT,SAAS,KAAK,IAAd,GAAqBA,SAArB,GAAiCM,yBAAyB,EAD3D;AAEA,WAAO;AACNL,MAAAA,cAAc,EAAE,iBACfI,mBAAmB,CAAEI,GAAF,CAAnB,CAA2BC,MAA3B,CAAmCC,OAAnC,CADe,EAEbC,KAAF,IAAaA,KAAK,CAACC,IAFJ,CADV;AAKNX,MAAAA,iBAAiB,EAAEO,GALb;AAMNN,MAAAA,SAAS,EAAEI,eAAe,CAAEE,GAAF;AANpB,KAAP;AAQA,GAjBuD,EAkBxD,CAAET,SAAF,CAlBwD,CAAzD;AAqBA,QAAM;AAAEc,IAAAA;AAAF,MAAc,6BAAcZ,iBAAiB,CAAE,CAAF,CAA/B,CAApB;AACA,QAAMa,cAAc,GAAGb,iBAAiB,CAACc,MAAlB,KAA6B,CAA7B,IAAkCF,OAAzD,CAvB4E,CAyB5E;AACA;;AACA,QAAMG,yBAAyB,GAAG,0DAAlC;AACA,QAAM;AAAEC,IAAAA,WAAF;AAAeC,IAAAA;AAAf,MAAiCF,yBAAvC;AACA,QAAMG,wBAAwB,GAC7B,CAAEF,WAAW,IAAIC,aAAjB,KAAoChB,SADrC;AAGA,SACC,4BAAC,IAAD;AAAM,IAAA,SAAS,EAAG,EAAE,GAAGJ,SAAL;AAAgBE,MAAAA,cAAhB;AAAgCC,MAAAA;AAAhC;AAAlB,KACKmB,KAAF,IAAa;AACd,QACC,EAAEA,KAAF,aAAEA,KAAF,eAAEA,KAAK,CAAEL,MAAT,IAAkB,CAAlB,IACA,CAAEI,wBADF,IAEA,CAAEL,cAHH,EAIE;AACD,aAAO,IAAP;AACA;;AAED,WACC,4BAAC,qBAAD,QACGA,cAAc,IACf,4BAAC,4BAAD;AACC,MAAA,QAAQ,EAAGb,iBAAiB,CAAE,CAAF;AAD7B,MAFF,EAMGmB,KANH,EAOGD,wBAAwB,IACzB,4BAAC,2CAAD,6BACMH,yBADN;AAEC,MAAA,OAAO,EAAGlB,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAEuB;AAFtB,OARF,CADD;AAgBA,GA1BF,CADD;AA8BA,CA9DD;AAgEA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,yBAAT,QAAmD;AAAA,MAAf,EAAE,GAAGC;AAAL,GAAe;AAClD,SACC,4BAAC,uCAAD;AAAe,IAAA,QAAQ,EAAGC;AAA1B,KACC,4BAAC,IAAD,EAAWD,KAAX,CADD,CADD;AAKA;;AAEDD,yBAAyB,CAAC1B,IAA1B,GAAiCC,6BAAjC;eAEeyB,yB","sourcesContent":["/**\n * External dependencies\n */\nimport { map } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tcreateSlotFill,\n\tMenuGroup,\n\t__experimentalStyleProvider as StyleProvider,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseConvertToGroupButtonProps,\n\tConvertToGroupButton,\n} from '../convert-to-group-buttons';\nimport { BlockLockMenuItem, useBlockLock } from '../block-lock';\nimport { store as blockEditorStore } from '../../store';\n\nconst { Fill, Slot } = createSlotFill( 'BlockSettingsMenuControls' );\n\nconst BlockSettingsMenuControlsSlot = ( { fillProps, clientIds = null } ) => {\n\tconst { selectedBlocks, selectedClientIds, canRemove } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tcanRemoveBlocks,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst ids =\n\t\t\t\tclientIds !== null ? clientIds : getSelectedBlockClientIds();\n\t\t\treturn {\n\t\t\t\tselectedBlocks: map(\n\t\t\t\t\tgetBlocksByClientId( ids ).filter( Boolean ),\n\t\t\t\t\t( block ) => block.name\n\t\t\t\t),\n\t\t\t\tselectedClientIds: ids,\n\t\t\t\tcanRemove: canRemoveBlocks( ids ),\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tconst { canLock } = useBlockLock( selectedClientIds[ 0 ] );\n\tconst showLockButton = selectedClientIds.length === 1 && canLock;\n\n\t// Check if current selection of blocks is Groupable or Ungroupable\n\t// and pass this props down to ConvertToGroupButton.\n\tconst convertToGroupButtonProps = useConvertToGroupButtonProps();\n\tconst { isGroupable, isUngroupable } = convertToGroupButtonProps;\n\tconst showConvertToGroupButton =\n\t\t( isGroupable || isUngroupable ) && canRemove;\n\n\treturn (\n\t\t<Slot fillProps={ { ...fillProps, selectedBlocks, selectedClientIds } }>\n\t\t\t{ ( fills ) => {\n\t\t\t\tif (\n\t\t\t\t\t! fills?.length > 0 &&\n\t\t\t\t\t! showConvertToGroupButton &&\n\t\t\t\t\t! showLockButton\n\t\t\t\t) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t{ showLockButton && (\n\t\t\t\t\t\t\t<BlockLockMenuItem\n\t\t\t\t\t\t\t\tclientId={ selectedClientIds[ 0 ] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ fills }\n\t\t\t\t\t\t{ showConvertToGroupButton && (\n\t\t\t\t\t\t\t<ConvertToGroupButton\n\t\t\t\t\t\t\t\t{ ...convertToGroupButtonProps }\n\t\t\t\t\t\t\t\tonClose={ fillProps?.onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t);\n\t\t\t} }\n\t\t</Slot>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-settings-menu-controls/README.md\n *\n * @param {Object} props Fill props.\n * @return {WPElement} Element.\n */\nfunction BlockSettingsMenuControls( { ...props } ) {\n\treturn (\n\t\t<StyleProvider document={ document }>\n\t\t\t<Fill { ...props } />\n\t\t</StyleProvider>\n\t);\n}\n\nBlockSettingsMenuControls.Slot = BlockSettingsMenuControlsSlot;\n\nexport default BlockSettingsMenuControls;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-settings-menu-controls/index.js"],"names":["Fill","Slot","BlockSettingsMenuControlsSlot","fillProps","clientIds","__unstableDisplayLocation","selectedBlocks","selectedClientIds","canRemove","select","getBlocksByClientId","getSelectedBlockClientIds","canRemoveBlocks","blockEditorStore","ids","filter","Boolean","block","name","canLock","showLockButton","length","convertToGroupButtonProps","isGroupable","isUngroupable","showConvertToGroupButton","fills","onClose","BlockSettingsMenuControls","props","document"],"mappings":";;;;;;;;;;;;;AAGA;;AAKA;;AAKA;;AAKA;;AAIA;;AACA;;AAvBA;AACA;AACA;;AAGA;AACA;AACA;;AAQA;AACA;AACA;AAQA,MAAM;AAAEA,EAAAA,IAAF;AAAQC,EAAAA;AAAR,IAAiB,gCAAgB,2BAAhB,CAAvB;;AAEA,MAAMC,6BAA6B,GAAG,QAI/B;AAAA,MAJiC;AACvCC,IAAAA,SADuC;AAEvCC,IAAAA,SAAS,GAAG,IAF2B;AAGvCC,IAAAA;AAHuC,GAIjC;AACN,QAAM;AAAEC,IAAAA,cAAF;AAAkBC,IAAAA,iBAAlB;AAAqCC,IAAAA;AAArC,MAAmD,qBACtDC,MAAF,IAAc;AACb,UAAM;AACLC,MAAAA,mBADK;AAELC,MAAAA,yBAFK;AAGLC,MAAAA;AAHK,QAIFH,MAAM,CAAEI,YAAF,CAJV;AAKA,UAAMC,GAAG,GACRV,SAAS,KAAK,IAAd,GAAqBA,SAArB,GAAiCO,yBAAyB,EAD3D;AAEA,WAAO;AACNL,MAAAA,cAAc,EAAE,iBACfI,mBAAmB,CAAEI,GAAF,CAAnB,CAA2BC,MAA3B,CAAmCC,OAAnC,CADe,EAEbC,KAAF,IAAaA,KAAK,CAACC,IAFJ,CADV;AAKNX,MAAAA,iBAAiB,EAAEO,GALb;AAMNN,MAAAA,SAAS,EAAEI,eAAe,CAAEE,GAAF;AANpB,KAAP;AAQA,GAjBuD,EAkBxD,CAAEV,SAAF,CAlBwD,CAAzD;AAqBA,QAAM;AAAEe,IAAAA;AAAF,MAAc,6BAAcZ,iBAAiB,CAAE,CAAF,CAA/B,CAApB;AACA,QAAMa,cAAc,GAAGb,iBAAiB,CAACc,MAAlB,KAA6B,CAA7B,IAAkCF,OAAzD,CAvBM,CAyBN;AACA;;AACA,QAAMG,yBAAyB,GAAG,0DAAlC;AACA,QAAM;AAAEC,IAAAA,WAAF;AAAeC,IAAAA;AAAf,MAAiCF,yBAAvC;AACA,QAAMG,wBAAwB,GAC7B,CAAEF,WAAW,IAAIC,aAAjB,KAAoChB,SADrC;AAGA,SACC,4BAAC,IAAD;AACC,IAAA,SAAS,EAAG,EACX,GAAGL,SADQ;AAEXE,MAAAA,yBAFW;AAGXC,MAAAA,cAHW;AAIXC,MAAAA;AAJW;AADb,KAQKmB,KAAF,IAAa;AACd,QACC,EAAEA,KAAF,aAAEA,KAAF,eAAEA,KAAK,CAAEL,MAAT,IAAkB,CAAlB,IACA,CAAEI,wBADF,IAEA,CAAEL,cAHH,EAIE;AACD,aAAO,IAAP;AACA;;AAED,WACC,4BAAC,qBAAD,QACGA,cAAc,IACf,4BAAC,4BAAD;AACC,MAAA,QAAQ,EAAGb,iBAAiB,CAAE,CAAF;AAD7B,MAFF,EAMGmB,KANH,EAOGD,wBAAwB,IACzB,4BAAC,2CAAD,6BACMH,yBADN;AAEC,MAAA,OAAO,EAAGnB,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAEwB;AAFtB,OARF,CADD;AAgBA,GAjCF,CADD;AAqCA,CAzED;AA2EA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,yBAAT,QAAmD;AAAA,MAAf,EAAE,GAAGC;AAAL,GAAe;AAClD,SACC,4BAAC,uCAAD;AAAe,IAAA,QAAQ,EAAGC;AAA1B,KACC,4BAAC,IAAD,EAAWD,KAAX,CADD,CADD;AAKA;;AAEDD,yBAAyB,CAAC3B,IAA1B,GAAiCC,6BAAjC;eAEe0B,yB","sourcesContent":["/**\n * External dependencies\n */\nimport { map } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tcreateSlotFill,\n\tMenuGroup,\n\t__experimentalStyleProvider as StyleProvider,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseConvertToGroupButtonProps,\n\tConvertToGroupButton,\n} from '../convert-to-group-buttons';\nimport { BlockLockMenuItem, useBlockLock } from '../block-lock';\nimport { store as blockEditorStore } from '../../store';\n\nconst { Fill, Slot } = createSlotFill( 'BlockSettingsMenuControls' );\n\nconst BlockSettingsMenuControlsSlot = ( {\n\tfillProps,\n\tclientIds = null,\n\t__unstableDisplayLocation,\n} ) => {\n\tconst { selectedBlocks, selectedClientIds, canRemove } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tcanRemoveBlocks,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst ids =\n\t\t\t\tclientIds !== null ? clientIds : getSelectedBlockClientIds();\n\t\t\treturn {\n\t\t\t\tselectedBlocks: map(\n\t\t\t\t\tgetBlocksByClientId( ids ).filter( Boolean ),\n\t\t\t\t\t( block ) => block.name\n\t\t\t\t),\n\t\t\t\tselectedClientIds: ids,\n\t\t\t\tcanRemove: canRemoveBlocks( ids ),\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tconst { canLock } = useBlockLock( selectedClientIds[ 0 ] );\n\tconst showLockButton = selectedClientIds.length === 1 && canLock;\n\n\t// Check if current selection of blocks is Groupable or Ungroupable\n\t// and pass this props down to ConvertToGroupButton.\n\tconst convertToGroupButtonProps = useConvertToGroupButtonProps();\n\tconst { isGroupable, isUngroupable } = convertToGroupButtonProps;\n\tconst showConvertToGroupButton =\n\t\t( isGroupable || isUngroupable ) && canRemove;\n\n\treturn (\n\t\t<Slot\n\t\t\tfillProps={ {\n\t\t\t\t...fillProps,\n\t\t\t\t__unstableDisplayLocation,\n\t\t\t\tselectedBlocks,\n\t\t\t\tselectedClientIds,\n\t\t\t} }\n\t\t>\n\t\t\t{ ( fills ) => {\n\t\t\t\tif (\n\t\t\t\t\t! fills?.length > 0 &&\n\t\t\t\t\t! showConvertToGroupButton &&\n\t\t\t\t\t! showLockButton\n\t\t\t\t) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t{ showLockButton && (\n\t\t\t\t\t\t\t<BlockLockMenuItem\n\t\t\t\t\t\t\t\tclientId={ selectedClientIds[ 0 ] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ fills }\n\t\t\t\t\t\t{ showConvertToGroupButton && (\n\t\t\t\t\t\t\t<ConvertToGroupButton\n\t\t\t\t\t\t\t\t{ ...convertToGroupButtonProps }\n\t\t\t\t\t\t\t\tonClose={ fillProps?.onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t);\n\t\t\t} }\n\t\t</Slot>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-settings-menu-controls/README.md\n *\n * @param {Object} props Fill props.\n * @return {WPElement} Element.\n */\nfunction BlockSettingsMenuControls( { ...props } ) {\n\treturn (\n\t\t<StyleProvider document={ document }>\n\t\t\t<Fill { ...props } />\n\t\t</StyleProvider>\n\t);\n}\n\nBlockSettingsMenuControls.Slot = BlockSettingsMenuControlsSlot;\n\nexport default BlockSettingsMenuControls;\n"]}