@wordpress/block-editor 9.1.0 → 9.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 (640) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/build/autocompleters/block.js +3 -1
  3. package/build/autocompleters/block.js.map +1 -1
  4. package/build/components/block-actions/index.js.map +1 -1
  5. package/build/components/block-alignment-control/ui.js.map +1 -1
  6. package/build/components/block-alignment-matrix-control/index.js +3 -7
  7. package/build/components/block-alignment-matrix-control/index.js.map +1 -1
  8. package/build/components/block-breadcrumb/index.js.map +1 -1
  9. package/build/components/block-content-overlay/index.js.map +1 -1
  10. package/build/components/block-context/index.js.map +1 -1
  11. package/build/components/block-controls/hook.js.map +1 -1
  12. package/build/components/block-draggable/draggable-chip.native.js +2 -1
  13. package/build/components/block-draggable/draggable-chip.native.js.map +1 -1
  14. package/build/components/block-draggable/index.js.map +1 -1
  15. package/build/components/block-draggable/index.native.js +7 -3
  16. package/build/components/block-draggable/index.native.js.map +1 -1
  17. package/build/components/block-list/block-list-item.native.js.map +1 -1
  18. package/build/components/block-list/block-selection-button.native.js.map +1 -1
  19. package/build/components/block-list/block.js.map +1 -1
  20. package/build/components/block-list/block.native.js +2 -1
  21. package/build/components/block-list/block.native.js.map +1 -1
  22. package/build/components/block-list/index.js +34 -32
  23. package/build/components/block-list/index.js.map +1 -1
  24. package/build/components/block-list/index.native.js.map +1 -1
  25. package/build/components/block-list/use-block-props/index.js.map +1 -1
  26. package/build/components/block-list/use-block-props/use-block-custom-class-name.js.map +1 -1
  27. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  28. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  29. package/build/components/block-list-appender/index.js.map +1 -1
  30. package/build/components/block-list-appender/index.native.js.map +1 -1
  31. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  32. package/build/components/block-mobile-toolbar/index.native.js +2 -1
  33. package/build/components/block-mobile-toolbar/index.native.js.map +1 -1
  34. package/build/components/block-mover/button.js.map +1 -1
  35. package/build/components/block-mover/index.native.js.map +1 -1
  36. package/build/components/block-parent-selector/index.js.map +1 -1
  37. package/build/components/block-pattern-setup/index.js +3 -9
  38. package/build/components/block-pattern-setup/index.js.map +1 -1
  39. package/build/components/block-pattern-setup/setup-toolbar.js +3 -8
  40. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  41. package/build/components/block-popover/inbetween.js +9 -6
  42. package/build/components/block-popover/inbetween.js.map +1 -1
  43. package/build/components/block-popover/index.js +2 -1
  44. package/build/components/block-popover/index.js.map +1 -1
  45. package/build/components/block-preview/auto.js +21 -5
  46. package/build/components/block-preview/auto.js.map +1 -1
  47. package/build/components/block-selection-clearer/index.js.map +1 -1
  48. package/build/components/block-settings-menu/block-edit-visually-button.js +70 -0
  49. package/build/components/block-settings-menu/block-edit-visually-button.js.map +1 -0
  50. package/build/components/block-settings-menu/block-mode-toggle.js +3 -7
  51. package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  52. package/build/components/block-settings-menu/block-settings-dropdown.js +6 -3
  53. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  54. package/build/components/block-settings-menu/index.js +6 -2
  55. package/build/components/block-settings-menu/index.js.map +1 -1
  56. package/build/components/block-settings-menu-controls/index.js +4 -1
  57. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  58. package/build/components/block-styles/index.js +6 -3
  59. package/build/components/block-styles/index.js.map +1 -1
  60. package/build/components/block-styles/menu-items.js +3 -7
  61. package/build/components/block-styles/menu-items.js.map +1 -1
  62. package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
  63. package/build/components/block-title/use-block-display-title.js +3 -10
  64. package/build/components/block-title/use-block-display-title.js.map +1 -1
  65. package/build/components/block-toolbar/index.native.js.map +1 -1
  66. package/build/components/block-toolbar/utils.js +5 -8
  67. package/build/components/block-toolbar/utils.js.map +1 -1
  68. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  69. package/build/components/block-tools/block-selection-button.js +1 -0
  70. package/build/components/block-tools/block-selection-button.js.map +1 -1
  71. package/build/components/block-tools/index.js.map +1 -1
  72. package/build/components/block-types-list/index.native.js.map +1 -1
  73. package/build/components/block-variation-transforms/index.js +16 -2
  74. package/build/components/block-variation-transforms/index.js.map +1 -1
  75. package/build/components/color-style-selector/index.js.map +1 -1
  76. package/build/components/colors/with-colors.js.map +1 -1
  77. package/build/components/colors-gradients/dropdown.js +72 -95
  78. package/build/components/colors-gradients/dropdown.js.map +1 -1
  79. package/build/components/colors-gradients/panel-color-gradient-settings.js +35 -60
  80. package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  81. package/build/components/convert-to-group-buttons/toolbar.js +22 -5
  82. package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
  83. package/build/components/copy-handler/index.js +17 -1
  84. package/build/components/copy-handler/index.js.map +1 -1
  85. package/build/components/default-block-appender/index.js.map +1 -1
  86. package/build/components/default-block-appender/index.native.js.map +1 -1
  87. package/build/components/default-style-picker/index.js.map +1 -1
  88. package/build/components/duotone/components.js +145 -0
  89. package/build/components/duotone/components.js.map +1 -0
  90. package/build/components/duotone/index.js +40 -0
  91. package/build/components/duotone/index.js.map +1 -0
  92. package/build/components/duotone/utils.js +38 -0
  93. package/build/components/duotone/utils.js.map +1 -0
  94. package/build/components/duotone-control/index.js +17 -5
  95. package/build/components/duotone-control/index.js.map +1 -1
  96. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  97. package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  98. package/build/components/image-size-control/index.js +3 -1
  99. package/build/components/image-size-control/index.js.map +1 -1
  100. package/build/components/index.js +41 -0
  101. package/build/components/index.js.map +1 -1
  102. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  103. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  104. package/build/components/inserter/block-types-tab.native.js.map +1 -1
  105. package/build/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
  106. package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
  107. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  108. package/build/components/inserter/index.js +3 -3
  109. package/build/components/inserter/index.js.map +1 -1
  110. package/build/components/inserter/index.native.js.map +1 -1
  111. package/build/components/inserter/library.js +3 -7
  112. package/build/components/inserter/library.js.map +1 -1
  113. package/build/components/inserter/menu.js.map +1 -1
  114. package/build/components/inserter/menu.native.js.map +1 -1
  115. package/build/components/inserter/no-results.native.js.map +1 -1
  116. package/build/components/inserter/quick-inserter.js.map +1 -1
  117. package/build/components/inserter/search-items.js +1 -1
  118. package/build/components/inserter/search-items.js.map +1 -1
  119. package/build/components/inserter/search-results.native.js.map +1 -1
  120. package/build/components/inspector-popover-header/index.js +56 -0
  121. package/build/components/inspector-popover-header/index.js.map +1 -0
  122. package/build/components/line-height-control/index.js.map +1 -1
  123. package/build/components/link-control/index.js +4 -4
  124. package/build/components/link-control/index.js.map +1 -1
  125. package/build/components/link-control/search-create-button.js +1 -3
  126. package/build/components/link-control/search-create-button.js.map +1 -1
  127. package/build/components/link-control/search-input.js +5 -3
  128. package/build/components/link-control/search-input.js.map +1 -1
  129. package/build/components/link-control/settings-drawer.js +3 -7
  130. package/build/components/link-control/settings-drawer.js.map +1 -1
  131. package/build/components/link-control/use-search-handler.js.map +1 -1
  132. package/build/components/list-view/block-contents.js.map +1 -1
  133. package/build/components/list-view/branch.js.map +1 -1
  134. package/build/components/list-view/index.js.map +1 -1
  135. package/build/components/list-view/use-block-selection.js.map +1 -1
  136. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  137. package/build/components/list-view/utils.js +1 -7
  138. package/build/components/list-view/utils.js.map +1 -1
  139. package/build/components/media-placeholder/index.js +5 -6
  140. package/build/components/media-placeholder/index.js.map +1 -1
  141. package/build/components/media-placeholder/index.native.js +4 -4
  142. package/build/components/media-placeholder/index.native.js.map +1 -1
  143. package/build/components/media-replace-flow/index.js +23 -14
  144. package/build/components/media-replace-flow/index.js.map +1 -1
  145. package/build/components/media-upload/index.native.js +10 -4
  146. package/build/components/media-upload/index.native.js.map +1 -1
  147. package/build/components/navigable-toolbar/index.js.map +1 -1
  148. package/build/components/plain-text/index.native.js +62 -7
  149. package/build/components/plain-text/index.native.js.map +1 -1
  150. package/build/components/preview-options/index.js +4 -0
  151. package/build/components/preview-options/index.js.map +1 -1
  152. package/build/components/provider/use-block-sync.js +5 -3
  153. package/build/components/provider/use-block-sync.js.map +1 -1
  154. package/build/components/publish-date-time-picker/index.js +56 -0
  155. package/build/components/publish-date-time-picker/index.js.map +1 -0
  156. package/build/components/rich-text/embed-handler-picker.native.js +4 -8
  157. package/build/components/rich-text/embed-handler-picker.native.js.map +1 -1
  158. package/build/components/rich-text/index.js +1 -1
  159. package/build/components/rich-text/index.js.map +1 -1
  160. package/build/components/rich-text/index.native.js +5 -1
  161. package/build/components/rich-text/index.native.js.map +1 -1
  162. package/build/components/rich-text/use-format-types.js.map +1 -1
  163. package/build/components/rich-text/use-input-rules.js +4 -13
  164. package/build/components/rich-text/use-input-rules.js.map +1 -1
  165. package/build/components/rich-text/use-mark-persistent.js.map +1 -1
  166. package/build/components/rich-text/use-paste-handler.js +20 -5
  167. package/build/components/rich-text/use-paste-handler.js.map +1 -1
  168. package/build/components/skip-to-selected-block/index.js.map +1 -1
  169. package/build/components/ungroup-button/index.native.js +3 -7
  170. package/build/components/ungroup-button/index.native.js.map +1 -1
  171. package/build/components/url-input/index.js +14 -3
  172. package/build/components/url-input/index.js.map +1 -1
  173. package/build/components/use-block-display-information/index.js.map +1 -1
  174. package/build/components/use-block-drop-zone/index.js.map +1 -1
  175. package/build/components/use-block-drop-zone/index.native.js.map +1 -1
  176. package/build/components/use-display-block-controls/index.native.js.map +1 -1
  177. package/build/components/use-on-block-drop/index.js.map +1 -1
  178. package/build/components/use-on-block-drop/index.native.js.map +1 -1
  179. package/build/components/use-setting/index.js.map +1 -1
  180. package/build/components/writing-flow/use-arrow-nav.js +12 -12
  181. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  182. package/build/components/writing-flow/use-click-selection.js.map +1 -1
  183. package/build/components/writing-flow/use-drag-selection.js.map +1 -1
  184. package/build/components/writing-flow/use-input.js +15 -0
  185. package/build/components/writing-flow/use-input.js.map +1 -1
  186. package/build/components/writing-flow/use-multi-selection.js.map +1 -1
  187. package/build/components/writing-flow/use-select-all.js.map +1 -1
  188. package/build/components/writing-flow/use-selection-observer.js.map +1 -1
  189. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  190. package/build/elements/index.js +17 -0
  191. package/build/elements/index.js.map +1 -0
  192. package/build/hooks/aria-label.js +71 -0
  193. package/build/hooks/aria-label.js.map +1 -0
  194. package/build/hooks/color-panel.js.map +1 -1
  195. package/build/hooks/color-panel.native.js.map +1 -1
  196. package/build/hooks/color.js +8 -88
  197. package/build/hooks/color.js.map +1 -1
  198. package/build/hooks/dimensions.js +14 -4
  199. package/build/hooks/dimensions.js.map +1 -1
  200. package/build/hooks/duotone.js +33 -160
  201. package/build/hooks/duotone.js.map +1 -1
  202. package/build/hooks/font-family.js.map +1 -1
  203. package/build/hooks/gap.js.map +1 -1
  204. package/build/hooks/index.js +3 -7
  205. package/build/hooks/index.js.map +1 -1
  206. package/build/hooks/layout.js +44 -5
  207. package/build/hooks/layout.js.map +1 -1
  208. package/build/index.js +14 -7
  209. package/build/index.js.map +1 -1
  210. package/build/layouts/flex.js +7 -4
  211. package/build/layouts/flex.js.map +1 -1
  212. package/build/store/actions.js +24 -14
  213. package/build/store/actions.js.map +1 -1
  214. package/build/store/reducer.js +35 -11
  215. package/build/store/reducer.js.map +1 -1
  216. package/build/store/selectors.js +30 -2
  217. package/build/store/selectors.js.map +1 -1
  218. package/build/utils/pasting.js.map +1 -1
  219. package/build/utils/selection.js +34 -0
  220. package/build/utils/selection.js.map +1 -0
  221. package/build/utils/transform-styles/transforms/wrap.js.map +1 -1
  222. package/build-module/autocompleters/block.js +4 -1
  223. package/build-module/autocompleters/block.js.map +1 -1
  224. package/build-module/components/block-actions/index.js.map +1 -1
  225. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  226. package/build-module/components/block-alignment-matrix-control/index.js +2 -5
  227. package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
  228. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  229. package/build-module/components/block-content-overlay/index.js.map +1 -1
  230. package/build-module/components/block-context/index.js.map +1 -1
  231. package/build-module/components/block-controls/hook.js.map +1 -1
  232. package/build-module/components/block-draggable/draggable-chip.native.js +2 -1
  233. package/build-module/components/block-draggable/draggable-chip.native.js.map +1 -1
  234. package/build-module/components/block-draggable/index.js.map +1 -1
  235. package/build-module/components/block-draggable/index.native.js +7 -3
  236. package/build-module/components/block-draggable/index.native.js.map +1 -1
  237. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  238. package/build-module/components/block-list/block-selection-button.native.js.map +1 -1
  239. package/build-module/components/block-list/block.js.map +1 -1
  240. package/build-module/components/block-list/block.native.js +2 -1
  241. package/build-module/components/block-list/block.native.js.map +1 -1
  242. package/build-module/components/block-list/index.js +35 -33
  243. package/build-module/components/block-list/index.js.map +1 -1
  244. package/build-module/components/block-list/index.native.js.map +1 -1
  245. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  246. package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js.map +1 -1
  247. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  248. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  249. package/build-module/components/block-list-appender/index.js.map +1 -1
  250. package/build-module/components/block-list-appender/index.native.js.map +1 -1
  251. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  252. package/build-module/components/block-mobile-toolbar/index.native.js +2 -1
  253. package/build-module/components/block-mobile-toolbar/index.native.js.map +1 -1
  254. package/build-module/components/block-mover/button.js.map +1 -1
  255. package/build-module/components/block-mover/index.native.js.map +1 -1
  256. package/build-module/components/block-parent-selector/index.js.map +1 -1
  257. package/build-module/components/block-pattern-setup/index.js +3 -9
  258. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  259. package/build-module/components/block-pattern-setup/setup-toolbar.js +3 -8
  260. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  261. package/build-module/components/block-popover/inbetween.js +9 -6
  262. package/build-module/components/block-popover/inbetween.js.map +1 -1
  263. package/build-module/components/block-popover/index.js +2 -1
  264. package/build-module/components/block-popover/index.js.map +1 -1
  265. package/build-module/components/block-preview/auto.js +20 -5
  266. package/build-module/components/block-preview/auto.js.map +1 -1
  267. package/build-module/components/block-selection-clearer/index.js.map +1 -1
  268. package/build-module/components/block-settings-menu/block-edit-visually-button.js +56 -0
  269. package/build-module/components/block-settings-menu/block-edit-visually-button.js.map +1 -0
  270. package/build-module/components/block-settings-menu/block-mode-toggle.js +3 -5
  271. package/build-module/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  272. package/build-module/components/block-settings-menu/block-settings-dropdown.js +6 -2
  273. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  274. package/build-module/components/block-settings-menu/index.js +6 -3
  275. package/build-module/components/block-settings-menu/index.js.map +1 -1
  276. package/build-module/components/block-settings-menu-controls/index.js +5 -2
  277. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  278. package/build-module/components/block-styles/index.js +5 -2
  279. package/build-module/components/block-styles/index.js.map +1 -1
  280. package/build-module/components/block-styles/menu-items.js +3 -5
  281. package/build-module/components/block-styles/menu-items.js.map +1 -1
  282. package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
  283. package/build-module/components/block-title/use-block-display-title.js +3 -9
  284. package/build-module/components/block-title/use-block-display-title.js.map +1 -1
  285. package/build-module/components/block-toolbar/index.native.js.map +1 -1
  286. package/build-module/components/block-toolbar/utils.js +3 -5
  287. package/build-module/components/block-toolbar/utils.js.map +1 -1
  288. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  289. package/build-module/components/block-tools/block-selection-button.js +1 -0
  290. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  291. package/build-module/components/block-tools/index.js.map +1 -1
  292. package/build-module/components/block-types-list/index.native.js.map +1 -1
  293. package/build-module/components/block-variation-transforms/index.js +13 -2
  294. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  295. package/build-module/components/color-style-selector/index.js.map +1 -1
  296. package/build-module/components/colors/with-colors.js.map +1 -1
  297. package/build-module/components/colors-gradients/dropdown.js +74 -97
  298. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  299. package/build-module/components/colors-gradients/panel-color-gradient-settings.js +36 -64
  300. package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  301. package/build-module/components/convert-to-group-buttons/toolbar.js +23 -6
  302. package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
  303. package/build-module/components/copy-handler/index.js +18 -2
  304. package/build-module/components/copy-handler/index.js.map +1 -1
  305. package/build-module/components/default-block-appender/index.js.map +1 -1
  306. package/build-module/components/default-block-appender/index.native.js.map +1 -1
  307. package/build-module/components/default-style-picker/index.js.map +1 -1
  308. package/build-module/components/duotone/components.js +130 -0
  309. package/build-module/components/duotone/components.js.map +1 -0
  310. package/build-module/components/duotone/index.js +3 -0
  311. package/build-module/components/duotone/index.js.map +1 -0
  312. package/build-module/components/duotone/utils.js +30 -0
  313. package/build-module/components/duotone/utils.js.map +1 -0
  314. package/build-module/components/duotone-control/index.js +18 -6
  315. package/build-module/components/duotone-control/index.js.map +1 -1
  316. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  317. package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  318. package/build-module/components/image-size-control/index.js +4 -1
  319. package/build-module/components/image-size-control/index.js.map +1 -1
  320. package/build-module/components/index.js +4 -0
  321. package/build-module/components/index.js.map +1 -1
  322. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  323. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  324. package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
  325. package/build-module/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
  326. package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
  327. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  328. package/build-module/components/inserter/index.js +3 -2
  329. package/build-module/components/inserter/index.js.map +1 -1
  330. package/build-module/components/inserter/index.native.js.map +1 -1
  331. package/build-module/components/inserter/library.js +2 -5
  332. package/build-module/components/inserter/library.js.map +1 -1
  333. package/build-module/components/inserter/menu.js.map +1 -1
  334. package/build-module/components/inserter/menu.native.js.map +1 -1
  335. package/build-module/components/inserter/no-results.native.js.map +1 -1
  336. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  337. package/build-module/components/inserter/search-items.js +2 -2
  338. package/build-module/components/inserter/search-items.js.map +1 -1
  339. package/build-module/components/inserter/search-results.native.js.map +1 -1
  340. package/build-module/components/inspector-popover-header/index.js +46 -0
  341. package/build-module/components/inspector-popover-header/index.js.map +1 -0
  342. package/build-module/components/line-height-control/index.js.map +1 -1
  343. package/build-module/components/link-control/index.js +2 -1
  344. package/build-module/components/link-control/index.js.map +1 -1
  345. package/build-module/components/link-control/search-create-button.js +1 -2
  346. package/build-module/components/link-control/search-create-button.js.map +1 -1
  347. package/build-module/components/link-control/search-input.js +3 -1
  348. package/build-module/components/link-control/search-input.js.map +1 -1
  349. package/build-module/components/link-control/settings-drawer.js +2 -5
  350. package/build-module/components/link-control/settings-drawer.js.map +1 -1
  351. package/build-module/components/link-control/use-search-handler.js.map +1 -1
  352. package/build-module/components/list-view/block-contents.js.map +1 -1
  353. package/build-module/components/list-view/branch.js.map +1 -1
  354. package/build-module/components/list-view/index.js.map +1 -1
  355. package/build-module/components/list-view/use-block-selection.js.map +1 -1
  356. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  357. package/build-module/components/list-view/utils.js +1 -6
  358. package/build-module/components/list-view/utils.js.map +1 -1
  359. package/build-module/components/media-placeholder/index.js +3 -3
  360. package/build-module/components/media-placeholder/index.js.map +1 -1
  361. package/build-module/components/media-placeholder/index.native.js +5 -3
  362. package/build-module/components/media-placeholder/index.native.js.map +1 -1
  363. package/build-module/components/media-replace-flow/index.js +24 -14
  364. package/build-module/components/media-replace-flow/index.js.map +1 -1
  365. package/build-module/components/media-upload/index.native.js +8 -3
  366. package/build-module/components/media-upload/index.native.js.map +1 -1
  367. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  368. package/build-module/components/plain-text/index.native.js +63 -8
  369. package/build-module/components/plain-text/index.native.js.map +1 -1
  370. package/build-module/components/preview-options/index.js +4 -0
  371. package/build-module/components/preview-options/index.js.map +1 -1
  372. package/build-module/components/provider/use-block-sync.js +4 -1
  373. package/build-module/components/provider/use-block-sync.js.map +1 -1
  374. package/build-module/components/publish-date-time-picker/index.js +42 -0
  375. package/build-module/components/publish-date-time-picker/index.js.map +1 -0
  376. package/build-module/components/rich-text/embed-handler-picker.native.js +3 -5
  377. package/build-module/components/rich-text/embed-handler-picker.native.js.map +1 -1
  378. package/build-module/components/rich-text/index.js +1 -1
  379. package/build-module/components/rich-text/index.js.map +1 -1
  380. package/build-module/components/rich-text/index.native.js +5 -1
  381. package/build-module/components/rich-text/index.native.js.map +1 -1
  382. package/build-module/components/rich-text/use-format-types.js.map +1 -1
  383. package/build-module/components/rich-text/use-input-rules.js +3 -11
  384. package/build-module/components/rich-text/use-input-rules.js.map +1 -1
  385. package/build-module/components/rich-text/use-mark-persistent.js.map +1 -1
  386. package/build-module/components/rich-text/use-paste-handler.js +20 -5
  387. package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
  388. package/build-module/components/skip-to-selected-block/index.js.map +1 -1
  389. package/build-module/components/ungroup-button/index.native.js +3 -5
  390. package/build-module/components/ungroup-button/index.native.js.map +1 -1
  391. package/build-module/components/url-input/index.js +11 -1
  392. package/build-module/components/url-input/index.js.map +1 -1
  393. package/build-module/components/use-block-display-information/index.js.map +1 -1
  394. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  395. package/build-module/components/use-block-drop-zone/index.native.js.map +1 -1
  396. package/build-module/components/use-display-block-controls/index.native.js.map +1 -1
  397. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  398. package/build-module/components/use-on-block-drop/index.native.js.map +1 -1
  399. package/build-module/components/use-setting/index.js.map +1 -1
  400. package/build-module/components/writing-flow/use-arrow-nav.js +12 -11
  401. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  402. package/build-module/components/writing-flow/use-click-selection.js.map +1 -1
  403. package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
  404. package/build-module/components/writing-flow/use-input.js +15 -0
  405. package/build-module/components/writing-flow/use-input.js.map +1 -1
  406. package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
  407. package/build-module/components/writing-flow/use-select-all.js.map +1 -1
  408. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
  409. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  410. package/build-module/elements/index.js +8 -0
  411. package/build-module/elements/index.js.map +1 -0
  412. package/build-module/hooks/aria-label.js +59 -0
  413. package/build-module/hooks/aria-label.js.map +1 -0
  414. package/build-module/hooks/color-panel.js.map +1 -1
  415. package/build-module/hooks/color-panel.native.js.map +1 -1
  416. package/build-module/hooks/color.js +8 -88
  417. package/build-module/hooks/color.js.map +1 -1
  418. package/build-module/hooks/dimensions.js +14 -4
  419. package/build-module/hooks/dimensions.js.map +1 -1
  420. package/build-module/hooks/duotone.js +22 -140
  421. package/build-module/hooks/duotone.js.map +1 -1
  422. package/build-module/hooks/font-family.js.map +1 -1
  423. package/build-module/hooks/gap.js.map +1 -1
  424. package/build-module/hooks/index.js +1 -1
  425. package/build-module/hooks/index.js.map +1 -1
  426. package/build-module/hooks/layout.js +45 -6
  427. package/build-module/hooks/layout.js.map +1 -1
  428. package/build-module/index.js +2 -1
  429. package/build-module/index.js.map +1 -1
  430. package/build-module/layouts/flex.js +6 -4
  431. package/build-module/layouts/flex.js.map +1 -1
  432. package/build-module/store/actions.js +18 -11
  433. package/build-module/store/actions.js.map +1 -1
  434. package/build-module/store/reducer.js +36 -12
  435. package/build-module/store/reducer.js.map +1 -1
  436. package/build-module/store/selectors.js +25 -2
  437. package/build-module/store/selectors.js.map +1 -1
  438. package/build-module/utils/pasting.js.map +1 -1
  439. package/build-module/utils/selection.js +24 -0
  440. package/build-module/utils/selection.js.map +1 -0
  441. package/build-module/utils/transform-styles/transforms/wrap.js.map +1 -1
  442. package/build-style/style-rtl.css +37 -37
  443. package/build-style/style.css +37 -37
  444. package/package.json +30 -30
  445. package/src/autocompleters/block.js +2 -1
  446. package/src/components/block-actions/index.js +2 -3
  447. package/src/components/block-alignment-control/ui.js +4 -6
  448. package/src/components/block-alignment-matrix-control/index.js +2 -4
  449. package/src/components/block-breadcrumb/index.js +2 -5
  450. package/src/components/block-compare/test/block-view.js +2 -1
  451. package/src/components/block-content-overlay/index.js +2 -5
  452. package/src/components/block-context/index.js +4 -4
  453. package/src/components/block-controls/hook.js +2 -3
  454. package/src/components/block-draggable/draggable-chip.native.js +1 -1
  455. package/src/components/block-draggable/index.js +6 -13
  456. package/src/components/block-draggable/index.native.js +10 -14
  457. package/src/components/block-draggable/test/__snapshots__/index.native.js.snap +73 -0
  458. package/src/components/block-draggable/test/helpers.native.js +183 -0
  459. package/src/components/block-draggable/test/index.native.js +493 -0
  460. package/src/components/block-edit/test/edit.js +2 -1
  461. package/src/components/block-list/block-list-item.native.js +4 -12
  462. package/src/components/block-list/block-selection-button.native.js +2 -3
  463. package/src/components/block-list/block.js +8 -10
  464. package/src/components/block-list/block.native.js +11 -15
  465. package/src/components/block-list/index.js +46 -47
  466. package/src/components/block-list/index.native.js +12 -21
  467. package/src/components/block-list/style.scss +1 -1
  468. package/src/components/block-list/test/block-list-context.native.js +8 -16
  469. package/src/components/block-list/use-block-props/index.js +6 -3
  470. package/src/components/block-list/use-block-props/use-block-custom-class-name.js +2 -3
  471. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +2 -3
  472. package/src/components/block-list/use-in-between-inserter.js +2 -3
  473. package/src/components/block-list-appender/index.js +2 -5
  474. package/src/components/block-list-appender/index.native.js +2 -3
  475. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +4 -6
  476. package/src/components/block-mobile-toolbar/index.native.js +1 -0
  477. package/src/components/block-mover/button.js +2 -3
  478. package/src/components/block-mover/index.native.js +4 -6
  479. package/src/components/block-mover/test/__snapshots__/index.native.js.snap +4 -0
  480. package/src/components/block-parent-selector/index.js +2 -3
  481. package/src/components/block-pattern-setup/index.js +4 -14
  482. package/src/components/block-pattern-setup/setup-toolbar.js +2 -9
  483. package/src/components/block-popover/inbetween.js +12 -7
  484. package/src/components/block-popover/index.js +1 -0
  485. package/src/components/block-preview/auto.js +21 -11
  486. package/src/components/block-selection-clearer/index.js +2 -3
  487. package/src/components/block-settings-menu/block-edit-visually-button.js +52 -0
  488. package/src/components/block-settings-menu/block-mode-toggle.js +4 -8
  489. package/src/components/block-settings-menu/block-settings-dropdown.js +9 -8
  490. package/src/components/block-settings-menu/index.js +15 -11
  491. package/src/components/block-settings-menu-controls/index.js +3 -2
  492. package/src/components/block-styles/index.js +3 -1
  493. package/src/components/block-styles/menu-items.js +2 -5
  494. package/src/components/block-switcher/block-transformations-menu.js +2 -4
  495. package/src/components/block-title/use-block-display-title.js +9 -7
  496. package/src/components/block-toolbar/index.native.js +2 -5
  497. package/src/components/block-toolbar/utils.js +3 -11
  498. package/src/components/block-tools/block-contextual-toolbar.js +2 -5
  499. package/src/components/block-tools/block-selection-button.js +1 -0
  500. package/src/components/block-tools/index.js +2 -3
  501. package/src/components/block-types-list/index.native.js +2 -4
  502. package/src/components/block-variation-transforms/index.js +10 -8
  503. package/src/components/color-palette/test/control.js +2 -1
  504. package/src/components/color-style-selector/index.js +27 -28
  505. package/src/components/colors/test/with-colors.js +14 -14
  506. package/src/components/colors/with-colors.js +8 -12
  507. package/src/components/colors-gradients/dropdown.js +49 -69
  508. package/src/components/colors-gradients/panel-color-gradient-settings.js +30 -76
  509. package/src/components/colors-gradients/style.scss +11 -37
  510. package/src/components/colors-gradients/test/control.js +10 -10
  511. package/src/components/convert-to-group-buttons/toolbar.js +32 -19
  512. package/src/components/copy-handler/README.md +7 -2
  513. package/src/components/copy-handler/index.js +26 -6
  514. package/src/components/default-block-appender/index.js +4 -6
  515. package/src/components/default-block-appender/index.native.js +4 -9
  516. package/src/components/default-style-picker/index.js +20 -21
  517. package/src/components/duotone/components.js +133 -0
  518. package/src/components/duotone/index.js +7 -0
  519. package/src/components/duotone/utils.js +25 -0
  520. package/src/components/duotone-control/index.js +12 -7
  521. package/src/components/duotone-control/style.scss +5 -0
  522. package/src/components/font-sizes/with-font-sizes.js +2 -3
  523. package/src/components/image-editor/aspect-ratio-dropdown.js +2 -6
  524. package/src/components/image-size-control/index.js +4 -7
  525. package/src/components/index.js +4 -0
  526. package/src/components/inner-blocks/use-inner-block-template-sync.js +2 -3
  527. package/src/components/inner-blocks/use-nested-settings-update.js +6 -9
  528. package/src/components/inserter/block-types-tab.native.js +2 -3
  529. package/src/components/inserter/hooks/use-block-type-impressions.native.js +2 -3
  530. package/src/components/inserter/hooks/use-insertion-point.js +3 -2
  531. package/src/components/inserter/hooks/use-patterns-state.js +4 -5
  532. package/src/components/inserter/index.js +7 -11
  533. package/src/components/inserter/index.native.js +6 -11
  534. package/src/components/inserter/library.js +2 -5
  535. package/src/components/inserter/menu.js +14 -19
  536. package/src/components/inserter/menu.native.js +8 -6
  537. package/src/components/inserter/no-results.native.js +2 -1
  538. package/src/components/inserter/quick-inserter.js +2 -3
  539. package/src/components/inserter/search-items.js +6 -6
  540. package/src/components/inserter/search-results.native.js +4 -6
  541. package/src/components/inspector-popover-header/README.md +76 -0
  542. package/src/components/inspector-popover-header/index.js +56 -0
  543. package/src/components/inspector-popover-header/style.scss +16 -0
  544. package/src/components/line-height-control/index.js +1 -2
  545. package/src/components/link-control/index.js +4 -4
  546. package/src/components/link-control/search-create-button.js +4 -2
  547. package/src/components/link-control/search-input.js +3 -1
  548. package/src/components/link-control/settings-drawer.js +2 -5
  549. package/src/components/link-control/test/fixtures/index.js +5 -7
  550. package/src/components/link-control/test/index.js +79 -102
  551. package/src/components/link-control/use-search-handler.js +2 -2
  552. package/src/components/list-view/block-contents.js +2 -4
  553. package/src/components/list-view/branch.js +22 -23
  554. package/src/components/list-view/index.js +4 -8
  555. package/src/components/list-view/use-block-selection.js +5 -5
  556. package/src/components/list-view/use-list-view-drop-zone.js +2 -1
  557. package/src/components/list-view/utils.js +1 -6
  558. package/src/components/media-placeholder/index.js +3 -3
  559. package/src/components/media-placeholder/index.native.js +9 -5
  560. package/src/components/media-replace-flow/index.js +78 -55
  561. package/src/components/media-upload/README.md +8 -0
  562. package/src/components/media-upload/index.native.js +6 -2
  563. package/src/components/media-upload/test/index.native.js +31 -6
  564. package/src/components/navigable-toolbar/index.js +1 -2
  565. package/src/components/panel-color-settings/test/index.js +2 -1
  566. package/src/components/plain-text/index.native.js +60 -8
  567. package/src/components/preview-options/index.js +4 -0
  568. package/src/components/provider/use-block-sync.js +5 -2
  569. package/src/components/publish-date-time-picker/README.md +52 -0
  570. package/src/components/publish-date-time-picker/index.js +41 -0
  571. package/src/components/responsive-block-control/README.md +3 -1
  572. package/src/components/responsive-block-control/test/index.js +4 -4
  573. package/src/components/rich-text/embed-handler-picker.native.js +2 -5
  574. package/src/components/rich-text/index.js +9 -4
  575. package/src/components/rich-text/index.native.js +4 -0
  576. package/src/components/rich-text/use-format-types.js +16 -16
  577. package/src/components/rich-text/use-input-rules.js +6 -15
  578. package/src/components/rich-text/use-mark-persistent.js +2 -3
  579. package/src/components/rich-text/use-paste-handler.js +17 -5
  580. package/src/components/skip-to-selected-block/index.js +2 -3
  581. package/src/components/ungroup-button/index.native.js +4 -8
  582. package/src/components/url-input/index.js +21 -20
  583. package/src/components/use-block-display-information/index.js +4 -6
  584. package/src/components/use-block-drop-zone/index.js +2 -3
  585. package/src/components/use-block-drop-zone/index.native.js +2 -4
  586. package/src/components/use-block-drop-zone/test/index.js +22 -23
  587. package/src/components/use-display-block-controls/index.native.js +2 -3
  588. package/src/components/use-no-recursive-renders/test/use-no-recursive-renders.js +2 -3
  589. package/src/components/use-on-block-drop/index.js +2 -5
  590. package/src/components/use-on-block-drop/index.native.js +4 -8
  591. package/src/components/use-setting/index.js +8 -6
  592. package/src/components/writing-flow/test/index.js +22 -4
  593. package/src/components/writing-flow/use-arrow-nav.js +22 -10
  594. package/src/components/writing-flow/use-click-selection.js +2 -5
  595. package/src/components/writing-flow/use-drag-selection.js +6 -9
  596. package/src/components/writing-flow/use-input.js +12 -0
  597. package/src/components/writing-flow/use-multi-selection.js +2 -4
  598. package/src/components/writing-flow/use-select-all.js +2 -5
  599. package/src/components/writing-flow/use-selection-observer.js +4 -6
  600. package/src/components/writing-flow/use-tab-nav.js +2 -5
  601. package/src/elements/index.js +8 -0
  602. package/src/elements/test/index.js +18 -0
  603. package/src/hooks/aria-label.js +67 -0
  604. package/src/hooks/color-panel.js +4 -4
  605. package/src/hooks/color-panel.native.js +2 -2
  606. package/src/hooks/color.js +7 -76
  607. package/src/hooks/color.scss +9 -0
  608. package/src/hooks/dimensions.js +11 -3
  609. package/src/hooks/duotone.js +18 -139
  610. package/src/hooks/font-family.js +4 -2
  611. package/src/hooks/gap.js +2 -3
  612. package/src/hooks/index.js +1 -1
  613. package/src/hooks/layout.js +74 -13
  614. package/src/hooks/test/align.js +2 -1
  615. package/src/hooks/test/generated-class-name.js +2 -5
  616. package/src/hooks/test/utils.js +2 -5
  617. package/src/index.js +1 -1
  618. package/src/layouts/flex.js +13 -5
  619. package/src/store/actions.js +772 -729
  620. package/src/store/reducer.js +219 -183
  621. package/src/store/selectors.js +82 -54
  622. package/src/store/test/actions.js +2 -1
  623. package/src/store/test/reducer.js +145 -10
  624. package/src/store/test/selectors.js +20 -27
  625. package/src/style.scss +1 -0
  626. package/src/utils/pasting.js +3 -3
  627. package/src/utils/selection.js +26 -0
  628. package/src/utils/test/selection.js +39 -0
  629. package/src/utils/transform-styles/transforms/wrap.js +30 -28
  630. package/tsconfig.tsbuildinfo +1 -1
  631. package/build/components/colors/color-panel.js +0 -82
  632. package/build/components/colors/color-panel.js.map +0 -1
  633. package/build/components/colors/color-panel.native.js +0 -11
  634. package/build/components/colors/color-panel.native.js.map +0 -1
  635. package/build-module/components/colors/color-panel.js +0 -70
  636. package/build-module/components/colors/color-panel.js.map +0 -1
  637. package/build-module/components/colors/color-panel.native.js +0 -4
  638. package/build-module/components/colors/color-panel.native.js.map +0 -1
  639. package/src/components/colors/color-panel.js +0 -91
  640. package/src/components/colors/color-panel.native.js +0 -3
@@ -0,0 +1,56 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import { createElement } from "@wordpress/element";
3
+
4
+ /**
5
+ * WordPress dependencies
6
+ */
7
+ import { rawHandler, getBlockContent } from '@wordpress/blocks';
8
+ import { ToolbarButton, ToolbarGroup } from '@wordpress/components';
9
+ import { __ } from '@wordpress/i18n';
10
+ import { useSelect, useDispatch } from '@wordpress/data';
11
+ import { useCallback } from '@wordpress/element';
12
+ /**
13
+ * Internal dependencies
14
+ */
15
+
16
+ import { store as blockEditorStore } from '../../store';
17
+ export default function BlockEditVisuallyButton(_ref) {
18
+ let {
19
+ clientIds,
20
+ ...props
21
+ } = _ref;
22
+ const {
23
+ block,
24
+ shouldRender
25
+ } = useSelect(select => {
26
+ const firstBlockClientId = clientIds[0];
27
+ const {
28
+ isBlockMultiSelected,
29
+ getBlockMode,
30
+ getBlock
31
+ } = select(blockEditorStore);
32
+ const isSingleSelected = !isBlockMultiSelected(firstBlockClientId);
33
+ const isHtmlMode = getBlockMode(firstBlockClientId) === 'html';
34
+ return {
35
+ block: getBlock(firstBlockClientId),
36
+ shouldRender: isSingleSelected && isHtmlMode
37
+ };
38
+ }, [clientIds[0]]);
39
+ const {
40
+ replaceBlocks
41
+ } = useDispatch(blockEditorStore);
42
+ const onClick = useCallback(() => {
43
+ replaceBlocks(block.clientId, rawHandler({
44
+ HTML: getBlockContent(block)
45
+ }));
46
+ }, [block]);
47
+
48
+ if (!shouldRender) {
49
+ return null;
50
+ }
51
+
52
+ return createElement(ToolbarGroup, null, createElement(ToolbarButton, _extends({
53
+ onClick: onClick
54
+ }, props), __('Edit visually')));
55
+ }
56
+ //# sourceMappingURL=block-edit-visually-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-edit-visually-button.js"],"names":["rawHandler","getBlockContent","ToolbarButton","ToolbarGroup","__","useSelect","useDispatch","useCallback","store","blockEditorStore","BlockEditVisuallyButton","clientIds","props","block","shouldRender","select","firstBlockClientId","isBlockMultiSelected","getBlockMode","getBlock","isSingleSelected","isHtmlMode","replaceBlocks","onClick","clientId","HTML"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,UAAT,EAAqBC,eAArB,QAA4C,mBAA5C;AACA,SAASC,aAAT,EAAwBC,YAAxB,QAA4C,uBAA5C;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,WAAT,QAA4B,oBAA5B;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA,eAAe,SAASC,uBAAT,OAA4D;AAAA,MAA1B;AAAEC,IAAAA,SAAF;AAAa,OAAGC;AAAhB,GAA0B;AAC1E,QAAM;AAAEC,IAAAA,KAAF;AAASC,IAAAA;AAAT,MAA0BT,SAAS,CACtCU,MAAF,IAAc;AACb,UAAMC,kBAAkB,GAAGL,SAAS,CAAE,CAAF,CAApC;AACA,UAAM;AAAEM,MAAAA,oBAAF;AAAwBC,MAAAA,YAAxB;AAAsCC,MAAAA;AAAtC,QACLJ,MAAM,CAAEN,gBAAF,CADP;AAEA,UAAMW,gBAAgB,GACrB,CAAEH,oBAAoB,CAAED,kBAAF,CADvB;AAEA,UAAMK,UAAU,GAAGH,YAAY,CAAEF,kBAAF,CAAZ,KAAuC,MAA1D;AAEA,WAAO;AACNH,MAAAA,KAAK,EAAEM,QAAQ,CAAEH,kBAAF,CADT;AAENF,MAAAA,YAAY,EAAEM,gBAAgB,IAAIC;AAF5B,KAAP;AAIA,GAbuC,EAcxC,CAAEV,SAAS,CAAE,CAAF,CAAX,CAdwC,CAAzC;AAiBA,QAAM;AAAEW,IAAAA;AAAF,MAAoBhB,WAAW,CAAEG,gBAAF,CAArC;AACA,QAAMc,OAAO,GAAGhB,WAAW,CAAE,MAAM;AAClCe,IAAAA,aAAa,CACZT,KAAK,CAACW,QADM,EAEZxB,UAAU,CAAE;AAAEyB,MAAAA,IAAI,EAAExB,eAAe,CAAEY,KAAF;AAAvB,KAAF,CAFE,CAAb;AAIA,GAL0B,EAKxB,CAAEA,KAAF,CALwB,CAA3B;;AAOA,MAAK,CAAEC,YAAP,EAAsB;AACrB,WAAO,IAAP;AACA;;AAED,SACC,cAAC,YAAD,QACC,cAAC,aAAD;AAAe,IAAA,OAAO,EAAGS;AAAzB,KAAwCX,KAAxC,GACGR,EAAE,CAAE,eAAF,CADL,CADD,CADD;AAOA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { rawHandler, getBlockContent } from '@wordpress/blocks';\nimport { ToolbarButton, ToolbarGroup } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockEditVisuallyButton( { clientIds, ...props } ) {\n\tconst { block, shouldRender } = useSelect(\n\t\t( select ) => {\n\t\t\tconst firstBlockClientId = clientIds[ 0 ];\n\t\t\tconst { isBlockMultiSelected, getBlockMode, getBlock } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst isSingleSelected =\n\t\t\t\t! isBlockMultiSelected( firstBlockClientId );\n\t\t\tconst isHtmlMode = getBlockMode( firstBlockClientId ) === 'html';\n\n\t\t\treturn {\n\t\t\t\tblock: getBlock( firstBlockClientId ),\n\t\t\t\tshouldRender: isSingleSelected && isHtmlMode,\n\t\t\t};\n\t\t},\n\t\t[ clientIds[ 0 ] ]\n\t);\n\n\tconst { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst onClick = useCallback( () => {\n\t\treplaceBlocks(\n\t\t\tblock.clientId,\n\t\t\trawHandler( { HTML: getBlockContent( block ) } )\n\t\t);\n\t}, [ block ] );\n\n\tif ( ! shouldRender ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarButton onClick={ onClick } { ...props }>\n\t\t\t\t{ __( 'Edit visually' ) }\n\t\t\t</ToolbarButton>\n\t\t</ToolbarGroup>\n\t);\n}\n"]}
@@ -1,13 +1,8 @@
1
1
  import { createElement } from "@wordpress/element";
2
2
 
3
- /**
4
- * External dependencies
5
- */
6
- import { noop } from 'lodash';
7
3
  /**
8
4
  * WordPress dependencies
9
5
  */
10
-
11
6
  import { __ } from '@wordpress/i18n';
12
7
  import { MenuItem } from '@wordpress/components';
13
8
  import { getBlockType, hasBlockSupport } from '@wordpress/blocks';
@@ -18,6 +13,9 @@ import { compose } from '@wordpress/compose';
18
13
  */
19
14
 
20
15
  import { store as blockEditorStore } from '../../store';
16
+
17
+ const noop = () => {};
18
+
21
19
  export function BlockModeToggle(_ref) {
22
20
  let {
23
21
  blockType,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-mode-toggle.js"],"names":["noop","__","MenuItem","getBlockType","hasBlockSupport","withSelect","withDispatch","compose","store","blockEditorStore","BlockModeToggle","blockType","mode","onToggleMode","small","isCodeEditingEnabled","label","select","clientId","getBlock","getBlockMode","getSettings","block","codeEditingEnabled","name","dispatch","onToggle","toggleBlockMode"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,IAAT,QAAqB,QAArB;AAEA;AACA;AACA;;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,QAAT,QAAyB,uBAAzB;AACA,SAASC,YAAT,EAAuBC,eAAvB,QAA8C,mBAA9C;AACA,SAASC,UAAT,EAAqBC,YAArB,QAAyC,iBAAzC;AACA,SAASC,OAAT,QAAwB,oBAAxB;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA,OAAO,SAASC,eAAT,OAMH;AAAA,MAN6B;AAChCC,IAAAA,SADgC;AAEhCC,IAAAA,IAFgC;AAGhCC,IAAAA,YAHgC;AAIhCC,IAAAA,KAAK,GAAG,KAJwB;AAKhCC,IAAAA,oBAAoB,GAAG;AALS,GAM7B;;AACH,MACC,CAAEX,eAAe,CAAEO,SAAF,EAAa,MAAb,EAAqB,IAArB,CAAjB,IACA,CAAEI,oBAFH,EAGE;AACD,WAAO,IAAP;AACA;;AAED,QAAMC,KAAK,GACVJ,IAAI,KAAK,QAAT,GAAoBX,EAAE,CAAE,cAAF,CAAtB,GAA2CA,EAAE,CAAE,eAAF,CAD9C;AAGA,SAAO,cAAC,QAAD;AAAU,IAAA,OAAO,EAAGY;AAApB,KAAqC,CAAEC,KAAF,IAAWE,KAAhD,CAAP;AACA;AAED,eAAeT,OAAO,CAAE,CACvBF,UAAU,CAAE,CAAEY,MAAF,YAA4B;AAAA,MAAlB;AAAEC,IAAAA;AAAF,GAAkB;AACvC,QAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,YAAZ;AAA0BC,IAAAA;AAA1B,MAA0CJ,MAAM,CACrDR,gBADqD,CAAtD;AAGA,QAAMa,KAAK,GAAGH,QAAQ,CAAED,QAAF,CAAtB;AACA,QAAMH,oBAAoB,GAAGM,WAAW,GAAGE,kBAA3C;AAEA,SAAO;AACNX,IAAAA,IAAI,EAAEQ,YAAY,CAAEF,QAAF,CADZ;AAENP,IAAAA,SAAS,EAAEW,KAAK,GAAGnB,YAAY,CAAEmB,KAAK,CAACE,IAAR,CAAf,GAAgC,IAF1C;AAGNT,IAAAA;AAHM,GAAP;AAKA,CAZS,CADa,EAcvBT,YAAY,CAAE,CAAEmB,QAAF;AAAA,MAAY;AAAEC,IAAAA,QAAQ,GAAG1B,IAAb;AAAmBkB,IAAAA;AAAnB,GAAZ;AAAA,SAAiD;AAC9DL,IAAAA,YAAY,GAAG;AACdY,MAAAA,QAAQ,CAAEhB,gBAAF,CAAR,CAA6BkB,eAA7B,CAA8CT,QAA9C;AACAQ,MAAAA,QAAQ;AACR;;AAJ6D,GAAjD;AAAA,CAAF,CAdW,CAAF,CAAP,CAoBVhB,eApBU,CAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { noop } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { MenuItem } from '@wordpress/components';\nimport { getBlockType, hasBlockSupport } from '@wordpress/blocks';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nexport function BlockModeToggle( {\n\tblockType,\n\tmode,\n\tonToggleMode,\n\tsmall = false,\n\tisCodeEditingEnabled = true,\n} ) {\n\tif (\n\t\t! hasBlockSupport( blockType, 'html', true ) ||\n\t\t! isCodeEditingEnabled\n\t) {\n\t\treturn null;\n\t}\n\n\tconst label =\n\t\tmode === 'visual' ? __( 'Edit as HTML' ) : __( 'Edit visually' );\n\n\treturn <MenuItem onClick={ onToggleMode }>{ ! small && label }</MenuItem>;\n}\n\nexport default compose( [\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst { getBlock, getBlockMode, getSettings } = select(\n\t\t\tblockEditorStore\n\t\t);\n\t\tconst block = getBlock( clientId );\n\t\tconst isCodeEditingEnabled = getSettings().codeEditingEnabled;\n\n\t\treturn {\n\t\t\tmode: getBlockMode( clientId ),\n\t\t\tblockType: block ? getBlockType( block.name ) : null,\n\t\t\tisCodeEditingEnabled,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, { onToggle = noop, clientId } ) => ( {\n\t\tonToggleMode() {\n\t\t\tdispatch( blockEditorStore ).toggleBlockMode( clientId );\n\t\t\tonToggle();\n\t\t},\n\t} ) ),\n] )( BlockModeToggle );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-mode-toggle.js"],"names":["__","MenuItem","getBlockType","hasBlockSupport","withSelect","withDispatch","compose","store","blockEditorStore","noop","BlockModeToggle","blockType","mode","onToggleMode","small","isCodeEditingEnabled","label","select","clientId","getBlock","getBlockMode","getSettings","block","codeEditingEnabled","name","dispatch","onToggle","toggleBlockMode"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,QAAT,QAAyB,uBAAzB;AACA,SAASC,YAAT,EAAuBC,eAAvB,QAA8C,mBAA9C;AACA,SAASC,UAAT,EAAqBC,YAArB,QAAyC,iBAAzC;AACA,SAASC,OAAT,QAAwB,oBAAxB;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;;AAEA,MAAMC,IAAI,GAAG,MAAM,CAAE,CAArB;;AAEA,OAAO,SAASC,eAAT,OAMH;AAAA,MAN6B;AAChCC,IAAAA,SADgC;AAEhCC,IAAAA,IAFgC;AAGhCC,IAAAA,YAHgC;AAIhCC,IAAAA,KAAK,GAAG,KAJwB;AAKhCC,IAAAA,oBAAoB,GAAG;AALS,GAM7B;;AACH,MACC,CAAEZ,eAAe,CAAEQ,SAAF,EAAa,MAAb,EAAqB,IAArB,CAAjB,IACA,CAAEI,oBAFH,EAGE;AACD,WAAO,IAAP;AACA;;AAED,QAAMC,KAAK,GACVJ,IAAI,KAAK,QAAT,GAAoBZ,EAAE,CAAE,cAAF,CAAtB,GAA2CA,EAAE,CAAE,eAAF,CAD9C;AAGA,SAAO,cAAC,QAAD;AAAU,IAAA,OAAO,EAAGa;AAApB,KAAqC,CAAEC,KAAF,IAAWE,KAAhD,CAAP;AACA;AAED,eAAeV,OAAO,CAAE,CACvBF,UAAU,CAAE,CAAEa,MAAF,YAA4B;AAAA,MAAlB;AAAEC,IAAAA;AAAF,GAAkB;AACvC,QAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,YAAZ;AAA0BC,IAAAA;AAA1B,MACLJ,MAAM,CAAET,gBAAF,CADP;AAEA,QAAMc,KAAK,GAAGH,QAAQ,CAAED,QAAF,CAAtB;AACA,QAAMH,oBAAoB,GAAGM,WAAW,GAAGE,kBAA3C;AAEA,SAAO;AACNX,IAAAA,IAAI,EAAEQ,YAAY,CAAEF,QAAF,CADZ;AAENP,IAAAA,SAAS,EAAEW,KAAK,GAAGpB,YAAY,CAAEoB,KAAK,CAACE,IAAR,CAAf,GAAgC,IAF1C;AAGNT,IAAAA;AAHM,GAAP;AAKA,CAXS,CADa,EAavBV,YAAY,CAAE,CAAEoB,QAAF;AAAA,MAAY;AAAEC,IAAAA,QAAQ,GAAGjB,IAAb;AAAmBS,IAAAA;AAAnB,GAAZ;AAAA,SAAiD;AAC9DL,IAAAA,YAAY,GAAG;AACdY,MAAAA,QAAQ,CAAEjB,gBAAF,CAAR,CAA6BmB,eAA7B,CAA8CT,QAA9C;AACAQ,MAAAA,QAAQ;AACR;;AAJ6D,GAAjD;AAAA,CAAF,CAbW,CAAF,CAAP,CAmBVhB,eAnBU,CAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { MenuItem } from '@wordpress/components';\nimport { getBlockType, hasBlockSupport } from '@wordpress/blocks';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nconst noop = () => {};\n\nexport function BlockModeToggle( {\n\tblockType,\n\tmode,\n\tonToggleMode,\n\tsmall = false,\n\tisCodeEditingEnabled = true,\n} ) {\n\tif (\n\t\t! hasBlockSupport( blockType, 'html', true ) ||\n\t\t! isCodeEditingEnabled\n\t) {\n\t\treturn null;\n\t}\n\n\tconst label =\n\t\tmode === 'visual' ? __( 'Edit as HTML' ) : __( 'Edit visually' );\n\n\treturn <MenuItem onClick={ onToggleMode }>{ ! small && label }</MenuItem>;\n}\n\nexport default compose( [\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst { getBlock, getBlockMode, getSettings } =\n\t\t\tselect( blockEditorStore );\n\t\tconst block = getBlock( clientId );\n\t\tconst isCodeEditingEnabled = getSettings().codeEditingEnabled;\n\n\t\treturn {\n\t\t\tmode: getBlockMode( clientId ),\n\t\t\tblockType: block ? getBlockType( block.name ) : null,\n\t\t\tisCodeEditingEnabled,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, { onToggle = noop, clientId } ) => ( {\n\t\tonToggleMode() {\n\t\t\tdispatch( blockEditorStore ).toggleBlockMode( clientId );\n\t\t\tonToggle();\n\t\t},\n\t} ) ),\n] )( BlockModeToggle );\n"]}
@@ -4,7 +4,7 @@ import { createElement, Fragment } from "@wordpress/element";
4
4
  /**
5
5
  * External dependencies
6
6
  */
7
- import { castArray, flow, noop } from 'lodash';
7
+ import { castArray, flow } from 'lodash';
8
8
  /**
9
9
  * WordPress dependencies
10
10
  */
@@ -30,6 +30,9 @@ import BlockSettingsMenuControls from '../block-settings-menu-controls';
30
30
  import { store as blockEditorStore } from '../../store';
31
31
  import useBlockDisplayTitle from '../block-title/use-block-display-title';
32
32
  import { useShowMoversGestures } from '../block-toolbar/utils';
33
+
34
+ const noop = () => {};
35
+
33
36
  const POPOVER_PROPS = {
34
37
  className: 'block-editor-block-settings-menu__popover',
35
38
  position: 'bottom right',
@@ -42,9 +45,10 @@ function CopyMenuItem(_ref) {
42
45
  onCopy
43
46
  } = _ref;
44
47
  const ref = useCopyToClipboard(() => serialize(blocks), onCopy);
48
+ const copyMenuItemLabel = blocks.length > 1 ? __('Copy blocks') : __('Copy block');
45
49
  return createElement(MenuItem, {
46
50
  ref: ref
47
- }, __('Copy'));
51
+ }, copyMenuItemLabel);
48
52
  }
49
53
 
50
54
  export function BlockSettingsDropdown(_ref2) {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-settings-dropdown.js"],"names":["castArray","flow","noop","getBlockType","serialize","DropdownMenu","MenuGroup","MenuItem","useDispatch","useSelect","moreVertical","Children","cloneElement","useCallback","useRef","__","sprintf","store","keyboardShortcutsStore","useCopyToClipboard","BlockActions","BlockIcon","BlockModeToggle","BlockHTMLConvertButton","__unstableBlockSettingsMenuFirstItem","BlockSettingsMenuControls","blockEditorStore","useBlockDisplayTitle","useShowMoversGestures","POPOVER_PROPS","className","position","isAlternate","CopyMenuItem","blocks","onCopy","ref","BlockSettingsDropdown","clientIds","__experimentalSelectBlock","children","props","blockClientIds","count","length","firstBlockClientId","firstParentClientId","hasReducedUI","onlyBlock","parentBlockType","previousBlockClientId","nextBlockClientId","selectedBlockClientIds","select","getBlockCount","getBlockName","getBlockParents","getPreviousBlockClientId","getNextBlockClientId","getSelectedBlockClientIds","getSettings","parents","_firstParentClientId","parentBlockName","shortcuts","getShortcutRepresentation","duplicate","remove","insertAfter","insertBefore","selectBlock","toggleBlockHighlight","updateSelectionAfterDuplicate","clientIdsPromise","ids","blockTitle","updateSelectionAfterRemove","blockToSelect","includes","label","removeBlockLabel","selectParentButtonRef","gestures","showParentOutlineGestures","onChange","isFocused","canDuplicate","canInsertDefaultBlock","canMove","canRemove","onDuplicate","onInsertAfter","onInsertBefore","onRemove","onMoveTo","onClose","undefined","icon","title","map","child"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { castArray, flow, noop } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { getBlockType, serialize } from '@wordpress/blocks';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { moreVertical } from '@wordpress/icons';\nimport {\n\tChildren,\n\tcloneElement,\n\tuseCallback,\n\tuseRef,\n} from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { useCopyToClipboard } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockActions from '../block-actions';\nimport BlockIcon from '../block-icon';\nimport BlockModeToggle from './block-mode-toggle';\nimport BlockHTMLConvertButton from './block-html-convert-button';\nimport __unstableBlockSettingsMenuFirstItem from './block-settings-menu-first-item';\nimport BlockSettingsMenuControls from '../block-settings-menu-controls';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\nimport { useShowMoversGestures } from '../block-toolbar/utils';\n\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tposition: 'bottom right',\n\tisAlternate: true,\n};\n\nfunction CopyMenuItem( { blocks, onCopy } ) {\n\tconst ref = useCopyToClipboard( () => serialize( blocks ), onCopy );\n\treturn <MenuItem ref={ ref }>{ __( 'Copy' ) }</MenuItem>;\n}\n\nexport function BlockSettingsDropdown( {\n\tclientIds,\n\t__experimentalSelectBlock,\n\tchildren,\n\t...props\n} ) {\n\tconst blockClientIds = castArray( clientIds );\n\tconst count = blockClientIds.length;\n\tconst firstBlockClientId = blockClientIds[ 0 ];\n\tconst {\n\t\tfirstParentClientId,\n\t\thasReducedUI,\n\t\tonlyBlock,\n\t\tparentBlockType,\n\t\tpreviousBlockClientId,\n\t\tnextBlockClientId,\n\t\tselectedBlockClientIds,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetSettings,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst parents = getBlockParents( firstBlockClientId );\n\t\t\tconst _firstParentClientId = parents[ parents.length - 1 ];\n\t\t\tconst parentBlockName = getBlockName( _firstParentClientId );\n\n\t\t\treturn {\n\t\t\t\tfirstParentClientId: _firstParentClientId,\n\t\t\t\thasReducedUI: getSettings().hasReducedUI,\n\t\t\t\tonlyBlock: 1 === getBlockCount(),\n\t\t\t\tparentBlockType: getBlockType( parentBlockName ),\n\t\t\t\tpreviousBlockClientId: getPreviousBlockClientId(\n\t\t\t\t\tfirstBlockClientId\n\t\t\t\t),\n\t\t\t\tnextBlockClientId: getNextBlockClientId( firstBlockClientId ),\n\t\t\t\tselectedBlockClientIds: getSelectedBlockClientIds(),\n\t\t\t};\n\t\t},\n\t\t[ firstBlockClientId ]\n\t);\n\n\tconst shortcuts = useSelect( ( select ) => {\n\t\tconst { getShortcutRepresentation } = select( keyboardShortcutsStore );\n\t\treturn {\n\t\t\tduplicate: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/duplicate'\n\t\t\t),\n\t\t\tremove: getShortcutRepresentation( 'core/block-editor/remove' ),\n\t\t\tinsertAfter: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-after'\n\t\t\t),\n\t\t\tinsertBefore: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-before'\n\t\t\t),\n\t\t};\n\t}, [] );\n\n\tconst { selectBlock, toggleBlockHighlight } = useDispatch(\n\t\tblockEditorStore\n\t);\n\n\tconst updateSelectionAfterDuplicate = useCallback(\n\t\t__experimentalSelectBlock\n\t\t\t? async ( clientIdsPromise ) => {\n\t\t\t\t\tconst ids = await clientIdsPromise;\n\t\t\t\t\tif ( ids && ids[ 0 ] ) {\n\t\t\t\t\t\t__experimentalSelectBlock( ids[ 0 ] );\n\t\t\t\t\t}\n\t\t\t }\n\t\t\t: noop,\n\t\t[ __experimentalSelectBlock ]\n\t);\n\n\tconst blockTitle = useBlockDisplayTitle( firstBlockClientId, 25 );\n\n\tconst updateSelectionAfterRemove = useCallback(\n\t\t__experimentalSelectBlock\n\t\t\t? () => {\n\t\t\t\t\tconst blockToSelect =\n\t\t\t\t\t\tpreviousBlockClientId || nextBlockClientId;\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tblockToSelect &&\n\t\t\t\t\t\t// From the block options dropdown, it's possible to remove a block that is not selected,\n\t\t\t\t\t\t// in this case, it's not necessary to update the selection since the selected block wasn't removed.\n\t\t\t\t\t\tselectedBlockClientIds.includes( firstBlockClientId ) &&\n\t\t\t\t\t\t// Don't update selection when next/prev block also is in the selection ( and gets removed ),\n\t\t\t\t\t\t// In case someone selects all blocks and removes them at once.\n\t\t\t\t\t\t! selectedBlockClientIds.includes( blockToSelect )\n\t\t\t\t\t) {\n\t\t\t\t\t\t__experimentalSelectBlock( blockToSelect );\n\t\t\t\t\t}\n\t\t\t }\n\t\t\t: noop,\n\t\t[\n\t\t\t__experimentalSelectBlock,\n\t\t\tpreviousBlockClientId,\n\t\t\tnextBlockClientId,\n\t\t\tselectedBlockClientIds,\n\t\t]\n\t);\n\n\tconst label = sprintf(\n\t\t/* translators: %s: block name */\n\t\t__( 'Remove %s' ),\n\t\tblockTitle\n\t);\n\tconst removeBlockLabel = count === 1 ? label : __( 'Remove blocks' );\n\n\t// Allows highlighting the parent block outline when focusing or hovering\n\t// the parent block selector within the child.\n\tconst selectParentButtonRef = useRef();\n\tconst { gestures: showParentOutlineGestures } = useShowMoversGestures( {\n\t\tref: selectParentButtonRef,\n\t\tonChange( isFocused ) {\n\t\t\tif ( isFocused && hasReducedUI ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttoggleBlockHighlight( firstParentClientId, isFocused );\n\t\t},\n\t} );\n\n\treturn (\n\t\t<BlockActions\n\t\t\tclientIds={ clientIds }\n\t\t\t__experimentalUpdateSelection={ ! __experimentalSelectBlock }\n\t\t>\n\t\t\t{ ( {\n\t\t\t\tcanDuplicate,\n\t\t\t\tcanInsertDefaultBlock,\n\t\t\t\tcanMove,\n\t\t\t\tcanRemove,\n\t\t\t\tonDuplicate,\n\t\t\t\tonInsertAfter,\n\t\t\t\tonInsertBefore,\n\t\t\t\tonRemove,\n\t\t\t\tonCopy,\n\t\t\t\tonMoveTo,\n\t\t\t\tblocks,\n\t\t\t} ) => (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t\tnoIcons\n\t\t\t\t\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<__unstableBlockSettingsMenuFirstItem.Slot\n\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ firstParentClientId !== undefined && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t{ ...showParentOutlineGestures }\n\t\t\t\t\t\t\t\t\t\tref={ selectParentButtonRef }\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ parentBlockType.icon }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\tselectBlock( firstParentClientId )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: Name of the block's parent. */\n\t\t\t\t\t\t\t\t\t\t\t__( 'Select parent block (%s)' ),\n\t\t\t\t\t\t\t\t\t\t\tparentBlockType.title\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t<BlockHTMLConvertButton\n\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ canDuplicate && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonDuplicate,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterDuplicate\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.duplicate }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ canInsertDefaultBlock && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonInsertBefore\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.insertBefore }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Insert before' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonInsertAfter\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.insertAfter }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Insert after' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ canMove && ! onlyBlock && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ flow( onClose, onMoveTo ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Move to' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t<BlockModeToggle\n\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\n\t\t\t\t\t\t\t\t\t\tonToggle={ onClose }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t<BlockSettingsMenuControls.Slot\n\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ typeof children === 'function'\n\t\t\t\t\t\t\t\t? children( { onClose } )\n\t\t\t\t\t\t\t\t: Children.map( ( child ) =>\n\t\t\t\t\t\t\t\t\t\tcloneElement( child, { onClose } )\n\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonRemove,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterRemove\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.remove }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ removeBlockLabel }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenu>\n\t\t\t) }\n\t\t</BlockActions>\n\t);\n}\n\nexport default BlockSettingsDropdown;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-settings-dropdown.js"],"names":["castArray","flow","getBlockType","serialize","DropdownMenu","MenuGroup","MenuItem","useDispatch","useSelect","moreVertical","Children","cloneElement","useCallback","useRef","__","sprintf","store","keyboardShortcutsStore","useCopyToClipboard","BlockActions","BlockIcon","BlockModeToggle","BlockHTMLConvertButton","__unstableBlockSettingsMenuFirstItem","BlockSettingsMenuControls","blockEditorStore","useBlockDisplayTitle","useShowMoversGestures","noop","POPOVER_PROPS","className","position","isAlternate","CopyMenuItem","blocks","onCopy","ref","copyMenuItemLabel","length","BlockSettingsDropdown","clientIds","__experimentalSelectBlock","children","props","blockClientIds","count","firstBlockClientId","firstParentClientId","hasReducedUI","onlyBlock","parentBlockType","previousBlockClientId","nextBlockClientId","selectedBlockClientIds","select","getBlockCount","getBlockName","getBlockParents","getPreviousBlockClientId","getNextBlockClientId","getSelectedBlockClientIds","getSettings","parents","_firstParentClientId","parentBlockName","shortcuts","getShortcutRepresentation","duplicate","remove","insertAfter","insertBefore","selectBlock","toggleBlockHighlight","updateSelectionAfterDuplicate","clientIdsPromise","ids","blockTitle","updateSelectionAfterRemove","blockToSelect","includes","label","removeBlockLabel","selectParentButtonRef","gestures","showParentOutlineGestures","onChange","isFocused","canDuplicate","canInsertDefaultBlock","canMove","canRemove","onDuplicate","onInsertAfter","onInsertBefore","onRemove","onMoveTo","onClose","undefined","icon","title","map","child"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { castArray, flow } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { getBlockType, serialize } from '@wordpress/blocks';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { moreVertical } from '@wordpress/icons';\nimport {\n\tChildren,\n\tcloneElement,\n\tuseCallback,\n\tuseRef,\n} from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { useCopyToClipboard } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockActions from '../block-actions';\nimport BlockIcon from '../block-icon';\nimport BlockModeToggle from './block-mode-toggle';\nimport BlockHTMLConvertButton from './block-html-convert-button';\nimport __unstableBlockSettingsMenuFirstItem from './block-settings-menu-first-item';\nimport BlockSettingsMenuControls from '../block-settings-menu-controls';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayTitle from '../block-title/use-block-display-title';\nimport { useShowMoversGestures } from '../block-toolbar/utils';\n\nconst noop = () => {};\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tposition: 'bottom right',\n\tisAlternate: true,\n};\n\nfunction CopyMenuItem( { blocks, onCopy } ) {\n\tconst ref = useCopyToClipboard( () => serialize( blocks ), onCopy );\n\tconst copyMenuItemLabel =\n\t\tblocks.length > 1 ? __( 'Copy blocks' ) : __( 'Copy block' );\n\treturn <MenuItem ref={ ref }>{ copyMenuItemLabel }</MenuItem>;\n}\n\nexport function BlockSettingsDropdown( {\n\tclientIds,\n\t__experimentalSelectBlock,\n\tchildren,\n\t...props\n} ) {\n\tconst blockClientIds = castArray( clientIds );\n\tconst count = blockClientIds.length;\n\tconst firstBlockClientId = blockClientIds[ 0 ];\n\tconst {\n\t\tfirstParentClientId,\n\t\thasReducedUI,\n\t\tonlyBlock,\n\t\tparentBlockType,\n\t\tpreviousBlockClientId,\n\t\tnextBlockClientId,\n\t\tselectedBlockClientIds,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tgetSettings,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst parents = getBlockParents( firstBlockClientId );\n\t\t\tconst _firstParentClientId = parents[ parents.length - 1 ];\n\t\t\tconst parentBlockName = getBlockName( _firstParentClientId );\n\n\t\t\treturn {\n\t\t\t\tfirstParentClientId: _firstParentClientId,\n\t\t\t\thasReducedUI: getSettings().hasReducedUI,\n\t\t\t\tonlyBlock: 1 === getBlockCount(),\n\t\t\t\tparentBlockType: getBlockType( parentBlockName ),\n\t\t\t\tpreviousBlockClientId:\n\t\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ),\n\t\t\t\tnextBlockClientId: getNextBlockClientId( firstBlockClientId ),\n\t\t\t\tselectedBlockClientIds: getSelectedBlockClientIds(),\n\t\t\t};\n\t\t},\n\t\t[ firstBlockClientId ]\n\t);\n\n\tconst shortcuts = useSelect( ( select ) => {\n\t\tconst { getShortcutRepresentation } = select( keyboardShortcutsStore );\n\t\treturn {\n\t\t\tduplicate: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/duplicate'\n\t\t\t),\n\t\t\tremove: getShortcutRepresentation( 'core/block-editor/remove' ),\n\t\t\tinsertAfter: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-after'\n\t\t\t),\n\t\t\tinsertBefore: getShortcutRepresentation(\n\t\t\t\t'core/block-editor/insert-before'\n\t\t\t),\n\t\t};\n\t}, [] );\n\n\tconst { selectBlock, toggleBlockHighlight } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst updateSelectionAfterDuplicate = useCallback(\n\t\t__experimentalSelectBlock\n\t\t\t? async ( clientIdsPromise ) => {\n\t\t\t\t\tconst ids = await clientIdsPromise;\n\t\t\t\t\tif ( ids && ids[ 0 ] ) {\n\t\t\t\t\t\t__experimentalSelectBlock( ids[ 0 ] );\n\t\t\t\t\t}\n\t\t\t }\n\t\t\t: noop,\n\t\t[ __experimentalSelectBlock ]\n\t);\n\n\tconst blockTitle = useBlockDisplayTitle( firstBlockClientId, 25 );\n\n\tconst updateSelectionAfterRemove = useCallback(\n\t\t__experimentalSelectBlock\n\t\t\t? () => {\n\t\t\t\t\tconst blockToSelect =\n\t\t\t\t\t\tpreviousBlockClientId || nextBlockClientId;\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tblockToSelect &&\n\t\t\t\t\t\t// From the block options dropdown, it's possible to remove a block that is not selected,\n\t\t\t\t\t\t// in this case, it's not necessary to update the selection since the selected block wasn't removed.\n\t\t\t\t\t\tselectedBlockClientIds.includes( firstBlockClientId ) &&\n\t\t\t\t\t\t// Don't update selection when next/prev block also is in the selection ( and gets removed ),\n\t\t\t\t\t\t// In case someone selects all blocks and removes them at once.\n\t\t\t\t\t\t! selectedBlockClientIds.includes( blockToSelect )\n\t\t\t\t\t) {\n\t\t\t\t\t\t__experimentalSelectBlock( blockToSelect );\n\t\t\t\t\t}\n\t\t\t }\n\t\t\t: noop,\n\t\t[\n\t\t\t__experimentalSelectBlock,\n\t\t\tpreviousBlockClientId,\n\t\t\tnextBlockClientId,\n\t\t\tselectedBlockClientIds,\n\t\t]\n\t);\n\n\tconst label = sprintf(\n\t\t/* translators: %s: block name */\n\t\t__( 'Remove %s' ),\n\t\tblockTitle\n\t);\n\tconst removeBlockLabel = count === 1 ? label : __( 'Remove blocks' );\n\n\t// Allows highlighting the parent block outline when focusing or hovering\n\t// the parent block selector within the child.\n\tconst selectParentButtonRef = useRef();\n\tconst { gestures: showParentOutlineGestures } = useShowMoversGestures( {\n\t\tref: selectParentButtonRef,\n\t\tonChange( isFocused ) {\n\t\t\tif ( isFocused && hasReducedUI ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttoggleBlockHighlight( firstParentClientId, isFocused );\n\t\t},\n\t} );\n\n\treturn (\n\t\t<BlockActions\n\t\t\tclientIds={ clientIds }\n\t\t\t__experimentalUpdateSelection={ ! __experimentalSelectBlock }\n\t\t>\n\t\t\t{ ( {\n\t\t\t\tcanDuplicate,\n\t\t\t\tcanInsertDefaultBlock,\n\t\t\t\tcanMove,\n\t\t\t\tcanRemove,\n\t\t\t\tonDuplicate,\n\t\t\t\tonInsertAfter,\n\t\t\t\tonInsertBefore,\n\t\t\t\tonRemove,\n\t\t\t\tonCopy,\n\t\t\t\tonMoveTo,\n\t\t\t\tblocks,\n\t\t\t} ) => (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t\tnoIcons\n\t\t\t\t\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t<__unstableBlockSettingsMenuFirstItem.Slot\n\t\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ firstParentClientId !== undefined && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t{ ...showParentOutlineGestures }\n\t\t\t\t\t\t\t\t\t\tref={ selectParentButtonRef }\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ parentBlockType.icon }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\tselectBlock( firstParentClientId )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: Name of the block's parent. */\n\t\t\t\t\t\t\t\t\t\t\t__( 'Select parent block (%s)' ),\n\t\t\t\t\t\t\t\t\t\t\tparentBlockType.title\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t<BlockHTMLConvertButton\n\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<CopyMenuItem\n\t\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\t\tonCopy={ onCopy }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ canDuplicate && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonDuplicate,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterDuplicate\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.duplicate }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ canInsertDefaultBlock && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonInsertBefore\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.insertBefore }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Insert before' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\t\tonInsertAfter\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.insertAfter }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Insert after' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ canMove && ! onlyBlock && (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ flow( onClose, onMoveTo ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Move to' ) }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ count === 1 && (\n\t\t\t\t\t\t\t\t\t<BlockModeToggle\n\t\t\t\t\t\t\t\t\t\tclientId={ firstBlockClientId }\n\t\t\t\t\t\t\t\t\t\tonToggle={ onClose }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t<BlockSettingsMenuControls.Slot\n\t\t\t\t\t\t\t\tfillProps={ { onClose } }\n\t\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ typeof children === 'function'\n\t\t\t\t\t\t\t\t? children( { onClose } )\n\t\t\t\t\t\t\t\t: Children.map( ( child ) =>\n\t\t\t\t\t\t\t\t\t\tcloneElement( child, { onClose } )\n\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t{ canRemove && (\n\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ flow(\n\t\t\t\t\t\t\t\t\t\t\tonClose,\n\t\t\t\t\t\t\t\t\t\t\tonRemove,\n\t\t\t\t\t\t\t\t\t\t\tupdateSelectionAfterRemove\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tshortcut={ shortcuts.remove }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ removeBlockLabel }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenu>\n\t\t\t) }\n\t\t</BlockActions>\n\t);\n}\n\nexport default BlockSettingsDropdown;\n"]}
@@ -1,5 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
- import { createElement } from "@wordpress/element";
2
+ import { createElement, Fragment } from "@wordpress/element";
3
3
 
4
4
  /**
5
5
  * WordPress dependencies
@@ -10,15 +10,18 @@ import { ToolbarGroup, ToolbarItem } from '@wordpress/components';
10
10
  */
11
11
 
12
12
  import BlockSettingsDropdown from './block-settings-dropdown';
13
+ import BlockEditVisuallyButton from './block-edit-visually-button';
13
14
  export function BlockSettingsMenu(_ref) {
14
15
  let {
15
16
  clientIds,
16
17
  ...props
17
18
  } = _ref;
18
- return createElement(ToolbarGroup, null, createElement(ToolbarItem, null, toggleProps => createElement(BlockSettingsDropdown, _extends({
19
+ return createElement(Fragment, null, createElement(BlockEditVisuallyButton, _extends({
20
+ clientIds: clientIds
21
+ }, props)), createElement(ToolbarGroup, null, createElement(ToolbarItem, null, toggleProps => createElement(BlockSettingsDropdown, _extends({
19
22
  clientIds: clientIds,
20
23
  toggleProps: toggleProps
21
- }, props))));
24
+ }, props)))));
22
25
  }
23
26
  export default BlockSettingsMenu;
24
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-settings-menu/index.js"],"names":["ToolbarGroup","ToolbarItem","BlockSettingsDropdown","BlockSettingsMenu","clientIds","props","toggleProps"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,YAAT,EAAuBC,WAAvB,QAA0C,uBAA1C;AAEA;AACA;AACA;;AACA,OAAOC,qBAAP,MAAkC,2BAAlC;AAEA,OAAO,SAASC,iBAAT,OAAsD;AAAA,MAA1B;AAAEC,IAAAA,SAAF;AAAa,OAAGC;AAAhB,GAA0B;AAC5D,SACC,cAAC,YAAD,QACC,cAAC,WAAD,QACKC,WAAF,IACD,cAAC,qBAAD;AACC,IAAA,SAAS,EAAGF,SADb;AAEC,IAAA,WAAW,EAAGE;AAFf,KAGMD,KAHN,EAFF,CADD,CADD;AAaA;AAED,eAAeF,iBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { ToolbarGroup, ToolbarItem } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockSettingsDropdown from './block-settings-dropdown';\n\nexport function BlockSettingsMenu( { clientIds, ...props } ) {\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarItem>\n\t\t\t\t{ ( toggleProps ) => (\n\t\t\t\t\t<BlockSettingsDropdown\n\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\ttoggleProps={ toggleProps }\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</ToolbarItem>\n\t\t</ToolbarGroup>\n\t);\n}\n\nexport default BlockSettingsMenu;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-settings-menu/index.js"],"names":["ToolbarGroup","ToolbarItem","BlockSettingsDropdown","BlockEditVisuallyButton","BlockSettingsMenu","clientIds","props","toggleProps"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,YAAT,EAAuBC,WAAvB,QAA0C,uBAA1C;AAEA;AACA;AACA;;AACA,OAAOC,qBAAP,MAAkC,2BAAlC;AACA,OAAOC,uBAAP,MAAoC,8BAApC;AAEA,OAAO,SAASC,iBAAT,OAAsD;AAAA,MAA1B;AAAEC,IAAAA,SAAF;AAAa,OAAGC;AAAhB,GAA0B;AAC5D,SACC,8BACC,cAAC,uBAAD;AAAyB,IAAA,SAAS,EAAGD;AAArC,KAAsDC,KAAtD,EADD,EAEC,cAAC,YAAD,QACC,cAAC,WAAD,QACKC,WAAF,IACD,cAAC,qBAAD;AACC,IAAA,SAAS,EAAGF,SADb;AAEC,IAAA,WAAW,EAAGE;AAFf,KAGMD,KAHN,EAFF,CADD,CAFD,CADD;AAgBA;AAED,eAAeF,iBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { ToolbarGroup, ToolbarItem } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockSettingsDropdown from './block-settings-dropdown';\nimport BlockEditVisuallyButton from './block-edit-visually-button';\n\nexport function BlockSettingsMenu( { clientIds, ...props } ) {\n\treturn (\n\t\t<>\n\t\t\t<BlockEditVisuallyButton clientIds={ clientIds } { ...props } />\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarItem>\n\t\t\t\t\t{ ( toggleProps ) => (\n\t\t\t\t\t\t<BlockSettingsDropdown\n\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\ttoggleProps={ toggleProps }\n\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarItem>\n\t\t\t</ToolbarGroup>\n\t\t</>\n\t);\n}\n\nexport default BlockSettingsMenu;\n"]}
@@ -16,7 +16,7 @@ import { useSelect } from '@wordpress/data';
16
16
  */
17
17
 
18
18
  import { useConvertToGroupButtonProps, ConvertToGroupButton } from '../convert-to-group-buttons';
19
- import { BlockLockMenuItem } from '../block-lock';
19
+ import { BlockLockMenuItem, useBlockLock } from '../block-lock';
20
20
  import { store as blockEditorStore } from '../../store';
21
21
  const {
22
22
  Fill,
@@ -45,7 +45,10 @@ const BlockSettingsMenuControlsSlot = _ref => {
45
45
  canRemove: canRemoveBlocks(ids)
46
46
  };
47
47
  }, [clientIds]);
48
- const showLockButton = selectedClientIds.length === 1; // Check if current selection of blocks is Groupable or Ungroupable
48
+ const {
49
+ canLock
50
+ } = useBlockLock(selectedClientIds[0]);
51
+ const showLockButton = selectedClientIds.length === 1 && canLock; // Check if current selection of blocks is Groupable or Ungroupable
49
52
  // and pass this props down to ConvertToGroupButton.
50
53
 
51
54
  const convertToGroupButtonProps = useConvertToGroupButtonProps();
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-settings-menu-controls/index.js"],"names":["compact","map","createSlotFill","MenuGroup","__experimentalStyleProvider","StyleProvider","useSelect","useConvertToGroupButtonProps","ConvertToGroupButton","BlockLockMenuItem","store","blockEditorStore","Fill","Slot","BlockSettingsMenuControlsSlot","fillProps","clientIds","selectedBlocks","selectedClientIds","canRemove","select","getBlocksByClientId","getSelectedBlockClientIds","canRemoveBlocks","ids","block","name","showLockButton","length","convertToGroupButtonProps","isGroupable","isUngroupable","showConvertToGroupButton","fills","onClose","BlockSettingsMenuControls","props","document"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,OAAT,EAAkBC,GAAlB,QAA6B,QAA7B;AAEA;AACA;AACA;;AACA,SACCC,cADD,EAECC,SAFD,EAGCC,2BAA2B,IAAIC,aAHhC,QAIO,uBAJP;AAKA,SAASC,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,SACCC,4BADD,EAECC,oBAFD,QAGO,6BAHP;AAIA,SAASC,iBAAT,QAAkC,eAAlC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA,MAAM;AAAEC,EAAAA,IAAF;AAAQC,EAAAA;AAAR,IAAiBX,cAAc,CAAE,2BAAF,CAArC;;AAEA,MAAMY,6BAA6B,GAAG,QAAuC;AAAA,MAArC;AAAEC,IAAAA,SAAF;AAAaC,IAAAA,SAAS,GAAG;AAAzB,GAAqC;AAC5E,QAAM;AAAEC,IAAAA,cAAF;AAAkBC,IAAAA,iBAAlB;AAAqCC,IAAAA;AAArC,MAAmDb,SAAS,CAC/Dc,MAAF,IAAc;AACb,UAAM;AACLC,MAAAA,mBADK;AAELC,MAAAA,yBAFK;AAGLC,MAAAA;AAHK,QAIFH,MAAM,CAAET,gBAAF,CAJV;AAKA,UAAMa,GAAG,GACRR,SAAS,KAAK,IAAd,GAAqBA,SAArB,GAAiCM,yBAAyB,EAD3D;AAEA,WAAO;AACNL,MAAAA,cAAc,EAAEhB,GAAG,CAClBD,OAAO,CAAEqB,mBAAmB,CAAEG,GAAF,CAArB,CADW,EAEhBC,KAAF,IAAaA,KAAK,CAACC,IAFD,CADb;AAKNR,MAAAA,iBAAiB,EAAEM,GALb;AAMNL,MAAAA,SAAS,EAAEI,eAAe,CAAEC,GAAF;AANpB,KAAP;AAQA,GAjBgE,EAkBjE,CAAER,SAAF,CAlBiE,CAAlE;AAqBA,QAAMW,cAAc,GAAGT,iBAAiB,CAACU,MAAlB,KAA6B,CAApD,CAtB4E,CAwB5E;AACA;;AACA,QAAMC,yBAAyB,GAAGtB,4BAA4B,EAA9D;AACA,QAAM;AAAEuB,IAAAA,WAAF;AAAeC,IAAAA;AAAf,MAAiCF,yBAAvC;AACA,QAAMG,wBAAwB,GAC7B,CAAEF,WAAW,IAAIC,aAAjB,KAAoCZ,SADrC;AAGA,SACC,cAAC,IAAD;AAAM,IAAA,SAAS,EAAG,EAAE,GAAGJ,SAAL;AAAgBE,MAAAA,cAAhB;AAAgCC,MAAAA;AAAhC;AAAlB,KACKe,KAAF,IAAa;AACd,QACC,EAAEA,KAAF,aAAEA,KAAF,eAAEA,KAAK,CAAEL,MAAT,IAAkB,CAAlB,IACA,CAAEI,wBADF,IAEA,CAAEL,cAHH,EAIE;AACD,aAAO,IAAP;AACA;;AAED,WACC,cAAC,SAAD,QACGA,cAAc,IACf,cAAC,iBAAD;AACC,MAAA,QAAQ,EAAGT,iBAAiB,CAAE,CAAF;AAD7B,MAFF,EAMGe,KANH,EAOGD,wBAAwB,IACzB,cAAC,oBAAD,eACMH,yBADN;AAEC,MAAA,OAAO,EAAGd,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAEmB;AAFtB,OARF,CADD;AAgBA,GA1BF,CADD;AA8BA,CA7DD;AA+DA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,yBAAT,QAAmD;AAAA,MAAf,EAAE,GAAGC;AAAL,GAAe;AAClD,SACC,cAAC,aAAD;AAAe,IAAA,QAAQ,EAAGC;AAA1B,KACC,cAAC,IAAD,EAAWD,KAAX,CADD,CADD;AAKA;;AAEDD,yBAAyB,CAACtB,IAA1B,GAAiCC,6BAAjC;AAEA,eAAeqB,yBAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { compact, map } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tcreateSlotFill,\n\tMenuGroup,\n\t__experimentalStyleProvider as StyleProvider,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseConvertToGroupButtonProps,\n\tConvertToGroupButton,\n} from '../convert-to-group-buttons';\nimport { BlockLockMenuItem } from '../block-lock';\nimport { store as blockEditorStore } from '../../store';\n\nconst { Fill, Slot } = createSlotFill( 'BlockSettingsMenuControls' );\n\nconst BlockSettingsMenuControlsSlot = ( { fillProps, clientIds = null } ) => {\n\tconst { selectedBlocks, selectedClientIds, canRemove } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tcanRemoveBlocks,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst ids =\n\t\t\t\tclientIds !== null ? clientIds : getSelectedBlockClientIds();\n\t\t\treturn {\n\t\t\t\tselectedBlocks: map(\n\t\t\t\t\tcompact( getBlocksByClientId( ids ) ),\n\t\t\t\t\t( block ) => block.name\n\t\t\t\t),\n\t\t\t\tselectedClientIds: ids,\n\t\t\t\tcanRemove: canRemoveBlocks( ids ),\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tconst showLockButton = selectedClientIds.length === 1;\n\n\t// Check if current selection of blocks is Groupable or Ungroupable\n\t// and pass this props down to ConvertToGroupButton.\n\tconst convertToGroupButtonProps = useConvertToGroupButtonProps();\n\tconst { isGroupable, isUngroupable } = convertToGroupButtonProps;\n\tconst showConvertToGroupButton =\n\t\t( isGroupable || isUngroupable ) && canRemove;\n\n\treturn (\n\t\t<Slot fillProps={ { ...fillProps, selectedBlocks, selectedClientIds } }>\n\t\t\t{ ( fills ) => {\n\t\t\t\tif (\n\t\t\t\t\t! fills?.length > 0 &&\n\t\t\t\t\t! showConvertToGroupButton &&\n\t\t\t\t\t! showLockButton\n\t\t\t\t) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t{ showLockButton && (\n\t\t\t\t\t\t\t<BlockLockMenuItem\n\t\t\t\t\t\t\t\tclientId={ selectedClientIds[ 0 ] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ fills }\n\t\t\t\t\t\t{ showConvertToGroupButton && (\n\t\t\t\t\t\t\t<ConvertToGroupButton\n\t\t\t\t\t\t\t\t{ ...convertToGroupButtonProps }\n\t\t\t\t\t\t\t\tonClose={ fillProps?.onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t);\n\t\t\t} }\n\t\t</Slot>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-settings-menu-controls/README.md\n *\n * @param {Object} props Fill props.\n * @return {WPElement} Element.\n */\nfunction BlockSettingsMenuControls( { ...props } ) {\n\treturn (\n\t\t<StyleProvider document={ document }>\n\t\t\t<Fill { ...props } />\n\t\t</StyleProvider>\n\t);\n}\n\nBlockSettingsMenuControls.Slot = BlockSettingsMenuControlsSlot;\n\nexport default BlockSettingsMenuControls;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-settings-menu-controls/index.js"],"names":["compact","map","createSlotFill","MenuGroup","__experimentalStyleProvider","StyleProvider","useSelect","useConvertToGroupButtonProps","ConvertToGroupButton","BlockLockMenuItem","useBlockLock","store","blockEditorStore","Fill","Slot","BlockSettingsMenuControlsSlot","fillProps","clientIds","selectedBlocks","selectedClientIds","canRemove","select","getBlocksByClientId","getSelectedBlockClientIds","canRemoveBlocks","ids","block","name","canLock","showLockButton","length","convertToGroupButtonProps","isGroupable","isUngroupable","showConvertToGroupButton","fills","onClose","BlockSettingsMenuControls","props","document"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { compact, map } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tcreateSlotFill,\n\tMenuGroup,\n\t__experimentalStyleProvider as StyleProvider,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport {\n\tuseConvertToGroupButtonProps,\n\tConvertToGroupButton,\n} from '../convert-to-group-buttons';\nimport { BlockLockMenuItem, useBlockLock } from '../block-lock';\nimport { store as blockEditorStore } from '../../store';\n\nconst { Fill, Slot } = createSlotFill( 'BlockSettingsMenuControls' );\n\nconst BlockSettingsMenuControlsSlot = ( { fillProps, clientIds = null } ) => {\n\tconst { selectedBlocks, selectedClientIds, canRemove } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlocksByClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\tcanRemoveBlocks,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst ids =\n\t\t\t\tclientIds !== null ? clientIds : getSelectedBlockClientIds();\n\t\t\treturn {\n\t\t\t\tselectedBlocks: map(\n\t\t\t\t\tcompact( getBlocksByClientId( ids ) ),\n\t\t\t\t\t( block ) => block.name\n\t\t\t\t),\n\t\t\t\tselectedClientIds: ids,\n\t\t\t\tcanRemove: canRemoveBlocks( ids ),\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tconst { canLock } = useBlockLock( selectedClientIds[ 0 ] );\n\tconst showLockButton = selectedClientIds.length === 1 && canLock;\n\n\t// Check if current selection of blocks is Groupable or Ungroupable\n\t// and pass this props down to ConvertToGroupButton.\n\tconst convertToGroupButtonProps = useConvertToGroupButtonProps();\n\tconst { isGroupable, isUngroupable } = convertToGroupButtonProps;\n\tconst showConvertToGroupButton =\n\t\t( isGroupable || isUngroupable ) && canRemove;\n\n\treturn (\n\t\t<Slot fillProps={ { ...fillProps, selectedBlocks, selectedClientIds } }>\n\t\t\t{ ( fills ) => {\n\t\t\t\tif (\n\t\t\t\t\t! fills?.length > 0 &&\n\t\t\t\t\t! showConvertToGroupButton &&\n\t\t\t\t\t! showLockButton\n\t\t\t\t) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t{ showLockButton && (\n\t\t\t\t\t\t\t<BlockLockMenuItem\n\t\t\t\t\t\t\t\tclientId={ selectedClientIds[ 0 ] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ fills }\n\t\t\t\t\t\t{ showConvertToGroupButton && (\n\t\t\t\t\t\t\t<ConvertToGroupButton\n\t\t\t\t\t\t\t\t{ ...convertToGroupButtonProps }\n\t\t\t\t\t\t\t\tonClose={ fillProps?.onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t);\n\t\t\t} }\n\t\t</Slot>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-settings-menu-controls/README.md\n *\n * @param {Object} props Fill props.\n * @return {WPElement} Element.\n */\nfunction BlockSettingsMenuControls( { ...props } ) {\n\treturn (\n\t\t<StyleProvider document={ document }>\n\t\t\t<Fill { ...props } />\n\t\t</StyleProvider>\n\t);\n}\n\nBlockSettingsMenuControls.Slot = BlockSettingsMenuControlsSlot;\n\nexport default BlockSettingsMenuControls;\n"]}
@@ -3,7 +3,7 @@ import { createElement } from "@wordpress/element";
3
3
  /**
4
4
  * External dependencies
5
5
  */
6
- import { noop, debounce } from 'lodash';
6
+ import { debounce } from 'lodash';
7
7
  import classnames from 'classnames';
8
8
  /**
9
9
  * WordPress dependencies
@@ -42,7 +42,10 @@ function BlockStylesPreviewPanelFill(_ref2) {
42
42
  // The value is the equivalent of the container's right position.
43
43
 
44
44
 
45
- const DEFAULT_POSITION_TOP = 16; // Block Styles component for the Settings Sidebar.
45
+ const DEFAULT_POSITION_TOP = 16;
46
+
47
+ const noop = () => {}; // Block Styles component for the Settings Sidebar.
48
+
46
49
 
47
50
  function BlockStyles(_ref3) {
48
51
  let {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-styles/index.js"],"names":["noop","debounce","classnames","useState","useLayoutEffect","useViewportMatch","Button","__experimentalText","Text","Slot","Fill","BlockStylesPreviewPanel","useStylesForBlocks","BlockStylesPreviewPanelSlot","scope","BlockStylesPreviewPanelFill","children","props","DEFAULT_POSITION_TOP","BlockStyles","clientId","onSwitch","onHoverClassName","onSelect","stylesToRender","activeStyle","genericPreviewBlock","className","previewClassName","hoveredStyle","setHoveredStyle","containerScrollTop","setContainerScrollTop","isMobileViewport","scrollContainer","document","querySelector","scrollTop","length","debouncedSetHoveredStyle","onSelectStylePreview","style","cancel","styleItemHandler","item","name","map","buttonText","label","top"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { noop, debounce } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useLayoutEffect } from '@wordpress/element';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tButton,\n\t__experimentalText as Text,\n\tSlot,\n\tFill,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockStylesPreviewPanel from './preview-panel';\nimport useStylesForBlocks from './use-styles-for-block';\n\nfunction BlockStylesPreviewPanelSlot( { scope } ) {\n\treturn <Slot name={ `BlockStylesPreviewPanel/${ scope }` } />;\n}\n\nfunction BlockStylesPreviewPanelFill( { children, scope, ...props } ) {\n\treturn (\n\t\t<Fill name={ `BlockStylesPreviewPanel/${ scope }` }>\n\t\t\t<div { ...props }>{ children }</div>\n\t\t</Fill>\n\t);\n}\n\n// Top position (in px) of the Block Styles container\n// relative to the editor pane.\n// The value is the equivalent of the container's right position.\nconst DEFAULT_POSITION_TOP = 16;\n\n// Block Styles component for the Settings Sidebar.\nfunction BlockStyles( {\n\tclientId,\n\tonSwitch = noop,\n\tonHoverClassName = noop,\n\tscope,\n} ) {\n\tconst {\n\t\tonSelect,\n\t\tstylesToRender,\n\t\tactiveStyle,\n\t\tgenericPreviewBlock,\n\t\tclassName: previewClassName,\n\t} = useStylesForBlocks( {\n\t\tclientId,\n\t\tonSwitch,\n\t} );\n\tconst [ hoveredStyle, setHoveredStyle ] = useState( null );\n\tconst [ containerScrollTop, setContainerScrollTop ] = useState( 0 );\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\n\tuseLayoutEffect( () => {\n\t\tconst scrollContainer = document.querySelector(\n\t\t\t'.interface-interface-skeleton__content'\n\t\t);\n\t\tconst scrollTop = scrollContainer?.scrollTop || 0;\n\t\tsetContainerScrollTop( scrollTop + DEFAULT_POSITION_TOP );\n\t}, [ hoveredStyle ] );\n\n\tif ( ! stylesToRender || stylesToRender.length === 0 ) {\n\t\treturn null;\n\t}\n\n\tconst debouncedSetHoveredStyle = debounce( setHoveredStyle, 250 );\n\n\tconst onSelectStylePreview = ( style ) => {\n\t\tonSelect( style );\n\t\tonHoverClassName( null );\n\t\tsetHoveredStyle( null );\n\t\tdebouncedSetHoveredStyle.cancel();\n\t};\n\n\tconst styleItemHandler = ( item ) => {\n\t\tif ( hoveredStyle === item ) {\n\t\t\tdebouncedSetHoveredStyle.cancel();\n\t\t\treturn;\n\t\t}\n\t\tdebouncedSetHoveredStyle( item );\n\t\tonHoverClassName( item?.name ?? null );\n\t};\n\n\treturn (\n\t\t<div className=\"block-editor-block-styles\">\n\t\t\t<div className=\"block-editor-block-styles__variants\">\n\t\t\t\t{ stylesToRender.map( ( style ) => {\n\t\t\t\t\tconst buttonText = style.label || style.name;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t'block-editor-block-styles__item',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t'is-active':\n\t\t\t\t\t\t\t\t\t\tactiveStyle.name === style.name,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tkey={ style.name }\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tlabel={ buttonText }\n\t\t\t\t\t\t\tonMouseEnter={ () => styleItemHandler( style ) }\n\t\t\t\t\t\t\tonFocus={ () => styleItemHandler( style ) }\n\t\t\t\t\t\t\tonMouseLeave={ () => styleItemHandler( null ) }\n\t\t\t\t\t\t\tonBlur={ () => styleItemHandler( null ) }\n\t\t\t\t\t\t\tonClick={ () => onSelectStylePreview( style ) }\n\t\t\t\t\t\t\taria-current={ activeStyle.name === style.name }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tlimit={ 12 }\n\t\t\t\t\t\t\t\tellipsizeMode=\"tail\"\n\t\t\t\t\t\t\t\tclassName=\"block-editor-block-styles__item-text\"\n\t\t\t\t\t\t\t\ttruncate\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ buttonText }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</div>\n\t\t\t{ hoveredStyle && ! isMobileViewport && (\n\t\t\t\t<BlockStylesPreviewPanelFill\n\t\t\t\t\tscope={ scope }\n\t\t\t\t\tclassName=\"block-editor-block-styles__preview-panel\"\n\t\t\t\t\tstyle={ { top: containerScrollTop } }\n\t\t\t\t\tonMouseLeave={ () => styleItemHandler( null ) }\n\t\t\t\t>\n\t\t\t\t\t<BlockStylesPreviewPanel\n\t\t\t\t\t\tactiveStyle={ activeStyle }\n\t\t\t\t\t\tclassName={ previewClassName }\n\t\t\t\t\t\tgenericPreviewBlock={ genericPreviewBlock }\n\t\t\t\t\t\tstyle={ hoveredStyle }\n\t\t\t\t\t/>\n\t\t\t\t</BlockStylesPreviewPanelFill>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nBlockStyles.Slot = BlockStylesPreviewPanelSlot;\nexport default BlockStyles;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-styles/index.js"],"names":["debounce","classnames","useState","useLayoutEffect","useViewportMatch","Button","__experimentalText","Text","Slot","Fill","BlockStylesPreviewPanel","useStylesForBlocks","BlockStylesPreviewPanelSlot","scope","BlockStylesPreviewPanelFill","children","props","DEFAULT_POSITION_TOP","noop","BlockStyles","clientId","onSwitch","onHoverClassName","onSelect","stylesToRender","activeStyle","genericPreviewBlock","className","previewClassName","hoveredStyle","setHoveredStyle","containerScrollTop","setContainerScrollTop","isMobileViewport","scrollContainer","document","querySelector","scrollTop","length","debouncedSetHoveredStyle","onSelectStylePreview","style","cancel","styleItemHandler","item","name","map","buttonText","label","top"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { debounce } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useLayoutEffect } from '@wordpress/element';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tButton,\n\t__experimentalText as Text,\n\tSlot,\n\tFill,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockStylesPreviewPanel from './preview-panel';\nimport useStylesForBlocks from './use-styles-for-block';\n\nfunction BlockStylesPreviewPanelSlot( { scope } ) {\n\treturn <Slot name={ `BlockStylesPreviewPanel/${ scope }` } />;\n}\n\nfunction BlockStylesPreviewPanelFill( { children, scope, ...props } ) {\n\treturn (\n\t\t<Fill name={ `BlockStylesPreviewPanel/${ scope }` }>\n\t\t\t<div { ...props }>{ children }</div>\n\t\t</Fill>\n\t);\n}\n\n// Top position (in px) of the Block Styles container\n// relative to the editor pane.\n// The value is the equivalent of the container's right position.\nconst DEFAULT_POSITION_TOP = 16;\n\nconst noop = () => {};\n\n// Block Styles component for the Settings Sidebar.\nfunction BlockStyles( {\n\tclientId,\n\tonSwitch = noop,\n\tonHoverClassName = noop,\n\tscope,\n} ) {\n\tconst {\n\t\tonSelect,\n\t\tstylesToRender,\n\t\tactiveStyle,\n\t\tgenericPreviewBlock,\n\t\tclassName: previewClassName,\n\t} = useStylesForBlocks( {\n\t\tclientId,\n\t\tonSwitch,\n\t} );\n\tconst [ hoveredStyle, setHoveredStyle ] = useState( null );\n\tconst [ containerScrollTop, setContainerScrollTop ] = useState( 0 );\n\tconst isMobileViewport = useViewportMatch( 'medium', '<' );\n\n\tuseLayoutEffect( () => {\n\t\tconst scrollContainer = document.querySelector(\n\t\t\t'.interface-interface-skeleton__content'\n\t\t);\n\t\tconst scrollTop = scrollContainer?.scrollTop || 0;\n\t\tsetContainerScrollTop( scrollTop + DEFAULT_POSITION_TOP );\n\t}, [ hoveredStyle ] );\n\n\tif ( ! stylesToRender || stylesToRender.length === 0 ) {\n\t\treturn null;\n\t}\n\n\tconst debouncedSetHoveredStyle = debounce( setHoveredStyle, 250 );\n\n\tconst onSelectStylePreview = ( style ) => {\n\t\tonSelect( style );\n\t\tonHoverClassName( null );\n\t\tsetHoveredStyle( null );\n\t\tdebouncedSetHoveredStyle.cancel();\n\t};\n\n\tconst styleItemHandler = ( item ) => {\n\t\tif ( hoveredStyle === item ) {\n\t\t\tdebouncedSetHoveredStyle.cancel();\n\t\t\treturn;\n\t\t}\n\t\tdebouncedSetHoveredStyle( item );\n\t\tonHoverClassName( item?.name ?? null );\n\t};\n\n\treturn (\n\t\t<div className=\"block-editor-block-styles\">\n\t\t\t<div className=\"block-editor-block-styles__variants\">\n\t\t\t\t{ stylesToRender.map( ( style ) => {\n\t\t\t\t\tconst buttonText = style.label || style.name;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t'block-editor-block-styles__item',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t'is-active':\n\t\t\t\t\t\t\t\t\t\tactiveStyle.name === style.name,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tkey={ style.name }\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tlabel={ buttonText }\n\t\t\t\t\t\t\tonMouseEnter={ () => styleItemHandler( style ) }\n\t\t\t\t\t\t\tonFocus={ () => styleItemHandler( style ) }\n\t\t\t\t\t\t\tonMouseLeave={ () => styleItemHandler( null ) }\n\t\t\t\t\t\t\tonBlur={ () => styleItemHandler( null ) }\n\t\t\t\t\t\t\tonClick={ () => onSelectStylePreview( style ) }\n\t\t\t\t\t\t\taria-current={ activeStyle.name === style.name }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\tlimit={ 12 }\n\t\t\t\t\t\t\t\tellipsizeMode=\"tail\"\n\t\t\t\t\t\t\t\tclassName=\"block-editor-block-styles__item-text\"\n\t\t\t\t\t\t\t\ttruncate\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ buttonText }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</div>\n\t\t\t{ hoveredStyle && ! isMobileViewport && (\n\t\t\t\t<BlockStylesPreviewPanelFill\n\t\t\t\t\tscope={ scope }\n\t\t\t\t\tclassName=\"block-editor-block-styles__preview-panel\"\n\t\t\t\t\tstyle={ { top: containerScrollTop } }\n\t\t\t\t\tonMouseLeave={ () => styleItemHandler( null ) }\n\t\t\t\t>\n\t\t\t\t\t<BlockStylesPreviewPanel\n\t\t\t\t\t\tactiveStyle={ activeStyle }\n\t\t\t\t\t\tclassName={ previewClassName }\n\t\t\t\t\t\tgenericPreviewBlock={ genericPreviewBlock }\n\t\t\t\t\t\tstyle={ hoveredStyle }\n\t\t\t\t\t/>\n\t\t\t\t</BlockStylesPreviewPanelFill>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nBlockStyles.Slot = BlockStylesPreviewPanelSlot;\nexport default BlockStyles;\n"]}
@@ -1,13 +1,8 @@
1
1
  import { createElement, Fragment } from "@wordpress/element";
2
2
 
3
- /**
4
- * External dependencies
5
- */
6
- import { noop } from 'lodash';
7
3
  /**
8
4
  * WordPress dependencies
9
5
  */
10
-
11
6
  import { MenuItem, __experimentalText as Text } from '@wordpress/components';
12
7
  import { check } from '@wordpress/icons';
13
8
  /**
@@ -15,6 +10,9 @@ import { check } from '@wordpress/icons';
15
10
  */
16
11
 
17
12
  import useStylesForBlocks from './use-styles-for-block';
13
+
14
+ const noop = () => {};
15
+
18
16
  export default function BlockStylesMenuItems(_ref) {
19
17
  let {
20
18
  clientId,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-styles/menu-items.js"],"names":["noop","MenuItem","__experimentalText","Text","check","useStylesForBlocks","BlockStylesMenuItems","clientId","onSwitch","onSelect","stylesToRender","activeStyle","length","map","style","menuItemText","label","name"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,IAAT,QAAqB,QAArB;AAEA;AACA;AACA;;AACA,SAASC,QAAT,EAAmBC,kBAAkB,IAAIC,IAAzC,QAAqD,uBAArD;AACA,SAASC,KAAT,QAAsB,kBAAtB;AAEA;AACA;AACA;;AACA,OAAOC,kBAAP,MAA+B,wBAA/B;AAEA,eAAe,SAASC,oBAAT,OAA+D;AAAA,MAAhC;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,QAAQ,GAAGR;AAAvB,GAAgC;AAC7E,QAAM;AAAES,IAAAA,QAAF;AAAYC,IAAAA,cAAZ;AAA4BC,IAAAA;AAA5B,MAA4CN,kBAAkB,CAAE;AACrEE,IAAAA,QADqE;AAErEC,IAAAA;AAFqE,GAAF,CAApE;;AAKA,MAAK,CAAEE,cAAF,IAAoBA,cAAc,CAACE,MAAf,KAA0B,CAAnD,EAAuD;AACtD,WAAO,IAAP;AACA;;AACD,SACC,8BACGF,cAAc,CAACG,GAAf,CAAsBC,KAAF,IAAa;AAClC,UAAMC,YAAY,GAAGD,KAAK,CAACE,KAAN,IAAeF,KAAK,CAACG,IAA1C;AACA,WACC,cAAC,QAAD;AACC,MAAA,GAAG,EAAGH,KAAK,CAACG,IADb;AAEC,MAAA,IAAI,EAAGN,WAAW,CAACM,IAAZ,KAAqBH,KAAK,CAACG,IAA3B,GAAkCb,KAAlC,GAA0C,IAFlD;AAGC,MAAA,OAAO,EAAG,MAAMK,QAAQ,CAAEK,KAAF;AAHzB,OAKC,cAAC,IAAD;AACC,MAAA,EAAE,EAAC,MADJ;AAEC,MAAA,KAAK,EAAG,EAFT;AAGC,MAAA,aAAa,EAAC,MAHf;AAIC,MAAA,QAAQ;AAJT,OAMGC,YANH,CALD,CADD;AAgBA,GAlBC,CADH,CADD;AAuBA","sourcesContent":["/**\n * External dependencies\n */\nimport { noop } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { MenuItem, __experimentalText as Text } from '@wordpress/components';\nimport { check } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport useStylesForBlocks from './use-styles-for-block';\n\nexport default function BlockStylesMenuItems( { clientId, onSwitch = noop } ) {\n\tconst { onSelect, stylesToRender, activeStyle } = useStylesForBlocks( {\n\t\tclientId,\n\t\tonSwitch,\n\t} );\n\n\tif ( ! stylesToRender || stylesToRender.length === 0 ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<>\n\t\t\t{ stylesToRender.map( ( style ) => {\n\t\t\t\tconst menuItemText = style.label || style.name;\n\t\t\t\treturn (\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tkey={ style.name }\n\t\t\t\t\t\ticon={ activeStyle.name === style.name ? check : null }\n\t\t\t\t\t\tonClick={ () => onSelect( style ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\tlimit={ 18 }\n\t\t\t\t\t\t\tellipsizeMode=\"tail\"\n\t\t\t\t\t\t\ttruncate\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ menuItemText }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</MenuItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-styles/menu-items.js"],"names":["MenuItem","__experimentalText","Text","check","useStylesForBlocks","noop","BlockStylesMenuItems","clientId","onSwitch","onSelect","stylesToRender","activeStyle","length","map","style","menuItemText","label","name"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,QAAT,EAAmBC,kBAAkB,IAAIC,IAAzC,QAAqD,uBAArD;AACA,SAASC,KAAT,QAAsB,kBAAtB;AAEA;AACA;AACA;;AACA,OAAOC,kBAAP,MAA+B,wBAA/B;;AAEA,MAAMC,IAAI,GAAG,MAAM,CAAE,CAArB;;AAEA,eAAe,SAASC,oBAAT,OAA+D;AAAA,MAAhC;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,QAAQ,GAAGH;AAAvB,GAAgC;AAC7E,QAAM;AAAEI,IAAAA,QAAF;AAAYC,IAAAA,cAAZ;AAA4BC,IAAAA;AAA5B,MAA4CP,kBAAkB,CAAE;AACrEG,IAAAA,QADqE;AAErEC,IAAAA;AAFqE,GAAF,CAApE;;AAKA,MAAK,CAAEE,cAAF,IAAoBA,cAAc,CAACE,MAAf,KAA0B,CAAnD,EAAuD;AACtD,WAAO,IAAP;AACA;;AACD,SACC,8BACGF,cAAc,CAACG,GAAf,CAAsBC,KAAF,IAAa;AAClC,UAAMC,YAAY,GAAGD,KAAK,CAACE,KAAN,IAAeF,KAAK,CAACG,IAA1C;AACA,WACC,cAAC,QAAD;AACC,MAAA,GAAG,EAAGH,KAAK,CAACG,IADb;AAEC,MAAA,IAAI,EAAGN,WAAW,CAACM,IAAZ,KAAqBH,KAAK,CAACG,IAA3B,GAAkCd,KAAlC,GAA0C,IAFlD;AAGC,MAAA,OAAO,EAAG,MAAMM,QAAQ,CAAEK,KAAF;AAHzB,OAKC,cAAC,IAAD;AACC,MAAA,EAAE,EAAC,MADJ;AAEC,MAAA,KAAK,EAAG,EAFT;AAGC,MAAA,aAAa,EAAC,MAHf;AAIC,MAAA,QAAQ;AAJT,OAMGC,YANH,CALD,CADD;AAgBA,GAlBC,CADH,CADD;AAuBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem, __experimentalText as Text } from '@wordpress/components';\nimport { check } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport useStylesForBlocks from './use-styles-for-block';\n\nconst noop = () => {};\n\nexport default function BlockStylesMenuItems( { clientId, onSwitch = noop } ) {\n\tconst { onSelect, stylesToRender, activeStyle } = useStylesForBlocks( {\n\t\tclientId,\n\t\tonSwitch,\n\t} );\n\n\tif ( ! stylesToRender || stylesToRender.length === 0 ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<>\n\t\t\t{ stylesToRender.map( ( style ) => {\n\t\t\t\tconst menuItemText = style.label || style.name;\n\t\t\t\treturn (\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tkey={ style.name }\n\t\t\t\t\t\ticon={ activeStyle.name === style.name ? check : null }\n\t\t\t\t\t\tonClick={ () => onSelect( style ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Text\n\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\tlimit={ 18 }\n\t\t\t\t\t\t\tellipsizeMode=\"tail\"\n\t\t\t\t\t\t\ttruncate\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ menuItemText }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</MenuItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-switcher/block-transformations-menu.js"],"names":["__","MenuGroup","MenuItem","getBlockMenuDefaultClassName","switchToBlockType","useState","BlockIcon","PreviewBlockPopover","BlockTransformationsMenu","className","possibleBlockTransformations","onSelect","blocks","hoveredTransformItemName","setHoveredTransformItemName","map","item","name","icon","title","isDisabled","event","preventDefault"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,SAAT,EAAoBC,QAApB,QAAoC,uBAApC;AACA,SACCC,4BADD,EAECC,iBAFD,QAGO,mBAHP;AAIA,SAASC,QAAT,QAAyB,oBAAzB;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,eAAtB;AACA,OAAOC,mBAAP,MAAgC,yBAAhC;;AAEA,MAAMC,wBAAwB,GAAG,QAK1B;AAAA,MAL4B;AAClCC,IAAAA,SADkC;AAElCC,IAAAA,4BAFkC;AAGlCC,IAAAA,QAHkC;AAIlCC,IAAAA;AAJkC,GAK5B;AACN,QAAM,CACLC,wBADK,EAELC,2BAFK,IAGFT,QAAQ,EAHZ;AAIA,SACC,cAAC,SAAD;AAAW,IAAA,KAAK,EAAGL,EAAE,CAAE,cAAF,CAArB;AAA0C,IAAA,SAAS,EAAGS;AAAtD,KACGI,wBAAwB,IACzB,cAAC,mBAAD;AACC,IAAA,MAAM,EAAGT,iBAAiB,CACzBQ,MADyB,EAEzBC,wBAFyB;AAD3B,IAFF,EASGH,4BAA4B,CAACK,GAA7B,CAAoCC,IAAF,IAAY;AAC/C,UAAM;AAAEC,MAAAA,IAAF;AAAQC,MAAAA,IAAR;AAAcC,MAAAA,KAAd;AAAqBC,MAAAA;AAArB,QAAoCJ,IAA1C;AACA,WACC,cAAC,QAAD;AACC,MAAA,GAAG,EAAGC,IADP;AAEC,MAAA,SAAS,EAAGd,4BAA4B,CAAEc,IAAF,CAFzC;AAGC,MAAA,OAAO,EAAKI,KAAF,IAAa;AACtBA,QAAAA,KAAK,CAACC,cAAN;AACAX,QAAAA,QAAQ,CAAEM,IAAF,CAAR;AACA,OANF;AAOC,MAAA,QAAQ,EAAGG,UAPZ;AAQC,MAAA,YAAY,EAAG,MACdN,2BAA2B,CAAE,IAAF,CAT7B;AAWC,MAAA,YAAY,EAAG,MACdA,2BAA2B,CAAEG,IAAF;AAZ7B,OAeC,cAAC,SAAD;AAAW,MAAA,IAAI,EAAGC,IAAlB;AAAyB,MAAA,UAAU;AAAnC,MAfD,EAgBGC,KAhBH,CADD;AAoBA,GAtBC,CATH,CADD;AAmCA,CA7CD;;AA+CA,eAAeX,wBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { MenuGroup, MenuItem } from '@wordpress/components';\nimport {\n\tgetBlockMenuDefaultClassName,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport PreviewBlockPopover from './preview-block-popover';\n\nconst BlockTransformationsMenu = ( {\n\tclassName,\n\tpossibleBlockTransformations,\n\tonSelect,\n\tblocks,\n} ) => {\n\tconst [\n\t\thoveredTransformItemName,\n\t\tsetHoveredTransformItemName,\n\t] = useState();\n\treturn (\n\t\t<MenuGroup label={ __( 'Transform to' ) } className={ className }>\n\t\t\t{ hoveredTransformItemName && (\n\t\t\t\t<PreviewBlockPopover\n\t\t\t\t\tblocks={ switchToBlockType(\n\t\t\t\t\t\tblocks,\n\t\t\t\t\t\thoveredTransformItemName\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ possibleBlockTransformations.map( ( item ) => {\n\t\t\t\tconst { name, icon, title, isDisabled } = item;\n\t\t\t\treturn (\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tkey={ name }\n\t\t\t\t\t\tclassName={ getBlockMenuDefaultClassName( name ) }\n\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tonSelect( name );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tdisabled={ isDisabled }\n\t\t\t\t\t\tonMouseLeave={ () =>\n\t\t\t\t\t\t\tsetHoveredTransformItemName( null )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonMouseEnter={ () =>\n\t\t\t\t\t\t\tsetHoveredTransformItemName( name )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockIcon icon={ icon } showColors />\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</MenuGroup>\n\t);\n};\n\nexport default BlockTransformationsMenu;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-switcher/block-transformations-menu.js"],"names":["__","MenuGroup","MenuItem","getBlockMenuDefaultClassName","switchToBlockType","useState","BlockIcon","PreviewBlockPopover","BlockTransformationsMenu","className","possibleBlockTransformations","onSelect","blocks","hoveredTransformItemName","setHoveredTransformItemName","map","item","name","icon","title","isDisabled","event","preventDefault"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,SAAT,EAAoBC,QAApB,QAAoC,uBAApC;AACA,SACCC,4BADD,EAECC,iBAFD,QAGO,mBAHP;AAIA,SAASC,QAAT,QAAyB,oBAAzB;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,eAAtB;AACA,OAAOC,mBAAP,MAAgC,yBAAhC;;AAEA,MAAMC,wBAAwB,GAAG,QAK1B;AAAA,MAL4B;AAClCC,IAAAA,SADkC;AAElCC,IAAAA,4BAFkC;AAGlCC,IAAAA,QAHkC;AAIlCC,IAAAA;AAJkC,GAK5B;AACN,QAAM,CAAEC,wBAAF,EAA4BC,2BAA5B,IACLT,QAAQ,EADT;AAEA,SACC,cAAC,SAAD;AAAW,IAAA,KAAK,EAAGL,EAAE,CAAE,cAAF,CAArB;AAA0C,IAAA,SAAS,EAAGS;AAAtD,KACGI,wBAAwB,IACzB,cAAC,mBAAD;AACC,IAAA,MAAM,EAAGT,iBAAiB,CACzBQ,MADyB,EAEzBC,wBAFyB;AAD3B,IAFF,EASGH,4BAA4B,CAACK,GAA7B,CAAoCC,IAAF,IAAY;AAC/C,UAAM;AAAEC,MAAAA,IAAF;AAAQC,MAAAA,IAAR;AAAcC,MAAAA,KAAd;AAAqBC,MAAAA;AAArB,QAAoCJ,IAA1C;AACA,WACC,cAAC,QAAD;AACC,MAAA,GAAG,EAAGC,IADP;AAEC,MAAA,SAAS,EAAGd,4BAA4B,CAAEc,IAAF,CAFzC;AAGC,MAAA,OAAO,EAAKI,KAAF,IAAa;AACtBA,QAAAA,KAAK,CAACC,cAAN;AACAX,QAAAA,QAAQ,CAAEM,IAAF,CAAR;AACA,OANF;AAOC,MAAA,QAAQ,EAAGG,UAPZ;AAQC,MAAA,YAAY,EAAG,MACdN,2BAA2B,CAAE,IAAF,CAT7B;AAWC,MAAA,YAAY,EAAG,MACdA,2BAA2B,CAAEG,IAAF;AAZ7B,OAeC,cAAC,SAAD;AAAW,MAAA,IAAI,EAAGC,IAAlB;AAAyB,MAAA,UAAU;AAAnC,MAfD,EAgBGC,KAhBH,CADD;AAoBA,GAtBC,CATH,CADD;AAmCA,CA3CD;;AA6CA,eAAeX,wBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { MenuGroup, MenuItem } from '@wordpress/components';\nimport {\n\tgetBlockMenuDefaultClassName,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport PreviewBlockPopover from './preview-block-popover';\n\nconst BlockTransformationsMenu = ( {\n\tclassName,\n\tpossibleBlockTransformations,\n\tonSelect,\n\tblocks,\n} ) => {\n\tconst [ hoveredTransformItemName, setHoveredTransformItemName ] =\n\t\tuseState();\n\treturn (\n\t\t<MenuGroup label={ __( 'Transform to' ) } className={ className }>\n\t\t\t{ hoveredTransformItemName && (\n\t\t\t\t<PreviewBlockPopover\n\t\t\t\t\tblocks={ switchToBlockType(\n\t\t\t\t\t\tblocks,\n\t\t\t\t\t\thoveredTransformItemName\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ possibleBlockTransformations.map( ( item ) => {\n\t\t\t\tconst { name, icon, title, isDisabled } = item;\n\t\t\t\treturn (\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tkey={ name }\n\t\t\t\t\t\tclassName={ getBlockMenuDefaultClassName( name ) }\n\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tonSelect( name );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tdisabled={ isDisabled }\n\t\t\t\t\t\tonMouseLeave={ () =>\n\t\t\t\t\t\t\tsetHoveredTransformItemName( null )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonMouseEnter={ () =>\n\t\t\t\t\t\t\tsetHoveredTransformItemName( name )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockIcon icon={ icon } showColors />\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</MenuGroup>\n\t);\n};\n\nexport default BlockTransformationsMenu;\n"]}
@@ -1,11 +1,6 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { truncate } from 'lodash';
5
1
  /**
6
2
  * WordPress dependencies
7
3
  */
8
-
9
4
  import { useSelect } from '@wordpress/data';
10
5
  import { getBlockType, __experimentalGetBlockLabel as getBlockLabel, isReusableBlock } from '@wordpress/blocks';
11
6
  /**
@@ -71,10 +66,9 @@ export default function useBlockDisplayTitle(clientId, maximumLength) {
71
66
 
72
67
  const blockTitle = label && label !== blockType.title ? label : blockInformation.title;
73
68
 
74
- if (maximumLength && maximumLength > 0) {
75
- return truncate(blockTitle, {
76
- length: maximumLength
77
- });
69
+ if (maximumLength && maximumLength > 0 && blockTitle.length > maximumLength) {
70
+ const omission = '...';
71
+ return blockTitle.slice(0, maximumLength - omission.length) + omission;
78
72
  }
79
73
 
80
74
  return blockTitle;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-title/use-block-display-title.js"],"names":["truncate","useSelect","getBlockType","__experimentalGetBlockLabel","getBlockLabel","isReusableBlock","useBlockDisplayInformation","store","blockEditorStore","useBlockDisplayTitle","clientId","maximumLength","attributes","name","reusableBlockTitle","select","getBlockName","getBlockAttributes","__experimentalGetReusableBlockTitle","blockName","isReusable","ref","blockInformation","blockType","blockLabel","label","blockTitle","title","length"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,QAAT,QAAyB,QAAzB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SACCC,YADD,EAECC,2BAA2B,IAAIC,aAFhC,EAGCC,eAHD,QAIO,mBAJP;AAMA;AACA;AACA;;AACA,OAAOC,0BAAP,MAAuC,kCAAvC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAe,SAASC,oBAAT,CAA+BC,QAA/B,EAAyCC,aAAzC,EAAyD;AACvE,QAAM;AAAEC,IAAAA,UAAF;AAAcC,IAAAA,IAAd;AAAoBC,IAAAA;AAApB,MAA2Cb,SAAS,CACvDc,MAAF,IAAc;AACb,QAAK,CAAEL,QAAP,EAAkB;AACjB,aAAO,EAAP;AACA;;AACD,UAAM;AACLM,MAAAA,YADK;AAELC,MAAAA,kBAFK;AAGLC,MAAAA;AAHK,QAIFH,MAAM,CAAEP,gBAAF,CAJV;AAKA,UAAMW,SAAS,GAAGH,YAAY,CAAEN,QAAF,CAA9B;;AACA,QAAK,CAAES,SAAP,EAAmB;AAClB,aAAO,EAAP;AACA;;AACD,UAAMC,UAAU,GAAGf,eAAe,CAAEH,YAAY,CAAEiB,SAAF,CAAd,CAAlC;AACA,WAAO;AACNP,MAAAA,UAAU,EAAEK,kBAAkB,CAAEP,QAAF,CADxB;AAENG,MAAAA,IAAI,EAAEM,SAFA;AAGNL,MAAAA,kBAAkB,EACjBM,UAAU,IACVF,mCAAmC,CAClCD,kBAAkB,CAAEP,QAAF,CAAlB,CAA+BW,GADG;AAL9B,KAAP;AASA,GAxBwD,EAyBzD,CAAEX,QAAF,CAzByD,CAA1D;AA4BA,QAAMY,gBAAgB,GAAGhB,0BAA0B,CAAEI,QAAF,CAAnD;;AACA,MAAK,CAAEG,IAAF,IAAU,CAAES,gBAAjB,EAAoC;AACnC,WAAO,IAAP;AACA;;AACD,QAAMC,SAAS,GAAGrB,YAAY,CAAEW,IAAF,CAA9B;AACA,QAAMW,UAAU,GAAGD,SAAS,GACzBnB,aAAa,CAAEmB,SAAF,EAAaX,UAAb,CADY,GAEzB,IAFH;AAIA,QAAMa,KAAK,GAAGX,kBAAkB,IAAIU,UAApC,CAtCuE,CAuCvE;AACA;AACA;;AACA,QAAME,UAAU,GACfD,KAAK,IAAIA,KAAK,KAAKF,SAAS,CAACI,KAA7B,GAAqCF,KAArC,GAA6CH,gBAAgB,CAACK,KAD/D;;AAGA,MAAKhB,aAAa,IAAIA,aAAa,GAAG,CAAtC,EAA0C;AACzC,WAAOX,QAAQ,CAAE0B,UAAF,EAAc;AAAEE,MAAAA,MAAM,EAAEjB;AAAV,KAAd,CAAf;AACA;;AAED,SAAOe,UAAP;AACA","sourcesContent":["/**\n * External dependencies\n */\nimport { truncate } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tgetBlockType,\n\t__experimentalGetBlockLabel as getBlockLabel,\n\tisReusableBlock,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Returns the block's configured title as a string, or empty if the title\n * cannot be determined.\n *\n * @example\n *\n * ```js\n * useBlockDisplayTitle( 'afd1cb17-2c08-4e7a-91be-007ba7ddc3a1', 17 );\n * ```\n *\n * @param {string} clientId Client ID of block.\n * @param {number|undefined} maximumLength The maximum length that the block title string may be before truncated.\n * @return {?string} Block title.\n */\nexport default function useBlockDisplayTitle( clientId, maximumLength ) {\n\tconst { attributes, name, reusableBlockTitle } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! clientId ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst {\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\t__experimentalGetReusableBlockTitle,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst blockName = getBlockName( clientId );\n\t\t\tif ( ! blockName ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst isReusable = isReusableBlock( getBlockType( blockName ) );\n\t\t\treturn {\n\t\t\t\tattributes: getBlockAttributes( clientId ),\n\t\t\t\tname: blockName,\n\t\t\t\treusableBlockTitle:\n\t\t\t\t\tisReusable &&\n\t\t\t\t\t__experimentalGetReusableBlockTitle(\n\t\t\t\t\t\tgetBlockAttributes( clientId ).ref\n\t\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tif ( ! name || ! blockInformation ) {\n\t\treturn null;\n\t}\n\tconst blockType = getBlockType( name );\n\tconst blockLabel = blockType\n\t\t? getBlockLabel( blockType, attributes )\n\t\t: null;\n\n\tconst label = reusableBlockTitle || blockLabel;\n\t// Label will fallback to the title if no label is defined for the current\n\t// label context. If the label is defined we prioritize it over a\n\t// possible block variation title match.\n\tconst blockTitle =\n\t\tlabel && label !== blockType.title ? label : blockInformation.title;\n\n\tif ( maximumLength && maximumLength > 0 ) {\n\t\treturn truncate( blockTitle, { length: maximumLength } );\n\t}\n\n\treturn blockTitle;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-title/use-block-display-title.js"],"names":["useSelect","getBlockType","__experimentalGetBlockLabel","getBlockLabel","isReusableBlock","useBlockDisplayInformation","store","blockEditorStore","useBlockDisplayTitle","clientId","maximumLength","attributes","name","reusableBlockTitle","select","getBlockName","getBlockAttributes","__experimentalGetReusableBlockTitle","blockName","isReusable","ref","blockInformation","blockType","blockLabel","label","blockTitle","title","length","omission","slice"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AACA,SACCC,YADD,EAECC,2BAA2B,IAAIC,aAFhC,EAGCC,eAHD,QAIO,mBAJP;AAMA;AACA;AACA;;AACA,OAAOC,0BAAP,MAAuC,kCAAvC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAe,SAASC,oBAAT,CAA+BC,QAA/B,EAAyCC,aAAzC,EAAyD;AACvE,QAAM;AAAEC,IAAAA,UAAF;AAAcC,IAAAA,IAAd;AAAoBC,IAAAA;AAApB,MAA2Cb,SAAS,CACvDc,MAAF,IAAc;AACb,QAAK,CAAEL,QAAP,EAAkB;AACjB,aAAO,EAAP;AACA;;AACD,UAAM;AACLM,MAAAA,YADK;AAELC,MAAAA,kBAFK;AAGLC,MAAAA;AAHK,QAIFH,MAAM,CAAEP,gBAAF,CAJV;AAKA,UAAMW,SAAS,GAAGH,YAAY,CAAEN,QAAF,CAA9B;;AACA,QAAK,CAAES,SAAP,EAAmB;AAClB,aAAO,EAAP;AACA;;AACD,UAAMC,UAAU,GAAGf,eAAe,CAAEH,YAAY,CAAEiB,SAAF,CAAd,CAAlC;AACA,WAAO;AACNP,MAAAA,UAAU,EAAEK,kBAAkB,CAAEP,QAAF,CADxB;AAENG,MAAAA,IAAI,EAAEM,SAFA;AAGNL,MAAAA,kBAAkB,EACjBM,UAAU,IACVF,mCAAmC,CAClCD,kBAAkB,CAAEP,QAAF,CAAlB,CAA+BW,GADG;AAL9B,KAAP;AASA,GAxBwD,EAyBzD,CAAEX,QAAF,CAzByD,CAA1D;AA4BA,QAAMY,gBAAgB,GAAGhB,0BAA0B,CAAEI,QAAF,CAAnD;;AACA,MAAK,CAAEG,IAAF,IAAU,CAAES,gBAAjB,EAAoC;AACnC,WAAO,IAAP;AACA;;AACD,QAAMC,SAAS,GAAGrB,YAAY,CAAEW,IAAF,CAA9B;AACA,QAAMW,UAAU,GAAGD,SAAS,GACzBnB,aAAa,CAAEmB,SAAF,EAAaX,UAAb,CADY,GAEzB,IAFH;AAIA,QAAMa,KAAK,GAAGX,kBAAkB,IAAIU,UAApC,CAtCuE,CAuCvE;AACA;AACA;;AACA,QAAME,UAAU,GACfD,KAAK,IAAIA,KAAK,KAAKF,SAAS,CAACI,KAA7B,GAAqCF,KAArC,GAA6CH,gBAAgB,CAACK,KAD/D;;AAGA,MACChB,aAAa,IACbA,aAAa,GAAG,CADhB,IAEAe,UAAU,CAACE,MAAX,GAAoBjB,aAHrB,EAIE;AACD,UAAMkB,QAAQ,GAAG,KAAjB;AACA,WACCH,UAAU,CAACI,KAAX,CAAkB,CAAlB,EAAqBnB,aAAa,GAAGkB,QAAQ,CAACD,MAA9C,IAAyDC,QAD1D;AAGA;;AAED,SAAOH,UAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tgetBlockType,\n\t__experimentalGetBlockLabel as getBlockLabel,\n\tisReusableBlock,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Returns the block's configured title as a string, or empty if the title\n * cannot be determined.\n *\n * @example\n *\n * ```js\n * useBlockDisplayTitle( 'afd1cb17-2c08-4e7a-91be-007ba7ddc3a1', 17 );\n * ```\n *\n * @param {string} clientId Client ID of block.\n * @param {number|undefined} maximumLength The maximum length that the block title string may be before truncated.\n * @return {?string} Block title.\n */\nexport default function useBlockDisplayTitle( clientId, maximumLength ) {\n\tconst { attributes, name, reusableBlockTitle } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! clientId ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst {\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\t__experimentalGetReusableBlockTitle,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst blockName = getBlockName( clientId );\n\t\t\tif ( ! blockName ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t\tconst isReusable = isReusableBlock( getBlockType( blockName ) );\n\t\t\treturn {\n\t\t\t\tattributes: getBlockAttributes( clientId ),\n\t\t\t\tname: blockName,\n\t\t\t\treusableBlockTitle:\n\t\t\t\t\tisReusable &&\n\t\t\t\t\t__experimentalGetReusableBlockTitle(\n\t\t\t\t\t\tgetBlockAttributes( clientId ).ref\n\t\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tif ( ! name || ! blockInformation ) {\n\t\treturn null;\n\t}\n\tconst blockType = getBlockType( name );\n\tconst blockLabel = blockType\n\t\t? getBlockLabel( blockType, attributes )\n\t\t: null;\n\n\tconst label = reusableBlockTitle || blockLabel;\n\t// Label will fallback to the title if no label is defined for the current\n\t// label context. If the label is defined we prioritize it over a\n\t// possible block variation title match.\n\tconst blockTitle =\n\t\tlabel && label !== blockType.title ? label : blockInformation.title;\n\n\tif (\n\t\tmaximumLength &&\n\t\tmaximumLength > 0 &&\n\t\tblockTitle.length > maximumLength\n\t) {\n\t\tconst omission = '...';\n\t\treturn (\n\t\t\tblockTitle.slice( 0, maximumLength - omission.length ) + omission\n\t\t);\n\t}\n\n\treturn blockTitle;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-toolbar/index.native.js"],"names":["useSelect","BlockControls","UngroupButton","store","blockEditorStore","BlockToolbar","blockClientIds","isValid","mode","select","getBlockMode","getSelectedBlockClientIds","isBlockValid","selectedBlockClientIds","length"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,OAAOC,aAAP,MAA0B,mBAA1B;AACA,OAAOC,aAAP,MAA0B,mBAA1B;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA,eAAe,SAASC,YAAT,GAAwB;AACtC,QAAM;AAAEC,IAAAA,cAAF;AAAkBC,IAAAA,OAAlB;AAA2BC,IAAAA;AAA3B,MAAoCR,SAAS,CAAIS,MAAF,IAAc;AAClE,UAAM;AACLC,MAAAA,YADK;AAELC,MAAAA,yBAFK;AAGLC,MAAAA;AAHK,QAIFH,MAAM,CAAEL,gBAAF,CAJV;AAKA,UAAMS,sBAAsB,GAAGF,yBAAyB,EAAxD;AAEA,WAAO;AACNL,MAAAA,cAAc,EAAEO,sBADV;AAENN,MAAAA,OAAO,EACNM,sBAAsB,CAACC,MAAvB,KAAkC,CAAlC,GACGF,YAAY,CAAEC,sBAAsB,CAAE,CAAF,CAAxB,CADf,GAEG,IALE;AAMNL,MAAAA,IAAI,EACHK,sBAAsB,CAACC,MAAvB,KAAkC,CAAlC,GACGJ,YAAY,CAAEG,sBAAsB,CAAE,CAAF,CAAxB,CADf,GAEG;AATE,KAAP;AAWA,GAnBkD,EAmBhD,EAnBgD,CAAnD;;AAqBA,MAAKP,cAAc,CAACQ,MAAf,KAA0B,CAA/B,EAAmC;AAClC,WAAO,IAAP;AACA;;AAED,SACC,8BACGN,IAAI,KAAK,QAAT,IAAqBD,OAArB,IACD,8BACC,cAAC,aAAD,OADD,EAEC,cAAC,aAAD,CAAe,IAAf;AAAoB,IAAA,KAAK,EAAC;AAA1B,IAFD,EAGC,cAAC,aAAD,CAAe,IAAf,OAHD,EAIC,cAAC,aAAD,CAAe,IAAf;AAAoB,IAAA,KAAK,EAAC;AAA1B,IAJD,EAKC,cAAC,aAAD,CAAe,IAAf;AAAoB,IAAA,KAAK,EAAC;AAA1B,IALD,CAFF,CADD;AAaA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport BlockControls from '../block-controls';\nimport UngroupButton from '../ungroup-button';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockToolbar() {\n\tconst { blockClientIds, isValid, mode } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockMode,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tisBlockValid,\n\t\t} = select( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\treturn {\n\t\t\tblockClientIds: selectedBlockClientIds,\n\t\t\tisValid:\n\t\t\t\tselectedBlockClientIds.length === 1\n\t\t\t\t\t? isBlockValid( selectedBlockClientIds[ 0 ] )\n\t\t\t\t\t: null,\n\t\t\tmode:\n\t\t\t\tselectedBlockClientIds.length === 1\n\t\t\t\t\t? getBlockMode( selectedBlockClientIds[ 0 ] )\n\t\t\t\t\t: null,\n\t\t};\n\t}, [] );\n\n\tif ( blockClientIds.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ mode === 'visual' && isValid && (\n\t\t\t\t<>\n\t\t\t\t\t<UngroupButton />\n\t\t\t\t\t<BlockControls.Slot group=\"block\" />\n\t\t\t\t\t<BlockControls.Slot />\n\t\t\t\t\t<BlockControls.Slot group=\"inline\" />\n\t\t\t\t\t<BlockControls.Slot group=\"other\" />\n\t\t\t\t</>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-toolbar/index.native.js"],"names":["useSelect","BlockControls","UngroupButton","store","blockEditorStore","BlockToolbar","blockClientIds","isValid","mode","select","getBlockMode","getSelectedBlockClientIds","isBlockValid","selectedBlockClientIds","length"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,OAAOC,aAAP,MAA0B,mBAA1B;AACA,OAAOC,aAAP,MAA0B,mBAA1B;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA,eAAe,SAASC,YAAT,GAAwB;AACtC,QAAM;AAAEC,IAAAA,cAAF;AAAkBC,IAAAA,OAAlB;AAA2BC,IAAAA;AAA3B,MAAoCR,SAAS,CAAIS,MAAF,IAAc;AAClE,UAAM;AAAEC,MAAAA,YAAF;AAAgBC,MAAAA,yBAAhB;AAA2CC,MAAAA;AAA3C,QACLH,MAAM,CAAEL,gBAAF,CADP;AAEA,UAAMS,sBAAsB,GAAGF,yBAAyB,EAAxD;AAEA,WAAO;AACNL,MAAAA,cAAc,EAAEO,sBADV;AAENN,MAAAA,OAAO,EACNM,sBAAsB,CAACC,MAAvB,KAAkC,CAAlC,GACGF,YAAY,CAAEC,sBAAsB,CAAE,CAAF,CAAxB,CADf,GAEG,IALE;AAMNL,MAAAA,IAAI,EACHK,sBAAsB,CAACC,MAAvB,KAAkC,CAAlC,GACGJ,YAAY,CAAEG,sBAAsB,CAAE,CAAF,CAAxB,CADf,GAEG;AATE,KAAP;AAWA,GAhBkD,EAgBhD,EAhBgD,CAAnD;;AAkBA,MAAKP,cAAc,CAACQ,MAAf,KAA0B,CAA/B,EAAmC;AAClC,WAAO,IAAP;AACA;;AAED,SACC,8BACGN,IAAI,KAAK,QAAT,IAAqBD,OAArB,IACD,8BACC,cAAC,aAAD,OADD,EAEC,cAAC,aAAD,CAAe,IAAf;AAAoB,IAAA,KAAK,EAAC;AAA1B,IAFD,EAGC,cAAC,aAAD,CAAe,IAAf,OAHD,EAIC,cAAC,aAAD,CAAe,IAAf;AAAoB,IAAA,KAAK,EAAC;AAA1B,IAJD,EAKC,cAAC,aAAD,CAAe,IAAf;AAAoB,IAAA,KAAK,EAAC;AAA1B,IALD,CAFF,CADD;AAaA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport BlockControls from '../block-controls';\nimport UngroupButton from '../ungroup-button';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockToolbar() {\n\tconst { blockClientIds, isValid, mode } = useSelect( ( select ) => {\n\t\tconst { getBlockMode, getSelectedBlockClientIds, isBlockValid } =\n\t\t\tselect( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\treturn {\n\t\t\tblockClientIds: selectedBlockClientIds,\n\t\t\tisValid:\n\t\t\t\tselectedBlockClientIds.length === 1\n\t\t\t\t\t? isBlockValid( selectedBlockClientIds[ 0 ] )\n\t\t\t\t\t: null,\n\t\t\tmode:\n\t\t\t\tselectedBlockClientIds.length === 1\n\t\t\t\t\t? getBlockMode( selectedBlockClientIds[ 0 ] )\n\t\t\t\t\t: null,\n\t\t};\n\t}, [] );\n\n\tif ( blockClientIds.length === 0 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ mode === 'visual' && isValid && (\n\t\t\t\t<>\n\t\t\t\t\t<UngroupButton />\n\t\t\t\t\t<BlockControls.Slot group=\"block\" />\n\t\t\t\t\t<BlockControls.Slot />\n\t\t\t\t\t<BlockControls.Slot group=\"inline\" />\n\t\t\t\t\t<BlockControls.Slot group=\"other\" />\n\t\t\t\t</>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
@@ -1,16 +1,14 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { noop } from 'lodash';
5
1
  /**
6
2
  * WordPress dependencies
7
3
  */
8
-
9
4
  import { useState, useRef, useEffect } from '@wordpress/element';
10
5
  const {
11
6
  clearTimeout,
12
7
  setTimeout
13
8
  } = window;
9
+
10
+ const noop = () => {};
11
+
14
12
  const DEBOUNCE_TIMEOUT = 200;
15
13
  /**
16
14
  * Hook that creates a showMover state, as well as debounced show/hide callbacks.
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-toolbar/utils.js"],"names":["noop","useState","useRef","useEffect","clearTimeout","setTimeout","window","DEBOUNCE_TIMEOUT","useDebouncedShowMovers","ref","isFocused","debounceTimeout","onChange","showMovers","setShowMovers","timeoutRef","handleOnChange","nextIsFocused","current","getIsHovered","matches","shouldHideMovers","isHovered","clearTimeoutRef","timeout","debouncedShowMovers","event","stopPropagation","debouncedHideMovers","useShowMoversGestures","setIsFocused","registerRef","isFocusedWithin","contains","ownerDocument","activeElement","node","handleOnFocus","handleOnBlur","addEventListener","removeEventListener","gestures","onMouseMove","onMouseLeave"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { noop } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useRef, useEffect } from '@wordpress/element';\n\nconst { clearTimeout, setTimeout } = window;\n\nconst DEBOUNCE_TIMEOUT = 200;\n\n/**\n * Hook that creates a showMover state, as well as debounced show/hide callbacks.\n *\n * @param {Object} props Component props.\n * @param {Object} props.ref Element reference.\n * @param {boolean} props.isFocused Whether the component has current focus.\n * @param {number} [props.debounceTimeout=250] Debounce timeout in milliseconds.\n * @param {Function} [props.onChange=noop] Callback function.\n */\nexport function useDebouncedShowMovers( {\n\tref,\n\tisFocused,\n\tdebounceTimeout = DEBOUNCE_TIMEOUT,\n\tonChange = noop,\n} ) {\n\tconst [ showMovers, setShowMovers ] = useState( false );\n\tconst timeoutRef = useRef();\n\n\tconst handleOnChange = ( nextIsFocused ) => {\n\t\tif ( ref?.current ) {\n\t\t\tsetShowMovers( nextIsFocused );\n\t\t}\n\n\t\tonChange( nextIsFocused );\n\t};\n\n\tconst getIsHovered = () => {\n\t\treturn ref?.current && ref.current.matches( ':hover' );\n\t};\n\n\tconst shouldHideMovers = () => {\n\t\tconst isHovered = getIsHovered();\n\t\treturn ! isFocused && ! isHovered;\n\t};\n\n\tconst clearTimeoutRef = () => {\n\t\tconst timeout = timeoutRef.current;\n\n\t\tif ( timeout && clearTimeout ) {\n\t\t\tclearTimeout( timeout );\n\t\t}\n\t};\n\n\tconst debouncedShowMovers = ( event ) => {\n\t\tif ( event ) {\n\t\t\tevent.stopPropagation();\n\t\t}\n\n\t\tclearTimeoutRef();\n\n\t\tif ( ! showMovers ) {\n\t\t\thandleOnChange( true );\n\t\t}\n\t};\n\n\tconst debouncedHideMovers = ( event ) => {\n\t\tif ( event ) {\n\t\t\tevent.stopPropagation();\n\t\t}\n\n\t\tclearTimeoutRef();\n\n\t\ttimeoutRef.current = setTimeout( () => {\n\t\t\tif ( shouldHideMovers() ) {\n\t\t\t\thandleOnChange( false );\n\t\t\t}\n\t\t}, debounceTimeout );\n\t};\n\n\tuseEffect(\n\t\t() => () => {\n\t\t\t/**\n\t\t\t * We need to call the change handler with `isFocused`\n\t\t\t * set to false on unmount because we also clear the\n\t\t\t * timeout that would handle that.\n\t\t\t */\n\t\t\thandleOnChange( false );\n\t\t\tclearTimeoutRef();\n\t\t},\n\t\t[]\n\t);\n\n\treturn {\n\t\tshowMovers,\n\t\tdebouncedShowMovers,\n\t\tdebouncedHideMovers,\n\t};\n}\n\n/**\n * Hook that provides a showMovers state and gesture events for DOM elements\n * that interact with the showMovers state.\n *\n * @param {Object} props Component props.\n * @param {Object} props.ref Element reference.\n * @param {number} [props.debounceTimeout=250] Debounce timeout in milliseconds.\n * @param {Function} [props.onChange=noop] Callback function.\n */\nexport function useShowMoversGestures( {\n\tref,\n\tdebounceTimeout = DEBOUNCE_TIMEOUT,\n\tonChange = noop,\n} ) {\n\tconst [ isFocused, setIsFocused ] = useState( false );\n\tconst {\n\t\tshowMovers,\n\t\tdebouncedShowMovers,\n\t\tdebouncedHideMovers,\n\t} = useDebouncedShowMovers( { ref, debounceTimeout, isFocused, onChange } );\n\n\tconst registerRef = useRef( false );\n\n\tconst isFocusedWithin = () => {\n\t\treturn (\n\t\t\tref?.current &&\n\t\t\tref.current.contains( ref.current.ownerDocument.activeElement )\n\t\t);\n\t};\n\n\tuseEffect( () => {\n\t\tconst node = ref.current;\n\n\t\tconst handleOnFocus = () => {\n\t\t\tif ( isFocusedWithin() ) {\n\t\t\t\tsetIsFocused( true );\n\t\t\t\tdebouncedShowMovers();\n\t\t\t}\n\t\t};\n\n\t\tconst handleOnBlur = () => {\n\t\t\tif ( ! isFocusedWithin() ) {\n\t\t\t\tsetIsFocused( false );\n\t\t\t\tdebouncedHideMovers();\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Events are added via DOM events (vs. React synthetic events),\n\t\t * as the child React components swallow mouse events.\n\t\t */\n\t\tif ( node && ! registerRef.current ) {\n\t\t\tnode.addEventListener( 'focus', handleOnFocus, true );\n\t\t\tnode.addEventListener( 'blur', handleOnBlur, true );\n\t\t\tregisterRef.current = true;\n\t\t}\n\n\t\treturn () => {\n\t\t\tif ( node ) {\n\t\t\t\tnode.removeEventListener( 'focus', handleOnFocus );\n\t\t\t\tnode.removeEventListener( 'blur', handleOnBlur );\n\t\t\t}\n\t\t};\n\t}, [\n\t\tref,\n\t\tregisterRef,\n\t\tsetIsFocused,\n\t\tdebouncedShowMovers,\n\t\tdebouncedHideMovers,\n\t] );\n\n\treturn {\n\t\tshowMovers,\n\t\tgestures: {\n\t\t\tonMouseMove: debouncedShowMovers,\n\t\t\tonMouseLeave: debouncedHideMovers,\n\t\t},\n\t};\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-toolbar/utils.js"],"names":["useState","useRef","useEffect","clearTimeout","setTimeout","window","noop","DEBOUNCE_TIMEOUT","useDebouncedShowMovers","ref","isFocused","debounceTimeout","onChange","showMovers","setShowMovers","timeoutRef","handleOnChange","nextIsFocused","current","getIsHovered","matches","shouldHideMovers","isHovered","clearTimeoutRef","timeout","debouncedShowMovers","event","stopPropagation","debouncedHideMovers","useShowMoversGestures","setIsFocused","registerRef","isFocusedWithin","contains","ownerDocument","activeElement","node","handleOnFocus","handleOnBlur","addEventListener","removeEventListener","gestures","onMouseMove","onMouseLeave"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,QAAT,EAAmBC,MAAnB,EAA2BC,SAA3B,QAA4C,oBAA5C;AAEA,MAAM;AAAEC,EAAAA,YAAF;AAAgBC,EAAAA;AAAhB,IAA+BC,MAArC;;AACA,MAAMC,IAAI,GAAG,MAAM,CAAE,CAArB;;AACA,MAAMC,gBAAgB,GAAG,GAAzB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,sBAAT,OAKH;AAAA,MALoC;AACvCC,IAAAA,GADuC;AAEvCC,IAAAA,SAFuC;AAGvCC,IAAAA,eAAe,GAAGJ,gBAHqB;AAIvCK,IAAAA,QAAQ,GAAGN;AAJ4B,GAKpC;AACH,QAAM,CAAEO,UAAF,EAAcC,aAAd,IAAgCd,QAAQ,CAAE,KAAF,CAA9C;AACA,QAAMe,UAAU,GAAGd,MAAM,EAAzB;;AAEA,QAAMe,cAAc,GAAKC,aAAF,IAAqB;AAC3C,QAAKR,GAAL,aAAKA,GAAL,eAAKA,GAAG,CAAES,OAAV,EAAoB;AACnBJ,MAAAA,aAAa,CAAEG,aAAF,CAAb;AACA;;AAEDL,IAAAA,QAAQ,CAAEK,aAAF,CAAR;AACA,GAND;;AAQA,QAAME,YAAY,GAAG,MAAM;AAC1B,WAAO,CAAAV,GAAG,SAAH,IAAAA,GAAG,WAAH,YAAAA,GAAG,CAAES,OAAL,KAAgBT,GAAG,CAACS,OAAJ,CAAYE,OAAZ,CAAqB,QAArB,CAAvB;AACA,GAFD;;AAIA,QAAMC,gBAAgB,GAAG,MAAM;AAC9B,UAAMC,SAAS,GAAGH,YAAY,EAA9B;AACA,WAAO,CAAET,SAAF,IAAe,CAAEY,SAAxB;AACA,GAHD;;AAKA,QAAMC,eAAe,GAAG,MAAM;AAC7B,UAAMC,OAAO,GAAGT,UAAU,CAACG,OAA3B;;AAEA,QAAKM,OAAO,IAAIrB,YAAhB,EAA+B;AAC9BA,MAAAA,YAAY,CAAEqB,OAAF,CAAZ;AACA;AACD,GAND;;AAQA,QAAMC,mBAAmB,GAAKC,KAAF,IAAa;AACxC,QAAKA,KAAL,EAAa;AACZA,MAAAA,KAAK,CAACC,eAAN;AACA;;AAEDJ,IAAAA,eAAe;;AAEf,QAAK,CAAEV,UAAP,EAAoB;AACnBG,MAAAA,cAAc,CAAE,IAAF,CAAd;AACA;AACD,GAVD;;AAYA,QAAMY,mBAAmB,GAAKF,KAAF,IAAa;AACxC,QAAKA,KAAL,EAAa;AACZA,MAAAA,KAAK,CAACC,eAAN;AACA;;AAEDJ,IAAAA,eAAe;AAEfR,IAAAA,UAAU,CAACG,OAAX,GAAqBd,UAAU,CAAE,MAAM;AACtC,UAAKiB,gBAAgB,EAArB,EAA0B;AACzBL,QAAAA,cAAc,CAAE,KAAF,CAAd;AACA;AACD,KAJ8B,EAI5BL,eAJ4B,CAA/B;AAKA,GAZD;;AAcAT,EAAAA,SAAS,CACR,MAAM,MAAM;AACX;AACH;AACA;AACA;AACA;AACGc,IAAAA,cAAc,CAAE,KAAF,CAAd;AACAO,IAAAA,eAAe;AACf,GATO,EAUR,EAVQ,CAAT;AAaA,SAAO;AACNV,IAAAA,UADM;AAENY,IAAAA,mBAFM;AAGNG,IAAAA;AAHM,GAAP;AAKA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,qBAAT,QAIH;AAAA,MAJmC;AACtCpB,IAAAA,GADsC;AAEtCE,IAAAA,eAAe,GAAGJ,gBAFoB;AAGtCK,IAAAA,QAAQ,GAAGN;AAH2B,GAInC;AACH,QAAM,CAAEI,SAAF,EAAaoB,YAAb,IAA8B9B,QAAQ,CAAE,KAAF,CAA5C;AACA,QAAM;AAAEa,IAAAA,UAAF;AAAcY,IAAAA,mBAAd;AAAmCG,IAAAA;AAAnC,MACLpB,sBAAsB,CAAE;AAAEC,IAAAA,GAAF;AAAOE,IAAAA,eAAP;AAAwBD,IAAAA,SAAxB;AAAmCE,IAAAA;AAAnC,GAAF,CADvB;AAGA,QAAMmB,WAAW,GAAG9B,MAAM,CAAE,KAAF,CAA1B;;AAEA,QAAM+B,eAAe,GAAG,MAAM;AAC7B,WACC,CAAAvB,GAAG,SAAH,IAAAA,GAAG,WAAH,YAAAA,GAAG,CAAES,OAAL,KACAT,GAAG,CAACS,OAAJ,CAAYe,QAAZ,CAAsBxB,GAAG,CAACS,OAAJ,CAAYgB,aAAZ,CAA0BC,aAAhD,CAFD;AAIA,GALD;;AAOAjC,EAAAA,SAAS,CAAE,MAAM;AAChB,UAAMkC,IAAI,GAAG3B,GAAG,CAACS,OAAjB;;AAEA,UAAMmB,aAAa,GAAG,MAAM;AAC3B,UAAKL,eAAe,EAApB,EAAyB;AACxBF,QAAAA,YAAY,CAAE,IAAF,CAAZ;AACAL,QAAAA,mBAAmB;AACnB;AACD,KALD;;AAOA,UAAMa,YAAY,GAAG,MAAM;AAC1B,UAAK,CAAEN,eAAe,EAAtB,EAA2B;AAC1BF,QAAAA,YAAY,CAAE,KAAF,CAAZ;AACAF,QAAAA,mBAAmB;AACnB;AACD,KALD;AAOA;AACF;AACA;AACA;;;AACE,QAAKQ,IAAI,IAAI,CAAEL,WAAW,CAACb,OAA3B,EAAqC;AACpCkB,MAAAA,IAAI,CAACG,gBAAL,CAAuB,OAAvB,EAAgCF,aAAhC,EAA+C,IAA/C;AACAD,MAAAA,IAAI,CAACG,gBAAL,CAAuB,MAAvB,EAA+BD,YAA/B,EAA6C,IAA7C;AACAP,MAAAA,WAAW,CAACb,OAAZ,GAAsB,IAAtB;AACA;;AAED,WAAO,MAAM;AACZ,UAAKkB,IAAL,EAAY;AACXA,QAAAA,IAAI,CAACI,mBAAL,CAA0B,OAA1B,EAAmCH,aAAnC;AACAD,QAAAA,IAAI,CAACI,mBAAL,CAA0B,MAA1B,EAAkCF,YAAlC;AACA;AACD,KALD;AAMA,GAjCQ,EAiCN,CACF7B,GADE,EAEFsB,WAFE,EAGFD,YAHE,EAIFL,mBAJE,EAKFG,mBALE,CAjCM,CAAT;AAyCA,SAAO;AACNf,IAAAA,UADM;AAEN4B,IAAAA,QAAQ,EAAE;AACTC,MAAAA,WAAW,EAAEjB,mBADJ;AAETkB,MAAAA,YAAY,EAAEf;AAFL;AAFJ,GAAP;AAOA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useRef, useEffect } from '@wordpress/element';\n\nconst { clearTimeout, setTimeout } = window;\nconst noop = () => {};\nconst DEBOUNCE_TIMEOUT = 200;\n\n/**\n * Hook that creates a showMover state, as well as debounced show/hide callbacks.\n *\n * @param {Object} props Component props.\n * @param {Object} props.ref Element reference.\n * @param {boolean} props.isFocused Whether the component has current focus.\n * @param {number} [props.debounceTimeout=250] Debounce timeout in milliseconds.\n * @param {Function} [props.onChange=noop] Callback function.\n */\nexport function useDebouncedShowMovers( {\n\tref,\n\tisFocused,\n\tdebounceTimeout = DEBOUNCE_TIMEOUT,\n\tonChange = noop,\n} ) {\n\tconst [ showMovers, setShowMovers ] = useState( false );\n\tconst timeoutRef = useRef();\n\n\tconst handleOnChange = ( nextIsFocused ) => {\n\t\tif ( ref?.current ) {\n\t\t\tsetShowMovers( nextIsFocused );\n\t\t}\n\n\t\tonChange( nextIsFocused );\n\t};\n\n\tconst getIsHovered = () => {\n\t\treturn ref?.current && ref.current.matches( ':hover' );\n\t};\n\n\tconst shouldHideMovers = () => {\n\t\tconst isHovered = getIsHovered();\n\t\treturn ! isFocused && ! isHovered;\n\t};\n\n\tconst clearTimeoutRef = () => {\n\t\tconst timeout = timeoutRef.current;\n\n\t\tif ( timeout && clearTimeout ) {\n\t\t\tclearTimeout( timeout );\n\t\t}\n\t};\n\n\tconst debouncedShowMovers = ( event ) => {\n\t\tif ( event ) {\n\t\t\tevent.stopPropagation();\n\t\t}\n\n\t\tclearTimeoutRef();\n\n\t\tif ( ! showMovers ) {\n\t\t\thandleOnChange( true );\n\t\t}\n\t};\n\n\tconst debouncedHideMovers = ( event ) => {\n\t\tif ( event ) {\n\t\t\tevent.stopPropagation();\n\t\t}\n\n\t\tclearTimeoutRef();\n\n\t\ttimeoutRef.current = setTimeout( () => {\n\t\t\tif ( shouldHideMovers() ) {\n\t\t\t\thandleOnChange( false );\n\t\t\t}\n\t\t}, debounceTimeout );\n\t};\n\n\tuseEffect(\n\t\t() => () => {\n\t\t\t/**\n\t\t\t * We need to call the change handler with `isFocused`\n\t\t\t * set to false on unmount because we also clear the\n\t\t\t * timeout that would handle that.\n\t\t\t */\n\t\t\thandleOnChange( false );\n\t\t\tclearTimeoutRef();\n\t\t},\n\t\t[]\n\t);\n\n\treturn {\n\t\tshowMovers,\n\t\tdebouncedShowMovers,\n\t\tdebouncedHideMovers,\n\t};\n}\n\n/**\n * Hook that provides a showMovers state and gesture events for DOM elements\n * that interact with the showMovers state.\n *\n * @param {Object} props Component props.\n * @param {Object} props.ref Element reference.\n * @param {number} [props.debounceTimeout=250] Debounce timeout in milliseconds.\n * @param {Function} [props.onChange=noop] Callback function.\n */\nexport function useShowMoversGestures( {\n\tref,\n\tdebounceTimeout = DEBOUNCE_TIMEOUT,\n\tonChange = noop,\n} ) {\n\tconst [ isFocused, setIsFocused ] = useState( false );\n\tconst { showMovers, debouncedShowMovers, debouncedHideMovers } =\n\t\tuseDebouncedShowMovers( { ref, debounceTimeout, isFocused, onChange } );\n\n\tconst registerRef = useRef( false );\n\n\tconst isFocusedWithin = () => {\n\t\treturn (\n\t\t\tref?.current &&\n\t\t\tref.current.contains( ref.current.ownerDocument.activeElement )\n\t\t);\n\t};\n\n\tuseEffect( () => {\n\t\tconst node = ref.current;\n\n\t\tconst handleOnFocus = () => {\n\t\t\tif ( isFocusedWithin() ) {\n\t\t\t\tsetIsFocused( true );\n\t\t\t\tdebouncedShowMovers();\n\t\t\t}\n\t\t};\n\n\t\tconst handleOnBlur = () => {\n\t\t\tif ( ! isFocusedWithin() ) {\n\t\t\t\tsetIsFocused( false );\n\t\t\t\tdebouncedHideMovers();\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t\t * Events are added via DOM events (vs. React synthetic events),\n\t\t * as the child React components swallow mouse events.\n\t\t */\n\t\tif ( node && ! registerRef.current ) {\n\t\t\tnode.addEventListener( 'focus', handleOnFocus, true );\n\t\t\tnode.addEventListener( 'blur', handleOnBlur, true );\n\t\t\tregisterRef.current = true;\n\t\t}\n\n\t\treturn () => {\n\t\t\tif ( node ) {\n\t\t\t\tnode.removeEventListener( 'focus', handleOnFocus );\n\t\t\t\tnode.removeEventListener( 'blur', handleOnBlur );\n\t\t\t}\n\t\t};\n\t}, [\n\t\tref,\n\t\tregisterRef,\n\t\tsetIsFocused,\n\t\tdebouncedShowMovers,\n\t\tdebouncedHideMovers,\n\t] );\n\n\treturn {\n\t\tshowMovers,\n\t\tgestures: {\n\t\t\tonMouseMove: debouncedShowMovers,\n\t\t\tonMouseLeave: debouncedHideMovers,\n\t\t},\n\t};\n}\n"]}