@wordpress/block-editor 12.19.5 → 12.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (443) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/block-canvas/index.js +2 -0
  3. package/build/components/block-canvas/index.js.map +1 -1
  4. package/build/components/block-heading-level-dropdown/index.js +14 -17
  5. package/build/components/block-heading-level-dropdown/index.js.map +1 -1
  6. package/build/components/block-inspector/index.js +0 -3
  7. package/build/components/block-inspector/index.js.map +1 -1
  8. package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
  9. package/build/components/block-list/block-list-item.native.js +1 -1
  10. package/build/components/block-list/block-list-item.native.js.map +1 -1
  11. package/build/components/block-list/block-outline.native.js +23 -7
  12. package/build/components/block-list/block-outline.native.js.map +1 -1
  13. package/build/components/block-list/block-selection-button.native.js.map +1 -1
  14. package/build/components/block-list/block.native.js +0 -3
  15. package/build/components/block-list/block.native.js.map +1 -1
  16. package/build/components/block-list/index.js +9 -9
  17. package/build/components/block-list/index.js.map +1 -1
  18. package/build/components/block-mover/index.native.js.map +1 -1
  19. package/build/components/block-popover/cover.js +68 -0
  20. package/build/components/block-popover/cover.js.map +1 -0
  21. package/build/components/block-popover/drop-zone.js +2 -3
  22. package/build/components/block-popover/drop-zone.js.map +1 -1
  23. package/build/components/block-popover/index.js +1 -19
  24. package/build/components/block-popover/index.js.map +1 -1
  25. package/build/components/block-preview/index.js +2 -1
  26. package/build/components/block-preview/index.js.map +1 -1
  27. package/build/components/block-removal-warning-modal/index.js +2 -4
  28. package/build/components/block-removal-warning-modal/index.js.map +1 -1
  29. package/build/components/block-rename/modal.js.map +1 -1
  30. package/build/components/block-settings-menu/block-parent-selector-menu-item.js +54 -0
  31. package/build/components/block-settings-menu/block-parent-selector-menu-item.js.map +1 -0
  32. package/build/components/block-settings-menu/block-settings-dropdown.js +9 -37
  33. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  34. package/build/components/block-switcher/block-transformations-menu.native.js.map +1 -1
  35. package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  36. package/build/components/block-toolbar/index.js +7 -5
  37. package/build/components/block-toolbar/index.js.map +1 -1
  38. package/build/components/block-toolbar/shuffle.js +89 -0
  39. package/build/components/block-toolbar/shuffle.js.map +1 -0
  40. package/build/components/block-toolbar/use-has-block-toolbar.js +43 -0
  41. package/build/components/block-toolbar/use-has-block-toolbar.js.map +1 -0
  42. package/build/components/block-tools/block-selection-button.js +5 -1
  43. package/build/components/block-tools/block-selection-button.js.map +1 -1
  44. package/build/components/block-tools/empty-block-inserter.js +2 -5
  45. package/build/components/block-tools/empty-block-inserter.js.map +1 -1
  46. package/build/components/block-tools/index.js +9 -26
  47. package/build/components/block-tools/index.js.map +1 -1
  48. package/build/components/block-tools/use-show-block-tools.js +60 -0
  49. package/build/components/block-tools/use-show-block-tools.js.map +1 -0
  50. package/build/components/caption/index.native.js.map +1 -1
  51. package/build/components/child-layout-control/index.js +37 -5
  52. package/build/components/child-layout-control/index.js.map +1 -1
  53. package/build/components/color-palette/control.js.map +1 -1
  54. package/build/components/colors-gradients/control.js +1 -1
  55. package/build/components/colors-gradients/control.js.map +1 -1
  56. package/build/components/date-format-picker/index.js +0 -1
  57. package/build/components/date-format-picker/index.js.map +1 -1
  58. package/build/components/font-appearance-control/index.js +1 -2
  59. package/build/components/font-appearance-control/index.js.map +1 -1
  60. package/build/components/global-styles/border-panel.js.map +1 -1
  61. package/build/components/global-styles/color-panel.js +1 -1
  62. package/build/components/global-styles/color-panel.js.map +1 -1
  63. package/build/components/global-styles/dimensions-panel.js +30 -19
  64. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  65. package/build/components/global-styles/image-settings-panel.js.map +1 -1
  66. package/build/components/global-styles/typography-utils.js +7 -5
  67. package/build/components/global-styles/typography-utils.js.map +1 -1
  68. package/build/components/global-styles/use-global-styles-output.js +15 -15
  69. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  70. package/build/components/global-styles/utils.js +1 -1
  71. package/build/components/global-styles/utils.js.map +1 -1
  72. package/build/components/grid-visualizer/grid-item-resizer.js +77 -0
  73. package/build/components/grid-visualizer/grid-item-resizer.js.map +1 -0
  74. package/build/components/grid-visualizer/grid-visualizer.js +81 -0
  75. package/build/components/grid-visualizer/grid-visualizer.js.map +1 -0
  76. package/build/components/grid-visualizer/index.js +20 -0
  77. package/build/components/grid-visualizer/index.js.map +1 -0
  78. package/build/components/grid-visualizer/utils.js +10 -0
  79. package/build/components/grid-visualizer/utils.js.map +1 -0
  80. package/build/components/iframe/index.js +61 -16
  81. package/build/components/iframe/index.js.map +1 -1
  82. package/build/components/index.native.js +7 -0
  83. package/build/components/index.native.js.map +1 -1
  84. package/build/components/inner-blocks/use-nested-settings-update.js +8 -2
  85. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  86. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  87. package/build/components/inserter/menu.js +9 -3
  88. package/build/components/inserter/menu.js.map +1 -1
  89. package/build/components/inserter/menu.native.js.map +1 -1
  90. package/build/components/inserter/mobile-tab-navigation.js +1 -1
  91. package/build/components/inserter/mobile-tab-navigation.js.map +1 -1
  92. package/build/components/inserter/search-results.js +3 -2
  93. package/build/components/inserter/search-results.js.map +1 -1
  94. package/build/components/inserter/tabs.js +2 -1
  95. package/build/components/inserter/tabs.js.map +1 -1
  96. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  97. package/build/components/inspector-controls-tabs/index.js +1 -1
  98. package/build/components/inspector-controls-tabs/index.js.map +1 -1
  99. package/build/components/inspector-controls-tabs/styles-tab.js +0 -4
  100. package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  101. package/build/components/link-control/search-input.js.map +1 -1
  102. package/build/components/list-view/branch.js.map +1 -1
  103. package/build/components/list-view/drop-indicator.js.map +1 -1
  104. package/build/components/list-view/index.js.map +1 -1
  105. package/build/components/observe-typing/index.js +5 -10
  106. package/build/components/observe-typing/index.js.map +1 -1
  107. package/build/components/panel-color-settings/index.js.map +1 -1
  108. package/build/components/provider/index.js.map +1 -1
  109. package/build/components/resizable-box-popover/index.js +3 -5
  110. package/build/components/resizable-box-popover/index.js.map +1 -1
  111. package/build/components/responsive-block-control/index.js +1 -1
  112. package/build/components/responsive-block-control/index.js.map +1 -1
  113. package/build/components/rich-text/format-toolbar-container.js +1 -31
  114. package/build/components/rich-text/format-toolbar-container.js.map +1 -1
  115. package/build/components/rich-text/index.js +1 -2
  116. package/build/components/rich-text/index.js.map +1 -1
  117. package/build/components/skip-to-selected-block/index.js +7 -14
  118. package/build/components/skip-to-selected-block/index.js.map +1 -1
  119. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +0 -1
  120. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  121. package/build/components/url-input/index.js +5 -8
  122. package/build/components/url-input/index.js.map +1 -1
  123. package/build/hooks/background.js.map +1 -1
  124. package/build/hooks/block-hooks.js.map +1 -1
  125. package/build/hooks/dimensions.js +3 -4
  126. package/build/hooks/dimensions.js.map +1 -1
  127. package/build/hooks/font-size.js +6 -7
  128. package/build/hooks/font-size.js.map +1 -1
  129. package/build/hooks/index.js +1 -1
  130. package/build/hooks/index.js.map +1 -1
  131. package/build/hooks/layout-child.js +89 -1
  132. package/build/hooks/layout-child.js.map +1 -1
  133. package/build/hooks/layout.js +11 -4
  134. package/build/hooks/layout.js.map +1 -1
  135. package/build/hooks/line-height.js.map +1 -1
  136. package/build/hooks/position.js +0 -1
  137. package/build/hooks/position.js.map +1 -1
  138. package/build/hooks/spacing-visualizer.js +115 -0
  139. package/build/hooks/spacing-visualizer.js.map +1 -0
  140. package/build/hooks/use-typography-props.js +1 -2
  141. package/build/hooks/use-typography-props.js.map +1 -1
  142. package/build/layouts/grid.js +111 -14
  143. package/build/layouts/grid.js.map +1 -1
  144. package/build/private-apis.js +2 -2
  145. package/build/private-apis.js.map +1 -1
  146. package/build/store/actions.js +4 -36
  147. package/build/store/actions.js.map +1 -1
  148. package/build/store/private-actions.js +29 -45
  149. package/build/store/private-actions.js.map +1 -1
  150. package/build/store/reducer.js +2 -4
  151. package/build/store/reducer.js.map +1 -1
  152. package/build/store/selectors.js +27 -15
  153. package/build/store/selectors.js.map +1 -1
  154. package/build/utils/calculate-scale.js +17 -0
  155. package/build/utils/calculate-scale.js.map +1 -0
  156. package/build-module/components/block-canvas/index.js +2 -0
  157. package/build-module/components/block-canvas/index.js.map +1 -1
  158. package/build-module/components/block-heading-level-dropdown/index.js +14 -17
  159. package/build-module/components/block-heading-level-dropdown/index.js.map +1 -1
  160. package/build-module/components/block-inspector/index.js +1 -4
  161. package/build-module/components/block-inspector/index.js.map +1 -1
  162. package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
  163. package/build-module/components/block-list/block-list-item.native.js +1 -1
  164. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  165. package/build-module/components/block-list/block-outline.native.js +23 -7
  166. package/build-module/components/block-list/block-outline.native.js.map +1 -1
  167. package/build-module/components/block-list/block-selection-button.native.js.map +1 -1
  168. package/build-module/components/block-list/block.native.js +0 -3
  169. package/build-module/components/block-list/block.native.js.map +1 -1
  170. package/build-module/components/block-list/index.js +9 -9
  171. package/build-module/components/block-list/index.js.map +1 -1
  172. package/build-module/components/block-mover/index.native.js.map +1 -1
  173. package/build-module/components/block-popover/cover.js +60 -0
  174. package/build-module/components/block-popover/cover.js.map +1 -0
  175. package/build-module/components/block-popover/drop-zone.js +2 -3
  176. package/build-module/components/block-popover/drop-zone.js.map +1 -1
  177. package/build-module/components/block-popover/index.js +1 -19
  178. package/build-module/components/block-popover/index.js.map +1 -1
  179. package/build-module/components/block-preview/index.js +2 -1
  180. package/build-module/components/block-preview/index.js.map +1 -1
  181. package/build-module/components/block-removal-warning-modal/index.js +3 -5
  182. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  183. package/build-module/components/block-rename/modal.js.map +1 -1
  184. package/build-module/components/block-settings-menu/block-parent-selector-menu-item.js +46 -0
  185. package/build-module/components/block-settings-menu/block-parent-selector-menu-item.js.map +1 -0
  186. package/build-module/components/block-settings-menu/block-settings-dropdown.js +12 -40
  187. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  188. package/build-module/components/block-switcher/block-transformations-menu.native.js.map +1 -1
  189. package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
  190. package/build-module/components/block-toolbar/index.js +7 -6
  191. package/build-module/components/block-toolbar/index.js.map +1 -1
  192. package/build-module/components/block-toolbar/shuffle.js +82 -0
  193. package/build-module/components/block-toolbar/shuffle.js.map +1 -0
  194. package/build-module/components/block-toolbar/use-has-block-toolbar.js +36 -0
  195. package/build-module/components/block-toolbar/use-has-block-toolbar.js.map +1 -0
  196. package/build-module/components/block-tools/block-selection-button.js +5 -1
  197. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  198. package/build-module/components/block-tools/empty-block-inserter.js +2 -5
  199. package/build-module/components/block-tools/empty-block-inserter.js.map +1 -1
  200. package/build-module/components/block-tools/index.js +9 -26
  201. package/build-module/components/block-tools/index.js.map +1 -1
  202. package/build-module/components/block-tools/use-show-block-tools.js +54 -0
  203. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -0
  204. package/build-module/components/caption/index.native.js.map +1 -1
  205. package/build-module/components/child-layout-control/index.js +38 -6
  206. package/build-module/components/child-layout-control/index.js.map +1 -1
  207. package/build-module/components/color-palette/control.js.map +1 -1
  208. package/build-module/components/colors-gradients/control.js +1 -1
  209. package/build-module/components/colors-gradients/control.js.map +1 -1
  210. package/build-module/components/date-format-picker/index.js +0 -1
  211. package/build-module/components/date-format-picker/index.js.map +1 -1
  212. package/build-module/components/font-appearance-control/index.js +1 -2
  213. package/build-module/components/font-appearance-control/index.js.map +1 -1
  214. package/build-module/components/global-styles/border-panel.js.map +1 -1
  215. package/build-module/components/global-styles/color-panel.js +1 -1
  216. package/build-module/components/global-styles/color-panel.js.map +1 -1
  217. package/build-module/components/global-styles/dimensions-panel.js +30 -19
  218. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  219. package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
  220. package/build-module/components/global-styles/typography-utils.js +7 -5
  221. package/build-module/components/global-styles/typography-utils.js.map +1 -1
  222. package/build-module/components/global-styles/use-global-styles-output.js +16 -16
  223. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  224. package/build-module/components/global-styles/utils.js +2 -2
  225. package/build-module/components/global-styles/utils.js.map +1 -1
  226. package/build-module/components/grid-visualizer/grid-item-resizer.js +69 -0
  227. package/build-module/components/grid-visualizer/grid-item-resizer.js.map +1 -0
  228. package/build-module/components/grid-visualizer/grid-visualizer.js +73 -0
  229. package/build-module/components/grid-visualizer/grid-visualizer.js.map +1 -0
  230. package/build-module/components/grid-visualizer/index.js +3 -0
  231. package/build-module/components/grid-visualizer/index.js.map +1 -0
  232. package/build-module/components/grid-visualizer/utils.js +4 -0
  233. package/build-module/components/grid-visualizer/utils.js.map +1 -0
  234. package/build-module/components/iframe/index.js +61 -16
  235. package/build-module/components/iframe/index.js.map +1 -1
  236. package/build-module/components/index.native.js +1 -1
  237. package/build-module/components/index.native.js.map +1 -1
  238. package/build-module/components/inner-blocks/use-nested-settings-update.js +8 -2
  239. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  240. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  241. package/build-module/components/inserter/menu.js +9 -3
  242. package/build-module/components/inserter/menu.js.map +1 -1
  243. package/build-module/components/inserter/menu.native.js.map +1 -1
  244. package/build-module/components/inserter/mobile-tab-navigation.js +1 -1
  245. package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -1
  246. package/build-module/components/inserter/search-results.js +3 -2
  247. package/build-module/components/inserter/search-results.js.map +1 -1
  248. package/build-module/components/inserter/tabs.js +2 -1
  249. package/build-module/components/inserter/tabs.js.map +1 -1
  250. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  251. package/build-module/components/inspector-controls-tabs/index.js +1 -1
  252. package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
  253. package/build-module/components/inspector-controls-tabs/styles-tab.js +0 -4
  254. package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
  255. package/build-module/components/link-control/search-input.js.map +1 -1
  256. package/build-module/components/list-view/branch.js.map +1 -1
  257. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  258. package/build-module/components/list-view/index.js.map +1 -1
  259. package/build-module/components/observe-typing/index.js +5 -10
  260. package/build-module/components/observe-typing/index.js.map +1 -1
  261. package/build-module/components/panel-color-settings/index.js.map +1 -1
  262. package/build-module/components/provider/index.js.map +1 -1
  263. package/build-module/components/resizable-box-popover/index.js +3 -5
  264. package/build-module/components/resizable-box-popover/index.js.map +1 -1
  265. package/build-module/components/responsive-block-control/index.js +1 -1
  266. package/build-module/components/responsive-block-control/index.js.map +1 -1
  267. package/build-module/components/rich-text/format-toolbar-container.js +1 -31
  268. package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
  269. package/build-module/components/rich-text/index.js +1 -2
  270. package/build-module/components/rich-text/index.js.map +1 -1
  271. package/build-module/components/skip-to-selected-block/index.js +8 -14
  272. package/build-module/components/skip-to-selected-block/index.js.map +1 -1
  273. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +0 -1
  274. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  275. package/build-module/components/url-input/index.js +5 -8
  276. package/build-module/components/url-input/index.js.map +1 -1
  277. package/build-module/hooks/background.js.map +1 -1
  278. package/build-module/hooks/block-hooks.js.map +1 -1
  279. package/build-module/hooks/dimensions.js +1 -2
  280. package/build-module/hooks/dimensions.js.map +1 -1
  281. package/build-module/hooks/font-size.js +7 -8
  282. package/build-module/hooks/font-size.js.map +1 -1
  283. package/build-module/hooks/index.js +1 -1
  284. package/build-module/hooks/index.js.map +1 -1
  285. package/build-module/hooks/layout-child.js +89 -1
  286. package/build-module/hooks/layout-child.js.map +1 -1
  287. package/build-module/hooks/layout.js +11 -4
  288. package/build-module/hooks/layout.js.map +1 -1
  289. package/build-module/hooks/line-height.js.map +1 -1
  290. package/build-module/hooks/position.js +0 -1
  291. package/build-module/hooks/position.js.map +1 -1
  292. package/build-module/hooks/spacing-visualizer.js +106 -0
  293. package/build-module/hooks/spacing-visualizer.js.map +1 -0
  294. package/build-module/hooks/use-typography-props.js +2 -3
  295. package/build-module/hooks/use-typography-props.js.map +1 -1
  296. package/build-module/layouts/grid.js +113 -16
  297. package/build-module/layouts/grid.js.map +1 -1
  298. package/build-module/private-apis.js +2 -2
  299. package/build-module/private-apis.js.map +1 -1
  300. package/build-module/store/actions.js +4 -36
  301. package/build-module/store/actions.js.map +1 -1
  302. package/build-module/store/private-actions.js +29 -45
  303. package/build-module/store/private-actions.js.map +1 -1
  304. package/build-module/store/reducer.js +2 -4
  305. package/build-module/store/reducer.js.map +1 -1
  306. package/build-module/store/selectors.js +23 -13
  307. package/build-module/store/selectors.js.map +1 -1
  308. package/build-module/utils/calculate-scale.js +11 -0
  309. package/build-module/utils/calculate-scale.js.map +1 -0
  310. package/build-style/content-rtl.css +7 -2
  311. package/build-style/content.css +7 -2
  312. package/build-style/style-rtl.css +55 -25
  313. package/build-style/style.css +55 -25
  314. package/package.json +31 -32
  315. package/src/components/block-canvas/index.js +2 -0
  316. package/src/components/block-draggable/test/index.native.js +2 -2
  317. package/src/components/block-heading-level-dropdown/index.js +17 -25
  318. package/src/components/block-inspector/index.js +0 -11
  319. package/src/components/block-list/block-invalid-warning.native.js +1 -1
  320. package/src/components/block-list/block-list-item.native.js +1 -1
  321. package/src/components/block-list/block-outline.native.js +36 -21
  322. package/src/components/block-list/block-selection-button.native.js +1 -3
  323. package/src/components/block-list/block.native.js +0 -3
  324. package/src/components/block-list/content.scss +5 -1
  325. package/src/components/block-list/index.js +55 -55
  326. package/src/components/block-list/test/block-outline.native.js +255 -0
  327. package/src/components/block-mover/index.native.js +1 -1
  328. package/src/components/block-popover/cover.js +63 -0
  329. package/src/components/block-popover/drop-zone.js +3 -4
  330. package/src/components/block-popover/index.js +1 -28
  331. package/src/components/block-preview/index.js +3 -1
  332. package/src/components/block-removal-warning-modal/index.js +5 -19
  333. package/src/components/block-rename/modal.js +1 -1
  334. package/src/components/block-settings-menu/block-parent-selector-menu-item.js +50 -0
  335. package/src/components/block-settings-menu/block-settings-dropdown.js +9 -50
  336. package/src/components/block-styles/style.scss +0 -4
  337. package/src/components/block-switcher/block-transformations-menu.native.js +1 -1
  338. package/src/components/block-toolbar/block-toolbar-menu.native.js +2 -2
  339. package/src/components/block-toolbar/index.js +5 -11
  340. package/src/components/block-toolbar/shuffle.js +93 -0
  341. package/src/components/block-toolbar/use-has-block-toolbar.js +49 -0
  342. package/src/components/block-tools/block-selection-button.js +4 -0
  343. package/src/components/block-tools/empty-block-inserter.js +3 -6
  344. package/src/components/block-tools/index.js +13 -36
  345. package/src/components/block-tools/use-show-block-tools.js +73 -0
  346. package/src/components/caption/index.native.js +1 -1
  347. package/src/components/child-layout-control/index.js +85 -44
  348. package/src/components/color-palette/control.js +1 -1
  349. package/src/components/colors-gradients/control.js +1 -1
  350. package/src/components/colors-gradients/test/control.js +2 -2
  351. package/src/components/contrast-checker/test/index.js +10 -10
  352. package/src/components/date-format-picker/index.js +0 -1
  353. package/src/components/default-block-appender/content.scss +5 -2
  354. package/src/components/font-appearance-control/index.js +0 -1
  355. package/src/components/global-styles/border-panel.js +2 -2
  356. package/src/components/global-styles/color-panel.js +1 -1
  357. package/src/components/global-styles/dimensions-panel.js +36 -24
  358. package/src/components/global-styles/image-settings-panel.js +1 -1
  359. package/src/components/global-styles/test/typography-utils.js +231 -81
  360. package/src/components/global-styles/test/use-global-styles-output.js +3 -2
  361. package/src/components/global-styles/typography-utils.js +10 -7
  362. package/src/components/global-styles/use-global-styles-output.js +14 -16
  363. package/src/components/global-styles/utils.js +2 -8
  364. package/src/components/grid-visualizer/grid-item-resizer.js +100 -0
  365. package/src/components/grid-visualizer/grid-visualizer.js +81 -0
  366. package/src/components/grid-visualizer/index.js +2 -0
  367. package/src/components/grid-visualizer/style.scss +33 -0
  368. package/src/components/grid-visualizer/utils.js +5 -0
  369. package/src/components/iframe/index.js +78 -31
  370. package/src/components/index.native.js +1 -0
  371. package/src/components/inner-blocks/use-nested-settings-update.js +12 -2
  372. package/src/components/inserter/media-tab/media-preview.js +1 -1
  373. package/src/components/inserter/menu.js +10 -4
  374. package/src/components/inserter/menu.native.js +3 -3
  375. package/src/components/inserter/mobile-tab-navigation.js +1 -1
  376. package/src/components/inserter/search-results.js +2 -1
  377. package/src/components/inserter/style.scss +10 -0
  378. package/src/components/inserter/tabs.js +2 -1
  379. package/src/components/inspector-controls/block-support-tools-panel.js +2 -2
  380. package/src/components/inspector-controls-tabs/index.js +1 -1
  381. package/src/components/inspector-controls-tabs/styles-tab.js +0 -7
  382. package/src/components/line-height-control/test/index.js +1 -1
  383. package/src/components/link-control/search-input.js +1 -1
  384. package/src/components/list-view/branch.js +1 -1
  385. package/src/components/list-view/drop-indicator.js +1 -1
  386. package/src/components/list-view/index.js +1 -1
  387. package/src/components/observe-typing/index.js +7 -10
  388. package/src/components/panel-color-settings/index.js +1 -1
  389. package/src/components/panel-color-settings/test/index.js +3 -3
  390. package/src/components/provider/index.js +1 -4
  391. package/src/components/resizable-box-popover/index.js +4 -6
  392. package/src/components/responsive-block-control/README.md +4 -4
  393. package/src/components/responsive-block-control/index.js +1 -1
  394. package/src/components/responsive-block-control/test/index.js +5 -5
  395. package/src/components/rich-text/format-toolbar-container.js +1 -48
  396. package/src/components/rich-text/index.js +1 -2
  397. package/src/components/skip-to-selected-block/index.js +10 -13
  398. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -5
  399. package/src/components/url-input/index.js +6 -15
  400. package/src/hooks/anchor.scss +1 -1
  401. package/src/hooks/background.js +1 -1
  402. package/src/hooks/block-hooks.js +1 -1
  403. package/src/hooks/dimensions.js +1 -2
  404. package/src/hooks/font-size.js +7 -12
  405. package/src/hooks/index.js +1 -0
  406. package/src/hooks/layout-child.js +91 -1
  407. package/src/hooks/layout.js +12 -1
  408. package/src/hooks/line-height.js +1 -1
  409. package/src/hooks/position.js +0 -1
  410. package/src/hooks/spacing-visualizer.js +126 -0
  411. package/src/hooks/{padding.scss → spacing.scss} +1 -1
  412. package/src/hooks/use-typography-props.js +2 -8
  413. package/src/layouts/grid.js +137 -53
  414. package/src/layouts/test/grid.js +16 -2
  415. package/src/private-apis.js +2 -2
  416. package/src/store/actions.js +4 -42
  417. package/src/store/private-actions.js +34 -69
  418. package/src/store/reducer.js +2 -8
  419. package/src/store/selectors.js +41 -46
  420. package/src/store/test/actions.js +0 -105
  421. package/src/style.scss +2 -2
  422. package/src/utils/calculate-scale.js +20 -0
  423. package/build/components/default-style-picker/index.js +0 -70
  424. package/build/components/default-style-picker/index.js.map +0 -1
  425. package/build/hooks/margin.js +0 -86
  426. package/build/hooks/margin.js.map +0 -1
  427. package/build/hooks/padding.js +0 -78
  428. package/build/hooks/padding.js.map +0 -1
  429. package/build/utils/use-can-block-toolbar-be-focused.js +0 -46
  430. package/build/utils/use-can-block-toolbar-be-focused.js.map +0 -1
  431. package/build-module/components/default-style-picker/index.js +0 -63
  432. package/build-module/components/default-style-picker/index.js.map +0 -1
  433. package/build-module/hooks/margin.js +0 -78
  434. package/build-module/hooks/margin.js.map +0 -1
  435. package/build-module/hooks/padding.js +0 -70
  436. package/build-module/hooks/padding.js.map +0 -1
  437. package/build-module/utils/use-can-block-toolbar-be-focused.js +0 -40
  438. package/build-module/utils/use-can-block-toolbar-be-focused.js.map +0 -1
  439. package/src/components/block-settings-menu/style.scss +0 -3
  440. package/src/components/default-style-picker/index.js +0 -70
  441. package/src/hooks/margin.js +0 -91
  442. package/src/hooks/padding.js +0 -82
  443. package/src/utils/use-can-block-toolbar-be-focused.js +0 -48
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_components","_blocks","_i18n","_data","_compose","_icons","_element","_notices","_reusableBlocks","_coreData","_moverDescription","_store","_blockTransformationsMenu","_interopRequireDefault","_convertToGroupButtons","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","useState","getClipboard","blockActionsMenuPickerRef","useRef","blockTransformationMenuPickerRef","moversOptions","keys","clipboardBlock","rawHandler","HTML","isPasteEnabled","name","innerBlockCount","useSelect","select","blockEditorStore","getBlockCount","actionTitle","backward","backwardButtonTitle","forward","forwardButtonTitle","getMoversSetup","convertToGroupButtonProps","useConvertToGroupButtonProps","isGroupable","isUngroupable","showConvertToGroupButton","convertToGroupButtons","useConvertToGroupButtons","allOptions","settings","id","label","__","value","onSelect","backwardButton","disabled","forwardButton","delete","separated","transformButton","current","presentPicker","copyButton","serializedBlock","serialize","setClipboard","cutButton","pasteButton","onPasteBlock","duplicateButton","successNotice","sprintf","title","raw","options","length","group","ungroup","filter","Boolean","_react","createElement","ToolbarGroup","ToolbarButton","icon","moreHorizontalMobile","onPickerSelect","selectedItem","find","item","onPickerPresent","disabledButtonIndices","map","option","index","accessibilityHint","Platform","OS","getAnchor","findNodeHandle","undefined","onClick","extraProps","hint","Picker","testID","ref","onChange","destructiveButtonIndex","hideCancelButton","leftAlign","default","pickerRef","possibleTransformations","selectedBlock","EMPTY_BLOCK_LIST","_default","exports","compose","withSelect","clientId","getBlockIndex","getBlockRootClientId","getBlockOrder","getBlockName","getBlockTransformItems","getBlock","getSelectedBlockClientIds","getTemplateLock","block","blockName","blockType","getBlockType","blockOrder","currentBlockIndex","innerBlocks","every","innerBlock","hasBlockSupport","isDefaultBlock","getDefaultBlockName","isEmptyContent","attributes","content","isExactlyOneBlock","isReusableBlock","coreStore","getEntityRecord","currentIndex","withDispatch","dispatch","moveBlocksDown","moveBlocksUp","duplicateBlocks","insertBlock","replaceBlock","clearSelectedBlock","getBlockSelectionEnd","noticesStore","__experimentalConvertBlockToStatic","convertBlockToStatic","reusableBlocksStore","setImmediate","args","canReplaceBlock","isUnmodifiedDefaultBlock","insertedBlock","createBlock","withInstanceId"],"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: __( 'Detach' ),\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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"}
1
+ {"version":3,"names":["_reactNative","require","_components","_blocks","_i18n","_data","_compose","_icons","_element","_notices","_reusableBlocks","_coreData","_moverDescription","_store","_blockTransformationsMenu","_interopRequireDefault","_convertToGroupButtons","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","useState","getClipboard","blockActionsMenuPickerRef","useRef","blockTransformationMenuPickerRef","moversOptions","keys","clipboardBlock","rawHandler","HTML","isPasteEnabled","name","innerBlockCount","useSelect","select","blockEditorStore","getBlockCount","actionTitle","backward","backwardButtonTitle","forward","forwardButtonTitle","getMoversSetup","convertToGroupButtonProps","useConvertToGroupButtonProps","isGroupable","isUngroupable","showConvertToGroupButton","convertToGroupButtons","useConvertToGroupButtons","allOptions","settings","id","label","__","value","onSelect","backwardButton","disabled","forwardButton","delete","separated","transformButton","current","presentPicker","copyButton","serializedBlock","serialize","setClipboard","cutButton","pasteButton","onPasteBlock","duplicateButton","successNotice","sprintf","title","raw","options","length","group","ungroup","filter","Boolean","_react","createElement","ToolbarGroup","ToolbarButton","icon","moreHorizontalMobile","onPickerSelect","selectedItem","find","item","onPickerPresent","disabledButtonIndices","map","option","index","accessibilityHint","Platform","OS","getAnchor","findNodeHandle","undefined","onClick","extraProps","hint","Picker","testID","ref","onChange","destructiveButtonIndex","hideCancelButton","leftAlign","default","pickerRef","possibleTransformations","selectedBlock","EMPTY_BLOCK_LIST","_default","exports","compose","withSelect","clientId","getBlockIndex","getBlockRootClientId","getBlockOrder","getBlockName","getBlockTransformItems","getBlock","getSelectedBlockClientIds","getTemplateLock","block","blockName","blockType","getBlockType","blockOrder","currentBlockIndex","innerBlocks","every","innerBlock","hasBlockSupport","isDefaultBlock","getDefaultBlockName","isEmptyContent","attributes","content","isExactlyOneBlock","isReusableBlock","coreStore","getEntityRecord","currentIndex","withDispatch","dispatch","moveBlocksDown","moveBlocksUp","duplicateBlocks","insertBlock","replaceBlock","clearSelectedBlock","getBlockSelectionEnd","noticesStore","__experimentalConvertBlockToStatic","convertBlockToStatic","reusableBlocksStore","setImmediate","args","canReplaceBlock","isUnmodifiedDefaultBlock","insertedBlock","createBlock","withInstanceId"],"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: __( 'Detach' ),\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\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\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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"}
@@ -27,8 +27,9 @@ var _utils = require("./utils");
27
27
  var _store = require("../../store");
28
28
  var _blockNameContext = _interopRequireDefault(require("./block-name-context"));
29
29
  var _navigableToolbar = _interopRequireDefault(require("../navigable-toolbar"));
30
- var _useHasBlockControls = require("../block-controls/use-has-block-controls");
30
+ var _shuffle = _interopRequireDefault(require("./shuffle"));
31
31
  var _blockBindingsToolbarIndicator = _interopRequireDefault(require("../block-bindings-toolbar-indicator"));
32
+ var _useHasBlockToolbar = require("./use-has-block-toolbar");
32
33
  var _useBindingsAttributes = require("../../hooks/use-bindings-attributes");
33
34
  /**
34
35
  * External dependencies
@@ -114,9 +115,8 @@ function PrivateBlockToolbar({
114
115
  ref: nodeRef
115
116
  });
116
117
  const isLargeViewport = !(0, _compose.useViewportMatch)('medium', '<');
117
- const isToolbarEnabled = blockType && (0, _blocks.hasBlockSupport)(blockType, '__experimentalToolbar', true);
118
- const hasAnyBlockControls = (0, _useHasBlockControls.useHasAnyBlockControls)();
119
- if (!isToolbarEnabled || !isDefaultEditingMode && !hasAnyBlockControls) {
118
+ const hasBlockToolbar = (0, _useHasBlockToolbar.useHasBlockToolbar)();
119
+ if (!hasBlockToolbar) {
120
120
  return null;
121
121
  }
122
122
  const isMultiToolbar = blockClientIds.length > 1;
@@ -159,7 +159,9 @@ function PrivateBlockToolbar({
159
159
  }), (0, _react.createElement)(_blockMover.default, {
160
160
  clientIds: blockClientIds,
161
161
  hideDragHandle: hideDragHandle
162
- }))), shouldShowVisualToolbar && isMultiToolbar && (0, _react.createElement)(_convertToGroupButtons.BlockGroupToolbar, null), shouldShowVisualToolbar && (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_blockControls.default.Slot, {
162
+ }))), (0, _react.createElement)(_shuffle.default, {
163
+ clientId: blockClientId
164
+ }), shouldShowVisualToolbar && isMultiToolbar && (0, _react.createElement)(_convertToGroupButtons.BlockGroupToolbar, null), shouldShowVisualToolbar && (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_blockControls.default.Slot, {
163
165
  group: "parent",
164
166
  className: "block-editor-block-toolbar__slot"
165
167
  }), (0, _react.createElement)(_blockControls.default.Slot, {
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_i18n","_data","_element","_compose","_blocks","_components","_blockMover","_blockParentSelector","_blockSwitcher","_blockControls","_blockToolbarLastItem","_blockSettingsMenu","_blockLock","_convertToGroupButtons","_blockEditVisuallyButton","_utils","_store","_blockNameContext","_navigableToolbar","_useHasBlockControls","_blockBindingsToolbarIndicator","_useBindingsAttributes","PrivateBlockToolbar","hideDragHandle","focusOnMount","__experimentalInitialIndex","__experimentalOnIndexChange","variant","blockClientId","blockClientIds","isDefaultEditingMode","blockType","blockName","shouldShowVisualToolbar","showParentSelector","isUsingBindings","useSelect","select","getBlockName","getBlockMode","getBlockParents","getSelectedBlockClientIds","isBlockValid","getBlockRootClientId","getBlockEditingMode","getBlockAttributes","blockEditorStore","selectedBlockClientIds","selectedBlockClientId","blockRootClientId","parents","firstParentClientId","length","parentBlockName","parentBlockType","getBlockType","_isDefaultEditingMode","_blockName","isValid","every","id","isVisual","_isUsingBindings","metadata","bindings","rootClientId","hasBlockSupport","toolbarWrapperRef","useRef","nodeRef","showHoveredOrFocusedGestures","useShowHoveredOrFocusedGestures","ref","isLargeViewport","useViewportMatch","isToolbarEnabled","hasAnyBlockControls","useHasAnyBlockControls","isMultiToolbar","isSynced","isReusableBlock","isTemplatePart","classes","classnames","innerClasses","_react","createElement","default","focusEditorOnEscape","className","__","undefined","key","canBindBlock","ToolbarGroup","clientIds","BlockLockToolbar","clientId","BlockGroupToolbar","Fragment","Slot","group","Provider","value","name","BlockToolbar"],"sources":["@wordpress/block-editor/src/components/block-toolbar/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { useRef } from '@wordpress/element';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tgetBlockType,\n\thasBlockSupport,\n\tisReusableBlock,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { ToolbarGroup } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockMover from '../block-mover';\nimport BlockParentSelector from '../block-parent-selector';\nimport BlockSwitcher from '../block-switcher';\nimport BlockControls from '../block-controls';\nimport __unstableBlockToolbarLastItem from './block-toolbar-last-item';\nimport BlockSettingsMenu from '../block-settings-menu';\nimport { BlockLockToolbar } from '../block-lock';\nimport { BlockGroupToolbar } from '../convert-to-group-buttons';\nimport BlockEditVisuallyButton from '../block-edit-visually-button';\nimport { useShowHoveredOrFocusedGestures } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport __unstableBlockNameContext from './block-name-context';\nimport NavigableToolbar from '../navigable-toolbar';\nimport { useHasAnyBlockControls } from '../block-controls/use-has-block-controls';\nimport BlockBindingsIndicator from '../block-bindings-toolbar-indicator';\nimport { canBindBlock } from '../../hooks/use-bindings-attributes';\n\n/**\n * Renders the block toolbar.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-toolbar/README.md\n *\n * @param {Object} props Components props.\n * @param {boolean} props.hideDragHandle Show or hide the Drag Handle for drag and drop functionality.\n * @param {boolean} props.focusOnMount Focus the toolbar when mounted.\n * @param {number} props.__experimentalInitialIndex The initial index of the toolbar item to focus.\n * @param {Function} props.__experimentalOnIndexChange Callback function to be called when the index of the focused toolbar item changes.\n * @param {string} props.variant Style variant of the toolbar, also passed to the Dropdowns rendered from Block Toolbar Buttons.\n */\nexport function PrivateBlockToolbar( {\n\thideDragHandle,\n\tfocusOnMount,\n\t__experimentalInitialIndex,\n\t__experimentalOnIndexChange,\n\tvariant = 'unstyled',\n} ) {\n\tconst {\n\t\tblockClientId,\n\t\tblockClientIds,\n\t\tisDefaultEditingMode,\n\t\tblockType,\n\t\tblockName,\n\t\tshouldShowVisualToolbar,\n\t\tshowParentSelector,\n\t\tisUsingBindings,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockName,\n\t\t\tgetBlockMode,\n\t\t\tgetBlockParents,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tisBlockValid,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockEditingMode,\n\t\t\tgetBlockAttributes,\n\t\t} = select( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst selectedBlockClientId = selectedBlockClientIds[ 0 ];\n\t\tconst blockRootClientId = getBlockRootClientId( selectedBlockClientId );\n\t\tconst parents = getBlockParents( selectedBlockClientId );\n\t\tconst firstParentClientId = parents[ parents.length - 1 ];\n\t\tconst parentBlockName = getBlockName( firstParentClientId );\n\t\tconst parentBlockType = getBlockType( parentBlockName );\n\t\tconst _isDefaultEditingMode =\n\t\t\tgetBlockEditingMode( selectedBlockClientId ) === 'default';\n\t\tconst _blockName = getBlockName( selectedBlockClientId );\n\t\tconst isValid = selectedBlockClientIds.every( ( id ) =>\n\t\t\tisBlockValid( id )\n\t\t);\n\t\tconst isVisual = selectedBlockClientIds.every(\n\t\t\t( id ) => getBlockMode( id ) === 'visual'\n\t\t);\n\t\tconst _isUsingBindings = !! getBlockAttributes( selectedBlockClientId )\n\t\t\t?.metadata?.bindings;\n\t\treturn {\n\t\t\tblockClientId: selectedBlockClientId,\n\t\t\tblockClientIds: selectedBlockClientIds,\n\t\t\tisDefaultEditingMode: _isDefaultEditingMode,\n\t\t\tblockName: _blockName,\n\t\t\tblockType: selectedBlockClientId && getBlockType( _blockName ),\n\t\t\tshouldShowVisualToolbar: isValid && isVisual,\n\t\t\trootClientId: blockRootClientId,\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\t_isDefaultEditingMode,\n\t\t\tisUsingBindings: _isUsingBindings,\n\t\t};\n\t}, [] );\n\n\tconst toolbarWrapperRef = useRef( null );\n\n\t// Handles highlighting the current block outline on hover or focus of the\n\t// block type toolbar area.\n\tconst nodeRef = useRef();\n\tconst showHoveredOrFocusedGestures = useShowHoveredOrFocusedGestures( {\n\t\tref: nodeRef,\n\t} );\n\n\tconst isLargeViewport = ! useViewportMatch( 'medium', '<' );\n\n\tconst isToolbarEnabled =\n\t\tblockType &&\n\t\thasBlockSupport( blockType, '__experimentalToolbar', true );\n\tconst hasAnyBlockControls = useHasAnyBlockControls();\n\n\tif (\n\t\t! isToolbarEnabled ||\n\t\t( ! isDefaultEditingMode && ! hasAnyBlockControls )\n\t) {\n\t\treturn null;\n\t}\n\n\tconst isMultiToolbar = blockClientIds.length > 1;\n\tconst isSynced =\n\t\tisReusableBlock( blockType ) || isTemplatePart( blockType );\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': showParentSelector,\n\t} );\n\n\tconst innerClasses = classnames( 'block-editor-block-toolbar', {\n\t\t'is-synced': isSynced,\n\t} );\n\n\treturn (\n\t\t<NavigableToolbar\n\t\t\tfocusEditorOnEscape\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// The variant is applied as \"toolbar\" when undefined, which is the black border style of the dropdown from the toolbar popover.\n\t\t\tvariant={ variant === 'toolbar' ? undefined : variant }\n\t\t\tfocusOnMount={ focusOnMount }\n\t\t\t__experimentalInitialIndex={ __experimentalInitialIndex }\n\t\t\t__experimentalOnIndexChange={ __experimentalOnIndexChange }\n\t\t\t// Resets the index whenever the active block changes so\n\t\t\t// this is not persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169\n\t\t\tkey={ blockClientId }\n\t\t>\n\t\t\t<div ref={ toolbarWrapperRef } className={ innerClasses }>\n\t\t\t\t{ ! isMultiToolbar &&\n\t\t\t\t\tisLargeViewport &&\n\t\t\t\t\tisDefaultEditingMode && <BlockParentSelector /> }\n\t\t\t\t{ isUsingBindings && canBindBlock( blockName ) && (\n\t\t\t\t\t<BlockBindingsIndicator />\n\t\t\t\t) }\n\t\t\t\t{ ( shouldShowVisualToolbar || isMultiToolbar ) &&\n\t\t\t\t\tisDefaultEditingMode && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tref={ nodeRef }\n\t\t\t\t\t\t\t{ ...showHoveredOrFocusedGestures }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToolbarGroup className=\"block-editor-block-toolbar__block-controls\">\n\t\t\t\t\t\t\t\t<BlockSwitcher clientIds={ blockClientIds } />\n\t\t\t\t\t\t\t\t{ ! isMultiToolbar && (\n\t\t\t\t\t\t\t\t\t<BlockLockToolbar\n\t\t\t\t\t\t\t\t\t\tclientId={ blockClientId }\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<BlockMover\n\t\t\t\t\t\t\t\t\tclientIds={ blockClientIds }\n\t\t\t\t\t\t\t\t\thideDragHandle={ hideDragHandle }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t{ shouldShowVisualToolbar && isMultiToolbar && (\n\t\t\t\t\t<BlockGroupToolbar />\n\t\t\t\t) }\n\t\t\t\t{ shouldShowVisualToolbar && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"parent\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"block\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls.Slot className=\"block-editor-block-toolbar__slot\" />\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"inline\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"other\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<__unstableBlockNameContext.Provider\n\t\t\t\t\t\t\tvalue={ blockType?.name }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<__unstableBlockToolbarLastItem.Slot />\n\t\t\t\t\t\t</__unstableBlockNameContext.Provider>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t<BlockEditVisuallyButton clientIds={ blockClientIds } />\n\t\t\t\t{ isDefaultEditingMode && (\n\t\t\t\t\t<BlockSettingsMenu clientIds={ blockClientIds } />\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</NavigableToolbar>\n\t);\n}\n\n/**\n * Renders the block toolbar.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-toolbar/README.md\n *\n * @param {Object} props Components props.\n * @param {boolean} props.hideDragHandle Show or hide the Drag Handle for drag and drop functionality.\n * @param {string} props.variant Style variant of the toolbar, also passed to the Dropdowns rendered from Block Toolbar Buttons.\n */\nexport default function BlockToolbar( { hideDragHandle, variant } ) {\n\treturn (\n\t\t<PrivateBlockToolbar\n\t\t\thideDragHandle={ hideDragHandle }\n\t\t\tvariant={ variant }\n\t\t\tfocusOnMount={ undefined }\n\t\t\t__experimentalInitialIndex={ undefined }\n\t\t\t__experimentalOnIndexChange={ undefined }\n\t\t/>\n\t);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_i18n","_data","_element","_compose","_blocks","_components","_blockMover","_blockParentSelector","_blockSwitcher","_blockControls","_blockToolbarLastItem","_blockSettingsMenu","_blockLock","_convertToGroupButtons","_blockEditVisuallyButton","_utils","_store","_blockNameContext","_navigableToolbar","_shuffle","_blockBindingsToolbarIndicator","_useHasBlockToolbar","_useBindingsAttributes","PrivateBlockToolbar","hideDragHandle","focusOnMount","__experimentalInitialIndex","__experimentalOnIndexChange","variant","blockClientId","blockClientIds","isDefaultEditingMode","blockType","blockName","shouldShowVisualToolbar","showParentSelector","isUsingBindings","useSelect","select","getBlockName","getBlockMode","getBlockParents","getSelectedBlockClientIds","isBlockValid","getBlockRootClientId","getBlockEditingMode","getBlockAttributes","blockEditorStore","selectedBlockClientIds","selectedBlockClientId","blockRootClientId","parents","firstParentClientId","length","parentBlockName","parentBlockType","getBlockType","_isDefaultEditingMode","_blockName","isValid","every","id","isVisual","_isUsingBindings","metadata","bindings","rootClientId","hasBlockSupport","toolbarWrapperRef","useRef","nodeRef","showHoveredOrFocusedGestures","useShowHoveredOrFocusedGestures","ref","isLargeViewport","useViewportMatch","hasBlockToolbar","useHasBlockToolbar","isMultiToolbar","isSynced","isReusableBlock","isTemplatePart","classes","classnames","innerClasses","_react","createElement","default","focusEditorOnEscape","className","__","undefined","key","canBindBlock","ToolbarGroup","clientIds","BlockLockToolbar","clientId","BlockGroupToolbar","Fragment","Slot","group","Provider","value","name","BlockToolbar"],"sources":["@wordpress/block-editor/src/components/block-toolbar/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { useRef } from '@wordpress/element';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tgetBlockType,\n\thasBlockSupport,\n\tisReusableBlock,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { ToolbarGroup } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockMover from '../block-mover';\nimport BlockParentSelector from '../block-parent-selector';\nimport BlockSwitcher from '../block-switcher';\nimport BlockControls from '../block-controls';\nimport __unstableBlockToolbarLastItem from './block-toolbar-last-item';\nimport BlockSettingsMenu from '../block-settings-menu';\nimport { BlockLockToolbar } from '../block-lock';\nimport { BlockGroupToolbar } from '../convert-to-group-buttons';\nimport BlockEditVisuallyButton from '../block-edit-visually-button';\nimport { useShowHoveredOrFocusedGestures } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport __unstableBlockNameContext from './block-name-context';\nimport NavigableToolbar from '../navigable-toolbar';\nimport Shuffle from './shuffle';\nimport BlockBindingsIndicator from '../block-bindings-toolbar-indicator';\nimport { useHasBlockToolbar } from './use-has-block-toolbar';\nimport { canBindBlock } from '../../hooks/use-bindings-attributes';\n/**\n * Renders the block toolbar.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-toolbar/README.md\n *\n * @param {Object} props Components props.\n * @param {boolean} props.hideDragHandle Show or hide the Drag Handle for drag and drop functionality.\n * @param {boolean} props.focusOnMount Focus the toolbar when mounted.\n * @param {number} props.__experimentalInitialIndex The initial index of the toolbar item to focus.\n * @param {Function} props.__experimentalOnIndexChange Callback function to be called when the index of the focused toolbar item changes.\n * @param {string} props.variant Style variant of the toolbar, also passed to the Dropdowns rendered from Block Toolbar Buttons.\n */\nexport function PrivateBlockToolbar( {\n\thideDragHandle,\n\tfocusOnMount,\n\t__experimentalInitialIndex,\n\t__experimentalOnIndexChange,\n\tvariant = 'unstyled',\n} ) {\n\tconst {\n\t\tblockClientId,\n\t\tblockClientIds,\n\t\tisDefaultEditingMode,\n\t\tblockType,\n\t\tblockName,\n\t\tshouldShowVisualToolbar,\n\t\tshowParentSelector,\n\t\tisUsingBindings,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockName,\n\t\t\tgetBlockMode,\n\t\t\tgetBlockParents,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tisBlockValid,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockEditingMode,\n\t\t\tgetBlockAttributes,\n\t\t} = select( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst selectedBlockClientId = selectedBlockClientIds[ 0 ];\n\t\tconst blockRootClientId = getBlockRootClientId( selectedBlockClientId );\n\t\tconst parents = getBlockParents( selectedBlockClientId );\n\t\tconst firstParentClientId = parents[ parents.length - 1 ];\n\t\tconst parentBlockName = getBlockName( firstParentClientId );\n\t\tconst parentBlockType = getBlockType( parentBlockName );\n\t\tconst _isDefaultEditingMode =\n\t\t\tgetBlockEditingMode( selectedBlockClientId ) === 'default';\n\t\tconst _blockName = getBlockName( selectedBlockClientId );\n\t\tconst isValid = selectedBlockClientIds.every( ( id ) =>\n\t\t\tisBlockValid( id )\n\t\t);\n\t\tconst isVisual = selectedBlockClientIds.every(\n\t\t\t( id ) => getBlockMode( id ) === 'visual'\n\t\t);\n\t\tconst _isUsingBindings = !! getBlockAttributes( selectedBlockClientId )\n\t\t\t?.metadata?.bindings;\n\t\treturn {\n\t\t\tblockClientId: selectedBlockClientId,\n\t\t\tblockClientIds: selectedBlockClientIds,\n\t\t\tisDefaultEditingMode: _isDefaultEditingMode,\n\t\t\tblockName: _blockName,\n\t\t\tblockType: selectedBlockClientId && getBlockType( _blockName ),\n\t\t\tshouldShowVisualToolbar: isValid && isVisual,\n\t\t\trootClientId: blockRootClientId,\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\t_isDefaultEditingMode,\n\t\t\tisUsingBindings: _isUsingBindings,\n\t\t};\n\t}, [] );\n\n\tconst toolbarWrapperRef = useRef( null );\n\n\t// Handles highlighting the current block outline on hover or focus of the\n\t// block type toolbar area.\n\tconst nodeRef = useRef();\n\tconst showHoveredOrFocusedGestures = useShowHoveredOrFocusedGestures( {\n\t\tref: nodeRef,\n\t} );\n\n\tconst isLargeViewport = ! useViewportMatch( 'medium', '<' );\n\n\tconst hasBlockToolbar = useHasBlockToolbar();\n\tif ( ! hasBlockToolbar ) {\n\t\treturn null;\n\t}\n\n\tconst isMultiToolbar = blockClientIds.length > 1;\n\tconst isSynced =\n\t\tisReusableBlock( blockType ) || isTemplatePart( blockType );\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': showParentSelector,\n\t} );\n\n\tconst innerClasses = classnames( 'block-editor-block-toolbar', {\n\t\t'is-synced': isSynced,\n\t} );\n\n\treturn (\n\t\t<NavigableToolbar\n\t\t\tfocusEditorOnEscape\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// The variant is applied as \"toolbar\" when undefined, which is the black border style of the dropdown from the toolbar popover.\n\t\t\tvariant={ variant === 'toolbar' ? undefined : variant }\n\t\t\tfocusOnMount={ focusOnMount }\n\t\t\t__experimentalInitialIndex={ __experimentalInitialIndex }\n\t\t\t__experimentalOnIndexChange={ __experimentalOnIndexChange }\n\t\t\t// Resets the index whenever the active block changes so\n\t\t\t// this is not persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169\n\t\t\tkey={ blockClientId }\n\t\t>\n\t\t\t<div ref={ toolbarWrapperRef } className={ innerClasses }>\n\t\t\t\t{ ! isMultiToolbar &&\n\t\t\t\t\tisLargeViewport &&\n\t\t\t\t\tisDefaultEditingMode && <BlockParentSelector /> }\n\t\t\t\t{ isUsingBindings && canBindBlock( blockName ) && (\n\t\t\t\t\t<BlockBindingsIndicator />\n\t\t\t\t) }\n\t\t\t\t{ ( shouldShowVisualToolbar || isMultiToolbar ) &&\n\t\t\t\t\tisDefaultEditingMode && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tref={ nodeRef }\n\t\t\t\t\t\t\t{ ...showHoveredOrFocusedGestures }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToolbarGroup className=\"block-editor-block-toolbar__block-controls\">\n\t\t\t\t\t\t\t\t<BlockSwitcher clientIds={ blockClientIds } />\n\t\t\t\t\t\t\t\t{ ! isMultiToolbar && (\n\t\t\t\t\t\t\t\t\t<BlockLockToolbar\n\t\t\t\t\t\t\t\t\t\tclientId={ blockClientId }\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<BlockMover\n\t\t\t\t\t\t\t\t\tclientIds={ blockClientIds }\n\t\t\t\t\t\t\t\t\thideDragHandle={ hideDragHandle }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t<Shuffle clientId={ blockClientId } />\n\t\t\t\t{ shouldShowVisualToolbar && isMultiToolbar && (\n\t\t\t\t\t<BlockGroupToolbar />\n\t\t\t\t) }\n\t\t\t\t{ shouldShowVisualToolbar && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"parent\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"block\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls.Slot className=\"block-editor-block-toolbar__slot\" />\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"inline\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BlockControls.Slot\n\t\t\t\t\t\t\tgroup=\"other\"\n\t\t\t\t\t\t\tclassName=\"block-editor-block-toolbar__slot\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<__unstableBlockNameContext.Provider\n\t\t\t\t\t\t\tvalue={ blockType?.name }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<__unstableBlockToolbarLastItem.Slot />\n\t\t\t\t\t\t</__unstableBlockNameContext.Provider>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t<BlockEditVisuallyButton clientIds={ blockClientIds } />\n\t\t\t\t{ isDefaultEditingMode && (\n\t\t\t\t\t<BlockSettingsMenu clientIds={ blockClientIds } />\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</NavigableToolbar>\n\t);\n}\n\n/**\n * Renders the block toolbar.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-toolbar/README.md\n *\n * @param {Object} props Components props.\n * @param {boolean} props.hideDragHandle Show or hide the Drag Handle for drag and drop functionality.\n * @param {string} props.variant Style variant of the toolbar, also passed to the Dropdowns rendered from Block Toolbar Buttons.\n */\nexport default function BlockToolbar( { hideDragHandle, variant } ) {\n\treturn (\n\t\t<PrivateBlockToolbar\n\t\t\thideDragHandle={ hideDragHandle }\n\t\t\tvariant={ variant }\n\t\t\tfocusOnMount={ undefined }\n\t\t\t__experimentalInitialIndex={ undefined }\n\t\t\t__experimentalOnIndexChange={ undefined }\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AAMA,IAAAM,WAAA,GAAAN,OAAA;AAKA,IAAAO,WAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,oBAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,cAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,cAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,qBAAA,GAAAZ,sBAAA,CAAAC,OAAA;AACA,IAAAY,kBAAA,GAAAb,sBAAA,CAAAC,OAAA;AACA,IAAAa,UAAA,GAAAb,OAAA;AACA,IAAAc,sBAAA,GAAAd,OAAA;AACA,IAAAe,wBAAA,GAAAhB,sBAAA,CAAAC,OAAA;AACA,IAAAgB,MAAA,GAAAhB,OAAA;AACA,IAAAiB,MAAA,GAAAjB,OAAA;AACA,IAAAkB,iBAAA,GAAAnB,sBAAA,CAAAC,OAAA;AACA,IAAAmB,iBAAA,GAAApB,sBAAA,CAAAC,OAAA;AACA,IAAAoB,QAAA,GAAArB,sBAAA,CAAAC,OAAA;AACA,IAAAqB,8BAAA,GAAAtB,sBAAA,CAAAC,OAAA;AACA,IAAAsB,mBAAA,GAAAtB,OAAA;AACA,IAAAuB,sBAAA,GAAAvB,OAAA;AAvCA;AACA;AACA;;AAGA;AACA;AACA;;AAaA;AACA;AACA;;AAkBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASwB,mBAAmBA,CAAE;EACpCC,cAAc;EACdC,YAAY;EACZC,0BAA0B;EAC1BC,2BAA2B;EAC3BC,OAAO,GAAG;AACX,CAAC,EAAG;EACH,MAAM;IACLC,aAAa;IACbC,cAAc;IACdC,oBAAoB;IACpBC,SAAS;IACTC,SAAS;IACTC,uBAAuB;IACvBC,kBAAkB;IAClBC;EACD,CAAC,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IAC5B,MAAM;MACLC,YAAY;MACZC,YAAY;MACZC,eAAe;MACfC,yBAAyB;MACzBC,YAAY;MACZC,oBAAoB;MACpBC,mBAAmB;MACnBC;IACD,CAAC,GAAGR,MAAM,CAAES,YAAiB,CAAC;IAC9B,MAAMC,sBAAsB,GAAGN,yBAAyB,CAAC,CAAC;IAC1D,MAAMO,qBAAqB,GAAGD,sBAAsB,CAAE,CAAC,CAAE;IACzD,MAAME,iBAAiB,GAAGN,oBAAoB,CAAEK,qBAAsB,CAAC;IACvE,MAAME,OAAO,GAAGV,eAAe,CAAEQ,qBAAsB,CAAC;IACxD,MAAMG,mBAAmB,GAAGD,OAAO,CAAEA,OAAO,CAACE,MAAM,GAAG,CAAC,CAAE;IACzD,MAAMC,eAAe,GAAGf,YAAY,CAAEa,mBAAoB,CAAC;IAC3D,MAAMG,eAAe,GAAG,IAAAC,oBAAY,EAAEF,eAAgB,CAAC;IACvD,MAAMG,qBAAqB,GAC1BZ,mBAAmB,CAAEI,qBAAsB,CAAC,KAAK,SAAS;IAC3D,MAAMS,UAAU,GAAGnB,YAAY,CAAEU,qBAAsB,CAAC;IACxD,MAAMU,OAAO,GAAGX,sBAAsB,CAACY,KAAK,CAAIC,EAAE,IACjDlB,YAAY,CAAEkB,EAAG,CAClB,CAAC;IACD,MAAMC,QAAQ,GAAGd,sBAAsB,CAACY,KAAK,CAC1CC,EAAE,IAAMrB,YAAY,CAAEqB,EAAG,CAAC,KAAK,QAClC,CAAC;IACD,MAAME,gBAAgB,GAAG,CAAC,CAAEjB,kBAAkB,CAAEG,qBAAsB,CAAC,EACpEe,QAAQ,EAAEC,QAAQ;IACrB,OAAO;MACNpC,aAAa,EAAEoB,qBAAqB;MACpCnB,cAAc,EAAEkB,sBAAsB;MACtCjB,oBAAoB,EAAE0B,qBAAqB;MAC3CxB,SAAS,EAAEyB,UAAU;MACrB1B,SAAS,EAAEiB,qBAAqB,IAAI,IAAAO,oBAAY,EAAEE,UAAW,CAAC;MAC9DxB,uBAAuB,EAAEyB,OAAO,IAAIG,QAAQ;MAC5CI,YAAY,EAAEhB,iBAAiB;MAC/Bf,kBAAkB,EACjBoB,eAAe,IACfV,mBAAmB,CAAEO,mBAAoB,CAAC,KAAK,SAAS,IACxD,IAAAe,uBAAe,EACdZ,eAAe,EACf,8BAA8B,EAC9B,IACD,CAAC,IACDP,sBAAsB,CAACK,MAAM,KAAK,CAAC,IACnCI,qBAAqB;MACtBrB,eAAe,EAAE2B;IAClB,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAMK,iBAAiB,GAAG,IAAAC,eAAM,EAAE,IAAK,CAAC;;EAExC;EACA;EACA,MAAMC,OAAO,GAAG,IAAAD,eAAM,EAAC,CAAC;EACxB,MAAME,4BAA4B,GAAG,IAAAC,sCAA+B,EAAE;IACrEC,GAAG,EAAEH;EACN,CAAE,CAAC;EAEH,MAAMI,eAAe,GAAG,CAAE,IAAAC,yBAAgB,EAAE,QAAQ,EAAE,GAAI,CAAC;EAE3D,MAAMC,eAAe,GAAG,IAAAC,sCAAkB,EAAC,CAAC;EAC5C,IAAK,CAAED,eAAe,EAAG;IACxB,OAAO,IAAI;EACZ;EAEA,MAAME,cAAc,GAAGhD,cAAc,CAACuB,MAAM,GAAG,CAAC;EAChD,MAAM0B,QAAQ,GACb,IAAAC,uBAAe,EAAEhD,SAAU,CAAC,IAAI,IAAAiD,sBAAc,EAAEjD,SAAU,CAAC;;EAE5D;EACA,MAAMkD,OAAO,GAAG,IAAAC,mBAAU,EAAE,uCAAuC,EAAE;IACpE,YAAY,EAAEhD;EACf,CAAE,CAAC;EAEH,MAAMiD,YAAY,GAAG,IAAAD,mBAAU,EAAE,4BAA4B,EAAE;IAC9D,WAAW,EAAEJ;EACd,CAAE,CAAC;EAEH,OACC,IAAAM,MAAA,CAAAC,aAAA,EAACpE,iBAAA,CAAAqE,OAAgB;IAChBC,mBAAmB;IACnBC,SAAS,EAAGP;IACZ;IACA,cAAa,IAAAQ,QAAE,EAAE,aAAc;IAC/B;IAAA;IACA9D,OAAO,EAAGA,OAAO,KAAK,SAAS,GAAG+D,SAAS,GAAG/D,OAAS;IACvDH,YAAY,EAAGA,YAAc;IAC7BC,0BAA0B,EAAGA,0BAA4B;IACzDC,2BAA2B,EAAGA;IAC9B;IACA;IAAA;IACAiE,GAAG,EAAG/D;EAAe,GAErB,IAAAwD,MAAA,CAAAC,aAAA;IAAKb,GAAG,EAAGL,iBAAmB;IAACqB,SAAS,EAAGL;EAAc,GACtD,CAAEN,cAAc,IACjBJ,eAAe,IACf3C,oBAAoB,IAAI,IAAAsD,MAAA,CAAAC,aAAA,EAAC/E,oBAAA,CAAAgF,OAAmB,MAAE,CAAC,EAC9CnD,eAAe,IAAI,IAAAyD,mCAAY,EAAE5D,SAAU,CAAC,IAC7C,IAAAoD,MAAA,CAAAC,aAAA,EAAClE,8BAAA,CAAAmE,OAAsB,MAAE,CACzB,EACC,CAAErD,uBAAuB,IAAI4C,cAAc,KAC5C/C,oBAAoB,IACnB,IAAAsD,MAAA,CAAAC,aAAA;IACCb,GAAG,EAAGH,OAAS;IAAA,GACVC;EAA4B,GAEjC,IAAAc,MAAA,CAAAC,aAAA,EAACjF,WAAA,CAAAyF,YAAY;IAACL,SAAS,EAAC;EAA4C,GACnE,IAAAJ,MAAA,CAAAC,aAAA,EAAC9E,cAAA,CAAA+E,OAAa;IAACQ,SAAS,EAAGjE;EAAgB,CAAE,CAAC,EAC5C,CAAEgD,cAAc,IACjB,IAAAO,MAAA,CAAAC,aAAA,EAAC1E,UAAA,CAAAoF,gBAAgB;IAChBC,QAAQ,EAAGpE;EAAe,CAC1B,CACD,EACD,IAAAwD,MAAA,CAAAC,aAAA,EAAChF,WAAA,CAAAiF,OAAU;IACVQ,SAAS,EAAGjE,cAAgB;IAC5BN,cAAc,EAAGA;EAAgB,CACjC,CACY,CACV,CACL,EACF,IAAA6D,MAAA,CAAAC,aAAA,EAACnE,QAAA,CAAAoE,OAAO;IAACU,QAAQ,EAAGpE;EAAe,CAAE,CAAC,EACpCK,uBAAuB,IAAI4C,cAAc,IAC1C,IAAAO,MAAA,CAAAC,aAAA,EAACzE,sBAAA,CAAAqF,iBAAiB,MAAE,CACpB,EACChE,uBAAuB,IACxB,IAAAmD,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAc,QAAA,QACC,IAAAd,MAAA,CAAAC,aAAA,EAAC7E,cAAA,CAAA8E,OAAa,CAACa,IAAI;IAClBC,KAAK,EAAC,QAAQ;IACdZ,SAAS,EAAC;EAAkC,CAC5C,CAAC,EACF,IAAAJ,MAAA,CAAAC,aAAA,EAAC7E,cAAA,CAAA8E,OAAa,CAACa,IAAI;IAClBC,KAAK,EAAC,OAAO;IACbZ,SAAS,EAAC;EAAkC,CAC5C,CAAC,EACF,IAAAJ,MAAA,CAAAC,aAAA,EAAC7E,cAAA,CAAA8E,OAAa,CAACa,IAAI;IAACX,SAAS,EAAC;EAAkC,CAAE,CAAC,EACnE,IAAAJ,MAAA,CAAAC,aAAA,EAAC7E,cAAA,CAAA8E,OAAa,CAACa,IAAI;IAClBC,KAAK,EAAC,QAAQ;IACdZ,SAAS,EAAC;EAAkC,CAC5C,CAAC,EACF,IAAAJ,MAAA,CAAAC,aAAA,EAAC7E,cAAA,CAAA8E,OAAa,CAACa,IAAI;IAClBC,KAAK,EAAC,OAAO;IACbZ,SAAS,EAAC;EAAkC,CAC5C,CAAC,EACF,IAAAJ,MAAA,CAAAC,aAAA,EAACrE,iBAAA,CAAAsE,OAA0B,CAACe,QAAQ;IACnCC,KAAK,EAAGvE,SAAS,EAAEwE;EAAM,GAEzB,IAAAnB,MAAA,CAAAC,aAAA,EAAC5E,qBAAA,CAAA6E,OAA8B,CAACa,IAAI,MAAE,CACF,CACpC,CACF,EACD,IAAAf,MAAA,CAAAC,aAAA,EAACxE,wBAAA,CAAAyE,OAAuB;IAACQ,SAAS,EAAGjE;EAAgB,CAAE,CAAC,EACtDC,oBAAoB,IACrB,IAAAsD,MAAA,CAAAC,aAAA,EAAC3E,kBAAA,CAAA4E,OAAiB;IAACQ,SAAS,EAAGjE;EAAgB,CAAE,CAE9C,CACY,CAAC;AAErB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAS2E,YAAYA,CAAE;EAAEjF,cAAc;EAAEI;AAAQ,CAAC,EAAG;EACnE,OACC,IAAAyD,MAAA,CAAAC,aAAA,EAAC/D,mBAAmB;IACnBC,cAAc,EAAGA,cAAgB;IACjCI,OAAO,EAAGA,OAAS;IACnBH,YAAY,EAAGkE,SAAW;IAC1BjE,0BAA0B,EAAGiE,SAAW;IACxChE,2BAA2B,EAAGgE;EAAW,CACzC,CAAC;AAEJ"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = Shuffle;
7
+ var _react = require("react");
8
+ var _icons = require("@wordpress/icons");
9
+ var _components = require("@wordpress/components");
10
+ var _i18n = require("@wordpress/i18n");
11
+ var _element = require("@wordpress/element");
12
+ var _data = require("@wordpress/data");
13
+ var _store = require("../../store");
14
+ /**
15
+ * WordPress dependencies
16
+ */
17
+
18
+ /**
19
+ * Internal dependencies
20
+ */
21
+
22
+ const EMPTY_ARRAY = [];
23
+ function Container(props) {
24
+ return (0, _react.createElement)(_components.ToolbarGroup, null, (0, _react.createElement)(_components.ToolbarButton, {
25
+ ...props
26
+ }));
27
+ }
28
+ function Shuffle({
29
+ clientId,
30
+ as = Container
31
+ }) {
32
+ const {
33
+ categories,
34
+ patterns
35
+ } = (0, _data.useSelect)(select => {
36
+ const {
37
+ getBlockAttributes,
38
+ getBlockRootClientId,
39
+ __experimentalGetAllowedPatterns
40
+ } = select(_store.store);
41
+ const attributes = getBlockAttributes(clientId);
42
+ const _categories = attributes?.metadata?.categories || EMPTY_ARRAY;
43
+ const rootBlock = getBlockRootClientId(clientId);
44
+ const _patterns = __experimentalGetAllowedPatterns(rootBlock);
45
+ return {
46
+ categories: _categories,
47
+ patterns: _patterns
48
+ };
49
+ }, [clientId]);
50
+ const {
51
+ replaceBlocks
52
+ } = (0, _data.useDispatch)(_store.store);
53
+ const sameCategoryPatternsWithSingleWrapper = (0, _element.useMemo)(() => {
54
+ if (!categories || categories.length === 0 || !patterns || patterns.length === 0) {
55
+ return EMPTY_ARRAY;
56
+ }
57
+ return patterns.filter(pattern => {
58
+ return (
59
+ // Check if the pattern has only one top level block,
60
+ // otherwise we may shuffle to pattern that will not allow to continue shuffling.
61
+ pattern.blocks.length === 1 && pattern.categories.some(category => {
62
+ return categories.includes(category);
63
+ })
64
+ );
65
+ });
66
+ }, [categories, patterns]);
67
+ if (sameCategoryPatternsWithSingleWrapper.length === 0) {
68
+ return null;
69
+ }
70
+ const ComponentToUse = as;
71
+ return (0, _react.createElement)(ComponentToUse, {
72
+ label: (0, _i18n.__)('Shuffle'),
73
+ icon: _icons.shuffle,
74
+ onClick: () => {
75
+ const randomPattern = sameCategoryPatternsWithSingleWrapper[Math.floor(
76
+ // eslint-disable-next-line no-restricted-syntax
77
+ Math.random() * sameCategoryPatternsWithSingleWrapper.length)];
78
+ randomPattern.blocks[0].attributes = {
79
+ ...randomPattern.blocks[0].attributes,
80
+ metadata: {
81
+ ...randomPattern.blocks[0].attributes.metadata,
82
+ categories
83
+ }
84
+ };
85
+ replaceBlocks(clientId, randomPattern.blocks);
86
+ }
87
+ });
88
+ }
89
+ //# sourceMappingURL=shuffle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_icons","require","_components","_i18n","_element","_data","_store","EMPTY_ARRAY","Container","props","_react","createElement","ToolbarGroup","ToolbarButton","Shuffle","clientId","as","categories","patterns","useSelect","select","getBlockAttributes","getBlockRootClientId","__experimentalGetAllowedPatterns","blockEditorStore","attributes","_categories","metadata","rootBlock","_patterns","replaceBlocks","useDispatch","sameCategoryPatternsWithSingleWrapper","useMemo","length","filter","pattern","blocks","some","category","includes","ComponentToUse","label","__","icon","shuffle","onClick","randomPattern","Math","floor","random"],"sources":["@wordpress/block-editor/src/components/block-toolbar/shuffle.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { shuffle } from '@wordpress/icons';\nimport { ToolbarButton, ToolbarGroup } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nconst EMPTY_ARRAY = [];\n\nfunction Container( props ) {\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarButton { ...props } />\n\t\t</ToolbarGroup>\n\t);\n}\n\nexport default function Shuffle( { clientId, as = Container } ) {\n\tconst { categories, patterns } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\t__experimentalGetAllowedPatterns,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\tconst _categories = attributes?.metadata?.categories || EMPTY_ARRAY;\n\t\t\tconst rootBlock = getBlockRootClientId( clientId );\n\t\t\tconst _patterns = __experimentalGetAllowedPatterns( rootBlock );\n\t\t\treturn {\n\t\t\t\tcategories: _categories,\n\t\t\t\tpatterns: _patterns,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst sameCategoryPatternsWithSingleWrapper = useMemo( () => {\n\t\tif (\n\t\t\t! categories ||\n\t\t\tcategories.length === 0 ||\n\t\t\t! patterns ||\n\t\t\tpatterns.length === 0\n\t\t) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\t\treturn patterns.filter( ( pattern ) => {\n\t\t\treturn (\n\t\t\t\t// Check if the pattern has only one top level block,\n\t\t\t\t// otherwise we may shuffle to pattern that will not allow to continue shuffling.\n\t\t\t\tpattern.blocks.length === 1 &&\n\t\t\t\tpattern.categories.some( ( category ) => {\n\t\t\t\t\treturn categories.includes( category );\n\t\t\t\t} )\n\t\t\t);\n\t\t} );\n\t}, [ categories, patterns ] );\n\tif ( sameCategoryPatternsWithSingleWrapper.length === 0 ) {\n\t\treturn null;\n\t}\n\tconst ComponentToUse = as;\n\treturn (\n\t\t<ComponentToUse\n\t\t\tlabel={ __( 'Shuffle' ) }\n\t\t\ticon={ shuffle }\n\t\t\tonClick={ () => {\n\t\t\t\tconst randomPattern =\n\t\t\t\t\tsameCategoryPatternsWithSingleWrapper[\n\t\t\t\t\t\tMath.floor(\n\t\t\t\t\t\t\t// eslint-disable-next-line no-restricted-syntax\n\t\t\t\t\t\t\tMath.random() *\n\t\t\t\t\t\t\t\tsameCategoryPatternsWithSingleWrapper.length\n\t\t\t\t\t\t)\n\t\t\t\t\t];\n\t\t\t\trandomPattern.blocks[ 0 ].attributes = {\n\t\t\t\t\t...randomPattern.blocks[ 0 ].attributes,\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t...randomPattern.blocks[ 0 ].attributes.metadata,\n\t\t\t\t\t\tcategories,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\treplaceBlocks( clientId, randomPattern.blocks );\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useHasBlockToolbar = useHasBlockToolbar;
7
+ var _data = require("@wordpress/data");
8
+ var _blocks = require("@wordpress/blocks");
9
+ var _store = require("../../store");
10
+ var _useHasBlockControls = require("../block-controls/use-has-block-controls");
11
+ /**
12
+ * WordPress dependencies
13
+ */
14
+
15
+ /**
16
+ * Internal dependencies
17
+ */
18
+
19
+ /**
20
+ * Returns true if the block toolbar should be shown.
21
+ *
22
+ * @return {boolean} Whether the block toolbar component will be rendered.
23
+ */
24
+ function useHasBlockToolbar() {
25
+ const hasAnyBlockControls = (0, _useHasBlockControls.useHasAnyBlockControls)();
26
+ return (0, _data.useSelect)(select => {
27
+ const {
28
+ getBlockEditingMode,
29
+ getBlockName,
30
+ getSelectedBlockClientIds
31
+ } = select(_store.store);
32
+ const selectedBlockClientIds = getSelectedBlockClientIds();
33
+ const selectedBlockClientId = selectedBlockClientIds[0];
34
+ const isDefaultEditingMode = getBlockEditingMode(selectedBlockClientId) === 'default';
35
+ const blockType = selectedBlockClientId && (0, _blocks.getBlockType)(getBlockName(selectedBlockClientId));
36
+ const isToolbarEnabled = blockType && (0, _blocks.hasBlockSupport)(blockType, '__experimentalToolbar', true);
37
+ if (!isToolbarEnabled || !isDefaultEditingMode && !hasAnyBlockControls) {
38
+ return false;
39
+ }
40
+ return true;
41
+ }, [hasAnyBlockControls]);
42
+ }
43
+ //# sourceMappingURL=use-has-block-toolbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_data","require","_blocks","_store","_useHasBlockControls","useHasBlockToolbar","hasAnyBlockControls","useHasAnyBlockControls","useSelect","select","getBlockEditingMode","getBlockName","getSelectedBlockClientIds","blockEditorStore","selectedBlockClientIds","selectedBlockClientId","isDefaultEditingMode","blockType","getBlockType","isToolbarEnabled","hasBlockSupport"],"sources":["@wordpress/block-editor/src/components/block-toolbar/use-has-block-toolbar.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { getBlockType, hasBlockSupport } from '@wordpress/blocks';\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { useHasAnyBlockControls } from '../block-controls/use-has-block-controls';\n\n/**\n * Returns true if the block toolbar should be shown.\n *\n * @return {boolean} Whether the block toolbar component will be rendered.\n */\nexport function useHasBlockToolbar() {\n\tconst hasAnyBlockControls = useHasAnyBlockControls();\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\t\tconst selectedBlockClientId = selectedBlockClientIds[ 0 ];\n\t\t\tconst isDefaultEditingMode =\n\t\t\t\tgetBlockEditingMode( selectedBlockClientId ) === 'default';\n\t\t\tconst blockType =\n\t\t\t\tselectedBlockClientId &&\n\t\t\t\tgetBlockType( getBlockName( selectedBlockClientId ) );\n\t\t\tconst isToolbarEnabled =\n\t\t\t\tblockType &&\n\t\t\t\thasBlockSupport( blockType, '__experimentalToolbar', true );\n\n\t\t\tif (\n\t\t\t\t! isToolbarEnabled ||\n\t\t\t\t( ! isDefaultEditingMode && ! hasAnyBlockControls )\n\t\t\t) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn true;\n\t\t},\n\t\t[ hasAnyBlockControls ]\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAIA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAH,OAAA;AATA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACO,SAASI,kBAAkBA,CAAA,EAAG;EACpC,MAAMC,mBAAmB,GAAG,IAAAC,2CAAsB,EAAC,CAAC;EACpD,OAAO,IAAAC,eAAS,EACbC,MAAM,IAAM;IACb,MAAM;MACLC,mBAAmB;MACnBC,YAAY;MACZC;IACD,CAAC,GAAGH,MAAM,CAAEI,YAAiB,CAAC;IAE9B,MAAMC,sBAAsB,GAAGF,yBAAyB,CAAC,CAAC;IAC1D,MAAMG,qBAAqB,GAAGD,sBAAsB,CAAE,CAAC,CAAE;IACzD,MAAME,oBAAoB,GACzBN,mBAAmB,CAAEK,qBAAsB,CAAC,KAAK,SAAS;IAC3D,MAAME,SAAS,GACdF,qBAAqB,IACrB,IAAAG,oBAAY,EAAEP,YAAY,CAAEI,qBAAsB,CAAE,CAAC;IACtD,MAAMI,gBAAgB,GACrBF,SAAS,IACT,IAAAG,uBAAe,EAAEH,SAAS,EAAE,uBAAuB,EAAE,IAAK,CAAC;IAE5D,IACC,CAAEE,gBAAgB,IAChB,CAAEH,oBAAoB,IAAI,CAAEV,mBAAqB,EAClD;MACD,OAAO,KAAK;IACb;IAEA,OAAO,IAAI;EACZ,CAAC,EACD,CAAEA,mBAAmB,CACtB,CAAC;AACF"}
@@ -22,6 +22,7 @@ var _store = require("../../store");
22
22
  var _blockDraggable = _interopRequireDefault(require("../block-draggable"));
23
23
  var _useBlockRefs = require("../block-list/use-block-props/use-block-refs");
24
24
  var _blockMover = _interopRequireDefault(require("../block-mover"));
25
+ var _shuffle = _interopRequireDefault(require("../block-toolbar/shuffle"));
25
26
  /**
26
27
  * External dependencies
27
28
  */
@@ -228,7 +229,10 @@ function BlockSelectionButton({
228
229
  ,
229
230
  tabIndex: "-1",
230
231
  ...draggableProps
231
- }))), (0, _react.createElement)(_components.FlexItem, null, (0, _react.createElement)(_components.Button, {
232
+ }))), editorMode === 'zoom-out' && (0, _react.createElement)(_shuffle.default, {
233
+ clientId: clientId,
234
+ as: _components.Button
235
+ }), (0, _react.createElement)(_components.FlexItem, null, (0, _react.createElement)(_components.Button, {
232
236
  ref: ref,
233
237
  onClick: editorMode === 'navigation' ? () => setNavigationMode(false) : undefined,
234
238
  onKeyDown: onKeyDown,
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_icons","_components","_data","_element","_keycodes","_blocks","_a11y","_dom","_i18n","_blockTitle","_blockIcon","_store","_blockDraggable","_useBlockRefs","_blockMover","BlockSelectionButton","clientId","rootClientId","selected","useSelect","select","getBlock","getBlockIndex","hasBlockMovingClientId","getBlockListSettings","__unstableGetEditorMode","blockEditorStore","getActiveBlockVariation","getBlockType","blocksStore","index","name","attributes","blockType","orientation","match","blockMovingMode","editorMode","icon","label","getAccessibleBlockLabel","setNavigationMode","removeBlock","useDispatch","ref","useRef","useEffect","current","focus","speak","blockElement","useBlockElement","getBlockRootClientId","getClientIdsOfDescendants","getSelectedBlockClientId","getMultiSelectedBlocksEndClientId","getPreviousBlockClientId","getNextBlockClientId","selectBlock","clearSelectedBlock","setBlockMovingClientId","moveBlockToPosition","onKeyDown","event","keyCode","isUp","UP","isDown","DOWN","isLeft","LEFT","isRight","RIGHT","isTab","TAB","isEscape","ESCAPE","isEnter","ENTER","isSpace","SPACE","isShift","shiftKey","preventDefault","BACKSPACE","DELETE","selectedBlockClientId","selectionEndClientId","selectionBeforeEndClientId","selectionAfterEndClientId","navigateUp","navigateDown","navigateOut","navigateIn","focusedBlockUid","_getBlockRootClientId","_getClientIdsOfDescen","startingBlockClientId","defaultPrevented","sourceRoot","destRoot","sourceBlockIndex","destinationBlockIndex","nextTabbable","tabbable","findNext","contains","ownerDocument","defaultView","frameElement","findPrevious","classNames","classnames","dragHandleLabel","__","_react","createElement","className","Flex","justify","FlexItem","default","showColors","clientIds","hideDragHandle","draggableProps","Button","dragHandle","tabIndex","onClick","undefined","showTooltip","maximumLength","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-tools/block-selection-button.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { dragHandle } from '@wordpress/icons';\nimport { Button, Flex, FlexItem } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\nimport {\n\tBACKSPACE,\n\tDELETE,\n\tUP,\n\tDOWN,\n\tLEFT,\n\tRIGHT,\n\tTAB,\n\tESCAPE,\n\tENTER,\n\tSPACE,\n} from '@wordpress/keycodes';\nimport {\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { speak } from '@wordpress/a11y';\nimport { focus } from '@wordpress/dom';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockTitle from '../block-title';\nimport BlockIcon from '../block-icon';\nimport { store as blockEditorStore } from '../../store';\nimport BlockDraggable from '../block-draggable';\nimport { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport BlockMover from '../block-mover';\n\n/**\n * Block selection button component, displaying the label of the block. If the block\n * descends from a root block, a button is displayed enabling the user to select\n * the root block.\n *\n * @param {string} props Component props.\n * @param {string} props.clientId Client ID of block.\n *\n * @return {Component} The component to be rendered.\n */\nfunction BlockSelectionButton( { clientId, rootClientId } ) {\n\tconst selected = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockIndex,\n\t\t\t\thasBlockMovingClientId,\n\t\t\t\tgetBlockListSettings,\n\t\t\t\t__unstableGetEditorMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getActiveBlockVariation, getBlockType } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tconst { name, attributes } = getBlock( clientId );\n\t\t\tconst blockType = getBlockType( name );\n\t\t\tconst orientation =\n\t\t\t\tgetBlockListSettings( rootClientId )?.orientation;\n\t\t\tconst match = getActiveBlockVariation( name, attributes );\n\n\t\t\treturn {\n\t\t\t\tblockMovingMode: hasBlockMovingClientId(),\n\t\t\t\teditorMode: __unstableGetEditorMode(),\n\t\t\t\ticon: match?.icon || blockType.icon,\n\t\t\t\tlabel: getAccessibleBlockLabel(\n\t\t\t\t\tblockType,\n\t\t\t\t\tattributes,\n\t\t\t\t\tindex + 1,\n\t\t\t\t\torientation\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\tconst { label, icon, blockMovingMode, editorMode } = selected;\n\tconst { setNavigationMode, removeBlock } = useDispatch( blockEditorStore );\n\tconst ref = useRef();\n\n\t// Focus the breadcrumb in navigation mode.\n\tuseEffect( () => {\n\t\tref.current.focus();\n\n\t\tspeak( label );\n\t}, [ label ] );\n\tconst blockElement = useBlockElement( clientId );\n\n\tconst {\n\t\thasBlockMovingClientId,\n\t\tgetBlockIndex,\n\t\tgetBlockRootClientId,\n\t\tgetClientIdsOfDescendants,\n\t\tgetSelectedBlockClientId,\n\t\tgetMultiSelectedBlocksEndClientId,\n\t\tgetPreviousBlockClientId,\n\t\tgetNextBlockClientId,\n\t} = useSelect( blockEditorStore );\n\tconst {\n\t\tselectBlock,\n\t\tclearSelectedBlock,\n\t\tsetBlockMovingClientId,\n\t\tmoveBlockToPosition,\n\t} = useDispatch( blockEditorStore );\n\n\tfunction onKeyDown( event ) {\n\t\tconst { keyCode } = event;\n\t\tconst isUp = keyCode === UP;\n\t\tconst isDown = keyCode === DOWN;\n\t\tconst isLeft = keyCode === LEFT;\n\t\tconst isRight = keyCode === RIGHT;\n\t\tconst isTab = keyCode === TAB;\n\t\tconst isEscape = keyCode === ESCAPE;\n\t\tconst isEnter = keyCode === ENTER;\n\t\tconst isSpace = keyCode === SPACE;\n\t\tconst isShift = event.shiftKey;\n\t\tif ( isEscape && editorMode === 'navigation' ) {\n\t\t\tsetNavigationMode( false );\n\t\t\tevent.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( keyCode === BACKSPACE || keyCode === DELETE ) {\n\t\t\tremoveBlock( clientId );\n\t\t\tevent.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst selectionEndClientId = getMultiSelectedBlocksEndClientId();\n\t\tconst selectionBeforeEndClientId = getPreviousBlockClientId(\n\t\t\tselectionEndClientId || selectedBlockClientId\n\t\t);\n\t\tconst selectionAfterEndClientId = getNextBlockClientId(\n\t\t\tselectionEndClientId || selectedBlockClientId\n\t\t);\n\n\t\tconst navigateUp = ( isTab && isShift ) || isUp;\n\t\tconst navigateDown = ( isTab && ! isShift ) || isDown;\n\t\t// Move out of current nesting level (no effect if at root level).\n\t\tconst navigateOut = isLeft;\n\t\t// Move into next nesting level (no effect if the current block has no innerBlocks).\n\t\tconst navigateIn = isRight;\n\n\t\tlet focusedBlockUid;\n\t\tif ( navigateUp ) {\n\t\t\tfocusedBlockUid = selectionBeforeEndClientId;\n\t\t} else if ( navigateDown ) {\n\t\t\tfocusedBlockUid = selectionAfterEndClientId;\n\t\t} else if ( navigateOut ) {\n\t\t\tfocusedBlockUid =\n\t\t\t\tgetBlockRootClientId( selectedBlockClientId ) ??\n\t\t\t\tselectedBlockClientId;\n\t\t} else if ( navigateIn ) {\n\t\t\tfocusedBlockUid =\n\t\t\t\tgetClientIdsOfDescendants( selectedBlockClientId )[ 0 ] ??\n\t\t\t\tselectedBlockClientId;\n\t\t}\n\t\tconst startingBlockClientId = hasBlockMovingClientId();\n\t\tif ( isEscape && startingBlockClientId && ! event.defaultPrevented ) {\n\t\t\tsetBlockMovingClientId( null );\n\t\t\tevent.preventDefault();\n\t\t}\n\t\tif ( ( isEnter || isSpace ) && startingBlockClientId ) {\n\t\t\tconst sourceRoot = getBlockRootClientId( startingBlockClientId );\n\t\t\tconst destRoot = getBlockRootClientId( selectedBlockClientId );\n\t\t\tconst sourceBlockIndex = getBlockIndex( startingBlockClientId );\n\t\t\tlet destinationBlockIndex = getBlockIndex( selectedBlockClientId );\n\t\t\tif (\n\t\t\t\tsourceBlockIndex < destinationBlockIndex &&\n\t\t\t\tsourceRoot === destRoot\n\t\t\t) {\n\t\t\t\tdestinationBlockIndex -= 1;\n\t\t\t}\n\t\t\tmoveBlockToPosition(\n\t\t\t\tstartingBlockClientId,\n\t\t\t\tsourceRoot,\n\t\t\t\tdestRoot,\n\t\t\t\tdestinationBlockIndex\n\t\t\t);\n\t\t\tselectBlock( startingBlockClientId );\n\t\t\tsetBlockMovingClientId( null );\n\t\t}\n\t\t// Prevent the block from being moved into itself.\n\t\tif (\n\t\t\tstartingBlockClientId &&\n\t\t\tselectedBlockClientId === startingBlockClientId &&\n\t\t\tnavigateIn\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tif ( navigateDown || navigateUp || navigateOut || navigateIn ) {\n\t\t\tif ( focusedBlockUid ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tselectBlock( focusedBlockUid );\n\t\t\t} else if ( isTab && selectedBlockClientId ) {\n\t\t\t\tlet nextTabbable;\n\n\t\t\t\tif ( navigateDown ) {\n\t\t\t\t\tnextTabbable = blockElement;\n\t\t\t\t\tdo {\n\t\t\t\t\t\tnextTabbable = focus.tabbable.findNext( nextTabbable );\n\t\t\t\t\t} while (\n\t\t\t\t\t\tnextTabbable &&\n\t\t\t\t\t\tblockElement.contains( nextTabbable )\n\t\t\t\t\t);\n\n\t\t\t\t\tif ( ! nextTabbable ) {\n\t\t\t\t\t\tnextTabbable =\n\t\t\t\t\t\t\tblockElement.ownerDocument.defaultView.frameElement;\n\t\t\t\t\t\tnextTabbable = focus.tabbable.findNext( nextTabbable );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tnextTabbable = focus.tabbable.findPrevious( blockElement );\n\t\t\t\t}\n\n\t\t\t\tif ( nextTabbable ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tnextTabbable.focus();\n\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tconst classNames = classnames(\n\t\t'block-editor-block-list__block-selection-button',\n\t\t{\n\t\t\t'is-block-moving-mode': !! blockMovingMode,\n\t\t}\n\t);\n\n\tconst dragHandleLabel = __( 'Drag' );\n\n\treturn (\n\t\t<div className={ classNames }>\n\t\t\t<Flex\n\t\t\t\tjustify=\"center\"\n\t\t\t\tclassName=\"block-editor-block-list__block-selection-button__content\"\n\t\t\t>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<BlockIcon icon={ icon } showColors />\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t{ editorMode === 'zoom-out' && (\n\t\t\t\t\t\t<BlockMover clientIds={ [ clientId ] } hideDragHandle />\n\t\t\t\t\t) }\n\t\t\t\t\t{ editorMode === 'navigation' && (\n\t\t\t\t\t\t<BlockDraggable clientIds={ [ clientId ] }>\n\t\t\t\t\t\t\t{ ( draggableProps ) => (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ticon={ dragHandle }\n\t\t\t\t\t\t\t\t\tclassName=\"block-selection-button_drag-handle\"\n\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\tlabel={ dragHandleLabel }\n\t\t\t\t\t\t\t\t\t// Should not be able to tab to drag handle as this\n\t\t\t\t\t\t\t\t\t// button can only be used with a pointer device.\n\t\t\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t\t\t{ ...draggableProps }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</BlockDraggable>\n\t\t\t\t\t) }\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\teditorMode === 'navigation'\n\t\t\t\t\t\t\t\t? () => setNavigationMode( false )\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\tshowTooltip={ false }\n\t\t\t\t\t\tclassName=\"block-selection-button_select-button\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockTitle\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tmaximumLength={ 35 }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\t\t</div>\n\t);\n}\n\nexport default BlockSelectionButton;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_icons","_components","_data","_element","_keycodes","_blocks","_a11y","_dom","_i18n","_blockTitle","_blockIcon","_store","_blockDraggable","_useBlockRefs","_blockMover","_shuffle","BlockSelectionButton","clientId","rootClientId","selected","useSelect","select","getBlock","getBlockIndex","hasBlockMovingClientId","getBlockListSettings","__unstableGetEditorMode","blockEditorStore","getActiveBlockVariation","getBlockType","blocksStore","index","name","attributes","blockType","orientation","match","blockMovingMode","editorMode","icon","label","getAccessibleBlockLabel","setNavigationMode","removeBlock","useDispatch","ref","useRef","useEffect","current","focus","speak","blockElement","useBlockElement","getBlockRootClientId","getClientIdsOfDescendants","getSelectedBlockClientId","getMultiSelectedBlocksEndClientId","getPreviousBlockClientId","getNextBlockClientId","selectBlock","clearSelectedBlock","setBlockMovingClientId","moveBlockToPosition","onKeyDown","event","keyCode","isUp","UP","isDown","DOWN","isLeft","LEFT","isRight","RIGHT","isTab","TAB","isEscape","ESCAPE","isEnter","ENTER","isSpace","SPACE","isShift","shiftKey","preventDefault","BACKSPACE","DELETE","selectedBlockClientId","selectionEndClientId","selectionBeforeEndClientId","selectionAfterEndClientId","navigateUp","navigateDown","navigateOut","navigateIn","focusedBlockUid","_getBlockRootClientId","_getClientIdsOfDescen","startingBlockClientId","defaultPrevented","sourceRoot","destRoot","sourceBlockIndex","destinationBlockIndex","nextTabbable","tabbable","findNext","contains","ownerDocument","defaultView","frameElement","findPrevious","classNames","classnames","dragHandleLabel","__","_react","createElement","className","Flex","justify","FlexItem","default","showColors","clientIds","hideDragHandle","draggableProps","Button","dragHandle","tabIndex","as","onClick","undefined","showTooltip","maximumLength","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-tools/block-selection-button.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { dragHandle } from '@wordpress/icons';\nimport { Button, Flex, FlexItem } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\nimport {\n\tBACKSPACE,\n\tDELETE,\n\tUP,\n\tDOWN,\n\tLEFT,\n\tRIGHT,\n\tTAB,\n\tESCAPE,\n\tENTER,\n\tSPACE,\n} from '@wordpress/keycodes';\nimport {\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { speak } from '@wordpress/a11y';\nimport { focus } from '@wordpress/dom';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockTitle from '../block-title';\nimport BlockIcon from '../block-icon';\nimport { store as blockEditorStore } from '../../store';\nimport BlockDraggable from '../block-draggable';\nimport { __unstableUseBlockElement as useBlockElement } from '../block-list/use-block-props/use-block-refs';\nimport BlockMover from '../block-mover';\nimport Shuffle from '../block-toolbar/shuffle';\n\n/**\n * Block selection button component, displaying the label of the block. If the block\n * descends from a root block, a button is displayed enabling the user to select\n * the root block.\n *\n * @param {string} props Component props.\n * @param {string} props.clientId Client ID of block.\n *\n * @return {Component} The component to be rendered.\n */\nfunction BlockSelectionButton( { clientId, rootClientId } ) {\n\tconst selected = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockIndex,\n\t\t\t\thasBlockMovingClientId,\n\t\t\t\tgetBlockListSettings,\n\t\t\t\t__unstableGetEditorMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getActiveBlockVariation, getBlockType } =\n\t\t\t\tselect( blocksStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tconst { name, attributes } = getBlock( clientId );\n\t\t\tconst blockType = getBlockType( name );\n\t\t\tconst orientation =\n\t\t\t\tgetBlockListSettings( rootClientId )?.orientation;\n\t\t\tconst match = getActiveBlockVariation( name, attributes );\n\n\t\t\treturn {\n\t\t\t\tblockMovingMode: hasBlockMovingClientId(),\n\t\t\t\teditorMode: __unstableGetEditorMode(),\n\t\t\t\ticon: match?.icon || blockType.icon,\n\t\t\t\tlabel: getAccessibleBlockLabel(\n\t\t\t\t\tblockType,\n\t\t\t\t\tattributes,\n\t\t\t\t\tindex + 1,\n\t\t\t\t\torientation\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\tconst { label, icon, blockMovingMode, editorMode } = selected;\n\tconst { setNavigationMode, removeBlock } = useDispatch( blockEditorStore );\n\tconst ref = useRef();\n\n\t// Focus the breadcrumb in navigation mode.\n\tuseEffect( () => {\n\t\tref.current.focus();\n\n\t\tspeak( label );\n\t}, [ label ] );\n\tconst blockElement = useBlockElement( clientId );\n\n\tconst {\n\t\thasBlockMovingClientId,\n\t\tgetBlockIndex,\n\t\tgetBlockRootClientId,\n\t\tgetClientIdsOfDescendants,\n\t\tgetSelectedBlockClientId,\n\t\tgetMultiSelectedBlocksEndClientId,\n\t\tgetPreviousBlockClientId,\n\t\tgetNextBlockClientId,\n\t} = useSelect( blockEditorStore );\n\tconst {\n\t\tselectBlock,\n\t\tclearSelectedBlock,\n\t\tsetBlockMovingClientId,\n\t\tmoveBlockToPosition,\n\t} = useDispatch( blockEditorStore );\n\n\tfunction onKeyDown( event ) {\n\t\tconst { keyCode } = event;\n\t\tconst isUp = keyCode === UP;\n\t\tconst isDown = keyCode === DOWN;\n\t\tconst isLeft = keyCode === LEFT;\n\t\tconst isRight = keyCode === RIGHT;\n\t\tconst isTab = keyCode === TAB;\n\t\tconst isEscape = keyCode === ESCAPE;\n\t\tconst isEnter = keyCode === ENTER;\n\t\tconst isSpace = keyCode === SPACE;\n\t\tconst isShift = event.shiftKey;\n\t\tif ( isEscape && editorMode === 'navigation' ) {\n\t\t\tsetNavigationMode( false );\n\t\t\tevent.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( keyCode === BACKSPACE || keyCode === DELETE ) {\n\t\t\tremoveBlock( clientId );\n\t\t\tevent.preventDefault();\n\t\t\treturn;\n\t\t}\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst selectionEndClientId = getMultiSelectedBlocksEndClientId();\n\t\tconst selectionBeforeEndClientId = getPreviousBlockClientId(\n\t\t\tselectionEndClientId || selectedBlockClientId\n\t\t);\n\t\tconst selectionAfterEndClientId = getNextBlockClientId(\n\t\t\tselectionEndClientId || selectedBlockClientId\n\t\t);\n\n\t\tconst navigateUp = ( isTab && isShift ) || isUp;\n\t\tconst navigateDown = ( isTab && ! isShift ) || isDown;\n\t\t// Move out of current nesting level (no effect if at root level).\n\t\tconst navigateOut = isLeft;\n\t\t// Move into next nesting level (no effect if the current block has no innerBlocks).\n\t\tconst navigateIn = isRight;\n\n\t\tlet focusedBlockUid;\n\t\tif ( navigateUp ) {\n\t\t\tfocusedBlockUid = selectionBeforeEndClientId;\n\t\t} else if ( navigateDown ) {\n\t\t\tfocusedBlockUid = selectionAfterEndClientId;\n\t\t} else if ( navigateOut ) {\n\t\t\tfocusedBlockUid =\n\t\t\t\tgetBlockRootClientId( selectedBlockClientId ) ??\n\t\t\t\tselectedBlockClientId;\n\t\t} else if ( navigateIn ) {\n\t\t\tfocusedBlockUid =\n\t\t\t\tgetClientIdsOfDescendants( selectedBlockClientId )[ 0 ] ??\n\t\t\t\tselectedBlockClientId;\n\t\t}\n\t\tconst startingBlockClientId = hasBlockMovingClientId();\n\t\tif ( isEscape && startingBlockClientId && ! event.defaultPrevented ) {\n\t\t\tsetBlockMovingClientId( null );\n\t\t\tevent.preventDefault();\n\t\t}\n\t\tif ( ( isEnter || isSpace ) && startingBlockClientId ) {\n\t\t\tconst sourceRoot = getBlockRootClientId( startingBlockClientId );\n\t\t\tconst destRoot = getBlockRootClientId( selectedBlockClientId );\n\t\t\tconst sourceBlockIndex = getBlockIndex( startingBlockClientId );\n\t\t\tlet destinationBlockIndex = getBlockIndex( selectedBlockClientId );\n\t\t\tif (\n\t\t\t\tsourceBlockIndex < destinationBlockIndex &&\n\t\t\t\tsourceRoot === destRoot\n\t\t\t) {\n\t\t\t\tdestinationBlockIndex -= 1;\n\t\t\t}\n\t\t\tmoveBlockToPosition(\n\t\t\t\tstartingBlockClientId,\n\t\t\t\tsourceRoot,\n\t\t\t\tdestRoot,\n\t\t\t\tdestinationBlockIndex\n\t\t\t);\n\t\t\tselectBlock( startingBlockClientId );\n\t\t\tsetBlockMovingClientId( null );\n\t\t}\n\t\t// Prevent the block from being moved into itself.\n\t\tif (\n\t\t\tstartingBlockClientId &&\n\t\t\tselectedBlockClientId === startingBlockClientId &&\n\t\t\tnavigateIn\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tif ( navigateDown || navigateUp || navigateOut || navigateIn ) {\n\t\t\tif ( focusedBlockUid ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tselectBlock( focusedBlockUid );\n\t\t\t} else if ( isTab && selectedBlockClientId ) {\n\t\t\t\tlet nextTabbable;\n\n\t\t\t\tif ( navigateDown ) {\n\t\t\t\t\tnextTabbable = blockElement;\n\t\t\t\t\tdo {\n\t\t\t\t\t\tnextTabbable = focus.tabbable.findNext( nextTabbable );\n\t\t\t\t\t} while (\n\t\t\t\t\t\tnextTabbable &&\n\t\t\t\t\t\tblockElement.contains( nextTabbable )\n\t\t\t\t\t);\n\n\t\t\t\t\tif ( ! nextTabbable ) {\n\t\t\t\t\t\tnextTabbable =\n\t\t\t\t\t\t\tblockElement.ownerDocument.defaultView.frameElement;\n\t\t\t\t\t\tnextTabbable = focus.tabbable.findNext( nextTabbable );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tnextTabbable = focus.tabbable.findPrevious( blockElement );\n\t\t\t\t}\n\n\t\t\t\tif ( nextTabbable ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tnextTabbable.focus();\n\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tconst classNames = classnames(\n\t\t'block-editor-block-list__block-selection-button',\n\t\t{\n\t\t\t'is-block-moving-mode': !! blockMovingMode,\n\t\t}\n\t);\n\n\tconst dragHandleLabel = __( 'Drag' );\n\n\treturn (\n\t\t<div className={ classNames }>\n\t\t\t<Flex\n\t\t\t\tjustify=\"center\"\n\t\t\t\tclassName=\"block-editor-block-list__block-selection-button__content\"\n\t\t\t>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<BlockIcon icon={ icon } showColors />\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t{ editorMode === 'zoom-out' && (\n\t\t\t\t\t\t<BlockMover clientIds={ [ clientId ] } hideDragHandle />\n\t\t\t\t\t) }\n\t\t\t\t\t{ editorMode === 'navigation' && (\n\t\t\t\t\t\t<BlockDraggable clientIds={ [ clientId ] }>\n\t\t\t\t\t\t\t{ ( draggableProps ) => (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ticon={ dragHandle }\n\t\t\t\t\t\t\t\t\tclassName=\"block-selection-button_drag-handle\"\n\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\tlabel={ dragHandleLabel }\n\t\t\t\t\t\t\t\t\t// Should not be able to tab to drag handle as this\n\t\t\t\t\t\t\t\t\t// button can only be used with a pointer device.\n\t\t\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t\t\t{ ...draggableProps }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</BlockDraggable>\n\t\t\t\t\t) }\n\t\t\t\t</FlexItem>\n\t\t\t\t{ editorMode === 'zoom-out' && (\n\t\t\t\t\t<Shuffle clientId={ clientId } as={ Button } />\n\t\t\t\t) }\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\teditorMode === 'navigation'\n\t\t\t\t\t\t\t\t? () => setNavigationMode( false )\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\tshowTooltip={ false }\n\t\t\t\t\t\tclassName=\"block-selection-button_select-button\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockTitle\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tmaximumLength={ 35 }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\t\t</div>\n\t);\n}\n\nexport default BlockSelectionButton;\n"],"mappings":"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"}
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = EmptyBlockInserter;
8
8
  var _react = require("react");
9
9
  var _classnames = _interopRequireDefault(require("classnames"));
10
- var _blockPopover = _interopRequireDefault(require("../block-popover"));
10
+ var _cover = _interopRequireDefault(require("../block-popover/cover"));
11
11
  var _useBlockToolbarPopoverProps = _interopRequireDefault(require("./use-block-toolbar-popover-props"));
12
12
  var _inserter = _interopRequireDefault(require("../inserter"));
13
13
  var _useSelectedBlockToolProps = _interopRequireDefault(require("./use-selected-block-tool-props"));
@@ -33,16 +33,13 @@ function EmptyBlockInserter({
33
33
  contentElement: __unstableContentRef?.current,
34
34
  clientId
35
35
  });
36
- return (0, _react.createElement)(_blockPopover.default, {
36
+ return (0, _react.createElement)(_cover.default, {
37
37
  clientId: capturingClientId || clientId,
38
- __unstableCoverTarget: true,
39
38
  bottomClientId: lastClientId,
40
39
  className: (0, _classnames.default)('block-editor-block-list__block-side-inserter-popover', {
41
40
  'is-insertion-point-visible': isInsertionPointVisible
42
41
  }),
43
42
  __unstableContentRef: __unstableContentRef,
44
- resize: false,
45
- shift: false,
46
43
  ...popoverProps
47
44
  }, (0, _react.createElement)("div", {
48
45
  className: "block-editor-block-list__empty-block-inserter"
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_blockPopover","_useBlockToolbarPopoverProps","_inserter","_useSelectedBlockToolProps","EmptyBlockInserter","clientId","__unstableContentRef","capturingClientId","isInsertionPointVisible","lastClientId","rootClientId","useSelectedBlockToolProps","popoverProps","useBlockToolbarPopoverProps","contentElement","current","_react","createElement","default","__unstableCoverTarget","bottomClientId","className","classnames","resize","shift","position","__experimentalIsQuick"],"sources":["@wordpress/block-editor/src/components/block-tools/empty-block-inserter.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * Internal dependencies\n */\nimport BlockPopover from '../block-popover';\nimport useBlockToolbarPopoverProps from './use-block-toolbar-popover-props';\nimport Inserter from '../inserter';\nimport useSelectedBlockToolProps from './use-selected-block-tool-props';\n\nexport default function EmptyBlockInserter( {\n\tclientId,\n\t__unstableContentRef,\n} ) {\n\tconst {\n\t\tcapturingClientId,\n\t\tisInsertionPointVisible,\n\t\tlastClientId,\n\t\trootClientId,\n\t} = useSelectedBlockToolProps( clientId );\n\n\tconst popoverProps = useBlockToolbarPopoverProps( {\n\t\tcontentElement: __unstableContentRef?.current,\n\t\tclientId,\n\t} );\n\n\treturn (\n\t\t<BlockPopover\n\t\t\tclientId={ capturingClientId || clientId }\n\t\t\t__unstableCoverTarget\n\t\t\tbottomClientId={ lastClientId }\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-block-list__block-side-inserter-popover',\n\t\t\t\t{\n\t\t\t\t\t'is-insertion-point-visible': isInsertionPointVisible,\n\t\t\t\t}\n\t\t\t) }\n\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\tresize={ false }\n\t\t\tshift={ false }\n\t\t\t{ ...popoverProps }\n\t\t>\n\t\t\t<div className=\"block-editor-block-list__empty-block-inserter\">\n\t\t\t\t<Inserter\n\t\t\t\t\tposition=\"bottom right\"\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t__experimentalIsQuick\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</BlockPopover>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,aAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,4BAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,SAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,0BAAA,GAAAL,sBAAA,CAAAC,OAAA;AAXA;AACA;AACA;;AAGA;AACA;AACA;;AAMe,SAASK,kBAAkBA,CAAE;EAC3CC,QAAQ;EACRC;AACD,CAAC,EAAG;EACH,MAAM;IACLC,iBAAiB;IACjBC,uBAAuB;IACvBC,YAAY;IACZC;EACD,CAAC,GAAG,IAAAC,kCAAyB,EAAEN,QAAS,CAAC;EAEzC,MAAMO,YAAY,GAAG,IAAAC,oCAA2B,EAAE;IACjDC,cAAc,EAAER,oBAAoB,EAAES,OAAO;IAC7CV;EACD,CAAE,CAAC;EAEH,OACC,IAAAW,MAAA,CAAAC,aAAA,EAACjB,aAAA,CAAAkB,OAAY;IACZb,QAAQ,EAAGE,iBAAiB,IAAIF,QAAU;IAC1Cc,qBAAqB;IACrBC,cAAc,EAAGX,YAAc;IAC/BY,SAAS,EAAG,IAAAC,mBAAU,EACrB,sDAAsD,EACtD;MACC,4BAA4B,EAAEd;IAC/B,CACD,CAAG;IACHF,oBAAoB,EAAGA,oBAAsB;IAC7CiB,MAAM,EAAG,KAAO;IAChBC,KAAK,EAAG,KAAO;IAAA,GACVZ;EAAY,GAEjB,IAAAI,MAAA,CAAAC,aAAA;IAAKI,SAAS,EAAC;EAA+C,GAC7D,IAAAL,MAAA,CAAAC,aAAA,EAACf,SAAA,CAAAgB,OAAQ;IACRO,QAAQ,EAAC,cAAc;IACvBf,YAAY,EAAGA,YAAc;IAC7BL,QAAQ,EAAGA,QAAU;IACrBqB,qBAAqB;EAAA,CACrB,CACG,CACQ,CAAC;AAEjB"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_cover","_useBlockToolbarPopoverProps","_inserter","_useSelectedBlockToolProps","EmptyBlockInserter","clientId","__unstableContentRef","capturingClientId","isInsertionPointVisible","lastClientId","rootClientId","useSelectedBlockToolProps","popoverProps","useBlockToolbarPopoverProps","contentElement","current","_react","createElement","default","bottomClientId","className","classnames","position","__experimentalIsQuick"],"sources":["@wordpress/block-editor/src/components/block-tools/empty-block-inserter.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * Internal dependencies\n */\nimport BlockPopoverCover from '../block-popover/cover';\nimport useBlockToolbarPopoverProps from './use-block-toolbar-popover-props';\nimport Inserter from '../inserter';\nimport useSelectedBlockToolProps from './use-selected-block-tool-props';\n\nexport default function EmptyBlockInserter( {\n\tclientId,\n\t__unstableContentRef,\n} ) {\n\tconst {\n\t\tcapturingClientId,\n\t\tisInsertionPointVisible,\n\t\tlastClientId,\n\t\trootClientId,\n\t} = useSelectedBlockToolProps( clientId );\n\n\tconst popoverProps = useBlockToolbarPopoverProps( {\n\t\tcontentElement: __unstableContentRef?.current,\n\t\tclientId,\n\t} );\n\n\treturn (\n\t\t<BlockPopoverCover\n\t\t\tclientId={ capturingClientId || clientId }\n\t\t\tbottomClientId={ lastClientId }\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-editor-block-list__block-side-inserter-popover',\n\t\t\t\t{\n\t\t\t\t\t'is-insertion-point-visible': isInsertionPointVisible,\n\t\t\t\t}\n\t\t\t) }\n\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t{ ...popoverProps }\n\t\t>\n\t\t\t<div className=\"block-editor-block-list__empty-block-inserter\">\n\t\t\t\t<Inserter\n\t\t\t\t\tposition=\"bottom right\"\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t__experimentalIsQuick\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</BlockPopoverCover>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,4BAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,SAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,0BAAA,GAAAL,sBAAA,CAAAC,OAAA;AAXA;AACA;AACA;;AAGA;AACA;AACA;;AAMe,SAASK,kBAAkBA,CAAE;EAC3CC,QAAQ;EACRC;AACD,CAAC,EAAG;EACH,MAAM;IACLC,iBAAiB;IACjBC,uBAAuB;IACvBC,YAAY;IACZC;EACD,CAAC,GAAG,IAAAC,kCAAyB,EAAEN,QAAS,CAAC;EAEzC,MAAMO,YAAY,GAAG,IAAAC,oCAA2B,EAAE;IACjDC,cAAc,EAAER,oBAAoB,EAAES,OAAO;IAC7CV;EACD,CAAE,CAAC;EAEH,OACC,IAAAW,MAAA,CAAAC,aAAA,EAACjB,MAAA,CAAAkB,OAAiB;IACjBb,QAAQ,EAAGE,iBAAiB,IAAIF,QAAU;IAC1Cc,cAAc,EAAGV,YAAc;IAC/BW,SAAS,EAAG,IAAAC,mBAAU,EACrB,sDAAsD,EACtD;MACC,4BAA4B,EAAEb;IAC/B,CACD,CAAG;IACHF,oBAAoB,EAAGA,oBAAsB;IAAA,GACxCM;EAAY,GAEjB,IAAAI,MAAA,CAAAC,aAAA;IAAKG,SAAS,EAAC;EAA+C,GAC7D,IAAAJ,MAAA,CAAAC,aAAA,EAACf,SAAA,CAAAgB,OAAQ;IACRI,QAAQ,EAAC,cAAc;IACvBZ,YAAY,EAAGA,YAAc;IAC7BL,QAAQ,EAAGA,QAAU;IACrBkB,qBAAqB;EAAA,CACrB,CACG,CACa,CAAC;AAEtB"}