@wordpress/block-editor 13.2.0 → 13.4.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 (538) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +0 -5
  3. package/build/components/alignment-control/ui.js +2 -2
  4. package/build/components/alignment-control/ui.js.map +1 -1
  5. package/build/components/block-alignment-control/ui.js +1 -1
  6. package/build/components/block-alignment-control/ui.js.map +1 -1
  7. package/build/components/block-alignment-control/ui.native.js +1 -1
  8. package/build/components/block-alignment-control/ui.native.js.map +1 -1
  9. package/build/components/block-breadcrumb/index.js +12 -1
  10. package/build/components/block-breadcrumb/index.js.map +1 -1
  11. package/build/components/block-inspector/index.js +6 -3
  12. package/build/components/block-inspector/index.js.map +1 -1
  13. package/build/components/block-list/use-block-props/index.js +3 -1
  14. package/build/components/block-list/use-block-props/index.js.map +1 -1
  15. package/build/components/block-list/use-block-props/use-block-refs.js +9 -2
  16. package/build/components/block-list/use-block-props/use-block-refs.js.map +1 -1
  17. package/build/components/block-list/use-block-props/use-is-hovered.js +25 -9
  18. package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  19. package/build/components/block-list/use-in-between-inserter.js +3 -2
  20. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  21. package/build/components/block-lock/modal.js +2 -0
  22. package/build/components/block-lock/modal.js.map +1 -1
  23. package/build/components/block-lock/toolbar.js +0 -1
  24. package/build/components/block-lock/toolbar.js.map +1 -1
  25. package/build/components/block-mover/button.js +1 -1
  26. package/build/components/block-mover/button.js.map +1 -1
  27. package/build/components/block-mover/index.js +1 -1
  28. package/build/components/block-mover/index.js.map +1 -1
  29. package/build/components/block-pattern-setup/setup-toolbar.js +2 -2
  30. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  31. package/build/components/block-patterns-paging/index.js +5 -7
  32. package/build/components/block-patterns-paging/index.js.map +1 -1
  33. package/build/components/block-quick-navigation/index.js +20 -17
  34. package/build/components/block-quick-navigation/index.js.map +1 -1
  35. package/build/components/block-removal-warning-modal/index.js +2 -0
  36. package/build/components/block-removal-warning-modal/index.js.map +1 -1
  37. package/build/components/block-rename/modal.js +4 -12
  38. package/build/components/block-rename/modal.js.map +1 -1
  39. package/build/components/block-switcher/index.js +1 -1
  40. package/build/components/block-switcher/index.js.map +1 -1
  41. package/build/components/block-switcher/pattern-transformations-menu.js +11 -12
  42. package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  43. package/build/components/block-switcher/preview-block-popover.js +20 -17
  44. package/build/components/block-switcher/preview-block-popover.js.map +1 -1
  45. package/build/components/block-toolbar/shuffle.js +6 -2
  46. package/build/components/block-toolbar/shuffle.js.map +1 -1
  47. package/build/components/block-tools/block-selection-button.js +7 -58
  48. package/build/components/block-tools/block-selection-button.js.map +1 -1
  49. package/build/components/block-tools/block-toolbar-breadcrumb.js +9 -2
  50. package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
  51. package/build/components/block-tools/index.js +14 -1
  52. package/build/components/block-tools/index.js.map +1 -1
  53. package/build/components/block-tools/use-show-block-tools.js +9 -8
  54. package/build/components/block-tools/use-show-block-tools.js.map +1 -1
  55. package/build/components/block-tools/zoom-out-mode-inserter-button.js +45 -0
  56. package/build/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -0
  57. package/build/components/block-tools/zoom-out-mode-inserters.js +29 -28
  58. package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  59. package/build/components/block-tools/zoom-out-popover.js +58 -0
  60. package/build/components/block-tools/zoom-out-popover.js.map +1 -0
  61. package/build/components/block-tools/zoom-out-toolbar.js +138 -0
  62. package/build/components/block-tools/zoom-out-toolbar.js.map +1 -0
  63. package/build/components/button-block-appender/index.js +3 -1
  64. package/build/components/button-block-appender/index.js.map +1 -1
  65. package/build/components/child-layout-control/index.js +26 -18
  66. package/build/components/child-layout-control/index.js.map +1 -1
  67. package/build/components/date-format-picker/index.js +1 -1
  68. package/build/components/date-format-picker/index.js.map +1 -1
  69. package/build/components/default-block-appender/index.js +7 -4
  70. package/build/components/default-block-appender/index.js.map +1 -1
  71. package/build/components/dimensions-tool/index.js +6 -4
  72. package/build/components/dimensions-tool/index.js.map +1 -1
  73. package/build/components/font-appearance-control/index.js +22 -62
  74. package/build/components/font-appearance-control/index.js.map +1 -1
  75. package/build/components/global-styles/background-panel.js +185 -116
  76. package/build/components/global-styles/background-panel.js.map +1 -1
  77. package/build/components/global-styles/border-panel.js +2 -1
  78. package/build/components/global-styles/border-panel.js.map +1 -1
  79. package/build/components/global-styles/color-panel.js +2 -1
  80. package/build/components/global-styles/color-panel.js.map +1 -1
  81. package/build/components/global-styles/dimensions-panel.js +2 -1
  82. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  83. package/build/components/global-styles/filters-panel.js +2 -1
  84. package/build/components/global-styles/filters-panel.js.map +1 -1
  85. package/build/components/global-styles/hooks.js +13 -1
  86. package/build/components/global-styles/hooks.js.map +1 -1
  87. package/build/components/global-styles/image-settings-panel.js +2 -1
  88. package/build/components/global-styles/image-settings-panel.js.map +1 -1
  89. package/build/components/global-styles/typography-panel.js +45 -24
  90. package/build/components/global-styles/typography-panel.js.map +1 -1
  91. package/build/components/global-styles/typography-utils.js +121 -0
  92. package/build/components/global-styles/typography-utils.js.map +1 -1
  93. package/build/components/global-styles/use-global-styles-output.js +47 -13
  94. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  95. package/build/components/global-styles/utils.js +17 -7
  96. package/build/components/global-styles/utils.js.map +1 -1
  97. package/build/components/grid/grid-item-movers.js +90 -48
  98. package/build/components/grid/grid-item-movers.js.map +1 -1
  99. package/build/components/grid/grid-item-resizer.js +2 -2
  100. package/build/components/grid/grid-item-resizer.js.map +1 -1
  101. package/build/components/grid/grid-visualizer.js +117 -37
  102. package/build/components/grid/grid-visualizer.js.map +1 -1
  103. package/build/components/grid/use-grid-layout-sync.js +60 -41
  104. package/build/components/grid/use-grid-layout-sync.js.map +1 -1
  105. package/build/components/index.js +1 -9
  106. package/build/components/index.js.map +1 -1
  107. package/build/components/inner-blocks/index.js +2 -2
  108. package/build/components/inner-blocks/index.js.map +1 -1
  109. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -19
  110. package/build/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
  111. package/build/components/inserter/block-patterns-tab/patterns-filter.js +20 -23
  112. package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  113. package/build/components/inserter/media-tab/media-panel.js +1 -0
  114. package/build/components/inserter/media-tab/media-panel.js.map +1 -1
  115. package/build/components/inserter/menu.js +26 -4
  116. package/build/components/inserter/menu.js.map +1 -1
  117. package/build/components/inserter/preview-panel.js +20 -3
  118. package/build/components/inserter/preview-panel.js.map +1 -1
  119. package/build/components/inserter/quick-inserter.js +2 -1
  120. package/build/components/inserter/quick-inserter.js.map +1 -1
  121. package/build/components/inserter-draggable-blocks/index.js +10 -3
  122. package/build/components/inserter-draggable-blocks/index.js.map +1 -1
  123. package/build/components/inspector-controls/block-support-tools-panel.js +2 -1
  124. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  125. package/build/components/inspector-controls-tabs/settings-tab.js +1 -2
  126. package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  127. package/build/components/link-control/link-preview.js +1 -1
  128. package/build/components/link-control/link-preview.js.map +1 -1
  129. package/build/components/list-view/block-select-button.js +2 -6
  130. package/build/components/list-view/block-select-button.js.map +1 -1
  131. package/build/components/list-view/block.js +2 -2
  132. package/build/components/list-view/block.js.map +1 -1
  133. package/build/components/list-view/utils.js +3 -1
  134. package/build/components/list-view/utils.js.map +1 -1
  135. package/build/components/media-placeholder/index.js +19 -23
  136. package/build/components/media-placeholder/index.js.map +1 -1
  137. package/build/components/navigable-toolbar/index.js +3 -1
  138. package/build/components/navigable-toolbar/index.js.map +1 -1
  139. package/build/components/rich-text/format-toolbar/index.js +1 -1
  140. package/build/components/rich-text/format-toolbar/index.js.map +1 -1
  141. package/build/components/rich-text/index.js +1 -1
  142. package/build/components/rich-text/index.js.map +1 -1
  143. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -3
  144. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  145. package/build/components/tabbed-sidebar/index.js +66 -0
  146. package/build/components/tabbed-sidebar/index.js.map +1 -0
  147. package/build/components/url-popover/image-url-input-ui.js +3 -3
  148. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  149. package/build/components/url-popover/index.js +3 -0
  150. package/build/components/url-popover/index.js.map +1 -1
  151. package/build/hooks/background.js +26 -4
  152. package/build/hooks/background.js.map +1 -1
  153. package/build/hooks/block-hooks.js +11 -17
  154. package/build/hooks/block-hooks.js.map +1 -1
  155. package/build/hooks/block-style-variation.js +169 -4
  156. package/build/hooks/block-style-variation.js.map +1 -1
  157. package/build/hooks/duotone.js +16 -11
  158. package/build/hooks/duotone.js.map +1 -1
  159. package/build/hooks/grid-visualizer.js +62 -0
  160. package/build/hooks/grid-visualizer.js.map +1 -0
  161. package/build/hooks/index.js +15 -2
  162. package/build/hooks/index.js.map +1 -1
  163. package/build/hooks/layout-child.js +47 -23
  164. package/build/hooks/layout-child.js.map +1 -1
  165. package/build/hooks/position.js +4 -15
  166. package/build/hooks/position.js.map +1 -1
  167. package/build/hooks/use-bindings-attributes.js +96 -55
  168. package/build/hooks/use-bindings-attributes.js.map +1 -1
  169. package/build/hooks/utils.js +2 -0
  170. package/build/hooks/utils.js.map +1 -1
  171. package/build/layouts/constrained.js +50 -4
  172. package/build/layouts/constrained.js.map +1 -1
  173. package/build/layouts/grid.js +92 -51
  174. package/build/layouts/grid.js.map +1 -1
  175. package/build/private-apis.js +6 -4
  176. package/build/private-apis.js.map +1 -1
  177. package/build/store/actions.js +18 -1
  178. package/build/store/actions.js.map +1 -1
  179. package/build/store/defaults.js +0 -2
  180. package/build/store/defaults.js.map +1 -1
  181. package/build/store/defaults.native.js +0 -3
  182. package/build/store/defaults.native.js.map +1 -1
  183. package/build/store/private-keys.js +2 -1
  184. package/build/store/private-keys.js.map +1 -1
  185. package/build/store/reducer.js +19 -1
  186. package/build/store/reducer.js.map +1 -1
  187. package/build/store/selectors.js +13 -1
  188. package/build/store/selectors.js.map +1 -1
  189. package/build/utils/format-font-style.js +45 -0
  190. package/build/utils/format-font-style.js.map +1 -0
  191. package/build/utils/format-font-weight.js +68 -0
  192. package/build/utils/format-font-weight.js.map +1 -0
  193. package/build/utils/get-editor-region.js +34 -0
  194. package/build/utils/get-editor-region.js.map +1 -0
  195. package/build/utils/get-font-styles-and-weights.js +167 -0
  196. package/build/utils/get-font-styles-and-weights.js.map +1 -0
  197. package/build/utils/pasting.js +5 -13
  198. package/build/utils/pasting.js.map +1 -1
  199. package/build-module/components/alignment-control/ui.js +2 -2
  200. package/build-module/components/alignment-control/ui.js.map +1 -1
  201. package/build-module/components/block-alignment-control/ui.js +1 -1
  202. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  203. package/build-module/components/block-alignment-control/ui.native.js +1 -1
  204. package/build-module/components/block-alignment-control/ui.native.js.map +1 -1
  205. package/build-module/components/block-breadcrumb/index.js +12 -1
  206. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  207. package/build-module/components/block-inspector/index.js +6 -3
  208. package/build-module/components/block-inspector/index.js.map +1 -1
  209. package/build-module/components/block-list/use-block-props/index.js +3 -1
  210. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  211. package/build-module/components/block-list/use-block-props/use-block-refs.js +11 -4
  212. package/build-module/components/block-list/use-block-props/use-block-refs.js.map +1 -1
  213. package/build-module/components/block-list/use-block-props/use-is-hovered.js +26 -9
  214. package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
  215. package/build-module/components/block-list/use-in-between-inserter.js +3 -2
  216. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  217. package/build-module/components/block-lock/modal.js +2 -0
  218. package/build-module/components/block-lock/modal.js.map +1 -1
  219. package/build-module/components/block-lock/toolbar.js +0 -1
  220. package/build-module/components/block-lock/toolbar.js.map +1 -1
  221. package/build-module/components/block-mover/button.js +1 -1
  222. package/build-module/components/block-mover/button.js.map +1 -1
  223. package/build-module/components/block-mover/index.js +1 -1
  224. package/build-module/components/block-mover/index.js.map +1 -1
  225. package/build-module/components/block-pattern-setup/setup-toolbar.js +2 -2
  226. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  227. package/build-module/components/block-patterns-paging/index.js +5 -7
  228. package/build-module/components/block-patterns-paging/index.js.map +1 -1
  229. package/build-module/components/block-quick-navigation/index.js +20 -17
  230. package/build-module/components/block-quick-navigation/index.js.map +1 -1
  231. package/build-module/components/block-removal-warning-modal/index.js +2 -0
  232. package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
  233. package/build-module/components/block-rename/modal.js +5 -13
  234. package/build-module/components/block-rename/modal.js.map +1 -1
  235. package/build-module/components/block-switcher/index.js +1 -1
  236. package/build-module/components/block-switcher/index.js.map +1 -1
  237. package/build-module/components/block-switcher/pattern-transformations-menu.js +12 -13
  238. package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
  239. package/build-module/components/block-switcher/preview-block-popover.js +20 -17
  240. package/build-module/components/block-switcher/preview-block-popover.js.map +1 -1
  241. package/build-module/components/block-toolbar/shuffle.js +6 -2
  242. package/build-module/components/block-toolbar/shuffle.js.map +1 -1
  243. package/build-module/components/block-tools/block-selection-button.js +10 -61
  244. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  245. package/build-module/components/block-tools/block-toolbar-breadcrumb.js +9 -2
  246. package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -1
  247. package/build-module/components/block-tools/index.js +14 -1
  248. package/build-module/components/block-tools/index.js.map +1 -1
  249. package/build-module/components/block-tools/use-show-block-tools.js +9 -8
  250. package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
  251. package/build-module/components/block-tools/zoom-out-mode-inserter-button.js +37 -0
  252. package/build-module/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -0
  253. package/build-module/components/block-tools/zoom-out-mode-inserters.js +30 -29
  254. package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
  255. package/build-module/components/block-tools/zoom-out-popover.js +49 -0
  256. package/build-module/components/block-tools/zoom-out-popover.js.map +1 -0
  257. package/build-module/components/block-tools/zoom-out-toolbar.js +131 -0
  258. package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -0
  259. package/build-module/components/button-block-appender/index.js +3 -1
  260. package/build-module/components/button-block-appender/index.js.map +1 -1
  261. package/build-module/components/child-layout-control/index.js +27 -19
  262. package/build-module/components/child-layout-control/index.js.map +1 -1
  263. package/build-module/components/date-format-picker/index.js +2 -2
  264. package/build-module/components/date-format-picker/index.js.map +1 -1
  265. package/build-module/components/default-block-appender/index.js +7 -4
  266. package/build-module/components/default-block-appender/index.js.map +1 -1
  267. package/build-module/components/dimensions-tool/index.js +6 -4
  268. package/build-module/components/dimensions-tool/index.js.map +1 -1
  269. package/build-module/components/font-appearance-control/index.js +24 -62
  270. package/build-module/components/font-appearance-control/index.js.map +1 -1
  271. package/build-module/components/global-styles/background-panel.js +188 -119
  272. package/build-module/components/global-styles/background-panel.js.map +1 -1
  273. package/build-module/components/global-styles/border-panel.js +3 -2
  274. package/build-module/components/global-styles/border-panel.js.map +1 -1
  275. package/build-module/components/global-styles/color-panel.js +3 -2
  276. package/build-module/components/global-styles/color-panel.js.map +1 -1
  277. package/build-module/components/global-styles/dimensions-panel.js +3 -2
  278. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  279. package/build-module/components/global-styles/filters-panel.js +3 -2
  280. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  281. package/build-module/components/global-styles/hooks.js +13 -1
  282. package/build-module/components/global-styles/hooks.js.map +1 -1
  283. package/build-module/components/global-styles/image-settings-panel.js +3 -2
  284. package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
  285. package/build-module/components/global-styles/typography-panel.js +47 -26
  286. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  287. package/build-module/components/global-styles/typography-utils.js +117 -0
  288. package/build-module/components/global-styles/typography-utils.js.map +1 -1
  289. package/build-module/components/global-styles/use-global-styles-output.js +47 -13
  290. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  291. package/build-module/components/global-styles/utils.js +15 -6
  292. package/build-module/components/global-styles/utils.js.map +1 -1
  293. package/build-module/components/grid/grid-item-movers.js +93 -50
  294. package/build-module/components/grid/grid-item-movers.js.map +1 -1
  295. package/build-module/components/grid/grid-item-resizer.js +2 -2
  296. package/build-module/components/grid/grid-item-resizer.js.map +1 -1
  297. package/build-module/components/grid/grid-visualizer.js +118 -38
  298. package/build-module/components/grid/grid-visualizer.js.map +1 -1
  299. package/build-module/components/grid/use-grid-layout-sync.js +61 -42
  300. package/build-module/components/grid/use-grid-layout-sync.js.map +1 -1
  301. package/build-module/components/index.js +0 -5
  302. package/build-module/components/index.js.map +1 -1
  303. package/build-module/components/inner-blocks/index.js +2 -2
  304. package/build-module/components/inner-blocks/index.js.map +1 -1
  305. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -19
  306. package/build-module/components/inserter/block-patterns-tab/pattern-category-preview-panel.js.map +1 -1
  307. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +20 -23
  308. package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
  309. package/build-module/components/inserter/media-tab/media-panel.js +1 -0
  310. package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
  311. package/build-module/components/inserter/menu.js +26 -4
  312. package/build-module/components/inserter/menu.js.map +1 -1
  313. package/build-module/components/inserter/preview-panel.js +20 -3
  314. package/build-module/components/inserter/preview-panel.js.map +1 -1
  315. package/build-module/components/inserter/quick-inserter.js +2 -1
  316. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  317. package/build-module/components/inserter-draggable-blocks/index.js +10 -3
  318. package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
  319. package/build-module/components/inspector-controls/block-support-tools-panel.js +3 -2
  320. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  321. package/build-module/components/inspector-controls-tabs/settings-tab.js +1 -2
  322. package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -1
  323. package/build-module/components/link-control/link-preview.js +1 -1
  324. package/build-module/components/link-control/link-preview.js.map +1 -1
  325. package/build-module/components/list-view/block-select-button.js +3 -7
  326. package/build-module/components/list-view/block-select-button.js.map +1 -1
  327. package/build-module/components/list-view/block.js +2 -2
  328. package/build-module/components/list-view/block.js.map +1 -1
  329. package/build-module/components/list-view/utils.js +3 -1
  330. package/build-module/components/list-view/utils.js.map +1 -1
  331. package/build-module/components/media-placeholder/index.js +19 -23
  332. package/build-module/components/media-placeholder/index.js.map +1 -1
  333. package/build-module/components/navigable-toolbar/index.js +3 -1
  334. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  335. package/build-module/components/rich-text/format-toolbar/index.js +1 -1
  336. package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
  337. package/build-module/components/rich-text/index.js +1 -1
  338. package/build-module/components/rich-text/index.js.map +1 -1
  339. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -3
  340. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  341. package/build-module/components/tabbed-sidebar/index.js +60 -0
  342. package/build-module/components/tabbed-sidebar/index.js.map +1 -0
  343. package/build-module/components/url-popover/image-url-input-ui.js +3 -3
  344. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  345. package/build-module/components/url-popover/index.js +3 -0
  346. package/build-module/components/url-popover/index.js.map +1 -1
  347. package/build-module/hooks/background.js +26 -4
  348. package/build-module/hooks/background.js.map +1 -1
  349. package/build-module/hooks/block-hooks.js +11 -17
  350. package/build-module/hooks/block-hooks.js.map +1 -1
  351. package/build-module/hooks/block-style-variation.js +168 -4
  352. package/build-module/hooks/block-style-variation.js.map +1 -1
  353. package/build-module/hooks/duotone.js +16 -11
  354. package/build-module/hooks/duotone.js.map +1 -1
  355. package/build-module/hooks/grid-visualizer.js +61 -0
  356. package/build-module/hooks/grid-visualizer.js.map +1 -0
  357. package/build-module/hooks/index.js +3 -0
  358. package/build-module/hooks/index.js.map +1 -1
  359. package/build-module/hooks/layout-child.js +47 -23
  360. package/build-module/hooks/layout-child.js.map +1 -1
  361. package/build-module/hooks/position.js +4 -15
  362. package/build-module/hooks/position.js.map +1 -1
  363. package/build-module/hooks/use-bindings-attributes.js +96 -56
  364. package/build-module/hooks/use-bindings-attributes.js.map +1 -1
  365. package/build-module/hooks/utils.js +2 -0
  366. package/build-module/hooks/utils.js.map +1 -1
  367. package/build-module/layouts/constrained.js +50 -4
  368. package/build-module/layouts/constrained.js.map +1 -1
  369. package/build-module/layouts/grid.js +92 -51
  370. package/build-module/layouts/grid.js.map +1 -1
  371. package/build-module/private-apis.js +8 -6
  372. package/build-module/private-apis.js.map +1 -1
  373. package/build-module/store/actions.js +15 -0
  374. package/build-module/store/actions.js.map +1 -1
  375. package/build-module/store/defaults.js +0 -2
  376. package/build-module/store/defaults.js.map +1 -1
  377. package/build-module/store/defaults.native.js +0 -3
  378. package/build-module/store/defaults.native.js.map +1 -1
  379. package/build-module/store/private-keys.js +1 -0
  380. package/build-module/store/private-keys.js.map +1 -1
  381. package/build-module/store/reducer.js +18 -1
  382. package/build-module/store/reducer.js.map +1 -1
  383. package/build-module/store/selectors.js +10 -0
  384. package/build-module/store/selectors.js.map +1 -1
  385. package/build-module/utils/format-font-style.js +39 -0
  386. package/build-module/utils/format-font-style.js.map +1 -0
  387. package/build-module/utils/format-font-weight.js +62 -0
  388. package/build-module/utils/format-font-weight.js.map +1 -0
  389. package/build-module/utils/get-editor-region.js +28 -0
  390. package/build-module/utils/get-editor-region.js.map +1 -0
  391. package/build-module/utils/get-font-styles-and-weights.js +160 -0
  392. package/build-module/utils/get-font-styles-and-weights.js.map +1 -0
  393. package/build-module/utils/pasting.js +5 -13
  394. package/build-module/utils/pasting.js.map +1 -1
  395. package/build-style/content-rtl.css +7 -6
  396. package/build-style/content.css +7 -6
  397. package/build-style/style-rtl.css +356 -181
  398. package/build-style/style.css +356 -181
  399. package/build-types/components/block-context/index.d.ts +2 -2
  400. package/build-types/components/block-context/index.d.ts.map +1 -1
  401. package/build-types/utils/dom.d.ts.map +1 -1
  402. package/package.json +32 -32
  403. package/src/components/alignment-control/ui.js +2 -2
  404. package/src/components/block-alignment-control/ui.js +1 -1
  405. package/src/components/block-alignment-control/ui.native.js +1 -1
  406. package/src/components/block-breadcrumb/index.js +16 -1
  407. package/src/components/block-context/README.md +4 -4
  408. package/src/components/block-inspector/index.js +8 -4
  409. package/src/components/block-list/content.scss +2 -16
  410. package/src/components/block-list/use-block-props/index.js +1 -1
  411. package/src/components/block-list/use-block-props/use-block-refs.js +19 -3
  412. package/src/components/block-list/use-block-props/use-is-hovered.js +26 -11
  413. package/src/components/block-list/use-in-between-inserter.js +5 -1
  414. package/src/components/block-lock/modal.js +10 -2
  415. package/src/components/block-lock/style.scss +4 -8
  416. package/src/components/block-lock/toolbar.js +0 -1
  417. package/src/components/block-mover/button.js +1 -1
  418. package/src/components/block-mover/index.js +1 -1
  419. package/src/components/block-pattern-setup/setup-toolbar.js +2 -2
  420. package/src/components/block-patterns-paging/index.js +8 -11
  421. package/src/components/block-patterns-paging/style.scss +0 -5
  422. package/src/components/block-quick-navigation/index.js +21 -28
  423. package/src/components/block-removal-warning-modal/index.js +10 -2
  424. package/src/components/block-rename/modal.js +2 -8
  425. package/src/components/block-switcher/index.js +1 -1
  426. package/src/components/block-switcher/pattern-transformations-menu.js +17 -15
  427. package/src/components/block-switcher/preview-block-popover.js +20 -14
  428. package/src/components/block-switcher/style.scss +8 -17
  429. package/src/components/block-switcher/test/index.js +6 -6
  430. package/src/components/block-toolbar/shuffle.js +9 -1
  431. package/src/components/block-toolbar/style.scss +1 -11
  432. package/src/components/block-tools/block-selection-button.js +11 -83
  433. package/src/components/block-tools/block-toolbar-breadcrumb.js +9 -4
  434. package/src/components/block-tools/index.js +21 -1
  435. package/src/components/block-tools/style.scss +23 -0
  436. package/src/components/block-tools/use-show-block-tools.js +21 -10
  437. package/src/components/block-tools/zoom-out-mode-inserter-button.js +47 -0
  438. package/src/components/block-tools/zoom-out-mode-inserters.js +44 -33
  439. package/src/components/block-tools/zoom-out-popover.js +50 -0
  440. package/src/components/block-tools/zoom-out-toolbar.js +140 -0
  441. package/src/components/button-block-appender/index.js +2 -1
  442. package/src/components/child-layout-control/index.js +41 -23
  443. package/src/components/date-format-picker/index.js +2 -2
  444. package/src/components/date-format-picker/style.scss +0 -9
  445. package/src/components/default-block-appender/index.js +11 -4
  446. package/src/components/dimensions-tool/index.js +97 -89
  447. package/src/components/font-appearance-control/index.js +24 -82
  448. package/src/components/font-appearance-control/style.scss +3 -5
  449. package/src/components/global-styles/background-panel.js +266 -167
  450. package/src/components/global-styles/border-panel.js +3 -2
  451. package/src/components/global-styles/color-panel.js +3 -2
  452. package/src/components/global-styles/dimensions-panel.js +3 -2
  453. package/src/components/global-styles/filters-panel.js +3 -2
  454. package/src/components/global-styles/hooks.js +14 -1
  455. package/src/components/global-styles/image-settings-panel.js +3 -2
  456. package/src/components/global-styles/style.scss +116 -19
  457. package/src/components/global-styles/test/typography-utils.js +594 -0
  458. package/src/components/global-styles/test/use-global-styles-output.js +3 -1
  459. package/src/components/global-styles/typography-panel.js +56 -27
  460. package/src/components/global-styles/typography-utils.js +159 -0
  461. package/src/components/global-styles/use-global-styles-output.js +45 -10
  462. package/src/components/global-styles/utils.js +17 -6
  463. package/src/components/grid/grid-item-movers.js +140 -86
  464. package/src/components/grid/grid-item-resizer.js +3 -2
  465. package/src/components/grid/grid-visualizer.js +172 -55
  466. package/src/components/grid/style.scss +157 -8
  467. package/src/components/grid/use-grid-layout-sync.js +88 -46
  468. package/src/components/iframe/content.scss +2 -1
  469. package/src/components/index.js +0 -5
  470. package/src/components/inner-blocks/index.js +6 -2
  471. package/src/components/inserter/block-patterns-tab/pattern-category-preview-panel.js +1 -16
  472. package/src/components/inserter/block-patterns-tab/patterns-filter.js +40 -44
  473. package/src/components/inserter/media-tab/media-panel.js +1 -0
  474. package/src/components/inserter/menu.js +47 -13
  475. package/src/components/inserter/preview-panel.js +27 -4
  476. package/src/components/inserter/quick-inserter.js +6 -1
  477. package/src/components/inserter/style.scss +58 -92
  478. package/src/components/inserter-draggable-blocks/index.js +11 -3
  479. package/src/components/inspector-controls/block-support-tools-panel.js +3 -3
  480. package/src/components/inspector-controls-tabs/settings-tab.js +0 -2
  481. package/src/components/inspector-controls-tabs/style.scss +0 -21
  482. package/src/components/link-control/link-preview.js +1 -1
  483. package/src/components/list-view/block-select-button.js +3 -13
  484. package/src/components/list-view/block.js +10 -3
  485. package/src/components/list-view/style.scss +2 -1
  486. package/src/components/list-view/utils.js +13 -2
  487. package/src/components/media-placeholder/index.js +22 -32
  488. package/src/components/navigable-toolbar/index.js +3 -1
  489. package/src/components/rich-text/format-toolbar/index.js +1 -1
  490. package/src/components/rich-text/index.js +1 -1
  491. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +9 -2
  492. package/src/components/tabbed-sidebar/README.md +76 -0
  493. package/src/components/tabbed-sidebar/index.js +70 -0
  494. package/src/components/tabbed-sidebar/style.scss +53 -0
  495. package/src/components/url-popover/image-url-input-ui.js +3 -3
  496. package/src/components/url-popover/index.js +3 -0
  497. package/src/components/url-popover/style.scss +1 -0
  498. package/src/hooks/background.js +25 -10
  499. package/src/hooks/block-hooks.js +9 -16
  500. package/src/hooks/block-style-variation.js +202 -3
  501. package/src/hooks/duotone.js +16 -12
  502. package/src/hooks/grid-visualizer.js +62 -0
  503. package/src/hooks/index.js +3 -0
  504. package/src/hooks/layout-child.js +64 -39
  505. package/src/hooks/position.js +3 -20
  506. package/src/hooks/test/get-variation-styles-with-ref-values.js +91 -0
  507. package/src/hooks/use-bindings-attributes.js +107 -63
  508. package/src/hooks/utils.js +2 -0
  509. package/src/layouts/constrained.js +53 -4
  510. package/src/layouts/grid.js +148 -51
  511. package/src/private-apis.js +12 -7
  512. package/src/store/actions.js +15 -0
  513. package/src/store/defaults.js +0 -2
  514. package/src/store/defaults.native.js +0 -3
  515. package/src/store/private-keys.js +1 -0
  516. package/src/store/reducer.js +18 -0
  517. package/src/store/selectors.js +10 -0
  518. package/src/style.scss +1 -1
  519. package/src/utils/format-font-style.js +40 -0
  520. package/src/utils/format-font-weight.js +63 -0
  521. package/src/utils/get-editor-region.js +31 -0
  522. package/src/utils/get-font-styles-and-weights.js +191 -0
  523. package/src/utils/pasting.js +5 -12
  524. package/src/utils/test/format-font-style.js +34 -0
  525. package/src/utils/test/format-font-weight.js +66 -0
  526. package/src/utils/test/get-font-styles-and-weights.js +513 -0
  527. package/tsconfig.tsbuildinfo +1 -1
  528. package/build/components/inserter/reusable-block-rename-hint.js +0 -71
  529. package/build/components/inserter/reusable-block-rename-hint.js.map +0 -1
  530. package/build/components/inspector-controls-tabs/settings-tab-hint.js +0 -53
  531. package/build/components/inspector-controls-tabs/settings-tab-hint.js.map +0 -1
  532. package/build-module/components/inserter/reusable-block-rename-hint.js +0 -64
  533. package/build-module/components/inserter/reusable-block-rename-hint.js.map +0 -1
  534. package/build-module/components/inspector-controls-tabs/settings-tab-hint.js +0 -47
  535. package/build-module/components/inspector-controls-tabs/settings-tab-hint.js.map +0 -1
  536. package/src/components/inserter/reusable-block-rename-hint.js +0 -69
  537. package/src/components/inspector-controls-tabs/settings-tab-hint.js +0 -52
  538. package/src/hooks/position.scss +0 -18
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_icons","_components","_data","_element","_keycodes","_blocks","_a11y","_dom","_i18n","_blockTitle","_blockIcon","_store","_blockDraggable","_useBlockRefs","_blockMover","_shuffle","_jsxRuntime","BlockSelectionButton","clientId","rootClientId","selected","useSelect","select","getBlock","getBlockIndex","hasBlockMovingClientId","getBlockListSettings","__unstableGetEditorMode","getNextBlockClientId","getPreviousBlockClientId","canRemoveBlock","canMoveBlock","blockEditorStore","getActiveBlockVariation","getBlockType","blocksStore","index","name","attributes","blockType","orientation","match","isBlockTemplatePart","isNextBlockTemplatePart","nextClientId","nextName","nextBlockType","isPrevBlockTemplatePart","prevClientId","prevName","prevBlockType","blockMovingMode","editorMode","icon","label","getAccessibleBlockLabel","canRemove","canMove","setNavigationMode","removeBlock","useDispatch","ref","useRef","useEffect","current","focus","speak","blockElement","useBlockElement","getBlockRootClientId","getClientIdsOfDescendants","getSelectedBlockClientId","getMultiSelectedBlocksEndClientId","selectBlock","clearSelectedBlock","setBlockMovingClientId","moveBlockToPosition","onKeyDown","event","keyCode","isUp","UP","isDown","DOWN","isLeft","LEFT","isRight","RIGHT","isTab","TAB","isEscape","ESCAPE","isEnter","ENTER","isSpace","SPACE","isShift","shiftKey","preventDefault","BACKSPACE","DELETE","selectedBlockClientId","selectionEndClientId","selectionBeforeEndClientId","selectionAfterEndClientId","navigateUp","navigateDown","navigateOut","navigateIn","focusedBlockUid","_getBlockRootClientId","_getClientIdsOfDescen","startingBlockClientId","defaultPrevented","sourceRoot","destRoot","sourceBlockIndex","destinationBlockIndex","nextTabbable","tabbable","findNext","contains","ownerDocument","defaultView","frameElement","findPrevious","classNames","clsx","dragHandleLabel","__","showBlockDraggable","jsx","className","children","jsxs","Flex","justify","FlexItem","default","showColors","clientIds","draggableProps","Button","dragHandle","tabIndex","hideDragHandle","isBlockMoverUpButtonDisabled","isBlockMoverDownButtonDisabled","as","ToolbarButton","trash","onClick","undefined","showTooltip","maximumLength","_default","exports"],"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 ),\n\t\t\t\tcanMove: canMoveBlock( clientId ),\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":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_icons","_components","_data","_element","_keycodes","_blocks","_a11y","_dom","_i18n","_blockTitle","_blockIcon","_store","_blockDraggable","_useBlockRefs","_jsxRuntime","BlockSelectionButton","clientId","rootClientId","ref","selected","useSelect","select","getBlock","getBlockIndex","hasBlockMovingClientId","getBlockListSettings","__unstableGetEditorMode","getNextBlockClientId","getPreviousBlockClientId","canMoveBlock","blockEditorStore","getActiveBlockVariation","getBlockType","blocksStore","index","name","attributes","blockType","orientation","match","blockMovingMode","editorMode","icon","label","getAccessibleBlockLabel","canMove","setNavigationMode","removeBlock","useDispatch","useEffect","current","focus","speak","blockElement","useBlockElement","getBlockRootClientId","getClientIdsOfDescendants","getSelectedBlockClientId","getMultiSelectedBlocksEndClientId","selectBlock","clearSelectedBlock","setBlockMovingClientId","moveBlockToPosition","onKeyDown","event","keyCode","isUp","UP","isDown","DOWN","isLeft","LEFT","isRight","RIGHT","isTab","TAB","isEscape","ESCAPE","isEnter","ENTER","isSpace","SPACE","isShift","shiftKey","BACKSPACE","DELETE","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","clsx","dragHandleLabel","__","showBlockDraggable","jsx","className","children","jsxs","Flex","justify","FlexItem","default","showColors","clientIds","draggableProps","Button","dragHandle","tabIndex","onClick","undefined","showTooltip","maximumLength","_default","exports","forwardRef"],"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 } from '@wordpress/icons';\nimport { Button, Flex, FlexItem } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { forwardRef, useEffect } 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';\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 * @param {Object} ref Reference to the component.\n *\n * @return {Component} The component to be rendered.\n */\nfunction BlockSelectionButton( { clientId, rootClientId }, ref ) {\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\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\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\tcanMove: canMoveBlock( clientId, rootClientId ),\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\tconst { label, icon, blockMovingMode, editorMode, canMove } = selected;\n\tconst { setNavigationMode, removeBlock } = useDispatch( blockEditorStore );\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\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 = canMove && editorMode === 'navigation';\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 === '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 forwardRef( BlockSelectionButton );\n"],"mappings":"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","ignoreList":[]}
@@ -4,8 +4,9 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.default = BlockToolbarBreadcrumb;
7
+ exports.default = void 0;
8
8
  var _clsx = _interopRequireDefault(require("clsx"));
9
+ var _element = require("@wordpress/element");
9
10
  var _blockSelectionButton = _interopRequireDefault(require("./block-selection-button"));
10
11
  var _blockPopover = require("../block-popover");
11
12
  var _useBlockToolbarPopoverProps = _interopRequireDefault(require("./use-block-toolbar-popover-props"));
@@ -15,6 +16,10 @@ var _jsxRuntime = require("react/jsx-runtime");
15
16
  * External dependencies
16
17
  */
17
18
 
19
+ /**
20
+ * WordPress dependencies
21
+ */
22
+
18
23
  /**
19
24
  * Internal dependencies
20
25
  */
@@ -22,7 +27,7 @@ var _jsxRuntime = require("react/jsx-runtime");
22
27
  function BlockToolbarBreadcrumb({
23
28
  clientId,
24
29
  __unstableContentRef
25
- }) {
30
+ }, ref) {
26
31
  const {
27
32
  capturingClientId,
28
33
  isInsertionPointVisible,
@@ -42,9 +47,11 @@ function BlockToolbarBreadcrumb({
42
47
  resize: false,
43
48
  ...popoverProps,
44
49
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockSelectionButton.default, {
50
+ ref: ref,
45
51
  clientId: clientId,
46
52
  rootClientId: rootClientId
47
53
  })
48
54
  });
49
55
  }
56
+ var _default = exports.default = (0, _element.forwardRef)(BlockToolbarBreadcrumb);
50
57
  //# sourceMappingURL=block-toolbar-breadcrumb.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_blockSelectionButton","_blockPopover","_useBlockToolbarPopoverProps","_useSelectedBlockToolProps","_jsxRuntime","BlockToolbarBreadcrumb","clientId","__unstableContentRef","capturingClientId","isInsertionPointVisible","lastClientId","rootClientId","useSelectedBlockToolProps","popoverProps","useBlockToolbarPopoverProps","contentElement","current","jsx","PrivateBlockPopover","bottomClientId","className","clsx","resize","children","default"],"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":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,qBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,4BAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,0BAAA,GAAAL,sBAAA,CAAAC,OAAA;AAAwE,IAAAK,WAAA,GAAAL,OAAA;AAXxE;AACA;AACA;;AAGA;AACA;AACA;;AAMe,SAASM,sBAAsBA,CAAE;EAC/CC,QAAQ;EACRC;AACD,CAAC,EAAG;EACH,MAAM;IACLC,iBAAiB;IACjBC,uBAAuB;IACvBC,YAAY;IACZC;EACD,CAAC,GAAG,IAAAC,kCAAyB,EAAEN,QAAS,CAAC;EAEzC,MAAMO,YAAY,GAAG,IAAAC,oCAA2B,EAAE;IACjDC,cAAc,EAAER,oBAAoB,EAAES,OAAO;IAC7CV;EACD,CAAE,CAAC;EAEH,oBACC,IAAAF,WAAA,CAAAa,GAAA,EAAChB,aAAA,CAAAiB,mBAAmB;IACnBZ,QAAQ,EAAGE,iBAAiB,IAAIF,QAAU;IAC1Ca,cAAc,EAAGT,YAAc;IAC/BU,SAAS,EAAG,IAAAC,aAAI,EAAE,wCAAwC,EAAE;MAC3D,4BAA4B,EAAEZ;IAC/B,CAAE,CAAG;IACLa,MAAM,EAAG,KAAO;IAAA,GACXT,YAAY;IAAAU,QAAA,eAEjB,IAAAnB,WAAA,CAAAa,GAAA,EAACjB,qBAAA,CAAAwB,OAAoB;MACpBlB,QAAQ,EAAGA,QAAU;MACrBK,YAAY,EAAGA;IAAc,CAC7B;EAAC,CACkB,CAAC;AAExB","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_blockSelectionButton","_blockPopover","_useBlockToolbarPopoverProps","_useSelectedBlockToolProps","_jsxRuntime","BlockToolbarBreadcrumb","clientId","__unstableContentRef","ref","capturingClientId","isInsertionPointVisible","lastClientId","rootClientId","useSelectedBlockToolProps","popoverProps","useBlockToolbarPopoverProps","contentElement","current","jsx","PrivateBlockPopover","bottomClientId","className","clsx","resize","children","default","_default","exports","forwardRef"],"sources":["@wordpress/block-editor/src/components/block-tools/block-toolbar-breadcrumb.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\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\nfunction BlockToolbarBreadcrumb( { clientId, __unstableContentRef }, ref ) {\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\tref={ ref }\n\t\t\t\tclientId={ clientId }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t/>\n\t\t</PrivateBlockPopover>\n\t);\n}\n\nexport default forwardRef( BlockToolbarBreadcrumb );\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AAKA,IAAAE,qBAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,4BAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,0BAAA,GAAAN,sBAAA,CAAAC,OAAA;AAAwE,IAAAM,WAAA,GAAAN,OAAA;AAhBxE;AACA;AACA;;AAGA;AACA;AACA;;AAGA;AACA;AACA;;AAMA,SAASO,sBAAsBA,CAAE;EAAEC,QAAQ;EAAEC;AAAqB,CAAC,EAAEC,GAAG,EAAG;EAC1E,MAAM;IACLC,iBAAiB;IACjBC,uBAAuB;IACvBC,YAAY;IACZC;EACD,CAAC,GAAG,IAAAC,kCAAyB,EAAEP,QAAS,CAAC;EAEzC,MAAMQ,YAAY,GAAG,IAAAC,oCAA2B,EAAE;IACjDC,cAAc,EAAET,oBAAoB,EAAEU,OAAO;IAC7CX;EACD,CAAE,CAAC;EAEH,oBACC,IAAAF,WAAA,CAAAc,GAAA,EAACjB,aAAA,CAAAkB,mBAAmB;IACnBb,QAAQ,EAAGG,iBAAiB,IAAIH,QAAU;IAC1Cc,cAAc,EAAGT,YAAc;IAC/BU,SAAS,EAAG,IAAAC,aAAI,EAAE,wCAAwC,EAAE;MAC3D,4BAA4B,EAAEZ;IAC/B,CAAE,CAAG;IACLa,MAAM,EAAG,KAAO;IAAA,GACXT,YAAY;IAAAU,QAAA,eAEjB,IAAApB,WAAA,CAAAc,GAAA,EAAClB,qBAAA,CAAAyB,OAAoB;MACpBjB,GAAG,EAAGA,GAAK;MACXF,QAAQ,EAAGA,QAAU;MACrBM,YAAY,EAAGA;IAAc,CAC7B;EAAC,CACkB,CAAC;AAExB;AAAC,IAAAc,QAAA,GAAAC,OAAA,CAAAF,OAAA,GAEc,IAAAG,mBAAU,EAAEvB,sBAAuB,CAAC","ignoreList":[]}
@@ -17,11 +17,13 @@ var _emptyBlockInserter = _interopRequireDefault(require("./empty-block-inserter
17
17
  var _insertionPoint = _interopRequireWildcard(require("./insertion-point"));
18
18
  var _blockToolbarPopover = _interopRequireDefault(require("./block-toolbar-popover"));
19
19
  var _blockToolbarBreadcrumb = _interopRequireDefault(require("./block-toolbar-breadcrumb"));
20
+ var _zoomOutPopover = _interopRequireDefault(require("./zoom-out-popover"));
20
21
  var _store = require("../../store");
21
22
  var _usePopoverScroll = _interopRequireDefault(require("../block-popover/use-popover-scroll"));
22
23
  var _zoomOutModeInserters = _interopRequireDefault(require("./zoom-out-mode-inserters"));
23
24
  var _useShowBlockTools = require("./use-show-block-tools");
24
25
  var _lockUnlock = require("../../lock-unlock");
26
+ var _getEditorRegion = _interopRequireDefault(require("../../utils/get-editor-region"));
25
27
  var _jsxRuntime = require("react/jsx-runtime");
26
28
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
27
29
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -84,9 +86,11 @@ function BlockTools({
84
86
  const {
85
87
  showEmptyBlockSideInserter,
86
88
  showBreadcrumb,
87
- showBlockToolbarPopover
89
+ showBlockToolbarPopover,
90
+ showZoomOutToolbar
88
91
  } = (0, _useShowBlockTools.useShowBlockTools)();
89
92
  const {
93
+ clearSelectedBlock,
90
94
  duplicateBlocks,
91
95
  removeBlocks,
92
96
  replaceBlocks,
@@ -97,6 +101,7 @@ function BlockTools({
97
101
  moveBlocksDown,
98
102
  expandBlock
99
103
  } = (0, _lockUnlock.unlock)((0, _data.useDispatch)(_store.store));
104
+ const blockSelectionButtonRef = (0, _element.useRef)();
100
105
  function onKeyDown(event) {
101
106
  if (event.defaultPrevented) {
102
107
  return;
@@ -155,6 +160,10 @@ function BlockTools({
155
160
  // block so that focus is directed back to the beginning of the selection.
156
161
  // In effect, to the user this feels like deselecting the multi-selection.
157
162
  selectBlock(clientIds[0]);
163
+ } else if (clientIds.length === 1 && event.target === blockSelectionButtonRef?.current) {
164
+ event.preventDefault();
165
+ clearSelectedBlock();
166
+ (0, _getEditorRegion.default)(__unstableContentRef.current)?.focus();
158
167
  }
159
168
  } else if (isMatch('core/block-editor/collapse-list-view', event)) {
160
169
  // If focus is currently within a text field, such as a rich text block or other editable field,
@@ -197,6 +206,10 @@ function BlockTools({
197
206
  clientId: clientId,
198
207
  isTyping: isTyping
199
208
  }), showBreadcrumb && /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockToolbarBreadcrumb.default, {
209
+ ref: blockSelectionButtonRef,
210
+ __unstableContentRef: __unstableContentRef,
211
+ clientId: clientId
212
+ }), showZoomOutToolbar && /*#__PURE__*/(0, _jsxRuntime.jsx)(_zoomOutPopover.default, {
200
213
  __unstableContentRef: __unstableContentRef,
201
214
  clientId: clientId
202
215
  }), !isZoomOutMode && !hasFixedToolbar && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Popover.Slot, {
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_dom","_components","_keyboardShortcuts","_element","_blocks","_a11y","_i18n","_emptyBlockInserter","_interopRequireDefault","_insertionPoint","_interopRequireWildcard","_blockToolbarPopover","_blockToolbarBreadcrumb","_store","_usePopoverScroll","_zoomOutModeInserters","_useShowBlockTools","_lockUnlock","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","selector","select","getSelectedBlockClientId","getFirstMultiSelectedBlockClientId","getSettings","__unstableGetEditorMode","isTyping","blockEditorStore","clientId","editorMode","hasFixedToolbar","isZoomOutMode","BlockTools","children","__unstableContentRef","props","useSelect","isMatch","useShortcutEventMatch","getBlocksByClientId","getSelectedBlockClientIds","getBlockRootClientId","isGroupable","getGroupingBlockName","blocksStore","showEmptyBlockSideInserter","showBreadcrumb","showBlockToolbarPopover","useShowBlockTools","duplicateBlocks","removeBlocks","replaceBlocks","insertAfterBlock","insertBeforeBlock","selectBlock","moveBlocksUp","moveBlocksDown","expandBlock","unlock","useDispatch","onKeyDown","event","defaultPrevented","clientIds","length","preventDefault","rootClientId","target","closest","isTextField","contentWindow","document","activeElement","blocks","groupingBlockName","newBlocks","switchToBlockType","speak","__","blockToolbarRef","usePopoverScroll","blockToolbarAfterRef","jsx","jsxs","InsertionPointOpenRef","Provider","value","useRef","Popover","Slot","name","ref","window","__experimentalEnableZoomedOutPatternsTab"],"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{ window.__experimentalEnableZoomedOutPatternsTab &&\n\t\t\t\t\tisZoomOutMode && (\n\t\t\t\t\t\t<ZoomOutModeInserters\n\t\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t</InsertionPointOpenRef.Provider>\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_data","require","_dom","_components","_keyboardShortcuts","_element","_blocks","_a11y","_i18n","_emptyBlockInserter","_interopRequireDefault","_insertionPoint","_interopRequireWildcard","_blockToolbarPopover","_blockToolbarBreadcrumb","_zoomOutPopover","_store","_usePopoverScroll","_zoomOutModeInserters","_useShowBlockTools","_lockUnlock","_getEditorRegion","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","selector","select","getSelectedBlockClientId","getFirstMultiSelectedBlockClientId","getSettings","__unstableGetEditorMode","isTyping","blockEditorStore","clientId","editorMode","hasFixedToolbar","isZoomOutMode","BlockTools","children","__unstableContentRef","props","useSelect","isMatch","useShortcutEventMatch","getBlocksByClientId","getSelectedBlockClientIds","getBlockRootClientId","isGroupable","getGroupingBlockName","blocksStore","showEmptyBlockSideInserter","showBreadcrumb","showBlockToolbarPopover","showZoomOutToolbar","useShowBlockTools","clearSelectedBlock","duplicateBlocks","removeBlocks","replaceBlocks","insertAfterBlock","insertBeforeBlock","selectBlock","moveBlocksUp","moveBlocksDown","expandBlock","unlock","useDispatch","blockSelectionButtonRef","useRef","onKeyDown","event","defaultPrevented","clientIds","length","preventDefault","rootClientId","target","closest","current","getEditorRegion","focus","isTextField","contentWindow","document","activeElement","blocks","groupingBlockName","newBlocks","switchToBlockType","speak","__","blockToolbarRef","usePopoverScroll","blockToolbarAfterRef","jsx","jsxs","InsertionPointOpenRef","Provider","value","ref","Popover","Slot","name","window","__experimentalEnableZoomedOutPatternsTab"],"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 ZoomOutPopover from './zoom-out-popover';\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';\nimport getEditorRegion from '../../utils/get-editor-region';\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\tshowZoomOutToolbar,\n\t} = useShowBlockTools();\n\n\tconst {\n\t\tclearSelectedBlock,\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\tconst blockSelectionButtonRef = useRef();\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} else if (\n\t\t\t\tclientIds.length === 1 &&\n\t\t\t\tevent.target === blockSelectionButtonRef?.current\n\t\t\t) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tclearSelectedBlock();\n\t\t\t\tgetEditorRegion( __unstableContentRef.current )?.focus();\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\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\tref={ blockSelectionButtonRef }\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{ showZoomOutToolbar && (\n\t\t\t\t\t<ZoomOutPopover\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{ window.__experimentalEnableZoomedOutPatternsTab &&\n\t\t\t\t\tisZoomOutMode && (\n\t\t\t\t\t\t<ZoomOutModeInserters\n\t\t\t\t\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t</InsertionPointOpenRef.Provider>\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -32,19 +32,20 @@ function useShowBlockTools() {
32
32
  isTyping
33
33
  } = select(_store.store);
34
34
  const clientId = getSelectedBlockClientId() || getFirstMultiSelectedBlockClientId();
35
- const block = getBlock(clientId) || {
36
- name: '',
37
- attributes: {}
38
- };
35
+ const block = getBlock(clientId);
39
36
  const editorMode = __unstableGetEditorMode();
40
- const hasSelectedBlock = clientId && block?.name;
41
- const isEmptyDefaultBlock = (0, _blocks.isUnmodifiedDefaultBlock)(block);
37
+ const hasSelectedBlock = !!clientId && !!block;
38
+ const isEmptyDefaultBlock = hasSelectedBlock && (0, _blocks.isUnmodifiedDefaultBlock)(block);
42
39
  const _showEmptyBlockSideInserter = clientId && !isTyping() && editorMode === 'edit' && isEmptyDefaultBlock;
43
- const maybeShowBreadcrumb = hasSelectedBlock && !hasMultiSelection() && (editorMode === 'navigation' || editorMode === 'zoom-out');
40
+ const maybeShowBreadcrumb = hasSelectedBlock && !hasMultiSelection() && editorMode === 'navigation';
41
+ const isZoomOut = editorMode === 'zoom-out';
42
+ const _showZoomOutToolbar = isZoomOut && block?.attributes?.align === 'full' && !_showEmptyBlockSideInserter && !maybeShowBreadcrumb;
43
+ const _showBlockToolbarPopover = !_showZoomOutToolbar && !getSettings().hasFixedToolbar && !_showEmptyBlockSideInserter && hasSelectedBlock && !isEmptyDefaultBlock && !maybeShowBreadcrumb;
44
44
  return {
45
45
  showEmptyBlockSideInserter: _showEmptyBlockSideInserter,
46
46
  showBreadcrumb: !_showEmptyBlockSideInserter && maybeShowBreadcrumb,
47
- showBlockToolbarPopover: !getSettings().hasFixedToolbar && !_showEmptyBlockSideInserter && hasSelectedBlock && !isEmptyDefaultBlock && !maybeShowBreadcrumb
47
+ showBlockToolbarPopover: _showBlockToolbarPopover,
48
+ showZoomOutToolbar: _showZoomOutToolbar
48
49
  };
49
50
  }, []);
50
51
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_blocks","_store","useShowBlockTools","useSelect","select","getSelectedBlockClientId","getFirstMultiSelectedBlockClientId","getBlock","getSettings","hasMultiSelection","__unstableGetEditorMode","isTyping","blockEditorStore","clientId","block","name","attributes","editorMode","hasSelectedBlock","isEmptyDefaultBlock","isUnmodifiedDefaultBlock","_showEmptyBlockSideInserter","maybeShowBreadcrumb","showEmptyBlockSideInserter","showBreadcrumb","showBlockToolbarPopover","hasFixedToolbar"],"sources":["@wordpress/block-editor/src/components/block-tools/use-show-block-tools.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { isUnmodifiedDefaultBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Source of truth for which block tools are showing in the block editor.\n *\n * @return {Object} Object of which block tools will be shown.\n */\nexport function useShowBlockTools() {\n\treturn useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetFirstMultiSelectedBlockClientId,\n\t\t\tgetBlock,\n\t\t\tgetSettings,\n\t\t\thasMultiSelection,\n\t\t\t__unstableGetEditorMode,\n\t\t\tisTyping,\n\t\t} = select( blockEditorStore );\n\n\t\tconst clientId =\n\t\t\tgetSelectedBlockClientId() || getFirstMultiSelectedBlockClientId();\n\n\t\tconst block = getBlock( clientId ) || { name: '', attributes: {} };\n\t\tconst editorMode = __unstableGetEditorMode();\n\t\tconst hasSelectedBlock = clientId && block?.name;\n\t\tconst isEmptyDefaultBlock = isUnmodifiedDefaultBlock( block );\n\t\tconst _showEmptyBlockSideInserter =\n\t\t\tclientId &&\n\t\t\t! isTyping() &&\n\t\t\teditorMode === 'edit' &&\n\t\t\tisEmptyDefaultBlock;\n\t\tconst maybeShowBreadcrumb =\n\t\t\thasSelectedBlock &&\n\t\t\t! hasMultiSelection() &&\n\t\t\t( editorMode === 'navigation' || editorMode === 'zoom-out' );\n\n\t\treturn {\n\t\t\tshowEmptyBlockSideInserter: _showEmptyBlockSideInserter,\n\t\t\tshowBreadcrumb:\n\t\t\t\t! _showEmptyBlockSideInserter && maybeShowBreadcrumb,\n\t\t\tshowBlockToolbarPopover:\n\t\t\t\t! getSettings().hasFixedToolbar &&\n\t\t\t\t! _showEmptyBlockSideInserter &&\n\t\t\t\thasSelectedBlock &&\n\t\t\t\t! isEmptyDefaultBlock &&\n\t\t\t\t! maybeShowBreadcrumb,\n\t\t};\n\t}, [] );\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACO,SAASG,iBAAiBA,CAAA,EAAG;EACnC,OAAO,IAAAC,eAAS,EAAIC,MAAM,IAAM;IAC/B,MAAM;MACLC,wBAAwB;MACxBC,kCAAkC;MAClCC,QAAQ;MACRC,WAAW;MACXC,iBAAiB;MACjBC,uBAAuB;MACvBC;IACD,CAAC,GAAGP,MAAM,CAAEQ,YAAiB,CAAC;IAE9B,MAAMC,QAAQ,GACbR,wBAAwB,CAAC,CAAC,IAAIC,kCAAkC,CAAC,CAAC;IAEnE,MAAMQ,KAAK,GAAGP,QAAQ,CAAEM,QAAS,CAAC,IAAI;MAAEE,IAAI,EAAE,EAAE;MAAEC,UAAU,EAAE,CAAC;IAAE,CAAC;IAClE,MAAMC,UAAU,GAAGP,uBAAuB,CAAC,CAAC;IAC5C,MAAMQ,gBAAgB,GAAGL,QAAQ,IAAIC,KAAK,EAAEC,IAAI;IAChD,MAAMI,mBAAmB,GAAG,IAAAC,gCAAwB,EAAEN,KAAM,CAAC;IAC7D,MAAMO,2BAA2B,GAChCR,QAAQ,IACR,CAAEF,QAAQ,CAAC,CAAC,IACZM,UAAU,KAAK,MAAM,IACrBE,mBAAmB;IACpB,MAAMG,mBAAmB,GACxBJ,gBAAgB,IAChB,CAAET,iBAAiB,CAAC,CAAC,KACnBQ,UAAU,KAAK,YAAY,IAAIA,UAAU,KAAK,UAAU,CAAE;IAE7D,OAAO;MACNM,0BAA0B,EAAEF,2BAA2B;MACvDG,cAAc,EACb,CAAEH,2BAA2B,IAAIC,mBAAmB;MACrDG,uBAAuB,EACtB,CAAEjB,WAAW,CAAC,CAAC,CAACkB,eAAe,IAC/B,CAAEL,2BAA2B,IAC7BH,gBAAgB,IAChB,CAAEC,mBAAmB,IACrB,CAAEG;IACJ,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;AACR","ignoreList":[]}
1
+ {"version":3,"names":["_data","require","_blocks","_store","useShowBlockTools","useSelect","select","getSelectedBlockClientId","getFirstMultiSelectedBlockClientId","getBlock","getSettings","hasMultiSelection","__unstableGetEditorMode","isTyping","blockEditorStore","clientId","block","editorMode","hasSelectedBlock","isEmptyDefaultBlock","isUnmodifiedDefaultBlock","_showEmptyBlockSideInserter","maybeShowBreadcrumb","isZoomOut","_showZoomOutToolbar","attributes","align","_showBlockToolbarPopover","hasFixedToolbar","showEmptyBlockSideInserter","showBreadcrumb","showBlockToolbarPopover","showZoomOutToolbar"],"sources":["@wordpress/block-editor/src/components/block-tools/use-show-block-tools.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { isUnmodifiedDefaultBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Source of truth for which block tools are showing in the block editor.\n *\n * @return {Object} Object of which block tools will be shown.\n */\nexport function useShowBlockTools() {\n\treturn useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetFirstMultiSelectedBlockClientId,\n\t\t\tgetBlock,\n\t\t\tgetSettings,\n\t\t\thasMultiSelection,\n\t\t\t__unstableGetEditorMode,\n\t\t\tisTyping,\n\t\t} = select( blockEditorStore );\n\n\t\tconst clientId =\n\t\t\tgetSelectedBlockClientId() || getFirstMultiSelectedBlockClientId();\n\n\t\tconst block = getBlock( clientId );\n\t\tconst editorMode = __unstableGetEditorMode();\n\t\tconst hasSelectedBlock = !! clientId && !! block;\n\t\tconst isEmptyDefaultBlock =\n\t\t\thasSelectedBlock && isUnmodifiedDefaultBlock( block );\n\t\tconst _showEmptyBlockSideInserter =\n\t\t\tclientId &&\n\t\t\t! isTyping() &&\n\t\t\teditorMode === 'edit' &&\n\t\t\tisEmptyDefaultBlock;\n\t\tconst maybeShowBreadcrumb =\n\t\t\thasSelectedBlock &&\n\t\t\t! hasMultiSelection() &&\n\t\t\teditorMode === 'navigation';\n\n\t\tconst isZoomOut = editorMode === 'zoom-out';\n\t\tconst _showZoomOutToolbar =\n\t\t\tisZoomOut &&\n\t\t\tblock?.attributes?.align === 'full' &&\n\t\t\t! _showEmptyBlockSideInserter &&\n\t\t\t! maybeShowBreadcrumb;\n\t\tconst _showBlockToolbarPopover =\n\t\t\t! _showZoomOutToolbar &&\n\t\t\t! getSettings().hasFixedToolbar &&\n\t\t\t! _showEmptyBlockSideInserter &&\n\t\t\thasSelectedBlock &&\n\t\t\t! isEmptyDefaultBlock &&\n\t\t\t! maybeShowBreadcrumb;\n\n\t\treturn {\n\t\t\tshowEmptyBlockSideInserter: _showEmptyBlockSideInserter,\n\t\t\tshowBreadcrumb:\n\t\t\t\t! _showEmptyBlockSideInserter && maybeShowBreadcrumb,\n\t\t\tshowBlockToolbarPopover: _showBlockToolbarPopover,\n\t\t\tshowZoomOutToolbar: _showZoomOutToolbar,\n\t\t};\n\t}, [] );\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACO,SAASG,iBAAiBA,CAAA,EAAG;EACnC,OAAO,IAAAC,eAAS,EAAIC,MAAM,IAAM;IAC/B,MAAM;MACLC,wBAAwB;MACxBC,kCAAkC;MAClCC,QAAQ;MACRC,WAAW;MACXC,iBAAiB;MACjBC,uBAAuB;MACvBC;IACD,CAAC,GAAGP,MAAM,CAAEQ,YAAiB,CAAC;IAE9B,MAAMC,QAAQ,GACbR,wBAAwB,CAAC,CAAC,IAAIC,kCAAkC,CAAC,CAAC;IAEnE,MAAMQ,KAAK,GAAGP,QAAQ,CAAEM,QAAS,CAAC;IAClC,MAAME,UAAU,GAAGL,uBAAuB,CAAC,CAAC;IAC5C,MAAMM,gBAAgB,GAAG,CAAC,CAAEH,QAAQ,IAAI,CAAC,CAAEC,KAAK;IAChD,MAAMG,mBAAmB,GACxBD,gBAAgB,IAAI,IAAAE,gCAAwB,EAAEJ,KAAM,CAAC;IACtD,MAAMK,2BAA2B,GAChCN,QAAQ,IACR,CAAEF,QAAQ,CAAC,CAAC,IACZI,UAAU,KAAK,MAAM,IACrBE,mBAAmB;IACpB,MAAMG,mBAAmB,GACxBJ,gBAAgB,IAChB,CAAEP,iBAAiB,CAAC,CAAC,IACrBM,UAAU,KAAK,YAAY;IAE5B,MAAMM,SAAS,GAAGN,UAAU,KAAK,UAAU;IAC3C,MAAMO,mBAAmB,GACxBD,SAAS,IACTP,KAAK,EAAES,UAAU,EAAEC,KAAK,KAAK,MAAM,IACnC,CAAEL,2BAA2B,IAC7B,CAAEC,mBAAmB;IACtB,MAAMK,wBAAwB,GAC7B,CAAEH,mBAAmB,IACrB,CAAEd,WAAW,CAAC,CAAC,CAACkB,eAAe,IAC/B,CAAEP,2BAA2B,IAC7BH,gBAAgB,IAChB,CAAEC,mBAAmB,IACrB,CAAEG,mBAAmB;IAEtB,OAAO;MACNO,0BAA0B,EAAER,2BAA2B;MACvDS,cAAc,EACb,CAAET,2BAA2B,IAAIC,mBAAmB;MACrDS,uBAAuB,EAAEJ,wBAAwB;MACjDK,kBAAkB,EAAER;IACrB,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;AACR","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _clsx = _interopRequireDefault(require("clsx"));
9
+ var _element = require("@wordpress/element");
10
+ var _components = require("@wordpress/components");
11
+ var _icons = require("@wordpress/icons");
12
+ var _i18n = require("@wordpress/i18n");
13
+ var _jsxRuntime = require("react/jsx-runtime");
14
+ /**
15
+ * External dependencies
16
+ */
17
+
18
+ /**
19
+ * WordPress dependencies
20
+ */
21
+
22
+ function ZoomOutModeInserterButton({
23
+ isVisible,
24
+ onClick
25
+ }) {
26
+ const [zoomOutModeInserterButtonHovered, setZoomOutModeInserterButtonHovered] = (0, _element.useState)(false);
27
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
28
+ variant: "primary",
29
+ icon: _icons.plus,
30
+ size: "compact",
31
+ className: (0, _clsx.default)('block-editor-button-pattern-inserter__button', 'block-editor-block-tools__zoom-out-mode-inserter-button', {
32
+ 'is-visible': isVisible || zoomOutModeInserterButtonHovered
33
+ }),
34
+ onClick: onClick,
35
+ onMouseOver: () => {
36
+ setZoomOutModeInserterButtonHovered(true);
37
+ },
38
+ onMouseOut: () => {
39
+ setZoomOutModeInserterButtonHovered(false);
40
+ },
41
+ label: (0, _i18n._x)('Add pattern', 'Generic label for pattern inserter button')
42
+ });
43
+ }
44
+ var _default = exports.default = ZoomOutModeInserterButton;
45
+ //# sourceMappingURL=zoom-out-mode-inserter-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_components","_icons","_i18n","_jsxRuntime","ZoomOutModeInserterButton","isVisible","onClick","zoomOutModeInserterButtonHovered","setZoomOutModeInserterButtonHovered","useState","jsx","Button","variant","icon","plus","size","className","clsx","onMouseOver","onMouseOut","label","_x","_default","exports","default"],"sources":["@wordpress/block-editor/src/components/block-tools/zoom-out-mode-inserter-button.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\nimport { Button } from '@wordpress/components';\nimport { plus } from '@wordpress/icons';\nimport { _x } from '@wordpress/i18n';\n\nfunction ZoomOutModeInserterButton( { isVisible, onClick } ) {\n\tconst [\n\t\tzoomOutModeInserterButtonHovered,\n\t\tsetZoomOutModeInserterButtonHovered,\n\t] = useState( false );\n\n\treturn (\n\t\t<Button\n\t\t\tvariant=\"primary\"\n\t\t\ticon={ plus }\n\t\t\tsize=\"compact\"\n\t\t\tclassName={ clsx(\n\t\t\t\t'block-editor-button-pattern-inserter__button',\n\t\t\t\t'block-editor-block-tools__zoom-out-mode-inserter-button',\n\t\t\t\t{\n\t\t\t\t\t'is-visible': isVisible || zoomOutModeInserterButtonHovered,\n\t\t\t\t}\n\t\t\t) }\n\t\t\tonClick={ onClick }\n\t\t\tonMouseOver={ () => {\n\t\t\t\tsetZoomOutModeInserterButtonHovered( true );\n\t\t\t} }\n\t\t\tonMouseOut={ () => {\n\t\t\t\tsetZoomOutModeInserterButtonHovered( false );\n\t\t\t} }\n\t\t\tlabel={ _x(\n\t\t\t\t'Add pattern',\n\t\t\t\t'Generic label for pattern inserter button'\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nexport default ZoomOutModeInserterButton;\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AAAqC,IAAAK,WAAA,GAAAL,OAAA;AAXrC;AACA;AACA;;AAGA;AACA;AACA;;AAMA,SAASM,yBAAyBA,CAAE;EAAEC,SAAS;EAAEC;AAAQ,CAAC,EAAG;EAC5D,MAAM,CACLC,gCAAgC,EAChCC,mCAAmC,CACnC,GAAG,IAAAC,iBAAQ,EAAE,KAAM,CAAC;EAErB,oBACC,IAAAN,WAAA,CAAAO,GAAA,EAACV,WAAA,CAAAW,MAAM;IACNC,OAAO,EAAC,SAAS;IACjBC,IAAI,EAAGC,WAAM;IACbC,IAAI,EAAC,SAAS;IACdC,SAAS,EAAG,IAAAC,aAAI,EACf,8CAA8C,EAC9C,yDAAyD,EACzD;MACC,YAAY,EAAEZ,SAAS,IAAIE;IAC5B,CACD,CAAG;IACHD,OAAO,EAAGA,OAAS;IACnBY,WAAW,EAAGA,CAAA,KAAM;MACnBV,mCAAmC,CAAE,IAAK,CAAC;IAC5C,CAAG;IACHW,UAAU,EAAGA,CAAA,KAAM;MAClBX,mCAAmC,CAAE,KAAM,CAAC;IAC7C,CAAG;IACHY,KAAK,EAAG,IAAAC,QAAE,EACT,aAAa,EACb,2CACD;EAAG,CACH,CAAC;AAEJ;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcpB,yBAAyB","ignoreList":[]}
@@ -7,10 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var _data = require("@wordpress/data");
9
9
  var _element = require("@wordpress/element");
10
- var _components = require("@wordpress/components");
11
- var _icons = require("@wordpress/icons");
12
- var _i18n = require("@wordpress/i18n");
13
10
  var _inbetween = _interopRequireDefault(require("../block-popover/inbetween"));
11
+ var _zoomOutModeInserterButton = _interopRequireDefault(require("./zoom-out-mode-inserter-button"));
14
12
  var _store = require("../../store");
15
13
  var _lockUnlock = require("../../lock-unlock");
16
14
  var _jsxRuntime = require("react/jsx-runtime");
@@ -25,15 +23,20 @@ var _jsxRuntime = require("react/jsx-runtime");
25
23
  function ZoomOutModeInserters() {
26
24
  const [isReady, setIsReady] = (0, _element.useState)(false);
27
25
  const {
26
+ hasSelection,
28
27
  blockOrder,
29
- sectionRootClientId,
30
28
  insertionPoint,
31
29
  setInserterIsOpened,
32
- selectedSection
30
+ sectionRootClientId,
31
+ selectedBlockClientId,
32
+ hoveredBlockClientId
33
33
  } = (0, _data.useSelect)(select => {
34
34
  const {
35
35
  getSettings,
36
- getBlockOrder
36
+ getBlockOrder,
37
+ getSelectionStart,
38
+ getSelectedBlockClientId,
39
+ getHoveredBlockClientId
37
40
  } = select(_store.store);
38
41
  const {
39
42
  sectionRootClientId: root
@@ -46,22 +49,15 @@ function ZoomOutModeInserters() {
46
49
  // eslint-disable-next-line @wordpress/data-no-store-string-literals
47
50
  const editor = select('core/editor');
48
51
  return {
49
- selectedSection: editor.getSelectedBlock(),
52
+ hasSelection: !!getSelectionStart().clientId,
50
53
  blockOrder: getBlockOrder(root),
51
54
  insertionPoint: (0, _lockUnlock.unlock)(editor).getInsertionPoint(),
52
55
  sectionRootClientId: root,
53
- setInserterIsOpened: getSettings().__experimentalSetIsInserterOpened
56
+ setInserterIsOpened: getSettings().__experimentalSetIsInserterOpened,
57
+ selectedBlockClientId: getSelectedBlockClientId(),
58
+ hoveredBlockClientId: getHoveredBlockClientId()
54
59
  };
55
60
  }, []);
56
- const isMounted = (0, _element.useRef)(false);
57
- (0, _element.useEffect)(() => {
58
- if (!isMounted.current) {
59
- isMounted.current = true;
60
- return;
61
- }
62
- // reset insertion point when the block order changes
63
- setInserterIsOpened(true);
64
- }, [blockOrder, setInserterIsOpened]);
65
61
 
66
62
  // Defer the initial rendering to avoid the jumps due to the animation.
67
63
  (0, _element.useEffect)(() => {
@@ -72,14 +68,23 @@ function ZoomOutModeInserters() {
72
68
  clearTimeout(timeout);
73
69
  };
74
70
  }, []);
75
- if (!isReady || !selectedSection) {
71
+ if (!isReady) {
76
72
  return null;
77
73
  }
78
74
  return [undefined, ...blockOrder].map((clientId, index) => {
75
+ const shouldRenderInserter = insertionPoint.insertionIndex !== index;
76
+ const shouldRenderInsertionPoint = insertionPoint.insertionIndex === index;
77
+ if (!shouldRenderInserter && !shouldRenderInsertionPoint) {
78
+ return null;
79
+ }
80
+ const previousClientId = clientId;
81
+ const nextClientId = blockOrder[index];
82
+ const isSelected = hasSelection && (selectedBlockClientId === previousClientId || selectedBlockClientId === nextClientId);
83
+ const isHovered = hoveredBlockClientId === previousClientId || hoveredBlockClientId === nextClientId;
79
84
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_inbetween.default, {
80
- previousClientId: clientId,
81
- nextClientId: blockOrder[index],
82
- children: [insertionPoint.insertionIndex === index && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
85
+ previousClientId: previousClientId,
86
+ nextClientId: nextClientId,
87
+ children: [shouldRenderInsertionPoint && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
83
88
  style: {
84
89
  borderRadius: '0',
85
90
  height: '12px',
@@ -88,11 +93,8 @@ function ZoomOutModeInserters() {
88
93
  width: '100%'
89
94
  },
90
95
  className: "block-editor-block-list__insertion-point-indicator"
91
- }), insertionPoint.insertionIndex !== index && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
92
- variant: "primary",
93
- icon: _icons.plus,
94
- size: "compact",
95
- className: "block-editor-button-pattern-inserter__button",
96
+ }), shouldRenderInserter && /*#__PURE__*/(0, _jsxRuntime.jsx)(_zoomOutModeInserterButton.default, {
97
+ isVisible: isSelected || isHovered,
96
98
  onClick: () => {
97
99
  setInserterIsOpened({
98
100
  rootClientId: sectionRootClientId,
@@ -100,8 +102,7 @@ function ZoomOutModeInserters() {
100
102
  tab: 'patterns',
101
103
  category: 'all'
102
104
  });
103
- },
104
- label: (0, _i18n._x)('Add pattern', 'Generic label for pattern inserter button')
105
+ }
105
106
  })]
106
107
  }, index);
107
108
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_data","require","_element","_components","_icons","_i18n","_inbetween","_interopRequireDefault","_store","_lockUnlock","_jsxRuntime","ZoomOutModeInserters","isReady","setIsReady","useState","blockOrder","sectionRootClientId","insertionPoint","setInserterIsOpened","selectedSection","useSelect","select","getSettings","getBlockOrder","blockEditorStore","root","unlock","editor","getSelectedBlock","getInsertionPoint","__experimentalSetIsInserterOpened","isMounted","useRef","useEffect","current","timeout","setTimeout","clearTimeout","undefined","map","clientId","index","jsxs","default","previousClientId","nextClientId","children","insertionIndex","jsx","style","borderRadius","height","opacity","transform","width","className","Button","variant","icon","plus","size","onClick","rootClientId","tab","category","label","_x","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-tools/zoom-out-mode-inserters.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport { Button } from '@wordpress/components';\nimport { plus } from '@wordpress/icons';\nimport { _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockPopoverInbetween from '../block-popover/inbetween';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nfunction ZoomOutModeInserters() {\n\tconst [ isReady, setIsReady ] = useState( false );\n\tconst {\n\t\tblockOrder,\n\t\tsectionRootClientId,\n\t\tinsertionPoint,\n\t\tsetInserterIsOpened,\n\t\tselectedSection,\n\t} = useSelect( ( select ) => {\n\t\tconst { getSettings, getBlockOrder } = select( blockEditorStore );\n\t\tconst { sectionRootClientId: root } = unlock( getSettings() );\n\t\t// To do: move ZoomOutModeInserters to core/editor.\n\t\t// Or we perhaps we should move the insertion point state to the\n\t\t// block-editor store. I'm not sure what it was ever moved to the editor\n\t\t// store, because all the inserter components all live in the\n\t\t// block-editor package.\n\t\t// eslint-disable-next-line @wordpress/data-no-store-string-literals\n\t\tconst editor = select( 'core/editor' );\n\t\treturn {\n\t\t\tselectedSection: editor.getSelectedBlock(),\n\t\t\tblockOrder: getBlockOrder( root ),\n\t\t\tinsertionPoint: unlock( editor ).getInsertionPoint(),\n\t\t\tsectionRootClientId: root,\n\t\t\tsetInserterIsOpened:\n\t\t\t\tgetSettings().__experimentalSetIsInserterOpened,\n\t\t};\n\t}, [] );\n\n\tconst isMounted = useRef( false );\n\n\tuseEffect( () => {\n\t\tif ( ! isMounted.current ) {\n\t\t\tisMounted.current = true;\n\t\t\treturn;\n\t\t}\n\t\t// reset insertion point when the block order changes\n\t\tsetInserterIsOpened( true );\n\t}, [ blockOrder, setInserterIsOpened ] );\n\n\t// Defer the initial rendering to avoid the jumps due to the animation.\n\tuseEffect( () => {\n\t\tconst timeout = setTimeout( () => {\n\t\t\tsetIsReady( true );\n\t\t}, 500 );\n\t\treturn () => {\n\t\t\tclearTimeout( timeout );\n\t\t};\n\t}, [] );\n\n\tif ( ! isReady || ! selectedSection ) {\n\t\treturn null;\n\t}\n\n\treturn [ undefined, ...blockOrder ].map( ( clientId, index ) => {\n\t\treturn (\n\t\t\t<BlockPopoverInbetween\n\t\t\t\tkey={ index }\n\t\t\t\tpreviousClientId={ clientId }\n\t\t\t\tnextClientId={ blockOrder[ index ] }\n\t\t\t>\n\t\t\t\t{ insertionPoint.insertionIndex === index && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\tborderRadius: '0',\n\t\t\t\t\t\t\theight: '12px',\n\t\t\t\t\t\t\topacity: 1,\n\t\t\t\t\t\t\ttransform: 'translateY(-50%)',\n\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tclassName=\"block-editor-block-list__insertion-point-indicator\"\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ insertionPoint.insertionIndex !== index && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\ticon={ plus }\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\tclassName=\"block-editor-button-pattern-inserter__button\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetInserterIsOpened( {\n\t\t\t\t\t\t\t\trootClientId: sectionRootClientId,\n\t\t\t\t\t\t\t\tinsertionIndex: index,\n\t\t\t\t\t\t\t\ttab: 'patterns',\n\t\t\t\t\t\t\t\tcategory: 'all',\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t'Add pattern',\n\t\t\t\t\t\t\t'Generic label for pattern inserter button'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockPopoverInbetween>\n\t\t);\n\t} );\n}\n\nexport default ZoomOutModeInserters;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_data","require","_element","_inbetween","_interopRequireDefault","_zoomOutModeInserterButton","_store","_lockUnlock","_jsxRuntime","ZoomOutModeInserters","isReady","setIsReady","useState","hasSelection","blockOrder","insertionPoint","setInserterIsOpened","sectionRootClientId","selectedBlockClientId","hoveredBlockClientId","useSelect","select","getSettings","getBlockOrder","getSelectionStart","getSelectedBlockClientId","getHoveredBlockClientId","blockEditorStore","root","unlock","editor","clientId","getInsertionPoint","__experimentalSetIsInserterOpened","useEffect","timeout","setTimeout","clearTimeout","undefined","map","index","shouldRenderInserter","insertionIndex","shouldRenderInsertionPoint","previousClientId","nextClientId","isSelected","isHovered","jsxs","default","children","jsx","style","borderRadius","height","opacity","transform","width","className","isVisible","onClick","rootClientId","tab","category","_default","exports"],"sources":["@wordpress/block-editor/src/components/block-tools/zoom-out-mode-inserters.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useEffect, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockPopoverInbetween from '../block-popover/inbetween';\nimport ZoomOutModeInserterButton from './zoom-out-mode-inserter-button';\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nfunction ZoomOutModeInserters() {\n\tconst [ isReady, setIsReady ] = useState( false );\n\tconst {\n\t\thasSelection,\n\t\tblockOrder,\n\t\tinsertionPoint,\n\t\tsetInserterIsOpened,\n\t\tsectionRootClientId,\n\t\tselectedBlockClientId,\n\t\thoveredBlockClientId,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSettings,\n\t\t\tgetBlockOrder,\n\t\t\tgetSelectionStart,\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetHoveredBlockClientId,\n\t\t} = select( blockEditorStore );\n\t\tconst { sectionRootClientId: root } = unlock( getSettings() );\n\t\t// To do: move ZoomOutModeInserters to core/editor.\n\t\t// Or we perhaps we should move the insertion point state to the\n\t\t// block-editor store. I'm not sure what it was ever moved to the editor\n\t\t// store, because all the inserter components all live in the\n\t\t// block-editor package.\n\t\t// eslint-disable-next-line @wordpress/data-no-store-string-literals\n\t\tconst editor = select( 'core/editor' );\n\t\treturn {\n\t\t\thasSelection: !! getSelectionStart().clientId,\n\t\t\tblockOrder: getBlockOrder( root ),\n\t\t\tinsertionPoint: unlock( editor ).getInsertionPoint(),\n\t\t\tsectionRootClientId: root,\n\t\t\tsetInserterIsOpened:\n\t\t\t\tgetSettings().__experimentalSetIsInserterOpened,\n\t\t\tselectedBlockClientId: getSelectedBlockClientId(),\n\t\t\thoveredBlockClientId: getHoveredBlockClientId(),\n\t\t};\n\t}, [] );\n\n\t// Defer the initial rendering to avoid the jumps due to the animation.\n\tuseEffect( () => {\n\t\tconst timeout = setTimeout( () => {\n\t\t\tsetIsReady( true );\n\t\t}, 500 );\n\t\treturn () => {\n\t\t\tclearTimeout( timeout );\n\t\t};\n\t}, [] );\n\n\tif ( ! isReady ) {\n\t\treturn null;\n\t}\n\n\treturn [ undefined, ...blockOrder ].map( ( clientId, index ) => {\n\t\tconst shouldRenderInserter = insertionPoint.insertionIndex !== index;\n\n\t\tconst shouldRenderInsertionPoint =\n\t\t\tinsertionPoint.insertionIndex === index;\n\n\t\tif ( ! shouldRenderInserter && ! shouldRenderInsertionPoint ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst previousClientId = clientId;\n\t\tconst nextClientId = blockOrder[ index ];\n\n\t\tconst isSelected =\n\t\t\thasSelection &&\n\t\t\t( selectedBlockClientId === previousClientId ||\n\t\t\t\tselectedBlockClientId === nextClientId );\n\n\t\tconst isHovered =\n\t\t\thoveredBlockClientId === previousClientId ||\n\t\t\thoveredBlockClientId === nextClientId;\n\n\t\treturn (\n\t\t\t<BlockPopoverInbetween\n\t\t\t\tkey={ index }\n\t\t\t\tpreviousClientId={ previousClientId }\n\t\t\t\tnextClientId={ nextClientId }\n\t\t\t>\n\t\t\t\t{ shouldRenderInsertionPoint && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\tborderRadius: '0',\n\t\t\t\t\t\t\theight: '12px',\n\t\t\t\t\t\t\topacity: 1,\n\t\t\t\t\t\t\ttransform: 'translateY(-50%)',\n\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tclassName=\"block-editor-block-list__insertion-point-indicator\"\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ shouldRenderInserter && (\n\t\t\t\t\t<ZoomOutModeInserterButton\n\t\t\t\t\t\tisVisible={ isSelected || isHovered }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetInserterIsOpened( {\n\t\t\t\t\t\t\t\trootClientId: sectionRootClientId,\n\t\t\t\t\t\t\t\tinsertionIndex: index,\n\t\t\t\t\t\t\t\ttab: 'patterns',\n\t\t\t\t\t\t\t\tcategory: 'all',\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockPopoverInbetween>\n\t\t);\n\t} );\n}\n\nexport default ZoomOutModeInserters;\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAKA,IAAAE,UAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,0BAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,WAAA,GAAAN,OAAA;AAA2C,IAAAO,WAAA,GAAAP,OAAA;AAZ3C;AACA;AACA;;AAIA;AACA;AACA;;AAMA,SAASQ,oBAAoBA,CAAA,EAAG;EAC/B,MAAM,CAAEC,OAAO,EAAEC,UAAU,CAAE,GAAG,IAAAC,iBAAQ,EAAE,KAAM,CAAC;EACjD,MAAM;IACLC,YAAY;IACZC,UAAU;IACVC,cAAc;IACdC,mBAAmB;IACnBC,mBAAmB;IACnBC,qBAAqB;IACrBC;EACD,CAAC,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IAC5B,MAAM;MACLC,WAAW;MACXC,aAAa;MACbC,iBAAiB;MACjBC,wBAAwB;MACxBC;IACD,CAAC,GAAGL,MAAM,CAAEM,YAAiB,CAAC;IAC9B,MAAM;MAAEV,mBAAmB,EAAEW;IAAK,CAAC,GAAG,IAAAC,kBAAM,EAAEP,WAAW,CAAC,CAAE,CAAC;IAC7D;IACA;IACA;IACA;IACA;IACA;IACA,MAAMQ,MAAM,GAAGT,MAAM,CAAE,aAAc,CAAC;IACtC,OAAO;MACNR,YAAY,EAAE,CAAC,CAAEW,iBAAiB,CAAC,CAAC,CAACO,QAAQ;MAC7CjB,UAAU,EAAES,aAAa,CAAEK,IAAK,CAAC;MACjCb,cAAc,EAAE,IAAAc,kBAAM,EAAEC,MAAO,CAAC,CAACE,iBAAiB,CAAC,CAAC;MACpDf,mBAAmB,EAAEW,IAAI;MACzBZ,mBAAmB,EAClBM,WAAW,CAAC,CAAC,CAACW,iCAAiC;MAChDf,qBAAqB,EAAEO,wBAAwB,CAAC,CAAC;MACjDN,oBAAoB,EAAEO,uBAAuB,CAAC;IAC/C,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;;EAEP;EACA,IAAAQ,kBAAS,EAAE,MAAM;IAChB,MAAMC,OAAO,GAAGC,UAAU,CAAE,MAAM;MACjCzB,UAAU,CAAE,IAAK,CAAC;IACnB,CAAC,EAAE,GAAI,CAAC;IACR,OAAO,MAAM;MACZ0B,YAAY,CAAEF,OAAQ,CAAC;IACxB,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,IAAK,CAAEzB,OAAO,EAAG;IAChB,OAAO,IAAI;EACZ;EAEA,OAAO,CAAE4B,SAAS,EAAE,GAAGxB,UAAU,CAAE,CAACyB,GAAG,CAAE,CAAER,QAAQ,EAAES,KAAK,KAAM;IAC/D,MAAMC,oBAAoB,GAAG1B,cAAc,CAAC2B,cAAc,KAAKF,KAAK;IAEpE,MAAMG,0BAA0B,GAC/B5B,cAAc,CAAC2B,cAAc,KAAKF,KAAK;IAExC,IAAK,CAAEC,oBAAoB,IAAI,CAAEE,0BAA0B,EAAG;MAC7D,OAAO,IAAI;IACZ;IAEA,MAAMC,gBAAgB,GAAGb,QAAQ;IACjC,MAAMc,YAAY,GAAG/B,UAAU,CAAE0B,KAAK,CAAE;IAExC,MAAMM,UAAU,GACfjC,YAAY,KACVK,qBAAqB,KAAK0B,gBAAgB,IAC3C1B,qBAAqB,KAAK2B,YAAY,CAAE;IAE1C,MAAME,SAAS,GACd5B,oBAAoB,KAAKyB,gBAAgB,IACzCzB,oBAAoB,KAAK0B,YAAY;IAEtC,oBACC,IAAArC,WAAA,CAAAwC,IAAA,EAAC7C,UAAA,CAAA8C,OAAqB;MAErBL,gBAAgB,EAAGA,gBAAkB;MACrCC,YAAY,EAAGA,YAAc;MAAAK,QAAA,GAE3BP,0BAA0B,iBAC3B,IAAAnC,WAAA,CAAA2C,GAAA;QACCC,KAAK,EAAG;UACPC,YAAY,EAAE,GAAG;UACjBC,MAAM,EAAE,MAAM;UACdC,OAAO,EAAE,CAAC;UACVC,SAAS,EAAE,kBAAkB;UAC7BC,KAAK,EAAE;QACR,CAAG;QACHC,SAAS,EAAC;MAAoD,CAC9D,CACD,EACCjB,oBAAoB,iBACrB,IAAAjC,WAAA,CAAA2C,GAAA,EAAC9C,0BAAA,CAAA4C,OAAyB;QACzBU,SAAS,EAAGb,UAAU,IAAIC,SAAW;QACrCa,OAAO,EAAGA,CAAA,KAAM;UACf5C,mBAAmB,CAAE;YACpB6C,YAAY,EAAE5C,mBAAmB;YACjCyB,cAAc,EAAEF,KAAK;YACrBsB,GAAG,EAAE,UAAU;YACfC,QAAQ,EAAE;UACX,CAAE,CAAC;QACJ;MAAG,CACH,CACD;IAAA,GA5BKvB,KA6BgB,CAAC;EAE1B,CAAE,CAAC;AACJ;AAAC,IAAAwB,QAAA,GAAAC,OAAA,CAAAhB,OAAA,GAEcxC,oBAAoB","ignoreList":[]}