@wordpress/block-editor 9.7.1-next.d6164808d3.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 (556) hide show
  1. package/CHANGELOG.md +8 -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-list-compact.native.js +73 -0
  18. package/build/components/block-list/block-list-compact.native.js.map +1 -0
  19. package/build/components/block-list/block.js +40 -9
  20. package/build/components/block-list/block.js.map +1 -1
  21. package/build/components/block-list/index.js +4 -4
  22. package/build/components/block-list/index.js.map +1 -1
  23. package/build/components/block-list/use-block-props/index.js +14 -11
  24. package/build/components/block-list/use-block-props/index.js.map +1 -1
  25. package/build/components/block-list/use-block-props/use-block-class-names.js +3 -2
  26. package/build/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  27. package/build/components/block-list/use-block-props/use-focus-first-element.js +4 -10
  28. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  29. package/build/components/block-list/use-block-props/use-is-hovered.js +1 -2
  30. package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  31. package/build/components/block-list/use-in-between-inserter.js +7 -12
  32. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  33. package/build/components/block-list-appender/index.js +20 -21
  34. package/build/components/block-list-appender/index.js.map +1 -1
  35. package/build/components/block-list-appender/index.native.js +1 -7
  36. package/build/components/block-list-appender/index.native.js.map +1 -1
  37. package/build/components/block-lock/use-block-lock.js +3 -1
  38. package/build/components/block-lock/use-block-lock.js.map +1 -1
  39. package/build/components/block-mobile-toolbar/block-actions-menu.native.js +20 -10
  40. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  41. package/build/components/block-mover/button.js +4 -6
  42. package/build/components/block-mover/button.js.map +1 -1
  43. package/build/components/block-mover/index.js +4 -6
  44. package/build/components/block-mover/index.js.map +1 -1
  45. package/build/components/block-mover/index.native.js +24 -8
  46. package/build/components/block-mover/index.native.js.map +1 -1
  47. package/build/components/block-popover/inbetween.js +58 -16
  48. package/build/components/block-popover/inbetween.js.map +1 -1
  49. package/build/components/block-popover/index.js +14 -9
  50. package/build/components/block-popover/index.js.map +1 -1
  51. package/build/components/block-preview/auto.js +4 -2
  52. package/build/components/block-preview/auto.js.map +1 -1
  53. package/build/components/block-settings-menu/block-settings-dropdown.js +3 -1
  54. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  55. package/build/components/block-settings-menu-controls/index.js +3 -1
  56. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  57. package/build/components/block-styles/preview-panel.js +7 -1
  58. package/build/components/block-styles/preview-panel.js.map +1 -1
  59. package/build/components/block-switcher/block-transformations-menu.js +114 -25
  60. package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
  61. package/build/components/block-toolbar/index.js +9 -8
  62. package/build/components/block-toolbar/index.js.map +1 -1
  63. package/build/components/block-tools/block-contextual-toolbar.js +3 -2
  64. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  65. package/build/components/block-tools/block-selection-button.js +13 -5
  66. package/build/components/block-tools/block-selection-button.js.map +1 -1
  67. package/build/components/block-tools/index.js +33 -15
  68. package/build/components/block-tools/index.js.map +1 -1
  69. package/build/components/block-tools/insertion-point.js +4 -9
  70. package/build/components/block-tools/insertion-point.js.map +1 -1
  71. package/build/components/block-tools/selected-block-popover.js +19 -10
  72. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  73. package/build/components/block-tools/use-block-toolbar-popover-props.js +131 -0
  74. package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -0
  75. package/build/components/block-tools/zoom-out-mode-inserters.js +71 -0
  76. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -0
  77. package/build/components/block-vertical-alignment-control/ui.js +5 -2
  78. package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
  79. package/build/components/colors-gradients/control.js +1 -0
  80. package/build/components/colors-gradients/control.js.map +1 -1
  81. package/build/components/colors-gradients/dropdown.js +1 -1
  82. package/build/components/colors-gradients/dropdown.js.map +1 -1
  83. package/build/components/iframe/index.js +31 -4
  84. package/build/components/iframe/index.js.map +1 -1
  85. package/build/components/inner-blocks/default-block-appender.js +1 -7
  86. package/build/components/inner-blocks/default-block-appender.js.map +1 -1
  87. package/build/components/inner-blocks/index.js +2 -2
  88. package/build/components/inner-blocks/index.js.map +1 -1
  89. package/build/components/inner-blocks/index.native.js +6 -2
  90. package/build/components/inner-blocks/index.native.js.map +1 -1
  91. package/build/components/inner-blocks/use-inner-block-template-sync.js +5 -5
  92. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  93. package/build/components/inner-blocks/use-nested-settings-update.js +1 -1
  94. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  95. package/build/components/inserter/index.js +3 -6
  96. package/build/components/inserter/index.js.map +1 -1
  97. package/build/components/inserter/library.js +14 -3
  98. package/build/components/inserter/library.js.map +1 -1
  99. package/build/components/inserter/menu.js +21 -8
  100. package/build/components/inserter/menu.js.map +1 -1
  101. package/build/components/inserter/preview-panel.js +1 -1
  102. package/build/components/inserter/preview-panel.js.map +1 -1
  103. package/build/components/inserter/tabs.js +11 -4
  104. package/build/components/inserter/tabs.js.map +1 -1
  105. package/build/components/link-control/link-preview.js +1 -1
  106. package/build/components/link-control/link-preview.js.map +1 -1
  107. package/build/components/link-control/search-input.js +6 -3
  108. package/build/components/link-control/search-input.js.map +1 -1
  109. package/build/components/link-control/search-item.js +36 -5
  110. package/build/components/link-control/search-item.js.map +1 -1
  111. package/build/components/list-view/block.js +23 -11
  112. package/build/components/list-view/block.js.map +1 -1
  113. package/build/components/list-view/branch.js +19 -2
  114. package/build/components/list-view/branch.js.map +1 -1
  115. package/build/components/list-view/index.js +8 -4
  116. package/build/components/list-view/index.js.map +1 -1
  117. package/build/components/list-view/use-block-selection.js +0 -1
  118. package/build/components/list-view/use-block-selection.js.map +1 -1
  119. package/build/components/provider/use-block-sync.js +1 -7
  120. package/build/components/provider/use-block-sync.js.map +1 -1
  121. package/build/components/publish-date-time-picker/index.js +1 -1
  122. package/build/components/publish-date-time-picker/index.js.map +1 -1
  123. package/build/components/rich-text/index.js +37 -19
  124. package/build/components/rich-text/index.js.map +1 -1
  125. package/build/components/rich-text/index.native.js +11 -20
  126. package/build/components/rich-text/index.native.js.map +1 -1
  127. package/build/components/spacing-sizes-control/spacing-input-control.js +6 -1
  128. package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  129. package/build/components/spacing-sizes-control/utils.js +32 -1
  130. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  131. package/build/components/text-decoration-control/index.js +28 -17
  132. package/build/components/text-decoration-control/index.js.map +1 -1
  133. package/build/components/text-transform-control/index.js +21 -14
  134. package/build/components/text-transform-control/index.js.map +1 -1
  135. package/build/components/tool-selector/index.js +6 -11
  136. package/build/components/tool-selector/index.js.map +1 -1
  137. package/build/components/url-popover/index.js +1 -1
  138. package/build/components/url-popover/index.js.map +1 -1
  139. package/build/components/use-block-drop-zone/index.js +7 -4
  140. package/build/components/use-block-drop-zone/index.js.map +1 -1
  141. package/build/components/use-moving-animation/index.js +9 -28
  142. package/build/components/use-moving-animation/index.js.map +1 -1
  143. package/build/components/writing-flow/index.js +2 -0
  144. package/build/components/writing-flow/index.js.map +1 -1
  145. package/build/components/writing-flow/use-select-all.js +7 -16
  146. package/build/components/writing-flow/use-select-all.js.map +1 -1
  147. package/build/hooks/align.js +17 -3
  148. package/build/hooks/align.js.map +1 -1
  149. package/build/hooks/anchor.js +3 -7
  150. package/build/hooks/anchor.js.map +1 -1
  151. package/build/hooks/color-panel.js +2 -1
  152. package/build/hooks/color-panel.js.map +1 -1
  153. package/build/hooks/content-lock-ui.js +145 -0
  154. package/build/hooks/content-lock-ui.js.map +1 -0
  155. package/build/hooks/dimensions.js +6 -6
  156. package/build/hooks/dimensions.js.map +1 -1
  157. package/build/hooks/duotone.js +8 -1
  158. package/build/hooks/duotone.js.map +1 -1
  159. package/build/hooks/font-appearance.js +2 -1
  160. package/build/hooks/font-appearance.js.map +1 -1
  161. package/build/hooks/font-family.js +3 -1
  162. package/build/hooks/font-family.js.map +1 -1
  163. package/build/hooks/font-size.js +3 -1
  164. package/build/hooks/font-size.js.map +1 -1
  165. package/build/hooks/gap.js +23 -6
  166. package/build/hooks/gap.js.map +1 -1
  167. package/build/hooks/index.js +14 -0
  168. package/build/hooks/index.js.map +1 -1
  169. package/build/hooks/layout.js +14 -10
  170. package/build/hooks/layout.js.map +1 -1
  171. package/build/hooks/letter-spacing.js +2 -1
  172. package/build/hooks/letter-spacing.js.map +1 -1
  173. package/build/hooks/line-height.js +2 -1
  174. package/build/hooks/line-height.js.map +1 -1
  175. package/build/hooks/lock.js +3 -7
  176. package/build/hooks/lock.js.map +1 -1
  177. package/build/hooks/metadata-name.js +55 -0
  178. package/build/hooks/metadata-name.js.map +1 -0
  179. package/build/hooks/metadata.js +65 -0
  180. package/build/hooks/metadata.js.map +1 -0
  181. package/build/hooks/text-decoration.js +2 -1
  182. package/build/hooks/text-decoration.js.map +1 -1
  183. package/build/hooks/text-transform.js +2 -1
  184. package/build/hooks/text-transform.js.map +1 -1
  185. package/build/hooks/use-typography-props.js +51 -0
  186. package/build/hooks/use-typography-props.js.map +1 -0
  187. package/build/hooks/utils.js +3 -1
  188. package/build/hooks/utils.js.map +1 -1
  189. package/build/index.js +7 -0
  190. package/build/index.js.map +1 -1
  191. package/build/layouts/constrained.js +71 -22
  192. package/build/layouts/constrained.js.map +1 -1
  193. package/build/layouts/flow.js +30 -2
  194. package/build/layouts/flow.js.map +1 -1
  195. package/build/store/actions.js +65 -21
  196. package/build/store/actions.js.map +1 -1
  197. package/build/store/reducer.js +39 -18
  198. package/build/store/reducer.js.map +1 -1
  199. package/build/store/selectors.js +95 -9
  200. package/build/store/selectors.js.map +1 -1
  201. package/build/utils/parse-css-unit-to-px.js +1 -1
  202. package/build/utils/parse-css-unit-to-px.js.map +1 -1
  203. package/build-module/components/alignment-control/ui.js +6 -5
  204. package/build-module/components/alignment-control/ui.js.map +1 -1
  205. package/build-module/components/block-actions/index.js +5 -8
  206. package/build-module/components/block-actions/index.js.map +1 -1
  207. package/build-module/components/block-alignment-control/ui.js +5 -5
  208. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  209. package/build-module/components/block-content-overlay/index.js +2 -4
  210. package/build-module/components/block-content-overlay/index.js.map +1 -1
  211. package/build-module/components/block-draggable/draggable-chip.js +2 -1
  212. package/build-module/components/block-draggable/draggable-chip.js.map +1 -1
  213. package/build-module/components/block-edit/edit.js +1 -1
  214. package/build-module/components/block-edit/edit.js.map +1 -1
  215. package/build-module/components/block-inspector/index.js +127 -19
  216. package/build-module/components/block-inspector/index.js.map +1 -1
  217. package/build-module/components/block-list/block-list-compact.native.js +58 -0
  218. package/build-module/components/block-list/block-list-compact.native.js.map +1 -0
  219. package/build-module/components/block-list/block.js +41 -9
  220. package/build-module/components/block-list/block.js.map +1 -1
  221. package/build-module/components/block-list/index.js +4 -4
  222. package/build-module/components/block-list/index.js.map +1 -1
  223. package/build-module/components/block-list/use-block-props/index.js +13 -11
  224. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  225. package/build-module/components/block-list/use-block-props/use-block-class-names.js +3 -2
  226. package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  227. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +4 -9
  228. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  229. package/build-module/components/block-list/use-block-props/use-is-hovered.js +1 -2
  230. package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  231. package/build-module/components/block-list/use-in-between-inserter.js +7 -12
  232. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  233. package/build-module/components/block-list-appender/index.js +20 -20
  234. package/build-module/components/block-list-appender/index.js.map +1 -1
  235. package/build-module/components/block-list-appender/index.native.js +1 -6
  236. package/build-module/components/block-list-appender/index.native.js.map +1 -1
  237. package/build-module/components/block-lock/use-block-lock.js +3 -1
  238. package/build-module/components/block-lock/use-block-lock.js.map +1 -1
  239. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +20 -9
  240. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  241. package/build-module/components/block-mover/button.js +4 -5
  242. package/build-module/components/block-mover/button.js.map +1 -1
  243. package/build-module/components/block-mover/index.js +4 -5
  244. package/build-module/components/block-mover/index.js.map +1 -1
  245. package/build-module/components/block-mover/index.native.js +24 -7
  246. package/build-module/components/block-mover/index.native.js.map +1 -1
  247. package/build-module/components/block-popover/inbetween.js +59 -17
  248. package/build-module/components/block-popover/inbetween.js.map +1 -1
  249. package/build-module/components/block-popover/index.js +12 -9
  250. package/build-module/components/block-popover/index.js.map +1 -1
  251. package/build-module/components/block-preview/auto.js +4 -2
  252. package/build-module/components/block-preview/auto.js.map +1 -1
  253. package/build-module/components/block-settings-menu/block-settings-dropdown.js +3 -1
  254. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  255. package/build-module/components/block-settings-menu-controls/index.js +3 -1
  256. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  257. package/build-module/components/block-styles/preview-panel.js +6 -1
  258. package/build-module/components/block-styles/preview-panel.js.map +1 -1
  259. package/build-module/components/block-switcher/block-transformations-menu.js +115 -27
  260. package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
  261. package/build-module/components/block-toolbar/index.js +9 -8
  262. package/build-module/components/block-toolbar/index.js.map +1 -1
  263. package/build-module/components/block-tools/block-contextual-toolbar.js +3 -2
  264. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  265. package/build-module/components/block-tools/block-selection-button.js +12 -5
  266. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  267. package/build-module/components/block-tools/index.js +30 -15
  268. package/build-module/components/block-tools/index.js.map +1 -1
  269. package/build-module/components/block-tools/insertion-point.js +4 -9
  270. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  271. package/build-module/components/block-tools/selected-block-popover.js +17 -10
  272. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  273. package/build-module/components/block-tools/use-block-toolbar-popover-props.js +119 -0
  274. package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -0
  275. package/build-module/components/block-tools/zoom-out-mode-inserters.js +59 -0
  276. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -0
  277. package/build-module/components/block-vertical-alignment-control/ui.js +5 -2
  278. package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
  279. package/build-module/components/colors-gradients/control.js +1 -0
  280. package/build-module/components/colors-gradients/control.js.map +1 -1
  281. package/build-module/components/colors-gradients/dropdown.js +1 -1
  282. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  283. package/build-module/components/iframe/index.js +32 -5
  284. package/build-module/components/iframe/index.js.map +1 -1
  285. package/build-module/components/inner-blocks/default-block-appender.js +1 -6
  286. package/build-module/components/inner-blocks/default-block-appender.js.map +1 -1
  287. package/build-module/components/inner-blocks/index.js +2 -2
  288. package/build-module/components/inner-blocks/index.js.map +1 -1
  289. package/build-module/components/inner-blocks/index.native.js +5 -2
  290. package/build-module/components/inner-blocks/index.native.js.map +1 -1
  291. package/build-module/components/inner-blocks/use-inner-block-template-sync.js +5 -5
  292. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  293. package/build-module/components/inner-blocks/use-nested-settings-update.js +1 -1
  294. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  295. package/build-module/components/inserter/index.js +3 -6
  296. package/build-module/components/inserter/index.js.map +1 -1
  297. package/build-module/components/inserter/library.js +14 -3
  298. package/build-module/components/inserter/library.js.map +1 -1
  299. package/build-module/components/inserter/menu.js +20 -8
  300. package/build-module/components/inserter/menu.js.map +1 -1
  301. package/build-module/components/inserter/preview-panel.js +1 -1
  302. package/build-module/components/inserter/preview-panel.js.map +1 -1
  303. package/build-module/components/inserter/tabs.js +11 -4
  304. package/build-module/components/inserter/tabs.js.map +1 -1
  305. package/build-module/components/link-control/link-preview.js +1 -1
  306. package/build-module/components/link-control/link-preview.js.map +1 -1
  307. package/build-module/components/link-control/search-input.js +6 -2
  308. package/build-module/components/link-control/search-input.js.map +1 -1
  309. package/build-module/components/link-control/search-item.js +37 -6
  310. package/build-module/components/link-control/search-item.js.map +1 -1
  311. package/build-module/components/list-view/block.js +23 -11
  312. package/build-module/components/list-view/block.js.map +1 -1
  313. package/build-module/components/list-view/branch.js +19 -3
  314. package/build-module/components/list-view/branch.js.map +1 -1
  315. package/build-module/components/list-view/index.js +8 -4
  316. package/build-module/components/list-view/index.js.map +1 -1
  317. package/build-module/components/list-view/use-block-selection.js +0 -1
  318. package/build-module/components/list-view/use-block-selection.js.map +1 -1
  319. package/build-module/components/provider/use-block-sync.js +1 -6
  320. package/build-module/components/provider/use-block-sync.js.map +1 -1
  321. package/build-module/components/publish-date-time-picker/index.js +1 -1
  322. package/build-module/components/publish-date-time-picker/index.js.map +1 -1
  323. package/build-module/components/rich-text/index.js +37 -18
  324. package/build-module/components/rich-text/index.js.map +1 -1
  325. package/build-module/components/rich-text/index.native.js +11 -18
  326. package/build-module/components/rich-text/index.native.js.map +1 -1
  327. package/build-module/components/spacing-sizes-control/spacing-input-control.js +7 -2
  328. package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
  329. package/build-module/components/spacing-sizes-control/utils.js +30 -1
  330. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  331. package/build-module/components/text-decoration-control/index.js +25 -18
  332. package/build-module/components/text-decoration-control/index.js.map +1 -1
  333. package/build-module/components/text-transform-control/index.js +19 -15
  334. package/build-module/components/text-transform-control/index.js.map +1 -1
  335. package/build-module/components/tool-selector/index.js +6 -11
  336. package/build-module/components/tool-selector/index.js.map +1 -1
  337. package/build-module/components/url-popover/index.js +1 -1
  338. package/build-module/components/url-popover/index.js.map +1 -1
  339. package/build-module/components/use-block-drop-zone/index.js +7 -4
  340. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  341. package/build-module/components/use-moving-animation/index.js +9 -28
  342. package/build-module/components/use-moving-animation/index.js.map +1 -1
  343. package/build-module/components/writing-flow/index.js +2 -0
  344. package/build-module/components/writing-flow/index.js.map +1 -1
  345. package/build-module/components/writing-flow/use-select-all.js +7 -15
  346. package/build-module/components/writing-flow/use-select-all.js.map +1 -1
  347. package/build-module/hooks/align.js +16 -4
  348. package/build-module/hooks/align.js.map +1 -1
  349. package/build-module/hooks/anchor.js +3 -6
  350. package/build-module/hooks/anchor.js.map +1 -1
  351. package/build-module/hooks/color-panel.js +2 -1
  352. package/build-module/hooks/color-panel.js.map +1 -1
  353. package/build-module/hooks/content-lock-ui.js +128 -0
  354. package/build-module/hooks/content-lock-ui.js.map +1 -0
  355. package/build-module/hooks/dimensions.js +6 -6
  356. package/build-module/hooks/dimensions.js.map +1 -1
  357. package/build-module/hooks/duotone.js +6 -1
  358. package/build-module/hooks/duotone.js.map +1 -1
  359. package/build-module/hooks/font-appearance.js +2 -1
  360. package/build-module/hooks/font-appearance.js.map +1 -1
  361. package/build-module/hooks/font-family.js +3 -1
  362. package/build-module/hooks/font-family.js.map +1 -1
  363. package/build-module/hooks/font-size.js +3 -1
  364. package/build-module/hooks/font-size.js.map +1 -1
  365. package/build-module/hooks/gap.js +22 -6
  366. package/build-module/hooks/gap.js.map +1 -1
  367. package/build-module/hooks/index.js +4 -0
  368. package/build-module/hooks/index.js.map +1 -1
  369. package/build-module/hooks/layout.js +15 -11
  370. package/build-module/hooks/layout.js.map +1 -1
  371. package/build-module/hooks/letter-spacing.js +2 -1
  372. package/build-module/hooks/letter-spacing.js.map +1 -1
  373. package/build-module/hooks/line-height.js +2 -1
  374. package/build-module/hooks/line-height.js.map +1 -1
  375. package/build-module/hooks/lock.js +3 -6
  376. package/build-module/hooks/lock.js.map +1 -1
  377. package/build-module/hooks/metadata-name.js +45 -0
  378. package/build-module/hooks/metadata-name.js.map +1 -0
  379. package/build-module/hooks/metadata.js +50 -0
  380. package/build-module/hooks/metadata.js.map +1 -0
  381. package/build-module/hooks/text-decoration.js +2 -1
  382. package/build-module/hooks/text-decoration.js.map +1 -1
  383. package/build-module/hooks/text-transform.js +2 -1
  384. package/build-module/hooks/text-transform.js.map +1 -1
  385. package/build-module/hooks/use-typography-props.js +38 -0
  386. package/build-module/hooks/use-typography-props.js.map +1 -0
  387. package/build-module/hooks/utils.js +4 -2
  388. package/build-module/hooks/utils.js.map +1 -1
  389. package/build-module/index.js +1 -1
  390. package/build-module/index.js.map +1 -1
  391. package/build-module/layouts/constrained.js +74 -25
  392. package/build-module/layouts/constrained.js.map +1 -1
  393. package/build-module/layouts/flow.js +31 -3
  394. package/build-module/layouts/flow.js.map +1 -1
  395. package/build-module/store/actions.js +58 -20
  396. package/build-module/store/actions.js.map +1 -1
  397. package/build-module/store/reducer.js +37 -18
  398. package/build-module/store/reducer.js.map +1 -1
  399. package/build-module/store/selectors.js +80 -9
  400. package/build-module/store/selectors.js.map +1 -1
  401. package/build-module/utils/parse-css-unit-to-px.js +1 -1
  402. package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
  403. package/build-style/style-rtl.css +137 -86
  404. package/build-style/style.css +137 -86
  405. package/package.json +28 -28
  406. package/src/components/alignment-control/test/__snapshots__/index.js.snap +137 -108
  407. package/src/components/alignment-control/test/index.js +124 -33
  408. package/src/components/alignment-control/ui.js +8 -3
  409. package/src/components/block-actions/index.js +9 -8
  410. package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +108 -65
  411. package/src/components/block-alignment-control/test/index.js +95 -31
  412. package/src/components/block-alignment-control/ui.js +2 -2
  413. package/src/components/block-compare/test/__snapshots__/block-view.js.snap +28 -26
  414. package/src/components/block-compare/test/block-view.js +3 -3
  415. package/src/components/block-content-overlay/index.js +2 -6
  416. package/src/components/block-content-overlay/style.scss +24 -3
  417. package/src/components/block-draggable/draggable-chip.js +4 -1
  418. package/src/components/block-edit/edit.js +5 -1
  419. package/src/components/block-edit/test/edit.js +23 -21
  420. package/src/components/block-icon/test/__snapshots__/index.js.snap +22 -0
  421. package/src/components/block-icon/test/index.js +31 -16
  422. package/src/components/block-inspector/index.js +126 -12
  423. package/src/components/block-inspector/style.scss +7 -1
  424. package/src/components/block-list/block-list-compact.native.js +62 -0
  425. package/src/components/block-list/block.js +53 -13
  426. package/src/components/block-list/index.js +4 -4
  427. package/src/components/block-list/style.scss +68 -18
  428. package/src/components/block-list/test/block-list-context.native.js +11 -13
  429. package/src/components/block-list/use-block-props/index.js +10 -10
  430. package/src/components/block-list/use-block-props/use-block-class-names.js +4 -1
  431. package/src/components/block-list/use-block-props/use-focus-first-element.js +4 -9
  432. package/src/components/block-list/use-block-props/use-is-hovered.js +2 -2
  433. package/src/components/block-list/use-in-between-inserter.js +11 -13
  434. package/src/components/block-list-appender/index.js +27 -18
  435. package/src/components/block-list-appender/index.native.js +3 -6
  436. package/src/components/block-lock/use-block-lock.js +2 -0
  437. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +15 -9
  438. package/src/components/block-mover/button.js +6 -5
  439. package/src/components/block-mover/index.js +8 -7
  440. package/src/components/block-mover/index.native.js +20 -13
  441. package/src/components/block-popover/inbetween.js +85 -21
  442. package/src/components/block-popover/index.js +25 -17
  443. package/src/components/block-popover/style.scss +3 -4
  444. package/src/components/block-preview/auto.js +4 -2
  445. package/src/components/block-settings-menu/block-settings-dropdown.js +4 -0
  446. package/src/components/block-settings-menu-controls/README.md +9 -0
  447. package/src/components/block-settings-menu-controls/index.js +13 -2
  448. package/src/components/block-styles/preview-panel.js +3 -0
  449. package/src/components/block-switcher/block-transformations-menu.js +127 -33
  450. package/src/components/block-switcher/style.scss +4 -2
  451. package/src/components/block-switcher/test/index.js +1 -2
  452. package/src/components/block-title/test/index.js +28 -25
  453. package/src/components/block-toolbar/index.js +27 -17
  454. package/src/components/block-tools/block-contextual-toolbar.js +10 -3
  455. package/src/components/block-tools/block-selection-button.js +35 -16
  456. package/src/components/block-tools/index.js +40 -24
  457. package/src/components/block-tools/insertion-point.js +3 -7
  458. package/src/components/block-tools/selected-block-popover.js +16 -7
  459. package/src/components/block-tools/style.scss +5 -0
  460. package/src/components/block-tools/use-block-toolbar-popover-props.js +136 -0
  461. package/src/components/block-tools/zoom-out-mode-inserters.js +57 -0
  462. package/src/components/block-vertical-alignment-control/test/__snapshots__/index.js.snap +91 -51
  463. package/src/components/block-vertical-alignment-control/test/index.js +92 -23
  464. package/src/components/block-vertical-alignment-control/ui.js +3 -2
  465. package/src/components/button-block-appender/style.scss +23 -0
  466. package/src/components/color-palette/test/__snapshots__/control.js.snap +3 -12
  467. package/src/components/colors/test/with-colors.js +37 -12
  468. package/src/components/colors-gradients/control.js +1 -0
  469. package/src/components/colors-gradients/dropdown.js +1 -1
  470. package/src/components/contrast-checker/test/index.js +135 -116
  471. package/src/components/default-block-appender/test/__snapshots__/index.js.snap +39 -57
  472. package/src/components/default-block-appender/test/index.js +32 -18
  473. package/src/components/font-sizes/README.MD +9 -0
  474. package/src/components/iframe/index.js +64 -5
  475. package/src/components/inner-blocks/README.md +2 -1
  476. package/src/components/inner-blocks/default-block-appender.js +1 -6
  477. package/src/components/inner-blocks/index.js +3 -2
  478. package/src/components/inner-blocks/index.native.js +5 -1
  479. package/src/components/inner-blocks/use-inner-block-template-sync.js +9 -5
  480. package/src/components/inner-blocks/use-nested-settings-update.js +3 -1
  481. package/src/components/inserter/index.js +2 -8
  482. package/src/components/inserter/library.js +11 -5
  483. package/src/components/inserter/menu.js +42 -29
  484. package/src/components/inserter/preview-panel.js +1 -1
  485. package/src/components/inserter/stories/fixtures.js +44 -0
  486. package/src/components/inserter/stories/index.js +90 -0
  487. package/src/components/inserter/style.scss +21 -27
  488. package/src/components/inserter/tabs.js +8 -4
  489. package/src/components/link-control/link-preview.js +5 -3
  490. package/src/components/link-control/search-input.js +2 -2
  491. package/src/components/link-control/search-item.js +39 -7
  492. package/src/components/list-view/block.js +29 -10
  493. package/src/components/list-view/branch.js +27 -4
  494. package/src/components/list-view/index.js +8 -3
  495. package/src/components/list-view/use-block-selection.js +0 -1
  496. package/src/components/media-placeholder/test/index.js +2 -2
  497. package/src/components/media-replace-flow/README.md +1 -1
  498. package/src/components/provider/use-block-sync.js +3 -6
  499. package/src/components/publish-date-time-picker/index.js +1 -1
  500. package/src/components/rich-text/index.js +33 -35
  501. package/src/components/rich-text/index.native.js +8 -21
  502. package/src/components/spacing-sizes-control/spacing-input-control.js +5 -0
  503. package/src/components/spacing-sizes-control/test/utils.js +26 -0
  504. package/src/components/spacing-sizes-control/utils.js +36 -9
  505. package/src/components/text-decoration-control/index.js +41 -30
  506. package/src/components/text-decoration-control/stories/index.js +37 -0
  507. package/src/components/text-transform-control/index.js +27 -27
  508. package/src/components/text-transform-control/stories/index.js +37 -0
  509. package/src/components/tool-selector/index.js +9 -11
  510. package/src/components/url-input/test/button.js +145 -71
  511. package/src/components/url-popover/index.js +1 -1
  512. package/src/components/url-popover/test/__snapshots__/index.js.snap +108 -80
  513. package/src/components/url-popover/test/index.js +14 -12
  514. package/src/components/use-block-drop-zone/index.js +15 -4
  515. package/src/components/use-moving-animation/index.js +9 -24
  516. package/src/components/warning/test/__snapshots__/index.js.snap +11 -14
  517. package/src/components/warning/test/index.js +32 -29
  518. package/src/components/writing-flow/index.js +2 -0
  519. package/src/components/writing-flow/use-select-all.js +13 -18
  520. package/src/hooks/align.js +24 -15
  521. package/src/hooks/anchor.js +1 -6
  522. package/src/hooks/color-panel.js +2 -1
  523. package/src/hooks/content-lock-ui.js +161 -0
  524. package/src/hooks/dimensions.js +7 -8
  525. package/src/hooks/duotone.js +13 -1
  526. package/src/hooks/font-appearance.js +1 -0
  527. package/src/hooks/font-family.js +2 -0
  528. package/src/hooks/font-size.js +2 -0
  529. package/src/hooks/gap.js +43 -25
  530. package/src/hooks/index.js +4 -0
  531. package/src/hooks/layout.js +27 -21
  532. package/src/hooks/layout.scss +7 -1
  533. package/src/hooks/letter-spacing.js +1 -0
  534. package/src/hooks/line-height.js +1 -0
  535. package/src/hooks/lock.js +1 -6
  536. package/src/hooks/metadata-name.js +48 -0
  537. package/src/hooks/metadata.js +64 -0
  538. package/src/hooks/test/gap.js +16 -22
  539. package/src/hooks/test/use-typography-props.js +28 -0
  540. package/src/hooks/text-decoration.js +1 -0
  541. package/src/hooks/text-transform.js +1 -0
  542. package/src/hooks/typography.scss +0 -6
  543. package/src/hooks/use-typography-props.js +41 -0
  544. package/src/hooks/utils.js +2 -11
  545. package/src/index.js +1 -0
  546. package/src/layouts/constrained.js +85 -33
  547. package/src/layouts/flow.js +21 -10
  548. package/src/store/actions.js +45 -4
  549. package/src/store/reducer.js +33 -21
  550. package/src/store/selectors.js +98 -19
  551. package/src/store/test/reducer.js +8 -5
  552. package/src/style.scss +0 -2
  553. package/src/utils/parse-css-unit-to-px.js +1 -1
  554. package/src/components/colors/test/__snapshots__/with-colors.js.snap +0 -23
  555. package/src/components/text-decoration-control/style.scss +0 -18
  556. package/src/components/text-transform-control/style.scss +0 -18
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-preview/auto.js"],"names":["Disabled","useResizeObserver","pure","useRefEffect","useSelect","useMemo","BlockList","Iframe","EditorStyles","__unstablePresetDuotoneFilter","PresetDuotoneFilter","store","MemoizedBlockList","MAX_HEIGHT","AutoBlockPreview","viewportWidth","__experimentalPadding","__experimentalMinHeight","containerResizeListener","width","containerWidth","contentResizeListener","height","contentHeight","styles","assets","duotone","select","settings","getSettings","__unstableResolvedAssets","__experimentalFeatures","color","editorStyles","css","__unstableType","svgFilters","default","theme","scale","transform","maxHeight","undefined","minHeight","bodyElement","ownerDocument","documentElement","classList","add","style","position","padding","pointerEvents","map","preset","slug"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Disabled } from '@wordpress/components';\nimport { useResizeObserver, pure, useRefEffect } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockList from '../block-list';\nimport Iframe from '../iframe';\nimport EditorStyles from '../editor-styles';\nimport { __unstablePresetDuotoneFilter as PresetDuotoneFilter } from '../../components/duotone';\nimport { store } from '../../store';\n\n// This is used to avoid rendering the block list if the sizes change.\nlet MemoizedBlockList;\n\nconst MAX_HEIGHT = 2000;\n\nfunction AutoBlockPreview( {\n\tviewportWidth,\n\t__experimentalPadding,\n\t__experimentalMinHeight,\n} ) {\n\tconst [ containerResizeListener, { width: containerWidth } ] =\n\t\tuseResizeObserver();\n\tconst [ contentResizeListener, { height: contentHeight } ] =\n\t\tuseResizeObserver();\n\tconst { styles, assets, duotone } = useSelect( ( select ) => {\n\t\tconst settings = select( store ).getSettings();\n\t\treturn {\n\t\t\tstyles: settings.styles,\n\t\t\tassets: settings.__unstableResolvedAssets,\n\t\t\tduotone: settings.__experimentalFeatures?.color?.duotone,\n\t\t};\n\t}, [] );\n\n\t// Avoid scrollbars for pattern previews.\n\tconst editorStyles = useMemo( () => {\n\t\tif ( styles ) {\n\t\t\treturn [\n\t\t\t\t...styles,\n\t\t\t\t{\n\t\t\t\t\tcss: 'body{height:auto;overflow:hidden;}',\n\t\t\t\t\t__unstableType: 'presets',\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\n\t\treturn styles;\n\t}, [ styles ] );\n\n\tconst svgFilters = useMemo( () => {\n\t\treturn [ ...( duotone?.default ?? [] ), ...( duotone?.theme ?? [] ) ];\n\t}, [ duotone ] );\n\n\t// Initialize on render instead of module top level, to avoid circular dependency issues.\n\tMemoizedBlockList = MemoizedBlockList || pure( BlockList );\n\n\tconst scale = containerWidth / viewportWidth;\n\treturn (\n\t\t<div className=\"block-editor-block-preview__container\">\n\t\t\t{ containerResizeListener }\n\t\t\t<Disabled\n\t\t\t\tclassName=\"block-editor-block-preview__content\"\n\t\t\t\tstyle={ {\n\t\t\t\t\ttransform: `scale(${ scale })`,\n\t\t\t\t\theight: contentHeight * scale,\n\t\t\t\t\tmaxHeight:\n\t\t\t\t\t\tcontentHeight > MAX_HEIGHT\n\t\t\t\t\t\t\t? MAX_HEIGHT * scale\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\tminHeight: __experimentalMinHeight,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<Iframe\n\t\t\t\t\thead={ <EditorStyles styles={ editorStyles } /> }\n\t\t\t\t\tassets={ assets }\n\t\t\t\t\tcontentRef={ useRefEffect( ( bodyElement ) => {\n\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\townerDocument: { documentElement },\n\t\t\t\t\t\t} = bodyElement;\n\t\t\t\t\t\tdocumentElement.classList.add(\n\t\t\t\t\t\t\t'block-editor-block-preview__content-iframe'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tdocumentElement.style.position = 'absolute';\n\t\t\t\t\t\tdocumentElement.style.width = '100%';\n\t\t\t\t\t\tbodyElement.style.padding =\n\t\t\t\t\t\t\t__experimentalPadding + 'px';\n\n\t\t\t\t\t\t// necessary for contentResizeListener to work.\n\t\t\t\t\t\tbodyElement.style.position = 'relative';\n\t\t\t\t\t}, [] ) }\n\t\t\t\t\taria-hidden\n\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\twidth: viewportWidth,\n\t\t\t\t\t\theight: contentHeight,\n\t\t\t\t\t\tpointerEvents: 'none',\n\t\t\t\t\t\t// This is a catch-all max-height for patterns.\n\t\t\t\t\t\t// See: https://github.com/WordPress/gutenberg/pull/38175.\n\t\t\t\t\t\tmaxHeight: MAX_HEIGHT,\n\t\t\t\t\t\tminHeight:\n\t\t\t\t\t\t\tscale !== 0 && scale < 1 && __experimentalMinHeight\n\t\t\t\t\t\t\t\t? __experimentalMinHeight / scale\n\t\t\t\t\t\t\t\t: __experimentalMinHeight,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ contentResizeListener }\n\t\t\t\t\t{\n\t\t\t\t\t\t/* Filters need to be rendered before children to avoid Safari rendering issues. */\n\t\t\t\t\t\tsvgFilters.map( ( preset ) => (\n\t\t\t\t\t\t\t<PresetDuotoneFilter\n\t\t\t\t\t\t\t\tpreset={ preset }\n\t\t\t\t\t\t\t\tkey={ preset.slug }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) )\n\t\t\t\t\t}\n\t\t\t\t\t<MemoizedBlockList renderAppender={ false } />\n\t\t\t\t</Iframe>\n\t\t\t</Disabled>\n\t\t</div>\n\t);\n}\n\nexport default AutoBlockPreview;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-preview/auto.js"],"names":["Disabled","useResizeObserver","pure","useRefEffect","useSelect","useMemo","BlockList","Iframe","EditorStyles","__unstablePresetDuotoneFilter","PresetDuotoneFilter","store","MemoizedBlockList","MAX_HEIGHT","AutoBlockPreview","viewportWidth","__experimentalPadding","__experimentalMinHeight","containerResizeListener","width","containerWidth","contentResizeListener","height","contentHeight","styles","assets","duotone","select","settings","getSettings","__unstableResolvedAssets","__experimentalFeatures","color","editorStyles","css","__unstableType","svgFilters","default","theme","scale","transform","maxHeight","undefined","minHeight","bodyElement","ownerDocument","documentElement","classList","add","style","position","padding","boxSizing","pointerEvents","map","preset","slug"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Disabled } from '@wordpress/components';\nimport { useResizeObserver, pure, useRefEffect } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockList from '../block-list';\nimport Iframe from '../iframe';\nimport EditorStyles from '../editor-styles';\nimport { __unstablePresetDuotoneFilter as PresetDuotoneFilter } from '../../components/duotone';\nimport { store } from '../../store';\n\n// This is used to avoid rendering the block list if the sizes change.\nlet MemoizedBlockList;\n\nconst MAX_HEIGHT = 2000;\n\nfunction AutoBlockPreview( {\n\tviewportWidth,\n\t__experimentalPadding,\n\t__experimentalMinHeight,\n} ) {\n\tconst [ containerResizeListener, { width: containerWidth } ] =\n\t\tuseResizeObserver();\n\tconst [ contentResizeListener, { height: contentHeight } ] =\n\t\tuseResizeObserver();\n\tconst { styles, assets, duotone } = useSelect( ( select ) => {\n\t\tconst settings = select( store ).getSettings();\n\t\treturn {\n\t\t\tstyles: settings.styles,\n\t\t\tassets: settings.__unstableResolvedAssets,\n\t\t\tduotone: settings.__experimentalFeatures?.color?.duotone,\n\t\t};\n\t}, [] );\n\n\t// Avoid scrollbars for pattern previews.\n\tconst editorStyles = useMemo( () => {\n\t\tif ( styles ) {\n\t\t\treturn [\n\t\t\t\t...styles,\n\t\t\t\t{\n\t\t\t\t\tcss: 'body{height:auto;overflow:hidden;}',\n\t\t\t\t\t__unstableType: 'presets',\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\n\t\treturn styles;\n\t}, [ styles ] );\n\n\tconst svgFilters = useMemo( () => {\n\t\treturn [ ...( duotone?.default ?? [] ), ...( duotone?.theme ?? [] ) ];\n\t}, [ duotone ] );\n\n\t// Initialize on render instead of module top level, to avoid circular dependency issues.\n\tMemoizedBlockList = MemoizedBlockList || pure( BlockList );\n\n\tconst scale = containerWidth / viewportWidth;\n\treturn (\n\t\t<div className=\"block-editor-block-preview__container\">\n\t\t\t{ containerResizeListener }\n\t\t\t<Disabled\n\t\t\t\tclassName=\"block-editor-block-preview__content\"\n\t\t\t\tstyle={ {\n\t\t\t\t\ttransform: `scale(${ scale })`,\n\t\t\t\t\theight: contentHeight * scale,\n\t\t\t\t\tmaxHeight:\n\t\t\t\t\t\tcontentHeight > MAX_HEIGHT\n\t\t\t\t\t\t\t? MAX_HEIGHT * scale\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\tminHeight: __experimentalMinHeight,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<Iframe\n\t\t\t\t\thead={ <EditorStyles styles={ editorStyles } /> }\n\t\t\t\t\tassets={ assets }\n\t\t\t\t\tcontentRef={ useRefEffect( ( bodyElement ) => {\n\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\townerDocument: { documentElement },\n\t\t\t\t\t\t} = bodyElement;\n\t\t\t\t\t\tdocumentElement.classList.add(\n\t\t\t\t\t\t\t'block-editor-block-preview__content-iframe'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tdocumentElement.style.position = 'absolute';\n\t\t\t\t\t\tdocumentElement.style.width = '100%';\n\t\t\t\t\t\tbodyElement.style.padding =\n\t\t\t\t\t\t\t__experimentalPadding + 'px';\n\n\t\t\t\t\t\t// Necessary for contentResizeListener to work.\n\t\t\t\t\t\tbodyElement.style.boxSizing = 'border-box';\n\t\t\t\t\t\tbodyElement.style.position = 'absolute';\n\t\t\t\t\t\tbodyElement.style.width = '100%';\n\t\t\t\t\t}, [] ) }\n\t\t\t\t\taria-hidden\n\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\twidth: viewportWidth,\n\t\t\t\t\t\theight: contentHeight,\n\t\t\t\t\t\tpointerEvents: 'none',\n\t\t\t\t\t\t// This is a catch-all max-height for patterns.\n\t\t\t\t\t\t// See: https://github.com/WordPress/gutenberg/pull/38175.\n\t\t\t\t\t\tmaxHeight: MAX_HEIGHT,\n\t\t\t\t\t\tminHeight:\n\t\t\t\t\t\t\tscale !== 0 && scale < 1 && __experimentalMinHeight\n\t\t\t\t\t\t\t\t? __experimentalMinHeight / scale\n\t\t\t\t\t\t\t\t: __experimentalMinHeight,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ contentResizeListener }\n\t\t\t\t\t{\n\t\t\t\t\t\t/* Filters need to be rendered before children to avoid Safari rendering issues. */\n\t\t\t\t\t\tsvgFilters.map( ( preset ) => (\n\t\t\t\t\t\t\t<PresetDuotoneFilter\n\t\t\t\t\t\t\t\tpreset={ preset }\n\t\t\t\t\t\t\t\tkey={ preset.slug }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) )\n\t\t\t\t\t}\n\t\t\t\t\t<MemoizedBlockList renderAppender={ false } />\n\t\t\t\t</Iframe>\n\t\t\t</Disabled>\n\t\t</div>\n\t);\n}\n\nexport default AutoBlockPreview;\n"]}
@@ -56,6 +56,7 @@ export function BlockSettingsDropdown(_ref2) {
56
56
  clientIds,
57
57
  __experimentalSelectBlock,
58
58
  children,
59
+ __unstableDisplayLocation,
59
60
  ...props
60
61
  } = _ref2;
61
62
  const blockClientIds = castArray(clientIds);
@@ -212,7 +213,8 @@ export function BlockSettingsDropdown(_ref2) {
212
213
  fillProps: {
213
214
  onClose
214
215
  },
215
- clientIds: clientIds
216
+ clientIds: clientIds,
217
+ __unstableDisplayLocation: __unstableDisplayLocation
216
218
  }), typeof children === 'function' ? children({
217
219
  onClose
218
220
  }) : Children.map(child => cloneElement(child, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-settings-dropdown.js"],"names":["castArray","flow","getBlockType","serialize","DropdownMenu","MenuGroup","MenuItem","useDispatch","useSelect","moreVertical","Children","cloneElement","useCallback","useRef","__","sprintf","store","keyboardShortcutsStore","useCopyToClipboard","BlockActions","BlockIcon","BlockModeToggle","BlockHTMLConvertButton","__unstableBlockSettingsMenuFirstItem","BlockSettingsMenuControls","blockEditorStore","useBlockDisplayTitle","useShowMoversGestures","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","parents","_firstParentClientId","parentBlockName","shortcuts","getShortcutRepresentation","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","onClose","undefined","icon","title","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":["castArray","flow","getBlockType","serialize","DropdownMenu","MenuGroup","MenuItem","useDispatch","useSelect","moreVertical","Children","cloneElement","useCallback","useRef","__","sprintf","store","keyboardShortcutsStore","useCopyToClipboard","BlockActions","BlockIcon","BlockModeToggle","BlockHTMLConvertButton","__unstableBlockSettingsMenuFirstItem","BlockSettingsMenuControls","blockEditorStore","useBlockDisplayTitle","useShowMoversGestures","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","parents","_firstParentClientId","parentBlockName","shortcuts","getShortcutRepresentation","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","onClose","undefined","icon","title","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"]}
@@ -26,7 +26,8 @@ const {
26
26
  const BlockSettingsMenuControlsSlot = _ref => {
27
27
  let {
28
28
  fillProps,
29
- clientIds = null
29
+ clientIds = null,
30
+ __unstableDisplayLocation
30
31
  } = _ref;
31
32
  const {
32
33
  selectedBlocks,
@@ -59,6 +60,7 @@ const BlockSettingsMenuControlsSlot = _ref => {
59
60
  const showConvertToGroupButton = (isGroupable || isUngroupable) && canRemove;
60
61
  return createElement(Slot, {
61
62
  fillProps: { ...fillProps,
63
+ __unstableDisplayLocation,
62
64
  selectedBlocks,
63
65
  selectedClientIds
64
66
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-settings-menu-controls/index.js"],"names":["map","createSlotFill","MenuGroup","__experimentalStyleProvider","StyleProvider","useSelect","useConvertToGroupButtonProps","ConvertToGroupButton","BlockLockMenuItem","useBlockLock","store","blockEditorStore","Fill","Slot","BlockSettingsMenuControlsSlot","fillProps","clientIds","selectedBlocks","selectedClientIds","canRemove","select","getBlocksByClientId","getSelectedBlockClientIds","canRemoveBlocks","ids","filter","Boolean","block","name","canLock","showLockButton","length","convertToGroupButtonProps","isGroupable","isUngroupable","showConvertToGroupButton","fills","onClose","BlockSettingsMenuControls","props","document"],"mappings":"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","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":["map","createSlotFill","MenuGroup","__experimentalStyleProvider","StyleProvider","useSelect","useConvertToGroupButtonProps","ConvertToGroupButton","BlockLockMenuItem","useBlockLock","store","blockEditorStore","Fill","Slot","BlockSettingsMenuControlsSlot","fillProps","clientIds","__unstableDisplayLocation","selectedBlocks","selectedClientIds","canRemove","select","getBlocksByClientId","getSelectedBlockClientIds","canRemoveBlocks","ids","filter","Boolean","block","name","canLock","showLockButton","length","convertToGroupButtonProps","isGroupable","isUngroupable","showConvertToGroupButton","fills","onClose","BlockSettingsMenuControls","props","document"],"mappings":"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","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"]}
@@ -3,6 +3,7 @@ import { createElement } from "@wordpress/element";
3
3
  /**
4
4
  * WordPress dependencies
5
5
  */
6
+ import { getBlockType } from '@wordpress/blocks';
6
7
  import { useMemo } from '@wordpress/element';
7
8
  /**
8
9
  * Internal dependencies
@@ -11,12 +12,15 @@ import { useMemo } from '@wordpress/element';
11
12
  import InserterPreviewPanel from '../inserter/preview-panel';
12
13
  import { replaceActiveStyle } from './utils';
13
14
  export default function BlockStylesPreviewPanel(_ref) {
15
+ var _getBlockType;
16
+
14
17
  let {
15
18
  genericPreviewBlock,
16
19
  style,
17
20
  className,
18
21
  activeStyle
19
22
  } = _ref;
23
+ const example = (_getBlockType = getBlockType(genericPreviewBlock.name)) === null || _getBlockType === void 0 ? void 0 : _getBlockType.example;
20
24
  const styleClassName = replaceActiveStyle(className, activeStyle, style);
21
25
  const previewBlocks = useMemo(() => {
22
26
  return { ...genericPreviewBlock,
@@ -24,7 +28,8 @@ export default function BlockStylesPreviewPanel(_ref) {
24
28
  description: style.description,
25
29
  initialAttributes: { ...genericPreviewBlock.attributes,
26
30
  className: styleClassName + ' block-editor-block-styles__block-preview-container'
27
- }
31
+ },
32
+ example
28
33
  };
29
34
  }, [genericPreviewBlock, styleClassName]);
30
35
  return createElement(InserterPreviewPanel, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-styles/preview-panel.js"],"names":["useMemo","InserterPreviewPanel","replaceActiveStyle","BlockStylesPreviewPanel","genericPreviewBlock","style","className","activeStyle","styleClassName","previewBlocks","title","label","name","description","initialAttributes","attributes"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,OAAT,QAAwB,oBAAxB;AAEA;AACA;AACA;;AACA,OAAOC,oBAAP,MAAiC,2BAAjC;AACA,SAASC,kBAAT,QAAmC,SAAnC;AAEA,eAAe,SAASC,uBAAT,OAKX;AAAA,MAL6C;AAChDC,IAAAA,mBADgD;AAEhDC,IAAAA,KAFgD;AAGhDC,IAAAA,SAHgD;AAIhDC,IAAAA;AAJgD,GAK7C;AACH,QAAMC,cAAc,GAAGN,kBAAkB,CAAEI,SAAF,EAAaC,WAAb,EAA0BF,KAA1B,CAAzC;AACA,QAAMI,aAAa,GAAGT,OAAO,CAAE,MAAM;AACpC,WAAO,EACN,GAAGI,mBADG;AAENM,MAAAA,KAAK,EAAEL,KAAK,CAACM,KAAN,IAAeN,KAAK,CAACO,IAFtB;AAGNC,MAAAA,WAAW,EAAER,KAAK,CAACQ,WAHb;AAINC,MAAAA,iBAAiB,EAAE,EAClB,GAAGV,mBAAmB,CAACW,UADL;AAElBT,QAAAA,SAAS,EACRE,cAAc,GACd;AAJiB;AAJb,KAAP;AAWA,GAZ4B,EAY1B,CAAEJ,mBAAF,EAAuBI,cAAvB,CAZ0B,CAA7B;AAcA,SACC,cAAC,oBAAD;AAAsB,IAAA,IAAI,EAAGC,aAA7B;AAA6C,IAAA,cAAc,EAAG;AAA9D,IADD;AAGA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport InserterPreviewPanel from '../inserter/preview-panel';\nimport { replaceActiveStyle } from './utils';\n\nexport default function BlockStylesPreviewPanel( {\n\tgenericPreviewBlock,\n\tstyle,\n\tclassName,\n\tactiveStyle,\n} ) {\n\tconst styleClassName = replaceActiveStyle( className, activeStyle, style );\n\tconst previewBlocks = useMemo( () => {\n\t\treturn {\n\t\t\t...genericPreviewBlock,\n\t\t\ttitle: style.label || style.name,\n\t\t\tdescription: style.description,\n\t\t\tinitialAttributes: {\n\t\t\t\t...genericPreviewBlock.attributes,\n\t\t\t\tclassName:\n\t\t\t\t\tstyleClassName +\n\t\t\t\t\t' block-editor-block-styles__block-preview-container',\n\t\t\t},\n\t\t};\n\t}, [ genericPreviewBlock, styleClassName ] );\n\n\treturn (\n\t\t<InserterPreviewPanel item={ previewBlocks } isStylePreview={ true } />\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-styles/preview-panel.js"],"names":["getBlockType","useMemo","InserterPreviewPanel","replaceActiveStyle","BlockStylesPreviewPanel","genericPreviewBlock","style","className","activeStyle","example","name","styleClassName","previewBlocks","title","label","description","initialAttributes","attributes"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,YAAT,QAA6B,mBAA7B;AACA,SAASC,OAAT,QAAwB,oBAAxB;AAEA;AACA;AACA;;AACA,OAAOC,oBAAP,MAAiC,2BAAjC;AACA,SAASC,kBAAT,QAAmC,SAAnC;AAEA,eAAe,SAASC,uBAAT,OAKX;AAAA;;AAAA,MAL6C;AAChDC,IAAAA,mBADgD;AAEhDC,IAAAA,KAFgD;AAGhDC,IAAAA,SAHgD;AAIhDC,IAAAA;AAJgD,GAK7C;AACH,QAAMC,OAAO,oBAAGT,YAAY,CAAEK,mBAAmB,CAACK,IAAtB,CAAf,kDAAG,cAA0CD,OAA1D;AACA,QAAME,cAAc,GAAGR,kBAAkB,CAAEI,SAAF,EAAaC,WAAb,EAA0BF,KAA1B,CAAzC;AACA,QAAMM,aAAa,GAAGX,OAAO,CAAE,MAAM;AACpC,WAAO,EACN,GAAGI,mBADG;AAENQ,MAAAA,KAAK,EAAEP,KAAK,CAACQ,KAAN,IAAeR,KAAK,CAACI,IAFtB;AAGNK,MAAAA,WAAW,EAAET,KAAK,CAACS,WAHb;AAINC,MAAAA,iBAAiB,EAAE,EAClB,GAAGX,mBAAmB,CAACY,UADL;AAElBV,QAAAA,SAAS,EACRI,cAAc,GACd;AAJiB,OAJb;AAUNF,MAAAA;AAVM,KAAP;AAYA,GAb4B,EAa1B,CAAEJ,mBAAF,EAAuBM,cAAvB,CAb0B,CAA7B;AAeA,SACC,cAAC,oBAAD;AAAsB,IAAA,IAAI,EAAGC,aAA7B;AAA6C,IAAA,cAAc,EAAG;AAA9D,IADD;AAGA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockType } from '@wordpress/blocks';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport InserterPreviewPanel from '../inserter/preview-panel';\nimport { replaceActiveStyle } from './utils';\n\nexport default function BlockStylesPreviewPanel( {\n\tgenericPreviewBlock,\n\tstyle,\n\tclassName,\n\tactiveStyle,\n} ) {\n\tconst example = getBlockType( genericPreviewBlock.name )?.example;\n\tconst styleClassName = replaceActiveStyle( className, activeStyle, style );\n\tconst previewBlocks = useMemo( () => {\n\t\treturn {\n\t\t\t...genericPreviewBlock,\n\t\t\ttitle: style.label || style.name,\n\t\t\tdescription: style.description,\n\t\t\tinitialAttributes: {\n\t\t\t\t...genericPreviewBlock.attributes,\n\t\t\t\tclassName:\n\t\t\t\t\tstyleClassName +\n\t\t\t\t\t' block-editor-block-styles__block-preview-container',\n\t\t\t},\n\t\t\texample,\n\t\t};\n\t}, [ genericPreviewBlock, styleClassName ] );\n\n\treturn (\n\t\t<InserterPreviewPanel item={ previewBlocks } isStylePreview={ true } />\n\t);\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { createElement } from "@wordpress/element";
1
+ import { createElement, Fragment } from "@wordpress/element";
2
2
 
3
3
  /**
4
4
  * WordPress dependencies
@@ -6,50 +6,138 @@ import { createElement } from "@wordpress/element";
6
6
  import { __ } from '@wordpress/i18n';
7
7
  import { MenuGroup, MenuItem } from '@wordpress/components';
8
8
  import { getBlockMenuDefaultClassName, switchToBlockType } from '@wordpress/blocks';
9
- import { useState } from '@wordpress/element';
9
+ import { useState, useMemo } from '@wordpress/element';
10
10
  /**
11
11
  * Internal dependencies
12
12
  */
13
13
 
14
14
  import BlockIcon from '../block-icon';
15
15
  import PreviewBlockPopover from './preview-block-popover';
16
+ /**
17
+ * Helper hook to group transformations to display them in a specific order in the UI.
18
+ * For now we group only priority content driven transformations(ex. paragraph -> heading).
19
+ *
20
+ * Later on we could also group 'layout' transformations(ex. paragraph -> group) and
21
+ * display them in different sections.
22
+ *
23
+ * @param {Object[]} possibleBlockTransformations The available block transformations.
24
+ * @return {Record<string, Object[]>} The grouped block transformations.
25
+ */
26
+
27
+ function useGroupedTransforms(possibleBlockTransformations) {
28
+ const priorityContentTranformationBlocks = {
29
+ 'core/paragraph': 1,
30
+ 'core/heading': 2,
31
+ 'core/list': 3,
32
+ 'core/quote': 4
33
+ };
34
+ const transformations = useMemo(() => {
35
+ const priorityTextTranformsNames = Object.keys(priorityContentTranformationBlocks);
36
+ return possibleBlockTransformations.reduce((accumulator, item) => {
37
+ const {
38
+ name
39
+ } = item;
40
+
41
+ if (priorityTextTranformsNames.includes(name)) {
42
+ accumulator.priorityTextTransformations.push(item);
43
+ } else {
44
+ accumulator.restTransformations.push(item);
45
+ }
16
46
 
17
- const BlockTransformationsMenu = _ref => {
47
+ return accumulator;
48
+ }, {
49
+ priorityTextTransformations: [],
50
+ restTransformations: []
51
+ });
52
+ }, [possibleBlockTransformations]); // Order the priority text transformations.
53
+
54
+ transformations.priorityTextTransformations.sort((_ref, _ref2) => {
55
+ let {
56
+ name: currentName
57
+ } = _ref;
58
+ let {
59
+ name: nextName
60
+ } = _ref2;
61
+ return priorityContentTranformationBlocks[currentName] < priorityContentTranformationBlocks[nextName] ? -1 : 1;
62
+ });
63
+ return transformations;
64
+ }
65
+
66
+ const BlockTransformationsMenu = _ref3 => {
18
67
  let {
19
68
  className,
20
69
  possibleBlockTransformations,
21
70
  onSelect,
22
71
  blocks
23
- } = _ref;
72
+ } = _ref3;
24
73
  const [hoveredTransformItemName, setHoveredTransformItemName] = useState();
25
- return createElement(MenuGroup, {
74
+ const {
75
+ priorityTextTransformations,
76
+ restTransformations
77
+ } = useGroupedTransforms(possibleBlockTransformations); // We have to check if both content transformations(priority and rest) are set
78
+ // in order to create a separate MenuGroup for them.
79
+
80
+ const hasBothContentTransformations = priorityTextTransformations.length && restTransformations.length;
81
+ const restTransformItems = !!restTransformations.length && createElement(RestTransformationItems, {
82
+ restTransformations: restTransformations,
83
+ onSelect: onSelect,
84
+ setHoveredTransformItemName: setHoveredTransformItemName
85
+ });
86
+ return createElement(Fragment, null, createElement(MenuGroup, {
26
87
  label: __('Transform to'),
27
88
  className: className
28
89
  }, hoveredTransformItemName && createElement(PreviewBlockPopover, {
29
90
  blocks: switchToBlockType(blocks, hoveredTransformItemName)
30
- }), possibleBlockTransformations.map(item => {
31
- const {
32
- name,
33
- icon,
34
- title,
35
- isDisabled
36
- } = item;
37
- return createElement(MenuItem, {
38
- key: name,
39
- className: getBlockMenuDefaultClassName(name),
40
- onClick: event => {
41
- event.preventDefault();
42
- onSelect(name);
43
- },
44
- disabled: isDisabled,
45
- onMouseLeave: () => setHoveredTransformItemName(null),
46
- onMouseEnter: () => setHoveredTransformItemName(name)
47
- }, createElement(BlockIcon, {
48
- icon: icon,
49
- showColors: true
50
- }), title);
51
- }));
91
+ }), priorityTextTransformations.map(item => createElement(BlockTranformationItem, {
92
+ key: item.name,
93
+ item: item,
94
+ onSelect: onSelect,
95
+ setHoveredTransformItemName: setHoveredTransformItemName
96
+ })), !hasBothContentTransformations && restTransformItems), !!hasBothContentTransformations && createElement(MenuGroup, {
97
+ className: className
98
+ }, restTransformItems));
52
99
  };
53
100
 
101
+ function RestTransformationItems(_ref4) {
102
+ let {
103
+ restTransformations,
104
+ onSelect,
105
+ setHoveredTransformItemName
106
+ } = _ref4;
107
+ return restTransformations.map(item => createElement(BlockTranformationItem, {
108
+ key: item.name,
109
+ item: item,
110
+ onSelect: onSelect,
111
+ setHoveredTransformItemName: setHoveredTransformItemName
112
+ }));
113
+ }
114
+
115
+ function BlockTranformationItem(_ref5) {
116
+ let {
117
+ item,
118
+ onSelect,
119
+ setHoveredTransformItemName
120
+ } = _ref5;
121
+ const {
122
+ name,
123
+ icon,
124
+ title,
125
+ isDisabled
126
+ } = item;
127
+ return createElement(MenuItem, {
128
+ className: getBlockMenuDefaultClassName(name),
129
+ onClick: event => {
130
+ event.preventDefault();
131
+ onSelect(name);
132
+ },
133
+ disabled: isDisabled,
134
+ onMouseLeave: () => setHoveredTransformItemName(null),
135
+ onMouseEnter: () => setHoveredTransformItemName(name)
136
+ }, createElement(BlockIcon, {
137
+ icon: icon,
138
+ showColors: true
139
+ }), title);
140
+ }
141
+
54
142
  export default BlockTransformationsMenu;
55
143
  //# sourceMappingURL=block-transformations-menu.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-switcher/block-transformations-menu.js"],"names":["__","MenuGroup","MenuItem","getBlockMenuDefaultClassName","switchToBlockType","useState","BlockIcon","PreviewBlockPopover","BlockTransformationsMenu","className","possibleBlockTransformations","onSelect","blocks","hoveredTransformItemName","setHoveredTransformItemName","map","item","name","icon","title","isDisabled","event","preventDefault"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,SAAT,EAAoBC,QAApB,QAAoC,uBAApC;AACA,SACCC,4BADD,EAECC,iBAFD,QAGO,mBAHP;AAIA,SAASC,QAAT,QAAyB,oBAAzB;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,eAAtB;AACA,OAAOC,mBAAP,MAAgC,yBAAhC;;AAEA,MAAMC,wBAAwB,GAAG,QAK1B;AAAA,MAL4B;AAClCC,IAAAA,SADkC;AAElCC,IAAAA,4BAFkC;AAGlCC,IAAAA,QAHkC;AAIlCC,IAAAA;AAJkC,GAK5B;AACN,QAAM,CAAEC,wBAAF,EAA4BC,2BAA5B,IACLT,QAAQ,EADT;AAEA,SACC,cAAC,SAAD;AAAW,IAAA,KAAK,EAAGL,EAAE,CAAE,cAAF,CAArB;AAA0C,IAAA,SAAS,EAAGS;AAAtD,KACGI,wBAAwB,IACzB,cAAC,mBAAD;AACC,IAAA,MAAM,EAAGT,iBAAiB,CACzBQ,MADyB,EAEzBC,wBAFyB;AAD3B,IAFF,EASGH,4BAA4B,CAACK,GAA7B,CAAoCC,IAAF,IAAY;AAC/C,UAAM;AAAEC,MAAAA,IAAF;AAAQC,MAAAA,IAAR;AAAcC,MAAAA,KAAd;AAAqBC,MAAAA;AAArB,QAAoCJ,IAA1C;AACA,WACC,cAAC,QAAD;AACC,MAAA,GAAG,EAAGC,IADP;AAEC,MAAA,SAAS,EAAGd,4BAA4B,CAAEc,IAAF,CAFzC;AAGC,MAAA,OAAO,EAAKI,KAAF,IAAa;AACtBA,QAAAA,KAAK,CAACC,cAAN;AACAX,QAAAA,QAAQ,CAAEM,IAAF,CAAR;AACA,OANF;AAOC,MAAA,QAAQ,EAAGG,UAPZ;AAQC,MAAA,YAAY,EAAG,MACdN,2BAA2B,CAAE,IAAF,CAT7B;AAWC,MAAA,YAAY,EAAG,MACdA,2BAA2B,CAAEG,IAAF;AAZ7B,OAeC,cAAC,SAAD;AAAW,MAAA,IAAI,EAAGC,IAAlB;AAAyB,MAAA,UAAU;AAAnC,MAfD,EAgBGC,KAhBH,CADD;AAoBA,GAtBC,CATH,CADD;AAmCA,CA3CD;;AA6CA,eAAeX,wBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { MenuGroup, MenuItem } from '@wordpress/components';\nimport {\n\tgetBlockMenuDefaultClassName,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport PreviewBlockPopover from './preview-block-popover';\n\nconst BlockTransformationsMenu = ( {\n\tclassName,\n\tpossibleBlockTransformations,\n\tonSelect,\n\tblocks,\n} ) => {\n\tconst [ hoveredTransformItemName, setHoveredTransformItemName ] =\n\t\tuseState();\n\treturn (\n\t\t<MenuGroup label={ __( 'Transform to' ) } className={ className }>\n\t\t\t{ hoveredTransformItemName && (\n\t\t\t\t<PreviewBlockPopover\n\t\t\t\t\tblocks={ switchToBlockType(\n\t\t\t\t\t\tblocks,\n\t\t\t\t\t\thoveredTransformItemName\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ possibleBlockTransformations.map( ( item ) => {\n\t\t\t\tconst { name, icon, title, isDisabled } = item;\n\t\t\t\treturn (\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tkey={ name }\n\t\t\t\t\t\tclassName={ getBlockMenuDefaultClassName( name ) }\n\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tonSelect( name );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tdisabled={ isDisabled }\n\t\t\t\t\t\tonMouseLeave={ () =>\n\t\t\t\t\t\t\tsetHoveredTransformItemName( null )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonMouseEnter={ () =>\n\t\t\t\t\t\t\tsetHoveredTransformItemName( name )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockIcon icon={ icon } showColors />\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</MenuGroup>\n\t);\n};\n\nexport default BlockTransformationsMenu;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-switcher/block-transformations-menu.js"],"names":["__","MenuGroup","MenuItem","getBlockMenuDefaultClassName","switchToBlockType","useState","useMemo","BlockIcon","PreviewBlockPopover","useGroupedTransforms","possibleBlockTransformations","priorityContentTranformationBlocks","transformations","priorityTextTranformsNames","Object","keys","reduce","accumulator","item","name","includes","priorityTextTransformations","push","restTransformations","sort","currentName","nextName","BlockTransformationsMenu","className","onSelect","blocks","hoveredTransformItemName","setHoveredTransformItemName","hasBothContentTransformations","length","restTransformItems","map","RestTransformationItems","BlockTranformationItem","icon","title","isDisabled","event","preventDefault"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { MenuGroup, MenuItem } from '@wordpress/components';\nimport {\n\tgetBlockMenuDefaultClassName,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport { useState, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport PreviewBlockPopover from './preview-block-popover';\n\n/**\n * Helper hook to group transformations to display them in a specific order in the UI.\n * For now we group only priority content driven transformations(ex. paragraph -> heading).\n *\n * Later on we could also group 'layout' transformations(ex. paragraph -> group) and\n * display them in different sections.\n *\n * @param {Object[]} possibleBlockTransformations The available block transformations.\n * @return {Record<string, Object[]>} The grouped block transformations.\n */\nfunction useGroupedTransforms( possibleBlockTransformations ) {\n\tconst priorityContentTranformationBlocks = {\n\t\t'core/paragraph': 1,\n\t\t'core/heading': 2,\n\t\t'core/list': 3,\n\t\t'core/quote': 4,\n\t};\n\tconst transformations = useMemo( () => {\n\t\tconst priorityTextTranformsNames = Object.keys(\n\t\t\tpriorityContentTranformationBlocks\n\t\t);\n\t\treturn possibleBlockTransformations.reduce(\n\t\t\t( accumulator, item ) => {\n\t\t\t\tconst { name } = item;\n\t\t\t\tif ( priorityTextTranformsNames.includes( name ) ) {\n\t\t\t\t\taccumulator.priorityTextTransformations.push( item );\n\t\t\t\t} else {\n\t\t\t\t\taccumulator.restTransformations.push( item );\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t},\n\t\t\t{ priorityTextTransformations: [], restTransformations: [] }\n\t\t);\n\t}, [ possibleBlockTransformations ] );\n\n\t// Order the priority text transformations.\n\ttransformations.priorityTextTransformations.sort(\n\t\t( { name: currentName }, { name: nextName } ) => {\n\t\t\treturn priorityContentTranformationBlocks[ currentName ] <\n\t\t\t\tpriorityContentTranformationBlocks[ nextName ]\n\t\t\t\t? -1\n\t\t\t\t: 1;\n\t\t}\n\t);\n\treturn transformations;\n}\n\nconst BlockTransformationsMenu = ( {\n\tclassName,\n\tpossibleBlockTransformations,\n\tonSelect,\n\tblocks,\n} ) => {\n\tconst [ hoveredTransformItemName, setHoveredTransformItemName ] =\n\t\tuseState();\n\n\tconst { priorityTextTransformations, restTransformations } =\n\t\tuseGroupedTransforms( possibleBlockTransformations );\n\t// We have to check if both content transformations(priority and rest) are set\n\t// in order to create a separate MenuGroup for them.\n\tconst hasBothContentTransformations =\n\t\tpriorityTextTransformations.length && restTransformations.length;\n\tconst restTransformItems = !! restTransformations.length && (\n\t\t<RestTransformationItems\n\t\t\trestTransformations={ restTransformations }\n\t\t\tonSelect={ onSelect }\n\t\t\tsetHoveredTransformItemName={ setHoveredTransformItemName }\n\t\t/>\n\t);\n\treturn (\n\t\t<>\n\t\t\t<MenuGroup label={ __( 'Transform to' ) } className={ className }>\n\t\t\t\t{ hoveredTransformItemName && (\n\t\t\t\t\t<PreviewBlockPopover\n\t\t\t\t\t\tblocks={ switchToBlockType(\n\t\t\t\t\t\t\tblocks,\n\t\t\t\t\t\t\thoveredTransformItemName\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ priorityTextTransformations.map( ( item ) => (\n\t\t\t\t\t<BlockTranformationItem\n\t\t\t\t\t\tkey={ item.name }\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tsetHoveredTransformItemName={\n\t\t\t\t\t\t\tsetHoveredTransformItemName\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t\t{ ! hasBothContentTransformations && restTransformItems }\n\t\t\t</MenuGroup>\n\t\t\t{ !! hasBothContentTransformations && (\n\t\t\t\t<MenuGroup className={ className }>\n\t\t\t\t\t{ restTransformItems }\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nfunction RestTransformationItems( {\n\trestTransformations,\n\tonSelect,\n\tsetHoveredTransformItemName,\n} ) {\n\treturn restTransformations.map( ( item ) => (\n\t\t<BlockTranformationItem\n\t\t\tkey={ item.name }\n\t\t\titem={ item }\n\t\t\tonSelect={ onSelect }\n\t\t\tsetHoveredTransformItemName={ setHoveredTransformItemName }\n\t\t/>\n\t) );\n}\n\nfunction BlockTranformationItem( {\n\titem,\n\tonSelect,\n\tsetHoveredTransformItemName,\n} ) {\n\tconst { name, icon, title, isDisabled } = item;\n\treturn (\n\t\t<MenuItem\n\t\t\tclassName={ getBlockMenuDefaultClassName( name ) }\n\t\t\tonClick={ ( event ) => {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonSelect( name );\n\t\t\t} }\n\t\t\tdisabled={ isDisabled }\n\t\t\tonMouseLeave={ () => setHoveredTransformItemName( null ) }\n\t\t\tonMouseEnter={ () => setHoveredTransformItemName( name ) }\n\t\t>\n\t\t\t<BlockIcon icon={ icon } showColors />\n\t\t\t{ title }\n\t\t</MenuItem>\n\t);\n}\n\nexport default BlockTransformationsMenu;\n"]}
@@ -42,7 +42,8 @@ const BlockToolbar = _ref => {
42
42
  hasFixedToolbar,
43
43
  hasReducedUI,
44
44
  isValid,
45
- isVisual
45
+ isVisual,
46
+ isContentLocked
46
47
  } = useSelect(select => {
47
48
  const {
48
49
  getBlockName,
@@ -50,7 +51,8 @@ const BlockToolbar = _ref => {
50
51
  getSelectedBlockClientIds,
51
52
  isBlockValid,
52
53
  getBlockRootClientId,
53
- getSettings
54
+ getSettings,
55
+ __unstableGetContentLockingParent
54
56
  } = select(blockEditorStore);
55
57
  const selectedBlockClientIds = getSelectedBlockClientIds();
56
58
  const selectedBlockClientId = selectedBlockClientIds[0];
@@ -64,7 +66,8 @@ const BlockToolbar = _ref => {
64
66
  hasReducedUI: settings.hasReducedUI,
65
67
  rootClientId: blockRootClientId,
66
68
  isValid: selectedBlockClientIds.every(id => isBlockValid(id)),
67
- isVisual: selectedBlockClientIds.every(id => getBlockMode(id) === 'visual')
69
+ isVisual: selectedBlockClientIds.every(id => getBlockMode(id) === 'visual'),
70
+ isContentLocked: !!__unstableGetContentLockingParent(selectedBlockClientId)
68
71
  };
69
72
  }, []); // Handles highlighting the current block outline on hover or focus of the
70
73
  // block type toolbar area.
@@ -109,11 +112,9 @@ const BlockToolbar = _ref => {
109
112
  const classes = classnames('block-editor-block-toolbar', shouldShowMovers && 'is-showing-movers');
110
113
  return createElement("div", {
111
114
  className: classes
112
- }, !isMultiToolbar && !displayHeaderToolbar && createElement(BlockParentSelector, {
113
- clientIds: blockClientIds
114
- }), createElement("div", _extends({
115
+ }, !isMultiToolbar && !displayHeaderToolbar && !isContentLocked && createElement(BlockParentSelector, null), createElement("div", _extends({
115
116
  ref: nodeRef
116
- }, showMoversGestures), (shouldShowVisualToolbar || isMultiToolbar) && createElement(ToolbarGroup, {
117
+ }, showMoversGestures), (shouldShowVisualToolbar || isMultiToolbar) && !isContentLocked && createElement(ToolbarGroup, {
117
118
  className: "block-editor-block-toolbar__block-controls"
118
119
  }, createElement(BlockSwitcher, {
119
120
  clientIds: blockClientIds
@@ -140,7 +141,7 @@ const BlockToolbar = _ref => {
140
141
  value: blockType === null || blockType === void 0 ? void 0 : blockType.name
141
142
  }, createElement(__unstableBlockToolbarLastItem.Slot, null))), createElement(BlockEditVisuallyButton, {
142
143
  clientIds: blockClientIds
143
- }), createElement(BlockSettingsMenu, {
144
+ }), !isContentLocked && createElement(BlockSettingsMenu, {
144
145
  clientIds: blockClientIds
145
146
  }));
146
147
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-toolbar/index.js"],"names":["classnames","useSelect","useDispatch","useRef","useViewportMatch","getBlockType","hasBlockSupport","ToolbarGroup","BlockMover","BlockParentSelector","BlockSwitcher","BlockControls","__unstableBlockToolbarLastItem","BlockSettingsMenu","BlockLockToolbar","BlockGroupToolbar","BlockEditVisuallyButton","useShowMoversGestures","store","blockEditorStore","__unstableBlockNameContext","BlockToolbar","hideDragHandle","blockClientIds","blockClientId","blockType","hasFixedToolbar","hasReducedUI","isValid","isVisual","select","getBlockName","getBlockMode","getSelectedBlockClientIds","isBlockValid","getBlockRootClientId","getSettings","selectedBlockClientIds","selectedBlockClientId","blockRootClientId","settings","rootClientId","every","id","toggleBlockHighlight","nodeRef","showMovers","gestures","showMoversGestures","ref","onChange","isFocused","displayHeaderToolbar","shouldShowMovers","length","shouldShowVisualToolbar","isMultiToolbar","classes","name"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,MAAT,QAAuB,oBAAvB;AACA,SAASC,gBAAT,QAAiC,oBAAjC;AACA,SAASC,YAAT,EAAuBC,eAAvB,QAA8C,mBAA9C;AACA,SAASC,YAAT,QAA6B,uBAA7B;AAEA;AACA;AACA;;AACA,OAAOC,UAAP,MAAuB,gBAAvB;AACA,OAAOC,mBAAP,MAAgC,0BAAhC;AACA,OAAOC,aAAP,MAA0B,mBAA1B;AACA,OAAOC,aAAP,MAA0B,mBAA1B;AACA,OAAOC,8BAAP,MAA2C,2BAA3C;AACA,OAAOC,iBAAP,MAA8B,wBAA9B;AACA,SAASC,gBAAT,QAAiC,eAAjC;AACA,SAASC,iBAAT,QAAkC,6BAAlC;AACA,OAAOC,uBAAP,MAAoC,+BAApC;AACA,SAASC,qBAAT,QAAsC,SAAtC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,OAAOC,0BAAP,MAAuC,sBAAvC;;AAEA,MAAMC,YAAY,GAAG,QAA0B;AAAA,MAAxB;AAAEC,IAAAA;AAAF,GAAwB;AAC9C,QAAM;AACLC,IAAAA,cADK;AAELC,IAAAA,aAFK;AAGLC,IAAAA,SAHK;AAILC,IAAAA,eAJK;AAKLC,IAAAA,YALK;AAMLC,IAAAA,OANK;AAOLC,IAAAA;AAPK,MAQF5B,SAAS,CAAI6B,MAAF,IAAc;AAC5B,UAAM;AACLC,MAAAA,YADK;AAELC,MAAAA,YAFK;AAGLC,MAAAA,yBAHK;AAILC,MAAAA,YAJK;AAKLC,MAAAA,oBALK;AAMLC,MAAAA;AANK,QAOFN,MAAM,CAAEX,gBAAF,CAPV;AAQA,UAAMkB,sBAAsB,GAAGJ,yBAAyB,EAAxD;AACA,UAAMK,qBAAqB,GAAGD,sBAAsB,CAAE,CAAF,CAApD;AACA,UAAME,iBAAiB,GAAGJ,oBAAoB,CAAEG,qBAAF,CAA9C;AACA,UAAME,QAAQ,GAAGJ,WAAW,EAA5B;AAEA,WAAO;AACNb,MAAAA,cAAc,EAAEc,sBADV;AAENb,MAAAA,aAAa,EAAEc,qBAFT;AAGNb,MAAAA,SAAS,EACRa,qBAAqB,IACrBjC,YAAY,CAAE0B,YAAY,CAAEO,qBAAF,CAAd,CALP;AAMNZ,MAAAA,eAAe,EAAEc,QAAQ,CAACd,eANpB;AAONC,MAAAA,YAAY,EAAEa,QAAQ,CAACb,YAPjB;AAQNc,MAAAA,YAAY,EAAEF,iBARR;AASNX,MAAAA,OAAO,EAAES,sBAAsB,CAACK,KAAvB,CAAgCC,EAAF,IACtCT,YAAY,CAAES,EAAF,CADJ,CATH;AAYNd,MAAAA,QAAQ,EAAEQ,sBAAsB,CAACK,KAAvB,CACPC,EAAF,IAAUX,YAAY,CAAEW,EAAF,CAAZ,KAAuB,QADxB;AAZJ,KAAP;AAgBA,GA9BY,EA8BV,EA9BU,CARb,CAD8C,CAyC9C;AACA;;AACA,QAAM;AAAEC,IAAAA;AAAF,MAA2B1C,WAAW,CAAEiB,gBAAF,CAA5C;AACA,QAAM0B,OAAO,GAAG1C,MAAM,EAAtB;AACA,QAAM;AAAE2C,IAAAA,UAAF;AAAcC,IAAAA,QAAQ,EAAEC;AAAxB,MAA+C/B,qBAAqB,CACzE;AACCgC,IAAAA,GAAG,EAAEJ,OADN;;AAECK,IAAAA,QAAQ,CAAEC,SAAF,EAAc;AACrB,UAAKA,SAAS,IAAIxB,YAAlB,EAAiC;AAChC;AACA;;AACDiB,MAAAA,oBAAoB,CAAEpB,aAAF,EAAiB2B,SAAjB,CAApB;AACA;;AAPF,GADyE,CAA1E,CA7C8C,CAyD9C;AACA;;AACA,QAAMC,oBAAoB,GACzBhD,gBAAgB,CAAE,QAAF,EAAY,GAAZ,CAAhB,IAAqCsB,eADtC;;AAGA,MAAKD,SAAL,EAAiB;AAChB,QAAK,CAAEnB,eAAe,CAAEmB,SAAF,EAAa,uBAAb,EAAsC,IAAtC,CAAtB,EAAqE;AACpE,aAAO,IAAP;AACA;AACD;;AAED,QAAM4B,gBAAgB,GAAGD,oBAAoB,IAAIN,UAAjD;;AAEA,MAAKvB,cAAc,CAAC+B,MAAf,KAA0B,CAA/B,EAAmC;AAClC,WAAO,IAAP;AACA;;AAED,QAAMC,uBAAuB,GAAG3B,OAAO,IAAIC,QAA3C;AACA,QAAM2B,cAAc,GAAGjC,cAAc,CAAC+B,MAAf,GAAwB,CAA/C;AAEA,QAAMG,OAAO,GAAGzD,UAAU,CACzB,4BADyB,EAEzBqD,gBAAgB,IAAI,mBAFK,CAA1B;AAKA,SACC;AAAK,IAAA,SAAS,EAAGI;AAAjB,KACG,CAAED,cAAF,IAAoB,CAAEJ,oBAAtB,IACD,cAAC,mBAAD;AAAqB,IAAA,SAAS,EAAG7B;AAAjC,IAFF,EAIC;AAAK,IAAA,GAAG,EAAGsB;AAAX,KAA0BG,kBAA1B,GACG,CAAEO,uBAAuB,IAAIC,cAA7B,KACD,cAAC,YAAD;AAAc,IAAA,SAAS,EAAC;AAAxB,KACC,cAAC,aAAD;AAAe,IAAA,SAAS,EAAGjC;AAA3B,IADD,EAEG,CAAEiC,cAAF,IACD,cAAC,gBAAD;AACC,IAAA,QAAQ,EAAGjC,cAAc,CAAE,CAAF;AAD1B,IAHF,EAOC,cAAC,UAAD;AACC,IAAA,SAAS,EAAGA,cADb;AAEC,IAAA,cAAc,EAAGD,cAAc,IAAIK;AAFpC,IAPD,CAFF,CAJD,EAoBG4B,uBAAuB,IAAIC,cAA3B,IACD,cAAC,iBAAD,OArBF,EAuBGD,uBAAuB,IACxB,8BACC,cAAC,aAAD,CAAe,IAAf;AACC,IAAA,KAAK,EAAC,QADP;AAEC,IAAA,SAAS,EAAC;AAFX,IADD,EAKC,cAAC,aAAD,CAAe,IAAf;AACC,IAAA,KAAK,EAAC,OADP;AAEC,IAAA,SAAS,EAAC;AAFX,IALD,EASC,cAAC,aAAD,CAAe,IAAf;AAAoB,IAAA,SAAS,EAAC;AAA9B,IATD,EAUC,cAAC,aAAD,CAAe,IAAf;AACC,IAAA,KAAK,EAAC,QADP;AAEC,IAAA,SAAS,EAAC;AAFX,IAVD,EAcC,cAAC,aAAD,CAAe,IAAf;AACC,IAAA,KAAK,EAAC,OADP;AAEC,IAAA,SAAS,EAAC;AAFX,IAdD,EAkBC,cAAC,0BAAD,CAA4B,QAA5B;AACC,IAAA,KAAK,EAAG9B,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAEiC;AADpB,KAGC,cAAC,8BAAD,CAAgC,IAAhC,OAHD,CAlBD,CAxBF,EAiDC,cAAC,uBAAD;AAAyB,IAAA,SAAS,EAAGnC;AAArC,IAjDD,EAkDC,cAAC,iBAAD;AAAmB,IAAA,SAAS,EAAGA;AAA/B,IAlDD,CADD;AAsDA,CAxID;AA0IA;AACA;AACA;;;AACA,eAAeF,YAAf","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRef } from '@wordpress/element';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { getBlockType, hasBlockSupport } from '@wordpress/blocks';\nimport { ToolbarGroup } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockMover from '../block-mover';\nimport BlockParentSelector from '../block-parent-selector';\nimport BlockSwitcher from '../block-switcher';\nimport BlockControls from '../block-controls';\nimport __unstableBlockToolbarLastItem from './block-toolbar-last-item';\nimport BlockSettingsMenu from '../block-settings-menu';\nimport { BlockLockToolbar } from '../block-lock';\nimport { BlockGroupToolbar } from '../convert-to-group-buttons';\nimport BlockEditVisuallyButton from '../block-edit-visually-button';\nimport { useShowMoversGestures } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport __unstableBlockNameContext from './block-name-context';\n\nconst BlockToolbar = ( { hideDragHandle } ) => {\n\tconst {\n\t\tblockClientIds,\n\t\tblockClientId,\n\t\tblockType,\n\t\thasFixedToolbar,\n\t\thasReducedUI,\n\t\tisValid,\n\t\tisVisual,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockName,\n\t\t\tgetBlockMode,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tisBlockValid,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetSettings,\n\t\t} = select( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst selectedBlockClientId = selectedBlockClientIds[ 0 ];\n\t\tconst blockRootClientId = getBlockRootClientId( selectedBlockClientId );\n\t\tconst settings = getSettings();\n\n\t\treturn {\n\t\t\tblockClientIds: selectedBlockClientIds,\n\t\t\tblockClientId: selectedBlockClientId,\n\t\t\tblockType:\n\t\t\t\tselectedBlockClientId &&\n\t\t\t\tgetBlockType( getBlockName( selectedBlockClientId ) ),\n\t\t\thasFixedToolbar: settings.hasFixedToolbar,\n\t\t\thasReducedUI: settings.hasReducedUI,\n\t\t\trootClientId: blockRootClientId,\n\t\t\tisValid: selectedBlockClientIds.every( ( id ) =>\n\t\t\t\tisBlockValid( id )\n\t\t\t),\n\t\t\tisVisual: selectedBlockClientIds.every(\n\t\t\t\t( id ) => getBlockMode( id ) === 'visual'\n\t\t\t),\n\t\t};\n\t}, [] );\n\n\t// Handles highlighting the current block outline on hover or focus of the\n\t// block type toolbar area.\n\tconst { toggleBlockHighlight } = useDispatch( blockEditorStore );\n\tconst nodeRef = useRef();\n\tconst { showMovers, gestures: showMoversGestures } = useShowMoversGestures(\n\t\t{\n\t\t\tref: nodeRef,\n\t\t\tonChange( isFocused ) {\n\t\t\t\tif ( isFocused && hasReducedUI ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\ttoggleBlockHighlight( blockClientId, isFocused );\n\t\t\t},\n\t\t}\n\t);\n\n\t// Account for the cases where the block toolbar is rendered within the\n\t// header area and not contextually to the block.\n\tconst displayHeaderToolbar =\n\t\tuseViewportMatch( 'medium', '<' ) || hasFixedToolbar;\n\n\tif ( blockType ) {\n\t\tif ( ! hasBlockSupport( blockType, '__experimentalToolbar', true ) ) {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tconst shouldShowMovers = displayHeaderToolbar || showMovers;\n\n\tif ( blockClientIds.length === 0 ) {\n\t\treturn null;\n\t}\n\n\tconst shouldShowVisualToolbar = isValid && isVisual;\n\tconst isMultiToolbar = blockClientIds.length > 1;\n\n\tconst classes = classnames(\n\t\t'block-editor-block-toolbar',\n\t\tshouldShowMovers && 'is-showing-movers'\n\t);\n\n\treturn (\n\t\t<div className={ classes }>\n\t\t\t{ ! isMultiToolbar && ! displayHeaderToolbar && (\n\t\t\t\t<BlockParentSelector clientIds={ blockClientIds } />\n\t\t\t) }\n\t\t\t<div ref={ nodeRef } { ...showMoversGestures }>\n\t\t\t\t{ ( shouldShowVisualToolbar || isMultiToolbar ) && (\n\t\t\t\t\t<ToolbarGroup className=\"block-editor-block-toolbar__block-controls\">\n\t\t\t\t\t\t<BlockSwitcher clientIds={ blockClientIds } />\n\t\t\t\t\t\t{ ! isMultiToolbar && (\n\t\t\t\t\t\t\t<BlockLockToolbar\n\t\t\t\t\t\t\t\tclientId={ blockClientIds[ 0 ] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<BlockMover\n\t\t\t\t\t\t\tclientIds={ blockClientIds }\n\t\t\t\t\t\t\thideDragHandle={ hideDragHandle || hasReducedUI }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t{ shouldShowVisualToolbar && isMultiToolbar && (\n\t\t\t\t<BlockGroupToolbar />\n\t\t\t) }\n\t\t\t{ shouldShowVisualToolbar && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\tgroup=\"parent\"\n\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t/>\n\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\tgroup=\"block\"\n\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t/>\n\t\t\t\t\t<BlockControls.Slot className=\"block-editor-block-toolbar__slot\" />\n\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\tgroup=\"inline\"\n\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t/>\n\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\tgroup=\"other\"\n\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t/>\n\t\t\t\t\t<__unstableBlockNameContext.Provider\n\t\t\t\t\t\tvalue={ blockType?.name }\n\t\t\t\t\t>\n\t\t\t\t\t\t<__unstableBlockToolbarLastItem.Slot />\n\t\t\t\t\t</__unstableBlockNameContext.Provider>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<BlockEditVisuallyButton clientIds={ blockClientIds } />\n\t\t\t<BlockSettingsMenu clientIds={ blockClientIds } />\n\t\t</div>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-toolbar/README.md\n */\nexport default BlockToolbar;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-toolbar/index.js"],"names":["classnames","useSelect","useDispatch","useRef","useViewportMatch","getBlockType","hasBlockSupport","ToolbarGroup","BlockMover","BlockParentSelector","BlockSwitcher","BlockControls","__unstableBlockToolbarLastItem","BlockSettingsMenu","BlockLockToolbar","BlockGroupToolbar","BlockEditVisuallyButton","useShowMoversGestures","store","blockEditorStore","__unstableBlockNameContext","BlockToolbar","hideDragHandle","blockClientIds","blockClientId","blockType","hasFixedToolbar","hasReducedUI","isValid","isVisual","isContentLocked","select","getBlockName","getBlockMode","getSelectedBlockClientIds","isBlockValid","getBlockRootClientId","getSettings","__unstableGetContentLockingParent","selectedBlockClientIds","selectedBlockClientId","blockRootClientId","settings","rootClientId","every","id","toggleBlockHighlight","nodeRef","showMovers","gestures","showMoversGestures","ref","onChange","isFocused","displayHeaderToolbar","shouldShowMovers","length","shouldShowVisualToolbar","isMultiToolbar","classes","name"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,MAAT,QAAuB,oBAAvB;AACA,SAASC,gBAAT,QAAiC,oBAAjC;AACA,SAASC,YAAT,EAAuBC,eAAvB,QAA8C,mBAA9C;AACA,SAASC,YAAT,QAA6B,uBAA7B;AAEA;AACA;AACA;;AACA,OAAOC,UAAP,MAAuB,gBAAvB;AACA,OAAOC,mBAAP,MAAgC,0BAAhC;AACA,OAAOC,aAAP,MAA0B,mBAA1B;AACA,OAAOC,aAAP,MAA0B,mBAA1B;AACA,OAAOC,8BAAP,MAA2C,2BAA3C;AACA,OAAOC,iBAAP,MAA8B,wBAA9B;AACA,SAASC,gBAAT,QAAiC,eAAjC;AACA,SAASC,iBAAT,QAAkC,6BAAlC;AACA,OAAOC,uBAAP,MAAoC,+BAApC;AACA,SAASC,qBAAT,QAAsC,SAAtC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,OAAOC,0BAAP,MAAuC,sBAAvC;;AAEA,MAAMC,YAAY,GAAG,QAA0B;AAAA,MAAxB;AAAEC,IAAAA;AAAF,GAAwB;AAC9C,QAAM;AACLC,IAAAA,cADK;AAELC,IAAAA,aAFK;AAGLC,IAAAA,SAHK;AAILC,IAAAA,eAJK;AAKLC,IAAAA,YALK;AAMLC,IAAAA,OANK;AAOLC,IAAAA,QAPK;AAQLC,IAAAA;AARK,MASF7B,SAAS,CAAI8B,MAAF,IAAc;AAC5B,UAAM;AACLC,MAAAA,YADK;AAELC,MAAAA,YAFK;AAGLC,MAAAA,yBAHK;AAILC,MAAAA,YAJK;AAKLC,MAAAA,oBALK;AAMLC,MAAAA,WANK;AAOLC,MAAAA;AAPK,QAQFP,MAAM,CAAEZ,gBAAF,CARV;AASA,UAAMoB,sBAAsB,GAAGL,yBAAyB,EAAxD;AACA,UAAMM,qBAAqB,GAAGD,sBAAsB,CAAE,CAAF,CAApD;AACA,UAAME,iBAAiB,GAAGL,oBAAoB,CAAEI,qBAAF,CAA9C;AACA,UAAME,QAAQ,GAAGL,WAAW,EAA5B;AAEA,WAAO;AACNd,MAAAA,cAAc,EAAEgB,sBADV;AAENf,MAAAA,aAAa,EAAEgB,qBAFT;AAGNf,MAAAA,SAAS,EACRe,qBAAqB,IACrBnC,YAAY,CAAE2B,YAAY,CAAEQ,qBAAF,CAAd,CALP;AAMNd,MAAAA,eAAe,EAAEgB,QAAQ,CAAChB,eANpB;AAONC,MAAAA,YAAY,EAAEe,QAAQ,CAACf,YAPjB;AAQNgB,MAAAA,YAAY,EAAEF,iBARR;AASNb,MAAAA,OAAO,EAAEW,sBAAsB,CAACK,KAAvB,CAAgCC,EAAF,IACtCV,YAAY,CAAEU,EAAF,CADJ,CATH;AAYNhB,MAAAA,QAAQ,EAAEU,sBAAsB,CAACK,KAAvB,CACPC,EAAF,IAAUZ,YAAY,CAAEY,EAAF,CAAZ,KAAuB,QADxB,CAZJ;AAeNf,MAAAA,eAAe,EAAE,CAAC,CAAEQ,iCAAiC,CACpDE,qBADoD;AAf/C,KAAP;AAmBA,GAlCY,EAkCV,EAlCU,CATb,CAD8C,CA8C9C;AACA;;AACA,QAAM;AAAEM,IAAAA;AAAF,MAA2B5C,WAAW,CAAEiB,gBAAF,CAA5C;AACA,QAAM4B,OAAO,GAAG5C,MAAM,EAAtB;AACA,QAAM;AAAE6C,IAAAA,UAAF;AAAcC,IAAAA,QAAQ,EAAEC;AAAxB,MAA+CjC,qBAAqB,CACzE;AACCkC,IAAAA,GAAG,EAAEJ,OADN;;AAECK,IAAAA,QAAQ,CAAEC,SAAF,EAAc;AACrB,UAAKA,SAAS,IAAI1B,YAAlB,EAAiC;AAChC;AACA;;AACDmB,MAAAA,oBAAoB,CAAEtB,aAAF,EAAiB6B,SAAjB,CAApB;AACA;;AAPF,GADyE,CAA1E,CAlD8C,CA8D9C;AACA;;AACA,QAAMC,oBAAoB,GACzBlD,gBAAgB,CAAE,QAAF,EAAY,GAAZ,CAAhB,IAAqCsB,eADtC;;AAGA,MAAKD,SAAL,EAAiB;AAChB,QAAK,CAAEnB,eAAe,CAAEmB,SAAF,EAAa,uBAAb,EAAsC,IAAtC,CAAtB,EAAqE;AACpE,aAAO,IAAP;AACA;AACD;;AAED,QAAM8B,gBAAgB,GAAGD,oBAAoB,IAAIN,UAAjD;;AAEA,MAAKzB,cAAc,CAACiC,MAAf,KAA0B,CAA/B,EAAmC;AAClC,WAAO,IAAP;AACA;;AAED,QAAMC,uBAAuB,GAAG7B,OAAO,IAAIC,QAA3C;AACA,QAAM6B,cAAc,GAAGnC,cAAc,CAACiC,MAAf,GAAwB,CAA/C;AAEA,QAAMG,OAAO,GAAG3D,UAAU,CACzB,4BADyB,EAEzBuD,gBAAgB,IAAI,mBAFK,CAA1B;AAKA,SACC;AAAK,IAAA,SAAS,EAAGI;AAAjB,KACG,CAAED,cAAF,IACD,CAAEJ,oBADD,IAED,CAAExB,eAFD,IAEoB,cAAC,mBAAD,OAHvB,EAIC;AAAK,IAAA,GAAG,EAAGiB;AAAX,KAA0BG,kBAA1B,GACG,CAAEO,uBAAuB,IAAIC,cAA7B,KACD,CAAE5B,eADD,IAEA,cAAC,YAAD;AAAc,IAAA,SAAS,EAAC;AAAxB,KACC,cAAC,aAAD;AAAe,IAAA,SAAS,EAAGP;AAA3B,IADD,EAEG,CAAEmC,cAAF,IACD,cAAC,gBAAD;AACC,IAAA,QAAQ,EAAGnC,cAAc,CAAE,CAAF;AAD1B,IAHF,EAOC,cAAC,UAAD;AACC,IAAA,SAAS,EAAGA,cADb;AAEC,IAAA,cAAc,EACbD,cAAc,IAAIK;AAHpB,IAPD,CAHH,CAJD,EAuBG8B,uBAAuB,IAAIC,cAA3B,IACD,cAAC,iBAAD,OAxBF,EA0BGD,uBAAuB,IACxB,8BACC,cAAC,aAAD,CAAe,IAAf;AACC,IAAA,KAAK,EAAC,QADP;AAEC,IAAA,SAAS,EAAC;AAFX,IADD,EAKC,cAAC,aAAD,CAAe,IAAf;AACC,IAAA,KAAK,EAAC,OADP;AAEC,IAAA,SAAS,EAAC;AAFX,IALD,EASC,cAAC,aAAD,CAAe,IAAf;AAAoB,IAAA,SAAS,EAAC;AAA9B,IATD,EAUC,cAAC,aAAD,CAAe,IAAf;AACC,IAAA,KAAK,EAAC,QADP;AAEC,IAAA,SAAS,EAAC;AAFX,IAVD,EAcC,cAAC,aAAD,CAAe,IAAf;AACC,IAAA,KAAK,EAAC,OADP;AAEC,IAAA,SAAS,EAAC;AAFX,IAdD,EAkBC,cAAC,0BAAD,CAA4B,QAA5B;AACC,IAAA,KAAK,EAAGhC,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAEmC;AADpB,KAGC,cAAC,8BAAD,CAAgC,IAAhC,OAHD,CAlBD,CA3BF,EAoDC,cAAC,uBAAD;AAAyB,IAAA,SAAS,EAAGrC;AAArC,IApDD,EAqDG,CAAEO,eAAF,IACD,cAAC,iBAAD;AAAmB,IAAA,SAAS,EAAGP;AAA/B,IAtDF,CADD;AA2DA,CAlJD;AAoJA;AACA;AACA;;;AACA,eAAeF,YAAf","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRef } from '@wordpress/element';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { getBlockType, hasBlockSupport } from '@wordpress/blocks';\nimport { ToolbarGroup } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockMover from '../block-mover';\nimport BlockParentSelector from '../block-parent-selector';\nimport BlockSwitcher from '../block-switcher';\nimport BlockControls from '../block-controls';\nimport __unstableBlockToolbarLastItem from './block-toolbar-last-item';\nimport BlockSettingsMenu from '../block-settings-menu';\nimport { BlockLockToolbar } from '../block-lock';\nimport { BlockGroupToolbar } from '../convert-to-group-buttons';\nimport BlockEditVisuallyButton from '../block-edit-visually-button';\nimport { useShowMoversGestures } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport __unstableBlockNameContext from './block-name-context';\n\nconst BlockToolbar = ( { hideDragHandle } ) => {\n\tconst {\n\t\tblockClientIds,\n\t\tblockClientId,\n\t\tblockType,\n\t\thasFixedToolbar,\n\t\thasReducedUI,\n\t\tisValid,\n\t\tisVisual,\n\t\tisContentLocked,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockName,\n\t\t\tgetBlockMode,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tisBlockValid,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetSettings,\n\t\t\t__unstableGetContentLockingParent,\n\t\t} = select( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst selectedBlockClientId = selectedBlockClientIds[ 0 ];\n\t\tconst blockRootClientId = getBlockRootClientId( selectedBlockClientId );\n\t\tconst settings = getSettings();\n\n\t\treturn {\n\t\t\tblockClientIds: selectedBlockClientIds,\n\t\t\tblockClientId: selectedBlockClientId,\n\t\t\tblockType:\n\t\t\t\tselectedBlockClientId &&\n\t\t\t\tgetBlockType( getBlockName( selectedBlockClientId ) ),\n\t\t\thasFixedToolbar: settings.hasFixedToolbar,\n\t\t\thasReducedUI: settings.hasReducedUI,\n\t\t\trootClientId: blockRootClientId,\n\t\t\tisValid: selectedBlockClientIds.every( ( id ) =>\n\t\t\t\tisBlockValid( id )\n\t\t\t),\n\t\t\tisVisual: selectedBlockClientIds.every(\n\t\t\t\t( id ) => getBlockMode( id ) === 'visual'\n\t\t\t),\n\t\t\tisContentLocked: !! __unstableGetContentLockingParent(\n\t\t\t\tselectedBlockClientId\n\t\t\t),\n\t\t};\n\t}, [] );\n\n\t// Handles highlighting the current block outline on hover or focus of the\n\t// block type toolbar area.\n\tconst { toggleBlockHighlight } = useDispatch( blockEditorStore );\n\tconst nodeRef = useRef();\n\tconst { showMovers, gestures: showMoversGestures } = useShowMoversGestures(\n\t\t{\n\t\t\tref: nodeRef,\n\t\t\tonChange( isFocused ) {\n\t\t\t\tif ( isFocused && hasReducedUI ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\ttoggleBlockHighlight( blockClientId, isFocused );\n\t\t\t},\n\t\t}\n\t);\n\n\t// Account for the cases where the block toolbar is rendered within the\n\t// header area and not contextually to the block.\n\tconst displayHeaderToolbar =\n\t\tuseViewportMatch( 'medium', '<' ) || hasFixedToolbar;\n\n\tif ( blockType ) {\n\t\tif ( ! hasBlockSupport( blockType, '__experimentalToolbar', true ) ) {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tconst shouldShowMovers = displayHeaderToolbar || showMovers;\n\n\tif ( blockClientIds.length === 0 ) {\n\t\treturn null;\n\t}\n\n\tconst shouldShowVisualToolbar = isValid && isVisual;\n\tconst isMultiToolbar = blockClientIds.length > 1;\n\n\tconst classes = classnames(\n\t\t'block-editor-block-toolbar',\n\t\tshouldShowMovers && 'is-showing-movers'\n\t);\n\n\treturn (\n\t\t<div className={ classes }>\n\t\t\t{ ! isMultiToolbar &&\n\t\t\t\t! displayHeaderToolbar &&\n\t\t\t\t! isContentLocked && <BlockParentSelector /> }\n\t\t\t<div ref={ nodeRef } { ...showMoversGestures }>\n\t\t\t\t{ ( shouldShowVisualToolbar || isMultiToolbar ) &&\n\t\t\t\t\t! isContentLocked && (\n\t\t\t\t\t\t<ToolbarGroup className=\"block-editor-block-toolbar__block-controls\">\n\t\t\t\t\t\t\t<BlockSwitcher clientIds={ blockClientIds } />\n\t\t\t\t\t\t\t{ ! isMultiToolbar && (\n\t\t\t\t\t\t\t\t<BlockLockToolbar\n\t\t\t\t\t\t\t\t\tclientId={ blockClientIds[ 0 ] }\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<BlockMover\n\t\t\t\t\t\t\t\tclientIds={ blockClientIds }\n\t\t\t\t\t\t\t\thideDragHandle={\n\t\t\t\t\t\t\t\t\thideDragHandle || hasReducedUI\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t) }\n\t\t\t</div>\n\t\t\t{ shouldShowVisualToolbar && isMultiToolbar && (\n\t\t\t\t<BlockGroupToolbar />\n\t\t\t) }\n\t\t\t{ shouldShowVisualToolbar && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\tgroup=\"parent\"\n\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t/>\n\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\tgroup=\"block\"\n\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t/>\n\t\t\t\t\t<BlockControls.Slot className=\"block-editor-block-toolbar__slot\" />\n\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\tgroup=\"inline\"\n\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t/>\n\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\tgroup=\"other\"\n\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t/>\n\t\t\t\t\t<__unstableBlockNameContext.Provider\n\t\t\t\t\t\tvalue={ blockType?.name }\n\t\t\t\t\t>\n\t\t\t\t\t\t<__unstableBlockToolbarLastItem.Slot />\n\t\t\t\t\t</__unstableBlockNameContext.Provider>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<BlockEditVisuallyButton clientIds={ blockClientIds } />\n\t\t\t{ ! isContentLocked && (\n\t\t\t\t<BlockSettingsMenu clientIds={ blockClientIds } />\n\t\t\t) }\n\t\t</div>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-toolbar/README.md\n */\nexport default BlockToolbar;\n"]}
@@ -34,7 +34,8 @@ function BlockContextualToolbar(_ref) {
34
34
  const {
35
35
  getBlockName,
36
36
  getBlockParents,
37
- getSelectedBlockClientIds
37
+ getSelectedBlockClientIds,
38
+ __unstableGetContentLockingParent
38
39
  } = select(blockEditorStore);
39
40
  const {
40
41
  getBlockType
@@ -48,7 +49,7 @@ function BlockContextualToolbar(_ref) {
48
49
  return {
49
50
  blockType: selectedBlockClientId && getBlockType(getBlockName(selectedBlockClientId)),
50
51
  hasParents: parents.length,
51
- showParentSelector: parentBlockType && hasBlockSupport(parentBlockType, '__experimentalParentSelector', true) && selectedBlockClientIds.length <= 1
52
+ showParentSelector: parentBlockType && hasBlockSupport(parentBlockType, '__experimentalParentSelector', true) && selectedBlockClientIds.length <= 1 && !__unstableGetContentLockingParent(selectedBlockClientId)
52
53
  };
53
54
  }, []);
54
55