@wordpress/block-editor 12.25.0 → 12.26.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 (674) hide show
  1. package/CHANGELOG.md +9 -3
  2. package/README.md +6 -0
  3. package/build/components/block-actions/index.js +4 -2
  4. package/build/components/block-actions/index.js.map +1 -1
  5. package/build/components/block-alignment-control/ui.js +2 -2
  6. package/build/components/block-alignment-control/ui.js.map +1 -1
  7. package/build/components/block-card/index.js +2 -2
  8. package/build/components/block-card/index.js.map +1 -1
  9. package/build/components/block-compare/index.js +2 -2
  10. package/build/components/block-compare/index.js.map +1 -1
  11. package/build/components/block-edit/edit.js +2 -2
  12. package/build/components/block-edit/edit.js.map +1 -1
  13. package/build/components/block-icon/index.js +2 -2
  14. package/build/components/block-icon/index.js.map +1 -1
  15. package/build/components/block-inspector/index.js +1 -1
  16. package/build/components/block-inspector/index.js.map +1 -1
  17. package/build/components/block-list/block.js +4 -4
  18. package/build/components/block-list/block.js.map +1 -1
  19. package/build/components/block-list/block.native.js +2 -2
  20. package/build/components/block-list/block.native.js.map +1 -1
  21. package/build/components/block-list/index.js +2 -2
  22. package/build/components/block-list/index.js.map +1 -1
  23. package/build/components/block-list/use-block-props/index.js +5 -2
  24. package/build/components/block-list/use-block-props/index.js.map +1 -1
  25. package/build/components/block-list/use-block-props/use-scroll-into-view.js +44 -0
  26. package/build/components/block-list/use-block-props/use-scroll-into-view.js.map +1 -0
  27. package/build/components/block-list-appender/index.js +2 -2
  28. package/build/components/block-list-appender/index.js.map +1 -1
  29. package/build/components/block-mover/button.js +2 -2
  30. package/build/components/block-mover/button.js.map +1 -1
  31. package/build/components/block-mover/index.js +2 -2
  32. package/build/components/block-mover/index.js.map +1 -1
  33. package/build/components/block-patterns-list/index.js +26 -5
  34. package/build/components/block-patterns-list/index.js.map +1 -1
  35. package/build/components/block-popover/cover.js +9 -6
  36. package/build/components/block-popover/cover.js.map +1 -1
  37. package/build/components/block-popover/inbetween.js +2 -2
  38. package/build/components/block-popover/inbetween.js.map +1 -1
  39. package/build/components/block-popover/index.js +22 -4
  40. package/build/components/block-popover/index.js.map +1 -1
  41. package/build/components/block-preview/index.js +2 -2
  42. package/build/components/block-preview/index.js.map +1 -1
  43. package/build/components/block-settings-menu/block-settings-dropdown.js +8 -5
  44. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  45. package/build/components/block-settings-menu-controls/index.js +10 -7
  46. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  47. package/build/components/block-styles/index.js +2 -2
  48. package/build/components/block-styles/index.js.map +1 -1
  49. package/build/components/block-toolbar/index.js +3 -3
  50. package/build/components/block-toolbar/index.js.map +1 -1
  51. package/build/components/block-tools/block-selection-button.js +2 -2
  52. package/build/components/block-tools/block-selection-button.js.map +1 -1
  53. package/build/components/block-tools/block-toolbar-breadcrumb.js +4 -4
  54. package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
  55. package/build/components/block-tools/block-toolbar-popover.js +2 -2
  56. package/build/components/block-tools/block-toolbar-popover.js.map +1 -1
  57. package/build/components/block-tools/empty-block-inserter.js +2 -2
  58. package/build/components/block-tools/empty-block-inserter.js.map +1 -1
  59. package/build/components/block-tools/index.js +20 -1
  60. package/build/components/block-tools/index.js.map +1 -1
  61. package/build/components/block-tools/insertion-point.js +4 -4
  62. package/build/components/block-tools/insertion-point.js.map +1 -1
  63. package/build/components/block-tools/zoom-out-mode-inserters.js +66 -22
  64. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  65. package/build/components/block-variation-picker/index.js +2 -2
  66. package/build/components/block-variation-picker/index.js.map +1 -1
  67. package/build/components/button-block-appender/index.js +2 -2
  68. package/build/components/button-block-appender/index.js.map +1 -1
  69. package/build/components/child-layout-control/index.js +2 -2
  70. package/build/components/child-layout-control/index.js.map +1 -1
  71. package/build/components/colors-gradients/control.js +3 -3
  72. package/build/components/colors-gradients/control.js.map +1 -1
  73. package/build/components/colors-gradients/dropdown.js +2 -2
  74. package/build/components/colors-gradients/dropdown.js.map +1 -1
  75. package/build/components/colors-gradients/panel-color-gradient-settings.js +2 -2
  76. package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  77. package/build/components/convert-to-group-buttons/index.js +6 -0
  78. package/build/components/convert-to-group-buttons/index.js.map +1 -1
  79. package/build/components/default-block-appender/index.js +2 -2
  80. package/build/components/default-block-appender/index.js.map +1 -1
  81. package/build/components/dimensions-tool/aspect-ratio-tool.js +30 -36
  82. package/build/components/dimensions-tool/aspect-ratio-tool.js.map +1 -1
  83. package/build/components/global-styles/background-panel.js +3 -3
  84. package/build/components/global-styles/background-panel.js.map +1 -1
  85. package/build/components/global-styles/color-panel.js +3 -3
  86. package/build/components/global-styles/color-panel.js.map +1 -1
  87. package/build/components/global-styles/dimensions-panel.js +4 -4
  88. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  89. package/build/components/global-styles/filters-panel.js +2 -2
  90. package/build/components/global-styles/filters-panel.js.map +1 -1
  91. package/build/components/global-styles/shadow-panel-components.js +4 -4
  92. package/build/components/global-styles/shadow-panel-components.js.map +1 -1
  93. package/build/components/global-styles/use-global-styles-output.js +1 -1
  94. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  95. package/build/components/grid-visualizer/grid-item-resizer.js +141 -24
  96. package/build/components/grid-visualizer/grid-item-resizer.js.map +1 -1
  97. package/build/components/grid-visualizer/grid-visualizer.js +11 -5
  98. package/build/components/grid-visualizer/grid-visualizer.js.map +1 -1
  99. package/build/components/iframe/index.js +69 -30
  100. package/build/components/iframe/index.js.map +1 -1
  101. package/build/components/image-editor/aspect-ratio-dropdown.js +53 -36
  102. package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  103. package/build/components/image-editor/cropper.js +2 -2
  104. package/build/components/image-editor/cropper.js.map +1 -1
  105. package/build/components/image-editor/index.js +1 -1
  106. package/build/components/image-editor/index.js.map +1 -1
  107. package/build/components/index.js +8 -0
  108. package/build/components/index.js.map +1 -1
  109. package/build/components/inner-blocks/button-block-appender.js +2 -2
  110. package/build/components/inner-blocks/button-block-appender.js.map +1 -1
  111. package/build/components/inner-blocks/index.js +22 -21
  112. package/build/components/inner-blocks/index.js.map +1 -1
  113. package/build/components/inserter/block-patterns-explorer/pattern-list.js +1 -1
  114. package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  115. package/build/components/inserter/block-patterns-tab/index.js +9 -0
  116. package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
  117. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +1 -1
  118. package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  119. package/build/components/inserter/block-types-tab.js +5 -3
  120. package/build/components/inserter/block-types-tab.js.map +1 -1
  121. package/build/components/inserter/hooks/use-insertion-point.js +11 -2
  122. package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
  123. package/build/components/inserter/hooks/use-patterns-state.js +12 -5
  124. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  125. package/build/components/inserter/index.js +2 -2
  126. package/build/components/inserter/index.js.map +1 -1
  127. package/build/components/inserter/library.js +8 -2
  128. package/build/components/inserter/library.js.map +1 -1
  129. package/build/components/inserter/media-tab/media-preview.js +2 -2
  130. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  131. package/build/components/inserter/menu.js +72 -56
  132. package/build/components/inserter/menu.js.map +1 -1
  133. package/build/components/inserter/quick-inserter.js +2 -2
  134. package/build/components/inserter/quick-inserter.js.map +1 -1
  135. package/build/components/inserter/tabs.js +17 -5
  136. package/build/components/inserter/tabs.js.map +1 -1
  137. package/build/components/inserter-list-item/index.js +3 -3
  138. package/build/components/inserter-list-item/index.js.map +1 -1
  139. package/build/components/keyboard-shortcuts/index.js +9 -0
  140. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  141. package/build/components/link-control/index.js +2 -2
  142. package/build/components/link-control/index.js.map +1 -1
  143. package/build/components/link-control/link-preview.js +3 -3
  144. package/build/components/link-control/link-preview.js.map +1 -1
  145. package/build/components/link-control/search-results.js +2 -2
  146. package/build/components/link-control/search-results.js.map +1 -1
  147. package/build/components/list-view/block-contents.js +2 -2
  148. package/build/components/list-view/block-contents.js.map +1 -1
  149. package/build/components/list-view/block-select-button.js +11 -3
  150. package/build/components/list-view/block-select-button.js.map +1 -1
  151. package/build/components/list-view/block.js +35 -12
  152. package/build/components/list-view/block.js.map +1 -1
  153. package/build/components/list-view/drop-indicator.js +3 -3
  154. package/build/components/list-view/drop-indicator.js.map +1 -1
  155. package/build/components/list-view/index.js +2 -2
  156. package/build/components/list-view/index.js.map +1 -1
  157. package/build/components/list-view/leaf.js +2 -2
  158. package/build/components/list-view/leaf.js.map +1 -1
  159. package/build/components/media-placeholder/index.js +4 -4
  160. package/build/components/media-placeholder/index.js.map +1 -1
  161. package/build/components/media-replace-flow/index.js +2 -2
  162. package/build/components/media-replace-flow/index.js.map +1 -1
  163. package/build/components/plain-text/index.js +2 -2
  164. package/build/components/plain-text/index.js.map +1 -1
  165. package/build/components/provider/use-block-sync.js +18 -0
  166. package/build/components/provider/use-block-sync.js.map +1 -1
  167. package/build/components/responsive-block-control/index.js +2 -2
  168. package/build/components/responsive-block-control/index.js.map +1 -1
  169. package/build/components/rich-text/event-listeners/enter.js +33 -42
  170. package/build/components/rich-text/event-listeners/enter.js.map +1 -1
  171. package/build/components/rich-text/event-listeners/paste-handler.js +22 -42
  172. package/build/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  173. package/build/components/rich-text/format-toolbar/index.js +2 -2
  174. package/build/components/rich-text/format-toolbar/index.js.map +1 -1
  175. package/build/components/rich-text/index.js +9 -2
  176. package/build/components/rich-text/index.js.map +1 -1
  177. package/build/components/rich-text/index.native.js +2 -2
  178. package/build/components/rich-text/index.native.js.map +1 -1
  179. package/build/components/rich-text/multiline.js +30 -2
  180. package/build/components/rich-text/multiline.js.map +1 -1
  181. package/build/components/segmented-text-control/index.js +2 -2
  182. package/build/components/segmented-text-control/index.js.map +1 -1
  183. package/build/components/text-alignment-control/index.js +2 -2
  184. package/build/components/text-alignment-control/index.js.map +1 -1
  185. package/build/components/text-decoration-control/index.js +2 -2
  186. package/build/components/text-decoration-control/index.js.map +1 -1
  187. package/build/components/text-transform-control/index.js +2 -2
  188. package/build/components/text-transform-control/index.js.map +1 -1
  189. package/build/components/url-input/index.js +4 -4
  190. package/build/components/url-input/index.js.map +1 -1
  191. package/build/components/url-popover/link-editor.js +2 -2
  192. package/build/components/url-popover/link-editor.js.map +1 -1
  193. package/build/components/url-popover/link-viewer-url.js +2 -2
  194. package/build/components/url-popover/link-viewer-url.js.map +1 -1
  195. package/build/components/url-popover/link-viewer.js +2 -2
  196. package/build/components/url-popover/link-viewer.js.map +1 -1
  197. package/build/components/warning/index.js +2 -2
  198. package/build/components/warning/index.js.map +1 -1
  199. package/build/components/writing-flow/index.js +2 -2
  200. package/build/components/writing-flow/index.js.map +1 -1
  201. package/build/components/writing-flow/use-clipboard-handler.js +77 -30
  202. package/build/components/writing-flow/use-clipboard-handler.js.map +1 -1
  203. package/build/components/writing-flow/use-input.js +44 -2
  204. package/build/components/writing-flow/use-input.js.map +1 -1
  205. package/build/components/writing-flow/use-tab-nav.js +6 -1
  206. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  207. package/build/components/writing-mode-control/index.js +2 -2
  208. package/build/components/writing-mode-control/index.js.map +1 -1
  209. package/build/hooks/align.js +2 -2
  210. package/build/hooks/align.js.map +1 -1
  211. package/build/hooks/background.js +1 -1
  212. package/build/hooks/background.js.map +1 -1
  213. package/build/hooks/border.js +3 -3
  214. package/build/hooks/border.js.map +1 -1
  215. package/build/hooks/color.js +3 -3
  216. package/build/hooks/color.js.map +1 -1
  217. package/build/hooks/content-lock-ui.js +5 -28
  218. package/build/hooks/content-lock-ui.js.map +1 -1
  219. package/build/hooks/custom-class-name.js +2 -2
  220. package/build/hooks/custom-class-name.js.map +1 -1
  221. package/build/hooks/custom-class-name.native.js +2 -2
  222. package/build/hooks/custom-class-name.native.js.map +1 -1
  223. package/build/hooks/dimensions.js +2 -2
  224. package/build/hooks/dimensions.js.map +1 -1
  225. package/build/hooks/layout-child.js +16 -8
  226. package/build/hooks/layout-child.js.map +1 -1
  227. package/build/hooks/layout.js +2 -2
  228. package/build/hooks/layout.js.map +1 -1
  229. package/build/hooks/position.js +2 -2
  230. package/build/hooks/position.js.map +1 -1
  231. package/build/hooks/text-align.js +3 -3
  232. package/build/hooks/text-align.js.map +1 -1
  233. package/build/hooks/use-bindings-attributes.js +39 -13
  234. package/build/hooks/use-bindings-attributes.js.map +1 -1
  235. package/build/hooks/use-color-props.js +2 -2
  236. package/build/hooks/use-color-props.js.map +1 -1
  237. package/build/hooks/use-typography-props.js +2 -2
  238. package/build/hooks/use-typography-props.js.map +1 -1
  239. package/build/hooks/utils.js +2 -2
  240. package/build/hooks/utils.js.map +1 -1
  241. package/build/layouts/grid.js +7 -6
  242. package/build/layouts/grid.js.map +1 -1
  243. package/build/private-apis.js +4 -1
  244. package/build/private-apis.js.map +1 -1
  245. package/build/store/actions.js +134 -40
  246. package/build/store/actions.js.map +1 -1
  247. package/build/store/private-actions.js +26 -1
  248. package/build/store/private-actions.js.map +1 -1
  249. package/build/store/private-keys.js +2 -1
  250. package/build/store/private-keys.js.map +1 -1
  251. package/build/store/private-selectors.js +6 -0
  252. package/build/store/private-selectors.js.map +1 -1
  253. package/build/store/selectors.js +4 -1
  254. package/build/store/selectors.js.map +1 -1
  255. package/build/utils/selection.js +8 -0
  256. package/build/utils/selection.js.map +1 -1
  257. package/build/utils/transform-styles/index.js +12 -7
  258. package/build/utils/transform-styles/index.js.map +1 -1
  259. package/build-module/components/block-actions/index.js +4 -2
  260. package/build-module/components/block-actions/index.js.map +1 -1
  261. package/build-module/components/block-alignment-control/ui.js +2 -2
  262. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  263. package/build-module/components/block-card/index.js +2 -2
  264. package/build-module/components/block-card/index.js.map +1 -1
  265. package/build-module/components/block-compare/index.js +2 -2
  266. package/build-module/components/block-compare/index.js.map +1 -1
  267. package/build-module/components/block-edit/edit.js +2 -2
  268. package/build-module/components/block-edit/edit.js.map +1 -1
  269. package/build-module/components/block-icon/index.js +2 -2
  270. package/build-module/components/block-icon/index.js.map +1 -1
  271. package/build-module/components/block-inspector/index.js +1 -1
  272. package/build-module/components/block-inspector/index.js.map +1 -1
  273. package/build-module/components/block-list/block.js +4 -4
  274. package/build-module/components/block-list/block.js.map +1 -1
  275. package/build-module/components/block-list/block.native.js +2 -2
  276. package/build-module/components/block-list/block.native.js.map +1 -1
  277. package/build-module/components/block-list/index.js +2 -2
  278. package/build-module/components/block-list/index.js.map +1 -1
  279. package/build-module/components/block-list/use-block-props/index.js +5 -2
  280. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  281. package/build-module/components/block-list/use-block-props/use-scroll-into-view.js +37 -0
  282. package/build-module/components/block-list/use-block-props/use-scroll-into-view.js.map +1 -0
  283. package/build-module/components/block-list-appender/index.js +2 -2
  284. package/build-module/components/block-list-appender/index.js.map +1 -1
  285. package/build-module/components/block-mover/button.js +2 -2
  286. package/build-module/components/block-mover/button.js.map +1 -1
  287. package/build-module/components/block-mover/index.js +2 -2
  288. package/build-module/components/block-mover/index.js.map +1 -1
  289. package/build-module/components/block-patterns-list/index.js +27 -6
  290. package/build-module/components/block-patterns-list/index.js.map +1 -1
  291. package/build-module/components/block-popover/cover.js +9 -5
  292. package/build-module/components/block-popover/cover.js.map +1 -1
  293. package/build-module/components/block-popover/inbetween.js +2 -2
  294. package/build-module/components/block-popover/inbetween.js.map +1 -1
  295. package/build-module/components/block-popover/index.js +21 -3
  296. package/build-module/components/block-popover/index.js.map +1 -1
  297. package/build-module/components/block-preview/index.js +2 -2
  298. package/build-module/components/block-preview/index.js.map +1 -1
  299. package/build-module/components/block-settings-menu/block-settings-dropdown.js +8 -5
  300. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  301. package/build-module/components/block-settings-menu-controls/index.js +10 -7
  302. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  303. package/build-module/components/block-styles/index.js +2 -2
  304. package/build-module/components/block-styles/index.js.map +1 -1
  305. package/build-module/components/block-toolbar/index.js +3 -3
  306. package/build-module/components/block-toolbar/index.js.map +1 -1
  307. package/build-module/components/block-tools/block-selection-button.js +2 -2
  308. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  309. package/build-module/components/block-tools/block-toolbar-breadcrumb.js +4 -4
  310. package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
  311. package/build-module/components/block-tools/block-toolbar-popover.js +2 -2
  312. package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -1
  313. package/build-module/components/block-tools/empty-block-inserter.js +2 -2
  314. package/build-module/components/block-tools/empty-block-inserter.js.map +1 -1
  315. package/build-module/components/block-tools/index.js +20 -1
  316. package/build-module/components/block-tools/index.js.map +1 -1
  317. package/build-module/components/block-tools/insertion-point.js +4 -4
  318. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  319. package/build-module/components/block-tools/zoom-out-mode-inserters.js +67 -23
  320. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  321. package/build-module/components/block-variation-picker/index.js +2 -2
  322. package/build-module/components/block-variation-picker/index.js.map +1 -1
  323. package/build-module/components/button-block-appender/index.js +2 -2
  324. package/build-module/components/button-block-appender/index.js.map +1 -1
  325. package/build-module/components/child-layout-control/index.js +2 -2
  326. package/build-module/components/child-layout-control/index.js.map +1 -1
  327. package/build-module/components/colors-gradients/control.js +3 -3
  328. package/build-module/components/colors-gradients/control.js.map +1 -1
  329. package/build-module/components/colors-gradients/dropdown.js +2 -2
  330. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  331. package/build-module/components/colors-gradients/panel-color-gradient-settings.js +2 -2
  332. package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  333. package/build-module/components/convert-to-group-buttons/index.js +7 -1
  334. package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
  335. package/build-module/components/default-block-appender/index.js +2 -2
  336. package/build-module/components/default-block-appender/index.js.map +1 -1
  337. package/build-module/components/dimensions-tool/aspect-ratio-tool.js +30 -36
  338. package/build-module/components/dimensions-tool/aspect-ratio-tool.js.map +1 -1
  339. package/build-module/components/global-styles/background-panel.js +3 -3
  340. package/build-module/components/global-styles/background-panel.js.map +1 -1
  341. package/build-module/components/global-styles/color-panel.js +3 -3
  342. package/build-module/components/global-styles/color-panel.js.map +1 -1
  343. package/build-module/components/global-styles/dimensions-panel.js +4 -4
  344. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  345. package/build-module/components/global-styles/filters-panel.js +2 -2
  346. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  347. package/build-module/components/global-styles/shadow-panel-components.js +4 -4
  348. package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
  349. package/build-module/components/global-styles/use-global-styles-output.js +1 -1
  350. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  351. package/build-module/components/grid-visualizer/grid-item-resizer.js +141 -24
  352. package/build-module/components/grid-visualizer/grid-item-resizer.js.map +1 -1
  353. package/build-module/components/grid-visualizer/grid-visualizer.js +12 -6
  354. package/build-module/components/grid-visualizer/grid-visualizer.js.map +1 -1
  355. package/build-module/components/iframe/index.js +70 -31
  356. package/build-module/components/iframe/index.js.map +1 -1
  357. package/build-module/components/image-editor/aspect-ratio-dropdown.js +52 -36
  358. package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  359. package/build-module/components/image-editor/cropper.js +2 -2
  360. package/build-module/components/image-editor/cropper.js.map +1 -1
  361. package/build-module/components/image-editor/index.js +1 -1
  362. package/build-module/components/image-editor/index.js.map +1 -1
  363. package/build-module/components/index.js +1 -0
  364. package/build-module/components/index.js.map +1 -1
  365. package/build-module/components/inner-blocks/button-block-appender.js +2 -2
  366. package/build-module/components/inner-blocks/button-block-appender.js.map +1 -1
  367. package/build-module/components/inner-blocks/index.js +22 -21
  368. package/build-module/components/inner-blocks/index.js.map +1 -1
  369. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +1 -1
  370. package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
  371. package/build-module/components/inserter/block-patterns-tab/index.js +10 -1
  372. package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
  373. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +1 -1
  374. package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
  375. package/build-module/components/inserter/block-types-tab.js +6 -4
  376. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  377. package/build-module/components/inserter/hooks/use-insertion-point.js +11 -2
  378. package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
  379. package/build-module/components/inserter/hooks/use-patterns-state.js +12 -5
  380. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  381. package/build-module/components/inserter/index.js +2 -2
  382. package/build-module/components/inserter/index.js.map +1 -1
  383. package/build-module/components/inserter/library.js +8 -2
  384. package/build-module/components/inserter/library.js.map +1 -1
  385. package/build-module/components/inserter/media-tab/media-preview.js +2 -2
  386. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  387. package/build-module/components/inserter/menu.js +72 -56
  388. package/build-module/components/inserter/menu.js.map +1 -1
  389. package/build-module/components/inserter/quick-inserter.js +2 -2
  390. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  391. package/build-module/components/inserter/tabs.js +18 -6
  392. package/build-module/components/inserter/tabs.js.map +1 -1
  393. package/build-module/components/inserter-list-item/index.js +3 -3
  394. package/build-module/components/inserter-list-item/index.js.map +1 -1
  395. package/build-module/components/keyboard-shortcuts/index.js +9 -0
  396. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  397. package/build-module/components/link-control/index.js +2 -2
  398. package/build-module/components/link-control/index.js.map +1 -1
  399. package/build-module/components/link-control/link-preview.js +3 -3
  400. package/build-module/components/link-control/link-preview.js.map +1 -1
  401. package/build-module/components/link-control/search-results.js +2 -2
  402. package/build-module/components/link-control/search-results.js.map +1 -1
  403. package/build-module/components/list-view/block-contents.js +2 -2
  404. package/build-module/components/list-view/block-contents.js.map +1 -1
  405. package/build-module/components/list-view/block-select-button.js +11 -3
  406. package/build-module/components/list-view/block-select-button.js.map +1 -1
  407. package/build-module/components/list-view/block.js +36 -13
  408. package/build-module/components/list-view/block.js.map +1 -1
  409. package/build-module/components/list-view/drop-indicator.js +3 -3
  410. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  411. package/build-module/components/list-view/index.js +2 -2
  412. package/build-module/components/list-view/index.js.map +1 -1
  413. package/build-module/components/list-view/leaf.js +2 -2
  414. package/build-module/components/list-view/leaf.js.map +1 -1
  415. package/build-module/components/media-placeholder/index.js +4 -4
  416. package/build-module/components/media-placeholder/index.js.map +1 -1
  417. package/build-module/components/media-replace-flow/index.js +2 -2
  418. package/build-module/components/media-replace-flow/index.js.map +1 -1
  419. package/build-module/components/plain-text/index.js +2 -2
  420. package/build-module/components/plain-text/index.js.map +1 -1
  421. package/build-module/components/provider/use-block-sync.js +19 -1
  422. package/build-module/components/provider/use-block-sync.js.map +1 -1
  423. package/build-module/components/responsive-block-control/index.js +2 -2
  424. package/build-module/components/responsive-block-control/index.js.map +1 -1
  425. package/build-module/components/rich-text/event-listeners/enter.js +33 -43
  426. package/build-module/components/rich-text/event-listeners/enter.js.map +1 -1
  427. package/build-module/components/rich-text/event-listeners/paste-handler.js +23 -43
  428. package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -1
  429. package/build-module/components/rich-text/format-toolbar/index.js +2 -2
  430. package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
  431. package/build-module/components/rich-text/index.js +9 -2
  432. package/build-module/components/rich-text/index.js.map +1 -1
  433. package/build-module/components/rich-text/index.native.js +2 -2
  434. package/build-module/components/rich-text/index.native.js.map +1 -1
  435. package/build-module/components/rich-text/multiline.js +31 -3
  436. package/build-module/components/rich-text/multiline.js.map +1 -1
  437. package/build-module/components/segmented-text-control/index.js +2 -2
  438. package/build-module/components/segmented-text-control/index.js.map +1 -1
  439. package/build-module/components/text-alignment-control/index.js +2 -2
  440. package/build-module/components/text-alignment-control/index.js.map +1 -1
  441. package/build-module/components/text-decoration-control/index.js +2 -2
  442. package/build-module/components/text-decoration-control/index.js.map +1 -1
  443. package/build-module/components/text-transform-control/index.js +2 -2
  444. package/build-module/components/text-transform-control/index.js.map +1 -1
  445. package/build-module/components/url-input/index.js +4 -4
  446. package/build-module/components/url-input/index.js.map +1 -1
  447. package/build-module/components/url-popover/link-editor.js +2 -2
  448. package/build-module/components/url-popover/link-editor.js.map +1 -1
  449. package/build-module/components/url-popover/link-viewer-url.js +2 -2
  450. package/build-module/components/url-popover/link-viewer-url.js.map +1 -1
  451. package/build-module/components/url-popover/link-viewer.js +2 -2
  452. package/build-module/components/url-popover/link-viewer.js.map +1 -1
  453. package/build-module/components/warning/index.js +2 -2
  454. package/build-module/components/warning/index.js.map +1 -1
  455. package/build-module/components/writing-flow/index.js +2 -2
  456. package/build-module/components/writing-flow/index.js.map +1 -1
  457. package/build-module/components/writing-flow/use-clipboard-handler.js +78 -31
  458. package/build-module/components/writing-flow/use-clipboard-handler.js.map +1 -1
  459. package/build-module/components/writing-flow/use-input.js +45 -3
  460. package/build-module/components/writing-flow/use-input.js.map +1 -1
  461. package/build-module/components/writing-flow/use-tab-nav.js +6 -1
  462. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  463. package/build-module/components/writing-mode-control/index.js +2 -2
  464. package/build-module/components/writing-mode-control/index.js.map +1 -1
  465. package/build-module/hooks/align.js +2 -2
  466. package/build-module/hooks/align.js.map +1 -1
  467. package/build-module/hooks/background.js +1 -1
  468. package/build-module/hooks/background.js.map +1 -1
  469. package/build-module/hooks/border.js +3 -3
  470. package/build-module/hooks/border.js.map +1 -1
  471. package/build-module/hooks/color.js +3 -3
  472. package/build-module/hooks/color.js.map +1 -1
  473. package/build-module/hooks/content-lock-ui.js +5 -28
  474. package/build-module/hooks/content-lock-ui.js.map +1 -1
  475. package/build-module/hooks/custom-class-name.js +2 -2
  476. package/build-module/hooks/custom-class-name.js.map +1 -1
  477. package/build-module/hooks/custom-class-name.native.js +2 -2
  478. package/build-module/hooks/custom-class-name.native.js.map +1 -1
  479. package/build-module/hooks/dimensions.js +2 -2
  480. package/build-module/hooks/dimensions.js.map +1 -1
  481. package/build-module/hooks/layout-child.js +16 -8
  482. package/build-module/hooks/layout-child.js.map +1 -1
  483. package/build-module/hooks/layout.js +2 -2
  484. package/build-module/hooks/layout.js.map +1 -1
  485. package/build-module/hooks/position.js +2 -2
  486. package/build-module/hooks/position.js.map +1 -1
  487. package/build-module/hooks/text-align.js +3 -3
  488. package/build-module/hooks/text-align.js.map +1 -1
  489. package/build-module/hooks/use-bindings-attributes.js +39 -13
  490. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  491. package/build-module/hooks/use-color-props.js +2 -2
  492. package/build-module/hooks/use-color-props.js.map +1 -1
  493. package/build-module/hooks/use-typography-props.js +2 -2
  494. package/build-module/hooks/use-typography-props.js.map +1 -1
  495. package/build-module/hooks/utils.js +2 -2
  496. package/build-module/hooks/utils.js.map +1 -1
  497. package/build-module/layouts/grid.js +7 -6
  498. package/build-module/layouts/grid.js.map +1 -1
  499. package/build-module/private-apis.js +5 -2
  500. package/build-module/private-apis.js.map +1 -1
  501. package/build-module/store/actions.js +136 -42
  502. package/build-module/store/actions.js.map +1 -1
  503. package/build-module/store/private-actions.js +24 -0
  504. package/build-module/store/private-actions.js.map +1 -1
  505. package/build-module/store/private-keys.js +1 -0
  506. package/build-module/store/private-keys.js.map +1 -1
  507. package/build-module/store/private-selectors.js +5 -0
  508. package/build-module/store/private-selectors.js.map +1 -1
  509. package/build-module/store/selectors.js +4 -1
  510. package/build-module/store/selectors.js.map +1 -1
  511. package/build-module/utils/selection.js +7 -0
  512. package/build-module/utils/selection.js.map +1 -1
  513. package/build-module/utils/transform-styles/index.js +12 -7
  514. package/build-module/utils/transform-styles/index.js.map +1 -1
  515. package/build-style/content-rtl.css +89 -96
  516. package/build-style/content.css +89 -96
  517. package/build-style/style-rtl.css +14 -4
  518. package/build-style/style.css +14 -4
  519. package/build-types/components/block-context/index.d.ts +1 -1
  520. package/build-types/components/block-context/index.d.ts.map +1 -1
  521. package/package.json +32 -32
  522. package/src/components/block-actions/index.js +5 -1
  523. package/src/components/block-alignment-control/ui.js +2 -2
  524. package/src/components/block-card/index.js +2 -2
  525. package/src/components/block-compare/index.js +2 -2
  526. package/src/components/block-content-overlay/content.scss +4 -37
  527. package/src/components/block-draggable/test/helpers.native.js +8 -8
  528. package/src/components/block-edit/edit.js +2 -2
  529. package/src/components/block-icon/index.js +2 -2
  530. package/src/components/block-inspector/index.js +2 -1
  531. package/src/components/block-list/block.js +4 -4
  532. package/src/components/block-list/block.native.js +2 -2
  533. package/src/components/block-list/content.scss +46 -73
  534. package/src/components/block-list/index.js +2 -2
  535. package/src/components/block-list/use-block-props/index.js +4 -2
  536. package/src/components/block-list/use-block-props/use-scroll-into-view.js +38 -0
  537. package/src/components/block-list-appender/index.js +2 -2
  538. package/src/components/block-mover/button.js +2 -2
  539. package/src/components/block-mover/index.js +2 -2
  540. package/src/components/block-patterns-list/index.js +29 -4
  541. package/src/components/block-popover/README.md +1 -1
  542. package/src/components/block-popover/cover.js +22 -7
  543. package/src/components/block-popover/inbetween.js +2 -2
  544. package/src/components/block-popover/index.js +24 -6
  545. package/src/components/block-preview/index.js +2 -2
  546. package/src/components/block-settings-menu/block-settings-dropdown.js +14 -6
  547. package/src/components/block-settings-menu-controls/index.js +25 -16
  548. package/src/components/block-styles/index.js +2 -2
  549. package/src/components/block-toolbar/index.js +3 -3
  550. package/src/components/block-tools/block-selection-button.js +2 -2
  551. package/src/components/block-tools/block-toolbar-breadcrumb.js +5 -5
  552. package/src/components/block-tools/block-toolbar-popover.js +4 -7
  553. package/src/components/block-tools/empty-block-inserter.js +2 -2
  554. package/src/components/block-tools/index.js +24 -3
  555. package/src/components/block-tools/insertion-point.js +4 -4
  556. package/src/components/block-tools/style.scss +8 -0
  557. package/src/components/block-tools/zoom-out-mode-inserters.js +73 -21
  558. package/src/components/block-variation-picker/index.js +2 -2
  559. package/src/components/button-block-appender/index.js +2 -2
  560. package/src/components/child-layout-control/index.js +14 -2
  561. package/src/components/colors-gradients/control.js +3 -3
  562. package/src/components/colors-gradients/dropdown.js +2 -2
  563. package/src/components/colors-gradients/panel-color-gradient-settings.js +2 -2
  564. package/src/components/colors-gradients/test/control.js +3 -3
  565. package/src/components/convert-to-group-buttons/index.js +10 -1
  566. package/src/components/default-block-appender/index.js +2 -2
  567. package/src/components/dimensions-tool/aspect-ratio-tool.js +40 -67
  568. package/src/components/dimensions-tool/test/index.js +10 -0
  569. package/src/components/editable-text/README.md +0 -4
  570. package/src/components/global-styles/background-panel.js +3 -3
  571. package/src/components/global-styles/color-panel.js +3 -3
  572. package/src/components/global-styles/dimensions-panel.js +4 -4
  573. package/src/components/global-styles/filters-panel.js +2 -2
  574. package/src/components/global-styles/shadow-panel-components.js +6 -9
  575. package/src/components/global-styles/test/get-global-styles-changes.js +0 -2
  576. package/src/components/global-styles/test/use-global-styles-output.js +5 -5
  577. package/src/components/global-styles/use-global-styles-output.js +1 -1
  578. package/src/components/grid-visualizer/grid-item-resizer.js +169 -40
  579. package/src/components/grid-visualizer/grid-visualizer.js +19 -6
  580. package/src/components/iframe/content.scss +63 -0
  581. package/src/components/iframe/index.js +119 -39
  582. package/src/components/image-editor/aspect-ratio-dropdown.js +91 -59
  583. package/src/components/image-editor/cropper.js +2 -2
  584. package/src/components/image-editor/index.js +1 -1
  585. package/src/components/image-editor/test/index.js +22 -0
  586. package/src/components/index.js +1 -0
  587. package/src/components/inner-blocks/button-block-appender.js +2 -2
  588. package/src/components/inner-blocks/index.js +19 -17
  589. package/src/components/inserter/block-patterns-explorer/pattern-list.js +2 -1
  590. package/src/components/inserter/block-patterns-tab/index.js +17 -1
  591. package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +2 -1
  592. package/src/components/inserter/block-types-tab.js +7 -9
  593. package/src/components/inserter/hooks/use-insertion-point.js +15 -1
  594. package/src/components/inserter/hooks/use-patterns-state.js +18 -5
  595. package/src/components/inserter/index.js +4 -5
  596. package/src/components/inserter/library.js +6 -0
  597. package/src/components/inserter/media-tab/media-preview.js +2 -2
  598. package/src/components/inserter/menu.js +113 -107
  599. package/src/components/inserter/quick-inserter.js +2 -2
  600. package/src/components/inserter/style.scss +6 -8
  601. package/src/components/inserter/tabs.js +29 -15
  602. package/src/components/inserter-list-item/index.js +3 -3
  603. package/src/components/keyboard-shortcuts/index.js +12 -0
  604. package/src/components/line-height-control/test/index.js +16 -14
  605. package/src/components/link-control/index.js +2 -2
  606. package/src/components/link-control/link-preview.js +3 -3
  607. package/src/components/link-control/search-results.js +2 -2
  608. package/src/components/list-view/block-contents.js +2 -2
  609. package/src/components/list-view/block-select-button.js +14 -3
  610. package/src/components/list-view/block.js +54 -30
  611. package/src/components/list-view/drop-indicator.js +3 -3
  612. package/src/components/list-view/index.js +2 -2
  613. package/src/components/list-view/leaf.js +2 -5
  614. package/src/components/media-placeholder/index.js +4 -4
  615. package/src/components/media-replace-flow/index.js +2 -2
  616. package/src/components/plain-text/index.js +2 -2
  617. package/src/components/provider/use-block-sync.js +27 -1
  618. package/src/components/responsive-block-control/index.js +2 -2
  619. package/src/components/rich-text/README.md +0 -8
  620. package/src/components/rich-text/event-listeners/enter.js +28 -48
  621. package/src/components/rich-text/event-listeners/paste-handler.js +21 -58
  622. package/src/components/rich-text/format-toolbar/index.js +2 -2
  623. package/src/components/rich-text/index.js +10 -3
  624. package/src/components/rich-text/index.native.js +2 -2
  625. package/src/components/rich-text/multiline.js +31 -3
  626. package/src/components/segmented-text-control/index.js +2 -2
  627. package/src/components/text-alignment-control/index.js +2 -2
  628. package/src/components/text-decoration-control/index.js +2 -2
  629. package/src/components/text-transform-control/index.js +2 -2
  630. package/src/components/url-input/index.js +4 -4
  631. package/src/components/url-popover/link-editor.js +2 -2
  632. package/src/components/url-popover/link-viewer-url.js +2 -2
  633. package/src/components/url-popover/link-viewer.js +2 -2
  634. package/src/components/warning/index.js +2 -2
  635. package/src/components/writing-flow/index.js +2 -2
  636. package/src/components/writing-flow/use-clipboard-handler.js +107 -47
  637. package/src/components/writing-flow/use-input.js +75 -1
  638. package/src/components/writing-flow/use-tab-nav.js +10 -1
  639. package/src/components/writing-mode-control/index.js +2 -5
  640. package/src/content.scss +1 -0
  641. package/src/hooks/align.js +2 -2
  642. package/src/hooks/background.js +1 -1
  643. package/src/hooks/border.js +3 -3
  644. package/src/hooks/color.js +12 -19
  645. package/src/hooks/color.scss +1 -0
  646. package/src/hooks/content-lock-ui.js +16 -33
  647. package/src/hooks/custom-class-name.js +2 -2
  648. package/src/hooks/custom-class-name.native.js +2 -2
  649. package/src/hooks/dimensions.js +2 -2
  650. package/src/hooks/layout-child.js +34 -20
  651. package/src/hooks/layout.js +2 -2
  652. package/src/hooks/position.js +2 -2
  653. package/src/hooks/text-align.js +3 -3
  654. package/src/hooks/use-bindings-attributes.js +48 -16
  655. package/src/hooks/use-color-props.js +2 -2
  656. package/src/hooks/use-typography-props.js +2 -2
  657. package/src/hooks/utils.js +2 -2
  658. package/src/layouts/grid.js +3 -7
  659. package/src/private-apis.js +4 -0
  660. package/src/store/actions.js +225 -70
  661. package/src/store/private-actions.js +24 -0
  662. package/src/store/private-keys.js +1 -0
  663. package/src/store/private-selectors.js +15 -0
  664. package/src/store/selectors.js +4 -2
  665. package/src/utils/selection.js +8 -0
  666. package/src/utils/test/__snapshots__/transform-styles.js.snap +6 -0
  667. package/src/utils/test/transform-styles.js +14 -0
  668. package/src/utils/transform-styles/index.js +12 -9
  669. package/tsconfig.tsbuildinfo +1 -1
  670. package/build/components/rich-text/split-value.js +0 -81
  671. package/build/components/rich-text/split-value.js.map +0 -1
  672. package/build-module/components/rich-text/split-value.js +0 -75
  673. package/build-module/components/rich-text/split-value.js.map +0 -1
  674. package/src/components/rich-text/split-value.js +0 -64
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","__","useSelect","useRef","useViewportMatch","getBlockType","hasBlockSupport","isReusableBlock","isTemplatePart","ToolbarGroup","BlockMover","BlockParentSelector","BlockSwitcher","BlockControls","__unstableBlockToolbarLastItem","BlockSettingsMenu","BlockLockToolbar","BlockGroupToolbar","BlockEditVisuallyButton","useShowHoveredOrFocusedGestures","store","blockEditorStore","__unstableBlockNameContext","NavigableToolbar","Shuffle","BlockBindingsIndicator","useHasBlockToolbar","canBindBlock","PrivateBlockToolbar","hideDragHandle","focusOnMount","__experimentalInitialIndex","__experimentalOnIndexChange","variant","blockClientId","blockClientIds","isDefaultEditingMode","blockType","blockName","toolbarKey","shouldShowVisualToolbar","showParentSelector","isUsingBindings","select","getBlockName","getBlockMode","getBlockParents","getSelectedBlockClientIds","isBlockValid","getBlockRootClientId","getBlockEditingMode","getBlockAttributes","selectedBlockClientIds","selectedBlockClientId","blockRootClientId","parents","firstParentClientId","length","parentBlockName","parentBlockType","_isDefaultEditingMode","_blockName","isValid","every","id","isVisual","_isUsingBindings","metadata","bindings","rootClientId","toolbarWrapperRef","nodeRef","showHoveredOrFocusedGestures","ref","isLargeViewport","hasBlockToolbar","isMultiToolbar","isSynced","classes","innerClasses","createElement","focusEditorOnEscape","className","undefined","key","clientIds","disabled","Fragment","clientId","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\ttoolbarKey,\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\ttoolbarKey: `${ selectedBlockClientId }${ firstParentClientId }`,\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={ toolbarKey }\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\t( isDefaultEditingMode || isSynced ) && (\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\n\t\t\t\t\t\t\t\t\tclientIds={ blockClientIds }\n\t\t\t\t\t\t\t\t\tdisabled={ ! isDefaultEditingMode }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ isDefaultEditingMode && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{ ! isMultiToolbar && (\n\t\t\t\t\t\t\t\t\t\t\t<BlockLockToolbar\n\t\t\t\t\t\t\t\t\t\t\t\tclientId={ blockClientId }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t<BlockMover\n\t\t\t\t\t\t\t\t\t\t\tclientIds={ blockClientIds }\n\t\t\t\t\t\t\t\t\t\t\thideDragHandle={ hideDragHandle }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\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":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","__","useSelect","useRef","useViewportMatch","getBlockType","hasBlockSupport","isReusableBlock","isTemplatePart","ToolbarGroup","BlockMover","BlockParentSelector","BlockSwitcher","BlockControls","__unstableBlockToolbarLastItem","BlockSettingsMenu","BlockLockToolbar","BlockGroupToolbar","BlockEditVisuallyButton","useShowHoveredOrFocusedGestures","store","blockEditorStore","__unstableBlockNameContext","NavigableToolbar","Shuffle","BlockBindingsIndicator","useHasBlockToolbar","canBindBlock","PrivateBlockToolbar","hideDragHandle","focusOnMount","__experimentalInitialIndex","__experimentalOnIndexChange","variant","blockClientId","blockClientIds","isDefaultEditingMode","blockType","blockName","toolbarKey","shouldShowVisualToolbar","showParentSelector","isUsingBindings","select","getBlockName","getBlockMode","getBlockParents","getSelectedBlockClientIds","isBlockValid","getBlockRootClientId","getBlockEditingMode","getBlockAttributes","selectedBlockClientIds","selectedBlockClientId","blockRootClientId","parents","firstParentClientId","length","parentBlockName","parentBlockType","_isDefaultEditingMode","_blockName","isValid","every","id","isVisual","_isUsingBindings","metadata","bindings","rootClientId","toolbarWrapperRef","nodeRef","showHoveredOrFocusedGestures","ref","isLargeViewport","hasBlockToolbar","isMultiToolbar","isSynced","classes","innerClasses","createElement","focusEditorOnEscape","className","undefined","key","clientIds","disabled","Fragment","clientId","Slot","group","Provider","value","name","BlockToolbar"],"sources":["@wordpress/block-editor/src/components/block-toolbar/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\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\ttoolbarKey,\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\ttoolbarKey: `${ selectedBlockClientId }${ firstParentClientId }`,\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 = clsx( 'block-editor-block-contextual-toolbar', {\n\t\t'has-parent': showParentSelector,\n\t} );\n\n\tconst innerClasses = clsx( '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={ toolbarKey }\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\t( isDefaultEditingMode || isSynced ) && (\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\n\t\t\t\t\t\t\t\t\tclientIds={ blockClientIds }\n\t\t\t\t\t\t\t\t\tdisabled={ ! isDefaultEditingMode }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ isDefaultEditingMode && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{ ! isMultiToolbar && (\n\t\t\t\t\t\t\t\t\t\t\t<BlockLockToolbar\n\t\t\t\t\t\t\t\t\t\t\t\tclientId={ blockClientId }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t<BlockMover\n\t\t\t\t\t\t\t\t\t\t\tclientIds={ blockClientIds }\n\t\t\t\t\t\t\t\t\t\t\thideDragHandle={ hideDragHandle }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\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":"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","ignoreList":[]}
@@ -2,7 +2,7 @@ import { createElement } from "react";
2
2
  /**
3
3
  * External dependencies
4
4
  */
5
- import classnames from 'classnames';
5
+ import clsx from 'clsx';
6
6
 
7
7
  /**
8
8
  * WordPress dependencies
@@ -230,7 +230,7 @@ function BlockSelectionButton({
230
230
  }
231
231
  }
232
232
  }
233
- const classNames = classnames('block-editor-block-list__block-selection-button', {
233
+ const classNames = clsx('block-editor-block-list__block-selection-button', {
234
234
  'is-block-moving-mode': !!blockMovingMode
235
235
  });
236
236
  const dragHandleLabel = __('Drag');
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","dragHandle","trash","Button","Flex","FlexItem","ToolbarButton","useSelect","useDispatch","useEffect","useRef","BACKSPACE","DELETE","UP","DOWN","LEFT","RIGHT","TAB","ESCAPE","ENTER","SPACE","__experimentalGetAccessibleBlockLabel","getAccessibleBlockLabel","store","blocksStore","speak","focus","__","BlockTitle","BlockIcon","blockEditorStore","BlockDraggable","__unstableUseBlockElement","useBlockElement","BlockMover","Shuffle","BlockSelectionButton","clientId","rootClientId","selected","select","getBlock","getBlockIndex","hasBlockMovingClientId","getBlockListSettings","__unstableGetEditorMode","getNextBlockClientId","getPreviousBlockClientId","canRemoveBlock","canMoveBlock","getActiveBlockVariation","getBlockType","index","name","attributes","blockType","orientation","match","isBlockTemplatePart","isNextBlockTemplatePart","nextClientId","nextName","nextBlockType","isPrevBlockTemplatePart","prevClientId","prevName","prevBlockType","blockMovingMode","editorMode","icon","label","canRemove","canMove","setNavigationMode","removeBlock","ref","current","blockElement","getBlockRootClientId","getClientIdsOfDescendants","getSelectedBlockClientId","getMultiSelectedBlocksEndClientId","selectBlock","clearSelectedBlock","setBlockMovingClientId","moveBlockToPosition","onKeyDown","event","keyCode","isUp","isDown","isLeft","isRight","isTab","isEscape","isEnter","isSpace","isShift","shiftKey","preventDefault","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","dragHandleLabel","showBlockDraggable","createElement","className","justify","showColors","clientIds","draggableProps","tabIndex","hideDragHandle","isBlockMoverUpButtonDisabled","isBlockMoverDownButtonDisabled","as","onClick","undefined","showTooltip","maximumLength"],"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, trash } from '@wordpress/icons';\nimport { Button, Flex, FlexItem, ToolbarButton } 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\tgetNextBlockClientId,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tcanRemoveBlock,\n\t\t\t\tcanMoveBlock,\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\t\t\tconst isBlockTemplatePart =\n\t\t\t\tblockType?.name === 'core/template-part';\n\n\t\t\tlet isNextBlockTemplatePart = false;\n\t\t\tconst nextClientId = getNextBlockClientId();\n\t\t\tif ( nextClientId ) {\n\t\t\t\tconst { name: nextName } = getBlock( nextClientId );\n\t\t\t\tconst nextBlockType = getBlockType( nextName );\n\t\t\t\tisNextBlockTemplatePart =\n\t\t\t\t\tnextBlockType?.name === 'core/template-part';\n\t\t\t}\n\n\t\t\tlet isPrevBlockTemplatePart = false;\n\t\t\tconst prevClientId = getPreviousBlockClientId();\n\t\t\tif ( prevClientId ) {\n\t\t\t\tconst { name: prevName } = getBlock( prevClientId );\n\t\t\t\tconst prevBlockType = getBlockType( prevName );\n\t\t\t\tisPrevBlockTemplatePart =\n\t\t\t\t\tprevBlockType?.name === 'core/template-part';\n\t\t\t}\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\tisBlockTemplatePart,\n\t\t\t\tisNextBlockTemplatePart,\n\t\t\t\tisPrevBlockTemplatePart,\n\t\t\t\tcanRemove: canRemoveBlock( clientId, rootClientId ),\n\t\t\t\tcanMove: canMoveBlock( clientId, rootClientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\tconst {\n\t\tlabel,\n\t\ticon,\n\t\tblockMovingMode,\n\t\teditorMode,\n\t\tisBlockTemplatePart,\n\t\tisNextBlockTemplatePart,\n\t\tisPrevBlockTemplatePart,\n\t\tcanRemove,\n\t\tcanMove,\n\t} = selected;\n\tconst { setNavigationMode, removeBlock } = useDispatch( blockEditorStore );\n\tconst ref = useRef();\n\n\t// Focus the breadcrumb in navigation mode.\n\tuseEffect( () => {\n\t\tif ( editorMode === 'navigation' ) {\n\t\t\tref.current.focus();\n\t\t\tspeak( label );\n\t\t}\n\t}, [ label, editorMode ] );\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\tconst showBlockDraggable =\n\t\t( canMove && editorMode === 'navigation' ) ||\n\t\t( editorMode === 'zoom-out' && canMove && ! isBlockTemplatePart );\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{ showBlockDraggable && (\n\t\t\t\t\t<FlexItem>\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</FlexItem>\n\t\t\t\t) }\n\t\t\t\t{ editorMode === 'zoom-out' && ! isBlockTemplatePart && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<BlockMover\n\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\thideDragHandle\n\t\t\t\t\t\t\tisBlockMoverUpButtonDisabled={\n\t\t\t\t\t\t\t\tisPrevBlockTemplatePart\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisBlockMoverDownButtonDisabled={\n\t\t\t\t\t\t\t\tisNextBlockTemplatePart\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t\t{ canMove && canRemove && editorMode === 'zoom-out' && (\n\t\t\t\t\t<Shuffle clientId={ clientId } as={ Button } />\n\t\t\t\t) }\n\t\t\t\t{ canRemove &&\n\t\t\t\t\teditorMode === 'zoom-out' &&\n\t\t\t\t\t! isBlockTemplatePart && (\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\ticon={ trash }\n\t\t\t\t\t\t\t\tlabel=\"Delete\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t) }\n\t\t\t\t{ editorMode === 'navigation' && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\teditorMode === 'navigation'\n\t\t\t\t\t\t\t\t\t? () => setNavigationMode( false )\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\tshowTooltip={ false }\n\t\t\t\t\t\t\tclassName=\"block-selection-button_select-button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BlockTitle\n\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\tmaximumLength={ 35 }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t</div>\n\t);\n}\n\nexport default BlockSelectionButton;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","dragHandle","trash","Button","Flex","FlexItem","ToolbarButton","useSelect","useDispatch","useEffect","useRef","BACKSPACE","DELETE","UP","DOWN","LEFT","RIGHT","TAB","ESCAPE","ENTER","SPACE","__experimentalGetAccessibleBlockLabel","getAccessibleBlockLabel","store","blocksStore","speak","focus","__","BlockTitle","BlockIcon","blockEditorStore","BlockDraggable","__unstableUseBlockElement","useBlockElement","BlockMover","Shuffle","BlockSelectionButton","clientId","rootClientId","selected","select","getBlock","getBlockIndex","hasBlockMovingClientId","getBlockListSettings","__unstableGetEditorMode","getNextBlockClientId","getPreviousBlockClientId","canRemoveBlock","canMoveBlock","getActiveBlockVariation","getBlockType","index","name","attributes","blockType","orientation","match","isBlockTemplatePart","isNextBlockTemplatePart","nextClientId","nextName","nextBlockType","isPrevBlockTemplatePart","prevClientId","prevName","prevBlockType","blockMovingMode","editorMode","icon","label","canRemove","canMove","setNavigationMode","removeBlock","ref","current","blockElement","getBlockRootClientId","getClientIdsOfDescendants","getSelectedBlockClientId","getMultiSelectedBlocksEndClientId","selectBlock","clearSelectedBlock","setBlockMovingClientId","moveBlockToPosition","onKeyDown","event","keyCode","isUp","isDown","isLeft","isRight","isTab","isEscape","isEnter","isSpace","isShift","shiftKey","preventDefault","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","dragHandleLabel","showBlockDraggable","createElement","className","justify","showColors","clientIds","draggableProps","tabIndex","hideDragHandle","isBlockMoverUpButtonDisabled","isBlockMoverDownButtonDisabled","as","onClick","undefined","showTooltip","maximumLength"],"sources":["@wordpress/block-editor/src/components/block-tools/block-selection-button.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { dragHandle, trash } from '@wordpress/icons';\nimport { Button, Flex, FlexItem, ToolbarButton } 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\tgetNextBlockClientId,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tcanRemoveBlock,\n\t\t\t\tcanMoveBlock,\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\t\t\tconst isBlockTemplatePart =\n\t\t\t\tblockType?.name === 'core/template-part';\n\n\t\t\tlet isNextBlockTemplatePart = false;\n\t\t\tconst nextClientId = getNextBlockClientId();\n\t\t\tif ( nextClientId ) {\n\t\t\t\tconst { name: nextName } = getBlock( nextClientId );\n\t\t\t\tconst nextBlockType = getBlockType( nextName );\n\t\t\t\tisNextBlockTemplatePart =\n\t\t\t\t\tnextBlockType?.name === 'core/template-part';\n\t\t\t}\n\n\t\t\tlet isPrevBlockTemplatePart = false;\n\t\t\tconst prevClientId = getPreviousBlockClientId();\n\t\t\tif ( prevClientId ) {\n\t\t\t\tconst { name: prevName } = getBlock( prevClientId );\n\t\t\t\tconst prevBlockType = getBlockType( prevName );\n\t\t\t\tisPrevBlockTemplatePart =\n\t\t\t\t\tprevBlockType?.name === 'core/template-part';\n\t\t\t}\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\tisBlockTemplatePart,\n\t\t\t\tisNextBlockTemplatePart,\n\t\t\t\tisPrevBlockTemplatePart,\n\t\t\t\tcanRemove: canRemoveBlock( clientId, rootClientId ),\n\t\t\t\tcanMove: canMoveBlock( clientId, rootClientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\tconst {\n\t\tlabel,\n\t\ticon,\n\t\tblockMovingMode,\n\t\teditorMode,\n\t\tisBlockTemplatePart,\n\t\tisNextBlockTemplatePart,\n\t\tisPrevBlockTemplatePart,\n\t\tcanRemove,\n\t\tcanMove,\n\t} = selected;\n\tconst { setNavigationMode, removeBlock } = useDispatch( blockEditorStore );\n\tconst ref = useRef();\n\n\t// Focus the breadcrumb in navigation mode.\n\tuseEffect( () => {\n\t\tif ( editorMode === 'navigation' ) {\n\t\t\tref.current.focus();\n\t\t\tspeak( label );\n\t\t}\n\t}, [ label, editorMode ] );\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 = clsx(\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\tconst showBlockDraggable =\n\t\t( canMove && editorMode === 'navigation' ) ||\n\t\t( editorMode === 'zoom-out' && canMove && ! isBlockTemplatePart );\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{ showBlockDraggable && (\n\t\t\t\t\t<FlexItem>\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</FlexItem>\n\t\t\t\t) }\n\t\t\t\t{ editorMode === 'zoom-out' && ! isBlockTemplatePart && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<BlockMover\n\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\thideDragHandle\n\t\t\t\t\t\t\tisBlockMoverUpButtonDisabled={\n\t\t\t\t\t\t\t\tisPrevBlockTemplatePart\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisBlockMoverDownButtonDisabled={\n\t\t\t\t\t\t\t\tisNextBlockTemplatePart\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t\t{ canMove && canRemove && editorMode === 'zoom-out' && (\n\t\t\t\t\t<Shuffle clientId={ clientId } as={ Button } />\n\t\t\t\t) }\n\t\t\t\t{ canRemove &&\n\t\t\t\t\teditorMode === 'zoom-out' &&\n\t\t\t\t\t! isBlockTemplatePart && (\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\ticon={ trash }\n\t\t\t\t\t\t\t\tlabel=\"Delete\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t) }\n\t\t\t\t{ editorMode === 'navigation' && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\teditorMode === 'navigation'\n\t\t\t\t\t\t\t\t\t? () => setNavigationMode( false )\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\tshowTooltip={ false }\n\t\t\t\t\t\t\tclassName=\"block-selection-button_select-button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BlockTitle\n\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\tmaximumLength={ 35 }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t</Flex>\n\t\t</div>\n\t);\n}\n\nexport default BlockSelectionButton;\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,SAASC,UAAU,EAAEC,KAAK,QAAQ,kBAAkB;AACpD,SAASC,MAAM,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,aAAa,QAAQ,uBAAuB;AAC7E,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,SAAS,EAAEC,MAAM,QAAQ,oBAAoB;AACtD,SACCC,SAAS,EACTC,MAAM,EACNC,EAAE,EACFC,IAAI,EACJC,IAAI,EACJC,KAAK,EACLC,GAAG,EACHC,MAAM,EACNC,KAAK,EACLC,KAAK,QACC,qBAAqB;AAC5B,SACCC,qCAAqC,IAAIC,uBAAuB,EAChEC,KAAK,IAAIC,WAAW,QACd,mBAAmB;AAC1B,SAASC,KAAK,QAAQ,iBAAiB;AACvC,SAASC,KAAK,QAAQ,gBAAgB;AACtC,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,OAAOC,UAAU,MAAM,gBAAgB;AACvC,OAAOC,SAAS,MAAM,eAAe;AACrC,SAASN,KAAK,IAAIO,gBAAgB,QAAQ,aAAa;AACvD,OAAOC,cAAc,MAAM,oBAAoB;AAC/C,SAASC,yBAAyB,IAAIC,eAAe,QAAQ,8CAA8C;AAC3G,OAAOC,UAAU,MAAM,gBAAgB;AACvC,OAAOC,OAAO,MAAM,0BAA0B;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,oBAAoBA,CAAE;EAAEC,QAAQ;EAAEC;AAAa,CAAC,EAAG;EAC3D,MAAMC,QAAQ,GAAGhC,SAAS,CACvBiC,MAAM,IAAM;IACb,MAAM;MACLC,QAAQ;MACRC,aAAa;MACbC,sBAAsB;MACtBC,oBAAoB;MACpBC,uBAAuB;MACvBC,oBAAoB;MACpBC,wBAAwB;MACxBC,cAAc;MACdC;IACD,CAAC,GAAGT,MAAM,CAAEV,gBAAiB,CAAC;IAC9B,MAAM;MAAEoB,uBAAuB;MAAEC;IAAa,CAAC,GAC9CX,MAAM,CAAEhB,WAAY,CAAC;IACtB,MAAM4B,KAAK,GAAGV,aAAa,CAAEL,QAAS,CAAC;IACvC,MAAM;MAAEgB,IAAI;MAAEC;IAAW,CAAC,GAAGb,QAAQ,CAAEJ,QAAS,CAAC;IACjD,MAAMkB,SAAS,GAAGJ,YAAY,CAAEE,IAAK,CAAC;IACtC,MAAMG,WAAW,GAChBZ,oBAAoB,CAAEN,YAAa,CAAC,EAAEkB,WAAW;IAClD,MAAMC,KAAK,GAAGP,uBAAuB,CAAEG,IAAI,EAAEC,UAAW,CAAC;IACzD,MAAMI,mBAAmB,GACxBH,SAAS,EAAEF,IAAI,KAAK,oBAAoB;IAEzC,IAAIM,uBAAuB,GAAG,KAAK;IACnC,MAAMC,YAAY,GAAGd,oBAAoB,CAAC,CAAC;IAC3C,IAAKc,YAAY,EAAG;MACnB,MAAM;QAAEP,IAAI,EAAEQ;MAAS,CAAC,GAAGpB,QAAQ,CAAEmB,YAAa,CAAC;MACnD,MAAME,aAAa,GAAGX,YAAY,CAAEU,QAAS,CAAC;MAC9CF,uBAAuB,GACtBG,aAAa,EAAET,IAAI,KAAK,oBAAoB;IAC9C;IAEA,IAAIU,uBAAuB,GAAG,KAAK;IACnC,MAAMC,YAAY,GAAGjB,wBAAwB,CAAC,CAAC;IAC/C,IAAKiB,YAAY,EAAG;MACnB,MAAM;QAAEX,IAAI,EAAEY;MAAS,CAAC,GAAGxB,QAAQ,CAAEuB,YAAa,CAAC;MACnD,MAAME,aAAa,GAAGf,YAAY,CAAEc,QAAS,CAAC;MAC9CF,uBAAuB,GACtBG,aAAa,EAAEb,IAAI,KAAK,oBAAoB;IAC9C;IAEA,OAAO;MACNc,eAAe,EAAExB,sBAAsB,CAAC,CAAC;MACzCyB,UAAU,EAAEvB,uBAAuB,CAAC,CAAC;MACrCwB,IAAI,EAAEZ,KAAK,EAAEY,IAAI,IAAId,SAAS,CAACc,IAAI;MACnCC,KAAK,EAAEhD,uBAAuB,CAC7BiC,SAAS,EACTD,UAAU,EACVF,KAAK,GAAG,CAAC,EACTI,WACD,CAAC;MACDE,mBAAmB;MACnBC,uBAAuB;MACvBI,uBAAuB;MACvBQ,SAAS,EAAEvB,cAAc,CAAEX,QAAQ,EAAEC,YAAa,CAAC;MACnDkC,OAAO,EAAEvB,YAAY,CAAEZ,QAAQ,EAAEC,YAAa;IAC/C,CAAC;EACF,CAAC,EACD,CAAED,QAAQ,EAAEC,YAAY,CACzB,CAAC;EACD,MAAM;IACLgC,KAAK;IACLD,IAAI;IACJF,eAAe;IACfC,UAAU;IACVV,mBAAmB;IACnBC,uBAAuB;IACvBI,uBAAuB;IACvBQ,SAAS;IACTC;EACD,CAAC,GAAGjC,QAAQ;EACZ,MAAM;IAAEkC,iBAAiB;IAAEC;EAAY,CAAC,GAAGlE,WAAW,CAAEsB,gBAAiB,CAAC;EAC1E,MAAM6C,GAAG,GAAGjE,MAAM,CAAC,CAAC;;EAEpB;EACAD,SAAS,CAAE,MAAM;IAChB,IAAK2D,UAAU,KAAK,YAAY,EAAG;MAClCO,GAAG,CAACC,OAAO,CAAClD,KAAK,CAAC,CAAC;MACnBD,KAAK,CAAE6C,KAAM,CAAC;IACf;EACD,CAAC,EAAE,CAAEA,KAAK,EAAEF,UAAU,CAAG,CAAC;EAC1B,MAAMS,YAAY,GAAG5C,eAAe,CAAEI,QAAS,CAAC;EAEhD,MAAM;IACLM,sBAAsB;IACtBD,aAAa;IACboC,oBAAoB;IACpBC,yBAAyB;IACzBC,wBAAwB;IACxBC,iCAAiC;IACjClC,wBAAwB;IACxBD;EACD,CAAC,GAAGvC,SAAS,CAAEuB,gBAAiB,CAAC;EACjC,MAAM;IACLoD,WAAW;IACXC,kBAAkB;IAClBC,sBAAsB;IACtBC;EACD,CAAC,GAAG7E,WAAW,CAAEsB,gBAAiB,CAAC;EAEnC,SAASwD,SAASA,CAAEC,KAAK,EAAG;IAC3B,MAAM;MAAEC;IAAQ,CAAC,GAAGD,KAAK;IACzB,MAAME,IAAI,GAAGD,OAAO,KAAK3E,EAAE;IAC3B,MAAM6E,MAAM,GAAGF,OAAO,KAAK1E,IAAI;IAC/B,MAAM6E,MAAM,GAAGH,OAAO,KAAKzE,IAAI;IAC/B,MAAM6E,OAAO,GAAGJ,OAAO,KAAKxE,KAAK;IACjC,MAAM6E,KAAK,GAAGL,OAAO,KAAKvE,GAAG;IAC7B,MAAM6E,QAAQ,GAAGN,OAAO,KAAKtE,MAAM;IACnC,MAAM6E,OAAO,GAAGP,OAAO,KAAKrE,KAAK;IACjC,MAAM6E,OAAO,GAAGR,OAAO,KAAKpE,KAAK;IACjC,MAAM6E,OAAO,GAAGV,KAAK,CAACW,QAAQ;IAC9B,IAAKJ,QAAQ,IAAI1B,UAAU,KAAK,YAAY,EAAG;MAC9CK,iBAAiB,CAAE,KAAM,CAAC;MAC1Bc,KAAK,CAACY,cAAc,CAAC,CAAC;MACtB;IACD;IAEA,IAAKX,OAAO,KAAK7E,SAAS,IAAI6E,OAAO,KAAK5E,MAAM,EAAG;MAClD8D,WAAW,CAAErC,QAAS,CAAC;MACvBkD,KAAK,CAACY,cAAc,CAAC,CAAC;MACtB;IACD;IAEA,MAAMC,qBAAqB,GAAGpB,wBAAwB,CAAC,CAAC;IACxD,MAAMqB,oBAAoB,GAAGpB,iCAAiC,CAAC,CAAC;IAChE,MAAMqB,0BAA0B,GAAGvD,wBAAwB,CAC1DsD,oBAAoB,IAAID,qBACzB,CAAC;IACD,MAAMG,yBAAyB,GAAGzD,oBAAoB,CACrDuD,oBAAoB,IAAID,qBACzB,CAAC;IAED,MAAMI,UAAU,GAAKX,KAAK,IAAII,OAAO,IAAMR,IAAI;IAC/C,MAAMgB,YAAY,GAAKZ,KAAK,IAAI,CAAEI,OAAO,IAAMP,MAAM;IACrD;IACA,MAAMgB,WAAW,GAAGf,MAAM;IAC1B;IACA,MAAMgB,UAAU,GAAGf,OAAO;IAE1B,IAAIgB,eAAe;IACnB,IAAKJ,UAAU,EAAG;MACjBI,eAAe,GAAGN,0BAA0B;IAC7C,CAAC,MAAM,IAAKG,YAAY,EAAG;MAC1BG,eAAe,GAAGL,yBAAyB;IAC5C,CAAC,MAAM,IAAKG,WAAW,EAAG;MAAA,IAAAG,qBAAA;MACzBD,eAAe,IAAAC,qBAAA,GACd/B,oBAAoB,CAAEsB,qBAAsB,CAAC,cAAAS,qBAAA,cAAAA,qBAAA,GAC7CT,qBAAqB;IACvB,CAAC,MAAM,IAAKO,UAAU,EAAG;MAAA,IAAAG,qBAAA;MACxBF,eAAe,IAAAE,qBAAA,GACd/B,yBAAyB,CAAEqB,qBAAsB,CAAC,CAAE,CAAC,CAAE,cAAAU,qBAAA,cAAAA,qBAAA,GACvDV,qBAAqB;IACvB;IACA,MAAMW,qBAAqB,GAAGpE,sBAAsB,CAAC,CAAC;IACtD,IAAKmD,QAAQ,IAAIiB,qBAAqB,IAAI,CAAExB,KAAK,CAACyB,gBAAgB,EAAG;MACpE5B,sBAAsB,CAAE,IAAK,CAAC;MAC9BG,KAAK,CAACY,cAAc,CAAC,CAAC;IACvB;IACA,IAAK,CAAEJ,OAAO,IAAIC,OAAO,KAAMe,qBAAqB,EAAG;MACtD,MAAME,UAAU,GAAGnC,oBAAoB,CAAEiC,qBAAsB,CAAC;MAChE,MAAMG,QAAQ,GAAGpC,oBAAoB,CAAEsB,qBAAsB,CAAC;MAC9D,MAAMe,gBAAgB,GAAGzE,aAAa,CAAEqE,qBAAsB,CAAC;MAC/D,IAAIK,qBAAqB,GAAG1E,aAAa,CAAE0D,qBAAsB,CAAC;MAClE,IACCe,gBAAgB,GAAGC,qBAAqB,IACxCH,UAAU,KAAKC,QAAQ,EACtB;QACDE,qBAAqB,IAAI,CAAC;MAC3B;MACA/B,mBAAmB,CAClB0B,qBAAqB,EACrBE,UAAU,EACVC,QAAQ,EACRE,qBACD,CAAC;MACDlC,WAAW,CAAE6B,qBAAsB,CAAC;MACpC3B,sBAAsB,CAAE,IAAK,CAAC;IAC/B;IACA;IACA,IACC2B,qBAAqB,IACrBX,qBAAqB,KAAKW,qBAAqB,IAC/CJ,UAAU,EACT;MACD;IACD;IACA,IAAKF,YAAY,IAAID,UAAU,IAAIE,WAAW,IAAIC,UAAU,EAAG;MAC9D,IAAKC,eAAe,EAAG;QACtBrB,KAAK,CAACY,cAAc,CAAC,CAAC;QACtBjB,WAAW,CAAE0B,eAAgB,CAAC;MAC/B,CAAC,MAAM,IAAKf,KAAK,IAAIO,qBAAqB,EAAG;QAC5C,IAAIiB,YAAY;QAEhB,IAAKZ,YAAY,EAAG;UACnBY,YAAY,GAAGxC,YAAY;UAC3B,GAAG;YACFwC,YAAY,GAAG3F,KAAK,CAAC4F,QAAQ,CAACC,QAAQ,CAAEF,YAAa,CAAC;UACvD,CAAC,QACAA,YAAY,IACZxC,YAAY,CAAC2C,QAAQ,CAAEH,YAAa,CAAC;UAGtC,IAAK,CAAEA,YAAY,EAAG;YACrBA,YAAY,GACXxC,YAAY,CAAC4C,aAAa,CAACC,WAAW,CAACC,YAAY;YACpDN,YAAY,GAAG3F,KAAK,CAAC4F,QAAQ,CAACC,QAAQ,CAAEF,YAAa,CAAC;UACvD;QACD,CAAC,MAAM;UACNA,YAAY,GAAG3F,KAAK,CAAC4F,QAAQ,CAACM,YAAY,CAAE/C,YAAa,CAAC;QAC3D;QAEA,IAAKwC,YAAY,EAAG;UACnB9B,KAAK,CAACY,cAAc,CAAC,CAAC;UACtBkB,YAAY,CAAC3F,KAAK,CAAC,CAAC;UACpByD,kBAAkB,CAAC,CAAC;QACrB;MACD;IACD;EACD;EAEA,MAAM0C,UAAU,GAAG7H,IAAI,CACtB,iDAAiD,EACjD;IACC,sBAAsB,EAAE,CAAC,CAAEmE;EAC5B,CACD,CAAC;EAED,MAAM2D,eAAe,GAAGnG,EAAE,CAAE,MAAO,CAAC;EACpC,MAAMoG,kBAAkB,GACrBvD,OAAO,IAAIJ,UAAU,KAAK,YAAY,IACtCA,UAAU,KAAK,UAAU,IAAII,OAAO,IAAI,CAAEd,mBAAqB;EAElE,OACCsE,aAAA;IAAKC,SAAS,EAAGJ;EAAY,GAC5BG,aAAA,CAAC5H,IAAI;IACJ8H,OAAO,EAAC,QAAQ;IAChBD,SAAS,EAAC;EAA0D,GAEpED,aAAA,CAAC3H,QAAQ,QACR2H,aAAA,CAACnG,SAAS;IAACwC,IAAI,EAAGA,IAAM;IAAC8D,UAAU;EAAA,CAAE,CAC5B,CAAC,EACTJ,kBAAkB,IACnBC,aAAA,CAAC3H,QAAQ,QACR2H,aAAA,CAACjG,cAAc;IAACqG,SAAS,EAAG,CAAE/F,QAAQ;EAAI,GACrCgG,cAAc,IACjBL,aAAA,CAAC7H,MAAM;IACNkE,IAAI,EAAGpE,UAAY;IACnBgI,SAAS,EAAC,oCAAoC;IAC9C,eAAY,MAAM;IAClB3D,KAAK,EAAGwD;IACR;IACA;IAAA;IACAQ,QAAQ,EAAC,IAAI;IAAA,GACRD;EAAc,CACnB,CAEa,CACP,CACV,EACCjE,UAAU,KAAK,UAAU,IAAI,CAAEV,mBAAmB,IACnDsE,aAAA,CAAC3H,QAAQ,QACR2H,aAAA,CAAC9F,UAAU;IACVkG,SAAS,EAAG,CAAE/F,QAAQ,CAAI;IAC1BkG,cAAc;IACdC,4BAA4B,EAC3BzE,uBACA;IACD0E,8BAA8B,EAC7B9E;EACA,CACD,CACQ,CACV,EACCa,OAAO,IAAID,SAAS,IAAIH,UAAU,KAAK,UAAU,IAClD4D,aAAA,CAAC7F,OAAO;IAACE,QAAQ,EAAGA,QAAU;IAACqG,EAAE,EAAGvI;EAAQ,CAAE,CAC9C,EACCoE,SAAS,IACVH,UAAU,KAAK,UAAU,IACzB,CAAEV,mBAAmB,IACpBsE,aAAA,CAAC3H,QAAQ,QACR2H,aAAA,CAAC1H,aAAa;IACb+D,IAAI,EAAGnE,KAAO;IACdoE,KAAK,EAAC,QAAQ;IACdqE,OAAO,EAAGA,CAAA,KAAM;MACfjE,WAAW,CAAErC,QAAS,CAAC;IACxB;EAAG,CACH,CACQ,CACV,EACA+B,UAAU,KAAK,YAAY,IAC5B4D,aAAA,CAAC3H,QAAQ,QACR2H,aAAA,CAAC7H,MAAM;IACNwE,GAAG,EAAGA,GAAK;IACXgE,OAAO,EACNvE,UAAU,KAAK,YAAY,GACxB,MAAMK,iBAAiB,CAAE,KAAM,CAAC,GAChCmE,SACH;IACDtD,SAAS,EAAGA,SAAW;IACvBhB,KAAK,EAAGA,KAAO;IACfuE,WAAW,EAAG,KAAO;IACrBZ,SAAS,EAAC;EAAsC,GAEhDD,aAAA,CAACpG,UAAU;IACVS,QAAQ,EAAGA,QAAU;IACrByG,aAAa,EAAG;EAAI,CACpB,CACM,CACC,CAEN,CACF,CAAC;AAER;AAEA,eAAe1G,oBAAoB","ignoreList":[]}
@@ -2,13 +2,13 @@ import { createElement } from "react";
2
2
  /**
3
3
  * External dependencies
4
4
  */
5
- import classnames from 'classnames';
5
+ import clsx from 'clsx';
6
6
 
7
7
  /**
8
8
  * Internal dependencies
9
9
  */
10
10
  import BlockSelectionButton from './block-selection-button';
11
- import BlockPopover from '../block-popover';
11
+ import { PrivateBlockPopover } from '../block-popover';
12
12
  import useBlockToolbarPopoverProps from './use-block-toolbar-popover-props';
13
13
  import useSelectedBlockToolProps from './use-selected-block-tool-props';
14
14
  export default function BlockToolbarBreadcrumb({
@@ -25,10 +25,10 @@ export default function BlockToolbarBreadcrumb({
25
25
  contentElement: __unstableContentRef?.current,
26
26
  clientId
27
27
  });
28
- return createElement(BlockPopover, {
28
+ return createElement(PrivateBlockPopover, {
29
29
  clientId: capturingClientId || clientId,
30
30
  bottomClientId: lastClientId,
31
- className: classnames('block-editor-block-list__block-popover', {
31
+ className: clsx('block-editor-block-list__block-popover', {
32
32
  'is-insertion-point-visible': isInsertionPointVisible
33
33
  }),
34
34
  resize: false,
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","BlockSelectionButton","BlockPopover","useBlockToolbarPopoverProps","useSelectedBlockToolProps","BlockToolbarBreadcrumb","clientId","__unstableContentRef","capturingClientId","isInsertionPointVisible","lastClientId","rootClientId","popoverProps","contentElement","current","createElement","bottomClientId","className","resize"],"sources":["@wordpress/block-editor/src/components/block-tools/block-toolbar-breadcrumb.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * Internal dependencies\n */\nimport BlockSelectionButton from './block-selection-button';\nimport BlockPopover from '../block-popover';\nimport useBlockToolbarPopoverProps from './use-block-toolbar-popover-props';\nimport useSelectedBlockToolProps from './use-selected-block-tool-props';\n\nexport default function BlockToolbarBreadcrumb( {\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\tbottomClientId={ lastClientId }\n\t\t\tclassName={ classnames( 'block-editor-block-list__block-popover', {\n\t\t\t\t'is-insertion-point-visible': isInsertionPointVisible,\n\t\t\t} ) }\n\t\t\tresize={ false }\n\t\t\t{ ...popoverProps }\n\t\t>\n\t\t\t<BlockSelectionButton\n\t\t\t\tclientId={ clientId }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t/>\n\t\t</BlockPopover>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,OAAOC,oBAAoB,MAAM,0BAA0B;AAC3D,OAAOC,YAAY,MAAM,kBAAkB;AAC3C,OAAOC,2BAA2B,MAAM,mCAAmC;AAC3E,OAAOC,yBAAyB,MAAM,iCAAiC;AAEvE,eAAe,SAASC,sBAAsBA,CAAE;EAC/CC,QAAQ;EACRC;AACD,CAAC,EAAG;EACH,MAAM;IACLC,iBAAiB;IACjBC,uBAAuB;IACvBC,YAAY;IACZC;EACD,CAAC,GAAGP,yBAAyB,CAAEE,QAAS,CAAC;EAEzC,MAAMM,YAAY,GAAGT,2BAA2B,CAAE;IACjDU,cAAc,EAAEN,oBAAoB,EAAEO,OAAO;IAC7CR;EACD,CAAE,CAAC;EAEH,OACCS,aAAA,CAACb,YAAY;IACZI,QAAQ,EAAGE,iBAAiB,IAAIF,QAAU;IAC1CU,cAAc,EAAGN,YAAc;IAC/BO,SAAS,EAAGjB,UAAU,CAAE,wCAAwC,EAAE;MACjE,4BAA4B,EAAES;IAC/B,CAAE,CAAG;IACLS,MAAM,EAAG,KAAO;IAAA,GACXN;EAAY,GAEjBG,aAAA,CAACd,oBAAoB;IACpBK,QAAQ,EAAGA,QAAU;IACrBK,YAAY,EAAGA;EAAc,CAC7B,CACY,CAAC;AAEjB","ignoreList":[]}
1
+ {"version":3,"names":["clsx","BlockSelectionButton","PrivateBlockPopover","useBlockToolbarPopoverProps","useSelectedBlockToolProps","BlockToolbarBreadcrumb","clientId","__unstableContentRef","capturingClientId","isInsertionPointVisible","lastClientId","rootClientId","popoverProps","contentElement","current","createElement","bottomClientId","className","resize"],"sources":["@wordpress/block-editor/src/components/block-tools/block-toolbar-breadcrumb.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * Internal dependencies\n */\nimport BlockSelectionButton from './block-selection-button';\nimport { PrivateBlockPopover } from '../block-popover';\nimport useBlockToolbarPopoverProps from './use-block-toolbar-popover-props';\nimport useSelectedBlockToolProps from './use-selected-block-tool-props';\n\nexport default function BlockToolbarBreadcrumb( {\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<PrivateBlockPopover\n\t\t\tclientId={ capturingClientId || clientId }\n\t\t\tbottomClientId={ lastClientId }\n\t\t\tclassName={ clsx( 'block-editor-block-list__block-popover', {\n\t\t\t\t'is-insertion-point-visible': isInsertionPointVisible,\n\t\t\t} ) }\n\t\t\tresize={ false }\n\t\t\t{ ...popoverProps }\n\t\t>\n\t\t\t<BlockSelectionButton\n\t\t\t\tclientId={ clientId }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t/>\n\t\t</PrivateBlockPopover>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,OAAOC,oBAAoB,MAAM,0BAA0B;AAC3D,SAASC,mBAAmB,QAAQ,kBAAkB;AACtD,OAAOC,2BAA2B,MAAM,mCAAmC;AAC3E,OAAOC,yBAAyB,MAAM,iCAAiC;AAEvE,eAAe,SAASC,sBAAsBA,CAAE;EAC/CC,QAAQ;EACRC;AACD,CAAC,EAAG;EACH,MAAM;IACLC,iBAAiB;IACjBC,uBAAuB;IACvBC,YAAY;IACZC;EACD,CAAC,GAAGP,yBAAyB,CAAEE,QAAS,CAAC;EAEzC,MAAMM,YAAY,GAAGT,2BAA2B,CAAE;IACjDU,cAAc,EAAEN,oBAAoB,EAAEO,OAAO;IAC7CR;EACD,CAAE,CAAC;EAEH,OACCS,aAAA,CAACb,mBAAmB;IACnBI,QAAQ,EAAGE,iBAAiB,IAAIF,QAAU;IAC1CU,cAAc,EAAGN,YAAc;IAC/BO,SAAS,EAAGjB,IAAI,CAAE,wCAAwC,EAAE;MAC3D,4BAA4B,EAAES;IAC/B,CAAE,CAAG;IACLS,MAAM,EAAG,KAAO;IAAA,GACXN;EAAY,GAEjBG,aAAA,CAACd,oBAAoB;IACpBK,QAAQ,EAAGA,QAAU;IACrBK,YAAY,EAAGA;EAAc,CAC7B,CACmB,CAAC;AAExB","ignoreList":[]}
@@ -2,7 +2,7 @@ import { createElement } from "react";
2
2
  /**
3
3
  * External dependencies
4
4
  */
5
- import classnames from 'classnames';
5
+ import clsx from 'clsx';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
@@ -54,7 +54,7 @@ export default function BlockToolbarPopover({
54
54
  return !isTyping && createElement(BlockPopover, {
55
55
  clientId: capturingClientId || clientId,
56
56
  bottomClientId: lastClientId,
57
- className: classnames('block-editor-block-list__block-popover', {
57
+ className: clsx('block-editor-block-list__block-popover', {
58
58
  'is-insertion-point-visible': isInsertionPointVisible
59
59
  }),
60
60
  resize: false,
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","useDispatch","useEffect","useRef","useShortcut","BlockPopover","useBlockToolbarPopoverProps","useSelectedBlockToolProps","store","blockEditorStore","PrivateBlockToolbar","BlockToolbarPopover","clientId","isTyping","__unstableContentRef","capturingClientId","isInsertionPointVisible","lastClientId","initialToolbarItemIndexRef","current","undefined","stopTyping","isToolbarForced","popoverProps","contentElement","createElement","bottomClientId","className","resize","focusOnMount","__experimentalInitialIndex","__experimentalOnIndexChange","index","variant"],"sources":["@wordpress/block-editor/src/components/block-tools/block-toolbar-popover.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n/**\n * WordPress dependencies\n */\nimport { useDispatch } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\n/**\n * Internal dependencies\n */\nimport BlockPopover from '../block-popover';\nimport useBlockToolbarPopoverProps from './use-block-toolbar-popover-props';\nimport useSelectedBlockToolProps from './use-selected-block-tool-props';\nimport { store as blockEditorStore } from '../../store';\nimport { PrivateBlockToolbar } from '../block-toolbar';\n\nexport default function BlockToolbarPopover( {\n\tclientId,\n\tisTyping,\n\t__unstableContentRef,\n} ) {\n\tconst { capturingClientId, isInsertionPointVisible, lastClientId } =\n\t\tuseSelectedBlockToolProps( clientId );\n\n\t// Stores the active toolbar item index so the block toolbar can return focus\n\t// to it when re-mounting.\n\tconst initialToolbarItemIndexRef = useRef();\n\n\tuseEffect( () => {\n\t\t// Resets the index whenever the active block changes so this is not\n\t\t// persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169\n\t\tinitialToolbarItemIndexRef.current = undefined;\n\t}, [ clientId ] );\n\n\tconst { stopTyping } = useDispatch( blockEditorStore );\n\tconst isToolbarForced = useRef( false );\n\n\tuseShortcut( 'core/block-editor/focus-toolbar', () => {\n\t\tisToolbarForced.current = true;\n\t\tstopTyping( true );\n\t} );\n\n\tuseEffect( () => {\n\t\tisToolbarForced.current = false;\n\t} );\n\n\tconst popoverProps = useBlockToolbarPopoverProps( {\n\t\tcontentElement: __unstableContentRef?.current,\n\t\tclientId,\n\t} );\n\n\treturn (\n\t\t! isTyping && (\n\t\t\t<BlockPopover\n\t\t\t\tclientId={ capturingClientId || clientId }\n\t\t\t\tbottomClientId={ lastClientId }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-block-list__block-popover',\n\t\t\t\t\t{\n\t\t\t\t\t\t'is-insertion-point-visible': isInsertionPointVisible,\n\t\t\t\t\t}\n\t\t\t\t) }\n\t\t\t\tresize={ false }\n\t\t\t\t{ ...popoverProps }\n\t\t\t>\n\t\t\t\t<PrivateBlockToolbar\n\t\t\t\t\t// If the toolbar is being shown because of being forced\n\t\t\t\t\t// it should focus the toolbar right after the mount.\n\t\t\t\t\tfocusOnMount={ isToolbarForced.current }\n\t\t\t\t\t__experimentalInitialIndex={\n\t\t\t\t\t\tinitialToolbarItemIndexRef.current\n\t\t\t\t\t}\n\t\t\t\t\t__experimentalOnIndexChange={ ( index ) => {\n\t\t\t\t\t\tinitialToolbarItemIndexRef.current = index;\n\t\t\t\t\t} }\n\t\t\t\t\tvariant=\"toolbar\"\n\t\t\t\t/>\n\t\t\t</BlockPopover>\n\t\t)\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;AACnC;AACA;AACA;AACA,SAASC,WAAW,QAAQ,iBAAiB;AAC7C,SAASC,SAAS,EAAEC,MAAM,QAAQ,oBAAoB;AACtD,SAASC,WAAW,QAAQ,+BAA+B;AAC3D;AACA;AACA;AACA,OAAOC,YAAY,MAAM,kBAAkB;AAC3C,OAAOC,2BAA2B,MAAM,mCAAmC;AAC3E,OAAOC,yBAAyB,MAAM,iCAAiC;AACvE,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AACvD,SAASC,mBAAmB,QAAQ,kBAAkB;AAEtD,eAAe,SAASC,mBAAmBA,CAAE;EAC5CC,QAAQ;EACRC,QAAQ;EACRC;AACD,CAAC,EAAG;EACH,MAAM;IAAEC,iBAAiB;IAAEC,uBAAuB;IAAEC;EAAa,CAAC,GACjEV,yBAAyB,CAAEK,QAAS,CAAC;;EAEtC;EACA;EACA,MAAMM,0BAA0B,GAAGf,MAAM,CAAC,CAAC;EAE3CD,SAAS,CAAE,MAAM;IAChB;IACA;IACAgB,0BAA0B,CAACC,OAAO,GAAGC,SAAS;EAC/C,CAAC,EAAE,CAAER,QAAQ,CAAG,CAAC;EAEjB,MAAM;IAAES;EAAW,CAAC,GAAGpB,WAAW,CAAEQ,gBAAiB,CAAC;EACtD,MAAMa,eAAe,GAAGnB,MAAM,CAAE,KAAM,CAAC;EAEvCC,WAAW,CAAE,iCAAiC,EAAE,MAAM;IACrDkB,eAAe,CAACH,OAAO,GAAG,IAAI;IAC9BE,UAAU,CAAE,IAAK,CAAC;EACnB,CAAE,CAAC;EAEHnB,SAAS,CAAE,MAAM;IAChBoB,eAAe,CAACH,OAAO,GAAG,KAAK;EAChC,CAAE,CAAC;EAEH,MAAMI,YAAY,GAAGjB,2BAA2B,CAAE;IACjDkB,cAAc,EAAEV,oBAAoB,EAAEK,OAAO;IAC7CP;EACD,CAAE,CAAC;EAEH,OACC,CAAEC,QAAQ,IACTY,aAAA,CAACpB,YAAY;IACZO,QAAQ,EAAGG,iBAAiB,IAAIH,QAAU;IAC1Cc,cAAc,EAAGT,YAAc;IAC/BU,SAAS,EAAG3B,UAAU,CACrB,wCAAwC,EACxC;MACC,4BAA4B,EAAEgB;IAC/B,CACD,CAAG;IACHY,MAAM,EAAG,KAAO;IAAA,GACXL;EAAY,GAEjBE,aAAA,CAACf;EACA;EACA;EAAA;IACAmB,YAAY,EAAGP,eAAe,CAACH,OAAS;IACxCW,0BAA0B,EACzBZ,0BAA0B,CAACC,OAC3B;IACDY,2BAA2B,EAAKC,KAAK,IAAM;MAC1Cd,0BAA0B,CAACC,OAAO,GAAGa,KAAK;IAC3C,CAAG;IACHC,OAAO,EAAC;EAAS,CACjB,CACY,CACd;AAEH","ignoreList":[]}
1
+ {"version":3,"names":["clsx","useDispatch","useEffect","useRef","useShortcut","BlockPopover","useBlockToolbarPopoverProps","useSelectedBlockToolProps","store","blockEditorStore","PrivateBlockToolbar","BlockToolbarPopover","clientId","isTyping","__unstableContentRef","capturingClientId","isInsertionPointVisible","lastClientId","initialToolbarItemIndexRef","current","undefined","stopTyping","isToolbarForced","popoverProps","contentElement","createElement","bottomClientId","className","resize","focusOnMount","__experimentalInitialIndex","__experimentalOnIndexChange","index","variant"],"sources":["@wordpress/block-editor/src/components/block-tools/block-toolbar-popover.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n/**\n * WordPress dependencies\n */\nimport { useDispatch } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\n/**\n * Internal dependencies\n */\nimport BlockPopover from '../block-popover';\nimport useBlockToolbarPopoverProps from './use-block-toolbar-popover-props';\nimport useSelectedBlockToolProps from './use-selected-block-tool-props';\nimport { store as blockEditorStore } from '../../store';\nimport { PrivateBlockToolbar } from '../block-toolbar';\n\nexport default function BlockToolbarPopover( {\n\tclientId,\n\tisTyping,\n\t__unstableContentRef,\n} ) {\n\tconst { capturingClientId, isInsertionPointVisible, lastClientId } =\n\t\tuseSelectedBlockToolProps( clientId );\n\n\t// Stores the active toolbar item index so the block toolbar can return focus\n\t// to it when re-mounting.\n\tconst initialToolbarItemIndexRef = useRef();\n\n\tuseEffect( () => {\n\t\t// Resets the index whenever the active block changes so this is not\n\t\t// persisted. See https://github.com/WordPress/gutenberg/pull/25760#issuecomment-717906169\n\t\tinitialToolbarItemIndexRef.current = undefined;\n\t}, [ clientId ] );\n\n\tconst { stopTyping } = useDispatch( blockEditorStore );\n\tconst isToolbarForced = useRef( false );\n\n\tuseShortcut( 'core/block-editor/focus-toolbar', () => {\n\t\tisToolbarForced.current = true;\n\t\tstopTyping( true );\n\t} );\n\n\tuseEffect( () => {\n\t\tisToolbarForced.current = false;\n\t} );\n\n\tconst popoverProps = useBlockToolbarPopoverProps( {\n\t\tcontentElement: __unstableContentRef?.current,\n\t\tclientId,\n\t} );\n\n\treturn (\n\t\t! isTyping && (\n\t\t\t<BlockPopover\n\t\t\t\tclientId={ capturingClientId || clientId }\n\t\t\t\tbottomClientId={ lastClientId }\n\t\t\t\tclassName={ clsx( 'block-editor-block-list__block-popover', {\n\t\t\t\t\t'is-insertion-point-visible': isInsertionPointVisible,\n\t\t\t\t} ) }\n\t\t\t\tresize={ false }\n\t\t\t\t{ ...popoverProps }\n\t\t\t>\n\t\t\t\t<PrivateBlockToolbar\n\t\t\t\t\t// If the toolbar is being shown because of being forced\n\t\t\t\t\t// it should focus the toolbar right after the mount.\n\t\t\t\t\tfocusOnMount={ isToolbarForced.current }\n\t\t\t\t\t__experimentalInitialIndex={\n\t\t\t\t\t\tinitialToolbarItemIndexRef.current\n\t\t\t\t\t}\n\t\t\t\t\t__experimentalOnIndexChange={ ( index ) => {\n\t\t\t\t\t\tinitialToolbarItemIndexRef.current = index;\n\t\t\t\t\t} }\n\t\t\t\t\tvariant=\"toolbar\"\n\t\t\t\t/>\n\t\t\t</BlockPopover>\n\t\t)\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;AACvB;AACA;AACA;AACA,SAASC,WAAW,QAAQ,iBAAiB;AAC7C,SAASC,SAAS,EAAEC,MAAM,QAAQ,oBAAoB;AACtD,SAASC,WAAW,QAAQ,+BAA+B;AAC3D;AACA;AACA;AACA,OAAOC,YAAY,MAAM,kBAAkB;AAC3C,OAAOC,2BAA2B,MAAM,mCAAmC;AAC3E,OAAOC,yBAAyB,MAAM,iCAAiC;AACvE,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AACvD,SAASC,mBAAmB,QAAQ,kBAAkB;AAEtD,eAAe,SAASC,mBAAmBA,CAAE;EAC5CC,QAAQ;EACRC,QAAQ;EACRC;AACD,CAAC,EAAG;EACH,MAAM;IAAEC,iBAAiB;IAAEC,uBAAuB;IAAEC;EAAa,CAAC,GACjEV,yBAAyB,CAAEK,QAAS,CAAC;;EAEtC;EACA;EACA,MAAMM,0BAA0B,GAAGf,MAAM,CAAC,CAAC;EAE3CD,SAAS,CAAE,MAAM;IAChB;IACA;IACAgB,0BAA0B,CAACC,OAAO,GAAGC,SAAS;EAC/C,CAAC,EAAE,CAAER,QAAQ,CAAG,CAAC;EAEjB,MAAM;IAAES;EAAW,CAAC,GAAGpB,WAAW,CAAEQ,gBAAiB,CAAC;EACtD,MAAMa,eAAe,GAAGnB,MAAM,CAAE,KAAM,CAAC;EAEvCC,WAAW,CAAE,iCAAiC,EAAE,MAAM;IACrDkB,eAAe,CAACH,OAAO,GAAG,IAAI;IAC9BE,UAAU,CAAE,IAAK,CAAC;EACnB,CAAE,CAAC;EAEHnB,SAAS,CAAE,MAAM;IAChBoB,eAAe,CAACH,OAAO,GAAG,KAAK;EAChC,CAAE,CAAC;EAEH,MAAMI,YAAY,GAAGjB,2BAA2B,CAAE;IACjDkB,cAAc,EAAEV,oBAAoB,EAAEK,OAAO;IAC7CP;EACD,CAAE,CAAC;EAEH,OACC,CAAEC,QAAQ,IACTY,aAAA,CAACpB,YAAY;IACZO,QAAQ,EAAGG,iBAAiB,IAAIH,QAAU;IAC1Cc,cAAc,EAAGT,YAAc;IAC/BU,SAAS,EAAG3B,IAAI,CAAE,wCAAwC,EAAE;MAC3D,4BAA4B,EAAEgB;IAC/B,CAAE,CAAG;IACLY,MAAM,EAAG,KAAO;IAAA,GACXL;EAAY,GAEjBE,aAAA,CAACf;EACA;EACA;EAAA;IACAmB,YAAY,EAAGP,eAAe,CAACH,OAAS;IACxCW,0BAA0B,EACzBZ,0BAA0B,CAACC,OAC3B;IACDY,2BAA2B,EAAKC,KAAK,IAAM;MAC1Cd,0BAA0B,CAACC,OAAO,GAAGa,KAAK;IAC3C,CAAG;IACHC,OAAO,EAAC;EAAS,CACjB,CACY,CACd;AAEH","ignoreList":[]}
@@ -2,7 +2,7 @@ import { createElement } from "react";
2
2
  /**
3
3
  * External dependencies
4
4
  */
5
- import classnames from 'classnames';
5
+ import clsx from 'clsx';
6
6
 
7
7
  /**
8
8
  * Internal dependencies
@@ -28,7 +28,7 @@ export default function EmptyBlockInserter({
28
28
  return createElement(BlockPopoverCover, {
29
29
  clientId: capturingClientId || clientId,
30
30
  bottomClientId: lastClientId,
31
- className: classnames('block-editor-block-list__block-side-inserter-popover', {
31
+ className: clsx('block-editor-block-list__block-side-inserter-popover', {
32
32
  'is-insertion-point-visible': isInsertionPointVisible
33
33
  }),
34
34
  __unstableContentRef: __unstableContentRef,
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","BlockPopoverCover","useBlockToolbarPopoverProps","Inserter","useSelectedBlockToolProps","EmptyBlockInserter","clientId","__unstableContentRef","capturingClientId","isInsertionPointVisible","lastClientId","rootClientId","popoverProps","contentElement","current","createElement","bottomClientId","className","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":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,OAAOC,iBAAiB,MAAM,wBAAwB;AACtD,OAAOC,2BAA2B,MAAM,mCAAmC;AAC3E,OAAOC,QAAQ,MAAM,aAAa;AAClC,OAAOC,yBAAyB,MAAM,iCAAiC;AAEvE,eAAe,SAASC,kBAAkBA,CAAE;EAC3CC,QAAQ;EACRC;AACD,CAAC,EAAG;EACH,MAAM;IACLC,iBAAiB;IACjBC,uBAAuB;IACvBC,YAAY;IACZC;EACD,CAAC,GAAGP,yBAAyB,CAAEE,QAAS,CAAC;EAEzC,MAAMM,YAAY,GAAGV,2BAA2B,CAAE;IACjDW,cAAc,EAAEN,oBAAoB,EAAEO,OAAO;IAC7CR;EACD,CAAE,CAAC;EAEH,OACCS,aAAA,CAACd,iBAAiB;IACjBK,QAAQ,EAAGE,iBAAiB,IAAIF,QAAU;IAC1CU,cAAc,EAAGN,YAAc;IAC/BO,SAAS,EAAGjB,UAAU,CACrB,sDAAsD,EACtD;MACC,4BAA4B,EAAES;IAC/B,CACD,CAAG;IACHF,oBAAoB,EAAGA,oBAAsB;IAAA,GACxCK;EAAY,GAEjBG,aAAA;IAAKE,SAAS,EAAC;EAA+C,GAC7DF,aAAA,CAACZ,QAAQ;IACRe,QAAQ,EAAC,cAAc;IACvBP,YAAY,EAAGA,YAAc;IAC7BL,QAAQ,EAAGA,QAAU;IACrBa,qBAAqB;EAAA,CACrB,CACG,CACa,CAAC;AAEtB","ignoreList":[]}
1
+ {"version":3,"names":["clsx","BlockPopoverCover","useBlockToolbarPopoverProps","Inserter","useSelectedBlockToolProps","EmptyBlockInserter","clientId","__unstableContentRef","capturingClientId","isInsertionPointVisible","lastClientId","rootClientId","popoverProps","contentElement","current","createElement","bottomClientId","className","position","__experimentalIsQuick"],"sources":["@wordpress/block-editor/src/components/block-tools/empty-block-inserter.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\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={ clsx(\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":";AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,OAAOC,iBAAiB,MAAM,wBAAwB;AACtD,OAAOC,2BAA2B,MAAM,mCAAmC;AAC3E,OAAOC,QAAQ,MAAM,aAAa;AAClC,OAAOC,yBAAyB,MAAM,iCAAiC;AAEvE,eAAe,SAASC,kBAAkBA,CAAE;EAC3CC,QAAQ;EACRC;AACD,CAAC,EAAG;EACH,MAAM;IACLC,iBAAiB;IACjBC,uBAAuB;IACvBC,YAAY;IACZC;EACD,CAAC,GAAGP,yBAAyB,CAAEE,QAAS,CAAC;EAEzC,MAAMM,YAAY,GAAGV,2BAA2B,CAAE;IACjDW,cAAc,EAAEN,oBAAoB,EAAEO,OAAO;IAC7CR;EACD,CAAE,CAAC;EAEH,OACCS,aAAA,CAACd,iBAAiB;IACjBK,QAAQ,EAAGE,iBAAiB,IAAIF,QAAU;IAC1CU,cAAc,EAAGN,YAAc;IAC/BO,SAAS,EAAGjB,IAAI,CACf,sDAAsD,EACtD;MACC,4BAA4B,EAAES;IAC/B,CACD,CAAG;IACHF,oBAAoB,EAAGA,oBAAsB;IAAA,GACxCK;EAAY,GAEjBG,aAAA;IAAKE,SAAS,EAAC;EAA+C,GAC7DF,aAAA,CAACZ,QAAQ;IACRe,QAAQ,EAAC,cAAc;IACvBP,YAAY,EAAGA,YAAc;IAC7BL,QAAQ,EAAGA,QAAU;IACrBa,qBAAqB;EAAA,CACrB,CACG,CACa,CAAC;AAEtB","ignoreList":[]}
@@ -7,6 +7,9 @@ import { isTextField } from '@wordpress/dom';
7
7
  import { Popover } from '@wordpress/components';
8
8
  import { __unstableUseShortcutEventMatch as useShortcutEventMatch } from '@wordpress/keyboard-shortcuts';
9
9
  import { useRef } from '@wordpress/element';
10
+ import { switchToBlockType, store as blocksStore } from '@wordpress/blocks';
11
+ import { speak } from '@wordpress/a11y';
12
+ import { __ } from '@wordpress/i18n';
10
13
 
11
14
  /**
12
15
  * Internal dependencies
@@ -60,9 +63,14 @@ export default function BlockTools({
60
63
  } = useSelect(selector, []);
61
64
  const isMatch = useShortcutEventMatch();
62
65
  const {
66
+ getBlocksByClientId,
63
67
  getSelectedBlockClientIds,
64
- getBlockRootClientId
68
+ getBlockRootClientId,
69
+ isGroupable
65
70
  } = useSelect(blockEditorStore);
71
+ const {
72
+ getGroupingBlockName
73
+ } = useSelect(blocksStore);
66
74
  const {
67
75
  showEmptyBlockSideInserter,
68
76
  showBreadcrumb,
@@ -71,6 +79,7 @@ export default function BlockTools({
71
79
  const {
72
80
  duplicateBlocks,
73
81
  removeBlocks,
82
+ replaceBlocks,
74
83
  insertAfterBlock,
75
84
  insertBeforeBlock,
76
85
  selectBlock,
@@ -146,6 +155,16 @@ export default function BlockTools({
146
155
  }
147
156
  event.preventDefault();
148
157
  expandBlock(clientId);
158
+ } else if (isMatch('core/block-editor/group', event)) {
159
+ const clientIds = getSelectedBlockClientIds();
160
+ if (clientIds.length > 1 && isGroupable(clientIds)) {
161
+ event.preventDefault();
162
+ const blocks = getBlocksByClientId(clientIds);
163
+ const groupingBlockName = getGroupingBlockName();
164
+ const newBlocks = switchToBlockType(blocks, groupingBlockName);
165
+ replaceBlocks(clientIds, newBlocks);
166
+ speak(__('Selected blocks are grouped.'));
167
+ }
149
168
  }
150
169
  }
151
170
  const blockToolbarRef = usePopoverScroll(__unstableContentRef);
@@ -1 +1 @@
1
- {"version":3,"names":["useSelect","useDispatch","isTextField","Popover","__unstableUseShortcutEventMatch","useShortcutEventMatch","useRef","EmptyBlockInserter","InsertionPointOpenRef","default","InsertionPoint","BlockToolbarPopover","BlockToolbarBreadcrumb","store","blockEditorStore","usePopoverScroll","ZoomOutModeInserters","useShowBlockTools","unlock","selector","select","getSelectedBlockClientId","getFirstMultiSelectedBlockClientId","getSettings","__unstableGetEditorMode","isTyping","clientId","editorMode","hasFixedToolbar","isZoomOutMode","BlockTools","children","__unstableContentRef","props","isMatch","getSelectedBlockClientIds","getBlockRootClientId","showEmptyBlockSideInserter","showBreadcrumb","showBlockToolbarPopover","duplicateBlocks","removeBlocks","insertAfterBlock","insertBeforeBlock","selectBlock","moveBlocksUp","moveBlocksDown","expandBlock","onKeyDown","event","defaultPrevented","clientIds","length","preventDefault","rootClientId","target","closest","contentWindow","document","activeElement","blockToolbarRef","blockToolbarAfterRef","createElement","Provider","value","Slot","name","ref"],"sources":["@wordpress/block-editor/src/components/block-tools/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { isTextField } from '@wordpress/dom';\nimport { Popover } from '@wordpress/components';\nimport { __unstableUseShortcutEventMatch as useShortcutEventMatch } from '@wordpress/keyboard-shortcuts';\nimport { useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport EmptyBlockInserter from './empty-block-inserter';\nimport {\n\tInsertionPointOpenRef,\n\tdefault as InsertionPoint,\n} from './insertion-point';\nimport BlockToolbarPopover from './block-toolbar-popover';\nimport BlockToolbarBreadcrumb from './block-toolbar-breadcrumb';\nimport { store as blockEditorStore } from '../../store';\nimport usePopoverScroll from '../block-popover/use-popover-scroll';\nimport ZoomOutModeInserters from './zoom-out-mode-inserters';\nimport { useShowBlockTools } from './use-show-block-tools';\nimport { unlock } from '../../lock-unlock';\n\nfunction selector( select ) {\n\tconst {\n\t\tgetSelectedBlockClientId,\n\t\tgetFirstMultiSelectedBlockClientId,\n\t\tgetSettings,\n\t\t__unstableGetEditorMode,\n\t\tisTyping,\n\t} = select( blockEditorStore );\n\n\tconst clientId =\n\t\tgetSelectedBlockClientId() || getFirstMultiSelectedBlockClientId();\n\n\tconst editorMode = __unstableGetEditorMode();\n\n\treturn {\n\t\tclientId,\n\t\thasFixedToolbar: getSettings().hasFixedToolbar,\n\t\tisTyping: isTyping(),\n\t\tisZoomOutMode: editorMode === 'zoom-out',\n\t};\n}\n\n/**\n * Renders block tools (the block toolbar, select/navigation mode toolbar, the\n * insertion point and a slot for the inline rich text toolbar). Must be wrapped\n * around the block content and editor styles wrapper or iframe.\n *\n * @param {Object} $0 Props.\n * @param {Object} $0.children The block content and style container.\n * @param {Object} $0.__unstableContentRef Ref holding the content scroll container.\n */\nexport default function BlockTools( {\n\tchildren,\n\t__unstableContentRef,\n\t...props\n} ) {\n\tconst { clientId, hasFixedToolbar, isTyping, isZoomOutMode } = useSelect(\n\t\tselector,\n\t\t[]\n\t);\n\tconst isMatch = useShortcutEventMatch();\n\tconst { getSelectedBlockClientIds, getBlockRootClientId } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst {\n\t\tshowEmptyBlockSideInserter,\n\t\tshowBreadcrumb,\n\t\tshowBlockToolbarPopover,\n\t} = useShowBlockTools();\n\n\tconst {\n\t\tduplicateBlocks,\n\t\tremoveBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t\tselectBlock,\n\t\tmoveBlocksUp,\n\t\tmoveBlocksDown,\n\t\texpandBlock,\n\t} = unlock( useDispatch( blockEditorStore ) );\n\n\tfunction onKeyDown( event ) {\n\t\tif ( event.defaultPrevented ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isMatch( 'core/block-editor/move-up', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\t\tmoveBlocksUp( clientIds, rootClientId );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/move-down', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\t\tmoveBlocksDown( clientIds, rootClientId );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/duplicate', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tduplicateBlocks( clientIds );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/remove', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tremoveBlocks( clientIds );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/insert-after', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tinsertAfterBlock( clientIds[ clientIds.length - 1 ] );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/insert-before', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tinsertBeforeBlock( clientIds[ 0 ] );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/unselect', event ) ) {\n\t\t\tif ( event.target.closest( '[role=toolbar]' ) ) {\n\t\t\t\t// This shouldn't be necessary, but we have a combination of a few things all combining to create a situation where:\n\t\t\t\t// - Because the block toolbar uses createPortal to populate the block toolbar fills, we can't rely on the React event bubbling to hit the onKeyDown listener for the block toolbar\n\t\t\t\t// - Since we can't use the React tree, we use the DOM tree which _should_ handle the event bubbling correctly from a `createPortal` element.\n\t\t\t\t// - This bubbles via the React tree, which hits this `unselect` escape keypress before the block toolbar DOM event listener has access to it.\n\t\t\t\t// An alternative would be to remove the addEventListener on the navigableToolbar and use this event to handle it directly right here. That feels hacky too though.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length > 1 ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\t// If there is more than one block selected, select the first\n\t\t\t\t// block so that focus is directed back to the beginning of the selection.\n\t\t\t\t// In effect, to the user this feels like deselecting the multi-selection.\n\t\t\t\tselectBlock( clientIds[ 0 ] );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/collapse-list-view', event ) ) {\n\t\t\t// If focus is currently within a text field, such as a rich text block or other editable field,\n\t\t\t// skip collapsing the list view, and allow the keyboard shortcut to be handled by the text field.\n\t\t\t// This condition checks for both the active element and the active element within an iframed editor.\n\t\t\tif (\n\t\t\t\tisTextField( event.target ) ||\n\t\t\t\tisTextField(\n\t\t\t\t\tevent.target?.contentWindow?.document?.activeElement\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\t\t\texpandBlock( clientId );\n\t\t}\n\t}\n\n\tconst blockToolbarRef = usePopoverScroll( __unstableContentRef );\n\tconst blockToolbarAfterRef = usePopoverScroll( __unstableContentRef );\n\n\treturn (\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div { ...props } onKeyDown={ onKeyDown }>\n\t\t\t<InsertionPointOpenRef.Provider value={ useRef( false ) }>\n\t\t\t\t{ ! isTyping && (\n\t\t\t\t\t<InsertionPoint\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ showEmptyBlockSideInserter && (\n\t\t\t\t\t<EmptyBlockInserter\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ showBlockToolbarPopover && (\n\t\t\t\t\t<BlockToolbarPopover\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tisTyping={ isTyping }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ showBreadcrumb && (\n\t\t\t\t\t<BlockToolbarBreadcrumb\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ /* Used for the inline rich text toolbar. Until this toolbar is combined into BlockToolbar, someone implementing their own BlockToolbar will also need to use this to see the image caption toolbar. */ }\n\t\t\t\t{ ! isZoomOutMode && ! hasFixedToolbar && (\n\t\t\t\t\t<Popover.Slot\n\t\t\t\t\t\tname=\"block-toolbar\"\n\t\t\t\t\t\tref={ blockToolbarRef }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ children }\n\t\t\t\t{ /* Used for inline rich text popovers. */ }\n\t\t\t\t<Popover.Slot\n\t\t\t\t\tname=\"__unstable-block-tools-after\"\n\t\t\t\t\tref={ blockToolbarAfterRef }\n\t\t\t\t/>\n\t\t\t\t{ isZoomOutMode && (\n\t\t\t\t\t<ZoomOutModeInserters\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</InsertionPointOpenRef.Provider>\n\t\t</div>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,WAAW,QAAQ,gBAAgB;AAC5C,SAASC,OAAO,QAAQ,uBAAuB;AAC/C,SAASC,+BAA+B,IAAIC,qBAAqB,QAAQ,+BAA+B;AACxG,SAASC,MAAM,QAAQ,oBAAoB;;AAE3C;AACA;AACA;AACA,OAAOC,kBAAkB,MAAM,wBAAwB;AACvD,SACCC,qBAAqB,EACrBC,OAAO,IAAIC,cAAc,QACnB,mBAAmB;AAC1B,OAAOC,mBAAmB,MAAM,yBAAyB;AACzD,OAAOC,sBAAsB,MAAM,4BAA4B;AAC/D,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AACvD,OAAOC,gBAAgB,MAAM,qCAAqC;AAClE,OAAOC,oBAAoB,MAAM,2BAA2B;AAC5D,SAASC,iBAAiB,QAAQ,wBAAwB;AAC1D,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,SAASC,QAAQA,CAAEC,MAAM,EAAG;EAC3B,MAAM;IACLC,wBAAwB;IACxBC,kCAAkC;IAClCC,WAAW;IACXC,uBAAuB;IACvBC;EACD,CAAC,GAAGL,MAAM,CAAEN,gBAAiB,CAAC;EAE9B,MAAMY,QAAQ,GACbL,wBAAwB,CAAC,CAAC,IAAIC,kCAAkC,CAAC,CAAC;EAEnE,MAAMK,UAAU,GAAGH,uBAAuB,CAAC,CAAC;EAE5C,OAAO;IACNE,QAAQ;IACRE,eAAe,EAAEL,WAAW,CAAC,CAAC,CAACK,eAAe;IAC9CH,QAAQ,EAAEA,QAAQ,CAAC,CAAC;IACpBI,aAAa,EAAEF,UAAU,KAAK;EAC/B,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASG,UAAUA,CAAE;EACnCC,QAAQ;EACRC,oBAAoB;EACpB,GAAGC;AACJ,CAAC,EAAG;EACH,MAAM;IAAEP,QAAQ;IAAEE,eAAe;IAAEH,QAAQ;IAAEI;EAAc,CAAC,GAAG7B,SAAS,CACvEmB,QAAQ,EACR,EACD,CAAC;EACD,MAAMe,OAAO,GAAG7B,qBAAqB,CAAC,CAAC;EACvC,MAAM;IAAE8B,yBAAyB;IAAEC;EAAqB,CAAC,GACxDpC,SAAS,CAAEc,gBAAiB,CAAC;EAE9B,MAAM;IACLuB,0BAA0B;IAC1BC,cAAc;IACdC;EACD,CAAC,GAAGtB,iBAAiB,CAAC,CAAC;EAEvB,MAAM;IACLuB,eAAe;IACfC,YAAY;IACZC,gBAAgB;IAChBC,iBAAiB;IACjBC,WAAW;IACXC,YAAY;IACZC,cAAc;IACdC;EACD,CAAC,GAAG7B,MAAM,CAAEjB,WAAW,CAAEa,gBAAiB,CAAE,CAAC;EAE7C,SAASkC,SAASA,CAAEC,KAAK,EAAG;IAC3B,IAAKA,KAAK,CAACC,gBAAgB,EAAG;MAC7B;IACD;IAEA,IAAKhB,OAAO,CAAE,2BAA2B,EAAEe,KAAM,CAAC,EAAG;MACpD,MAAME,SAAS,GAAGhB,yBAAyB,CAAC,CAAC;MAC7C,IAAKgB,SAAS,CAACC,MAAM,EAAG;QACvBH,KAAK,CAACI,cAAc,CAAC,CAAC;QACtB,MAAMC,YAAY,GAAGlB,oBAAoB,CAAEe,SAAS,CAAE,CAAC,CAAG,CAAC;QAC3DN,YAAY,CAAEM,SAAS,EAAEG,YAAa,CAAC;MACxC;IACD,CAAC,MAAM,IAAKpB,OAAO,CAAE,6BAA6B,EAAEe,KAAM,CAAC,EAAG;MAC7D,MAAME,SAAS,GAAGhB,yBAAyB,CAAC,CAAC;MAC7C,IAAKgB,SAAS,CAACC,MAAM,EAAG;QACvBH,KAAK,CAACI,cAAc,CAAC,CAAC;QACtB,MAAMC,YAAY,GAAGlB,oBAAoB,CAAEe,SAAS,CAAE,CAAC,CAAG,CAAC;QAC3DL,cAAc,CAAEK,SAAS,EAAEG,YAAa,CAAC;MAC1C;IACD,CAAC,MAAM,IAAKpB,OAAO,CAAE,6BAA6B,EAAEe,KAAM,CAAC,EAAG;MAC7D,MAAME,SAAS,GAAGhB,yBAAyB,CAAC,CAAC;MAC7C,IAAKgB,SAAS,CAACC,MAAM,EAAG;QACvBH,KAAK,CAACI,cAAc,CAAC,CAAC;QACtBb,eAAe,CAAEW,SAAU,CAAC;MAC7B;IACD,CAAC,MAAM,IAAKjB,OAAO,CAAE,0BAA0B,EAAEe,KAAM,CAAC,EAAG;MAC1D,MAAME,SAAS,GAAGhB,yBAAyB,CAAC,CAAC;MAC7C,IAAKgB,SAAS,CAACC,MAAM,EAAG;QACvBH,KAAK,CAACI,cAAc,CAAC,CAAC;QACtBZ,YAAY,CAAEU,SAAU,CAAC;MAC1B;IACD,CAAC,MAAM,IAAKjB,OAAO,CAAE,gCAAgC,EAAEe,KAAM,CAAC,EAAG;MAChE,MAAME,SAAS,GAAGhB,yBAAyB,CAAC,CAAC;MAC7C,IAAKgB,SAAS,CAACC,MAAM,EAAG;QACvBH,KAAK,CAACI,cAAc,CAAC,CAAC;QACtBX,gBAAgB,CAAES,SAAS,CAAEA,SAAS,CAACC,MAAM,GAAG,CAAC,CAAG,CAAC;MACtD;IACD,CAAC,MAAM,IAAKlB,OAAO,CAAE,iCAAiC,EAAEe,KAAM,CAAC,EAAG;MACjE,MAAME,SAAS,GAAGhB,yBAAyB,CAAC,CAAC;MAC7C,IAAKgB,SAAS,CAACC,MAAM,EAAG;QACvBH,KAAK,CAACI,cAAc,CAAC,CAAC;QACtBV,iBAAiB,CAAEQ,SAAS,CAAE,CAAC,CAAG,CAAC;MACpC;IACD,CAAC,MAAM,IAAKjB,OAAO,CAAE,4BAA4B,EAAEe,KAAM,CAAC,EAAG;MAC5D,IAAKA,KAAK,CAACM,MAAM,CAACC,OAAO,CAAE,gBAAiB,CAAC,EAAG;QAC/C;QACA;QACA;QACA;QACA;QACA;MACD;MAEA,MAAML,SAAS,GAAGhB,yBAAyB,CAAC,CAAC;MAC7C,IAAKgB,SAAS,CAACC,MAAM,GAAG,CAAC,EAAG;QAC3BH,KAAK,CAACI,cAAc,CAAC,CAAC;QACtB;QACA;QACA;QACAT,WAAW,CAAEO,SAAS,CAAE,CAAC,CAAG,CAAC;MAC9B;IACD,CAAC,MAAM,IAAKjB,OAAO,CAAE,sCAAsC,EAAEe,KAAM,CAAC,EAAG;MACtE;MACA;MACA;MACA,IACC/C,WAAW,CAAE+C,KAAK,CAACM,MAAO,CAAC,IAC3BrD,WAAW,CACV+C,KAAK,CAACM,MAAM,EAAEE,aAAa,EAAEC,QAAQ,EAAEC,aACxC,CAAC,EACA;QACD;MACD;MACAV,KAAK,CAACI,cAAc,CAAC,CAAC;MACtBN,WAAW,CAAErB,QAAS,CAAC;IACxB;EACD;EAEA,MAAMkC,eAAe,GAAG7C,gBAAgB,CAAEiB,oBAAqB,CAAC;EAChE,MAAM6B,oBAAoB,GAAG9C,gBAAgB,CAAEiB,oBAAqB,CAAC;EAErE;IACC;IACA8B,aAAA;MAAA,GAAU7B,KAAK;MAAGe,SAAS,EAAGA;IAAW,GACxCc,aAAA,CAACtD,qBAAqB,CAACuD,QAAQ;MAACC,KAAK,EAAG1D,MAAM,CAAE,KAAM;IAAG,GACtD,CAAEmB,QAAQ,IACXqC,aAAA,CAACpD,cAAc;MACdsB,oBAAoB,EAAGA;IAAsB,CAC7C,CACD,EAECK,0BAA0B,IAC3ByB,aAAA,CAACvD,kBAAkB;MAClByB,oBAAoB,EAAGA,oBAAsB;MAC7CN,QAAQ,EAAGA;IAAU,CACrB,CACD,EAECa,uBAAuB,IACxBuB,aAAA,CAACnD,mBAAmB;MACnBqB,oBAAoB,EAAGA,oBAAsB;MAC7CN,QAAQ,EAAGA,QAAU;MACrBD,QAAQ,EAAGA;IAAU,CACrB,CACD,EAECa,cAAc,IACfwB,aAAA,CAAClD,sBAAsB;MACtBoB,oBAAoB,EAAGA,oBAAsB;MAC7CN,QAAQ,EAAGA;IAAU,CACrB,CACD,EAGC,CAAEG,aAAa,IAAI,CAAED,eAAe,IACrCkC,aAAA,CAAC3D,OAAO,CAAC8D,IAAI;MACZC,IAAI,EAAC,eAAe;MACpBC,GAAG,EAAGP;IAAiB,CACvB,CACD,EACC7B,QAAQ,EAEV+B,aAAA,CAAC3D,OAAO,CAAC8D,IAAI;MACZC,IAAI,EAAC,8BAA8B;MACnCC,GAAG,EAAGN;IAAsB,CAC5B,CAAC,EACAhC,aAAa,IACdiC,aAAA,CAAC9C,oBAAoB;MACpBgB,oBAAoB,EAAGA;IAAsB,CAC7C,CAE6B,CAC5B;EAAC;AAER","ignoreList":[]}
1
+ {"version":3,"names":["useSelect","useDispatch","isTextField","Popover","__unstableUseShortcutEventMatch","useShortcutEventMatch","useRef","switchToBlockType","store","blocksStore","speak","__","EmptyBlockInserter","InsertionPointOpenRef","default","InsertionPoint","BlockToolbarPopover","BlockToolbarBreadcrumb","blockEditorStore","usePopoverScroll","ZoomOutModeInserters","useShowBlockTools","unlock","selector","select","getSelectedBlockClientId","getFirstMultiSelectedBlockClientId","getSettings","__unstableGetEditorMode","isTyping","clientId","editorMode","hasFixedToolbar","isZoomOutMode","BlockTools","children","__unstableContentRef","props","isMatch","getBlocksByClientId","getSelectedBlockClientIds","getBlockRootClientId","isGroupable","getGroupingBlockName","showEmptyBlockSideInserter","showBreadcrumb","showBlockToolbarPopover","duplicateBlocks","removeBlocks","replaceBlocks","insertAfterBlock","insertBeforeBlock","selectBlock","moveBlocksUp","moveBlocksDown","expandBlock","onKeyDown","event","defaultPrevented","clientIds","length","preventDefault","rootClientId","target","closest","contentWindow","document","activeElement","blocks","groupingBlockName","newBlocks","blockToolbarRef","blockToolbarAfterRef","createElement","Provider","value","Slot","name","ref"],"sources":["@wordpress/block-editor/src/components/block-tools/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { isTextField } from '@wordpress/dom';\nimport { Popover } from '@wordpress/components';\nimport { __unstableUseShortcutEventMatch as useShortcutEventMatch } from '@wordpress/keyboard-shortcuts';\nimport { useRef } from '@wordpress/element';\nimport { switchToBlockType, store as blocksStore } from '@wordpress/blocks';\nimport { speak } from '@wordpress/a11y';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport EmptyBlockInserter from './empty-block-inserter';\nimport {\n\tInsertionPointOpenRef,\n\tdefault as InsertionPoint,\n} from './insertion-point';\nimport BlockToolbarPopover from './block-toolbar-popover';\nimport BlockToolbarBreadcrumb from './block-toolbar-breadcrumb';\nimport { store as blockEditorStore } from '../../store';\nimport usePopoverScroll from '../block-popover/use-popover-scroll';\nimport ZoomOutModeInserters from './zoom-out-mode-inserters';\nimport { useShowBlockTools } from './use-show-block-tools';\nimport { unlock } from '../../lock-unlock';\n\nfunction selector( select ) {\n\tconst {\n\t\tgetSelectedBlockClientId,\n\t\tgetFirstMultiSelectedBlockClientId,\n\t\tgetSettings,\n\t\t__unstableGetEditorMode,\n\t\tisTyping,\n\t} = select( blockEditorStore );\n\n\tconst clientId =\n\t\tgetSelectedBlockClientId() || getFirstMultiSelectedBlockClientId();\n\n\tconst editorMode = __unstableGetEditorMode();\n\n\treturn {\n\t\tclientId,\n\t\thasFixedToolbar: getSettings().hasFixedToolbar,\n\t\tisTyping: isTyping(),\n\t\tisZoomOutMode: editorMode === 'zoom-out',\n\t};\n}\n\n/**\n * Renders block tools (the block toolbar, select/navigation mode toolbar, the\n * insertion point and a slot for the inline rich text toolbar). Must be wrapped\n * around the block content and editor styles wrapper or iframe.\n *\n * @param {Object} $0 Props.\n * @param {Object} $0.children The block content and style container.\n * @param {Object} $0.__unstableContentRef Ref holding the content scroll container.\n */\nexport default function BlockTools( {\n\tchildren,\n\t__unstableContentRef,\n\t...props\n} ) {\n\tconst { clientId, hasFixedToolbar, isTyping, isZoomOutMode } = useSelect(\n\t\tselector,\n\t\t[]\n\t);\n\tconst isMatch = useShortcutEventMatch();\n\tconst {\n\t\tgetBlocksByClientId,\n\t\tgetSelectedBlockClientIds,\n\t\tgetBlockRootClientId,\n\t\tisGroupable,\n\t} = useSelect( blockEditorStore );\n\tconst { getGroupingBlockName } = useSelect( blocksStore );\n\tconst {\n\t\tshowEmptyBlockSideInserter,\n\t\tshowBreadcrumb,\n\t\tshowBlockToolbarPopover,\n\t} = useShowBlockTools();\n\n\tconst {\n\t\tduplicateBlocks,\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t\tselectBlock,\n\t\tmoveBlocksUp,\n\t\tmoveBlocksDown,\n\t\texpandBlock,\n\t} = unlock( useDispatch( blockEditorStore ) );\n\n\tfunction onKeyDown( event ) {\n\t\tif ( event.defaultPrevented ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isMatch( 'core/block-editor/move-up', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\t\tmoveBlocksUp( clientIds, rootClientId );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/move-down', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\t\tmoveBlocksDown( clientIds, rootClientId );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/duplicate', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tduplicateBlocks( clientIds );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/remove', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tremoveBlocks( clientIds );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/insert-after', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tinsertAfterBlock( clientIds[ clientIds.length - 1 ] );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/insert-before', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tinsertBeforeBlock( clientIds[ 0 ] );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/unselect', event ) ) {\n\t\t\tif ( event.target.closest( '[role=toolbar]' ) ) {\n\t\t\t\t// This shouldn't be necessary, but we have a combination of a few things all combining to create a situation where:\n\t\t\t\t// - Because the block toolbar uses createPortal to populate the block toolbar fills, we can't rely on the React event bubbling to hit the onKeyDown listener for the block toolbar\n\t\t\t\t// - Since we can't use the React tree, we use the DOM tree which _should_ handle the event bubbling correctly from a `createPortal` element.\n\t\t\t\t// - This bubbles via the React tree, which hits this `unselect` escape keypress before the block toolbar DOM event listener has access to it.\n\t\t\t\t// An alternative would be to remove the addEventListener on the navigableToolbar and use this event to handle it directly right here. That feels hacky too though.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length > 1 ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\t// If there is more than one block selected, select the first\n\t\t\t\t// block so that focus is directed back to the beginning of the selection.\n\t\t\t\t// In effect, to the user this feels like deselecting the multi-selection.\n\t\t\t\tselectBlock( clientIds[ 0 ] );\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/collapse-list-view', event ) ) {\n\t\t\t// If focus is currently within a text field, such as a rich text block or other editable field,\n\t\t\t// skip collapsing the list view, and allow the keyboard shortcut to be handled by the text field.\n\t\t\t// This condition checks for both the active element and the active element within an iframed editor.\n\t\t\tif (\n\t\t\t\tisTextField( event.target ) ||\n\t\t\t\tisTextField(\n\t\t\t\t\tevent.target?.contentWindow?.document?.activeElement\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\t\t\texpandBlock( clientId );\n\t\t} else if ( isMatch( 'core/block-editor/group', event ) ) {\n\t\t\tconst clientIds = getSelectedBlockClientIds();\n\t\t\tif ( clientIds.length > 1 && isGroupable( clientIds ) ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst blocks = getBlocksByClientId( clientIds );\n\t\t\t\tconst groupingBlockName = getGroupingBlockName();\n\t\t\t\tconst newBlocks = switchToBlockType(\n\t\t\t\t\tblocks,\n\t\t\t\t\tgroupingBlockName\n\t\t\t\t);\n\t\t\t\treplaceBlocks( clientIds, newBlocks );\n\t\t\t\tspeak( __( 'Selected blocks are grouped.' ) );\n\t\t\t}\n\t\t}\n\t}\n\n\tconst blockToolbarRef = usePopoverScroll( __unstableContentRef );\n\tconst blockToolbarAfterRef = usePopoverScroll( __unstableContentRef );\n\n\treturn (\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div { ...props } onKeyDown={ onKeyDown }>\n\t\t\t<InsertionPointOpenRef.Provider value={ useRef( false ) }>\n\t\t\t\t{ ! isTyping && (\n\t\t\t\t\t<InsertionPoint\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ showEmptyBlockSideInserter && (\n\t\t\t\t\t<EmptyBlockInserter\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ showBlockToolbarPopover && (\n\t\t\t\t\t<BlockToolbarPopover\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tisTyping={ isTyping }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ showBreadcrumb && (\n\t\t\t\t\t<BlockToolbarBreadcrumb\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\n\t\t\t\t{ /* Used for the inline rich text toolbar. Until this toolbar is combined into BlockToolbar, someone implementing their own BlockToolbar will also need to use this to see the image caption toolbar. */ }\n\t\t\t\t{ ! isZoomOutMode && ! hasFixedToolbar && (\n\t\t\t\t\t<Popover.Slot\n\t\t\t\t\t\tname=\"block-toolbar\"\n\t\t\t\t\t\tref={ blockToolbarRef }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ children }\n\t\t\t\t{ /* Used for inline rich text popovers. */ }\n\t\t\t\t<Popover.Slot\n\t\t\t\t\tname=\"__unstable-block-tools-after\"\n\t\t\t\t\tref={ blockToolbarAfterRef }\n\t\t\t\t/>\n\t\t\t\t{ isZoomOutMode && (\n\t\t\t\t\t<ZoomOutModeInserters\n\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</InsertionPointOpenRef.Provider>\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,7 @@ import { createElement } from "react";
2
2
  /**
3
3
  * External dependencies
4
4
  */
5
- import classnames from 'classnames';
5
+ import clsx from 'clsx';
6
6
 
7
7
  /**
8
8
  * WordPress dependencies
@@ -139,7 +139,7 @@ function InbetweenInsertionPointPopover({
139
139
  return null;
140
140
  }
141
141
  const orientationClassname = orientation === 'horizontal' || operation === 'group' ? 'is-horizontal' : 'is-vertical';
142
- const className = classnames('block-editor-block-list__insertion-point', orientationClassname);
142
+ const className = clsx('block-editor-block-list__insertion-point', orientationClassname);
143
143
  return createElement(BlockPopoverInbetween, {
144
144
  previousClientId: previousClientId,
145
145
  nextClientId: nextClientId,
@@ -158,7 +158,7 @@ function InbetweenInsertionPointPopover({
158
158
  tabIndex: -1,
159
159
  onClick: onClick,
160
160
  onFocus: onFocus,
161
- className: classnames(className, {
161
+ className: clsx(className, {
162
162
  'is-with-inserter': isInserterShown
163
163
  }),
164
164
  onHoverEnd: maybeHideInserterPoint
@@ -168,7 +168,7 @@ function InbetweenInsertionPointPopover({
168
168
  "data-testid": "block-list-insertion-point-indicator"
169
169
  }), isInserterShown && createElement(motion.div, {
170
170
  variants: inserterVariants,
171
- className: classnames('block-editor-block-list__insertion-point-inserter')
171
+ className: clsx('block-editor-block-list__insertion-point-inserter')
172
172
  }, createElement(Inserter, {
173
173
  position: "bottom center",
174
174
  clientId: nextClientId,
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","useSelect","useDispatch","useRef","createContext","useContext","__unstableMotion","motion","useReducedMotion","Inserter","store","blockEditorStore","BlockPopoverInbetween","BlockDropZonePopover","InsertionPointOpenRef","InbetweenInsertionPointPopover","__unstablePopoverSlot","__unstableContentRef","operation","nearestSide","selectBlock","hideInsertionPoint","openRef","ref","orientation","previousClientId","nextClientId","rootClientId","isInserterShown","isDistractionFree","isNavigationMode","select","getBlockOrder","getBlockListSettings","getBlockInsertionPoint","isBlockBeingDragged","getPreviousBlockClientId","getNextBlockClientId","getSettings","_isNavigationMode","insertionPoint","order","length","_previousClientId","index","_nextClientId","settings","__unstableWithInserter","getBlockEditingMode","disableMotion","onClick","event","target","current","maybeHideInserterPoint","onFocus","lineVariants","start","opacity","scale","rest","transition","delay","type","hover","inserterVariants","orientationClassname","className","createElement","div","layout","initial","animate","whileHover","whileTap","exit","tabIndex","onHoverEnd","variants","position","clientId","__experimentalIsQuick","onToggle","isOpen","onSelectOrClose","InsertionPoint","props","isVisible","isBlockListEmpty","isBlockInsertionPointVisible","getBlockCount","blockInsertionPoint","key"],"sources":["@wordpress/block-editor/src/components/block-tools/insertion-point.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRef, createContext, useContext } from '@wordpress/element';\nimport { __unstableMotion as motion } from '@wordpress/components';\nimport { useReducedMotion } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Inserter from '../inserter';\nimport { store as blockEditorStore } from '../../store';\nimport BlockPopoverInbetween from '../block-popover/inbetween';\nimport BlockDropZonePopover from '../block-popover/drop-zone';\n\nexport const InsertionPointOpenRef = createContext();\n\nfunction InbetweenInsertionPointPopover( {\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n\toperation = 'insert',\n\tnearestSide = 'right',\n} ) {\n\tconst { selectBlock, hideInsertionPoint } = useDispatch( blockEditorStore );\n\tconst openRef = useContext( InsertionPointOpenRef );\n\tconst ref = useRef();\n\tconst {\n\t\torientation,\n\t\tpreviousClientId,\n\t\tnextClientId,\n\t\trootClientId,\n\t\tisInserterShown,\n\t\tisDistractionFree,\n\t\tisNavigationMode,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockListSettings,\n\t\t\tgetBlockInsertionPoint,\n\t\t\tisBlockBeingDragged,\n\t\t\tgetPreviousBlockClientId,\n\t\t\tgetNextBlockClientId,\n\t\t\tgetSettings,\n\t\t\tisNavigationMode: _isNavigationMode,\n\t\t} = select( blockEditorStore );\n\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\tconst order = getBlockOrder( insertionPoint.rootClientId );\n\n\t\tif ( ! order.length ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet _previousClientId = order[ insertionPoint.index - 1 ];\n\t\tlet _nextClientId = order[ insertionPoint.index ];\n\n\t\twhile ( isBlockBeingDragged( _previousClientId ) ) {\n\t\t\t_previousClientId = getPreviousBlockClientId( _previousClientId );\n\t\t}\n\n\t\twhile ( isBlockBeingDragged( _nextClientId ) ) {\n\t\t\t_nextClientId = getNextBlockClientId( _nextClientId );\n\t\t}\n\n\t\tconst settings = getSettings();\n\n\t\treturn {\n\t\t\tpreviousClientId: _previousClientId,\n\t\t\tnextClientId: _nextClientId,\n\t\t\torientation:\n\t\t\t\tgetBlockListSettings( insertionPoint.rootClientId )\n\t\t\t\t\t?.orientation || 'vertical',\n\t\t\trootClientId: insertionPoint.rootClientId,\n\t\t\tisNavigationMode: _isNavigationMode(),\n\t\t\tisDistractionFree: settings.isDistractionFree,\n\t\t\tisInserterShown: insertionPoint?.__unstableWithInserter,\n\t\t};\n\t}, [] );\n\tconst { getBlockEditingMode } = useSelect( blockEditorStore );\n\n\tconst disableMotion = useReducedMotion();\n\n\tfunction onClick( event ) {\n\t\tif (\n\t\t\tevent.target === ref.current &&\n\t\t\tnextClientId &&\n\t\t\tgetBlockEditingMode( nextClientId ) !== 'disabled'\n\t\t) {\n\t\t\tselectBlock( nextClientId, -1 );\n\t\t}\n\t}\n\n\tfunction maybeHideInserterPoint( event ) {\n\t\t// Only hide the inserter if it's triggered on the wrapper,\n\t\t// and the inserter is not open.\n\t\tif ( event.target === ref.current && ! openRef.current ) {\n\t\t\thideInsertionPoint();\n\t\t}\n\t}\n\n\tfunction onFocus( event ) {\n\t\t// Only handle click on the wrapper specifically, and not an event\n\t\t// bubbled from the inserter itself.\n\t\tif ( event.target !== ref.current ) {\n\t\t\topenRef.current = true;\n\t\t}\n\t}\n\n\tconst lineVariants = {\n\t\t// Initial position starts from the center and invisible.\n\t\tstart: {\n\t\t\topacity: 0,\n\t\t\tscale: 0,\n\t\t},\n\t\t// The line expands to fill the container. If the inserter is visible it\n\t\t// is delayed so it appears orchestrated.\n\t\trest: {\n\t\t\topacity: 1,\n\t\t\tscale: 1,\n\t\t\ttransition: { delay: isInserterShown ? 0.5 : 0, type: 'tween' },\n\t\t},\n\t\thover: {\n\t\t\topacity: 1,\n\t\t\tscale: 1,\n\t\t\ttransition: { delay: 0.5, type: 'tween' },\n\t\t},\n\t};\n\n\tconst inserterVariants = {\n\t\tstart: {\n\t\t\tscale: disableMotion ? 1 : 0,\n\t\t},\n\t\trest: {\n\t\t\tscale: 1,\n\t\t\ttransition: { delay: 0.4, type: 'tween' },\n\t\t},\n\t};\n\n\tif ( isDistractionFree && ! isNavigationMode ) {\n\t\treturn null;\n\t}\n\n\tconst orientationClassname =\n\t\torientation === 'horizontal' || operation === 'group'\n\t\t\t? 'is-horizontal'\n\t\t\t: 'is-vertical';\n\n\tconst className = classnames(\n\t\t'block-editor-block-list__insertion-point',\n\t\torientationClassname\n\t);\n\n\treturn (\n\t\t<BlockPopoverInbetween\n\t\t\tpreviousClientId={ previousClientId }\n\t\t\tnextClientId={ nextClientId }\n\t\t\t__unstablePopoverSlot={ __unstablePopoverSlot }\n\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\toperation={ operation }\n\t\t\tnearestSide={ nearestSide }\n\t\t>\n\t\t\t<motion.div\n\t\t\t\tlayout={ ! disableMotion }\n\t\t\t\tinitial={ disableMotion ? 'rest' : 'start' }\n\t\t\t\tanimate=\"rest\"\n\t\t\t\twhileHover=\"hover\"\n\t\t\t\twhileTap=\"pressed\"\n\t\t\t\texit=\"start\"\n\t\t\t\tref={ ref }\n\t\t\t\ttabIndex={ -1 }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tonFocus={ onFocus }\n\t\t\t\tclassName={ classnames( className, {\n\t\t\t\t\t'is-with-inserter': isInserterShown,\n\t\t\t\t} ) }\n\t\t\t\tonHoverEnd={ maybeHideInserterPoint }\n\t\t\t>\n\t\t\t\t<motion.div\n\t\t\t\t\tvariants={ lineVariants }\n\t\t\t\t\tclassName=\"block-editor-block-list__insertion-point-indicator\"\n\t\t\t\t\tdata-testid=\"block-list-insertion-point-indicator\"\n\t\t\t\t/>\n\t\t\t\t{ isInserterShown && (\n\t\t\t\t\t<motion.div\n\t\t\t\t\t\tvariants={ inserterVariants }\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'block-editor-block-list__insertion-point-inserter'\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Inserter\n\t\t\t\t\t\t\tposition=\"bottom center\"\n\t\t\t\t\t\t\tclientId={ nextClientId }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\t__experimentalIsQuick\n\t\t\t\t\t\t\tonToggle={ ( isOpen ) => {\n\t\t\t\t\t\t\t\topenRef.current = isOpen;\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonSelectOrClose={ () => {\n\t\t\t\t\t\t\t\topenRef.current = false;\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</motion.div>\n\t\t\t\t) }\n\t\t\t</motion.div>\n\t\t</BlockPopoverInbetween>\n\t);\n}\n\nexport default function InsertionPoint( props ) {\n\tconst { insertionPoint, isVisible, isBlockListEmpty } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockInsertionPoint,\n\t\t\t\tisBlockInsertionPointVisible,\n\t\t\t\tgetBlockCount,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst blockInsertionPoint = getBlockInsertionPoint();\n\t\t\treturn {\n\t\t\t\tinsertionPoint: blockInsertionPoint,\n\t\t\t\tisVisible: isBlockInsertionPointVisible(),\n\t\t\t\tisBlockListEmpty:\n\t\t\t\t\tgetBlockCount( blockInsertionPoint?.rootClientId ) === 0,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tif (\n\t\t! isVisible ||\n\t\t// Don't render the insertion point if the block list is empty.\n\t\t// The insertion point will be represented by the appender instead.\n\t\tisBlockListEmpty\n\t) {\n\t\treturn null;\n\t}\n\n\t/**\n\t * Render a popover that overlays the block when the desired operation is to replace it.\n\t * Otherwise, render a popover in between blocks for the indication of inserting between them.\n\t */\n\treturn insertionPoint.operation === 'replace' ? (\n\t\t<BlockDropZonePopover\n\t\t\t// Force remount to trigger the animation.\n\t\t\tkey={ `${ insertionPoint.rootClientId }-${ insertionPoint.index }` }\n\t\t\t{ ...props }\n\t\t/>\n\t) : (\n\t\t<InbetweenInsertionPointPopover\n\t\t\toperation={ insertionPoint.operation }\n\t\t\tnearestSide={ insertionPoint.nearestSide }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","useSelect","useDispatch","useRef","createContext","useContext","__unstableMotion","motion","useReducedMotion","Inserter","store","blockEditorStore","BlockPopoverInbetween","BlockDropZonePopover","InsertionPointOpenRef","InbetweenInsertionPointPopover","__unstablePopoverSlot","__unstableContentRef","operation","nearestSide","selectBlock","hideInsertionPoint","openRef","ref","orientation","previousClientId","nextClientId","rootClientId","isInserterShown","isDistractionFree","isNavigationMode","select","getBlockOrder","getBlockListSettings","getBlockInsertionPoint","isBlockBeingDragged","getPreviousBlockClientId","getNextBlockClientId","getSettings","_isNavigationMode","insertionPoint","order","length","_previousClientId","index","_nextClientId","settings","__unstableWithInserter","getBlockEditingMode","disableMotion","onClick","event","target","current","maybeHideInserterPoint","onFocus","lineVariants","start","opacity","scale","rest","transition","delay","type","hover","inserterVariants","orientationClassname","className","createElement","div","layout","initial","animate","whileHover","whileTap","exit","tabIndex","onHoverEnd","variants","position","clientId","__experimentalIsQuick","onToggle","isOpen","onSelectOrClose","InsertionPoint","props","isVisible","isBlockListEmpty","isBlockInsertionPointVisible","getBlockCount","blockInsertionPoint","key"],"sources":["@wordpress/block-editor/src/components/block-tools/insertion-point.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRef, createContext, useContext } from '@wordpress/element';\nimport { __unstableMotion as motion } from '@wordpress/components';\nimport { useReducedMotion } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Inserter from '../inserter';\nimport { store as blockEditorStore } from '../../store';\nimport BlockPopoverInbetween from '../block-popover/inbetween';\nimport BlockDropZonePopover from '../block-popover/drop-zone';\n\nexport const InsertionPointOpenRef = createContext();\n\nfunction InbetweenInsertionPointPopover( {\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n\toperation = 'insert',\n\tnearestSide = 'right',\n} ) {\n\tconst { selectBlock, hideInsertionPoint } = useDispatch( blockEditorStore );\n\tconst openRef = useContext( InsertionPointOpenRef );\n\tconst ref = useRef();\n\tconst {\n\t\torientation,\n\t\tpreviousClientId,\n\t\tnextClientId,\n\t\trootClientId,\n\t\tisInserterShown,\n\t\tisDistractionFree,\n\t\tisNavigationMode,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockListSettings,\n\t\t\tgetBlockInsertionPoint,\n\t\t\tisBlockBeingDragged,\n\t\t\tgetPreviousBlockClientId,\n\t\t\tgetNextBlockClientId,\n\t\t\tgetSettings,\n\t\t\tisNavigationMode: _isNavigationMode,\n\t\t} = select( blockEditorStore );\n\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\tconst order = getBlockOrder( insertionPoint.rootClientId );\n\n\t\tif ( ! order.length ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet _previousClientId = order[ insertionPoint.index - 1 ];\n\t\tlet _nextClientId = order[ insertionPoint.index ];\n\n\t\twhile ( isBlockBeingDragged( _previousClientId ) ) {\n\t\t\t_previousClientId = getPreviousBlockClientId( _previousClientId );\n\t\t}\n\n\t\twhile ( isBlockBeingDragged( _nextClientId ) ) {\n\t\t\t_nextClientId = getNextBlockClientId( _nextClientId );\n\t\t}\n\n\t\tconst settings = getSettings();\n\n\t\treturn {\n\t\t\tpreviousClientId: _previousClientId,\n\t\t\tnextClientId: _nextClientId,\n\t\t\torientation:\n\t\t\t\tgetBlockListSettings( insertionPoint.rootClientId )\n\t\t\t\t\t?.orientation || 'vertical',\n\t\t\trootClientId: insertionPoint.rootClientId,\n\t\t\tisNavigationMode: _isNavigationMode(),\n\t\t\tisDistractionFree: settings.isDistractionFree,\n\t\t\tisInserterShown: insertionPoint?.__unstableWithInserter,\n\t\t};\n\t}, [] );\n\tconst { getBlockEditingMode } = useSelect( blockEditorStore );\n\n\tconst disableMotion = useReducedMotion();\n\n\tfunction onClick( event ) {\n\t\tif (\n\t\t\tevent.target === ref.current &&\n\t\t\tnextClientId &&\n\t\t\tgetBlockEditingMode( nextClientId ) !== 'disabled'\n\t\t) {\n\t\t\tselectBlock( nextClientId, -1 );\n\t\t}\n\t}\n\n\tfunction maybeHideInserterPoint( event ) {\n\t\t// Only hide the inserter if it's triggered on the wrapper,\n\t\t// and the inserter is not open.\n\t\tif ( event.target === ref.current && ! openRef.current ) {\n\t\t\thideInsertionPoint();\n\t\t}\n\t}\n\n\tfunction onFocus( event ) {\n\t\t// Only handle click on the wrapper specifically, and not an event\n\t\t// bubbled from the inserter itself.\n\t\tif ( event.target !== ref.current ) {\n\t\t\topenRef.current = true;\n\t\t}\n\t}\n\n\tconst lineVariants = {\n\t\t// Initial position starts from the center and invisible.\n\t\tstart: {\n\t\t\topacity: 0,\n\t\t\tscale: 0,\n\t\t},\n\t\t// The line expands to fill the container. If the inserter is visible it\n\t\t// is delayed so it appears orchestrated.\n\t\trest: {\n\t\t\topacity: 1,\n\t\t\tscale: 1,\n\t\t\ttransition: { delay: isInserterShown ? 0.5 : 0, type: 'tween' },\n\t\t},\n\t\thover: {\n\t\t\topacity: 1,\n\t\t\tscale: 1,\n\t\t\ttransition: { delay: 0.5, type: 'tween' },\n\t\t},\n\t};\n\n\tconst inserterVariants = {\n\t\tstart: {\n\t\t\tscale: disableMotion ? 1 : 0,\n\t\t},\n\t\trest: {\n\t\t\tscale: 1,\n\t\t\ttransition: { delay: 0.4, type: 'tween' },\n\t\t},\n\t};\n\n\tif ( isDistractionFree && ! isNavigationMode ) {\n\t\treturn null;\n\t}\n\n\tconst orientationClassname =\n\t\torientation === 'horizontal' || operation === 'group'\n\t\t\t? 'is-horizontal'\n\t\t\t: 'is-vertical';\n\n\tconst className = clsx(\n\t\t'block-editor-block-list__insertion-point',\n\t\torientationClassname\n\t);\n\n\treturn (\n\t\t<BlockPopoverInbetween\n\t\t\tpreviousClientId={ previousClientId }\n\t\t\tnextClientId={ nextClientId }\n\t\t\t__unstablePopoverSlot={ __unstablePopoverSlot }\n\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\toperation={ operation }\n\t\t\tnearestSide={ nearestSide }\n\t\t>\n\t\t\t<motion.div\n\t\t\t\tlayout={ ! disableMotion }\n\t\t\t\tinitial={ disableMotion ? 'rest' : 'start' }\n\t\t\t\tanimate=\"rest\"\n\t\t\t\twhileHover=\"hover\"\n\t\t\t\twhileTap=\"pressed\"\n\t\t\t\texit=\"start\"\n\t\t\t\tref={ ref }\n\t\t\t\ttabIndex={ -1 }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tonFocus={ onFocus }\n\t\t\t\tclassName={ clsx( className, {\n\t\t\t\t\t'is-with-inserter': isInserterShown,\n\t\t\t\t} ) }\n\t\t\t\tonHoverEnd={ maybeHideInserterPoint }\n\t\t\t>\n\t\t\t\t<motion.div\n\t\t\t\t\tvariants={ lineVariants }\n\t\t\t\t\tclassName=\"block-editor-block-list__insertion-point-indicator\"\n\t\t\t\t\tdata-testid=\"block-list-insertion-point-indicator\"\n\t\t\t\t/>\n\t\t\t\t{ isInserterShown && (\n\t\t\t\t\t<motion.div\n\t\t\t\t\t\tvariants={ inserterVariants }\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-block-list__insertion-point-inserter'\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Inserter\n\t\t\t\t\t\t\tposition=\"bottom center\"\n\t\t\t\t\t\t\tclientId={ nextClientId }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\t__experimentalIsQuick\n\t\t\t\t\t\t\tonToggle={ ( isOpen ) => {\n\t\t\t\t\t\t\t\topenRef.current = isOpen;\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonSelectOrClose={ () => {\n\t\t\t\t\t\t\t\topenRef.current = false;\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</motion.div>\n\t\t\t\t) }\n\t\t\t</motion.div>\n\t\t</BlockPopoverInbetween>\n\t);\n}\n\nexport default function InsertionPoint( props ) {\n\tconst { insertionPoint, isVisible, isBlockListEmpty } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockInsertionPoint,\n\t\t\t\tisBlockInsertionPointVisible,\n\t\t\t\tgetBlockCount,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst blockInsertionPoint = getBlockInsertionPoint();\n\t\t\treturn {\n\t\t\t\tinsertionPoint: blockInsertionPoint,\n\t\t\t\tisVisible: isBlockInsertionPointVisible(),\n\t\t\t\tisBlockListEmpty:\n\t\t\t\t\tgetBlockCount( blockInsertionPoint?.rootClientId ) === 0,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tif (\n\t\t! isVisible ||\n\t\t// Don't render the insertion point if the block list is empty.\n\t\t// The insertion point will be represented by the appender instead.\n\t\tisBlockListEmpty\n\t) {\n\t\treturn null;\n\t}\n\n\t/**\n\t * Render a popover that overlays the block when the desired operation is to replace it.\n\t * Otherwise, render a popover in between blocks for the indication of inserting between them.\n\t */\n\treturn insertionPoint.operation === 'replace' ? (\n\t\t<BlockDropZonePopover\n\t\t\t// Force remount to trigger the animation.\n\t\t\tkey={ `${ insertionPoint.rootClientId }-${ insertionPoint.index }` }\n\t\t\t{ ...props }\n\t\t/>\n\t) : (\n\t\t<InbetweenInsertionPointPopover\n\t\t\toperation={ insertionPoint.operation }\n\t\t\tnearestSide={ insertionPoint.nearestSide }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,MAAM,EAAEC,aAAa,EAAEC,UAAU,QAAQ,oBAAoB;AACtE,SAASC,gBAAgB,IAAIC,MAAM,QAAQ,uBAAuB;AAClE,SAASC,gBAAgB,QAAQ,oBAAoB;;AAErD;AACA;AACA;AACA,OAAOC,QAAQ,MAAM,aAAa;AAClC,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AACvD,OAAOC,qBAAqB,MAAM,4BAA4B;AAC9D,OAAOC,oBAAoB,MAAM,4BAA4B;AAE7D,OAAO,MAAMC,qBAAqB,GAAGV,aAAa,CAAC,CAAC;AAEpD,SAASW,8BAA8BA,CAAE;EACxCC,qBAAqB;EACrBC,oBAAoB;EACpBC,SAAS,GAAG,QAAQ;EACpBC,WAAW,GAAG;AACf,CAAC,EAAG;EACH,MAAM;IAAEC,WAAW;IAAEC;EAAmB,CAAC,GAAGnB,WAAW,CAAES,gBAAiB,CAAC;EAC3E,MAAMW,OAAO,GAAGjB,UAAU,CAAES,qBAAsB,CAAC;EACnD,MAAMS,GAAG,GAAGpB,MAAM,CAAC,CAAC;EACpB,MAAM;IACLqB,WAAW;IACXC,gBAAgB;IAChBC,YAAY;IACZC,YAAY;IACZC,eAAe;IACfC,iBAAiB;IACjBC;EACD,CAAC,GAAG7B,SAAS,CAAI8B,MAAM,IAAM;IAC5B,MAAM;MACLC,aAAa;MACbC,oBAAoB;MACpBC,sBAAsB;MACtBC,mBAAmB;MACnBC,wBAAwB;MACxBC,oBAAoB;MACpBC,WAAW;MACXR,gBAAgB,EAAES;IACnB,CAAC,GAAGR,MAAM,CAAEpB,gBAAiB,CAAC;IAC9B,MAAM6B,cAAc,GAAGN,sBAAsB,CAAC,CAAC;IAC/C,MAAMO,KAAK,GAAGT,aAAa,CAAEQ,cAAc,CAACb,YAAa,CAAC;IAE1D,IAAK,CAAEc,KAAK,CAACC,MAAM,EAAG;MACrB,OAAO,CAAC,CAAC;IACV;IAEA,IAAIC,iBAAiB,GAAGF,KAAK,CAAED,cAAc,CAACI,KAAK,GAAG,CAAC,CAAE;IACzD,IAAIC,aAAa,GAAGJ,KAAK,CAAED,cAAc,CAACI,KAAK,CAAE;IAEjD,OAAQT,mBAAmB,CAAEQ,iBAAkB,CAAC,EAAG;MAClDA,iBAAiB,GAAGP,wBAAwB,CAAEO,iBAAkB,CAAC;IAClE;IAEA,OAAQR,mBAAmB,CAAEU,aAAc,CAAC,EAAG;MAC9CA,aAAa,GAAGR,oBAAoB,CAAEQ,aAAc,CAAC;IACtD;IAEA,MAAMC,QAAQ,GAAGR,WAAW,CAAC,CAAC;IAE9B,OAAO;MACNb,gBAAgB,EAAEkB,iBAAiB;MACnCjB,YAAY,EAAEmB,aAAa;MAC3BrB,WAAW,EACVS,oBAAoB,CAAEO,cAAc,CAACb,YAAa,CAAC,EAChDH,WAAW,IAAI,UAAU;MAC7BG,YAAY,EAAEa,cAAc,CAACb,YAAY;MACzCG,gBAAgB,EAAES,iBAAiB,CAAC,CAAC;MACrCV,iBAAiB,EAAEiB,QAAQ,CAACjB,iBAAiB;MAC7CD,eAAe,EAAEY,cAAc,EAAEO;IAClC,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACP,MAAM;IAAEC;EAAoB,CAAC,GAAG/C,SAAS,CAAEU,gBAAiB,CAAC;EAE7D,MAAMsC,aAAa,GAAGzC,gBAAgB,CAAC,CAAC;EAExC,SAAS0C,OAAOA,CAAEC,KAAK,EAAG;IACzB,IACCA,KAAK,CAACC,MAAM,KAAK7B,GAAG,CAAC8B,OAAO,IAC5B3B,YAAY,IACZsB,mBAAmB,CAAEtB,YAAa,CAAC,KAAK,UAAU,EACjD;MACDN,WAAW,CAAEM,YAAY,EAAE,CAAC,CAAE,CAAC;IAChC;EACD;EAEA,SAAS4B,sBAAsBA,CAAEH,KAAK,EAAG;IACxC;IACA;IACA,IAAKA,KAAK,CAACC,MAAM,KAAK7B,GAAG,CAAC8B,OAAO,IAAI,CAAE/B,OAAO,CAAC+B,OAAO,EAAG;MACxDhC,kBAAkB,CAAC,CAAC;IACrB;EACD;EAEA,SAASkC,OAAOA,CAAEJ,KAAK,EAAG;IACzB;IACA;IACA,IAAKA,KAAK,CAACC,MAAM,KAAK7B,GAAG,CAAC8B,OAAO,EAAG;MACnC/B,OAAO,CAAC+B,OAAO,GAAG,IAAI;IACvB;EACD;EAEA,MAAMG,YAAY,GAAG;IACpB;IACAC,KAAK,EAAE;MACNC,OAAO,EAAE,CAAC;MACVC,KAAK,EAAE;IACR,CAAC;IACD;IACA;IACAC,IAAI,EAAE;MACLF,OAAO,EAAE,CAAC;MACVC,KAAK,EAAE,CAAC;MACRE,UAAU,EAAE;QAAEC,KAAK,EAAElC,eAAe,GAAG,GAAG,GAAG,CAAC;QAAEmC,IAAI,EAAE;MAAQ;IAC/D,CAAC;IACDC,KAAK,EAAE;MACNN,OAAO,EAAE,CAAC;MACVC,KAAK,EAAE,CAAC;MACRE,UAAU,EAAE;QAAEC,KAAK,EAAE,GAAG;QAAEC,IAAI,EAAE;MAAQ;IACzC;EACD,CAAC;EAED,MAAME,gBAAgB,GAAG;IACxBR,KAAK,EAAE;MACNE,KAAK,EAAEV,aAAa,GAAG,CAAC,GAAG;IAC5B,CAAC;IACDW,IAAI,EAAE;MACLD,KAAK,EAAE,CAAC;MACRE,UAAU,EAAE;QAAEC,KAAK,EAAE,GAAG;QAAEC,IAAI,EAAE;MAAQ;IACzC;EACD,CAAC;EAED,IAAKlC,iBAAiB,IAAI,CAAEC,gBAAgB,EAAG;IAC9C,OAAO,IAAI;EACZ;EAEA,MAAMoC,oBAAoB,GACzB1C,WAAW,KAAK,YAAY,IAAIN,SAAS,KAAK,OAAO,GAClD,eAAe,GACf,aAAa;EAEjB,MAAMiD,SAAS,GAAGnE,IAAI,CACrB,0CAA0C,EAC1CkE,oBACD,CAAC;EAED,OACCE,aAAA,CAACxD,qBAAqB;IACrBa,gBAAgB,EAAGA,gBAAkB;IACrCC,YAAY,EAAGA,YAAc;IAC7BV,qBAAqB,EAAGA,qBAAuB;IAC/CC,oBAAoB,EAAGA,oBAAsB;IAC7CC,SAAS,EAAGA,SAAW;IACvBC,WAAW,EAAGA;EAAa,GAE3BiD,aAAA,CAAC7D,MAAM,CAAC8D,GAAG;IACVC,MAAM,EAAG,CAAErB,aAAe;IAC1BsB,OAAO,EAAGtB,aAAa,GAAG,MAAM,GAAG,OAAS;IAC5CuB,OAAO,EAAC,MAAM;IACdC,UAAU,EAAC,OAAO;IAClBC,QAAQ,EAAC,SAAS;IAClBC,IAAI,EAAC,OAAO;IACZpD,GAAG,EAAGA,GAAK;IACXqD,QAAQ,EAAG,CAAC,CAAG;IACf1B,OAAO,EAAGA,OAAS;IACnBK,OAAO,EAAGA,OAAS;IACnBY,SAAS,EAAGnE,IAAI,CAAEmE,SAAS,EAAE;MAC5B,kBAAkB,EAAEvC;IACrB,CAAE,CAAG;IACLiD,UAAU,EAAGvB;EAAwB,GAErCc,aAAA,CAAC7D,MAAM,CAAC8D,GAAG;IACVS,QAAQ,EAAGtB,YAAc;IACzBW,SAAS,EAAC,oDAAoD;IAC9D,eAAY;EAAsC,CAClD,CAAC,EACAvC,eAAe,IAChBwC,aAAA,CAAC7D,MAAM,CAAC8D,GAAG;IACVS,QAAQ,EAAGb,gBAAkB;IAC7BE,SAAS,EAAGnE,IAAI,CACf,mDACD;EAAG,GAEHoE,aAAA,CAAC3D,QAAQ;IACRsE,QAAQ,EAAC,eAAe;IACxBC,QAAQ,EAAGtD,YAAc;IACzBC,YAAY,EAAGA,YAAc;IAC7BsD,qBAAqB;IACrBC,QAAQ,EAAKC,MAAM,IAAM;MACxB7D,OAAO,CAAC+B,OAAO,GAAG8B,MAAM;IACzB,CAAG;IACHC,eAAe,EAAGA,CAAA,KAAM;MACvB9D,OAAO,CAAC+B,OAAO,GAAG,KAAK;IACxB;EAAG,CACH,CACU,CAEF,CACU,CAAC;AAE1B;AAEA,eAAe,SAASgC,cAAcA,CAAEC,KAAK,EAAG;EAC/C,MAAM;IAAE9C,cAAc;IAAE+C,SAAS;IAAEC;EAAiB,CAAC,GAAGvF,SAAS,CAC9D8B,MAAM,IAAM;IACb,MAAM;MACLG,sBAAsB;MACtBuD,4BAA4B;MAC5BC;IACD,CAAC,GAAG3D,MAAM,CAAEpB,gBAAiB,CAAC;IAC9B,MAAMgF,mBAAmB,GAAGzD,sBAAsB,CAAC,CAAC;IACpD,OAAO;MACNM,cAAc,EAAEmD,mBAAmB;MACnCJ,SAAS,EAAEE,4BAA4B,CAAC,CAAC;MACzCD,gBAAgB,EACfE,aAAa,CAAEC,mBAAmB,EAAEhE,YAAa,CAAC,KAAK;IACzD,CAAC;EACF,CAAC,EACD,EACD,CAAC;EAED,IACC,CAAE4D,SAAS;EACX;EACA;EACAC,gBAAgB,EACf;IACD,OAAO,IAAI;EACZ;;EAEA;AACD;AACA;AACA;EACC,OAAOhD,cAAc,CAACtB,SAAS,KAAK,SAAS,GAC5CkD,aAAA,CAACvD;EACA;EAAA;IACA+E,GAAG,EAAI,GAAGpD,cAAc,CAACb,YAAc,IAAIa,cAAc,CAACI,KAAO,EAAG;IAAA,GAC/D0C;EAAK,CACV,CAAC,GAEFlB,aAAA,CAACrD,8BAA8B;IAC9BG,SAAS,EAAGsB,cAAc,CAACtB,SAAW;IACtCC,WAAW,EAAGqB,cAAc,CAACrB,WAAa;IAAA,GACrCmE;EAAK,CACV,CACD;AACF","ignoreList":[]}