@wordpress/block-editor 12.9.1-next.5a1d1283.0 → 12.10.1

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 (448) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +33 -3
  3. package/build/components/block-canvas/index.js +107 -0
  4. package/build/components/block-canvas/index.js.map +1 -0
  5. package/build/components/block-inspector/index.js +4 -1
  6. package/build/components/block-inspector/index.js.map +1 -1
  7. package/build/components/block-patterns-list/index.js +28 -8
  8. package/build/components/block-patterns-list/index.js.map +1 -1
  9. package/build/components/block-patterns-paging/index.js +68 -0
  10. package/build/components/block-patterns-paging/index.js.map +1 -0
  11. package/build/components/block-settings-menu/block-settings-dropdown.js +28 -0
  12. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  13. package/build/components/block-settings-menu-controls/index.js +4 -7
  14. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  15. package/build/components/block-styles/index.js +1 -0
  16. package/build/components/block-styles/index.js.map +1 -1
  17. package/build/components/block-toolbar/block-toolbar-menu.native.js +3 -7
  18. package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  19. package/build/components/block-tools/block-contextual-toolbar.js +18 -7
  20. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  21. package/build/components/block-tools/block-selection-button.js +5 -1
  22. package/build/components/block-tools/block-selection-button.js.map +1 -1
  23. package/build/components/border-radius-control/input-controls.js +1 -1
  24. package/build/components/border-radius-control/input-controls.js.map +1 -1
  25. package/build/components/border-radius-control/linked-button.js +2 -4
  26. package/build/components/border-radius-control/linked-button.js.map +1 -1
  27. package/build/components/colors/with-colors.js.map +1 -1
  28. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js +8 -21
  29. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  30. package/build/components/default-block-appender/index.native.js +20 -1
  31. package/build/components/default-block-appender/index.native.js.map +1 -1
  32. package/build/components/duotone/utils.js +68 -0
  33. package/build/components/duotone/utils.js.map +1 -1
  34. package/build/components/editor-styles/index.js +28 -9
  35. package/build/components/editor-styles/index.js.map +1 -1
  36. package/build/components/global-styles/hooks.js +2 -101
  37. package/build/components/global-styles/hooks.js.map +1 -1
  38. package/build/components/global-styles/image-settings-panel.js +61 -0
  39. package/build/components/global-styles/image-settings-panel.js.map +1 -0
  40. package/build/components/global-styles/index.js +11 -17
  41. package/build/components/global-styles/index.js.map +1 -1
  42. package/build/components/global-styles/use-global-styles-output.js +19 -15
  43. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  44. package/build/components/global-styles/utils.js +1 -1
  45. package/build/components/global-styles/utils.js.map +1 -1
  46. package/build/components/iframe/index.js +67 -33
  47. package/build/components/iframe/index.js.map +1 -1
  48. package/build/components/image-editor/use-save-image.js +2 -5
  49. package/build/components/image-editor/use-save-image.js.map +1 -1
  50. package/build/components/image-editor/use-transform-image.js +9 -9
  51. package/build/components/image-editor/use-transform-image.js.map +1 -1
  52. package/build/components/index.js +8 -12
  53. package/build/components/index.js.map +1 -1
  54. package/build/components/index.native.js +6 -5
  55. package/build/components/index.native.js.map +1 -1
  56. package/build/components/inner-blocks/use-nested-settings-update.js +13 -7
  57. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  58. package/build/components/inserter/block-patterns-explorer/explorer.js +12 -6
  59. package/build/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
  60. package/build/components/inserter/block-patterns-explorer/patterns-list.js +45 -22
  61. package/build/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
  62. package/build/components/inserter/block-patterns-explorer/sidebar.js +9 -9
  63. package/build/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
  64. package/build/components/inserter/block-patterns-filter.js +137 -0
  65. package/build/components/inserter/block-patterns-filter.js.map +1 -0
  66. package/build/components/inserter/block-patterns-tab.js +128 -42
  67. package/build/components/inserter/block-patterns-tab.js.map +1 -1
  68. package/build/components/inserter/hooks/use-patterns-paging.js +61 -0
  69. package/build/components/inserter/hooks/use-patterns-paging.js.map +1 -0
  70. package/build/components/inserter/hooks/use-patterns-state.js +21 -10
  71. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  72. package/build/components/inserter/menu.js +13 -11
  73. package/build/components/inserter/menu.js.map +1 -1
  74. package/build/components/inserter/search-results.js +4 -3
  75. package/build/components/inserter/search-results.js.map +1 -1
  76. package/build/components/inserter/tabs.js +1 -12
  77. package/build/components/inserter/tabs.js.map +1 -1
  78. package/build/components/inspector-controls/block-support-slot-container.js +12 -1
  79. package/build/components/inspector-controls/block-support-slot-container.js.map +1 -1
  80. package/build/components/inspector-controls/fill.js +24 -13
  81. package/build/components/inspector-controls/fill.js.map +1 -1
  82. package/build/components/inspector-controls/groups.js +5 -3
  83. package/build/components/inspector-controls/groups.js.map +1 -1
  84. package/build/components/inspector-controls/slot.js +13 -0
  85. package/build/components/inspector-controls/slot.js.map +1 -1
  86. package/build/components/inspector-controls-tabs/styles-tab.js +3 -0
  87. package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  88. package/build/components/link-control/index.js +12 -2
  89. package/build/components/link-control/index.js.map +1 -1
  90. package/build/components/list-view/block-select-button.js +1 -3
  91. package/build/components/list-view/block-select-button.js.map +1 -1
  92. package/build/components/list-view/block.js +13 -1
  93. package/build/components/list-view/block.js.map +1 -1
  94. package/build/components/list-view/use-block-selection.js +29 -24
  95. package/build/components/list-view/use-block-selection.js.map +1 -1
  96. package/build/components/media-placeholder/index.js +2 -2
  97. package/build/components/media-placeholder/index.js.map +1 -1
  98. package/build/components/media-placeholder/index.native.js +11 -11
  99. package/build/components/media-placeholder/index.native.js.map +1 -1
  100. package/build/components/media-replace-flow/index.js +2 -3
  101. package/build/components/media-replace-flow/index.js.map +1 -1
  102. package/build/components/media-upload/constants.js +30 -0
  103. package/build/components/media-upload/constants.js.map +1 -0
  104. package/build/components/media-upload/index.native.js +63 -53
  105. package/build/components/media-upload/index.native.js.map +1 -1
  106. package/build/components/preview-options/index.js +1 -1
  107. package/build/components/preview-options/index.js.map +1 -1
  108. package/build/components/rich-text/index.js +34 -35
  109. package/build/components/rich-text/index.js.map +1 -1
  110. package/build/components/rich-text/index.native.js +14 -32
  111. package/build/components/rich-text/index.native.js.map +1 -1
  112. package/build/components/rich-text/multiline.js +95 -0
  113. package/build/components/rich-text/multiline.js.map +1 -0
  114. package/build/components/rich-text/split-value.js +10 -16
  115. package/build/components/rich-text/split-value.js.map +1 -1
  116. package/build/components/rich-text/use-enter.js +31 -40
  117. package/build/components/rich-text/use-enter.js.map +1 -1
  118. package/build/components/rich-text/use-paste-handler.js +18 -33
  119. package/build/components/rich-text/use-paste-handler.js.map +1 -1
  120. package/build/components/spacing-sizes-control/utils.js +1 -1
  121. package/build/components/spacing-sizes-control/utils.js.map +1 -1
  122. package/build/components/use-block-commands/index.js +30 -18
  123. package/build/components/use-block-commands/index.js.map +1 -1
  124. package/build/components/use-block-display-information/index.js +5 -2
  125. package/build/components/use-block-display-information/index.js.map +1 -1
  126. package/build/hooks/background.js +263 -0
  127. package/build/hooks/background.js.map +1 -0
  128. package/build/hooks/block-hooks.js +188 -0
  129. package/build/hooks/block-hooks.js.map +1 -0
  130. package/build/hooks/block-rename-ui.js +161 -0
  131. package/build/hooks/block-rename-ui.js.map +1 -0
  132. package/build/hooks/duotone.js +29 -42
  133. package/build/hooks/duotone.js.map +1 -1
  134. package/build/hooks/index.js +2 -2
  135. package/build/hooks/index.js.map +1 -1
  136. package/build/hooks/layout.js +31 -14
  137. package/build/hooks/layout.js.map +1 -1
  138. package/build/hooks/position.js +4 -2
  139. package/build/hooks/position.js.map +1 -1
  140. package/build/hooks/style.js +10 -3
  141. package/build/hooks/style.js.map +1 -1
  142. package/build/private-apis.js +2 -0
  143. package/build/private-apis.js.map +1 -1
  144. package/build/store/actions.js +33 -10
  145. package/build/store/actions.js.map +1 -1
  146. package/build/store/private-actions.js +42 -8
  147. package/build/store/private-actions.js.map +1 -1
  148. package/build/store/private-selectors.js +25 -3
  149. package/build/store/private-selectors.js.map +1 -1
  150. package/build/store/reducer.js +43 -1
  151. package/build/store/reducer.js.map +1 -1
  152. package/build/store/selectors.js +84 -23
  153. package/build/store/selectors.js.map +1 -1
  154. package/build/store/utils.js +0 -4
  155. package/build/store/utils.js.map +1 -1
  156. package/build-module/components/block-canvas/index.js +97 -0
  157. package/build-module/components/block-canvas/index.js.map +1 -0
  158. package/build-module/components/block-inspector/index.js +4 -1
  159. package/build-module/components/block-inspector/index.js.map +1 -1
  160. package/build-module/components/block-patterns-list/index.js +30 -10
  161. package/build-module/components/block-patterns-list/index.js.map +1 -1
  162. package/build-module/components/block-patterns-paging/index.js +61 -0
  163. package/build-module/components/block-patterns-paging/index.js.map +1 -0
  164. package/build-module/components/block-settings-menu/block-settings-dropdown.js +28 -0
  165. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  166. package/build-module/components/block-settings-menu-controls/index.js +4 -7
  167. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  168. package/build-module/components/block-styles/index.js +1 -0
  169. package/build-module/components/block-styles/index.js.map +1 -1
  170. package/build-module/components/block-toolbar/block-toolbar-menu.native.js +3 -7
  171. package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  172. package/build-module/components/block-tools/block-contextual-toolbar.js +18 -7
  173. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  174. package/build-module/components/block-tools/block-selection-button.js +5 -1
  175. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  176. package/build-module/components/border-radius-control/input-controls.js +1 -1
  177. package/build-module/components/border-radius-control/input-controls.js.map +1 -1
  178. package/build-module/components/border-radius-control/linked-button.js +2 -4
  179. package/build-module/components/border-radius-control/linked-button.js.map +1 -1
  180. package/build-module/components/colors/with-colors.js.map +1 -1
  181. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js +8 -21
  182. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  183. package/build-module/components/default-block-appender/index.native.js +20 -1
  184. package/build-module/components/default-block-appender/index.native.js.map +1 -1
  185. package/build-module/components/duotone/utils.js +65 -0
  186. package/build-module/components/duotone/utils.js.map +1 -1
  187. package/build-module/components/editor-styles/index.js +28 -9
  188. package/build-module/components/editor-styles/index.js.map +1 -1
  189. package/build-module/components/global-styles/hooks.js +3 -100
  190. package/build-module/components/global-styles/hooks.js.map +1 -1
  191. package/build-module/components/global-styles/image-settings-panel.js +53 -0
  192. package/build-module/components/global-styles/image-settings-panel.js.map +1 -0
  193. package/build-module/components/global-styles/index.js +2 -2
  194. package/build-module/components/global-styles/index.js.map +1 -1
  195. package/build-module/components/global-styles/use-global-styles-output.js +18 -16
  196. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  197. package/build-module/components/global-styles/utils.js +1 -1
  198. package/build-module/components/global-styles/utils.js.map +1 -1
  199. package/build-module/components/iframe/index.js +66 -33
  200. package/build-module/components/iframe/index.js.map +1 -1
  201. package/build-module/components/image-editor/use-save-image.js +2 -5
  202. package/build-module/components/image-editor/use-save-image.js.map +1 -1
  203. package/build-module/components/image-editor/use-transform-image.js +9 -9
  204. package/build-module/components/image-editor/use-transform-image.js.map +1 -1
  205. package/build-module/components/index.js +1 -1
  206. package/build-module/components/index.js.map +1 -1
  207. package/build-module/components/index.native.js +2 -1
  208. package/build-module/components/index.native.js.map +1 -1
  209. package/build-module/components/inner-blocks/use-nested-settings-update.js +14 -8
  210. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  211. package/build-module/components/inserter/block-patterns-explorer/explorer.js +12 -6
  212. package/build-module/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
  213. package/build-module/components/inserter/block-patterns-explorer/patterns-list.js +47 -24
  214. package/build-module/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
  215. package/build-module/components/inserter/block-patterns-explorer/sidebar.js +9 -9
  216. package/build-module/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
  217. package/build-module/components/inserter/block-patterns-filter.js +128 -0
  218. package/build-module/components/inserter/block-patterns-filter.js.map +1 -0
  219. package/build-module/components/inserter/block-patterns-tab.js +125 -44
  220. package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
  221. package/build-module/components/inserter/hooks/use-patterns-paging.js +54 -0
  222. package/build-module/components/inserter/hooks/use-patterns-paging.js.map +1 -0
  223. package/build-module/components/inserter/hooks/use-patterns-state.js +22 -10
  224. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  225. package/build-module/components/inserter/menu.js +13 -11
  226. package/build-module/components/inserter/menu.js.map +1 -1
  227. package/build-module/components/inserter/search-results.js +4 -3
  228. package/build-module/components/inserter/search-results.js.map +1 -1
  229. package/build-module/components/inserter/tabs.js +1 -12
  230. package/build-module/components/inserter/tabs.js.map +1 -1
  231. package/build-module/components/inspector-controls/block-support-slot-container.js +13 -2
  232. package/build-module/components/inspector-controls/block-support-slot-container.js.map +1 -1
  233. package/build-module/components/inspector-controls/fill.js +25 -14
  234. package/build-module/components/inspector-controls/fill.js.map +1 -1
  235. package/build-module/components/inspector-controls/groups.js +5 -3
  236. package/build-module/components/inspector-controls/groups.js.map +1 -1
  237. package/build-module/components/inspector-controls/slot.js +15 -1
  238. package/build-module/components/inspector-controls/slot.js.map +1 -1
  239. package/build-module/components/inspector-controls-tabs/styles-tab.js +3 -0
  240. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  241. package/build-module/components/link-control/index.js +12 -2
  242. package/build-module/components/link-control/index.js.map +1 -1
  243. package/build-module/components/list-view/block-select-button.js +1 -3
  244. package/build-module/components/list-view/block-select-button.js.map +1 -1
  245. package/build-module/components/list-view/block.js +13 -1
  246. package/build-module/components/list-view/block.js.map +1 -1
  247. package/build-module/components/list-view/use-block-selection.js +30 -25
  248. package/build-module/components/list-view/use-block-selection.js.map +1 -1
  249. package/build-module/components/media-placeholder/index.js +2 -2
  250. package/build-module/components/media-placeholder/index.js.map +1 -1
  251. package/build-module/components/media-placeholder/index.native.js +7 -7
  252. package/build-module/components/media-placeholder/index.native.js.map +1 -1
  253. package/build-module/components/media-replace-flow/index.js +2 -3
  254. package/build-module/components/media-replace-flow/index.js.map +1 -1
  255. package/build-module/components/media-upload/constants.js +14 -0
  256. package/build-module/components/media-upload/constants.js.map +1 -0
  257. package/build-module/components/media-upload/index.native.js +53 -34
  258. package/build-module/components/media-upload/index.native.js.map +1 -1
  259. package/build-module/components/preview-options/index.js +1 -1
  260. package/build-module/components/preview-options/index.js.map +1 -1
  261. package/build-module/components/rich-text/index.js +35 -37
  262. package/build-module/components/rich-text/index.js.map +1 -1
  263. package/build-module/components/rich-text/index.native.js +15 -33
  264. package/build-module/components/rich-text/index.native.js.map +1 -1
  265. package/build-module/components/rich-text/multiline.js +87 -0
  266. package/build-module/components/rich-text/multiline.js.map +1 -0
  267. package/build-module/components/rich-text/split-value.js +10 -16
  268. package/build-module/components/rich-text/split-value.js.map +1 -1
  269. package/build-module/components/rich-text/use-enter.js +33 -42
  270. package/build-module/components/rich-text/use-enter.js.map +1 -1
  271. package/build-module/components/rich-text/use-paste-handler.js +19 -34
  272. package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
  273. package/build-module/components/spacing-sizes-control/utils.js +2 -2
  274. package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
  275. package/build-module/components/use-block-commands/index.js +28 -16
  276. package/build-module/components/use-block-commands/index.js.map +1 -1
  277. package/build-module/components/use-block-display-information/index.js +5 -2
  278. package/build-module/components/use-block-display-information/index.js.map +1 -1
  279. package/build-module/hooks/background.js +249 -0
  280. package/build-module/hooks/background.js.map +1 -0
  281. package/build-module/hooks/block-hooks.js +181 -0
  282. package/build-module/hooks/block-hooks.js.map +1 -0
  283. package/build-module/hooks/block-rename-ui.js +154 -0
  284. package/build-module/hooks/block-rename-ui.js.map +1 -0
  285. package/build-module/hooks/duotone.js +26 -39
  286. package/build-module/hooks/duotone.js.map +1 -1
  287. package/build-module/hooks/index.js +2 -2
  288. package/build-module/hooks/index.js.map +1 -1
  289. package/build-module/hooks/layout.js +33 -16
  290. package/build-module/hooks/layout.js.map +1 -1
  291. package/build-module/hooks/position.js +4 -2
  292. package/build-module/hooks/position.js.map +1 -1
  293. package/build-module/hooks/style.js +10 -3
  294. package/build-module/hooks/style.js.map +1 -1
  295. package/build-module/private-apis.js +2 -0
  296. package/build-module/private-apis.js.map +1 -1
  297. package/build-module/store/actions.js +33 -10
  298. package/build-module/store/actions.js.map +1 -1
  299. package/build-module/store/private-actions.js +39 -8
  300. package/build-module/store/private-actions.js.map +1 -1
  301. package/build-module/store/private-selectors.js +23 -3
  302. package/build-module/store/private-selectors.js.map +1 -1
  303. package/build-module/store/reducer.js +41 -1
  304. package/build-module/store/reducer.js.map +1 -1
  305. package/build-module/store/selectors.js +78 -22
  306. package/build-module/store/selectors.js.map +1 -1
  307. package/build-module/store/utils.js +0 -4
  308. package/build-module/store/utils.js.map +1 -1
  309. package/build-style/content-rtl.css +0 -1
  310. package/build-style/content.css +0 -1
  311. package/build-style/style-rtl.css +201 -131
  312. package/build-style/style.css +201 -131
  313. package/package.json +32 -32
  314. package/src/components/block-canvas/index.js +108 -0
  315. package/src/components/block-inspector/index.js +5 -1
  316. package/src/components/block-list/content.scss +0 -1
  317. package/src/components/block-patterns-list/index.js +53 -19
  318. package/src/components/block-patterns-list/style.scss +26 -9
  319. package/src/components/block-patterns-paging/index.js +92 -0
  320. package/src/components/block-patterns-paging/style.scss +45 -0
  321. package/src/components/block-settings-menu/block-settings-dropdown.js +44 -0
  322. package/src/components/block-settings-menu-controls/index.js +4 -9
  323. package/src/components/block-styles/index.js +1 -0
  324. package/src/components/block-styles/style.scss +3 -3
  325. package/src/components/block-toolbar/block-toolbar-menu.native.js +1 -6
  326. package/src/components/block-tools/block-contextual-toolbar.js +16 -5
  327. package/src/components/block-tools/block-selection-button.js +9 -1
  328. package/src/components/block-tools/style.scss +0 -98
  329. package/src/components/border-radius-control/input-controls.js +1 -1
  330. package/src/components/border-radius-control/linked-button.js +8 -11
  331. package/src/components/color-palette/test/__snapshots__/control.js.snap +34 -21
  332. package/src/components/colors/with-colors.js +3 -2
  333. package/src/components/convert-to-group-buttons/use-convert-to-group-button-props.js +8 -35
  334. package/src/components/default-block-appender/index.native.js +26 -3
  335. package/src/components/duotone/utils.js +65 -0
  336. package/src/components/editor-styles/index.js +32 -23
  337. package/src/components/global-styles/hooks.js +4 -112
  338. package/src/components/global-styles/image-settings-panel.js +71 -0
  339. package/src/components/global-styles/index.js +4 -3
  340. package/src/components/global-styles/use-global-styles-output.js +25 -16
  341. package/src/components/global-styles/utils.js +1 -2
  342. package/src/components/iframe/index.js +72 -33
  343. package/src/components/image-editor/use-save-image.js +2 -9
  344. package/src/components/image-editor/use-transform-image.js +9 -9
  345. package/src/components/index.js +1 -1
  346. package/src/components/index.native.js +2 -2
  347. package/src/components/inner-blocks/use-nested-settings-update.js +15 -10
  348. package/src/components/inserter/block-patterns-explorer/explorer.js +17 -5
  349. package/src/components/inserter/block-patterns-explorer/patterns-list.js +68 -43
  350. package/src/components/inserter/block-patterns-explorer/sidebar.js +8 -8
  351. package/src/components/inserter/block-patterns-filter.js +183 -0
  352. package/src/components/inserter/block-patterns-tab.js +217 -58
  353. package/src/components/inserter/hooks/use-patterns-paging.js +76 -0
  354. package/src/components/inserter/hooks/use-patterns-state.js +27 -16
  355. package/src/components/inserter/menu.js +15 -17
  356. package/src/components/inserter/search-results.js +6 -4
  357. package/src/components/inserter/style.scss +36 -7
  358. package/src/components/inserter/tabs.js +2 -12
  359. package/src/components/inserter/test/index.native.js +8 -12
  360. package/src/components/inspector-controls/block-support-slot-container.js +19 -3
  361. package/src/components/inspector-controls/fill.js +28 -14
  362. package/src/components/inspector-controls/groups.js +6 -2
  363. package/src/components/inspector-controls/slot.js +28 -3
  364. package/src/components/inspector-controls-tabs/styles-tab.js +4 -0
  365. package/src/components/link-control/index.js +13 -0
  366. package/src/components/link-control/style.scss +23 -2
  367. package/src/components/link-control/test/index.js +88 -6
  368. package/src/components/list-view/block-select-button.js +1 -3
  369. package/src/components/list-view/block.js +19 -1
  370. package/src/components/list-view/style.scss +1 -2
  371. package/src/components/list-view/use-block-selection.js +38 -32
  372. package/src/components/media-placeholder/README.md +2 -2
  373. package/src/components/media-placeholder/index.js +2 -2
  374. package/src/components/media-placeholder/index.native.js +11 -12
  375. package/src/components/media-replace-flow/index.js +2 -2
  376. package/src/components/media-replace-flow/test/index.js +5 -23
  377. package/src/components/media-upload/README.md +3 -2
  378. package/src/components/media-upload/constants.js +15 -0
  379. package/src/components/media-upload/index.native.js +66 -40
  380. package/src/components/media-upload/style.native.scss +4 -0
  381. package/src/components/media-upload/test/index.native.js +2 -2
  382. package/src/components/preview-options/README.md +7 -0
  383. package/src/components/preview-options/index.js +1 -1
  384. package/src/components/rich-text/index.js +48 -44
  385. package/src/components/rich-text/index.native.js +14 -42
  386. package/src/components/rich-text/multiline.js +121 -0
  387. package/src/components/rich-text/split-value.js +10 -35
  388. package/src/components/rich-text/use-enter.js +32 -42
  389. package/src/components/rich-text/use-paste-handler.js +16 -40
  390. package/src/components/spacing-sizes-control/style.scss +5 -7
  391. package/src/components/spacing-sizes-control/utils.js +1 -2
  392. package/src/components/use-block-commands/index.js +28 -20
  393. package/src/components/use-block-display-information/index.js +3 -0
  394. package/src/hooks/background.js +299 -0
  395. package/src/hooks/background.scss +75 -0
  396. package/src/hooks/block-hooks.js +257 -0
  397. package/src/hooks/block-hooks.scss +16 -0
  398. package/src/hooks/block-rename-ui.js +231 -0
  399. package/src/hooks/block-rename-ui.scss +3 -0
  400. package/src/hooks/duotone.js +42 -43
  401. package/src/hooks/index.js +2 -2
  402. package/src/hooks/layout.js +31 -33
  403. package/src/hooks/position.js +4 -3
  404. package/src/hooks/style.js +11 -2
  405. package/src/hooks/test/align.native.js +4 -3
  406. package/src/private-apis.js +2 -0
  407. package/src/store/actions.js +52 -10
  408. package/src/store/private-actions.js +37 -6
  409. package/src/store/private-selectors.js +28 -3
  410. package/src/store/reducer.js +38 -0
  411. package/src/store/selectors.js +107 -26
  412. package/src/store/test/actions.js +19 -8
  413. package/src/store/test/private-actions.js +17 -0
  414. package/src/store/test/reducer.js +25 -0
  415. package/src/store/test/selectors.js +130 -123
  416. package/src/store/utils.js +3 -10
  417. package/src/style.scss +4 -0
  418. package/build/components/duotone/components.js +0 -135
  419. package/build/components/duotone/components.js.map +0 -1
  420. package/build/components/duotone/index.js +0 -38
  421. package/build/components/duotone/index.js.map +0 -1
  422. package/build/components/global-styles/behaviors-panel.js +0 -64
  423. package/build/components/global-styles/behaviors-panel.js.map +0 -1
  424. package/build/components/inserter/reusable-blocks-tab.js +0 -85
  425. package/build/components/inserter/reusable-blocks-tab.js.map +0 -1
  426. package/build/hooks/auto-inserting-blocks.js +0 -174
  427. package/build/hooks/auto-inserting-blocks.js.map +0 -1
  428. package/build/hooks/behaviors.js +0 -173
  429. package/build/hooks/behaviors.js.map +0 -1
  430. package/build-module/components/duotone/components.js +0 -126
  431. package/build-module/components/duotone/components.js.map +0 -1
  432. package/build-module/components/duotone/index.js +0 -3
  433. package/build-module/components/duotone/index.js.map +0 -1
  434. package/build-module/components/global-styles/behaviors-panel.js +0 -57
  435. package/build-module/components/global-styles/behaviors-panel.js.map +0 -1
  436. package/build-module/components/inserter/reusable-blocks-tab.js +0 -76
  437. package/build-module/components/inserter/reusable-blocks-tab.js.map +0 -1
  438. package/build-module/hooks/auto-inserting-blocks.js +0 -167
  439. package/build-module/hooks/auto-inserting-blocks.js.map +0 -1
  440. package/build-module/hooks/behaviors.js +0 -166
  441. package/build-module/hooks/behaviors.js.map +0 -1
  442. package/src/components/duotone/components.js +0 -133
  443. package/src/components/duotone/index.js +0 -7
  444. package/src/components/global-styles/behaviors-panel.js +0 -71
  445. package/src/components/inserter/reusable-blocks-tab.js +0 -84
  446. package/src/components/inserter/test/reusable-blocks-tab.js +0 -73
  447. package/src/hooks/auto-inserting-blocks.js +0 -232
  448. package/src/hooks/behaviors.js +0 -206
@@ -1 +1 @@
1
- {"version":3,"names":["getBlockType","serialize","store","blocksStore","DropdownMenu","MenuGroup","MenuItem","useDispatch","useSelect","moreVertical","Children","cloneElement","useCallback","useRef","__","sprintf","keyboardShortcutsStore","__unstableUseShortcutEventMatch","pipe","useCopyToClipboard","BlockActions","BlockIcon","BlockHTMLConvertButton","__unstableBlockSettingsMenuFirstItem","BlockSettingsMenuControls","blockEditorStore","useShowHoveredOrFocusedGestures","POPOVER_PROPS","className","placement","CopyMenuItem","blocks","onCopy","label","ref","copyMenuItemBlocksLabel","length","copyMenuItemLabel","createElement","BlockSettingsDropdown","clientIds","__experimentalSelectBlock","children","__unstableDisplayLocation","props","blockClientIds","Array","isArray","count","firstBlockClientId","firstParentClientId","onlyBlock","parentBlockType","previousBlockClientId","selectedBlockClientIds","select","getBlockCount","getBlockName","getBlockRootClientId","getPreviousBlockClientId","getSelectedBlockClientIds","getBlockAttributes","getActiveBlockVariation","_firstParentClientId","parentBlockName","getBlockOrder","shortcuts","getShortcutRepresentation","duplicate","remove","insertAfter","insertBefore","isMatch","selectBlock","hasSelectedBlocks","updateSelectionAfterDuplicate","clientIdsPromise","ids","updateSelectionAfterRemove","blockToFocus","shouldUpdateSelection","removeBlockLabel","selectParentButtonRef","showParentOutlineGestures","highlightParent","parentBlockIsSelected","includes","__experimentalUpdateSelection","canCopyStyles","canDuplicate","canInsertDefaultBlock","canMove","canRemove","onDuplicate","onInsertAfter","onInsertBefore","onRemove","onPasteStyles","onMoveTo","icon","popoverProps","noIcons","menuProps","onKeyDown","event","defaultPrevented","preventDefault","onClose","Fragment","Slot","fillProps","onClick","title","clientId","shortcut","map","child"],"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-settings-dropdown.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tgetBlockType,\n\tserialize,\n\tstore as blocksStore,\n} 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 {\n\tstore as keyboardShortcutsStore,\n\t__unstableUseShortcutEventMatch,\n} from '@wordpress/keyboard-shortcuts';\nimport { pipe, useCopyToClipboard } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockActions from '../block-actions';\nimport BlockIcon from '../block-icon';\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 { useShowHoveredOrFocusedGestures } from '../block-toolbar/utils';\n\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tplacement: 'bottom-start',\n};\n\nfunction CopyMenuItem( { blocks, onCopy, label } ) {\n\tconst ref = useCopyToClipboard( () => serialize( blocks ), onCopy );\n\tconst copyMenuItemBlocksLabel =\n\t\tblocks.length > 1 ? __( 'Copy blocks' ) : __( 'Copy' );\n\tconst copyMenuItemLabel = label ? label : copyMenuItemBlocksLabel;\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 = Array.isArray( clientIds )\n\t\t? clientIds\n\t\t: [ clientIds ];\n\tconst count = blockClientIds.length;\n\tconst firstBlockClientId = blockClientIds[ 0 ];\n\tconst {\n\t\tfirstParentClientId,\n\t\tonlyBlock,\n\t\tparentBlockType,\n\t\tpreviousBlockClientId,\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\tgetBlockRootClientId,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetBlockAttributes,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst { getActiveBlockVariation } = select( blocksStore );\n\n\t\t\tconst _firstParentClientId =\n\t\t\t\tgetBlockRootClientId( firstBlockClientId );\n\t\t\tconst parentBlockName =\n\t\t\t\t_firstParentClientId && getBlockName( _firstParentClientId );\n\n\t\t\treturn {\n\t\t\t\tfirstParentClientId: _firstParentClientId,\n\t\t\t\tonlyBlock: 1 === getBlockCount( _firstParentClientId ),\n\t\t\t\tparentBlockType:\n\t\t\t\t\t_firstParentClientId &&\n\t\t\t\t\t( getActiveBlockVariation(\n\t\t\t\t\t\tparentBlockName,\n\t\t\t\t\t\tgetBlockAttributes( _firstParentClientId )\n\t\t\t\t\t) ||\n\t\t\t\t\t\tgetBlockType( parentBlockName ) ),\n\t\t\t\tpreviousBlockClientId:\n\t\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ),\n\t\t\t\tselectedBlockClientIds: getSelectedBlockClientIds(),\n\t\t\t};\n\t\t},\n\t\t[ firstBlockClientId ]\n\t);\n\tconst { getBlockOrder, getSelectedBlockClientIds } =\n\t\tuseSelect( blockEditorStore );\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\tconst isMatch = __unstableUseShortcutEventMatch();\n\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\tconst hasSelectedBlocks = selectedBlockClientIds.length > 0;\n\n\tconst updateSelectionAfterDuplicate = useCallback(\n\t\tasync ( clientIdsPromise ) => {\n\t\t\tif ( __experimentalSelectBlock ) {\n\t\t\t\tconst ids = await clientIdsPromise;\n\t\t\t\tif ( ids && ids[ 0 ] ) {\n\t\t\t\t\t__experimentalSelectBlock( ids[ 0 ], false );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[ __experimentalSelectBlock ]\n\t);\n\n\tconst updateSelectionAfterRemove = useCallback( () => {\n\t\tif ( __experimentalSelectBlock ) {\n\t\t\tlet blockToFocus = previousBlockClientId || firstParentClientId;\n\n\t\t\t// Focus the first block if there's no previous block nor parent block.\n\t\t\tif ( ! blockToFocus ) {\n\t\t\t\tblockToFocus = getBlockOrder()[ 0 ];\n\t\t\t}\n\n\t\t\t// Only update the selection if the original selection is removed.\n\t\t\tconst shouldUpdateSelection =\n\t\t\t\thasSelectedBlocks && getSelectedBlockClientIds().length === 0;\n\n\t\t\t__experimentalSelectBlock( blockToFocus, shouldUpdateSelection );\n\t\t}\n\t}, [\n\t\t__experimentalSelectBlock,\n\t\tpreviousBlockClientId,\n\t\tfirstParentClientId,\n\t\tgetBlockOrder,\n\t\thasSelectedBlocks,\n\t\tgetSelectedBlockClientIds,\n\t] );\n\n\tconst removeBlockLabel =\n\t\tcount === 1 ? __( 'Delete' ) : __( 'Delete 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 showParentOutlineGestures = useShowHoveredOrFocusedGestures( {\n\t\tref: selectParentButtonRef,\n\t\thighlightParent: true,\n\t} );\n\n\t// This can occur when the selected block (the parent)\n\t// displays child blocks within a List View.\n\tconst parentBlockIsSelected =\n\t\tselectedBlockClientIds?.includes( firstParentClientId );\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\tcanCopyStyles,\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\tonPasteStyles,\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\tmenuProps={ {\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * @param {KeyboardEvent} event\n\t\t\t\t\t\t */\n\t\t\t\t\t\tonKeyDown( event ) {\n\t\t\t\t\t\t\tif ( event.defaultPrevented ) return;\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tisMatch( 'core/block-editor/remove', event ) &&\n\t\t\t\t\t\t\t\tcanRemove\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tupdateSelectionAfterRemove( onRemove() );\n\t\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t\tisMatch(\n\t\t\t\t\t\t\t\t\t'core/block-editor/duplicate',\n\t\t\t\t\t\t\t\t\tevent\n\t\t\t\t\t\t\t\t) &&\n\t\t\t\t\t\t\t\tcanDuplicate\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tupdateSelectionAfterDuplicate( onDuplicate() );\n\t\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t\tisMatch(\n\t\t\t\t\t\t\t\t\t'core/block-editor/insert-after',\n\t\t\t\t\t\t\t\t\tevent\n\t\t\t\t\t\t\t\t) &&\n\t\t\t\t\t\t\t\tcanInsertDefaultBlock\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tonInsertAfter();\n\t\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t\tisMatch(\n\t\t\t\t\t\t\t\t\t'core/block-editor/insert-before',\n\t\t\t\t\t\t\t\t\tevent\n\t\t\t\t\t\t\t\t) &&\n\t\t\t\t\t\t\t\tcanInsertDefaultBlock\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tonInsertBefore();\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{ ...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{ ! parentBlockIsSelected &&\n\t\t\t\t\t\t\t\t\t!! firstParentClientId && (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t{ ...showParentOutlineGestures }\n\t\t\t\t\t\t\t\t\t\t\tref={ selectParentButtonRef }\n\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tparentBlockType.icon\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\tselectBlock(\n\t\t\t\t\t\t\t\t\t\t\t\t\tfirstParentClientId\n\t\t\t\t\t\t\t\t\t\t\t\t)\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\t\t{ sprintf(\n\t\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\t__(\n\t\t\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\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\tparentBlockType.title\n\t\t\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) }\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={ pipe(\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={ pipe(\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{ __( 'Add 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={ pipe(\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{ __( 'Add 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</MenuGroup>\n\t\t\t\t\t\t\t{ canCopyStyles && (\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Copy styles' ) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<MenuItem onClick={ onPasteStyles }>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Paste styles' ) }\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\t<BlockSettingsMenuControls.Slot\n\t\t\t\t\t\t\t\tfillProps={ {\n\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\tcanMove,\n\t\t\t\t\t\t\t\t\tonMoveTo,\n\t\t\t\t\t\t\t\t\tonlyBlock,\n\t\t\t\t\t\t\t\t\tcount,\n\t\t\t\t\t\t\t\t\tfirstBlockClientId,\n\t\t\t\t\t\t\t\t} }\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={ pipe(\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"],"mappings":"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"}
1
+ {"version":3,"names":["getBlockType","serialize","store","blocksStore","DropdownMenu","MenuGroup","MenuItem","useDispatch","useSelect","moreVertical","Children","cloneElement","useCallback","useRef","__","sprintf","keyboardShortcutsStore","__unstableUseShortcutEventMatch","pipe","useCopyToClipboard","BlockActions","BlockIcon","BlockHTMLConvertButton","__unstableBlockSettingsMenuFirstItem","BlockSettingsMenuControls","blockEditorStore","unlock","useShowHoveredOrFocusedGestures","POPOVER_PROPS","className","placement","CopyMenuItem","blocks","onCopy","label","ref","copyMenuItemBlocksLabel","length","copyMenuItemLabel","createElement","BlockSettingsDropdown","block","clientIds","__experimentalSelectBlock","children","__unstableDisplayLocation","props","currentClientId","clientId","blockClientIds","Array","isArray","count","firstBlockClientId","firstParentClientId","onlyBlock","parentBlockType","previousBlockClientId","selectedBlockClientIds","select","getBlockCount","getBlockName","getBlockRootClientId","getPreviousBlockClientId","getSelectedBlockClientIds","getBlockAttributes","getActiveBlockVariation","_firstParentClientId","parentBlockName","getBlockOrder","openedBlockSettingsMenu","getOpenedBlockSettingsMenu","setOpenedBlockSettingsMenu","shortcuts","getShortcutRepresentation","duplicate","remove","insertAfter","insertBefore","isMatch","selectBlock","hasSelectedBlocks","updateSelectionAfterDuplicate","clientIdsPromise","ids","updateSelectionAfterRemove","blockToFocus","shouldUpdateSelection","removeBlockLabel","selectParentButtonRef","showParentOutlineGestures","highlightParent","parentBlockIsSelected","includes","open","undefined","onToggle","localOpen","__experimentalUpdateSelection","canCopyStyles","canDuplicate","canInsertDefaultBlock","canMove","canRemove","onDuplicate","onInsertAfter","onInsertBefore","onRemove","onPasteStyles","onMoveTo","icon","popoverProps","noIcons","menuProps","onKeyDown","event","defaultPrevented","preventDefault","onClose","Fragment","Slot","fillProps","onClick","title","shortcut","map","child"],"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-settings-dropdown.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tgetBlockType,\n\tserialize,\n\tstore as blocksStore,\n} 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 {\n\tstore as keyboardShortcutsStore,\n\t__unstableUseShortcutEventMatch,\n} from '@wordpress/keyboard-shortcuts';\nimport { pipe, useCopyToClipboard } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockActions from '../block-actions';\nimport BlockIcon from '../block-icon';\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 { unlock } from '../../lock-unlock';\nimport { useShowHoveredOrFocusedGestures } from '../block-toolbar/utils';\n\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tplacement: 'bottom-start',\n};\n\nfunction CopyMenuItem( { blocks, onCopy, label } ) {\n\tconst ref = useCopyToClipboard( () => serialize( blocks ), onCopy );\n\tconst copyMenuItemBlocksLabel =\n\t\tblocks.length > 1 ? __( 'Copy blocks' ) : __( 'Copy' );\n\tconst copyMenuItemLabel = label ? label : copyMenuItemBlocksLabel;\n\treturn <MenuItem ref={ ref }>{ copyMenuItemLabel }</MenuItem>;\n}\n\nexport function BlockSettingsDropdown( {\n\tblock,\n\tclientIds,\n\t__experimentalSelectBlock,\n\tchildren,\n\t__unstableDisplayLocation,\n\t...props\n} ) {\n\t// Get the client id of the current block for this menu, if one is set.\n\tconst currentClientId = block?.clientId;\n\tconst blockClientIds = Array.isArray( clientIds )\n\t\t? clientIds\n\t\t: [ clientIds ];\n\tconst count = blockClientIds.length;\n\tconst firstBlockClientId = blockClientIds[ 0 ];\n\tconst {\n\t\tfirstParentClientId,\n\t\tonlyBlock,\n\t\tparentBlockType,\n\t\tpreviousBlockClientId,\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\tgetBlockRootClientId,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetBlockAttributes,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst { getActiveBlockVariation } = select( blocksStore );\n\n\t\t\tconst _firstParentClientId =\n\t\t\t\tgetBlockRootClientId( firstBlockClientId );\n\t\t\tconst parentBlockName =\n\t\t\t\t_firstParentClientId && getBlockName( _firstParentClientId );\n\n\t\t\treturn {\n\t\t\t\tfirstParentClientId: _firstParentClientId,\n\t\t\t\tonlyBlock: 1 === getBlockCount( _firstParentClientId ),\n\t\t\t\tparentBlockType:\n\t\t\t\t\t_firstParentClientId &&\n\t\t\t\t\t( getActiveBlockVariation(\n\t\t\t\t\t\tparentBlockName,\n\t\t\t\t\t\tgetBlockAttributes( _firstParentClientId )\n\t\t\t\t\t) ||\n\t\t\t\t\t\tgetBlockType( parentBlockName ) ),\n\t\t\t\tpreviousBlockClientId:\n\t\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ),\n\t\t\t\tselectedBlockClientIds: getSelectedBlockClientIds(),\n\t\t\t};\n\t\t},\n\t\t[ firstBlockClientId ]\n\t);\n\tconst { getBlockOrder, getSelectedBlockClientIds } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst openedBlockSettingsMenu = useSelect(\n\t\t( select ) =>\n\t\t\tunlock( select( blockEditorStore ) ).getOpenedBlockSettingsMenu(),\n\t\t[]\n\t);\n\n\tconst { setOpenedBlockSettingsMenu } = unlock(\n\t\tuseDispatch( blockEditorStore )\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\tconst isMatch = __unstableUseShortcutEventMatch();\n\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\tconst hasSelectedBlocks = selectedBlockClientIds.length > 0;\n\n\tconst updateSelectionAfterDuplicate = useCallback(\n\t\tasync ( clientIdsPromise ) => {\n\t\t\tif ( __experimentalSelectBlock ) {\n\t\t\t\tconst ids = await clientIdsPromise;\n\t\t\t\tif ( ids && ids[ 0 ] ) {\n\t\t\t\t\t__experimentalSelectBlock( ids[ 0 ], false );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[ __experimentalSelectBlock ]\n\t);\n\n\tconst updateSelectionAfterRemove = useCallback( () => {\n\t\tif ( __experimentalSelectBlock ) {\n\t\t\tlet blockToFocus = previousBlockClientId || firstParentClientId;\n\n\t\t\t// Focus the first block if there's no previous block nor parent block.\n\t\t\tif ( ! blockToFocus ) {\n\t\t\t\tblockToFocus = getBlockOrder()[ 0 ];\n\t\t\t}\n\n\t\t\t// Only update the selection if the original selection is removed.\n\t\t\tconst shouldUpdateSelection =\n\t\t\t\thasSelectedBlocks && getSelectedBlockClientIds().length === 0;\n\n\t\t\t__experimentalSelectBlock( blockToFocus, shouldUpdateSelection );\n\t\t}\n\t}, [\n\t\t__experimentalSelectBlock,\n\t\tpreviousBlockClientId,\n\t\tfirstParentClientId,\n\t\tgetBlockOrder,\n\t\thasSelectedBlocks,\n\t\tgetSelectedBlockClientIds,\n\t] );\n\n\tconst removeBlockLabel =\n\t\tcount === 1 ? __( 'Delete' ) : __( 'Delete 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 showParentOutlineGestures = useShowHoveredOrFocusedGestures( {\n\t\tref: selectParentButtonRef,\n\t\thighlightParent: true,\n\t} );\n\n\t// This can occur when the selected block (the parent)\n\t// displays child blocks within a List View.\n\tconst parentBlockIsSelected =\n\t\tselectedBlockClientIds?.includes( firstParentClientId );\n\n\t// When a currentClientId is in use, treat the menu as a controlled component.\n\t// This ensures that only one block settings menu is open at a time.\n\t// This is a temporary solution to work around an issue with `onFocusOutside`\n\t// where it does not allow a dropdown to be closed if focus was never within\n\t// the dropdown to begin with. Examples include a user either CMD+Clicking or\n\t// right clicking into an inactive window.\n\t// See: https://github.com/WordPress/gutenberg/pull/54083\n\tconst open = ! currentClientId\n\t\t? undefined\n\t\t: openedBlockSettingsMenu === currentClientId || false;\n\n\tconst onToggle = useCallback(\n\t\t( localOpen ) => {\n\t\t\tif ( localOpen && openedBlockSettingsMenu !== currentClientId ) {\n\t\t\t\tsetOpenedBlockSettingsMenu( currentClientId );\n\t\t\t} else if (\n\t\t\t\t! localOpen &&\n\t\t\t\topenedBlockSettingsMenu &&\n\t\t\t\topenedBlockSettingsMenu === currentClientId\n\t\t\t) {\n\t\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t\t}\n\t\t},\n\t\t[ currentClientId, openedBlockSettingsMenu, setOpenedBlockSettingsMenu ]\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\tcanCopyStyles,\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\tonPasteStyles,\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\topen={ open }\n\t\t\t\t\tonToggle={ onToggle }\n\t\t\t\t\tnoIcons\n\t\t\t\t\tmenuProps={ {\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * @param {KeyboardEvent} event\n\t\t\t\t\t\t */\n\t\t\t\t\t\tonKeyDown( event ) {\n\t\t\t\t\t\t\tif ( event.defaultPrevented ) return;\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tisMatch( 'core/block-editor/remove', event ) &&\n\t\t\t\t\t\t\t\tcanRemove\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tupdateSelectionAfterRemove( onRemove() );\n\t\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t\tisMatch(\n\t\t\t\t\t\t\t\t\t'core/block-editor/duplicate',\n\t\t\t\t\t\t\t\t\tevent\n\t\t\t\t\t\t\t\t) &&\n\t\t\t\t\t\t\t\tcanDuplicate\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tupdateSelectionAfterDuplicate( onDuplicate() );\n\t\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t\tisMatch(\n\t\t\t\t\t\t\t\t\t'core/block-editor/insert-after',\n\t\t\t\t\t\t\t\t\tevent\n\t\t\t\t\t\t\t\t) &&\n\t\t\t\t\t\t\t\tcanInsertDefaultBlock\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t\t\t\t\t\t\tonInsertAfter();\n\t\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t\tisMatch(\n\t\t\t\t\t\t\t\t\t'core/block-editor/insert-before',\n\t\t\t\t\t\t\t\t\tevent\n\t\t\t\t\t\t\t\t) &&\n\t\t\t\t\t\t\t\tcanInsertDefaultBlock\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t\t\t\t\t\t\tonInsertBefore();\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{ ...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{ ! parentBlockIsSelected &&\n\t\t\t\t\t\t\t\t\t!! firstParentClientId && (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t{ ...showParentOutlineGestures }\n\t\t\t\t\t\t\t\t\t\t\tref={ selectParentButtonRef }\n\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tparentBlockType.icon\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\tselectBlock(\n\t\t\t\t\t\t\t\t\t\t\t\t\tfirstParentClientId\n\t\t\t\t\t\t\t\t\t\t\t\t)\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\t\t{ sprintf(\n\t\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\t__(\n\t\t\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\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\tparentBlockType.title\n\t\t\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) }\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={ pipe(\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={ pipe(\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{ __( 'Add 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={ pipe(\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{ __( 'Add 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</MenuGroup>\n\t\t\t\t\t\t\t{ canCopyStyles && (\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Copy styles' ) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<MenuItem onClick={ onPasteStyles }>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Paste styles' ) }\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\t<BlockSettingsMenuControls.Slot\n\t\t\t\t\t\t\t\tfillProps={ {\n\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\tcanMove,\n\t\t\t\t\t\t\t\t\tonMoveTo,\n\t\t\t\t\t\t\t\t\tonlyBlock,\n\t\t\t\t\t\t\t\t\tcount,\n\t\t\t\t\t\t\t\t\tfirstBlockClientId,\n\t\t\t\t\t\t\t\t} }\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={ pipe(\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"],"mappings":"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"}
@@ -25,19 +25,16 @@ const BlockSettingsMenuControlsSlot = ({
25
25
  }) => {
26
26
  const {
27
27
  selectedBlocks,
28
- selectedClientIds,
29
- canRemove
28
+ selectedClientIds
30
29
  } = useSelect(select => {
31
30
  const {
32
31
  getBlockNamesByClientId,
33
- getSelectedBlockClientIds,
34
- canRemoveBlocks
32
+ getSelectedBlockClientIds
35
33
  } = select(blockEditorStore);
36
34
  const ids = clientIds !== null ? clientIds : getSelectedBlockClientIds();
37
35
  return {
38
36
  selectedBlocks: getBlockNamesByClientId(ids),
39
- selectedClientIds: ids,
40
- canRemove: canRemoveBlocks(ids)
37
+ selectedClientIds: ids
41
38
  };
42
39
  }, [clientIds]);
43
40
  const {
@@ -52,7 +49,7 @@ const BlockSettingsMenuControlsSlot = ({
52
49
  isGroupable,
53
50
  isUngroupable
54
51
  } = convertToGroupButtonProps;
55
- const showConvertToGroupButton = (isGroupable || isUngroupable) && canRemove;
52
+ const showConvertToGroupButton = isGroupable || isUngroupable;
56
53
  return createElement(Slot, {
57
54
  fillProps: {
58
55
  ...fillProps,
@@ -1 +1 @@
1
- {"version":3,"names":["createSlotFill","MenuGroup","MenuItem","__experimentalStyleProvider","StyleProvider","useSelect","pipe","__","useConvertToGroupButtonProps","ConvertToGroupButton","BlockLockMenuItem","useBlockLock","store","blockEditorStore","BlockModeToggle","Fill","Slot","BlockSettingsMenuControlsSlot","fillProps","clientIds","__unstableDisplayLocation","selectedBlocks","selectedClientIds","canRemove","select","getBlockNamesByClientId","getSelectedBlockClientIds","canRemoveBlocks","ids","canLock","showLockButton","length","convertToGroupButtonProps","isGroupable","isUngroupable","showConvertToGroupButton","createElement","fills","onClose","clientId","canMove","onlyBlock","onClick","onMoveTo","count","firstBlockClientId","onToggle","BlockSettingsMenuControls","props","document"],"sources":["@wordpress/block-editor/src/components/block-settings-menu-controls/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tcreateSlotFill,\n\tMenuGroup,\n\tMenuItem,\n\t__experimentalStyleProvider as StyleProvider,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { pipe } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\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';\nimport BlockModeToggle from '../block-settings-menu/block-mode-toggle';\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\tgetBlockNamesByClientId,\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: getBlockNamesByClientId( ids ),\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 =\n\t\tuseConvertToGroupButtonProps( selectedClientIds );\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{ 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\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{ fillProps?.canMove && ! fillProps?.onlyBlock && (\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\tfillProps?.onClose,\n\t\t\t\t\t\t\t\t\tfillProps?.onMoveTo\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\t{ __( 'Move to' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ fillProps?.count === 1 && (\n\t\t\t\t\t\t\t<BlockModeToggle\n\t\t\t\t\t\t\t\tclientId={ fillProps?.firstBlockClientId }\n\t\t\t\t\t\t\t\tonToggle={ 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"],"mappings":"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"}
1
+ {"version":3,"names":["createSlotFill","MenuGroup","MenuItem","__experimentalStyleProvider","StyleProvider","useSelect","pipe","__","useConvertToGroupButtonProps","ConvertToGroupButton","BlockLockMenuItem","useBlockLock","store","blockEditorStore","BlockModeToggle","Fill","Slot","BlockSettingsMenuControlsSlot","fillProps","clientIds","__unstableDisplayLocation","selectedBlocks","selectedClientIds","select","getBlockNamesByClientId","getSelectedBlockClientIds","ids","canLock","showLockButton","length","convertToGroupButtonProps","isGroupable","isUngroupable","showConvertToGroupButton","createElement","fills","onClose","clientId","canMove","onlyBlock","onClick","onMoveTo","count","firstBlockClientId","onToggle","BlockSettingsMenuControls","props","document"],"sources":["@wordpress/block-editor/src/components/block-settings-menu-controls/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tcreateSlotFill,\n\tMenuGroup,\n\tMenuItem,\n\t__experimentalStyleProvider as StyleProvider,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { pipe } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\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';\nimport BlockModeToggle from '../block-settings-menu/block-mode-toggle';\n\nconst { Fill, Slot } = createSlotFill( 'BlockSettingsMenuControls' );\n\nconst BlockSettingsMenuControlsSlot = ( {\n\tfillProps,\n\tclientIds = null,\n\t__unstableDisplayLocation,\n} ) => {\n\tconst { selectedBlocks, selectedClientIds } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockNamesByClientId, getSelectedBlockClientIds } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst ids =\n\t\t\t\tclientIds !== null ? clientIds : getSelectedBlockClientIds();\n\t\t\treturn {\n\t\t\t\tselectedBlocks: getBlockNamesByClientId( ids ),\n\t\t\t\tselectedClientIds: 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 =\n\t\tuseConvertToGroupButtonProps( selectedClientIds );\n\tconst { isGroupable, isUngroupable } = convertToGroupButtonProps;\n\tconst showConvertToGroupButton = isGroupable || isUngroupable;\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{ 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\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{ fillProps?.canMove && ! fillProps?.onlyBlock && (\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ pipe(\n\t\t\t\t\t\t\t\t\tfillProps?.onClose,\n\t\t\t\t\t\t\t\t\tfillProps?.onMoveTo\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\t{ __( 'Move to' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ fillProps?.count === 1 && (\n\t\t\t\t\t\t\t<BlockModeToggle\n\t\t\t\t\t\t\t\tclientId={ fillProps?.firstBlockClientId }\n\t\t\t\t\t\t\t\tonToggle={ 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"],"mappings":"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"}
@@ -64,6 +64,7 @@ function BlockStyles({
64
64
  }, stylesToRender.map(style => {
65
65
  const buttonText = style.isDefault ? __('Default') : style.label || style.name;
66
66
  return createElement(Button, {
67
+ __next40pxDefaultSize: true,
67
68
  className: classnames('block-editor-block-styles__item', {
68
69
  'is-active': activeStyle.name === style.name
69
70
  }),
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","useState","debounce","useViewportMatch","Button","__experimentalTruncate","Truncate","Popover","deprecated","__","BlockStylesPreviewPanel","useStylesForBlocks","noop","BlockStyles","clientId","onSwitch","onHoverClassName","onSelect","stylesToRender","activeStyle","genericPreviewBlock","className","previewClassName","hoveredStyle","setHoveredStyle","isMobileViewport","length","debouncedSetHoveredStyle","onSelectStylePreview","style","cancel","styleItemHandler","item","_item$name","name","createElement","map","buttonText","isDefault","label","key","variant","onMouseEnter","onFocus","onMouseLeave","onBlur","onClick","numberOfLines","placement","offset","focusOnMount","Slot","version","since"],"sources":["@wordpress/block-editor/src/components/block-styles/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\nimport { debounce, useViewportMatch } from '@wordpress/compose';\nimport {\n\tButton,\n\t__experimentalTruncate as Truncate,\n\tPopover,\n} from '@wordpress/components';\nimport deprecated from '@wordpress/deprecated';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockStylesPreviewPanel from './preview-panel';\nimport useStylesForBlocks from './use-styles-for-block';\n\nconst noop = () => {};\n\n// Block Styles component for the Settings Sidebar.\nfunction BlockStyles( { clientId, onSwitch = noop, onHoverClassName = noop } ) {\n\tconst {\n\t\tonSelect,\n\t\tstylesToRender,\n\t\tactiveStyle,\n\t\tgenericPreviewBlock,\n\t\tclassName: previewClassName,\n\t} = useStylesForBlocks( {\n\t\tclientId,\n\t\tonSwitch,\n\t} );\n\tconst [ hoveredStyle, setHoveredStyle ] = useState( null );\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\n\tif ( ! stylesToRender || stylesToRender.length === 0 ) {\n\t\treturn null;\n\t}\n\n\tconst debouncedSetHoveredStyle = debounce( setHoveredStyle, 250 );\n\n\tconst onSelectStylePreview = ( style ) => {\n\t\tonSelect( style );\n\t\tonHoverClassName( null );\n\t\tsetHoveredStyle( null );\n\t\tdebouncedSetHoveredStyle.cancel();\n\t};\n\n\tconst styleItemHandler = ( item ) => {\n\t\tif ( hoveredStyle === item ) {\n\t\t\tdebouncedSetHoveredStyle.cancel();\n\t\t\treturn;\n\t\t}\n\t\tdebouncedSetHoveredStyle( item );\n\t\tonHoverClassName( item?.name ?? null );\n\t};\n\n\treturn (\n\t\t<div className=\"block-editor-block-styles\">\n\t\t\t<div className=\"block-editor-block-styles__variants\">\n\t\t\t\t{ stylesToRender.map( ( style ) => {\n\t\t\t\t\tconst buttonText = style.isDefault\n\t\t\t\t\t\t? __( 'Default' )\n\t\t\t\t\t\t: style.label || style.name;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t'block-editor-block-styles__item',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t'is-active':\n\t\t\t\t\t\t\t\t\t\tactiveStyle.name === style.name,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tkey={ style.name }\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tlabel={ buttonText }\n\t\t\t\t\t\t\tonMouseEnter={ () => styleItemHandler( style ) }\n\t\t\t\t\t\t\tonFocus={ () => styleItemHandler( style ) }\n\t\t\t\t\t\t\tonMouseLeave={ () => styleItemHandler( null ) }\n\t\t\t\t\t\t\tonBlur={ () => styleItemHandler( null ) }\n\t\t\t\t\t\t\tonClick={ () => onSelectStylePreview( style ) }\n\t\t\t\t\t\t\taria-current={ activeStyle.name === style.name }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Truncate\n\t\t\t\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\t\t\t\tclassName=\"block-editor-block-styles__item-text\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ buttonText }\n\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</div>\n\t\t\t{ hoveredStyle && ! isMobileViewport && (\n\t\t\t\t<Popover\n\t\t\t\t\tplacement=\"left-start\"\n\t\t\t\t\toffset={ 20 }\n\t\t\t\t\tfocusOnMount={ false }\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"block-editor-block-styles__preview-panel\"\n\t\t\t\t\t\tonMouseLeave={ () => styleItemHandler( null ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockStylesPreviewPanel\n\t\t\t\t\t\t\tactiveStyle={ activeStyle }\n\t\t\t\t\t\t\tclassName={ previewClassName }\n\t\t\t\t\t\t\tgenericPreviewBlock={ genericPreviewBlock }\n\t\t\t\t\t\t\tstyle={ hoveredStyle }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default BlockStyles;\n\nBlockStyles.Slot = () => {\n\tdeprecated( 'BlockStyles.Slot', {\n\t\tversion: '6.4',\n\t\tsince: '6.2',\n\t} );\n\n\treturn null;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","useState","debounce","useViewportMatch","Button","__experimentalTruncate","Truncate","Popover","deprecated","__","BlockStylesPreviewPanel","useStylesForBlocks","noop","BlockStyles","clientId","onSwitch","onHoverClassName","onSelect","stylesToRender","activeStyle","genericPreviewBlock","className","previewClassName","hoveredStyle","setHoveredStyle","isMobileViewport","length","debouncedSetHoveredStyle","onSelectStylePreview","style","cancel","styleItemHandler","item","_item$name","name","createElement","map","buttonText","isDefault","label","__next40pxDefaultSize","key","variant","onMouseEnter","onFocus","onMouseLeave","onBlur","onClick","numberOfLines","placement","offset","focusOnMount","Slot","version","since"],"sources":["@wordpress/block-editor/src/components/block-styles/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\nimport { debounce, useViewportMatch } from '@wordpress/compose';\nimport {\n\tButton,\n\t__experimentalTruncate as Truncate,\n\tPopover,\n} from '@wordpress/components';\nimport deprecated from '@wordpress/deprecated';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockStylesPreviewPanel from './preview-panel';\nimport useStylesForBlocks from './use-styles-for-block';\n\nconst noop = () => {};\n\n// Block Styles component for the Settings Sidebar.\nfunction BlockStyles( { clientId, onSwitch = noop, onHoverClassName = noop } ) {\n\tconst {\n\t\tonSelect,\n\t\tstylesToRender,\n\t\tactiveStyle,\n\t\tgenericPreviewBlock,\n\t\tclassName: previewClassName,\n\t} = useStylesForBlocks( {\n\t\tclientId,\n\t\tonSwitch,\n\t} );\n\tconst [ hoveredStyle, setHoveredStyle ] = useState( null );\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\n\tif ( ! stylesToRender || stylesToRender.length === 0 ) {\n\t\treturn null;\n\t}\n\n\tconst debouncedSetHoveredStyle = debounce( setHoveredStyle, 250 );\n\n\tconst onSelectStylePreview = ( style ) => {\n\t\tonSelect( style );\n\t\tonHoverClassName( null );\n\t\tsetHoveredStyle( null );\n\t\tdebouncedSetHoveredStyle.cancel();\n\t};\n\n\tconst styleItemHandler = ( item ) => {\n\t\tif ( hoveredStyle === item ) {\n\t\t\tdebouncedSetHoveredStyle.cancel();\n\t\t\treturn;\n\t\t}\n\t\tdebouncedSetHoveredStyle( item );\n\t\tonHoverClassName( item?.name ?? null );\n\t};\n\n\treturn (\n\t\t<div className=\"block-editor-block-styles\">\n\t\t\t<div className=\"block-editor-block-styles__variants\">\n\t\t\t\t{ stylesToRender.map( ( style ) => {\n\t\t\t\t\tconst buttonText = style.isDefault\n\t\t\t\t\t\t? __( 'Default' )\n\t\t\t\t\t\t: style.label || style.name;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t'block-editor-block-styles__item',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t'is-active':\n\t\t\t\t\t\t\t\t\t\tactiveStyle.name === style.name,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tkey={ style.name }\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tlabel={ buttonText }\n\t\t\t\t\t\t\tonMouseEnter={ () => styleItemHandler( style ) }\n\t\t\t\t\t\t\tonFocus={ () => styleItemHandler( style ) }\n\t\t\t\t\t\t\tonMouseLeave={ () => styleItemHandler( null ) }\n\t\t\t\t\t\t\tonBlur={ () => styleItemHandler( null ) }\n\t\t\t\t\t\t\tonClick={ () => onSelectStylePreview( style ) }\n\t\t\t\t\t\t\taria-current={ activeStyle.name === style.name }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Truncate\n\t\t\t\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\t\t\t\tclassName=\"block-editor-block-styles__item-text\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ buttonText }\n\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</div>\n\t\t\t{ hoveredStyle && ! isMobileViewport && (\n\t\t\t\t<Popover\n\t\t\t\t\tplacement=\"left-start\"\n\t\t\t\t\toffset={ 20 }\n\t\t\t\t\tfocusOnMount={ false }\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName=\"block-editor-block-styles__preview-panel\"\n\t\t\t\t\t\tonMouseLeave={ () => styleItemHandler( null ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockStylesPreviewPanel\n\t\t\t\t\t\t\tactiveStyle={ activeStyle }\n\t\t\t\t\t\t\tclassName={ previewClassName }\n\t\t\t\t\t\t\tgenericPreviewBlock={ genericPreviewBlock }\n\t\t\t\t\t\t\tstyle={ hoveredStyle }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default BlockStyles;\n\nBlockStyles.Slot = () => {\n\tdeprecated( 'BlockStyles.Slot', {\n\t\tversion: '6.4',\n\t\tsince: '6.2',\n\t} );\n\n\treturn null;\n};\n"],"mappings":"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"}
@@ -42,7 +42,6 @@ const BlockActionsMenu = ({
42
42
  rootClientId,
43
43
  selectedBlockClientId,
44
44
  selectedBlockPossibleTransformations,
45
- canRemove,
46
45
  // Dispatch.
47
46
  createSuccessNotice,
48
47
  convertToRegularBlocks,
@@ -86,7 +85,7 @@ const BlockActionsMenu = ({
86
85
  isGroupable,
87
86
  isUngroupable
88
87
  } = convertToGroupButtonProps;
89
- const showConvertToGroupButton = (isGroupable || isUngroupable) && canRemove;
88
+ const showConvertToGroupButton = isGroupable || isUngroupable;
90
89
  const convertToGroupButtons = useConvertToGroupButtons({
91
90
  ...convertToGroupButtonProps
92
91
  });
@@ -266,8 +265,7 @@ export default compose(withSelect((select, {
266
265
  getBlocksByClientId,
267
266
  getSelectedBlockClientIds,
268
267
  canInsertBlockType,
269
- getTemplateLock,
270
- canRemoveBlock
268
+ getTemplateLock
271
269
  } = select(blockEditorStore);
272
270
  const block = getBlock(clientId);
273
271
  const blockName = getBlockName(clientId);
@@ -290,7 +288,6 @@ export default compose(withSelect((select, {
290
288
  const selectedBlockClientId = getSelectedBlockClientIds()[0];
291
289
  const selectedBlock = selectedBlockClientId ? getBlocksByClientId(selectedBlockClientId)[0] : undefined;
292
290
  const selectedBlockPossibleTransformations = selectedBlock ? getBlockTransformItems(selectedBlock, rootClientId) : EMPTY_BLOCK_LIST;
293
- const canRemove = canRemoveBlock(selectedBlockClientId);
294
291
  const isReusableBlockType = block ? isReusableBlock(block) : false;
295
292
  const reusableBlock = isReusableBlockType ? select(coreStore).getEntityRecord('postType', 'wp_block', block?.attributes.ref) : undefined;
296
293
  return {
@@ -307,8 +304,7 @@ export default compose(withSelect((select, {
307
304
  reusableBlock,
308
305
  rootClientId,
309
306
  selectedBlockClientId,
310
- selectedBlockPossibleTransformations,
311
- canRemove
307
+ selectedBlockPossibleTransformations
312
308
  };
313
309
  }), withDispatch((dispatch, {
314
310
  clientId,
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","findNodeHandle","getClipboard","setClipboard","ToolbarGroup","ToolbarButton","Picker","getBlockType","getDefaultBlockName","hasBlockSupport","serialize","rawHandler","createBlock","isUnmodifiedDefaultBlock","isReusableBlock","__","sprintf","withDispatch","withSelect","useSelect","withInstanceId","compose","moreHorizontalMobile","useRef","useState","store","noticesStore","reusableBlocksStore","coreStore","getMoversSetup","blockEditorStore","BlockTransformationsMenu","useConvertToGroupButtons","useConvertToGroupButtonProps","BlockActionsMenu","blockTitle","canInsertBlockType","getBlocksByClientId","isEmptyDefaultBlock","isLocked","canDuplicate","isFirst","isLast","isReusableBlockType","reusableBlock","rootClientId","selectedBlockClientId","selectedBlockPossibleTransformations","canRemove","createSuccessNotice","convertToRegularBlocks","duplicateBlock","onMoveDown","onMoveUp","openGeneralSidebar","pasteBlock","removeBlocks","anchorNodeRef","isStackedHorizontally","onDelete","wrapBlockMover","wrapBlockSettings","clipboard","setCurrentClipboard","blockActionsMenuPickerRef","blockTransformationMenuPickerRef","moversOptions","keys","clipboardBlock","HTML","isPasteEnabled","name","innerBlockCount","select","getBlockCount","actionTitle","backward","backwardButtonTitle","forward","forwardButtonTitle","convertToGroupButtonProps","isGroupable","isUngroupable","showConvertToGroupButton","convertToGroupButtons","allOptions","settings","id","label","value","onSelect","backwardButton","disabled","forwardButton","delete","separated","transformButton","current","presentPicker","copyButton","serializedBlock","cutButton","pasteButton","onPasteBlock","duplicateButton","successNotice","title","raw","options","length","group","ungroup","filter","Boolean","createElement","icon","onPickerSelect","selectedItem","find","item","onPickerPresent","disabledButtonIndices","map","option","index","accessibilityHint","OS","getAnchor","undefined","onClick","extraProps","hint","testID","ref","onChange","destructiveButtonIndex","hideCancelButton","leftAlign","pickerRef","possibleTransformations","selectedBlock","EMPTY_BLOCK_LIST","clientId","getBlockIndex","getBlockRootClientId","getBlockOrder","getBlockName","getBlockTransformItems","getBlock","getSelectedBlockClientIds","getTemplateLock","canRemoveBlock","block","blockName","blockType","blockOrder","currentBlockIndex","innerBlocks","every","innerBlock","isDefaultBlock","isEmptyContent","attributes","content","isExactlyOneBlock","getEntityRecord","currentIndex","dispatch","moveBlocksDown","moveBlocksUp","duplicateBlocks","insertBlock","replaceBlock","clearSelectedBlock","getBlockSelectionEnd","__experimentalConvertBlockToStatic","convertBlockToStatic","setImmediate","args","canReplaceBlock","insertedBlock"],"sources":["@wordpress/block-editor/src/components/block-toolbar/block-toolbar-menu.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Platform, findNodeHandle } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tgetClipboard,\n\tsetClipboard,\n\tToolbarGroup,\n\tToolbarButton,\n\tPicker,\n} from '@wordpress/components';\nimport {\n\tgetBlockType,\n\tgetDefaultBlockName,\n\thasBlockSupport,\n\tserialize,\n\trawHandler,\n\tcreateBlock,\n\tisUnmodifiedDefaultBlock,\n\tisReusableBlock,\n} from '@wordpress/blocks';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { withDispatch, withSelect, useSelect } from '@wordpress/data';\nimport { withInstanceId, compose } from '@wordpress/compose';\nimport { moreHorizontalMobile } from '@wordpress/icons';\nimport { useRef, useState } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\n// Disable Reason: Needs to be refactored.\n// eslint-disable-next-line no-restricted-imports\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { getMoversSetup } from '../block-mover/mover-description';\nimport { store as blockEditorStore } from '../../store';\nimport BlockTransformationsMenu from '../block-switcher/block-transformations-menu';\nimport {\n\tuseConvertToGroupButtons,\n\tuseConvertToGroupButtonProps,\n} from '../convert-to-group-buttons';\n\nconst BlockActionsMenu = ( {\n\t// Select.\n\tblockTitle,\n\tcanInsertBlockType,\n\tgetBlocksByClientId,\n\tisEmptyDefaultBlock,\n\tisLocked,\n\tcanDuplicate,\n\tisFirst,\n\tisLast,\n\tisReusableBlockType,\n\treusableBlock,\n\trootClientId,\n\tselectedBlockClientId,\n\tselectedBlockPossibleTransformations,\n\tcanRemove,\n\t// Dispatch.\n\tcreateSuccessNotice,\n\tconvertToRegularBlocks,\n\tduplicateBlock,\n\tonMoveDown,\n\tonMoveUp,\n\topenGeneralSidebar,\n\tpasteBlock,\n\tremoveBlocks,\n\t// Passed in.\n\tanchorNodeRef,\n\tisStackedHorizontally,\n\tonDelete,\n\twrapBlockMover,\n\twrapBlockSettings,\n} ) => {\n\tconst [ clipboard, setCurrentClipboard ] = useState( getClipboard() );\n\tconst blockActionsMenuPickerRef = useRef();\n\tconst blockTransformationMenuPickerRef = useRef();\n\tconst moversOptions = { keys: [ 'icon', 'actionTitle' ] };\n\tconst clipboardBlock = clipboard && rawHandler( { HTML: clipboard } )[ 0 ];\n\tconst isPasteEnabled =\n\t\tclipboardBlock &&\n\t\tcanInsertBlockType( clipboardBlock.name, rootClientId );\n\n\tconst innerBlockCount = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlockCount( selectedBlockClientId ),\n\t\t[ selectedBlockClientId ]\n\t);\n\n\tconst {\n\t\tactionTitle: {\n\t\t\tbackward: backwardButtonTitle,\n\t\t\tforward: forwardButtonTitle,\n\t\t},\n\t} = getMoversSetup( isStackedHorizontally, moversOptions );\n\n\t// Check if selected block is Groupable and/or Ungroupable.\n\tconst convertToGroupButtonProps = useConvertToGroupButtonProps(\n\t\t// `selectedBlockClientId` can be undefined in some cases where this\n\t\t// component gets re-rendered right after the block is removed.\n\t\tselectedBlockClientId ? [ selectedBlockClientId ] : []\n\t);\n\tconst { isGroupable, isUngroupable } = convertToGroupButtonProps;\n\tconst showConvertToGroupButton =\n\t\t( isGroupable || isUngroupable ) && canRemove;\n\tconst convertToGroupButtons = useConvertToGroupButtons( {\n\t\t...convertToGroupButtonProps,\n\t} );\n\n\tconst allOptions = {\n\t\tsettings: {\n\t\t\tid: 'settingsOption',\n\t\t\tlabel: __( 'Block settings' ),\n\t\t\tvalue: 'settingsOption',\n\t\t\tonSelect: openGeneralSidebar,\n\t\t},\n\t\tbackwardButton: {\n\t\t\tid: 'backwardButtonOption',\n\t\t\tlabel: backwardButtonTitle,\n\t\t\tvalue: 'backwardButtonOption',\n\t\t\tdisabled: isFirst,\n\t\t\tonSelect: onMoveUp,\n\t\t},\n\t\tforwardButton: {\n\t\t\tid: 'forwardButtonOption',\n\t\t\tlabel: forwardButtonTitle,\n\t\t\tvalue: 'forwardButtonOption',\n\t\t\tdisabled: isLast,\n\t\t\tonSelect: onMoveDown,\n\t\t},\n\t\tdelete: {\n\t\t\tid: 'deleteOption',\n\t\t\tlabel: __( 'Remove block' ),\n\t\t\tvalue: 'deleteOption',\n\t\t\tseparated: true,\n\t\t\tdisabled: isEmptyDefaultBlock,\n\t\t\tonSelect: () => {\n\t\t\t\tonDelete();\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is removed.\n\t\t\t\t\t__( 'Block removed' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\ttransformButton: {\n\t\t\tid: 'transformButtonOption',\n\t\t\tlabel: __( 'Transform block…' ),\n\t\t\tvalue: 'transformButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tif ( blockTransformationMenuPickerRef.current ) {\n\t\t\t\t\tblockTransformationMenuPickerRef.current.presentPicker();\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tcopyButton: {\n\t\t\tid: 'copyButtonOption',\n\t\t\tlabel: __( 'Copy' ),\n\t\t\tvalue: 'copyButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tconst serializedBlock = serialize(\n\t\t\t\t\tgetBlocksByClientId( selectedBlockClientId )\n\t\t\t\t);\n\t\t\t\tsetCurrentClipboard( serializedBlock );\n\t\t\t\tsetClipboard( serializedBlock );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is copied.\n\t\t\t\t\t__( 'Block copied' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tcutButton: {\n\t\t\tid: 'cutButtonOption',\n\t\t\tlabel: __( 'Cut block' ),\n\t\t\tvalue: 'cutButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tsetClipboard(\n\t\t\t\t\tserialize( getBlocksByClientId( selectedBlockClientId ) )\n\t\t\t\t);\n\t\t\t\tremoveBlocks( selectedBlockClientId );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is cut.\n\t\t\t\t\t__( 'Block cut' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tpasteButton: {\n\t\t\tid: 'pasteButtonOption',\n\t\t\tlabel: __( 'Paste block after' ),\n\t\t\tvalue: 'pasteButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tonPasteBlock();\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is pasted.\n\t\t\t\t\t__( 'Block pasted' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tduplicateButton: {\n\t\t\tid: 'duplicateButtonOption',\n\t\t\tlabel: __( 'Duplicate block' ),\n\t\t\tvalue: 'duplicateButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tduplicateBlock();\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is duplicated.\n\t\t\t\t\t__( 'Block duplicated' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tconvertToRegularBlocks: {\n\t\t\tid: 'convertToRegularBlocksOption',\n\t\t\tlabel:\n\t\t\t\tinnerBlockCount > 1\n\t\t\t\t\t? __( 'Detach patterns' )\n\t\t\t\t\t: __( 'Detach pattern' ),\n\t\t\tvalue: 'convertToRegularBlocksOption',\n\t\t\tonSelect: () => {\n\t\t\t\t/* translators: %s: name of the synced block */\n\t\t\t\tconst successNotice = __( '%s detached' );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\tsuccessNotice,\n\t\t\t\t\t\treusableBlock?.title?.raw || blockTitle\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tconvertToRegularBlocks();\n\t\t\t},\n\t\t},\n\t};\n\n\tconst options = [\n\t\twrapBlockMover && allOptions.backwardButton,\n\t\twrapBlockMover && allOptions.forwardButton,\n\t\twrapBlockSettings && allOptions.settings,\n\t\t! isLocked &&\n\t\t\tselectedBlockPossibleTransformations.length &&\n\t\t\tallOptions.transformButton,\n\t\tcanDuplicate && allOptions.copyButton,\n\t\tcanDuplicate && allOptions.cutButton,\n\t\tcanDuplicate && isPasteEnabled && allOptions.pasteButton,\n\t\tcanDuplicate && allOptions.duplicateButton,\n\t\tshowConvertToGroupButton && isGroupable && convertToGroupButtons.group,\n\t\tshowConvertToGroupButton &&\n\t\t\tisUngroupable &&\n\t\t\tconvertToGroupButtons.ungroup,\n\t\tisReusableBlockType &&\n\t\t\tinnerBlockCount > 0 &&\n\t\t\tallOptions.convertToRegularBlocks,\n\t\t! isLocked && allOptions.delete,\n\t].filter( Boolean );\n\n\t// End early if there are no options to show.\n\tif ( ! options.length ) {\n\t\treturn (\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\ttitle={ __( 'Open Block Actions Menu' ) }\n\t\t\t\t\ticon={ moreHorizontalMobile }\n\t\t\t\t\tdisabled={ true }\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t);\n\t}\n\n\tfunction onPasteBlock() {\n\t\tif ( ! clipboard ) {\n\t\t\treturn;\n\t\t}\n\n\t\tpasteBlock( rawHandler( { HTML: clipboard } )[ 0 ] );\n\t}\n\n\tfunction onPickerSelect( value ) {\n\t\tconst selectedItem = options.find( ( item ) => item.value === value );\n\t\tselectedItem.onSelect();\n\t}\n\n\tfunction onPickerPresent() {\n\t\tif ( blockActionsMenuPickerRef.current ) {\n\t\t\tblockActionsMenuPickerRef.current.presentPicker();\n\t\t}\n\t}\n\n\tconst disabledButtonIndices = options\n\t\t.map( ( option, index ) => option.disabled && index + 1 )\n\t\t.filter( Boolean );\n\n\tconst accessibilityHint =\n\t\tPlatform.OS === 'ios'\n\t\t\t? __( 'Double tap to open Action Sheet with available options' )\n\t\t\t: __( 'Double tap to open Bottom Sheet with available options' );\n\n\tconst getAnchor = () =>\n\t\tanchorNodeRef ? findNodeHandle( anchorNodeRef ) : undefined;\n\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ __( 'Open Block Actions Menu' ) }\n\t\t\t\tonClick={ onPickerPresent }\n\t\t\t\ticon={ moreHorizontalMobile }\n\t\t\t\textraProps={ {\n\t\t\t\t\thint: accessibilityHint,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<Picker\n\t\t\t\ttestID=\"block-actions-menu\"\n\t\t\t\tref={ blockActionsMenuPickerRef }\n\t\t\t\toptions={ options }\n\t\t\t\tonChange={ onPickerSelect }\n\t\t\t\tdestructiveButtonIndex={ options.length }\n\t\t\t\tdisabledButtonIndices={ disabledButtonIndices }\n\t\t\t\thideCancelButton={ Platform.OS !== 'ios' }\n\t\t\t\tleftAlign={ true }\n\t\t\t\tgetAnchor={ getAnchor }\n\t\t\t\t// translators: %s: block title e.g: \"Paragraph\".\n\t\t\t\ttitle={ sprintf( __( '%s block options' ), blockTitle ) }\n\t\t\t/>\n\t\t\t<BlockTransformationsMenu\n\t\t\t\tanchorNodeRef={ anchorNodeRef }\n\t\t\t\tblockTitle={ blockTitle }\n\t\t\t\tpickerRef={ blockTransformationMenuPickerRef }\n\t\t\t\tpossibleTransformations={ selectedBlockPossibleTransformations }\n\t\t\t\tselectedBlock={ getBlocksByClientId( selectedBlockClientId ) }\n\t\t\t\tselectedBlockClientId={ selectedBlockClientId }\n\t\t\t/>\n\t\t</ToolbarGroup>\n\t);\n};\n\nconst EMPTY_BLOCK_LIST = [];\n\nexport default compose(\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockName,\n\t\t\tgetBlockTransformItems,\n\t\t\tgetBlock,\n\t\t\tgetBlocksByClientId,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tcanInsertBlockType,\n\t\t\tgetTemplateLock,\n\t\t\tcanRemoveBlock,\n\t\t} = select( blockEditorStore );\n\t\tconst block = getBlock( clientId );\n\t\tconst blockName = getBlockName( clientId );\n\t\tconst blockType = getBlockType( blockName );\n\t\tconst blockTitle = blockType?.title;\n\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\tconst blockOrder = getBlockOrder( rootClientId );\n\n\t\tconst currentBlockIndex = getBlockIndex( clientId );\n\t\tconst isFirst = currentBlockIndex === 0;\n\t\tconst isLast = currentBlockIndex === blockOrder.length - 1;\n\n\t\tconst innerBlocks = getBlocksByClientId( clientId );\n\n\t\tconst canDuplicate = innerBlocks.every( ( innerBlock ) => {\n\t\t\treturn (\n\t\t\t\t!! innerBlock &&\n\t\t\t\thasBlockSupport( innerBlock.name, 'multiple', true ) &&\n\t\t\t\tcanInsertBlockType( innerBlock.name, rootClientId )\n\t\t\t);\n\t\t} );\n\n\t\tconst isDefaultBlock = blockName === getDefaultBlockName();\n\t\tconst isEmptyContent = block?.attributes.content === '';\n\t\tconst isExactlyOneBlock = blockOrder.length === 1;\n\t\tconst isEmptyDefaultBlock =\n\t\t\tisExactlyOneBlock && isDefaultBlock && isEmptyContent;\n\t\tconst isLocked = !! getTemplateLock( rootClientId );\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientIds()[ 0 ];\n\t\tconst selectedBlock = selectedBlockClientId\n\t\t\t? getBlocksByClientId( selectedBlockClientId )[ 0 ]\n\t\t\t: undefined;\n\t\tconst selectedBlockPossibleTransformations = selectedBlock\n\t\t\t? getBlockTransformItems( selectedBlock, rootClientId )\n\t\t\t: EMPTY_BLOCK_LIST;\n\t\tconst canRemove = canRemoveBlock( selectedBlockClientId );\n\n\t\tconst isReusableBlockType = block ? isReusableBlock( block ) : false;\n\t\tconst reusableBlock = isReusableBlockType\n\t\t\t? select( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_block',\n\t\t\t\t\tblock?.attributes.ref\n\t\t\t )\n\t\t\t: undefined;\n\n\t\treturn {\n\t\t\tblockTitle,\n\t\t\tcanInsertBlockType,\n\t\t\tcurrentIndex: currentBlockIndex,\n\t\t\tgetBlocksByClientId,\n\t\t\tisEmptyDefaultBlock,\n\t\t\tisLocked,\n\t\t\tcanDuplicate,\n\t\t\tisFirst,\n\t\t\tisLast,\n\t\t\tisReusableBlockType,\n\t\t\treusableBlock,\n\t\t\trootClientId,\n\t\t\tselectedBlockClientId,\n\t\t\tselectedBlockPossibleTransformations,\n\t\t\tcanRemove,\n\t\t};\n\t} ),\n\twithDispatch(\n\t\t(\n\t\t\tdispatch,\n\t\t\t{ clientId, rootClientId, currentIndex, selectedBlockClientId },\n\t\t\t{ select }\n\t\t) => {\n\t\t\tconst {\n\t\t\t\tmoveBlocksDown,\n\t\t\t\tmoveBlocksUp,\n\t\t\t\tduplicateBlocks,\n\t\t\t\tremoveBlocks,\n\t\t\t\tinsertBlock,\n\t\t\t\treplaceBlock,\n\t\t\t\tclearSelectedBlock,\n\t\t\t} = dispatch( blockEditorStore );\n\t\t\tconst { openGeneralSidebar } = dispatch( 'core/edit-post' );\n\t\t\tconst { getBlockSelectionEnd, getBlock } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { createSuccessNotice } = dispatch( noticesStore );\n\n\t\t\tconst { __experimentalConvertBlockToStatic: convertBlockToStatic } =\n\t\t\t\tdispatch( reusableBlocksStore );\n\n\t\t\treturn {\n\t\t\t\tcreateSuccessNotice,\n\t\t\t\tconvertToRegularBlocks() {\n\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t\t// Convert action is executed at the end of the current JavaScript execution block\n\t\t\t\t\t// to prevent issues related to undo/redo actions.\n\t\t\t\t\tsetImmediate( () =>\n\t\t\t\t\t\tconvertBlockToStatic( selectedBlockClientId )\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tduplicateBlock() {\n\t\t\t\t\treturn duplicateBlocks( [ clientId ] );\n\t\t\t\t},\n\t\t\t\tonMoveDown: ( ...args ) =>\n\t\t\t\t\tmoveBlocksDown( [ clientId ], rootClientId, ...args ),\n\t\t\t\tonMoveUp: ( ...args ) =>\n\t\t\t\t\tmoveBlocksUp( [ clientId ], rootClientId, ...args ),\n\t\t\t\topenGeneralSidebar: () =>\n\t\t\t\t\topenGeneralSidebar( 'edit-post/block' ),\n\t\t\t\tpasteBlock: ( clipboardBlock ) => {\n\t\t\t\t\tconst canReplaceBlock = isUnmodifiedDefaultBlock(\n\t\t\t\t\t\tgetBlock( getBlockSelectionEnd() )\n\t\t\t\t\t);\n\n\t\t\t\t\tif ( ! canReplaceBlock ) {\n\t\t\t\t\t\tconst insertedBlock = createBlock(\n\t\t\t\t\t\t\tclipboardBlock.name,\n\t\t\t\t\t\t\tclipboardBlock.attributes,\n\t\t\t\t\t\t\tclipboardBlock.innerBlocks\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tinsertBlock(\n\t\t\t\t\t\t\tinsertedBlock,\n\t\t\t\t\t\t\tcurrentIndex + 1,\n\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treplaceBlock( clientId, clipboardBlock );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tremoveBlocks,\n\t\t\t};\n\t\t}\n\t),\n\twithInstanceId\n)( BlockActionsMenu );\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,QAAQ,EAAEC,cAAc,QAAQ,cAAc;;AAEvD;AACA;AACA;AACA,SACCC,YAAY,EACZC,YAAY,EACZC,YAAY,EACZC,aAAa,EACbC,MAAM,QACA,uBAAuB;AAC9B,SACCC,YAAY,EACZC,mBAAmB,EACnBC,eAAe,EACfC,SAAS,EACTC,UAAU,EACVC,WAAW,EACXC,wBAAwB,EACxBC,eAAe,QACT,mBAAmB;AAC1B,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,YAAY,EAAEC,UAAU,EAAEC,SAAS,QAAQ,iBAAiB;AACrE,SAASC,cAAc,EAAEC,OAAO,QAAQ,oBAAoB;AAC5D,SAASC,oBAAoB,QAAQ,kBAAkB;AACvD,SAASC,MAAM,EAAEC,QAAQ,QAAQ,oBAAoB;AACrD,SAASC,KAAK,IAAIC,YAAY,QAAQ,oBAAoB;AAC1D,SAASD,KAAK,IAAIE,mBAAmB,QAAQ,4BAA4B;AACzE;AACA;AACA,SAASF,KAAK,IAAIG,SAAS,QAAQ,sBAAsB;;AAEzD;AACA;AACA;AACA,SAASC,cAAc,QAAQ,kCAAkC;AACjE,SAASJ,KAAK,IAAIK,gBAAgB,QAAQ,aAAa;AACvD,OAAOC,wBAAwB,MAAM,8CAA8C;AACnF,SACCC,wBAAwB,EACxBC,4BAA4B,QACtB,6BAA6B;AAEpC,MAAMC,gBAAgB,GAAGA,CAAE;EAC1B;EACAC,UAAU;EACVC,kBAAkB;EAClBC,mBAAmB;EACnBC,mBAAmB;EACnBC,QAAQ;EACRC,YAAY;EACZC,OAAO;EACPC,MAAM;EACNC,mBAAmB;EACnBC,aAAa;EACbC,YAAY;EACZC,qBAAqB;EACrBC,oCAAoC;EACpCC,SAAS;EACT;EACAC,mBAAmB;EACnBC,sBAAsB;EACtBC,cAAc;EACdC,UAAU;EACVC,QAAQ;EACRC,kBAAkB;EAClBC,UAAU;EACVC,YAAY;EACZ;EACAC,aAAa;EACbC,qBAAqB;EACrBC,QAAQ;EACRC,cAAc;EACdC;AACD,CAAC,KAAM;EACN,MAAM,CAAEC,SAAS,EAAEC,mBAAmB,CAAE,GAAGvC,QAAQ,CAAEtB,YAAY,CAAC,CAAE,CAAC;EACrE,MAAM8D,yBAAyB,GAAGzC,MAAM,CAAC,CAAC;EAC1C,MAAM0C,gCAAgC,GAAG1C,MAAM,CAAC,CAAC;EACjD,MAAM2C,aAAa,GAAG;IAAEC,IAAI,EAAE,CAAE,MAAM,EAAE,aAAa;EAAG,CAAC;EACzD,MAAMC,cAAc,GAAGN,SAAS,IAAInD,UAAU,CAAE;IAAE0D,IAAI,EAAEP;EAAU,CAAE,CAAC,CAAE,CAAC,CAAE;EAC1E,MAAMQ,cAAc,GACnBF,cAAc,IACdhC,kBAAkB,CAAEgC,cAAc,CAACG,IAAI,EAAE1B,YAAa,CAAC;EAExD,MAAM2B,eAAe,GAAGrD,SAAS,CAC9BsD,MAAM,IACPA,MAAM,CAAE3C,gBAAiB,CAAC,CAAC4C,aAAa,CAAE5B,qBAAsB,CAAC,EAClE,CAAEA,qBAAqB,CACxB,CAAC;EAED,MAAM;IACL6B,WAAW,EAAE;MACZC,QAAQ,EAAEC,mBAAmB;MAC7BC,OAAO,EAAEC;IACV;EACD,CAAC,GAAGlD,cAAc,CAAE6B,qBAAqB,EAAEQ,aAAc,CAAC;;EAE1D;EACA,MAAMc,yBAAyB,GAAG/C,4BAA4B;EAC7D;EACA;EACAa,qBAAqB,GAAG,CAAEA,qBAAqB,CAAE,GAAG,EACrD,CAAC;EACD,MAAM;IAAEmC,WAAW;IAAEC;EAAc,CAAC,GAAGF,yBAAyB;EAChE,MAAMG,wBAAwB,GAC7B,CAAEF,WAAW,IAAIC,aAAa,KAAMlC,SAAS;EAC9C,MAAMoC,qBAAqB,GAAGpD,wBAAwB,CAAE;IACvD,GAAGgD;EACJ,CAAE,CAAC;EAEH,MAAMK,UAAU,GAAG;IAClBC,QAAQ,EAAE;MACTC,EAAE,EAAE,gBAAgB;MACpBC,KAAK,EAAEzE,EAAE,CAAE,gBAAiB,CAAC;MAC7B0E,KAAK,EAAE,gBAAgB;MACvBC,QAAQ,EAAEpC;IACX,CAAC;IACDqC,cAAc,EAAE;MACfJ,EAAE,EAAE,sBAAsB;MAC1BC,KAAK,EAAEX,mBAAmB;MAC1BY,KAAK,EAAE,sBAAsB;MAC7BG,QAAQ,EAAEnD,OAAO;MACjBiD,QAAQ,EAAErC;IACX,CAAC;IACDwC,aAAa,EAAE;MACdN,EAAE,EAAE,qBAAqB;MACzBC,KAAK,EAAET,kBAAkB;MACzBU,KAAK,EAAE,qBAAqB;MAC5BG,QAAQ,EAAElD,MAAM;MAChBgD,QAAQ,EAAEtC;IACX,CAAC;IACD0C,MAAM,EAAE;MACPP,EAAE,EAAE,cAAc;MAClBC,KAAK,EAAEzE,EAAE,CAAE,cAAe,CAAC;MAC3B0E,KAAK,EAAE,cAAc;MACrBM,SAAS,EAAE,IAAI;MACfH,QAAQ,EAAEtD,mBAAmB;MAC7BoD,QAAQ,EAAEA,CAAA,KAAM;QACf/B,QAAQ,CAAC,CAAC;QACVV,mBAAmB;QAClB;QACAlC,EAAE,CAAE,eAAgB,CACrB,CAAC;MACF;IACD,CAAC;IACDiF,eAAe,EAAE;MAChBT,EAAE,EAAE,uBAAuB;MAC3BC,KAAK,EAAEzE,EAAE,CAAE,kBAAmB,CAAC;MAC/B0E,KAAK,EAAE,uBAAuB;MAC9BC,QAAQ,EAAEA,CAAA,KAAM;QACf,IAAKzB,gCAAgC,CAACgC,OAAO,EAAG;UAC/ChC,gCAAgC,CAACgC,OAAO,CAACC,aAAa,CAAC,CAAC;QACzD;MACD;IACD,CAAC;IACDC,UAAU,EAAE;MACXZ,EAAE,EAAE,kBAAkB;MACtBC,KAAK,EAAEzE,EAAE,CAAE,MAAO,CAAC;MACnB0E,KAAK,EAAE,kBAAkB;MACzBC,QAAQ,EAAEA,CAAA,KAAM;QACf,MAAMU,eAAe,GAAG1F,SAAS,CAChC2B,mBAAmB,CAAES,qBAAsB,CAC5C,CAAC;QACDiB,mBAAmB,CAAEqC,eAAgB,CAAC;QACtCjG,YAAY,CAAEiG,eAAgB,CAAC;QAC/BnD,mBAAmB;QAClB;QACAlC,EAAE,CAAE,cAAe,CACpB,CAAC;MACF;IACD,CAAC;IACDsF,SAAS,EAAE;MACVd,EAAE,EAAE,iBAAiB;MACrBC,KAAK,EAAEzE,EAAE,CAAE,WAAY,CAAC;MACxB0E,KAAK,EAAE,iBAAiB;MACxBC,QAAQ,EAAEA,CAAA,KAAM;QACfvF,YAAY,CACXO,SAAS,CAAE2B,mBAAmB,CAAES,qBAAsB,CAAE,CACzD,CAAC;QACDU,YAAY,CAAEV,qBAAsB,CAAC;QACrCG,mBAAmB;QAClB;QACAlC,EAAE,CAAE,WAAY,CACjB,CAAC;MACF;IACD,CAAC;IACDuF,WAAW,EAAE;MACZf,EAAE,EAAE,mBAAmB;MACvBC,KAAK,EAAEzE,EAAE,CAAE,mBAAoB,CAAC;MAChC0E,KAAK,EAAE,mBAAmB;MAC1BC,QAAQ,EAAEA,CAAA,KAAM;QACfa,YAAY,CAAC,CAAC;QACdtD,mBAAmB;QAClB;QACAlC,EAAE,CAAE,cAAe,CACpB,CAAC;MACF;IACD,CAAC;IACDyF,eAAe,EAAE;MAChBjB,EAAE,EAAE,uBAAuB;MAC3BC,KAAK,EAAEzE,EAAE,CAAE,iBAAkB,CAAC;MAC9B0E,KAAK,EAAE,uBAAuB;MAC9BC,QAAQ,EAAEA,CAAA,KAAM;QACfvC,cAAc,CAAC,CAAC;QAChBF,mBAAmB;QAClB;QACAlC,EAAE,CAAE,kBAAmB,CACxB,CAAC;MACF;IACD,CAAC;IACDmC,sBAAsB,EAAE;MACvBqC,EAAE,EAAE,8BAA8B;MAClCC,KAAK,EACJhB,eAAe,GAAG,CAAC,GAChBzD,EAAE,CAAE,iBAAkB,CAAC,GACvBA,EAAE,CAAE,gBAAiB,CAAC;MAC1B0E,KAAK,EAAE,8BAA8B;MACrCC,QAAQ,EAAEA,CAAA,KAAM;QACf;QACA,MAAMe,aAAa,GAAG1F,EAAE,CAAE,aAAc,CAAC;QACzCkC,mBAAmB,CAClBjC,OAAO,CACNyF,aAAa,EACb7D,aAAa,EAAE8D,KAAK,EAAEC,GAAG,IAAIxE,UAC9B,CACD,CAAC;QACDe,sBAAsB,CAAC,CAAC;MACzB;IACD;EACD,CAAC;EAED,MAAM0D,OAAO,GAAG,CACfhD,cAAc,IAAIyB,UAAU,CAACM,cAAc,EAC3C/B,cAAc,IAAIyB,UAAU,CAACQ,aAAa,EAC1ChC,iBAAiB,IAAIwB,UAAU,CAACC,QAAQ,EACxC,CAAE/C,QAAQ,IACTQ,oCAAoC,CAAC8D,MAAM,IAC3CxB,UAAU,CAACW,eAAe,EAC3BxD,YAAY,IAAI6C,UAAU,CAACc,UAAU,EACrC3D,YAAY,IAAI6C,UAAU,CAACgB,SAAS,EACpC7D,YAAY,IAAI8B,cAAc,IAAIe,UAAU,CAACiB,WAAW,EACxD9D,YAAY,IAAI6C,UAAU,CAACmB,eAAe,EAC1CrB,wBAAwB,IAAIF,WAAW,IAAIG,qBAAqB,CAAC0B,KAAK,EACtE3B,wBAAwB,IACvBD,aAAa,IACbE,qBAAqB,CAAC2B,OAAO,EAC9BpE,mBAAmB,IAClB6B,eAAe,GAAG,CAAC,IACnBa,UAAU,CAACnC,sBAAsB,EAClC,CAAEX,QAAQ,IAAI8C,UAAU,CAACS,MAAM,CAC/B,CAACkB,MAAM,CAAEC,OAAQ,CAAC;;EAEnB;EACA,IAAK,CAAEL,OAAO,CAACC,MAAM,EAAG;IACvB,OACCK,aAAA,CAAC9G,YAAY,QACZ8G,aAAA,CAAC7G,aAAa;MACbqG,KAAK,EAAG3F,EAAE,CAAE,yBAA0B,CAAG;MACzCoG,IAAI,EAAG7F,oBAAsB;MAC7BsE,QAAQ,EAAG;IAAM,CACjB,CACY,CAAC;EAEjB;EAEA,SAASW,YAAYA,CAAA,EAAG;IACvB,IAAK,CAAEzC,SAAS,EAAG;MAClB;IACD;IAEAP,UAAU,CAAE5C,UAAU,CAAE;MAAE0D,IAAI,EAAEP;IAAU,CAAE,CAAC,CAAE,CAAC,CAAG,CAAC;EACrD;EAEA,SAASsD,cAAcA,CAAE3B,KAAK,EAAG;IAChC,MAAM4B,YAAY,GAAGT,OAAO,CAACU,IAAI,CAAIC,IAAI,IAAMA,IAAI,CAAC9B,KAAK,KAAKA,KAAM,CAAC;IACrE4B,YAAY,CAAC3B,QAAQ,CAAC,CAAC;EACxB;EAEA,SAAS8B,eAAeA,CAAA,EAAG;IAC1B,IAAKxD,yBAAyB,CAACiC,OAAO,EAAG;MACxCjC,yBAAyB,CAACiC,OAAO,CAACC,aAAa,CAAC,CAAC;IAClD;EACD;EAEA,MAAMuB,qBAAqB,GAAGb,OAAO,CACnCc,GAAG,CAAE,CAAEC,MAAM,EAAEC,KAAK,KAAMD,MAAM,CAAC/B,QAAQ,IAAIgC,KAAK,GAAG,CAAE,CAAC,CACxDZ,MAAM,CAAEC,OAAQ,CAAC;EAEnB,MAAMY,iBAAiB,GACtB7H,QAAQ,CAAC8H,EAAE,KAAK,KAAK,GAClB/G,EAAE,CAAE,wDAAyD,CAAC,GAC9DA,EAAE,CAAE,wDAAyD,CAAC;EAElE,MAAMgH,SAAS,GAAGA,CAAA,KACjBtE,aAAa,GAAGxD,cAAc,CAAEwD,aAAc,CAAC,GAAGuE,SAAS;EAE5D,OACCd,aAAA,CAAC9G,YAAY,QACZ8G,aAAA,CAAC7G,aAAa;IACbqG,KAAK,EAAG3F,EAAE,CAAE,yBAA0B,CAAG;IACzCkH,OAAO,EAAGT,eAAiB;IAC3BL,IAAI,EAAG7F,oBAAsB;IAC7B4G,UAAU,EAAG;MACZC,IAAI,EAAEN;IACP;EAAG,CACH,CAAC,EACFX,aAAA,CAAC5G,MAAM;IACN8H,MAAM,EAAC,oBAAoB;IAC3BC,GAAG,EAAGrE,yBAA2B;IACjC4C,OAAO,EAAGA,OAAS;IACnB0B,QAAQ,EAAGlB,cAAgB;IAC3BmB,sBAAsB,EAAG3B,OAAO,CAACC,MAAQ;IACzCY,qBAAqB,EAAGA,qBAAuB;IAC/Ce,gBAAgB,EAAGxI,QAAQ,CAAC8H,EAAE,KAAK,KAAO;IAC1CW,SAAS,EAAG,IAAM;IAClBV,SAAS,EAAGA;IACZ;IAAA;IACArB,KAAK,EAAG1F,OAAO,CAAED,EAAE,CAAE,kBAAmB,CAAC,EAAEoB,UAAW;EAAG,CACzD,CAAC,EACF+E,aAAA,CAACnF,wBAAwB;IACxB0B,aAAa,EAAGA,aAAe;IAC/BtB,UAAU,EAAGA,UAAY;IACzBuG,SAAS,EAAGzE,gCAAkC;IAC9C0E,uBAAuB,EAAG5F,oCAAsC;IAChE6F,aAAa,EAAGvG,mBAAmB,CAAES,qBAAsB,CAAG;IAC9DA,qBAAqB,EAAGA;EAAuB,CAC/C,CACY,CAAC;AAEjB,CAAC;AAED,MAAM+F,gBAAgB,GAAG,EAAE;AAE3B,eAAexH,OAAO,CACrBH,UAAU,CAAE,CAAEuD,MAAM,EAAE;EAAEqE;AAAS,CAAC,KAAM;EACvC,MAAM;IACLC,aAAa;IACbC,oBAAoB;IACpBC,aAAa;IACbC,YAAY;IACZC,sBAAsB;IACtBC,QAAQ;IACR/G,mBAAmB;IACnBgH,yBAAyB;IACzBjH,kBAAkB;IAClBkH,eAAe;IACfC;EACD,CAAC,GAAG9E,MAAM,CAAE3C,gBAAiB,CAAC;EAC9B,MAAM0H,KAAK,GAAGJ,QAAQ,CAAEN,QAAS,CAAC;EAClC,MAAMW,SAAS,GAAGP,YAAY,CAAEJ,QAAS,CAAC;EAC1C,MAAMY,SAAS,GAAGnJ,YAAY,CAAEkJ,SAAU,CAAC;EAC3C,MAAMtH,UAAU,GAAGuH,SAAS,EAAEhD,KAAK;EACnC,MAAM7D,YAAY,GAAGmG,oBAAoB,CAAEF,QAAS,CAAC;EACrD,MAAMa,UAAU,GAAGV,aAAa,CAAEpG,YAAa,CAAC;EAEhD,MAAM+G,iBAAiB,GAAGb,aAAa,CAAED,QAAS,CAAC;EACnD,MAAMrG,OAAO,GAAGmH,iBAAiB,KAAK,CAAC;EACvC,MAAMlH,MAAM,GAAGkH,iBAAiB,KAAKD,UAAU,CAAC9C,MAAM,GAAG,CAAC;EAE1D,MAAMgD,WAAW,GAAGxH,mBAAmB,CAAEyG,QAAS,CAAC;EAEnD,MAAMtG,YAAY,GAAGqH,WAAW,CAACC,KAAK,CAAIC,UAAU,IAAM;IACzD,OACC,CAAC,CAAEA,UAAU,IACbtJ,eAAe,CAAEsJ,UAAU,CAACxF,IAAI,EAAE,UAAU,EAAE,IAAK,CAAC,IACpDnC,kBAAkB,CAAE2H,UAAU,CAACxF,IAAI,EAAE1B,YAAa,CAAC;EAErD,CAAE,CAAC;EAEH,MAAMmH,cAAc,GAAGP,SAAS,KAAKjJ,mBAAmB,CAAC,CAAC;EAC1D,MAAMyJ,cAAc,GAAGT,KAAK,EAAEU,UAAU,CAACC,OAAO,KAAK,EAAE;EACvD,MAAMC,iBAAiB,GAAGT,UAAU,CAAC9C,MAAM,KAAK,CAAC;EACjD,MAAMvE,mBAAmB,GACxB8H,iBAAiB,IAAIJ,cAAc,IAAIC,cAAc;EACtD,MAAM1H,QAAQ,GAAG,CAAC,CAAE+G,eAAe,CAAEzG,YAAa,CAAC;EAEnD,MAAMC,qBAAqB,GAAGuG,yBAAyB,CAAC,CAAC,CAAE,CAAC,CAAE;EAC9D,MAAMT,aAAa,GAAG9F,qBAAqB,GACxCT,mBAAmB,CAAES,qBAAsB,CAAC,CAAE,CAAC,CAAE,GACjDkF,SAAS;EACZ,MAAMjF,oCAAoC,GAAG6F,aAAa,GACvDO,sBAAsB,CAAEP,aAAa,EAAE/F,YAAa,CAAC,GACrDgG,gBAAgB;EACnB,MAAM7F,SAAS,GAAGuG,cAAc,CAAEzG,qBAAsB,CAAC;EAEzD,MAAMH,mBAAmB,GAAG6G,KAAK,GAAG1I,eAAe,CAAE0I,KAAM,CAAC,GAAG,KAAK;EACpE,MAAM5G,aAAa,GAAGD,mBAAmB,GACtC8B,MAAM,CAAE7C,SAAU,CAAC,CAACyI,eAAe,CACnC,UAAU,EACV,UAAU,EACVb,KAAK,EAAEU,UAAU,CAAC7B,GAClB,CAAC,GACDL,SAAS;EAEZ,OAAO;IACN7F,UAAU;IACVC,kBAAkB;IAClBkI,YAAY,EAAEV,iBAAiB;IAC/BvH,mBAAmB;IACnBC,mBAAmB;IACnBC,QAAQ;IACRC,YAAY;IACZC,OAAO;IACPC,MAAM;IACNC,mBAAmB;IACnBC,aAAa;IACbC,YAAY;IACZC,qBAAqB;IACrBC,oCAAoC;IACpCC;EACD,CAAC;AACF,CAAE,CAAC,EACH/B,YAAY,CACX,CACCsJ,QAAQ,EACR;EAAEzB,QAAQ;EAAEjG,YAAY;EAAEyH,YAAY;EAAExH;AAAsB,CAAC,EAC/D;EAAE2B;AAAO,CAAC,KACN;EACJ,MAAM;IACL+F,cAAc;IACdC,YAAY;IACZC,eAAe;IACflH,YAAY;IACZmH,WAAW;IACXC,YAAY;IACZC;EACD,CAAC,GAAGN,QAAQ,CAAEzI,gBAAiB,CAAC;EAChC,MAAM;IAAEwB;EAAmB,CAAC,GAAGiH,QAAQ,CAAE,gBAAiB,CAAC;EAC3D,MAAM;IAAEO,oBAAoB;IAAE1B;EAAS,CAAC,GACvC3E,MAAM,CAAE3C,gBAAiB,CAAC;EAC3B,MAAM;IAAEmB;EAAoB,CAAC,GAAGsH,QAAQ,CAAE7I,YAAa,CAAC;EAExD,MAAM;IAAEqJ,kCAAkC,EAAEC;EAAqB,CAAC,GACjET,QAAQ,CAAE5I,mBAAoB,CAAC;EAEhC,OAAO;IACNsB,mBAAmB;IACnBC,sBAAsBA,CAAA,EAAG;MACxB2H,kBAAkB,CAAC,CAAC;MACpB;MACA;MACAI,YAAY,CAAE,MACbD,oBAAoB,CAAElI,qBAAsB,CAC7C,CAAC;IACF,CAAC;IACDK,cAAcA,CAAA,EAAG;MAChB,OAAOuH,eAAe,CAAE,CAAE5B,QAAQ,CAAG,CAAC;IACvC,CAAC;IACD1F,UAAU,EAAEA,CAAE,GAAG8H,IAAI,KACpBV,cAAc,CAAE,CAAE1B,QAAQ,CAAE,EAAEjG,YAAY,EAAE,GAAGqI,IAAK,CAAC;IACtD7H,QAAQ,EAAEA,CAAE,GAAG6H,IAAI,KAClBT,YAAY,CAAE,CAAE3B,QAAQ,CAAE,EAAEjG,YAAY,EAAE,GAAGqI,IAAK,CAAC;IACpD5H,kBAAkB,EAAEA,CAAA,KACnBA,kBAAkB,CAAE,iBAAkB,CAAC;IACxCC,UAAU,EAAIa,cAAc,IAAM;MACjC,MAAM+G,eAAe,GAAGtK,wBAAwB,CAC/CuI,QAAQ,CAAE0B,oBAAoB,CAAC,CAAE,CAClC,CAAC;MAED,IAAK,CAAEK,eAAe,EAAG;QACxB,MAAMC,aAAa,GAAGxK,WAAW,CAChCwD,cAAc,CAACG,IAAI,EACnBH,cAAc,CAAC8F,UAAU,EACzB9F,cAAc,CAACyF,WAChB,CAAC;QAEDc,WAAW,CACVS,aAAa,EACbd,YAAY,GAAG,CAAC,EAChBzH,YACD,CAAC;MACF,CAAC,MAAM;QACN+H,YAAY,CAAE9B,QAAQ,EAAE1E,cAAe,CAAC;MACzC;IACD,CAAC;IACDZ;EACD,CAAC;AACF,CACD,CAAC,EACDpC,cACD,CAAC,CAAEc,gBAAiB,CAAC"}
1
+ {"version":3,"names":["Platform","findNodeHandle","getClipboard","setClipboard","ToolbarGroup","ToolbarButton","Picker","getBlockType","getDefaultBlockName","hasBlockSupport","serialize","rawHandler","createBlock","isUnmodifiedDefaultBlock","isReusableBlock","__","sprintf","withDispatch","withSelect","useSelect","withInstanceId","compose","moreHorizontalMobile","useRef","useState","store","noticesStore","reusableBlocksStore","coreStore","getMoversSetup","blockEditorStore","BlockTransformationsMenu","useConvertToGroupButtons","useConvertToGroupButtonProps","BlockActionsMenu","blockTitle","canInsertBlockType","getBlocksByClientId","isEmptyDefaultBlock","isLocked","canDuplicate","isFirst","isLast","isReusableBlockType","reusableBlock","rootClientId","selectedBlockClientId","selectedBlockPossibleTransformations","createSuccessNotice","convertToRegularBlocks","duplicateBlock","onMoveDown","onMoveUp","openGeneralSidebar","pasteBlock","removeBlocks","anchorNodeRef","isStackedHorizontally","onDelete","wrapBlockMover","wrapBlockSettings","clipboard","setCurrentClipboard","blockActionsMenuPickerRef","blockTransformationMenuPickerRef","moversOptions","keys","clipboardBlock","HTML","isPasteEnabled","name","innerBlockCount","select","getBlockCount","actionTitle","backward","backwardButtonTitle","forward","forwardButtonTitle","convertToGroupButtonProps","isGroupable","isUngroupable","showConvertToGroupButton","convertToGroupButtons","allOptions","settings","id","label","value","onSelect","backwardButton","disabled","forwardButton","delete","separated","transformButton","current","presentPicker","copyButton","serializedBlock","cutButton","pasteButton","onPasteBlock","duplicateButton","successNotice","title","raw","options","length","group","ungroup","filter","Boolean","createElement","icon","onPickerSelect","selectedItem","find","item","onPickerPresent","disabledButtonIndices","map","option","index","accessibilityHint","OS","getAnchor","undefined","onClick","extraProps","hint","testID","ref","onChange","destructiveButtonIndex","hideCancelButton","leftAlign","pickerRef","possibleTransformations","selectedBlock","EMPTY_BLOCK_LIST","clientId","getBlockIndex","getBlockRootClientId","getBlockOrder","getBlockName","getBlockTransformItems","getBlock","getSelectedBlockClientIds","getTemplateLock","block","blockName","blockType","blockOrder","currentBlockIndex","innerBlocks","every","innerBlock","isDefaultBlock","isEmptyContent","attributes","content","isExactlyOneBlock","getEntityRecord","currentIndex","dispatch","moveBlocksDown","moveBlocksUp","duplicateBlocks","insertBlock","replaceBlock","clearSelectedBlock","getBlockSelectionEnd","__experimentalConvertBlockToStatic","convertBlockToStatic","setImmediate","args","canReplaceBlock","insertedBlock"],"sources":["@wordpress/block-editor/src/components/block-toolbar/block-toolbar-menu.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Platform, findNodeHandle } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tgetClipboard,\n\tsetClipboard,\n\tToolbarGroup,\n\tToolbarButton,\n\tPicker,\n} from '@wordpress/components';\nimport {\n\tgetBlockType,\n\tgetDefaultBlockName,\n\thasBlockSupport,\n\tserialize,\n\trawHandler,\n\tcreateBlock,\n\tisUnmodifiedDefaultBlock,\n\tisReusableBlock,\n} from '@wordpress/blocks';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { withDispatch, withSelect, useSelect } from '@wordpress/data';\nimport { withInstanceId, compose } from '@wordpress/compose';\nimport { moreHorizontalMobile } from '@wordpress/icons';\nimport { useRef, useState } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\n// Disable Reason: Needs to be refactored.\n// eslint-disable-next-line no-restricted-imports\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { getMoversSetup } from '../block-mover/mover-description';\nimport { store as blockEditorStore } from '../../store';\nimport BlockTransformationsMenu from '../block-switcher/block-transformations-menu';\nimport {\n\tuseConvertToGroupButtons,\n\tuseConvertToGroupButtonProps,\n} from '../convert-to-group-buttons';\n\nconst BlockActionsMenu = ( {\n\t// Select.\n\tblockTitle,\n\tcanInsertBlockType,\n\tgetBlocksByClientId,\n\tisEmptyDefaultBlock,\n\tisLocked,\n\tcanDuplicate,\n\tisFirst,\n\tisLast,\n\tisReusableBlockType,\n\treusableBlock,\n\trootClientId,\n\tselectedBlockClientId,\n\tselectedBlockPossibleTransformations,\n\t// Dispatch.\n\tcreateSuccessNotice,\n\tconvertToRegularBlocks,\n\tduplicateBlock,\n\tonMoveDown,\n\tonMoveUp,\n\topenGeneralSidebar,\n\tpasteBlock,\n\tremoveBlocks,\n\t// Passed in.\n\tanchorNodeRef,\n\tisStackedHorizontally,\n\tonDelete,\n\twrapBlockMover,\n\twrapBlockSettings,\n} ) => {\n\tconst [ clipboard, setCurrentClipboard ] = useState( getClipboard() );\n\tconst blockActionsMenuPickerRef = useRef();\n\tconst blockTransformationMenuPickerRef = useRef();\n\tconst moversOptions = { keys: [ 'icon', 'actionTitle' ] };\n\tconst clipboardBlock = clipboard && rawHandler( { HTML: clipboard } )[ 0 ];\n\tconst isPasteEnabled =\n\t\tclipboardBlock &&\n\t\tcanInsertBlockType( clipboardBlock.name, rootClientId );\n\n\tconst innerBlockCount = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlockCount( selectedBlockClientId ),\n\t\t[ selectedBlockClientId ]\n\t);\n\n\tconst {\n\t\tactionTitle: {\n\t\t\tbackward: backwardButtonTitle,\n\t\t\tforward: forwardButtonTitle,\n\t\t},\n\t} = getMoversSetup( isStackedHorizontally, moversOptions );\n\n\t// Check if selected block is Groupable and/or Ungroupable.\n\tconst convertToGroupButtonProps = useConvertToGroupButtonProps(\n\t\t// `selectedBlockClientId` can be undefined in some cases where this\n\t\t// component gets re-rendered right after the block is removed.\n\t\tselectedBlockClientId ? [ selectedBlockClientId ] : []\n\t);\n\tconst { isGroupable, isUngroupable } = convertToGroupButtonProps;\n\tconst showConvertToGroupButton = isGroupable || isUngroupable;\n\tconst convertToGroupButtons = useConvertToGroupButtons( {\n\t\t...convertToGroupButtonProps,\n\t} );\n\n\tconst allOptions = {\n\t\tsettings: {\n\t\t\tid: 'settingsOption',\n\t\t\tlabel: __( 'Block settings' ),\n\t\t\tvalue: 'settingsOption',\n\t\t\tonSelect: openGeneralSidebar,\n\t\t},\n\t\tbackwardButton: {\n\t\t\tid: 'backwardButtonOption',\n\t\t\tlabel: backwardButtonTitle,\n\t\t\tvalue: 'backwardButtonOption',\n\t\t\tdisabled: isFirst,\n\t\t\tonSelect: onMoveUp,\n\t\t},\n\t\tforwardButton: {\n\t\t\tid: 'forwardButtonOption',\n\t\t\tlabel: forwardButtonTitle,\n\t\t\tvalue: 'forwardButtonOption',\n\t\t\tdisabled: isLast,\n\t\t\tonSelect: onMoveDown,\n\t\t},\n\t\tdelete: {\n\t\t\tid: 'deleteOption',\n\t\t\tlabel: __( 'Remove block' ),\n\t\t\tvalue: 'deleteOption',\n\t\t\tseparated: true,\n\t\t\tdisabled: isEmptyDefaultBlock,\n\t\t\tonSelect: () => {\n\t\t\t\tonDelete();\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is removed.\n\t\t\t\t\t__( 'Block removed' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\ttransformButton: {\n\t\t\tid: 'transformButtonOption',\n\t\t\tlabel: __( 'Transform block…' ),\n\t\t\tvalue: 'transformButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tif ( blockTransformationMenuPickerRef.current ) {\n\t\t\t\t\tblockTransformationMenuPickerRef.current.presentPicker();\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tcopyButton: {\n\t\t\tid: 'copyButtonOption',\n\t\t\tlabel: __( 'Copy' ),\n\t\t\tvalue: 'copyButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tconst serializedBlock = serialize(\n\t\t\t\t\tgetBlocksByClientId( selectedBlockClientId )\n\t\t\t\t);\n\t\t\t\tsetCurrentClipboard( serializedBlock );\n\t\t\t\tsetClipboard( serializedBlock );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is copied.\n\t\t\t\t\t__( 'Block copied' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tcutButton: {\n\t\t\tid: 'cutButtonOption',\n\t\t\tlabel: __( 'Cut block' ),\n\t\t\tvalue: 'cutButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tsetClipboard(\n\t\t\t\t\tserialize( getBlocksByClientId( selectedBlockClientId ) )\n\t\t\t\t);\n\t\t\t\tremoveBlocks( selectedBlockClientId );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is cut.\n\t\t\t\t\t__( 'Block cut' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tpasteButton: {\n\t\t\tid: 'pasteButtonOption',\n\t\t\tlabel: __( 'Paste block after' ),\n\t\t\tvalue: 'pasteButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tonPasteBlock();\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is pasted.\n\t\t\t\t\t__( 'Block pasted' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tduplicateButton: {\n\t\t\tid: 'duplicateButtonOption',\n\t\t\tlabel: __( 'Duplicate block' ),\n\t\t\tvalue: 'duplicateButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tduplicateBlock();\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is duplicated.\n\t\t\t\t\t__( 'Block duplicated' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tconvertToRegularBlocks: {\n\t\t\tid: 'convertToRegularBlocksOption',\n\t\t\tlabel:\n\t\t\t\tinnerBlockCount > 1\n\t\t\t\t\t? __( 'Detach patterns' )\n\t\t\t\t\t: __( 'Detach pattern' ),\n\t\t\tvalue: 'convertToRegularBlocksOption',\n\t\t\tonSelect: () => {\n\t\t\t\t/* translators: %s: name of the synced block */\n\t\t\t\tconst successNotice = __( '%s detached' );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\tsuccessNotice,\n\t\t\t\t\t\treusableBlock?.title?.raw || blockTitle\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tconvertToRegularBlocks();\n\t\t\t},\n\t\t},\n\t};\n\n\tconst options = [\n\t\twrapBlockMover && allOptions.backwardButton,\n\t\twrapBlockMover && allOptions.forwardButton,\n\t\twrapBlockSettings && allOptions.settings,\n\t\t! isLocked &&\n\t\t\tselectedBlockPossibleTransformations.length &&\n\t\t\tallOptions.transformButton,\n\t\tcanDuplicate && allOptions.copyButton,\n\t\tcanDuplicate && allOptions.cutButton,\n\t\tcanDuplicate && isPasteEnabled && allOptions.pasteButton,\n\t\tcanDuplicate && allOptions.duplicateButton,\n\t\tshowConvertToGroupButton && isGroupable && convertToGroupButtons.group,\n\t\tshowConvertToGroupButton &&\n\t\t\tisUngroupable &&\n\t\t\tconvertToGroupButtons.ungroup,\n\t\tisReusableBlockType &&\n\t\t\tinnerBlockCount > 0 &&\n\t\t\tallOptions.convertToRegularBlocks,\n\t\t! isLocked && allOptions.delete,\n\t].filter( Boolean );\n\n\t// End early if there are no options to show.\n\tif ( ! options.length ) {\n\t\treturn (\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\ttitle={ __( 'Open Block Actions Menu' ) }\n\t\t\t\t\ticon={ moreHorizontalMobile }\n\t\t\t\t\tdisabled={ true }\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t);\n\t}\n\n\tfunction onPasteBlock() {\n\t\tif ( ! clipboard ) {\n\t\t\treturn;\n\t\t}\n\n\t\tpasteBlock( rawHandler( { HTML: clipboard } )[ 0 ] );\n\t}\n\n\tfunction onPickerSelect( value ) {\n\t\tconst selectedItem = options.find( ( item ) => item.value === value );\n\t\tselectedItem.onSelect();\n\t}\n\n\tfunction onPickerPresent() {\n\t\tif ( blockActionsMenuPickerRef.current ) {\n\t\t\tblockActionsMenuPickerRef.current.presentPicker();\n\t\t}\n\t}\n\n\tconst disabledButtonIndices = options\n\t\t.map( ( option, index ) => option.disabled && index + 1 )\n\t\t.filter( Boolean );\n\n\tconst accessibilityHint =\n\t\tPlatform.OS === 'ios'\n\t\t\t? __( 'Double tap to open Action Sheet with available options' )\n\t\t\t: __( 'Double tap to open Bottom Sheet with available options' );\n\n\tconst getAnchor = () =>\n\t\tanchorNodeRef ? findNodeHandle( anchorNodeRef ) : undefined;\n\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ __( 'Open Block Actions Menu' ) }\n\t\t\t\tonClick={ onPickerPresent }\n\t\t\t\ticon={ moreHorizontalMobile }\n\t\t\t\textraProps={ {\n\t\t\t\t\thint: accessibilityHint,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<Picker\n\t\t\t\ttestID=\"block-actions-menu\"\n\t\t\t\tref={ blockActionsMenuPickerRef }\n\t\t\t\toptions={ options }\n\t\t\t\tonChange={ onPickerSelect }\n\t\t\t\tdestructiveButtonIndex={ options.length }\n\t\t\t\tdisabledButtonIndices={ disabledButtonIndices }\n\t\t\t\thideCancelButton={ Platform.OS !== 'ios' }\n\t\t\t\tleftAlign={ true }\n\t\t\t\tgetAnchor={ getAnchor }\n\t\t\t\t// translators: %s: block title e.g: \"Paragraph\".\n\t\t\t\ttitle={ sprintf( __( '%s block options' ), blockTitle ) }\n\t\t\t/>\n\t\t\t<BlockTransformationsMenu\n\t\t\t\tanchorNodeRef={ anchorNodeRef }\n\t\t\t\tblockTitle={ blockTitle }\n\t\t\t\tpickerRef={ blockTransformationMenuPickerRef }\n\t\t\t\tpossibleTransformations={ selectedBlockPossibleTransformations }\n\t\t\t\tselectedBlock={ getBlocksByClientId( selectedBlockClientId ) }\n\t\t\t\tselectedBlockClientId={ selectedBlockClientId }\n\t\t\t/>\n\t\t</ToolbarGroup>\n\t);\n};\n\nconst EMPTY_BLOCK_LIST = [];\n\nexport default compose(\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockName,\n\t\t\tgetBlockTransformItems,\n\t\t\tgetBlock,\n\t\t\tgetBlocksByClientId,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tcanInsertBlockType,\n\t\t\tgetTemplateLock,\n\t\t} = select( blockEditorStore );\n\t\tconst block = getBlock( clientId );\n\t\tconst blockName = getBlockName( clientId );\n\t\tconst blockType = getBlockType( blockName );\n\t\tconst blockTitle = blockType?.title;\n\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\tconst blockOrder = getBlockOrder( rootClientId );\n\n\t\tconst currentBlockIndex = getBlockIndex( clientId );\n\t\tconst isFirst = currentBlockIndex === 0;\n\t\tconst isLast = currentBlockIndex === blockOrder.length - 1;\n\n\t\tconst innerBlocks = getBlocksByClientId( clientId );\n\n\t\tconst canDuplicate = innerBlocks.every( ( innerBlock ) => {\n\t\t\treturn (\n\t\t\t\t!! innerBlock &&\n\t\t\t\thasBlockSupport( innerBlock.name, 'multiple', true ) &&\n\t\t\t\tcanInsertBlockType( innerBlock.name, rootClientId )\n\t\t\t);\n\t\t} );\n\n\t\tconst isDefaultBlock = blockName === getDefaultBlockName();\n\t\tconst isEmptyContent = block?.attributes.content === '';\n\t\tconst isExactlyOneBlock = blockOrder.length === 1;\n\t\tconst isEmptyDefaultBlock =\n\t\t\tisExactlyOneBlock && isDefaultBlock && isEmptyContent;\n\t\tconst isLocked = !! getTemplateLock( rootClientId );\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientIds()[ 0 ];\n\t\tconst selectedBlock = selectedBlockClientId\n\t\t\t? getBlocksByClientId( selectedBlockClientId )[ 0 ]\n\t\t\t: undefined;\n\t\tconst selectedBlockPossibleTransformations = selectedBlock\n\t\t\t? getBlockTransformItems( selectedBlock, rootClientId )\n\t\t\t: EMPTY_BLOCK_LIST;\n\n\t\tconst isReusableBlockType = block ? isReusableBlock( block ) : false;\n\t\tconst reusableBlock = isReusableBlockType\n\t\t\t? select( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_block',\n\t\t\t\t\tblock?.attributes.ref\n\t\t\t )\n\t\t\t: undefined;\n\n\t\treturn {\n\t\t\tblockTitle,\n\t\t\tcanInsertBlockType,\n\t\t\tcurrentIndex: currentBlockIndex,\n\t\t\tgetBlocksByClientId,\n\t\t\tisEmptyDefaultBlock,\n\t\t\tisLocked,\n\t\t\tcanDuplicate,\n\t\t\tisFirst,\n\t\t\tisLast,\n\t\t\tisReusableBlockType,\n\t\t\treusableBlock,\n\t\t\trootClientId,\n\t\t\tselectedBlockClientId,\n\t\t\tselectedBlockPossibleTransformations,\n\t\t};\n\t} ),\n\twithDispatch(\n\t\t(\n\t\t\tdispatch,\n\t\t\t{ clientId, rootClientId, currentIndex, selectedBlockClientId },\n\t\t\t{ select }\n\t\t) => {\n\t\t\tconst {\n\t\t\t\tmoveBlocksDown,\n\t\t\t\tmoveBlocksUp,\n\t\t\t\tduplicateBlocks,\n\t\t\t\tremoveBlocks,\n\t\t\t\tinsertBlock,\n\t\t\t\treplaceBlock,\n\t\t\t\tclearSelectedBlock,\n\t\t\t} = dispatch( blockEditorStore );\n\t\t\tconst { openGeneralSidebar } = dispatch( 'core/edit-post' );\n\t\t\tconst { getBlockSelectionEnd, getBlock } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { createSuccessNotice } = dispatch( noticesStore );\n\n\t\t\tconst { __experimentalConvertBlockToStatic: convertBlockToStatic } =\n\t\t\t\tdispatch( reusableBlocksStore );\n\n\t\t\treturn {\n\t\t\t\tcreateSuccessNotice,\n\t\t\t\tconvertToRegularBlocks() {\n\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t\t// Convert action is executed at the end of the current JavaScript execution block\n\t\t\t\t\t// to prevent issues related to undo/redo actions.\n\t\t\t\t\tsetImmediate( () =>\n\t\t\t\t\t\tconvertBlockToStatic( selectedBlockClientId )\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tduplicateBlock() {\n\t\t\t\t\treturn duplicateBlocks( [ clientId ] );\n\t\t\t\t},\n\t\t\t\tonMoveDown: ( ...args ) =>\n\t\t\t\t\tmoveBlocksDown( [ clientId ], rootClientId, ...args ),\n\t\t\t\tonMoveUp: ( ...args ) =>\n\t\t\t\t\tmoveBlocksUp( [ clientId ], rootClientId, ...args ),\n\t\t\t\topenGeneralSidebar: () =>\n\t\t\t\t\topenGeneralSidebar( 'edit-post/block' ),\n\t\t\t\tpasteBlock: ( clipboardBlock ) => {\n\t\t\t\t\tconst canReplaceBlock = isUnmodifiedDefaultBlock(\n\t\t\t\t\t\tgetBlock( getBlockSelectionEnd() )\n\t\t\t\t\t);\n\n\t\t\t\t\tif ( ! canReplaceBlock ) {\n\t\t\t\t\t\tconst insertedBlock = createBlock(\n\t\t\t\t\t\t\tclipboardBlock.name,\n\t\t\t\t\t\t\tclipboardBlock.attributes,\n\t\t\t\t\t\t\tclipboardBlock.innerBlocks\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tinsertBlock(\n\t\t\t\t\t\t\tinsertedBlock,\n\t\t\t\t\t\t\tcurrentIndex + 1,\n\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treplaceBlock( clientId, clipboardBlock );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tremoveBlocks,\n\t\t\t};\n\t\t}\n\t),\n\twithInstanceId\n)( BlockActionsMenu );\n"],"mappings":"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"}
@@ -66,15 +66,26 @@ function BlockContextualToolbar({
66
66
  }, [selectedBlockClientId]);
67
67
  const isLargerThanTabletViewport = useViewportMatch('large', '>=');
68
68
  const isFullscreen = document.body.classList.contains('is-fullscreen-mode');
69
+
70
+ /**
71
+ * The following code is a workaround to fix the width of the toolbar
72
+ * it should be removed when the toolbar will be rendered inline
73
+ * FIXME: remove this layout effect when the toolbar is no longer
74
+ * absolutely positioned
75
+ */
69
76
  useLayoutEffect(() => {
70
77
  // don't do anything if not fixed toolbar
71
- if (!isFixed || !blockType) {
78
+ if (!isFixed) {
72
79
  return;
73
80
  }
74
81
  const blockToolbar = document.querySelector('.block-editor-block-contextual-toolbar');
75
82
  if (!blockToolbar) {
76
83
  return;
77
84
  }
85
+ if (!blockType) {
86
+ blockToolbar.style.width = 'initial';
87
+ return;
88
+ }
78
89
  if (!isLargerThanTabletViewport) {
79
90
  // set the width of the toolbar to auto
80
91
  blockToolbar.style = {};
@@ -86,21 +97,21 @@ function BlockContextualToolbar({
86
97
  return;
87
98
  }
88
99
 
89
- // get the width of the pinned items in the post editor
90
- const pinnedItems = document.querySelector('.edit-post-header__settings');
91
-
100
+ // get the width of the pinned items in the post editor or widget editor
101
+ const pinnedItems = document.querySelector('.edit-post-header__settings, .edit-widgets-header__actions');
92
102
  // get the width of the left header in the site editor
93
103
  const leftHeader = document.querySelector('.edit-site-header-edit-mode__end');
94
104
  const computedToolbarStyle = window.getComputedStyle(blockToolbar);
95
105
  const computedPinnedItemsStyle = pinnedItems ? window.getComputedStyle(pinnedItems) : false;
96
106
  const computedLeftHeaderStyle = leftHeader ? window.getComputedStyle(leftHeader) : false;
97
107
  const marginLeft = parseFloat(computedToolbarStyle.marginLeft);
98
- const pinnedItemsWidth = computedPinnedItemsStyle ? parseFloat(computedPinnedItemsStyle.width) + 10 // 10 is the pinned items padding
99
- : 0;
108
+ const pinnedItemsWidth = computedPinnedItemsStyle ? parseFloat(computedPinnedItemsStyle.width) : 0;
100
109
  const leftHeaderWidth = computedLeftHeaderStyle ? parseFloat(computedLeftHeaderStyle.width) : 0;
101
110
 
102
111
  // set the new witdth of the toolbar
103
- blockToolbar.style.width = `calc(100% - ${leftHeaderWidth + pinnedItemsWidth + marginLeft + (isFullscreen ? 0 : 160) // the width of the admin sidebar expanded
112
+ blockToolbar.style.width = `calc(100% - ${leftHeaderWidth + pinnedItemsWidth + marginLeft + (pinnedItems || leftHeader ? 2 : 0) + (
113
+ // Prevents button focus border from being cut off
114
+ isFullscreen ? 0 : 160) // the width of the admin sidebar expanded
104
115
  }px)`;
105
116
  }, [isFixed, isLargerThanTabletViewport, isCollapsed, isFullscreen, blockType]);
106
117
  const isToolbarEnabled = !blockType || hasBlockSupport(blockType, '__experimentalToolbar', true);
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","__","useLayoutEffect","useEffect","useRef","useState","hasBlockSupport","store","blocksStore","useSelect","ToolbarItem","ToolbarButton","ToolbarGroup","next","previous","useViewportMatch","NavigableToolbar","BlockToolbar","blockEditorStore","useHasAnyBlockControls","BlockContextualToolbar","focusOnMount","isFixed","props","isCollapsed","setIsCollapsed","toolbarButtonRef","isLargeViewport","blockType","blockEditingMode","hasParents","showParentSelector","selectedBlockClientId","select","getBlockName","getBlockParents","getSelectedBlockClientIds","getBlockEditingMode","getBlockType","selectedBlockClientIds","_selectedBlockClientId","parents","firstParentClientId","length","parentBlockName","parentBlockType","isLargerThanTabletViewport","isFullscreen","document","body","classList","contains","blockToolbar","querySelector","style","width","pinnedItems","leftHeader","computedToolbarStyle","window","getComputedStyle","computedPinnedItemsStyle","computedLeftHeaderStyle","marginLeft","parseFloat","pinnedItemsWidth","leftHeaderWidth","isToolbarEnabled","hasAnyBlockControls","classes","createElement","className","hideDragHandle","as","ref","icon","onClick","collapsed","current","focus","label"],"sources":["@wordpress/block-editor/src/components/block-tools/block-contextual-toolbar.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseLayoutEffect,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n} from '@wordpress/element';\nimport { hasBlockSupport, store as blocksStore } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tToolbarItem,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { next, previous } from '@wordpress/icons';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport NavigableToolbar from '../navigable-toolbar';\nimport BlockToolbar from '../block-toolbar';\nimport { store as blockEditorStore } from '../../store';\nimport { useHasAnyBlockControls } from '../block-controls/use-has-block-controls';\n\nfunction BlockContextualToolbar( { focusOnMount, isFixed, ...props } ) {\n\t// When the toolbar is fixed it can be collapsed\n\tconst [ isCollapsed, setIsCollapsed ] = useState( false );\n\tconst toolbarButtonRef = useRef();\n\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst {\n\t\tblockType,\n\t\tblockEditingMode,\n\t\thasParents,\n\t\tshowParentSelector,\n\t\tselectedBlockClientId,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockName,\n\t\t\tgetBlockParents,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tgetBlockEditingMode,\n\t\t} = select( blockEditorStore );\n\t\tconst { getBlockType } = select( blocksStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst _selectedBlockClientId = selectedBlockClientIds[ 0 ];\n\t\tconst parents = getBlockParents( _selectedBlockClientId );\n\t\tconst firstParentClientId = parents[ parents.length - 1 ];\n\t\tconst parentBlockName = getBlockName( firstParentClientId );\n\t\tconst parentBlockType = getBlockType( parentBlockName );\n\n\t\treturn {\n\t\t\tselectedBlockClientId: _selectedBlockClientId,\n\t\t\tblockType:\n\t\t\t\t_selectedBlockClientId &&\n\t\t\t\tgetBlockType( getBlockName( _selectedBlockClientId ) ),\n\t\t\tblockEditingMode: getBlockEditingMode( _selectedBlockClientId ),\n\t\t\thasParents: parents.length,\n\t\t\tshowParentSelector:\n\t\t\t\tparentBlockType &&\n\t\t\t\tgetBlockEditingMode( firstParentClientId ) === 'default' &&\n\t\t\t\thasBlockSupport(\n\t\t\t\t\tparentBlockType,\n\t\t\t\t\t'__experimentalParentSelector',\n\t\t\t\t\ttrue\n\t\t\t\t) &&\n\t\t\t\tselectedBlockClientIds.length <= 1 &&\n\t\t\t\tgetBlockEditingMode( _selectedBlockClientId ) === 'default',\n\t\t};\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tsetIsCollapsed( false );\n\t}, [ selectedBlockClientId ] );\n\n\tconst isLargerThanTabletViewport = useViewportMatch( 'large', '>=' );\n\tconst isFullscreen =\n\t\tdocument.body.classList.contains( 'is-fullscreen-mode' );\n\n\tuseLayoutEffect( () => {\n\t\t// don't do anything if not fixed toolbar\n\t\tif ( ! isFixed || ! blockType ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst blockToolbar = document.querySelector(\n\t\t\t'.block-editor-block-contextual-toolbar'\n\t\t);\n\n\t\tif ( ! blockToolbar ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! isLargerThanTabletViewport ) {\n\t\t\t// set the width of the toolbar to auto\n\t\t\tblockToolbar.style = {};\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isCollapsed ) {\n\t\t\t// set the width of the toolbar to auto\n\t\t\tblockToolbar.style.width = 'auto';\n\t\t\treturn;\n\t\t}\n\n\t\t// get the width of the pinned items in the post editor\n\t\tconst pinnedItems = document.querySelector(\n\t\t\t'.edit-post-header__settings'\n\t\t);\n\n\t\t// get the width of the left header in the site editor\n\t\tconst leftHeader = document.querySelector(\n\t\t\t'.edit-site-header-edit-mode__end'\n\t\t);\n\n\t\tconst computedToolbarStyle = window.getComputedStyle( blockToolbar );\n\t\tconst computedPinnedItemsStyle = pinnedItems\n\t\t\t? window.getComputedStyle( pinnedItems )\n\t\t\t: false;\n\t\tconst computedLeftHeaderStyle = leftHeader\n\t\t\t? window.getComputedStyle( leftHeader )\n\t\t\t: false;\n\n\t\tconst marginLeft = parseFloat( computedToolbarStyle.marginLeft );\n\t\tconst pinnedItemsWidth = computedPinnedItemsStyle\n\t\t\t? parseFloat( computedPinnedItemsStyle.width ) + 10 // 10 is the pinned items padding\n\t\t\t: 0;\n\t\tconst leftHeaderWidth = computedLeftHeaderStyle\n\t\t\t? parseFloat( computedLeftHeaderStyle.width )\n\t\t\t: 0;\n\n\t\t// set the new witdth of the toolbar\n\t\tblockToolbar.style.width = `calc(100% - ${\n\t\t\tleftHeaderWidth +\n\t\t\tpinnedItemsWidth +\n\t\t\tmarginLeft +\n\t\t\t( isFullscreen ? 0 : 160 ) // the width of the admin sidebar expanded\n\t\t}px)`;\n\t}, [\n\t\tisFixed,\n\t\tisLargerThanTabletViewport,\n\t\tisCollapsed,\n\t\tisFullscreen,\n\t\tblockType,\n\t] );\n\n\tconst isToolbarEnabled =\n\t\t! blockType ||\n\t\thasBlockSupport( blockType, '__experimentalToolbar', true );\n\tconst hasAnyBlockControls = useHasAnyBlockControls();\n\tif (\n\t\t! isToolbarEnabled ||\n\t\t( blockEditingMode !== 'default' && ! hasAnyBlockControls )\n\t) {\n\t\treturn null;\n\t}\n\n\t// Shifts the toolbar to make room for the parent block selector.\n\tconst classes = classnames( 'block-editor-block-contextual-toolbar', {\n\t\t'has-parent': hasParents && showParentSelector,\n\t\t'is-fixed': isFixed,\n\t\t'is-collapsed': isCollapsed,\n\t} );\n\n\treturn (\n\t\t<NavigableToolbar\n\t\t\tfocusOnMount={ focusOnMount }\n\t\t\tclassName={ classes }\n\t\t\t/* translators: accessibility text for the block toolbar */\n\t\t\taria-label={ __( 'Block tools' ) }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ ! isCollapsed && <BlockToolbar hideDragHandle={ isFixed } /> }\n\t\t\t{ isFixed && isLargeViewport && blockType && (\n\t\t\t\t<ToolbarGroup\n\t\t\t\t\tclassName={\n\t\t\t\t\t\tisCollapsed\n\t\t\t\t\t\t\t? 'block-editor-block-toolbar__group-expand-fixed-toolbar'\n\t\t\t\t\t\t\t: 'block-editor-block-toolbar__group-collapse-fixed-toolbar'\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\tas={ ToolbarButton }\n\t\t\t\t\t\tref={ toolbarButtonRef }\n\t\t\t\t\t\ticon={ isCollapsed ? next : previous }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetIsCollapsed( ( collapsed ) => ! collapsed );\n\t\t\t\t\t\t\ttoolbarButtonRef.current.focus();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tisCollapsed\n\t\t\t\t\t\t\t\t? __( 'Show block tools' )\n\t\t\t\t\t\t\t\t: __( 'Hide block tools' )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolbarGroup>\n\t\t\t) }\n\t\t</NavigableToolbar>\n\t);\n}\n\nexport default BlockContextualToolbar;\n"],"mappings":"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"}
1
+ {"version":3,"names":["classnames","__","useLayoutEffect","useEffect","useRef","useState","hasBlockSupport","store","blocksStore","useSelect","ToolbarItem","ToolbarButton","ToolbarGroup","next","previous","useViewportMatch","NavigableToolbar","BlockToolbar","blockEditorStore","useHasAnyBlockControls","BlockContextualToolbar","focusOnMount","isFixed","props","isCollapsed","setIsCollapsed","toolbarButtonRef","isLargeViewport","blockType","blockEditingMode","hasParents","showParentSelector","selectedBlockClientId","select","getBlockName","getBlockParents","getSelectedBlockClientIds","getBlockEditingMode","getBlockType","selectedBlockClientIds","_selectedBlockClientId","parents","firstParentClientId","length","parentBlockName","parentBlockType","isLargerThanTabletViewport","isFullscreen","document","body","classList","contains","blockToolbar","querySelector","style","width","pinnedItems","leftHeader","computedToolbarStyle","window","getComputedStyle","computedPinnedItemsStyle","computedLeftHeaderStyle","marginLeft","parseFloat","pinnedItemsWidth","leftHeaderWidth","isToolbarEnabled","hasAnyBlockControls","classes","createElement","className","hideDragHandle","as","ref","icon","onClick","collapsed","current","focus","label"],"sources":["@wordpress/block-editor/src/components/block-tools/block-contextual-toolbar.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseLayoutEffect,\n\tuseEffect,\n\tuseRef,\n\tuseState,\n} from '@wordpress/element';\nimport { hasBlockSupport, store as blocksStore } from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport {\n\tToolbarItem,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { next, previous } from '@wordpress/icons';\nimport { useViewportMatch } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport NavigableToolbar from '../navigable-toolbar';\nimport BlockToolbar from '../block-toolbar';\nimport { store as blockEditorStore } from '../../store';\nimport { useHasAnyBlockControls } from '../block-controls/use-has-block-controls';\n\nfunction BlockContextualToolbar( { focusOnMount, isFixed, ...props } ) {\n\t// When the toolbar is fixed it can be collapsed\n\tconst [ isCollapsed, setIsCollapsed ] = useState( false );\n\tconst toolbarButtonRef = useRef();\n\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst {\n\t\tblockType,\n\t\tblockEditingMode,\n\t\thasParents,\n\t\tshowParentSelector,\n\t\tselectedBlockClientId,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockName,\n\t\t\tgetBlockParents,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tgetBlockEditingMode,\n\t\t} = select( blockEditorStore );\n\t\tconst { getBlockType } = select( blocksStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst _selectedBlockClientId = selectedBlockClientIds[ 0 ];\n\t\tconst parents = getBlockParents( _selectedBlockClientId );\n\t\tconst firstParentClientId = parents[ parents.length - 1 ];\n\t\tconst parentBlockName = getBlockName( firstParentClientId );\n\t\tconst parentBlockType = getBlockType( parentBlockName );\n\n\t\treturn {\n\t\t\tselectedBlockClientId: _selectedBlockClientId,\n\t\t\tblockType:\n\t\t\t\t_selectedBlockClientId &&\n\t\t\t\tgetBlockType( getBlockName( _selectedBlockClientId ) ),\n\t\t\tblockEditingMode: getBlockEditingMode( _selectedBlockClientId ),\n\t\t\thasParents: parents.length,\n\t\t\tshowParentSelector:\n\t\t\t\tparentBlockType &&\n\t\t\t\tgetBlockEditingMode( firstParentClientId ) === 'default' &&\n\t\t\t\thasBlockSupport(\n\t\t\t\t\tparentBlockType,\n\t\t\t\t\t'__experimentalParentSelector',\n\t\t\t\t\ttrue\n\t\t\t\t) &&\n\t\t\t\tselectedBlockClientIds.length <= 1 &&\n\t\t\t\tgetBlockEditingMode( _selectedBlockClientId ) === 'default',\n\t\t};\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tsetIsCollapsed( false );\n\t}, [ selectedBlockClientId ] );\n\n\tconst isLargerThanTabletViewport = useViewportMatch( 'large', '>=' );\n\tconst isFullscreen =\n\t\tdocument.body.classList.contains( 'is-fullscreen-mode' );\n\n\t/**\n\t * The following code is a workaround to fix the width of the toolbar\n\t * it should be removed when the toolbar will be rendered inline\n\t * FIXME: remove this layout effect when the toolbar is no longer\n\t * \t\t\t\tabsolutely positioned\n\t */\n\tuseLayoutEffect( () => {\n\t\t// don't do anything if not fixed toolbar\n\t\tif ( ! isFixed ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst blockToolbar = document.querySelector(\n\t\t\t'.block-editor-block-contextual-toolbar'\n\t\t);\n\n\t\tif ( ! blockToolbar ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! blockType ) {\n\t\t\tblockToolbar.style.width = 'initial';\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! isLargerThanTabletViewport ) {\n\t\t\t// set the width of the toolbar to auto\n\t\t\tblockToolbar.style = {};\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isCollapsed ) {\n\t\t\t// set the width of the toolbar to auto\n\t\t\tblockToolbar.style.width = 'auto';\n\t\t\treturn;\n\t\t}\n\n\t\t// get the width of the pinned items in the post editor or widget editor\n\t\tconst pinnedItems = document.querySelector(\n\t\t\t'.edit-post-header__settings, .edit-widgets-header__actions'\n\t\t);\n\t\t// get the width of the left header in the site editor\n\t\tconst leftHeader = document.querySelector(\n\t\t\t'.edit-site-header-edit-mode__end'\n\t\t);\n\n\t\tconst computedToolbarStyle = window.getComputedStyle( blockToolbar );\n\t\tconst computedPinnedItemsStyle = pinnedItems\n\t\t\t? window.getComputedStyle( pinnedItems )\n\t\t\t: false;\n\t\tconst computedLeftHeaderStyle = leftHeader\n\t\t\t? window.getComputedStyle( leftHeader )\n\t\t\t: false;\n\n\t\tconst marginLeft = parseFloat( computedToolbarStyle.marginLeft );\n\t\tconst pinnedItemsWidth = computedPinnedItemsStyle\n\t\t\t? parseFloat( computedPinnedItemsStyle.width )\n\t\t\t: 0;\n\t\tconst leftHeaderWidth = computedLeftHeaderStyle\n\t\t\t? parseFloat( computedLeftHeaderStyle.width )\n\t\t\t: 0;\n\n\t\t// set the new witdth of the toolbar\n\t\tblockToolbar.style.width = `calc(100% - ${\n\t\t\tleftHeaderWidth +\n\t\t\tpinnedItemsWidth +\n\t\t\tmarginLeft +\n\t\t\t( pinnedItems || leftHeader ? 2 : 0 ) + // Prevents button focus border from being cut off\n\t\t\t( isFullscreen ? 0 : 160 ) // the width of the admin sidebar expanded\n\t\t}px)`;\n\t}, [\n\t\tisFixed,\n\t\tisLargerThanTabletViewport,\n\t\tisCollapsed,\n\t\tisFullscreen,\n\t\tblockType,\n\t] );\n\n\tconst isToolbarEnabled =\n\t\t! blockType ||\n\t\thasBlockSupport( blockType, '__experimentalToolbar', true );\n\tconst hasAnyBlockControls = useHasAnyBlockControls();\n\tif (\n\t\t! isToolbarEnabled ||\n\t\t( blockEditingMode !== 'default' && ! hasAnyBlockControls )\n\t) {\n\t\treturn null;\n\t}\n\n\t// Shifts the toolbar to make room for the parent block selector.\n\tconst classes = classnames( 'block-editor-block-contextual-toolbar', {\n\t\t'has-parent': hasParents && showParentSelector,\n\t\t'is-fixed': isFixed,\n\t\t'is-collapsed': isCollapsed,\n\t} );\n\n\treturn (\n\t\t<NavigableToolbar\n\t\t\tfocusOnMount={ focusOnMount }\n\t\t\tclassName={ classes }\n\t\t\t/* translators: accessibility text for the block toolbar */\n\t\t\taria-label={ __( 'Block tools' ) }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ ! isCollapsed && <BlockToolbar hideDragHandle={ isFixed } /> }\n\t\t\t{ isFixed && isLargeViewport && blockType && (\n\t\t\t\t<ToolbarGroup\n\t\t\t\t\tclassName={\n\t\t\t\t\t\tisCollapsed\n\t\t\t\t\t\t\t? 'block-editor-block-toolbar__group-expand-fixed-toolbar'\n\t\t\t\t\t\t\t: 'block-editor-block-toolbar__group-collapse-fixed-toolbar'\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<ToolbarItem\n\t\t\t\t\t\tas={ ToolbarButton }\n\t\t\t\t\t\tref={ toolbarButtonRef }\n\t\t\t\t\t\ticon={ isCollapsed ? next : previous }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetIsCollapsed( ( collapsed ) => ! collapsed );\n\t\t\t\t\t\t\ttoolbarButtonRef.current.focus();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tisCollapsed\n\t\t\t\t\t\t\t\t? __( 'Show block tools' )\n\t\t\t\t\t\t\t\t: __( 'Hide block tools' )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</ToolbarGroup>\n\t\t\t) }\n\t\t</NavigableToolbar>\n\t);\n}\n\nexport default BlockContextualToolbar;\n"],"mappings":"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"}
@@ -142,7 +142,7 @@ function BlockSelectionButton({
142
142
  focusedBlockUid = (_getBlockRootClientId = getBlockRootClientId(selectedBlockClientId)) !== null && _getBlockRootClientId !== void 0 ? _getBlockRootClientId : selectedBlockClientId;
143
143
  } else if (navigateIn) {
144
144
  var _getClientIdsOfDescen;
145
- focusedBlockUid = (_getClientIdsOfDescen = getClientIdsOfDescendants([selectedBlockClientId])[0]) !== null && _getClientIdsOfDescen !== void 0 ? _getClientIdsOfDescen : selectedBlockClientId;
145
+ focusedBlockUid = (_getClientIdsOfDescen = getClientIdsOfDescendants(selectedBlockClientId)[0]) !== null && _getClientIdsOfDescen !== void 0 ? _getClientIdsOfDescen : selectedBlockClientId;
146
146
  }
147
147
  const startingBlockClientId = hasBlockMovingClientId();
148
148
  if (isEscape && startingBlockClientId && !event.defaultPrevented) {
@@ -161,6 +161,10 @@ function BlockSelectionButton({
161
161
  selectBlock(startingBlockClientId);
162
162
  setBlockMovingClientId(null);
163
163
  }
164
+ // Prevent the block from being moved into itself.
165
+ if (startingBlockClientId && selectedBlockClientId === startingBlockClientId && navigateIn) {
166
+ return;
167
+ }
164
168
  if (navigateDown || navigateUp || navigateOut || navigateIn) {
165
169
  if (focusedBlockUid) {
166
170
  event.preventDefault();