@wordpress/block-editor 7.0.2 → 8.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (801) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +45 -1
  3. package/build/components/autocomplete/index.js +1 -1
  4. package/build/components/autocomplete/index.js.map +1 -1
  5. package/build/components/block-actions/index.js +8 -4
  6. package/build/components/block-actions/index.js.map +1 -1
  7. package/build/components/block-alignment-control/ui.js +61 -14
  8. package/build/components/block-alignment-control/ui.js.map +1 -1
  9. package/build/components/block-alignment-control/use-available-alignments.js +25 -3
  10. package/build/components/block-alignment-control/use-available-alignments.js.map +1 -1
  11. package/build/components/block-controls/fill.js +2 -2
  12. package/build/components/block-controls/fill.js.map +1 -1
  13. package/build/components/block-controls/hook.js +3 -3
  14. package/build/components/block-controls/hook.js.map +1 -1
  15. package/build/components/block-icon/index.js +5 -1
  16. package/build/components/block-icon/index.js.map +1 -1
  17. package/build/components/block-icon/index.native.js +9 -11
  18. package/build/components/block-icon/index.native.js.map +1 -1
  19. package/build/components/block-inspector/index.js +8 -0
  20. package/build/components/block-inspector/index.js.map +1 -1
  21. package/build/components/block-list/block-html.js +5 -0
  22. package/build/components/block-list/block-html.js.map +1 -1
  23. package/build/components/block-list/block.js +12 -5
  24. package/build/components/block-list/block.js.map +1 -1
  25. package/build/components/block-list/block.native.js +4 -3
  26. package/build/components/block-list/block.native.js.map +1 -1
  27. package/build/components/block-list/index.native.js +1 -1
  28. package/build/components/block-list/index.native.js.map +1 -1
  29. package/build/components/block-list/use-block-props/use-multi-selection.js +21 -8
  30. package/build/components/block-list/use-block-props/use-multi-selection.js.map +1 -1
  31. package/build/components/block-list-appender/index.js +9 -1
  32. package/build/components/block-list-appender/index.js.map +1 -1
  33. package/build/components/block-mover/index.js +4 -4
  34. package/build/components/block-mover/index.js.map +1 -1
  35. package/build/components/block-mover/index.native.js +4 -4
  36. package/build/components/block-mover/index.native.js.map +1 -1
  37. package/build/components/block-navigation/dropdown.js +0 -1
  38. package/build/components/block-navigation/dropdown.js.map +1 -1
  39. package/build/components/block-patterns-list/index.js +1 -8
  40. package/build/components/block-patterns-list/index.js.map +1 -1
  41. package/build/components/block-preview/auto.js +1 -1
  42. package/build/components/block-preview/auto.js.map +1 -1
  43. package/build/components/block-settings/container.native.js +5 -2
  44. package/build/components/block-settings/container.native.js.map +1 -1
  45. package/build/components/block-settings-menu/block-settings-dropdown.js +26 -5
  46. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  47. package/build/components/block-settings-menu-controls/index.js +10 -3
  48. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  49. package/build/components/block-styles/preview.native.js +2 -2
  50. package/build/components/block-styles/preview.native.js.map +1 -1
  51. package/build/components/block-switcher/block-styles-menu.js +1 -1
  52. package/build/components/block-switcher/block-styles-menu.js.map +1 -1
  53. package/build/components/block-switcher/index.js +10 -3
  54. package/build/components/block-switcher/index.js.map +1 -1
  55. package/build/components/block-title/index.js +3 -2
  56. package/build/components/block-title/index.js.map +1 -1
  57. package/build/components/block-tools/block-popover.js +2 -4
  58. package/build/components/block-tools/block-popover.js.map +1 -1
  59. package/build/components/block-tools/index.js +4 -1
  60. package/build/components/block-tools/index.js.map +1 -1
  61. package/build/components/block-tools/insertion-point.js +96 -7
  62. package/build/components/block-tools/insertion-point.js.map +1 -1
  63. package/build/components/border-radius-control/index.js.map +1 -1
  64. package/build/components/border-radius-control/utils.js +17 -8
  65. package/build/components/border-radius-control/utils.js.map +1 -1
  66. package/build/components/colors/utils.js +11 -3
  67. package/build/components/colors/utils.js.map +1 -1
  68. package/build/components/colors-gradients/control.js +22 -57
  69. package/build/components/colors-gradients/control.js.map +1 -1
  70. package/build/components/colors-gradients/panel-color-gradient-settings.js +83 -7
  71. package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  72. package/build/components/contrast-checker/index.js +18 -12
  73. package/build/components/contrast-checker/index.js.map +1 -1
  74. package/build/components/copy-handler/index.js +9 -3
  75. package/build/components/copy-handler/index.js.map +1 -1
  76. package/build/components/default-block-appender/index.js +2 -2
  77. package/build/components/default-block-appender/index.js.map +1 -1
  78. package/build/components/duotone-control/index.js +41 -39
  79. package/build/components/duotone-control/index.js.map +1 -1
  80. package/build/components/editor-styles/index.js +9 -3
  81. package/build/components/editor-styles/index.js.map +1 -1
  82. package/build/components/font-appearance-control/index.js +32 -21
  83. package/build/components/font-appearance-control/index.js.map +1 -1
  84. package/build/components/iframe/index.js +6 -4
  85. package/build/components/iframe/index.js.map +1 -1
  86. package/build/components/image-editor/aspect-ratio-dropdown.js +126 -0
  87. package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -0
  88. package/build/components/image-editor/constants.js +16 -0
  89. package/build/components/image-editor/constants.js.map +1 -0
  90. package/build/components/image-editor/context.js +59 -0
  91. package/build/components/image-editor/context.js.map +1 -0
  92. package/build/components/image-editor/cropper.js +83 -0
  93. package/build/components/image-editor/cropper.js.map +1 -0
  94. package/build/components/image-editor/form-controls.js +36 -0
  95. package/build/components/image-editor/form-controls.js.map +1 -0
  96. package/build/components/image-editor/index.js +60 -0
  97. package/build/components/image-editor/index.js.map +1 -0
  98. package/build/components/image-editor/rotation-button.js +37 -0
  99. package/build/components/image-editor/rotation-button.js.map +1 -0
  100. package/build/components/image-editor/use-save-image.js +84 -0
  101. package/build/components/image-editor/use-save-image.js.map +1 -0
  102. package/build/components/image-editor/use-transform-image.js +135 -0
  103. package/build/components/image-editor/use-transform-image.js.map +1 -0
  104. package/build/components/image-editor/zoom-dropdown.js +55 -0
  105. package/build/components/image-editor/zoom-dropdown.js.map +1 -0
  106. package/build/components/image-size-control/use-dimension-handler.js +14 -3
  107. package/build/components/image-size-control/use-dimension-handler.js.map +1 -1
  108. package/build/components/index.js +36 -20
  109. package/build/components/index.js.map +1 -1
  110. package/build/components/index.native.js +2 -2
  111. package/build/components/index.native.js.map +1 -1
  112. package/build/components/inner-blocks/button-block-appender.js +11 -1
  113. package/build/components/inner-blocks/button-block-appender.js.map +1 -1
  114. package/build/components/inner-blocks/index.js +8 -5
  115. package/build/components/inner-blocks/index.js.map +1 -1
  116. package/build/components/inner-blocks/index.native.js +4 -3
  117. package/build/components/inner-blocks/index.native.js.map +1 -1
  118. package/build/components/inner-blocks/use-nested-settings-update.js +24 -13
  119. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  120. package/build/components/inserter/block-patterns-explorer/explorer.js +62 -0
  121. package/build/components/inserter/block-patterns-explorer/explorer.js.map +1 -0
  122. package/build/components/inserter/block-patterns-explorer/patterns-list.js +111 -0
  123. package/build/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -0
  124. package/build/components/inserter/block-patterns-explorer/sidebar.js +78 -0
  125. package/build/components/inserter/block-patterns-explorer/sidebar.js.map +1 -0
  126. package/build/components/inserter/block-patterns-tab.js +74 -35
  127. package/build/components/inserter/block-patterns-tab.js.map +1 -1
  128. package/build/components/inserter/block-types-tab.native.js +3 -11
  129. package/build/components/inserter/block-types-tab.native.js.map +1 -1
  130. package/build/components/inserter/hooks/use-block-type-impressions.native.js +4 -7
  131. package/build/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
  132. package/build/components/inserter/hooks/use-clipboard-block.native.js +5 -4
  133. package/build/components/inserter/hooks/use-clipboard-block.native.js.map +1 -1
  134. package/build/components/inserter/index.js +12 -4
  135. package/build/components/inserter/index.js.map +1 -1
  136. package/build/components/inserter/index.native.js +1 -7
  137. package/build/components/inserter/index.native.js.map +1 -1
  138. package/build/components/inserter/library.js +2 -0
  139. package/build/components/inserter/library.js.map +1 -1
  140. package/build/components/inserter/menu.js +2 -1
  141. package/build/components/inserter/menu.js.map +1 -1
  142. package/build/components/inserter/menu.native.js +11 -15
  143. package/build/components/inserter/menu.native.js.map +1 -1
  144. package/build/components/inserter/pattern-panel.js +19 -10
  145. package/build/components/inserter/pattern-panel.js.map +1 -1
  146. package/build/components/inserter/preview-panel.js +1 -1
  147. package/build/components/inserter/preview-panel.js.map +1 -1
  148. package/build/components/inserter/quick-inserter.js +2 -1
  149. package/build/components/inserter/quick-inserter.js.map +1 -1
  150. package/build/components/inserter/reusable-blocks-tab.native.js +5 -6
  151. package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
  152. package/build/components/inserter/search-results.native.js +6 -11
  153. package/build/components/inserter/search-results.native.js.map +1 -1
  154. package/build/components/inserter/utils.native.js +44 -0
  155. package/build/components/inserter/utils.native.js.map +1 -0
  156. package/build/components/inspector-controls/block-support-slot-container.js +28 -0
  157. package/build/components/inspector-controls/block-support-slot-container.js.map +1 -0
  158. package/build/components/inspector-controls/block-support-tools-panel.js +78 -0
  159. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -0
  160. package/build/components/inspector-controls/fill.js +16 -1
  161. package/build/components/inspector-controls/fill.js.map +1 -1
  162. package/build/components/inspector-controls/groups.js +5 -1
  163. package/build/components/inspector-controls/groups.js.map +1 -1
  164. package/build/components/inspector-controls/slot.js +15 -0
  165. package/build/components/inspector-controls/slot.js.map +1 -1
  166. package/build/components/letter-spacing-control/index.js +9 -6
  167. package/build/components/letter-spacing-control/index.js.map +1 -1
  168. package/build/components/link-control/index.js +93 -34
  169. package/build/components/link-control/index.js.map +1 -1
  170. package/build/components/link-control/link-preview.js +45 -15
  171. package/build/components/link-control/link-preview.js.map +1 -1
  172. package/build/components/link-control/search-input.js +25 -7
  173. package/build/components/link-control/search-input.js.map +1 -1
  174. package/build/components/list-view/block-contents.js +1 -20
  175. package/build/components/list-view/block-contents.js.map +1 -1
  176. package/build/components/list-view/block.js +54 -69
  177. package/build/components/list-view/block.js.map +1 -1
  178. package/build/components/list-view/branch.js +102 -76
  179. package/build/components/list-view/branch.js.map +1 -1
  180. package/build/components/list-view/index.js +45 -20
  181. package/build/components/list-view/index.js.map +1 -1
  182. package/build/components/list-view/leaf.js +2 -2
  183. package/build/components/list-view/leaf.js.map +1 -1
  184. package/build/components/list-view/list-item.js +3 -2
  185. package/build/components/list-view/list-item.js.map +1 -1
  186. package/build/components/list-view/use-list-view-client-ids.js +13 -54
  187. package/build/components/list-view/use-list-view-client-ids.js.map +1 -1
  188. package/build/components/media-placeholder/index.js +29 -20
  189. package/build/components/media-placeholder/index.js.map +1 -1
  190. package/build/components/media-replace-flow/index.js +5 -3
  191. package/build/components/media-replace-flow/index.js.map +1 -1
  192. package/build/components/navigable-toolbar/index.js +1 -4
  193. package/build/components/navigable-toolbar/index.js.map +1 -1
  194. package/build/components/observe-typing/index.js +1 -1
  195. package/build/components/observe-typing/index.js.map +1 -1
  196. package/build/components/plain-text/index.native.js +30 -1
  197. package/build/components/plain-text/index.native.js.map +1 -1
  198. package/build/components/rich-text/embed-handler-picker.native.js +66 -0
  199. package/build/components/rich-text/embed-handler-picker.native.js.map +1 -0
  200. package/build/components/rich-text/format-edit.js +28 -2
  201. package/build/components/rich-text/format-edit.js.map +1 -1
  202. package/build/components/rich-text/format-toolbar/index.js +32 -11
  203. package/build/components/rich-text/format-toolbar/index.js.map +1 -1
  204. package/build/components/rich-text/index.js +5 -1
  205. package/build/components/rich-text/index.js.map +1 -1
  206. package/build/components/rich-text/index.native.js +41 -2
  207. package/build/components/rich-text/index.native.js.map +1 -1
  208. package/build/components/rich-text/use-paste-handler.js +28 -9
  209. package/build/components/rich-text/use-paste-handler.js.map +1 -1
  210. package/build/components/rich-text/utils.js +22 -0
  211. package/build/components/rich-text/utils.js.map +1 -1
  212. package/build/components/typewriter/index.js +1 -1
  213. package/build/components/typewriter/index.js.map +1 -1
  214. package/build/components/url-input/index.js +25 -11
  215. package/build/components/url-input/index.js.map +1 -1
  216. package/build/components/use-moving-animation/index.js +13 -10
  217. package/build/components/use-moving-animation/index.js.map +1 -1
  218. package/build/components/use-on-block-drop/index.js +2 -1
  219. package/build/components/use-on-block-drop/index.js.map +1 -1
  220. package/build/components/use-setting/index.js +48 -9
  221. package/build/components/use-setting/index.js.map +1 -1
  222. package/build/components/writing-flow/use-multi-selection.js +6 -0
  223. package/build/components/writing-flow/use-multi-selection.js.map +1 -1
  224. package/build/components/writing-flow/use-tab-nav.js +10 -1
  225. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  226. package/build/hooks/align.js +13 -10
  227. package/build/hooks/align.js.map +1 -1
  228. package/build/hooks/anchor.js +1 -1
  229. package/build/hooks/anchor.js.map +1 -1
  230. package/build/hooks/border.js +5 -5
  231. package/build/hooks/border.js.map +1 -1
  232. package/build/hooks/color-panel.js +5 -2
  233. package/build/hooks/color-panel.js.map +1 -1
  234. package/build/hooks/color.js +1 -1
  235. package/build/hooks/color.js.map +1 -1
  236. package/build/hooks/dimensions.js +23 -27
  237. package/build/hooks/dimensions.js.map +1 -1
  238. package/build/hooks/duotone.js +60 -16
  239. package/build/hooks/duotone.js.map +1 -1
  240. package/build/hooks/font-appearance.js +49 -6
  241. package/build/hooks/font-appearance.js.map +1 -1
  242. package/build/hooks/font-family.js +123 -32
  243. package/build/hooks/font-family.js.map +1 -1
  244. package/build/hooks/font-size.js +51 -9
  245. package/build/hooks/font-size.js.map +1 -1
  246. package/build/hooks/gap.js +2 -1
  247. package/build/hooks/gap.js.map +1 -1
  248. package/build/hooks/index.js +10 -0
  249. package/build/hooks/index.js.map +1 -1
  250. package/build/hooks/index.native.js +8 -0
  251. package/build/hooks/index.native.js.map +1 -1
  252. package/build/hooks/letter-spacing.js +44 -7
  253. package/build/hooks/letter-spacing.js.map +1 -1
  254. package/build/hooks/line-height.js +45 -8
  255. package/build/hooks/line-height.js.map +1 -1
  256. package/build/hooks/lock.js +43 -0
  257. package/build/hooks/lock.js.map +1 -0
  258. package/build/hooks/margin.js +1 -1
  259. package/build/hooks/margin.js.map +1 -1
  260. package/build/hooks/padding.js +1 -1
  261. package/build/hooks/padding.js.map +1 -1
  262. package/build/hooks/style.js +7 -4
  263. package/build/hooks/style.js.map +1 -1
  264. package/build/hooks/text-decoration.js +42 -6
  265. package/build/hooks/text-decoration.js.map +1 -1
  266. package/build/hooks/text-transform.js +42 -6
  267. package/build/hooks/text-transform.js.map +1 -1
  268. package/build/hooks/typography.js +108 -8
  269. package/build/hooks/typography.js.map +1 -1
  270. package/build/hooks/use-cached-truthy.js +29 -0
  271. package/build/hooks/use-cached-truthy.js.map +1 -0
  272. package/build/index.js +7 -0
  273. package/build/index.js.map +1 -1
  274. package/build/layouts/flex.js +160 -34
  275. package/build/layouts/flex.js.map +1 -1
  276. package/build/layouts/flow.js +75 -8
  277. package/build/layouts/flow.js.map +1 -1
  278. package/build/store/actions.js +323 -265
  279. package/build/store/actions.js.map +1 -1
  280. package/build/store/defaults.native.js +13 -1
  281. package/build/store/defaults.native.js.map +1 -1
  282. package/build/store/index.js +1 -3
  283. package/build/store/index.js.map +1 -1
  284. package/build/store/reducer.js +33 -22
  285. package/build/store/reducer.js.map +1 -1
  286. package/build/store/selectors.js +172 -38
  287. package/build/store/selectors.js.map +1 -1
  288. package/build/utils/index.js +10 -1
  289. package/build/utils/index.js.map +1 -1
  290. package/build/utils/parse-css-unit-to-px.js +51 -1
  291. package/build/utils/parse-css-unit-to-px.js.map +1 -1
  292. package/build/utils/transform-styles/transforms/wrap.js +16 -0
  293. package/build/utils/transform-styles/transforms/wrap.js.map +1 -1
  294. package/build-module/components/autocomplete/index.js +2 -2
  295. package/build-module/components/autocomplete/index.js.map +1 -1
  296. package/build-module/components/block-actions/index.js +8 -4
  297. package/build-module/components/block-actions/index.js.map +1 -1
  298. package/build-module/components/block-alignment-control/ui.js +64 -17
  299. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  300. package/build-module/components/block-alignment-control/use-available-alignments.js +25 -3
  301. package/build-module/components/block-alignment-control/use-available-alignments.js.map +1 -1
  302. package/build-module/components/block-controls/fill.js +2 -2
  303. package/build-module/components/block-controls/fill.js.map +1 -1
  304. package/build-module/components/block-controls/hook.js +3 -3
  305. package/build-module/components/block-controls/hook.js.map +1 -1
  306. package/build-module/components/block-icon/index.js +5 -1
  307. package/build-module/components/block-icon/index.js.map +1 -1
  308. package/build-module/components/block-icon/index.native.js +10 -11
  309. package/build-module/components/block-icon/index.native.js.map +1 -1
  310. package/build-module/components/block-inspector/index.js +8 -0
  311. package/build-module/components/block-inspector/index.js.map +1 -1
  312. package/build-module/components/block-list/block-html.js +5 -0
  313. package/build-module/components/block-list/block-html.js.map +1 -1
  314. package/build-module/components/block-list/block.js +12 -5
  315. package/build-module/components/block-list/block.js.map +1 -1
  316. package/build-module/components/block-list/block.native.js +4 -3
  317. package/build-module/components/block-list/block.native.js.map +1 -1
  318. package/build-module/components/block-list/index.native.js +1 -1
  319. package/build-module/components/block-list/index.native.js.map +1 -1
  320. package/build-module/components/block-list/use-block-props/use-multi-selection.js +21 -8
  321. package/build-module/components/block-list/use-block-props/use-multi-selection.js.map +1 -1
  322. package/build-module/components/block-list-appender/index.js +9 -1
  323. package/build-module/components/block-list-appender/index.js.map +1 -1
  324. package/build-module/components/block-mover/index.js +4 -4
  325. package/build-module/components/block-mover/index.js.map +1 -1
  326. package/build-module/components/block-mover/index.native.js +4 -4
  327. package/build-module/components/block-mover/index.native.js.map +1 -1
  328. package/build-module/components/block-navigation/dropdown.js +0 -1
  329. package/build-module/components/block-navigation/dropdown.js.map +1 -1
  330. package/build-module/components/block-patterns-list/index.js +1 -6
  331. package/build-module/components/block-patterns-list/index.js.map +1 -1
  332. package/build-module/components/block-preview/auto.js +1 -1
  333. package/build-module/components/block-preview/auto.js.map +1 -1
  334. package/build-module/components/block-settings/container.native.js +6 -3
  335. package/build-module/components/block-settings/container.native.js.map +1 -1
  336. package/build-module/components/block-settings-menu/block-settings-dropdown.js +28 -7
  337. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  338. package/build-module/components/block-settings-menu-controls/index.js +10 -3
  339. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  340. package/build-module/components/block-styles/preview.native.js +2 -2
  341. package/build-module/components/block-styles/preview.native.js.map +1 -1
  342. package/build-module/components/block-switcher/block-styles-menu.js +1 -1
  343. package/build-module/components/block-switcher/block-styles-menu.js.map +1 -1
  344. package/build-module/components/block-switcher/index.js +10 -3
  345. package/build-module/components/block-switcher/index.js.map +1 -1
  346. package/build-module/components/block-title/index.js +3 -2
  347. package/build-module/components/block-title/index.js.map +1 -1
  348. package/build-module/components/block-tools/block-popover.js +3 -5
  349. package/build-module/components/block-tools/block-popover.js.map +1 -1
  350. package/build-module/components/block-tools/index.js +4 -1
  351. package/build-module/components/block-tools/index.js.map +1 -1
  352. package/build-module/components/block-tools/insertion-point.js +96 -8
  353. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  354. package/build-module/components/border-radius-control/index.js.map +1 -1
  355. package/build-module/components/border-radius-control/utils.js +16 -9
  356. package/build-module/components/border-radius-control/utils.js.map +1 -1
  357. package/build-module/components/colors/utils.js +9 -3
  358. package/build-module/components/colors/utils.js.map +1 -1
  359. package/build-module/components/colors-gradients/control.js +26 -63
  360. package/build-module/components/colors-gradients/control.js.map +1 -1
  361. package/build-module/components/colors-gradients/panel-color-gradient-settings.js +84 -7
  362. package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  363. package/build-module/components/contrast-checker/index.js +13 -10
  364. package/build-module/components/contrast-checker/index.js.map +1 -1
  365. package/build-module/components/copy-handler/index.js +9 -3
  366. package/build-module/components/copy-handler/index.js.map +1 -1
  367. package/build-module/components/default-block-appender/index.js +2 -2
  368. package/build-module/components/default-block-appender/index.js.map +1 -1
  369. package/build-module/components/duotone-control/index.js +43 -39
  370. package/build-module/components/duotone-control/index.js.map +1 -1
  371. package/build-module/components/editor-styles/index.js +7 -3
  372. package/build-module/components/editor-styles/index.js.map +1 -1
  373. package/build-module/components/font-appearance-control/index.js +28 -21
  374. package/build-module/components/font-appearance-control/index.js.map +1 -1
  375. package/build-module/components/iframe/index.js +6 -4
  376. package/build-module/components/iframe/index.js.map +1 -1
  377. package/build-module/components/image-editor/aspect-ratio-dropdown.js +115 -0
  378. package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -0
  379. package/build-module/components/image-editor/constants.js +7 -0
  380. package/build-module/components/image-editor/constants.js.map +1 -0
  381. package/build-module/components/image-editor/context.js +44 -0
  382. package/build-module/components/image-editor/context.js.map +1 -0
  383. package/build-module/components/image-editor/cropper.js +69 -0
  384. package/build-module/components/image-editor/cropper.js.map +1 -0
  385. package/build-module/components/image-editor/form-controls.js +26 -0
  386. package/build-module/components/image-editor/form-controls.js.map +1 -0
  387. package/build-module/components/image-editor/index.js +37 -0
  388. package/build-module/components/image-editor/index.js.map +1 -0
  389. package/build-module/components/image-editor/rotation-button.js +26 -0
  390. package/build-module/components/image-editor/rotation-button.js.map +1 -0
  391. package/build-module/components/image-editor/use-save-image.js +70 -0
  392. package/build-module/components/image-editor/use-save-image.js.map +1 -0
  393. package/build-module/components/image-editor/use-transform-image.js +127 -0
  394. package/build-module/components/image-editor/use-transform-image.js.map +1 -0
  395. package/build-module/components/image-editor/zoom-dropdown.js +43 -0
  396. package/build-module/components/image-editor/zoom-dropdown.js.map +1 -0
  397. package/build-module/components/image-size-control/use-dimension-handler.js +13 -2
  398. package/build-module/components/image-size-control/use-dimension-handler.js.map +1 -1
  399. package/build-module/components/index.js +4 -3
  400. package/build-module/components/index.js.map +1 -1
  401. package/build-module/components/index.native.js +1 -1
  402. package/build-module/components/index.native.js.map +1 -1
  403. package/build-module/components/inner-blocks/button-block-appender.js +10 -1
  404. package/build-module/components/inner-blocks/button-block-appender.js.map +1 -1
  405. package/build-module/components/inner-blocks/index.js +9 -6
  406. package/build-module/components/inner-blocks/index.js.map +1 -1
  407. package/build-module/components/inner-blocks/index.native.js +5 -4
  408. package/build-module/components/inner-blocks/index.native.js.map +1 -1
  409. package/build-module/components/inner-blocks/use-nested-settings-update.js +24 -13
  410. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  411. package/build-module/components/inserter/block-patterns-explorer/explorer.js +50 -0
  412. package/build-module/components/inserter/block-patterns-explorer/explorer.js.map +1 -0
  413. package/build-module/components/inserter/block-patterns-explorer/patterns-list.js +92 -0
  414. package/build-module/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -0
  415. package/build-module/components/inserter/block-patterns-explorer/sidebar.js +69 -0
  416. package/build-module/components/inserter/block-patterns-explorer/sidebar.js.map +1 -0
  417. package/build-module/components/inserter/block-patterns-tab.js +75 -36
  418. package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
  419. package/build-module/components/inserter/block-types-tab.native.js +2 -10
  420. package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
  421. package/build-module/components/inserter/hooks/use-block-type-impressions.native.js +4 -7
  422. package/build-module/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
  423. package/build-module/components/inserter/hooks/use-clipboard-block.native.js +5 -4
  424. package/build-module/components/inserter/hooks/use-clipboard-block.native.js.map +1 -1
  425. package/build-module/components/inserter/index.js +12 -4
  426. package/build-module/components/inserter/index.js.map +1 -1
  427. package/build-module/components/inserter/index.native.js +1 -7
  428. package/build-module/components/inserter/index.native.js.map +1 -1
  429. package/build-module/components/inserter/library.js +2 -0
  430. package/build-module/components/inserter/library.js.map +1 -1
  431. package/build-module/components/inserter/menu.js +2 -1
  432. package/build-module/components/inserter/menu.js.map +1 -1
  433. package/build-module/components/inserter/menu.native.js +10 -15
  434. package/build-module/components/inserter/menu.native.js.map +1 -1
  435. package/build-module/components/inserter/pattern-panel.js +21 -13
  436. package/build-module/components/inserter/pattern-panel.js.map +1 -1
  437. package/build-module/components/inserter/preview-panel.js +1 -1
  438. package/build-module/components/inserter/preview-panel.js.map +1 -1
  439. package/build-module/components/inserter/quick-inserter.js +2 -1
  440. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  441. package/build-module/components/inserter/reusable-blocks-tab.native.js +4 -5
  442. package/build-module/components/inserter/reusable-blocks-tab.native.js.map +1 -1
  443. package/build-module/components/inserter/search-results.native.js +5 -10
  444. package/build-module/components/inserter/search-results.native.js.map +1 -1
  445. package/build-module/components/inserter/utils.native.js +35 -0
  446. package/build-module/components/inserter/utils.native.js.map +1 -0
  447. package/build-module/components/inspector-controls/block-support-slot-container.js +18 -0
  448. package/build-module/components/inspector-controls/block-support-slot-container.js.map +1 -0
  449. package/build-module/components/inspector-controls/block-support-tools-panel.js +67 -0
  450. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -0
  451. package/build-module/components/inspector-controls/fill.js +16 -2
  452. package/build-module/components/inspector-controls/fill.js.map +1 -1
  453. package/build-module/components/inspector-controls/groups.js +5 -1
  454. package/build-module/components/inspector-controls/groups.js.map +1 -1
  455. package/build-module/components/inspector-controls/slot.js +13 -0
  456. package/build-module/components/inspector-controls/slot.js.map +1 -1
  457. package/build-module/components/letter-spacing-control/index.js +9 -6
  458. package/build-module/components/letter-spacing-control/index.js.map +1 -1
  459. package/build-module/components/link-control/index.js +93 -35
  460. package/build-module/components/link-control/index.js.map +1 -1
  461. package/build-module/components/link-control/link-preview.js +46 -17
  462. package/build-module/components/link-control/link-preview.js.map +1 -1
  463. package/build-module/components/link-control/search-input.js +24 -7
  464. package/build-module/components/link-control/search-input.js.map +1 -1
  465. package/build-module/components/list-view/block-contents.js +1 -18
  466. package/build-module/components/list-view/block-contents.js.map +1 -1
  467. package/build-module/components/list-view/block.js +56 -71
  468. package/build-module/components/list-view/block.js.map +1 -1
  469. package/build-module/components/list-view/branch.js +102 -78
  470. package/build-module/components/list-view/branch.js.map +1 -1
  471. package/build-module/components/list-view/index.js +48 -23
  472. package/build-module/components/list-view/index.js.map +1 -1
  473. package/build-module/components/list-view/leaf.js +2 -2
  474. package/build-module/components/list-view/leaf.js.map +1 -1
  475. package/build-module/components/list-view/list-item.js +3 -2
  476. package/build-module/components/list-view/list-item.js.map +1 -1
  477. package/build-module/components/list-view/use-list-view-client-ids.js +13 -54
  478. package/build-module/components/list-view/use-list-view-client-ids.js.map +1 -1
  479. package/build-module/components/media-placeholder/index.js +29 -20
  480. package/build-module/components/media-placeholder/index.js.map +1 -1
  481. package/build-module/components/media-replace-flow/index.js +5 -3
  482. package/build-module/components/media-replace-flow/index.js.map +1 -1
  483. package/build-module/components/navigable-toolbar/index.js +1 -4
  484. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  485. package/build-module/components/observe-typing/index.js +1 -1
  486. package/build-module/components/observe-typing/index.js.map +1 -1
  487. package/build-module/components/plain-text/index.native.js +29 -2
  488. package/build-module/components/plain-text/index.native.js.map +1 -1
  489. package/build-module/components/rich-text/embed-handler-picker.native.js +54 -0
  490. package/build-module/components/rich-text/embed-handler-picker.native.js.map +1 -0
  491. package/build-module/components/rich-text/format-edit.js +28 -3
  492. package/build-module/components/rich-text/format-edit.js.map +1 -1
  493. package/build-module/components/rich-text/format-toolbar/index.js +29 -11
  494. package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
  495. package/build-module/components/rich-text/index.js +4 -1
  496. package/build-module/components/rich-text/index.js.map +1 -1
  497. package/build-module/components/rich-text/index.native.js +41 -3
  498. package/build-module/components/rich-text/index.native.js.map +1 -1
  499. package/build-module/components/rich-text/use-paste-handler.js +28 -9
  500. package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
  501. package/build-module/components/rich-text/utils.js +20 -0
  502. package/build-module/components/rich-text/utils.js.map +1 -1
  503. package/build-module/components/typewriter/index.js +1 -1
  504. package/build-module/components/typewriter/index.js.map +1 -1
  505. package/build-module/components/url-input/index.js +25 -11
  506. package/build-module/components/url-input/index.js.map +1 -1
  507. package/build-module/components/use-moving-animation/index.js +13 -10
  508. package/build-module/components/use-moving-animation/index.js.map +1 -1
  509. package/build-module/components/use-on-block-drop/index.js +3 -2
  510. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  511. package/build-module/components/use-setting/index.js +48 -9
  512. package/build-module/components/use-setting/index.js.map +1 -1
  513. package/build-module/components/writing-flow/use-multi-selection.js +6 -0
  514. package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
  515. package/build-module/components/writing-flow/use-tab-nav.js +10 -1
  516. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  517. package/build-module/hooks/align.js +13 -10
  518. package/build-module/hooks/align.js.map +1 -1
  519. package/build-module/hooks/anchor.js +1 -1
  520. package/build-module/hooks/anchor.js.map +1 -1
  521. package/build-module/hooks/border.js +5 -5
  522. package/build-module/hooks/border.js.map +1 -1
  523. package/build-module/hooks/color-panel.js +6 -3
  524. package/build-module/hooks/color-panel.js.map +1 -1
  525. package/build-module/hooks/color.js +1 -1
  526. package/build-module/hooks/color.js.map +1 -1
  527. package/build-module/hooks/dimensions.js +24 -27
  528. package/build-module/hooks/dimensions.js.map +1 -1
  529. package/build-module/hooks/duotone.js +59 -16
  530. package/build-module/hooks/duotone.js.map +1 -1
  531. package/build-module/hooks/font-appearance.js +45 -6
  532. package/build-module/hooks/font-appearance.js.map +1 -1
  533. package/build-module/hooks/font-family.js +117 -33
  534. package/build-module/hooks/font-family.js.map +1 -1
  535. package/build-module/hooks/font-size.js +47 -9
  536. package/build-module/hooks/font-size.js.map +1 -1
  537. package/build-module/hooks/gap.js +2 -1
  538. package/build-module/hooks/gap.js.map +1 -1
  539. package/build-module/hooks/index.js +2 -0
  540. package/build-module/hooks/index.js.map +1 -1
  541. package/build-module/hooks/index.native.js +1 -0
  542. package/build-module/hooks/index.native.js.map +1 -1
  543. package/build-module/hooks/letter-spacing.js +40 -7
  544. package/build-module/hooks/letter-spacing.js.map +1 -1
  545. package/build-module/hooks/line-height.js +41 -8
  546. package/build-module/hooks/line-height.js.map +1 -1
  547. package/build-module/hooks/lock.js +33 -0
  548. package/build-module/hooks/lock.js.map +1 -0
  549. package/build-module/hooks/margin.js +1 -1
  550. package/build-module/hooks/margin.js.map +1 -1
  551. package/build-module/hooks/padding.js +1 -1
  552. package/build-module/hooks/padding.js.map +1 -1
  553. package/build-module/hooks/style.js +7 -4
  554. package/build-module/hooks/style.js.map +1 -1
  555. package/build-module/hooks/text-decoration.js +38 -6
  556. package/build-module/hooks/text-decoration.js.map +1 -1
  557. package/build-module/hooks/text-transform.js +38 -6
  558. package/build-module/hooks/text-transform.js.map +1 -1
  559. package/build-module/hooks/typography.js +117 -17
  560. package/build-module/hooks/typography.js.map +1 -1
  561. package/build-module/hooks/use-cached-truthy.js +21 -0
  562. package/build-module/hooks/use-cached-truthy.js.map +1 -0
  563. package/build-module/index.js +1 -1
  564. package/build-module/index.js.map +1 -1
  565. package/build-module/layouts/flex.js +163 -38
  566. package/build-module/layouts/flex.js.map +1 -1
  567. package/build-module/layouts/flow.js +74 -8
  568. package/build-module/layouts/flow.js.map +1 -1
  569. package/build-module/store/actions.js +286 -241
  570. package/build-module/store/actions.js.map +1 -1
  571. package/build-module/store/defaults.native.js +12 -1
  572. package/build-module/store/defaults.native.js.map +1 -1
  573. package/build-module/store/index.js +1 -2
  574. package/build-module/store/index.js.map +1 -1
  575. package/build-module/store/reducer.js +33 -22
  576. package/build-module/store/reducer.js.map +1 -1
  577. package/build-module/store/selectors.js +160 -34
  578. package/build-module/store/selectors.js.map +1 -1
  579. package/build-module/utils/index.js +1 -0
  580. package/build-module/utils/index.js.map +1 -1
  581. package/build-module/utils/parse-css-unit-to-px.js +48 -1
  582. package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
  583. package/build-module/utils/transform-styles/transforms/wrap.js +16 -0
  584. package/build-module/utils/transform-styles/transforms/wrap.js.map +1 -1
  585. package/build-style/style-rtl.css +267 -144
  586. package/build-style/style.css +267 -144
  587. package/package.json +28 -27
  588. package/src/components/autocomplete/index.js +5 -2
  589. package/src/components/block-actions/index.js +9 -5
  590. package/src/components/block-alignment-control/style.scss +5 -0
  591. package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +15 -1
  592. package/src/components/block-alignment-control/test/index.native.js +37 -0
  593. package/src/components/block-alignment-control/ui.js +98 -27
  594. package/src/components/block-alignment-control/use-available-alignments.js +31 -10
  595. package/src/components/block-controls/fill.js +5 -2
  596. package/src/components/block-controls/hook.js +3 -3
  597. package/src/components/block-draggable/style.scss +19 -4
  598. package/src/components/block-icon/index.js +4 -1
  599. package/src/components/block-icon/index.native.js +10 -16
  600. package/src/components/block-inspector/index.js +10 -0
  601. package/src/components/block-list/block-html.js +5 -0
  602. package/src/components/block-list/block.js +11 -3
  603. package/src/components/block-list/block.native.js +5 -3
  604. package/src/components/block-list/index.native.js +1 -1
  605. package/src/components/block-list/style.scss +15 -0
  606. package/src/components/block-list/use-block-props/use-multi-selection.js +27 -7
  607. package/src/components/block-list-appender/index.js +8 -0
  608. package/src/components/block-mover/index.js +4 -4
  609. package/src/components/block-mover/index.native.js +4 -4
  610. package/src/components/block-mover/test/__snapshots__/index.native.js.snap +10 -6
  611. package/src/components/block-mover/test/index.native.js +26 -28
  612. package/src/components/block-navigation/dropdown.js +0 -1
  613. package/src/components/block-patterns-list/index.js +1 -8
  614. package/src/components/block-patterns-list/style.scss +22 -12
  615. package/src/components/block-preview/README.md +1 -1
  616. package/src/components/block-preview/auto.js +1 -1
  617. package/src/components/block-preview/style.scss +0 -17
  618. package/src/components/block-settings/container.native.js +7 -0
  619. package/src/components/block-settings-menu/block-settings-dropdown.js +26 -13
  620. package/src/components/block-settings-menu-controls/index.js +9 -6
  621. package/src/components/block-styles/preview.native.js +2 -2
  622. package/src/components/block-switcher/block-styles-menu.js +1 -1
  623. package/src/components/block-switcher/index.js +7 -3
  624. package/src/components/block-switcher/test/__snapshots__/index.js.snap +1 -1
  625. package/src/components/block-switcher/test/index.js +3 -0
  626. package/src/components/block-title/index.js +5 -2
  627. package/src/components/block-tools/block-popover.js +3 -5
  628. package/src/components/block-tools/index.js +5 -2
  629. package/src/components/block-tools/insertion-point.js +97 -9
  630. package/src/components/block-tools/style.scss +4 -35
  631. package/src/components/block-types-list/style.scss +0 -3
  632. package/src/components/border-radius-control/index.js +1 -0
  633. package/src/components/border-radius-control/test/utils.js +216 -0
  634. package/src/components/border-radius-control/utils.js +18 -10
  635. package/src/components/color-palette/test/__snapshots__/control.js.snap +128 -71
  636. package/src/components/colors/test/utils.js +41 -0
  637. package/src/components/colors/utils.js +9 -5
  638. package/src/components/colors-gradients/control.js +70 -110
  639. package/src/components/colors-gradients/panel-color-gradient-settings.js +79 -7
  640. package/src/components/colors-gradients/style.scss +10 -18
  641. package/src/components/colors-gradients/test/control.js +41 -66
  642. package/src/components/contrast-checker/index.js +14 -10
  643. package/src/components/copy-handler/index.js +6 -1
  644. package/src/components/default-block-appender/index.js +2 -2
  645. package/src/components/default-block-appender/test/__snapshots__/index.js.snap +3 -3
  646. package/src/components/duotone-control/index.js +49 -41
  647. package/src/components/duotone-control/style.scss +27 -12
  648. package/src/components/editor-styles/index.js +7 -4
  649. package/src/components/font-appearance-control/index.js +41 -33
  650. package/src/components/font-appearance-control/style.scss +1 -1
  651. package/src/components/iframe/index.js +4 -4
  652. package/src/components/image-editor/aspect-ratio-dropdown.js +129 -0
  653. package/src/components/image-editor/constants.js +6 -0
  654. package/src/components/image-editor/context.js +56 -0
  655. package/src/components/image-editor/cropper.js +74 -0
  656. package/src/components/image-editor/form-controls.js +22 -0
  657. package/src/components/image-editor/index.js +52 -0
  658. package/src/components/image-editor/rotation-button.js +24 -0
  659. package/src/components/image-editor/use-save-image.js +97 -0
  660. package/src/components/image-editor/use-transform-image.js +162 -0
  661. package/src/components/image-editor/zoom-dropdown.js +40 -0
  662. package/src/components/image-size-control/use-dimension-handler.js +18 -1
  663. package/src/components/index.js +7 -6
  664. package/src/components/index.native.js +1 -4
  665. package/src/components/inner-blocks/button-block-appender.js +9 -0
  666. package/src/components/inner-blocks/index.js +8 -4
  667. package/src/components/inner-blocks/index.native.js +7 -4
  668. package/src/components/inner-blocks/use-nested-settings-update.js +26 -11
  669. package/src/components/inserter/block-patterns-explorer/explorer.js +50 -0
  670. package/src/components/inserter/block-patterns-explorer/patterns-list.js +122 -0
  671. package/src/components/inserter/block-patterns-explorer/sidebar.js +73 -0
  672. package/src/components/inserter/block-patterns-tab.js +107 -73
  673. package/src/components/inserter/block-types-tab.native.js +3 -15
  674. package/src/components/inserter/hooks/use-block-type-impressions.native.js +14 -21
  675. package/src/components/inserter/hooks/use-clipboard-block.native.js +3 -2
  676. package/src/components/inserter/index.js +15 -3
  677. package/src/components/inserter/index.native.js +2 -19
  678. package/src/components/inserter/library.js +2 -0
  679. package/src/components/inserter/menu.js +4 -1
  680. package/src/components/inserter/menu.native.js +9 -14
  681. package/src/components/inserter/pattern-panel.js +33 -16
  682. package/src/components/inserter/preview-panel.js +1 -1
  683. package/src/components/inserter/quick-inserter.js +1 -1
  684. package/src/components/inserter/reusable-blocks-tab.native.js +4 -6
  685. package/src/components/inserter/search-results.native.js +5 -15
  686. package/src/components/inserter/style.scss +80 -16
  687. package/src/components/inserter/test/block-types-tab.native.js +1 -1
  688. package/src/components/inserter/test/fixtures/index.native.js +12 -0
  689. package/src/components/inserter/utils.native.js +35 -0
  690. package/src/components/inserter-list-item/style.scss +4 -2
  691. package/src/components/inspector-controls/block-support-slot-container.js +10 -0
  692. package/src/components/inspector-controls/block-support-tools-panel.js +60 -0
  693. package/src/components/inspector-controls/fill.js +23 -2
  694. package/src/components/inspector-controls/groups.js +8 -0
  695. package/src/components/inspector-controls/slot.js +15 -0
  696. package/src/components/letter-spacing-control/index.js +12 -6
  697. package/src/components/link-control/README.md +47 -14
  698. package/src/components/link-control/index.js +102 -31
  699. package/src/components/link-control/link-preview.js +53 -20
  700. package/src/components/link-control/search-input.js +21 -7
  701. package/src/components/link-control/style.scss +66 -19
  702. package/src/components/link-control/test/index.js +311 -4
  703. package/src/components/list-view/block-contents.js +17 -38
  704. package/src/components/list-view/block.js +73 -84
  705. package/src/components/list-view/branch.js +123 -94
  706. package/src/components/list-view/index.js +82 -30
  707. package/src/components/list-view/leaf.js +2 -2
  708. package/src/components/list-view/list-item.js +5 -4
  709. package/src/components/list-view/style.scss +70 -33
  710. package/src/components/list-view/use-list-view-client-ids.js +9 -68
  711. package/src/components/media-placeholder/index.js +26 -19
  712. package/src/components/media-replace-flow/README.md +7 -0
  713. package/src/components/media-replace-flow/index.js +4 -1
  714. package/src/components/media-upload/README.md +1 -1
  715. package/src/components/navigable-toolbar/index.js +1 -4
  716. package/src/components/observe-typing/index.js +3 -2
  717. package/src/components/plain-text/index.native.js +26 -4
  718. package/src/components/rich-text/embed-handler-picker.native.js +68 -0
  719. package/src/components/rich-text/format-edit.js +36 -2
  720. package/src/components/rich-text/format-toolbar/index.js +25 -6
  721. package/src/components/rich-text/index.js +12 -8
  722. package/src/components/rich-text/index.native.js +35 -1
  723. package/src/components/rich-text/use-paste-handler.js +30 -12
  724. package/src/components/rich-text/utils.js +16 -0
  725. package/src/components/skip-to-selected-block/README.md +39 -0
  726. package/src/components/typewriter/index.js +3 -2
  727. package/src/components/url-input/index.js +26 -10
  728. package/src/components/use-moving-animation/index.js +9 -8
  729. package/src/components/use-on-block-drop/index.js +5 -1
  730. package/src/components/use-setting/index.js +49 -11
  731. package/src/components/writing-flow/use-multi-selection.js +6 -0
  732. package/src/components/writing-flow/use-tab-nav.js +17 -3
  733. package/src/hooks/align.js +19 -10
  734. package/src/hooks/anchor.js +2 -2
  735. package/src/hooks/border.js +8 -11
  736. package/src/hooks/color-panel.js +4 -1
  737. package/src/hooks/color.js +7 -4
  738. package/src/hooks/dimensions.js +48 -59
  739. package/src/hooks/duotone.js +68 -19
  740. package/src/hooks/font-appearance.js +38 -7
  741. package/src/hooks/font-family.js +129 -33
  742. package/src/hooks/font-size.js +42 -6
  743. package/src/hooks/gap.js +2 -1
  744. package/src/hooks/index.js +2 -0
  745. package/src/hooks/index.native.js +1 -0
  746. package/src/hooks/layout.scss +8 -0
  747. package/src/hooks/letter-spacing.js +35 -7
  748. package/src/hooks/line-height.js +37 -9
  749. package/src/hooks/lock.js +34 -0
  750. package/src/hooks/margin.js +1 -1
  751. package/src/hooks/padding.js +1 -1
  752. package/src/hooks/style.js +15 -11
  753. package/src/hooks/text-decoration.js +34 -6
  754. package/src/hooks/text-transform.js +34 -6
  755. package/src/hooks/typography.js +165 -15
  756. package/src/hooks/typography.scss +16 -0
  757. package/src/hooks/use-cached-truthy.js +20 -0
  758. package/src/index.js +1 -0
  759. package/src/layouts/flex.js +179 -50
  760. package/src/layouts/flow.js +54 -8
  761. package/src/store/actions.js +239 -377
  762. package/src/store/defaults.native.js +12 -0
  763. package/src/store/index.js +1 -2
  764. package/src/store/reducer.js +54 -18
  765. package/src/store/selectors.js +173 -47
  766. package/src/store/test/actions.js +407 -705
  767. package/src/store/test/reducer.js +22 -54
  768. package/src/store/test/selectors.js +79 -21
  769. package/src/style.scss +2 -1
  770. package/src/utils/index.js +1 -0
  771. package/src/utils/parse-css-unit-to-px.js +43 -1
  772. package/src/utils/test/parse-css-unit-to-px.js +148 -165
  773. package/src/utils/transform-styles/transforms/test/wrap.js +1 -1
  774. package/src/utils/transform-styles/transforms/wrap.js +16 -0
  775. package/tsconfig.tsbuildinfo +1 -1
  776. package/build/components/duotone-control/duotone-picker-popover.js +0 -44
  777. package/build/components/duotone-control/duotone-picker-popover.js.map +0 -1
  778. package/build/components/list-view/block-slot.js +0 -121
  779. package/build/components/list-view/block-slot.js.map +0 -1
  780. package/build/components/list-view/editor.js +0 -35
  781. package/build/components/list-view/editor.js.map +0 -1
  782. package/build/components/text-decoration-and-transform/index.js +0 -39
  783. package/build/components/text-decoration-and-transform/index.js.map +0 -1
  784. package/build/store/controls.js +0 -44
  785. package/build/store/controls.js.map +0 -1
  786. package/build-module/components/duotone-control/duotone-picker-popover.js +0 -35
  787. package/build-module/components/duotone-control/duotone-picker-popover.js.map +0 -1
  788. package/build-module/components/list-view/block-slot.js +0 -96
  789. package/build-module/components/list-view/block-slot.js.map +0 -1
  790. package/build-module/components/list-view/editor.js +0 -25
  791. package/build-module/components/list-view/editor.js.map +0 -1
  792. package/build-module/components/text-decoration-and-transform/index.js +0 -30
  793. package/build-module/components/text-decoration-and-transform/index.js.map +0 -1
  794. package/build-module/store/controls.js +0 -32
  795. package/build-module/store/controls.js.map +0 -1
  796. package/src/components/duotone-control/duotone-picker-popover.js +0 -36
  797. package/src/components/list-view/block-slot.js +0 -120
  798. package/src/components/list-view/editor.js +0 -29
  799. package/src/components/text-decoration-and-transform/index.js +0 -36
  800. package/src/components/text-decoration-and-transform/style.scss +0 -3
  801. package/src/store/controls.js +0 -39
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/use-multi-selection.js"],"names":["toggleRichText","container","toggle","Array","from","closest","querySelectorAll","forEach","node","setAttribute","removeAttribute","useMultiSelection","clientId","startMultiSelect","stopMultiSelect","multiSelect","selectBlock","blockEditorStore","isSelectionEnabled","isBlockSelected","getBlockParents","getBlockSelectionStart","hasMultiSelection","ownerDocument","defaultView","anchorElement","rafId","onSelectionChange","isSelectionEnd","selection","getSelection","rangeCount","isCollapsed","endClientId","focusNode","isSingularSelection","commonAncestorContainer","getRangeAt","contains","focus","startPath","endPath","depth","Math","min","length","onSelectionEnd","removeEventListener","requestAnimationFrame","onMouseLeave","buttons","activeElement","addEventListener","onMouseDown","event","button","shiftKey","blockSelectionStart","preventDefault","cancelAnimationFrame"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../../store';\nimport { getBlockClientId } from '../../../utils/dom';\n\nfunction toggleRichText( container, toggle ) {\n\tArray.from(\n\t\tcontainer\n\t\t\t.closest( '.is-root-container' )\n\t\t\t.querySelectorAll( '.rich-text' )\n\t).forEach( ( node ) => {\n\t\tif ( toggle ) {\n\t\t\tnode.setAttribute( 'contenteditable', true );\n\t\t} else {\n\t\t\tnode.removeAttribute( 'contenteditable' );\n\t\t}\n\t} );\n}\n\n/**\n * Sets a multi-selection based on the native selection across blocks.\n *\n * @param {string} clientId Block client ID.\n */\nexport function useMultiSelection( clientId ) {\n\tconst {\n\t\tstartMultiSelect,\n\t\tstopMultiSelect,\n\t\tmultiSelect,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\tconst {\n\t\tisSelectionEnabled,\n\t\tisBlockSelected,\n\t\tgetBlockParents,\n\t\tgetBlockSelectionStart,\n\t\thasMultiSelection,\n\t} = useSelect( blockEditorStore );\n\treturn useRefEffect(\n\t\t( node ) => {\n\t\t\tconst { ownerDocument } = node;\n\t\t\tconst { defaultView } = ownerDocument;\n\n\t\t\tlet anchorElement;\n\t\t\tlet rafId;\n\n\t\t\tfunction onSelectionChange( { isSelectionEnd } ) {\n\t\t\t\tconst selection = defaultView.getSelection();\n\n\t\t\t\t// If no selection is found, end multi selection and enable all rich\n\t\t\t\t// text areas.\n\t\t\t\tif ( ! selection.rangeCount || selection.isCollapsed ) {\n\t\t\t\t\ttoggleRichText( node, true );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst endClientId = getBlockClientId( selection.focusNode );\n\t\t\t\tconst isSingularSelection = clientId === endClientId;\n\n\t\t\t\tif ( isSingularSelection ) {\n\t\t\t\t\tselectBlock( clientId );\n\n\t\t\t\t\t// If the selection is complete (on mouse up), and no\n\t\t\t\t\t// multiple blocks have been selected, set focus back to the\n\t\t\t\t\t// anchor element. if the anchor element contains the\n\t\t\t\t\t// selection. Additionally, rich text elements that were\n\t\t\t\t\t// previously disabled can now be enabled again.\n\t\t\t\t\tif ( isSelectionEnd ) {\n\t\t\t\t\t\ttoggleRichText( node, true );\n\n\t\t\t\t\t\tif ( selection.rangeCount ) {\n\t\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\t\tcommonAncestorContainer,\n\t\t\t\t\t\t\t} = selection.getRangeAt( 0 );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tanchorElement.contains(\n\t\t\t\t\t\t\t\t\tcommonAncestorContainer\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tanchorElement.focus();\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} else {\n\t\t\t\t\tconst startPath = [\n\t\t\t\t\t\t...getBlockParents( clientId ),\n\t\t\t\t\t\tclientId,\n\t\t\t\t\t];\n\t\t\t\t\tconst endPath = [\n\t\t\t\t\t\t...getBlockParents( endClientId ),\n\t\t\t\t\t\tendClientId,\n\t\t\t\t\t];\n\t\t\t\t\tconst depth =\n\t\t\t\t\t\tMath.min( startPath.length, endPath.length ) - 1;\n\n\t\t\t\t\tmultiSelect( startPath[ depth ], endPath[ depth ] );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction onSelectionEnd() {\n\t\t\t\townerDocument.removeEventListener(\n\t\t\t\t\t'selectionchange',\n\t\t\t\t\tonSelectionChange\n\t\t\t\t);\n\t\t\t\t// Equivalent to attaching the listener once.\n\t\t\t\tdefaultView.removeEventListener( 'mouseup', onSelectionEnd );\n\t\t\t\t// The browser selection won't have updated yet at this point,\n\t\t\t\t// so wait until the next animation frame to get the browser\n\t\t\t\t// selection.\n\t\t\t\trafId = defaultView.requestAnimationFrame( () => {\n\t\t\t\t\tonSelectionChange( { isSelectionEnd: true } );\n\t\t\t\t\tstopMultiSelect();\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tfunction onMouseLeave( { buttons } ) {\n\t\t\t\t// The primary button must be pressed to initiate selection.\n\t\t\t\t// See https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons\n\t\t\t\tif ( buttons !== 1 ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( ! isSelectionEnabled() || ! isBlockSelected( clientId ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tanchorElement = ownerDocument.activeElement;\n\t\t\t\tstartMultiSelect();\n\n\t\t\t\t// `onSelectionStart` is called after `mousedown` and\n\t\t\t\t// `mouseleave` (from a block). The selection ends when\n\t\t\t\t// `mouseup` happens anywhere in the window.\n\t\t\t\townerDocument.addEventListener(\n\t\t\t\t\t'selectionchange',\n\t\t\t\t\tonSelectionChange\n\t\t\t\t);\n\t\t\t\tdefaultView.addEventListener( 'mouseup', onSelectionEnd );\n\n\t\t\t\t// Removing the contenteditable attributes within the block\n\t\t\t\t// editor is essential for selection to work across editable\n\t\t\t\t// areas. The edible hosts are removed, allowing selection to be\n\t\t\t\t// extended outside the DOM element. `startMultiSelect` sets a\n\t\t\t\t// flag in the store so the rich text components are updated,\n\t\t\t\t// but the rerender may happen very slowly, especially in Safari\n\t\t\t\t// for the blocks that are asynchonously rendered. To ensure the\n\t\t\t\t// browser instantly removes the selection boundaries, we remove\n\t\t\t\t// the contenteditable attributes manually.\n\t\t\t\ttoggleRichText( node, false );\n\t\t\t}\n\n\t\t\tfunction onMouseDown( event ) {\n\t\t\t\t// The main button.\n\t\t\t\t// https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button\n\t\t\t\tif ( ! isSelectionEnabled() || event.button !== 0 ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( event.shiftKey ) {\n\t\t\t\t\tconst blockSelectionStart = getBlockSelectionStart();\n\t\t\t\t\t// Handle the case where we select a single block by\n\t\t\t\t\t// holding the `shiftKey` and don't mark this action\n\t\t\t\t\t// as multiselection.\n\t\t\t\t\tif (\n\t\t\t\t\t\tblockSelectionStart &&\n\t\t\t\t\t\tblockSelectionStart !== clientId\n\t\t\t\t\t) {\n\t\t\t\t\t\ttoggleRichText( node, false );\n\t\t\t\t\t\tmultiSelect( blockSelectionStart, clientId );\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t} else if ( hasMultiSelection() ) {\n\t\t\t\t\t// Allow user to escape out of a multi-selection to a\n\t\t\t\t\t// singular selection of a block via click. This is handled\n\t\t\t\t\t// here since focus handling excludes blocks when there is\n\t\t\t\t\t// multiselection, as focus can be incurred by starting a\n\t\t\t\t\t// multiselection (focus moved to first block's multi-\n\t\t\t\t\t// controls).\n\t\t\t\t\tselectBlock( clientId );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tnode.addEventListener( 'mousedown', onMouseDown );\n\t\t\tnode.addEventListener( 'mouseleave', onMouseLeave );\n\n\t\t\treturn () => {\n\t\t\t\tnode.removeEventListener( 'mousedown', onMouseDown );\n\t\t\t\tnode.removeEventListener( 'mouseleave', onMouseLeave );\n\t\t\t\townerDocument.removeEventListener(\n\t\t\t\t\t'selectionchange',\n\t\t\t\t\tonSelectionChange\n\t\t\t\t);\n\t\t\t\tdefaultView.removeEventListener( 'mouseup', onSelectionEnd );\n\t\t\t\tdefaultView.cancelAnimationFrame( rafId );\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tclientId,\n\t\t\tstartMultiSelect,\n\t\t\tstopMultiSelect,\n\t\t\tmultiSelect,\n\t\t\tselectBlock,\n\t\t\tisSelectionEnabled,\n\t\t\tisBlockSelected,\n\t\t\tgetBlockParents,\n\t\t]\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/use-multi-selection.js"],"names":["toggleRichText","container","toggle","Array","from","closest","querySelectorAll","forEach","node","setAttribute","removeAttribute","useMultiSelection","clientId","startMultiSelect","stopMultiSelect","multiSelect","selectBlock","blockEditorStore","isSelectionEnabled","isBlockSelected","getBlockParents","getBlockSelectionStart","hasMultiSelection","ownerDocument","defaultView","anchorElement","rafId","onSelectionChange","isSelectionEnd","selection","getSelection","rangeCount","isCollapsed","endClientId","focusNode","isSingularSelection","commonAncestorContainer","getRangeAt","contains","focus","startPath","endPath","depth","Math","min","length","onSelectionEnd","removeEventListener","requestAnimationFrame","onMouseLeave","buttons","activeElement","addEventListener","onMouseDown","event","button","shiftKey","blockSelectionStart","startParents","includes","start","end","preventDefault","cancelAnimationFrame"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../../store';\nimport { getBlockClientId } from '../../../utils/dom';\n\nfunction toggleRichText( container, toggle ) {\n\tArray.from(\n\t\tcontainer\n\t\t\t.closest( '.is-root-container' )\n\t\t\t.querySelectorAll( '.rich-text' )\n\t).forEach( ( node ) => {\n\t\tif ( toggle ) {\n\t\t\tnode.setAttribute( 'contenteditable', true );\n\t\t} else {\n\t\t\tnode.removeAttribute( 'contenteditable' );\n\t\t}\n\t} );\n}\n\n/**\n * Sets a multi-selection based on the native selection across blocks.\n *\n * @param {string} clientId Block client ID.\n */\nexport function useMultiSelection( clientId ) {\n\tconst {\n\t\tstartMultiSelect,\n\t\tstopMultiSelect,\n\t\tmultiSelect,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\tconst {\n\t\tisSelectionEnabled,\n\t\tisBlockSelected,\n\t\tgetBlockParents,\n\t\tgetBlockSelectionStart,\n\t\thasMultiSelection,\n\t} = useSelect( blockEditorStore );\n\treturn useRefEffect(\n\t\t( node ) => {\n\t\t\tconst { ownerDocument } = node;\n\t\t\tconst { defaultView } = ownerDocument;\n\n\t\t\tlet anchorElement;\n\t\t\tlet rafId;\n\n\t\t\tfunction onSelectionChange( { isSelectionEnd } ) {\n\t\t\t\tconst selection = defaultView.getSelection();\n\n\t\t\t\t// If no selection is found, end multi selection and enable all rich\n\t\t\t\t// text areas.\n\t\t\t\tif ( ! selection.rangeCount || selection.isCollapsed ) {\n\t\t\t\t\ttoggleRichText( node, true );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst endClientId = getBlockClientId( selection.focusNode );\n\t\t\t\tconst isSingularSelection = clientId === endClientId;\n\n\t\t\t\tif ( isSingularSelection ) {\n\t\t\t\t\tselectBlock( clientId );\n\n\t\t\t\t\t// If the selection is complete (on mouse up), and no\n\t\t\t\t\t// multiple blocks have been selected, set focus back to the\n\t\t\t\t\t// anchor element. if the anchor element contains the\n\t\t\t\t\t// selection. Additionally, rich text elements that were\n\t\t\t\t\t// previously disabled can now be enabled again.\n\t\t\t\t\tif ( isSelectionEnd ) {\n\t\t\t\t\t\ttoggleRichText( node, true );\n\n\t\t\t\t\t\tif ( selection.rangeCount ) {\n\t\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\t\tcommonAncestorContainer,\n\t\t\t\t\t\t\t} = selection.getRangeAt( 0 );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tanchorElement.contains(\n\t\t\t\t\t\t\t\t\tcommonAncestorContainer\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tanchorElement.focus();\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} else {\n\t\t\t\t\tconst startPath = [\n\t\t\t\t\t\t...getBlockParents( clientId ),\n\t\t\t\t\t\tclientId,\n\t\t\t\t\t];\n\t\t\t\t\tconst endPath = [\n\t\t\t\t\t\t...getBlockParents( endClientId ),\n\t\t\t\t\t\tendClientId,\n\t\t\t\t\t];\n\t\t\t\t\tconst depth =\n\t\t\t\t\t\tMath.min( startPath.length, endPath.length ) - 1;\n\n\t\t\t\t\tmultiSelect( startPath[ depth ], endPath[ depth ] );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction onSelectionEnd() {\n\t\t\t\townerDocument.removeEventListener(\n\t\t\t\t\t'selectionchange',\n\t\t\t\t\tonSelectionChange\n\t\t\t\t);\n\t\t\t\t// Equivalent to attaching the listener once.\n\t\t\t\tdefaultView.removeEventListener( 'mouseup', onSelectionEnd );\n\t\t\t\t// The browser selection won't have updated yet at this point,\n\t\t\t\t// so wait until the next animation frame to get the browser\n\t\t\t\t// selection.\n\t\t\t\trafId = defaultView.requestAnimationFrame( () => {\n\t\t\t\t\tonSelectionChange( { isSelectionEnd: true } );\n\t\t\t\t\tstopMultiSelect();\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tfunction onMouseLeave( { buttons } ) {\n\t\t\t\t// The primary button must be pressed to initiate selection.\n\t\t\t\t// See https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons\n\t\t\t\tif ( buttons !== 1 ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( ! isSelectionEnabled() || ! isBlockSelected( clientId ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tanchorElement = ownerDocument.activeElement;\n\t\t\t\tstartMultiSelect();\n\n\t\t\t\t// `onSelectionStart` is called after `mousedown` and\n\t\t\t\t// `mouseleave` (from a block). The selection ends when\n\t\t\t\t// `mouseup` happens anywhere in the window.\n\t\t\t\townerDocument.addEventListener(\n\t\t\t\t\t'selectionchange',\n\t\t\t\t\tonSelectionChange\n\t\t\t\t);\n\t\t\t\tdefaultView.addEventListener( 'mouseup', onSelectionEnd );\n\n\t\t\t\t// Removing the contenteditable attributes within the block\n\t\t\t\t// editor is essential for selection to work across editable\n\t\t\t\t// areas. The edible hosts are removed, allowing selection to be\n\t\t\t\t// extended outside the DOM element. `startMultiSelect` sets a\n\t\t\t\t// flag in the store so the rich text components are updated,\n\t\t\t\t// but the rerender may happen very slowly, especially in Safari\n\t\t\t\t// for the blocks that are asynchonously rendered. To ensure the\n\t\t\t\t// browser instantly removes the selection boundaries, we remove\n\t\t\t\t// the contenteditable attributes manually.\n\t\t\t\ttoggleRichText( node, false );\n\t\t\t}\n\n\t\t\tfunction onMouseDown( event ) {\n\t\t\t\t// The main button.\n\t\t\t\t// https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button\n\t\t\t\tif ( ! isSelectionEnabled() || event.button !== 0 ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( event.shiftKey ) {\n\t\t\t\t\tconst blockSelectionStart = getBlockSelectionStart();\n\t\t\t\t\t// By checking `blockSelectionStart` to be set, we handle the\n\t\t\t\t\t// case where we select a single block. We also have to check\n\t\t\t\t\t// the selectionEnd (clientId) not to be included in the\n\t\t\t\t\t// `blockSelectionStart`'s parents because the click event is\n\t\t\t\t\t// propagated.\n\t\t\t\t\tconst startParents = getBlockParents( blockSelectionStart );\n\t\t\t\t\tif (\n\t\t\t\t\t\tblockSelectionStart &&\n\t\t\t\t\t\tblockSelectionStart !== clientId &&\n\t\t\t\t\t\t! startParents?.includes( clientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst startPath = [\n\t\t\t\t\t\t\t...startParents,\n\t\t\t\t\t\t\tblockSelectionStart,\n\t\t\t\t\t\t];\n\t\t\t\t\t\tconst endPath = [\n\t\t\t\t\t\t\t...getBlockParents( clientId ),\n\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t];\n\t\t\t\t\t\tconst depth =\n\t\t\t\t\t\t\tMath.min( startPath.length, endPath.length ) - 1;\n\t\t\t\t\t\tconst start = startPath[ depth ];\n\t\t\t\t\t\tconst end = endPath[ depth ];\n\t\t\t\t\t\t// Handle the case of having selected a parent block and\n\t\t\t\t\t\t// then sfift+click on a child.\n\t\t\t\t\t\tif ( start !== end ) {\n\t\t\t\t\t\t\ttoggleRichText( node, false );\n\t\t\t\t\t\t\tmultiSelect( start, end );\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if ( hasMultiSelection() ) {\n\t\t\t\t\t// Allow user to escape out of a multi-selection to a\n\t\t\t\t\t// singular selection of a block via click. This is handled\n\t\t\t\t\t// here since focus handling excludes blocks when there is\n\t\t\t\t\t// multiselection, as focus can be incurred by starting a\n\t\t\t\t\t// multiselection (focus moved to first block's multi-\n\t\t\t\t\t// controls).\n\t\t\t\t\tselectBlock( clientId );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tnode.addEventListener( 'mousedown', onMouseDown );\n\t\t\tnode.addEventListener( 'mouseleave', onMouseLeave );\n\n\t\t\treturn () => {\n\t\t\t\tnode.removeEventListener( 'mousedown', onMouseDown );\n\t\t\t\tnode.removeEventListener( 'mouseleave', onMouseLeave );\n\t\t\t\townerDocument.removeEventListener(\n\t\t\t\t\t'selectionchange',\n\t\t\t\t\tonSelectionChange\n\t\t\t\t);\n\t\t\t\tdefaultView.removeEventListener( 'mouseup', onSelectionEnd );\n\t\t\t\tdefaultView.cancelAnimationFrame( rafId );\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tclientId,\n\t\t\tstartMultiSelect,\n\t\t\tstopMultiSelect,\n\t\t\tmultiSelect,\n\t\t\tselectBlock,\n\t\t\tisSelectionEnabled,\n\t\t\tisBlockSelected,\n\t\t\tgetBlockParents,\n\t\t]\n\t);\n}\n"]}
@@ -89,7 +89,15 @@ function BlockListAppender({
89
89
  // See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus
90
90
  , {
91
91
  tabIndex: -1,
92
- className: (0, _classnames.default)('block-list-appender wp-block', className)
92
+ className: (0, _classnames.default)('block-list-appender wp-block', className) // The appender exists to let you add the first Paragraph before
93
+ // any is inserted. To that end, this appender should visually be
94
+ // presented as a block. That means theme CSS should style it as if
95
+ // it were an empty paragraph block. That means a `wp-block` class to
96
+ // ensure the width is correct, and a [data-block] attribute to ensure
97
+ // the correct margin is applied, especially for classic themes which
98
+ // have commonly targeted that attribute for margins.
99
+ ,
100
+ "data-block": true
93
101
  }, appender);
94
102
  }
95
103
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-list-appender/index.js"],"names":["BlockListAppender","blockClientIds","rootClientId","canInsertDefaultBlock","isLocked","renderAppender","CustomAppender","className","selectedBlockClientId","tagName","TagName","appender","isDocumentAppender","isParentSelected","isAnotherDefaultAppenderAlreadyDisplayed","includes","select","getBlockOrder","canInsertBlockType","getTemplateLock","getSelectedBlockClientId","blockEditorStore"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AAKA;;AACA;;AAKA;;AACA;;AACA;;AAjBA;AACA;AACA;;AAIA;AACA;AACA;;AAIA;AACA;AACA;AAKA,SAASA,iBAAT,CAA4B;AAC3BC,EAAAA,cAD2B;AAE3BC,EAAAA,YAF2B;AAG3BC,EAAAA,qBAH2B;AAI3BC,EAAAA,QAJ2B;AAK3BC,EAAAA,cAAc,EAAEC,cALW;AAM3BC,EAAAA,SAN2B;AAO3BC,EAAAA,qBAP2B;AAQ3BC,EAAAA,OAAO,EAAEC,OAAO,GAAG;AARQ,CAA5B,EASI;AACH,MAAKN,QAAQ,IAAIE,cAAc,KAAK,KAApC,EAA4C;AAC3C,WAAO,IAAP;AACA;;AAED,MAAIK,QAAJ;;AACA,MAAKL,cAAL,EAAsB;AACrB;AACAK,IAAAA,QAAQ,GAAG,4BAAC,cAAD,OAAX;AACA,GAHD,MAGO;AACN,UAAMC,kBAAkB,GAAG,CAAEV,YAA7B;AACA,UAAMW,gBAAgB,GAAGL,qBAAqB,KAAKN,YAAnD;AACA,UAAMY,wCAAwC,GAC7CN,qBAAqB,IACrB,CAAEP,cAAc,CAACc,QAAf,CAAyBP,qBAAzB,CAFH;;AAIA,QACC,CAAEI,kBAAF,IACA,CAAEC,gBADF,KAEE,CAAEL,qBAAF,IACDM,wCAHD,CADD,EAKE;AACD,aAAO,IAAP;AACA;;AAED,QAAKX,qBAAL,EAA6B;AAC5B;AACA;AACAQ,MAAAA,QAAQ,GACP,4BAAC,6BAAD;AACC,QAAA,YAAY,EAAGT,YADhB;AAEC,QAAA,iBAAiB,EAAG,kBAAMD,cAAN;AAFrB,QADD;AAMA,KATD,MASO;AACN;AACA;AACAU,MAAAA,QAAQ,GACP,4BAAC,4BAAD;AACC,QAAA,YAAY,EAAGT,YADhB;AAEC,QAAA,SAAS,EAAC;AAFX,QADD;AAMA;AACD;;AAED,SACC,4BAAC,OAAD,CACC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARD;AASC,IAAA,QAAQ,EAAG,CAAC,CATb;AAUC,IAAA,SAAS,EAAG,yBACX,8BADW,EAEXK,SAFW;AAVb,KAeGI,QAfH,CADD;AAmBA;;eAEc,sBAAY,CAAEK,MAAF,EAAU;AAAEd,EAAAA;AAAF,CAAV,KAAgC;AAC1D,QAAM;AACLe,IAAAA,aADK;AAELC,IAAAA,kBAFK;AAGLC,IAAAA,eAHK;AAILC,IAAAA;AAJK,MAKFJ,MAAM,CAAEK,YAAF,CALV;AAOA,SAAO;AACNjB,IAAAA,QAAQ,EAAE,CAAC,CAAEe,eAAe,CAAEjB,YAAF,CADtB;AAEND,IAAAA,cAAc,EAAEgB,aAAa,CAAEf,YAAF,CAFvB;AAGNC,IAAAA,qBAAqB,EAAEe,kBAAkB,CACxC,kCADwC,EAExChB,YAFwC,CAHnC;AAONM,IAAAA,qBAAqB,EAAEY,wBAAwB;AAPzC,GAAP;AASA,CAjBc,EAiBVpB,iBAjBU,C","sourcesContent":["/**\n * External dependencies\n */\nimport { last } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { withSelect } from '@wordpress/data';\nimport { getDefaultBlockName } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport DefaultBlockAppender from '../default-block-appender';\nimport ButtonBlockAppender from '../button-block-appender';\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockListAppender( {\n\tblockClientIds,\n\trootClientId,\n\tcanInsertDefaultBlock,\n\tisLocked,\n\trenderAppender: CustomAppender,\n\tclassName,\n\tselectedBlockClientId,\n\ttagName: TagName = 'div',\n} ) {\n\tif ( isLocked || CustomAppender === false ) {\n\t\treturn null;\n\t}\n\n\tlet appender;\n\tif ( CustomAppender ) {\n\t\t// Prefer custom render prop if provided.\n\t\tappender = <CustomAppender />;\n\t} else {\n\t\tconst isDocumentAppender = ! rootClientId;\n\t\tconst isParentSelected = selectedBlockClientId === rootClientId;\n\t\tconst isAnotherDefaultAppenderAlreadyDisplayed =\n\t\t\tselectedBlockClientId &&\n\t\t\t! blockClientIds.includes( selectedBlockClientId );\n\n\t\tif (\n\t\t\t! isDocumentAppender &&\n\t\t\t! isParentSelected &&\n\t\t\t( ! selectedBlockClientId ||\n\t\t\t\tisAnotherDefaultAppenderAlreadyDisplayed )\n\t\t) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif ( canInsertDefaultBlock ) {\n\t\t\t// Render the default block appender when renderAppender has not been\n\t\t\t// provided and the context supports use of the default appender.\n\t\t\tappender = (\n\t\t\t\t<DefaultBlockAppender\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tlastBlockClientId={ last( blockClientIds ) }\n\t\t\t\t/>\n\t\t\t);\n\t\t} else {\n\t\t\t// Fallback in the case no renderAppender has been provided and the\n\t\t\t// default block can't be inserted.\n\t\t\tappender = (\n\t\t\t\t<ButtonBlockAppender\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tclassName=\"block-list-appender__toggle\"\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\t}\n\n\treturn (\n\t\t<TagName\n\t\t\t// A `tabIndex` is used on the wrapping `div` element in order to\n\t\t\t// force a focus event to occur when an appender `button` element\n\t\t\t// is clicked. In some browsers (Firefox, Safari), button clicks do\n\t\t\t// not emit a focus event, which could cause this event to propagate\n\t\t\t// unexpectedly. The `tabIndex` ensures that the interaction is\n\t\t\t// captured as a focus, without also adding an extra tab stop.\n\t\t\t//\n\t\t\t// See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n\t\t\ttabIndex={ -1 }\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-list-appender wp-block',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t>\n\t\t\t{ appender }\n\t\t</TagName>\n\t);\n}\n\nexport default withSelect( ( select, { rootClientId } ) => {\n\tconst {\n\t\tgetBlockOrder,\n\t\tcanInsertBlockType,\n\t\tgetTemplateLock,\n\t\tgetSelectedBlockClientId,\n\t} = select( blockEditorStore );\n\n\treturn {\n\t\tisLocked: !! getTemplateLock( rootClientId ),\n\t\tblockClientIds: getBlockOrder( rootClientId ),\n\t\tcanInsertDefaultBlock: canInsertBlockType(\n\t\t\tgetDefaultBlockName(),\n\t\t\trootClientId\n\t\t),\n\t\tselectedBlockClientId: getSelectedBlockClientId(),\n\t};\n} )( BlockListAppender );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-list-appender/index.js"],"names":["BlockListAppender","blockClientIds","rootClientId","canInsertDefaultBlock","isLocked","renderAppender","CustomAppender","className","selectedBlockClientId","tagName","TagName","appender","isDocumentAppender","isParentSelected","isAnotherDefaultAppenderAlreadyDisplayed","includes","select","getBlockOrder","canInsertBlockType","getTemplateLock","getSelectedBlockClientId","blockEditorStore"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AAKA;;AACA;;AAKA;;AACA;;AACA;;AAjBA;AACA;AACA;;AAIA;AACA;AACA;;AAIA;AACA;AACA;AAKA,SAASA,iBAAT,CAA4B;AAC3BC,EAAAA,cAD2B;AAE3BC,EAAAA,YAF2B;AAG3BC,EAAAA,qBAH2B;AAI3BC,EAAAA,QAJ2B;AAK3BC,EAAAA,cAAc,EAAEC,cALW;AAM3BC,EAAAA,SAN2B;AAO3BC,EAAAA,qBAP2B;AAQ3BC,EAAAA,OAAO,EAAEC,OAAO,GAAG;AARQ,CAA5B,EASI;AACH,MAAKN,QAAQ,IAAIE,cAAc,KAAK,KAApC,EAA4C;AAC3C,WAAO,IAAP;AACA;;AAED,MAAIK,QAAJ;;AACA,MAAKL,cAAL,EAAsB;AACrB;AACAK,IAAAA,QAAQ,GAAG,4BAAC,cAAD,OAAX;AACA,GAHD,MAGO;AACN,UAAMC,kBAAkB,GAAG,CAAEV,YAA7B;AACA,UAAMW,gBAAgB,GAAGL,qBAAqB,KAAKN,YAAnD;AACA,UAAMY,wCAAwC,GAC7CN,qBAAqB,IACrB,CAAEP,cAAc,CAACc,QAAf,CAAyBP,qBAAzB,CAFH;;AAIA,QACC,CAAEI,kBAAF,IACA,CAAEC,gBADF,KAEE,CAAEL,qBAAF,IACDM,wCAHD,CADD,EAKE;AACD,aAAO,IAAP;AACA;;AAED,QAAKX,qBAAL,EAA6B;AAC5B;AACA;AACAQ,MAAAA,QAAQ,GACP,4BAAC,6BAAD;AACC,QAAA,YAAY,EAAGT,YADhB;AAEC,QAAA,iBAAiB,EAAG,kBAAMD,cAAN;AAFrB,QADD;AAMA,KATD,MASO;AACN;AACA;AACAU,MAAAA,QAAQ,GACP,4BAAC,4BAAD;AACC,QAAA,YAAY,EAAGT,YADhB;AAEC,QAAA,SAAS,EAAC;AAFX,QADD;AAMA;AACD;;AAED,SACC,4BAAC,OAAD,CACC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARD;AASC,IAAA,QAAQ,EAAG,CAAC,CATb;AAUC,IAAA,SAAS,EAAG,yBACX,8BADW,EAEXK,SAFW,CAVb,CAcC;AACA;AACA;AACA;AACA;AACA;AACA;AApBD;AAqBC;AArBD,KAuBGI,QAvBH,CADD;AA2BA;;eAEc,sBAAY,CAAEK,MAAF,EAAU;AAAEd,EAAAA;AAAF,CAAV,KAAgC;AAC1D,QAAM;AACLe,IAAAA,aADK;AAELC,IAAAA,kBAFK;AAGLC,IAAAA,eAHK;AAILC,IAAAA;AAJK,MAKFJ,MAAM,CAAEK,YAAF,CALV;AAOA,SAAO;AACNjB,IAAAA,QAAQ,EAAE,CAAC,CAAEe,eAAe,CAAEjB,YAAF,CADtB;AAEND,IAAAA,cAAc,EAAEgB,aAAa,CAAEf,YAAF,CAFvB;AAGNC,IAAAA,qBAAqB,EAAEe,kBAAkB,CACxC,kCADwC,EAExChB,YAFwC,CAHnC;AAONM,IAAAA,qBAAqB,EAAEY,wBAAwB;AAPzC,GAAP;AASA,CAjBc,EAiBVpB,iBAjBU,C","sourcesContent":["/**\n * External dependencies\n */\nimport { last } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { withSelect } from '@wordpress/data';\nimport { getDefaultBlockName } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport DefaultBlockAppender from '../default-block-appender';\nimport ButtonBlockAppender from '../button-block-appender';\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockListAppender( {\n\tblockClientIds,\n\trootClientId,\n\tcanInsertDefaultBlock,\n\tisLocked,\n\trenderAppender: CustomAppender,\n\tclassName,\n\tselectedBlockClientId,\n\ttagName: TagName = 'div',\n} ) {\n\tif ( isLocked || CustomAppender === false ) {\n\t\treturn null;\n\t}\n\n\tlet appender;\n\tif ( CustomAppender ) {\n\t\t// Prefer custom render prop if provided.\n\t\tappender = <CustomAppender />;\n\t} else {\n\t\tconst isDocumentAppender = ! rootClientId;\n\t\tconst isParentSelected = selectedBlockClientId === rootClientId;\n\t\tconst isAnotherDefaultAppenderAlreadyDisplayed =\n\t\t\tselectedBlockClientId &&\n\t\t\t! blockClientIds.includes( selectedBlockClientId );\n\n\t\tif (\n\t\t\t! isDocumentAppender &&\n\t\t\t! isParentSelected &&\n\t\t\t( ! selectedBlockClientId ||\n\t\t\t\tisAnotherDefaultAppenderAlreadyDisplayed )\n\t\t) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif ( canInsertDefaultBlock ) {\n\t\t\t// Render the default block appender when renderAppender has not been\n\t\t\t// provided and the context supports use of the default appender.\n\t\t\tappender = (\n\t\t\t\t<DefaultBlockAppender\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tlastBlockClientId={ last( blockClientIds ) }\n\t\t\t\t/>\n\t\t\t);\n\t\t} else {\n\t\t\t// Fallback in the case no renderAppender has been provided and the\n\t\t\t// default block can't be inserted.\n\t\t\tappender = (\n\t\t\t\t<ButtonBlockAppender\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tclassName=\"block-list-appender__toggle\"\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\t}\n\n\treturn (\n\t\t<TagName\n\t\t\t// A `tabIndex` is used on the wrapping `div` element in order to\n\t\t\t// force a focus event to occur when an appender `button` element\n\t\t\t// is clicked. In some browsers (Firefox, Safari), button clicks do\n\t\t\t// not emit a focus event, which could cause this event to propagate\n\t\t\t// unexpectedly. The `tabIndex` ensures that the interaction is\n\t\t\t// captured as a focus, without also adding an extra tab stop.\n\t\t\t//\n\t\t\t// See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n\t\t\ttabIndex={ -1 }\n\t\t\tclassName={ classnames(\n\t\t\t\t'block-list-appender wp-block',\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\t// The appender exists to let you add the first Paragraph before\n\t\t\t// any is inserted. To that end, this appender should visually be\n\t\t\t// presented as a block. That means theme CSS should style it as if\n\t\t\t// it were an empty paragraph block. That means a `wp-block` class to\n\t\t\t// ensure the width is correct, and a [data-block] attribute to ensure\n\t\t\t// the correct margin is applied, especially for classic themes which\n\t\t\t// have commonly targeted that attribute for margins.\n\t\t\tdata-block\n\t\t>\n\t\t\t{ appender }\n\t\t</TagName>\n\t);\n}\n\nexport default withSelect( ( select, { rootClientId } ) => {\n\tconst {\n\t\tgetBlockOrder,\n\t\tcanInsertBlockType,\n\t\tgetTemplateLock,\n\t\tgetSelectedBlockClientId,\n\t} = select( blockEditorStore );\n\n\treturn {\n\t\tisLocked: !! getTemplateLock( rootClientId ),\n\t\tblockClientIds: getBlockOrder( rootClientId ),\n\t\tcanInsertDefaultBlock: canInsertBlockType(\n\t\t\tgetDefaultBlockName(),\n\t\t\trootClientId\n\t\t),\n\t\tselectedBlockClientId: getSelectedBlockClientId(),\n\t};\n} )( BlockListAppender );\n"]}
@@ -46,7 +46,7 @@ function BlockMover({
46
46
  isFirst,
47
47
  isLast,
48
48
  clientIds,
49
- isLocked,
49
+ canMove,
50
50
  isHidden,
51
51
  rootClientId,
52
52
  orientation,
@@ -58,7 +58,7 @@ function BlockMover({
58
58
 
59
59
  const onBlur = () => setIsFocused(false);
60
60
 
61
- if (isLocked || isFirst && isLast && !rootClientId) {
61
+ if (!canMove || isFirst && isLast && !rootClientId) {
62
62
  return null;
63
63
  }
64
64
 
@@ -107,7 +107,7 @@ var _default = (0, _data.withSelect)((select, {
107
107
  getBlock,
108
108
  getBlockIndex,
109
109
  getBlockListSettings,
110
- getTemplateLock,
110
+ canMoveBlocks,
111
111
  getBlockOrder,
112
112
  getBlockRootClientId
113
113
  } = select(_store.store);
@@ -122,7 +122,7 @@ var _default = (0, _data.withSelect)((select, {
122
122
  const isLast = lastIndex === blockOrder.length - 1;
123
123
  return {
124
124
  blockType: block ? (0, _blocks.getBlockType)(block.name) : null,
125
- isLocked: getTemplateLock(rootClientId) === 'all',
125
+ canMove: canMoveBlocks(clientIds, rootClientId),
126
126
  rootClientId,
127
127
  firstIndex,
128
128
  isFirst,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-mover/index.js"],"names":["BlockMover","isFirst","isLast","clientIds","isLocked","isHidden","rootClientId","orientation","hideDragHandle","isFocused","setIsFocused","onFocus","onBlur","dragHandleLabel","draggableProps","dragHandle","itemProps","select","getBlock","getBlockIndex","getBlockListSettings","getTemplateLock","getBlockOrder","getBlockRootClientId","blockEditorStore","normalizedClientIds","firstClientId","block","firstIndex","lastIndex","blockOrder","length","blockType","name"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { first, last, castArray } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\n\nimport { dragHandle } from '@wordpress/icons';\nimport { ToolbarGroup, ToolbarItem, Button } from '@wordpress/components';\nimport { getBlockType } from '@wordpress/blocks';\nimport { useState } from '@wordpress/element';\nimport { withSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockDraggable from '../block-draggable';\nimport { BlockMoverUpButton, BlockMoverDownButton } from './button';\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockMover( {\n\tisFirst,\n\tisLast,\n\tclientIds,\n\tisLocked,\n\tisHidden,\n\trootClientId,\n\torientation,\n\thideDragHandle,\n} ) {\n\tconst [ isFocused, setIsFocused ] = useState( false );\n\n\tconst onFocus = () => setIsFocused( true );\n\tconst onBlur = () => setIsFocused( false );\n\n\tif ( isLocked || ( isFirst && isLast && ! rootClientId ) ) {\n\t\treturn null;\n\t}\n\n\tconst dragHandleLabel = __( 'Drag' );\n\n\t// We emulate a disabled state because forcefully applying the `disabled`\n\t// attribute on the buttons while it has focus causes the screen to change\n\t// to an unfocused state (body as active element) without firing blur on,\n\t// the rendering parent, leaving it unable to react to focus out.\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames( 'block-editor-block-mover', {\n\t\t\t\t'is-visible': isFocused || ! isHidden,\n\t\t\t\t'is-horizontal': orientation === 'horizontal',\n\t\t\t} ) }\n\t\t>\n\t\t\t{ ! hideDragHandle && (\n\t\t\t\t<BlockDraggable\n\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\tcloneClassname=\"block-editor-block-mover__drag-clone\"\n\t\t\t\t>\n\t\t\t\t\t{ ( draggableProps ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={ dragHandle }\n\t\t\t\t\t\t\tclassName=\"block-editor-block-mover__drag-handle\"\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\tlabel={ dragHandleLabel }\n\t\t\t\t\t\t\t// Should not be able to tab to drag handle as this\n\t\t\t\t\t\t\t// button can only be used with a pointer device.\n\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t{ ...draggableProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockDraggable>\n\t\t\t) }\n\t\t\t<ToolbarGroup className=\"block-editor-block-mover__move-button-container\">\n\t\t\t\t<ToolbarItem onFocus={ onFocus } onBlur={ onBlur }>\n\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarItem>\n\t\t\t\t<ToolbarItem onFocus={ onFocus } onBlur={ onBlur }>\n\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t{ ...itemProps }\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</div>\n\t);\n}\n\nexport default withSelect( ( select, { clientIds } ) => {\n\tconst {\n\t\tgetBlock,\n\t\tgetBlockIndex,\n\t\tgetBlockListSettings,\n\t\tgetTemplateLock,\n\t\tgetBlockOrder,\n\t\tgetBlockRootClientId,\n\t} = select( blockEditorStore );\n\tconst normalizedClientIds = castArray( clientIds );\n\tconst firstClientId = first( normalizedClientIds );\n\tconst block = getBlock( firstClientId );\n\tconst rootClientId = getBlockRootClientId( first( normalizedClientIds ) );\n\tconst firstIndex = getBlockIndex( firstClientId, rootClientId );\n\tconst lastIndex = getBlockIndex(\n\t\tlast( normalizedClientIds ),\n\t\trootClientId\n\t);\n\tconst blockOrder = getBlockOrder( rootClientId );\n\tconst isFirst = firstIndex === 0;\n\tconst isLast = lastIndex === blockOrder.length - 1;\n\n\treturn {\n\t\tblockType: block ? getBlockType( block.name ) : null,\n\t\tisLocked: getTemplateLock( rootClientId ) === 'all',\n\t\trootClientId,\n\t\tfirstIndex,\n\t\tisFirst,\n\t\tisLast,\n\t\torientation: getBlockListSettings( rootClientId )?.orientation,\n\t};\n} )( BlockMover );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-mover/index.js"],"names":["BlockMover","isFirst","isLast","clientIds","canMove","isHidden","rootClientId","orientation","hideDragHandle","isFocused","setIsFocused","onFocus","onBlur","dragHandleLabel","draggableProps","dragHandle","itemProps","select","getBlock","getBlockIndex","getBlockListSettings","canMoveBlocks","getBlockOrder","getBlockRootClientId","blockEditorStore","normalizedClientIds","firstClientId","block","firstIndex","lastIndex","blockOrder","length","blockType","name"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { first, last, castArray } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\n\nimport { dragHandle } from '@wordpress/icons';\nimport { ToolbarGroup, ToolbarItem, Button } from '@wordpress/components';\nimport { getBlockType } from '@wordpress/blocks';\nimport { useState } from '@wordpress/element';\nimport { withSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockDraggable from '../block-draggable';\nimport { BlockMoverUpButton, BlockMoverDownButton } from './button';\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockMover( {\n\tisFirst,\n\tisLast,\n\tclientIds,\n\tcanMove,\n\tisHidden,\n\trootClientId,\n\torientation,\n\thideDragHandle,\n} ) {\n\tconst [ isFocused, setIsFocused ] = useState( false );\n\n\tconst onFocus = () => setIsFocused( true );\n\tconst onBlur = () => setIsFocused( false );\n\n\tif ( ! canMove || ( isFirst && isLast && ! rootClientId ) ) {\n\t\treturn null;\n\t}\n\n\tconst dragHandleLabel = __( 'Drag' );\n\n\t// We emulate a disabled state because forcefully applying the `disabled`\n\t// attribute on the buttons while it has focus causes the screen to change\n\t// to an unfocused state (body as active element) without firing blur on,\n\t// the rendering parent, leaving it unable to react to focus out.\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames( 'block-editor-block-mover', {\n\t\t\t\t'is-visible': isFocused || ! isHidden,\n\t\t\t\t'is-horizontal': orientation === 'horizontal',\n\t\t\t} ) }\n\t\t>\n\t\t\t{ ! hideDragHandle && (\n\t\t\t\t<BlockDraggable\n\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\tcloneClassname=\"block-editor-block-mover__drag-clone\"\n\t\t\t\t>\n\t\t\t\t\t{ ( draggableProps ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={ dragHandle }\n\t\t\t\t\t\t\tclassName=\"block-editor-block-mover__drag-handle\"\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\tlabel={ dragHandleLabel }\n\t\t\t\t\t\t\t// Should not be able to tab to drag handle as this\n\t\t\t\t\t\t\t// button can only be used with a pointer device.\n\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t{ ...draggableProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</BlockDraggable>\n\t\t\t) }\n\t\t\t<ToolbarGroup className=\"block-editor-block-mover__move-button-container\">\n\t\t\t\t<ToolbarItem onFocus={ onFocus } onBlur={ onBlur }>\n\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t{ ...itemProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarItem>\n\t\t\t\t<ToolbarItem onFocus={ onFocus } onBlur={ onBlur }>\n\t\t\t\t\t{ ( itemProps ) => (\n\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\tclientIds={ clientIds }\n\t\t\t\t\t\t\t{ ...itemProps }\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</div>\n\t);\n}\n\nexport default withSelect( ( select, { clientIds } ) => {\n\tconst {\n\t\tgetBlock,\n\t\tgetBlockIndex,\n\t\tgetBlockListSettings,\n\t\tcanMoveBlocks,\n\t\tgetBlockOrder,\n\t\tgetBlockRootClientId,\n\t} = select( blockEditorStore );\n\tconst normalizedClientIds = castArray( clientIds );\n\tconst firstClientId = first( normalizedClientIds );\n\tconst block = getBlock( firstClientId );\n\tconst rootClientId = getBlockRootClientId( first( normalizedClientIds ) );\n\tconst firstIndex = getBlockIndex( firstClientId, rootClientId );\n\tconst lastIndex = getBlockIndex(\n\t\tlast( normalizedClientIds ),\n\t\trootClientId\n\t);\n\tconst blockOrder = getBlockOrder( rootClientId );\n\tconst isFirst = firstIndex === 0;\n\tconst isLast = lastIndex === blockOrder.length - 1;\n\n\treturn {\n\t\tblockType: block ? getBlockType( block.name ) : null,\n\t\tcanMove: canMoveBlocks( clientIds, rootClientId ),\n\t\trootClientId,\n\t\tfirstIndex,\n\t\tisFirst,\n\t\tisLast,\n\t\torientation: getBlockListSettings( rootClientId )?.orientation,\n\t};\n} )( BlockMover );\n"]}
@@ -42,7 +42,7 @@ exports.BLOCK_MOVER_DIRECTION_BOTTOM = BLOCK_MOVER_DIRECTION_BOTTOM;
42
42
  const BlockMover = ({
43
43
  isFirst,
44
44
  isLast,
45
- isLocked,
45
+ canMove,
46
46
  onMoveDown,
47
47
  onMoveUp,
48
48
  onLongMove,
@@ -103,7 +103,7 @@ const BlockMover = ({
103
103
  if (option && option.onSelect) option.onSelect();
104
104
  };
105
105
 
106
- if (isLocked || isFirst && isLast && !rootClientId) {
106
+ if (!canMove || isFirst && isLast && !rootClientId) {
107
107
  return null;
108
108
  }
109
109
 
@@ -142,7 +142,7 @@ var _default = (0, _compose.compose)((0, _data.withSelect)((select, {
142
142
  }) => {
143
143
  const {
144
144
  getBlockIndex,
145
- getTemplateLock,
145
+ canMoveBlocks,
146
146
  getBlockRootClientId,
147
147
  getBlockOrder
148
148
  } = select(_store.store);
@@ -157,7 +157,7 @@ var _default = (0, _compose.compose)((0, _data.withSelect)((select, {
157
157
  numberOfBlocks: blockOrder.length - 1,
158
158
  isFirst: firstIndex === 0,
159
159
  isLast: lastIndex === blockOrder.length - 1,
160
- isLocked: getTemplateLock(rootClientId) === 'all',
160
+ canMove: canMoveBlocks(clientIds, rootClientId),
161
161
  rootClientId
162
162
  };
163
163
  }), (0, _data.withDispatch)((dispatch, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-mover/index.native.js"],"names":["BLOCK_MOVER_DIRECTION_TOP","BLOCK_MOVER_DIRECTION_BOTTOM","BlockMover","isFirst","isLast","isLocked","onMoveDown","onMoveUp","onLongMove","firstIndex","numberOfBlocks","rootClientId","isStackedHorizontally","pickerRef","blockPageMoverState","setBlockPageMoverState","undefined","showBlockPageMover","direction","current","presentPicker","description","backwardButtonHint","forwardButtonHint","firstBlockTitle","lastBlockTitle","icon","backward","backwardButtonIcon","forward","forwardButtonIcon","title","backwardButtonTitle","forwardButtonTitle","blockPageMoverOptions","label","value","onSelect","filter","el","onPickerSelect","option","find","hint","Platform","OS","select","clientIds","getBlockIndex","getTemplateLock","getBlockRootClientId","getBlockOrder","blockEditorStore","normalizedClientIds","firstClientId","blockOrder","lastIndex","length","dispatch","moveBlocksDown","moveBlocksUp","moveBlocksToPosition","targetIndex","withInstanceId"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { first, last, partial, castArray } from 'lodash';\nimport { Platform } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Picker, ToolbarButton } from '@wordpress/components';\nimport { withInstanceId, compose } from '@wordpress/compose';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { useRef, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getMoversSetup } from './mover-description';\nimport { store as blockEditorStore } from '../../store';\n\nexport const BLOCK_MOVER_DIRECTION_TOP = 'blockPageMoverOptions-moveToTop';\nexport const BLOCK_MOVER_DIRECTION_BOTTOM =\n\t'blockPageMoverOptions-moveToBottom';\n\nexport const BlockMover = ( {\n\tisFirst,\n\tisLast,\n\tisLocked,\n\tonMoveDown,\n\tonMoveUp,\n\tonLongMove,\n\tfirstIndex,\n\tnumberOfBlocks,\n\trootClientId,\n\tisStackedHorizontally,\n} ) => {\n\tconst pickerRef = useRef();\n\tconst [ blockPageMoverState, setBlockPageMoverState ] = useState(\n\t\tundefined\n\t);\n\tconst showBlockPageMover = ( direction ) => () => {\n\t\tif ( ! pickerRef.current ) {\n\t\t\tsetBlockPageMoverState( undefined );\n\t\t\treturn;\n\t\t}\n\n\t\tsetBlockPageMoverState( direction );\n\t\tpickerRef.current.presentPicker();\n\t};\n\n\tconst {\n\t\tdescription: {\n\t\t\tbackwardButtonHint,\n\t\t\tforwardButtonHint,\n\t\t\tfirstBlockTitle,\n\t\t\tlastBlockTitle,\n\t\t},\n\t\ticon: { backward: backwardButtonIcon, forward: forwardButtonIcon },\n\t\ttitle: { backward: backwardButtonTitle, forward: forwardButtonTitle },\n\t} = getMoversSetup( isStackedHorizontally, { firstIndex } );\n\n\tconst blockPageMoverOptions = [\n\t\t{\n\t\t\ticon: backwardButtonIcon,\n\t\t\tlabel: __( 'Move to top' ),\n\t\t\tvalue: BLOCK_MOVER_DIRECTION_TOP,\n\t\t\tonSelect: () => {\n\t\t\t\tonLongMove()( 0 );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ticon: forwardButtonIcon,\n\t\t\tlabel: __( 'Move to bottom' ),\n\t\t\tvalue: BLOCK_MOVER_DIRECTION_BOTTOM,\n\t\t\tonSelect: () => {\n\t\t\t\tonLongMove()( numberOfBlocks );\n\t\t\t},\n\t\t},\n\t].filter( ( el ) => el.value === blockPageMoverState );\n\n\tconst onPickerSelect = ( value ) => {\n\t\tconst option = blockPageMoverOptions.find(\n\t\t\t( el ) => el.value === value\n\t\t);\n\t\tif ( option && option.onSelect ) option.onSelect();\n\t};\n\n\tif ( isLocked || ( isFirst && isLast && ! rootClientId ) ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ ! isFirst ? backwardButtonTitle : firstBlockTitle }\n\t\t\t\tisDisabled={ isFirst }\n\t\t\t\tonClick={ onMoveUp }\n\t\t\t\tonLongPress={ showBlockPageMover( BLOCK_MOVER_DIRECTION_TOP ) }\n\t\t\t\ticon={ backwardButtonIcon }\n\t\t\t\textraProps={ { hint: backwardButtonHint } }\n\t\t\t/>\n\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ ! isLast ? forwardButtonTitle : lastBlockTitle }\n\t\t\t\tisDisabled={ isLast }\n\t\t\t\tonClick={ onMoveDown }\n\t\t\t\tonLongPress={ showBlockPageMover(\n\t\t\t\t\tBLOCK_MOVER_DIRECTION_BOTTOM\n\t\t\t\t) }\n\t\t\t\ticon={ forwardButtonIcon }\n\t\t\t\textraProps={ {\n\t\t\t\t\thint: forwardButtonHint,\n\t\t\t\t} }\n\t\t\t/>\n\n\t\t\t<Picker\n\t\t\t\tref={ pickerRef }\n\t\t\t\toptions={ blockPageMoverOptions }\n\t\t\t\tonChange={ onPickerSelect }\n\t\t\t\ttitle={ __( 'Change block position' ) }\n\t\t\t\tleftAlign={ true }\n\t\t\t\thideCancelButton={ Platform.OS !== 'ios' }\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nexport default compose(\n\twithSelect( ( select, { clientIds } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tgetTemplateLock,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockOrder,\n\t\t} = select( blockEditorStore );\n\t\tconst normalizedClientIds = castArray( clientIds );\n\t\tconst firstClientId = first( normalizedClientIds );\n\t\tconst rootClientId = getBlockRootClientId( firstClientId );\n\t\tconst blockOrder = getBlockOrder( rootClientId );\n\t\tconst firstIndex = getBlockIndex( firstClientId, rootClientId );\n\t\tconst lastIndex = getBlockIndex(\n\t\t\tlast( normalizedClientIds ),\n\t\t\trootClientId\n\t\t);\n\n\t\treturn {\n\t\t\tfirstIndex,\n\t\t\tnumberOfBlocks: blockOrder.length - 1,\n\t\t\tisFirst: firstIndex === 0,\n\t\t\tisLast: lastIndex === blockOrder.length - 1,\n\t\t\tisLocked: getTemplateLock( rootClientId ) === 'all',\n\t\t\trootClientId,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, { clientIds, rootClientId } ) => {\n\t\tconst { moveBlocksDown, moveBlocksUp, moveBlocksToPosition } = dispatch(\n\t\t\tblockEditorStore\n\t\t);\n\t\treturn {\n\t\t\tonMoveDown: partial( moveBlocksDown, clientIds, rootClientId ),\n\t\t\tonMoveUp: partial( moveBlocksUp, clientIds, rootClientId ),\n\t\t\tonLongMove: ( targetIndex ) =>\n\t\t\t\tpartial(\n\t\t\t\t\tmoveBlocksToPosition,\n\t\t\t\t\tclientIds,\n\t\t\t\t\trootClientId,\n\t\t\t\t\ttargetIndex\n\t\t\t\t),\n\t\t};\n\t} ),\n\twithInstanceId\n)( BlockMover );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-mover/index.native.js"],"names":["BLOCK_MOVER_DIRECTION_TOP","BLOCK_MOVER_DIRECTION_BOTTOM","BlockMover","isFirst","isLast","canMove","onMoveDown","onMoveUp","onLongMove","firstIndex","numberOfBlocks","rootClientId","isStackedHorizontally","pickerRef","blockPageMoverState","setBlockPageMoverState","undefined","showBlockPageMover","direction","current","presentPicker","description","backwardButtonHint","forwardButtonHint","firstBlockTitle","lastBlockTitle","icon","backward","backwardButtonIcon","forward","forwardButtonIcon","title","backwardButtonTitle","forwardButtonTitle","blockPageMoverOptions","label","value","onSelect","filter","el","onPickerSelect","option","find","hint","Platform","OS","select","clientIds","getBlockIndex","canMoveBlocks","getBlockRootClientId","getBlockOrder","blockEditorStore","normalizedClientIds","firstClientId","blockOrder","lastIndex","length","dispatch","moveBlocksDown","moveBlocksUp","moveBlocksToPosition","targetIndex","withInstanceId"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { first, last, partial, castArray } from 'lodash';\nimport { Platform } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Picker, ToolbarButton } from '@wordpress/components';\nimport { withInstanceId, compose } from '@wordpress/compose';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { useRef, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getMoversSetup } from './mover-description';\nimport { store as blockEditorStore } from '../../store';\n\nexport const BLOCK_MOVER_DIRECTION_TOP = 'blockPageMoverOptions-moveToTop';\nexport const BLOCK_MOVER_DIRECTION_BOTTOM =\n\t'blockPageMoverOptions-moveToBottom';\n\nexport const BlockMover = ( {\n\tisFirst,\n\tisLast,\n\tcanMove,\n\tonMoveDown,\n\tonMoveUp,\n\tonLongMove,\n\tfirstIndex,\n\tnumberOfBlocks,\n\trootClientId,\n\tisStackedHorizontally,\n} ) => {\n\tconst pickerRef = useRef();\n\tconst [ blockPageMoverState, setBlockPageMoverState ] = useState(\n\t\tundefined\n\t);\n\tconst showBlockPageMover = ( direction ) => () => {\n\t\tif ( ! pickerRef.current ) {\n\t\t\tsetBlockPageMoverState( undefined );\n\t\t\treturn;\n\t\t}\n\n\t\tsetBlockPageMoverState( direction );\n\t\tpickerRef.current.presentPicker();\n\t};\n\n\tconst {\n\t\tdescription: {\n\t\t\tbackwardButtonHint,\n\t\t\tforwardButtonHint,\n\t\t\tfirstBlockTitle,\n\t\t\tlastBlockTitle,\n\t\t},\n\t\ticon: { backward: backwardButtonIcon, forward: forwardButtonIcon },\n\t\ttitle: { backward: backwardButtonTitle, forward: forwardButtonTitle },\n\t} = getMoversSetup( isStackedHorizontally, { firstIndex } );\n\n\tconst blockPageMoverOptions = [\n\t\t{\n\t\t\ticon: backwardButtonIcon,\n\t\t\tlabel: __( 'Move to top' ),\n\t\t\tvalue: BLOCK_MOVER_DIRECTION_TOP,\n\t\t\tonSelect: () => {\n\t\t\t\tonLongMove()( 0 );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ticon: forwardButtonIcon,\n\t\t\tlabel: __( 'Move to bottom' ),\n\t\t\tvalue: BLOCK_MOVER_DIRECTION_BOTTOM,\n\t\t\tonSelect: () => {\n\t\t\t\tonLongMove()( numberOfBlocks );\n\t\t\t},\n\t\t},\n\t].filter( ( el ) => el.value === blockPageMoverState );\n\n\tconst onPickerSelect = ( value ) => {\n\t\tconst option = blockPageMoverOptions.find(\n\t\t\t( el ) => el.value === value\n\t\t);\n\t\tif ( option && option.onSelect ) option.onSelect();\n\t};\n\n\tif ( ! canMove || ( isFirst && isLast && ! rootClientId ) ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ ! isFirst ? backwardButtonTitle : firstBlockTitle }\n\t\t\t\tisDisabled={ isFirst }\n\t\t\t\tonClick={ onMoveUp }\n\t\t\t\tonLongPress={ showBlockPageMover( BLOCK_MOVER_DIRECTION_TOP ) }\n\t\t\t\ticon={ backwardButtonIcon }\n\t\t\t\textraProps={ { hint: backwardButtonHint } }\n\t\t\t/>\n\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ ! isLast ? forwardButtonTitle : lastBlockTitle }\n\t\t\t\tisDisabled={ isLast }\n\t\t\t\tonClick={ onMoveDown }\n\t\t\t\tonLongPress={ showBlockPageMover(\n\t\t\t\t\tBLOCK_MOVER_DIRECTION_BOTTOM\n\t\t\t\t) }\n\t\t\t\ticon={ forwardButtonIcon }\n\t\t\t\textraProps={ {\n\t\t\t\t\thint: forwardButtonHint,\n\t\t\t\t} }\n\t\t\t/>\n\n\t\t\t<Picker\n\t\t\t\tref={ pickerRef }\n\t\t\t\toptions={ blockPageMoverOptions }\n\t\t\t\tonChange={ onPickerSelect }\n\t\t\t\ttitle={ __( 'Change block position' ) }\n\t\t\t\tleftAlign={ true }\n\t\t\t\thideCancelButton={ Platform.OS !== 'ios' }\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nexport default compose(\n\twithSelect( ( select, { clientIds } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tcanMoveBlocks,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockOrder,\n\t\t} = select( blockEditorStore );\n\t\tconst normalizedClientIds = castArray( clientIds );\n\t\tconst firstClientId = first( normalizedClientIds );\n\t\tconst rootClientId = getBlockRootClientId( firstClientId );\n\t\tconst blockOrder = getBlockOrder( rootClientId );\n\t\tconst firstIndex = getBlockIndex( firstClientId, rootClientId );\n\t\tconst lastIndex = getBlockIndex(\n\t\t\tlast( normalizedClientIds ),\n\t\t\trootClientId\n\t\t);\n\n\t\treturn {\n\t\t\tfirstIndex,\n\t\t\tnumberOfBlocks: blockOrder.length - 1,\n\t\t\tisFirst: firstIndex === 0,\n\t\t\tisLast: lastIndex === blockOrder.length - 1,\n\t\t\tcanMove: canMoveBlocks( clientIds, rootClientId ),\n\t\t\trootClientId,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, { clientIds, rootClientId } ) => {\n\t\tconst { moveBlocksDown, moveBlocksUp, moveBlocksToPosition } = dispatch(\n\t\t\tblockEditorStore\n\t\t);\n\t\treturn {\n\t\t\tonMoveDown: partial( moveBlocksDown, clientIds, rootClientId ),\n\t\t\tonMoveUp: partial( moveBlocksUp, clientIds, rootClientId ),\n\t\t\tonLongMove: ( targetIndex ) =>\n\t\t\t\tpartial(\n\t\t\t\t\tmoveBlocksToPosition,\n\t\t\t\t\tclientIds,\n\t\t\t\t\trootClientId,\n\t\t\t\t\ttargetIndex\n\t\t\t\t),\n\t\t};\n\t} ),\n\twithInstanceId\n)( BlockMover );\n"]}
@@ -76,7 +76,6 @@ function BlockNavigationDropdown({
76
76
  className: "block-editor-block-navigation__label"
77
77
  }, (0, _i18n.__)('List view')), (0, _element.createElement)(_listView.default, {
78
78
  showNestedBlocks: true,
79
- showOnlyCurrentHierarchy: true,
80
79
  __experimentalFeatures: __experimentalFeatures
81
80
  }))
82
81
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-navigation/dropdown.js"],"names":["BlockNavigationDropdownToggle","isEnabled","onToggle","isOpen","innerRef","props","listView","undefined","BlockNavigationDropdown","isDisabled","__experimentalFeatures","ref","hasBlocks","select","blockEditorStore","getBlockCount"],"mappings":";;;;;;;;;AAMA;;;;AAHA;;AACA;;AACA;;AAEA;;AAKA;;AACA;;AAbA;AACA;AACA;;AAOA;AACA;AACA;AAIA,SAASA,6BAAT,CAAwC;AACvCC,EAAAA,SADuC;AAEvCC,EAAAA,QAFuC;AAGvCC,EAAAA,MAHuC;AAIvCC,EAAAA,QAJuC;AAKvC,KAAGC;AALoC,CAAxC,EAMI;AACH,SACC,4BAAC,kBAAD,6BACMA,KADN;AAEC,IAAA,GAAG,EAAGD,QAFP;AAGC,IAAA,IAAI,EAAGE,eAHR;AAIC,qBAAgBH,MAJjB;AAKC,qBAAc,MALf;AAMC,IAAA,OAAO,EAAGF,SAAS,GAAGC,QAAH,GAAcK;AACjC;AAPD;AAQC,IAAA,KAAK,EAAG,cAAI,WAAJ,CART;AASC,IAAA,SAAS,EAAC,+BATX;AAUC,qBAAgB,CAAEN;AAVnB,KADD;AAcA;;AAED,SAASO,uBAAT,CACC;AAAEC,EAAAA,UAAF;AAAcC,EAAAA,sBAAd;AAAsC,KAAGL;AAAzC,CADD,EAECM,GAFD,EAGE;AACD,QAAMC,SAAS,GAAG,qBACfC,MAAF,IAAc,CAAC,CAAEA,MAAM,CAAEC,YAAF,CAAN,CAA2BC,aAA3B,EADA,EAEjB,EAFiB,CAAlB;AAIA,QAAMd,SAAS,GAAGW,SAAS,IAAI,CAAEH,UAAjC;AAEA,SACC,4BAAC,oBAAD;AACC,IAAA,gBAAgB,EAAC,wCADlB;AAEC,IAAA,QAAQ,EAAC,cAFV;AAGC,IAAA,YAAY,EAAG,CAAE;AAAEN,MAAAA,MAAF;AAAUD,MAAAA;AAAV,KAAF,KACd,4BAAC,6BAAD,6BACMG,KADN;AAEC,MAAA,QAAQ,EAAGM,GAFZ;AAGC,MAAA,MAAM,EAAGR,MAHV;AAIC,MAAA,QAAQ,EAAGD,QAJZ;AAKC,MAAA,SAAS,EAAGD;AALb,OAJF;AAYC,IAAA,aAAa,EAAG,MACf;AAAK,MAAA,SAAS,EAAC;AAAf,OACC;AAAG,MAAA,SAAS,EAAC;AAAb,OACG,cAAI,WAAJ,CADH,CADD,EAKC,4BAAC,iBAAD;AACC,MAAA,gBAAgB,MADjB;AAEC,MAAA,wBAAwB,MAFzB;AAGC,MAAA,sBAAsB,EAAGS;AAH1B,MALD;AAbF,IADD;AA4BA;;eAEc,yBAAYF,uBAAZ,C","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button, Dropdown } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\nimport { listView } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport ListView from '../list-view';\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockNavigationDropdownToggle( {\n\tisEnabled,\n\tonToggle,\n\tisOpen,\n\tinnerRef,\n\t...props\n} ) {\n\treturn (\n\t\t<Button\n\t\t\t{ ...props }\n\t\t\tref={ innerRef }\n\t\t\ticon={ listView }\n\t\t\taria-expanded={ isOpen }\n\t\t\taria-haspopup=\"true\"\n\t\t\tonClick={ isEnabled ? onToggle : undefined }\n\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\tlabel={ __( 'List view' ) }\n\t\t\tclassName=\"block-editor-block-navigation\"\n\t\t\taria-disabled={ ! isEnabled }\n\t\t/>\n\t);\n}\n\nfunction BlockNavigationDropdown(\n\t{ isDisabled, __experimentalFeatures, ...props },\n\tref\n) {\n\tconst hasBlocks = useSelect(\n\t\t( select ) => !! select( blockEditorStore ).getBlockCount(),\n\t\t[]\n\t);\n\tconst isEnabled = hasBlocks && ! isDisabled;\n\n\treturn (\n\t\t<Dropdown\n\t\t\tcontentClassName=\"block-editor-block-navigation__popover\"\n\t\t\tposition=\"bottom right\"\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<BlockNavigationDropdownToggle\n\t\t\t\t\t{ ...props }\n\t\t\t\t\tinnerRef={ ref }\n\t\t\t\t\tisOpen={ isOpen }\n\t\t\t\t\tonToggle={ onToggle }\n\t\t\t\t\tisEnabled={ isEnabled }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\trenderContent={ () => (\n\t\t\t\t<div className=\"block-editor-block-navigation__container\">\n\t\t\t\t\t<p className=\"block-editor-block-navigation__label\">\n\t\t\t\t\t\t{ __( 'List view' ) }\n\t\t\t\t\t</p>\n\n\t\t\t\t\t<ListView\n\t\t\t\t\t\tshowNestedBlocks\n\t\t\t\t\t\tshowOnlyCurrentHierarchy\n\t\t\t\t\t\t__experimentalFeatures={ __experimentalFeatures }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nexport default forwardRef( BlockNavigationDropdown );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-navigation/dropdown.js"],"names":["BlockNavigationDropdownToggle","isEnabled","onToggle","isOpen","innerRef","props","listView","undefined","BlockNavigationDropdown","isDisabled","__experimentalFeatures","ref","hasBlocks","select","blockEditorStore","getBlockCount"],"mappings":";;;;;;;;;AAMA;;;;AAHA;;AACA;;AACA;;AAEA;;AAKA;;AACA;;AAbA;AACA;AACA;;AAOA;AACA;AACA;AAIA,SAASA,6BAAT,CAAwC;AACvCC,EAAAA,SADuC;AAEvCC,EAAAA,QAFuC;AAGvCC,EAAAA,MAHuC;AAIvCC,EAAAA,QAJuC;AAKvC,KAAGC;AALoC,CAAxC,EAMI;AACH,SACC,4BAAC,kBAAD,6BACMA,KADN;AAEC,IAAA,GAAG,EAAGD,QAFP;AAGC,IAAA,IAAI,EAAGE,eAHR;AAIC,qBAAgBH,MAJjB;AAKC,qBAAc,MALf;AAMC,IAAA,OAAO,EAAGF,SAAS,GAAGC,QAAH,GAAcK;AACjC;AAPD;AAQC,IAAA,KAAK,EAAG,cAAI,WAAJ,CART;AASC,IAAA,SAAS,EAAC,+BATX;AAUC,qBAAgB,CAAEN;AAVnB,KADD;AAcA;;AAED,SAASO,uBAAT,CACC;AAAEC,EAAAA,UAAF;AAAcC,EAAAA,sBAAd;AAAsC,KAAGL;AAAzC,CADD,EAECM,GAFD,EAGE;AACD,QAAMC,SAAS,GAAG,qBACfC,MAAF,IAAc,CAAC,CAAEA,MAAM,CAAEC,YAAF,CAAN,CAA2BC,aAA3B,EADA,EAEjB,EAFiB,CAAlB;AAIA,QAAMd,SAAS,GAAGW,SAAS,IAAI,CAAEH,UAAjC;AAEA,SACC,4BAAC,oBAAD;AACC,IAAA,gBAAgB,EAAC,wCADlB;AAEC,IAAA,QAAQ,EAAC,cAFV;AAGC,IAAA,YAAY,EAAG,CAAE;AAAEN,MAAAA,MAAF;AAAUD,MAAAA;AAAV,KAAF,KACd,4BAAC,6BAAD,6BACMG,KADN;AAEC,MAAA,QAAQ,EAAGM,GAFZ;AAGC,MAAA,MAAM,EAAGR,MAHV;AAIC,MAAA,QAAQ,EAAGD,QAJZ;AAKC,MAAA,SAAS,EAAGD;AALb,OAJF;AAYC,IAAA,aAAa,EAAG,MACf;AAAK,MAAA,SAAS,EAAC;AAAf,OACC;AAAG,MAAA,SAAS,EAAC;AAAb,OACG,cAAI,WAAJ,CADH,CADD,EAKC,4BAAC,iBAAD;AACC,MAAA,gBAAgB,MADjB;AAEC,MAAA,sBAAsB,EAAGS;AAF1B,MALD;AAbF,IADD;AA2BA;;eAEc,yBAAYF,uBAAZ,C","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button, Dropdown } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\nimport { listView } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport ListView from '../list-view';\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockNavigationDropdownToggle( {\n\tisEnabled,\n\tonToggle,\n\tisOpen,\n\tinnerRef,\n\t...props\n} ) {\n\treturn (\n\t\t<Button\n\t\t\t{ ...props }\n\t\t\tref={ innerRef }\n\t\t\ticon={ listView }\n\t\t\taria-expanded={ isOpen }\n\t\t\taria-haspopup=\"true\"\n\t\t\tonClick={ isEnabled ? onToggle : undefined }\n\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\tlabel={ __( 'List view' ) }\n\t\t\tclassName=\"block-editor-block-navigation\"\n\t\t\taria-disabled={ ! isEnabled }\n\t\t/>\n\t);\n}\n\nfunction BlockNavigationDropdown(\n\t{ isDisabled, __experimentalFeatures, ...props },\n\tref\n) {\n\tconst hasBlocks = useSelect(\n\t\t( select ) => !! select( blockEditorStore ).getBlockCount(),\n\t\t[]\n\t);\n\tconst isEnabled = hasBlocks && ! isDisabled;\n\n\treturn (\n\t\t<Dropdown\n\t\t\tcontentClassName=\"block-editor-block-navigation__popover\"\n\t\t\tposition=\"bottom right\"\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<BlockNavigationDropdownToggle\n\t\t\t\t\t{ ...props }\n\t\t\t\t\tinnerRef={ ref }\n\t\t\t\t\tisOpen={ isOpen }\n\t\t\t\t\tonToggle={ onToggle }\n\t\t\t\t\tisEnabled={ isEnabled }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\trenderContent={ () => (\n\t\t\t\t<div className=\"block-editor-block-navigation__container\">\n\t\t\t\t\t<p className=\"block-editor-block-navigation__label\">\n\t\t\t\t\t\t{ __( 'List view' ) }\n\t\t\t\t\t</p>\n\n\t\t\t\t\t<ListView\n\t\t\t\t\t\tshowNestedBlocks\n\t\t\t\t\t\t__experimentalFeatures={ __experimentalFeatures }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nexport default forwardRef( BlockNavigationDropdown );\n"]}
@@ -17,14 +17,10 @@ var _compose = require("@wordpress/compose");
17
17
 
18
18
  var _i18n = require("@wordpress/i18n");
19
19
 
20
- var _data = require("@wordpress/data");
21
-
22
20
  var _blockPreview = _interopRequireDefault(require("../block-preview"));
23
21
 
24
22
  var _inserterDraggableBlocks = _interopRequireDefault(require("../inserter-draggable-blocks"));
25
23
 
26
- var _store = require("../../store");
27
-
28
24
  /**
29
25
  * WordPress dependencies
30
26
  */
@@ -39,12 +35,9 @@ function BlockPattern({
39
35
  composite
40
36
  }) {
41
37
  const {
42
- name,
38
+ blocks,
43
39
  viewportWidth
44
40
  } = pattern;
45
- const {
46
- blocks
47
- } = (0, _data.useSelect)(select => select(_store.store).__experimentalGetParsedPattern(name), [name]);
48
41
  const instanceId = (0, _compose.useInstanceId)(BlockPattern);
49
42
  const descriptionId = `block-editor-block-patterns-list__item-description-${instanceId}`;
50
43
  return (0, _element.createElement)(_inserterDraggableBlocks.default, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-patterns-list/index.js"],"names":["BlockPattern","isDraggable","pattern","onClick","composite","name","viewportWidth","blocks","select","blockEditorStore","__experimentalGetParsedPattern","instanceId","descriptionId","draggable","onDragStart","onDragEnd","title","description","undefined","BlockPatternPlaceholder","BlockPatternList","blockPatterns","shownPatterns","onClickPattern","orientation","label","map","isShown","includes"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tVisuallyHidden,\n\t__unstableComposite as Composite,\n\t__unstableUseCompositeState as useCompositeState,\n\t__unstableCompositeItem as CompositeItem,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport BlockPreview from '../block-preview';\nimport InserterDraggableBlocks from '../inserter-draggable-blocks';\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockPattern( { isDraggable, pattern, onClick, composite } ) {\n\tconst { name, viewportWidth } = pattern;\n\tconst { blocks } = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).__experimentalGetParsedPattern( name ),\n\t\t[ name ]\n\t);\n\tconst instanceId = useInstanceId( BlockPattern );\n\tconst descriptionId = `block-editor-block-patterns-list__item-description-${ instanceId }`;\n\n\treturn (\n\t\t<InserterDraggableBlocks isEnabled={ isDraggable } blocks={ blocks }>\n\t\t\t{ ( { draggable, onDragStart, onDragEnd } ) => (\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"block-editor-block-patterns-list__list-item\"\n\t\t\t\t\taria-label={ pattern.title }\n\t\t\t\t\taria-describedby={\n\t\t\t\t\t\tpattern.description ? descriptionId : undefined\n\t\t\t\t\t}\n\t\t\t\t\tdraggable={ draggable }\n\t\t\t\t\tonDragStart={ onDragStart }\n\t\t\t\t\tonDragEnd={ onDragEnd }\n\t\t\t\t>\n\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\tas=\"div\"\n\t\t\t\t\t\t{ ...composite }\n\t\t\t\t\t\tclassName=\"block-editor-block-patterns-list__item\"\n\t\t\t\t\t\tonClick={ () => onClick( pattern, blocks ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockPreview\n\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\tviewportWidth={ viewportWidth }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<div className=\"block-editor-block-patterns-list__item-title\">\n\t\t\t\t\t\t\t{ pattern.title }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{ !! pattern.description && (\n\t\t\t\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t\t\t\t{ pattern.description }\n\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</CompositeItem>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</InserterDraggableBlocks>\n\t);\n}\n\nfunction BlockPatternPlaceholder() {\n\treturn (\n\t\t<div className=\"block-editor-block-patterns-list__item is-placeholder\" />\n\t);\n}\n\nfunction BlockPatternList( {\n\tisDraggable,\n\tblockPatterns,\n\tshownPatterns,\n\tonClickPattern,\n\torientation,\n\tlabel = __( 'Block Patterns' ),\n} ) {\n\tconst composite = useCompositeState( { orientation } );\n\treturn (\n\t\t<Composite\n\t\t\t{ ...composite }\n\t\t\trole=\"listbox\"\n\t\t\tclassName=\"block-editor-block-patterns-list\"\n\t\t\taria-label={ label }\n\t\t>\n\t\t\t{ blockPatterns.map( ( pattern ) => {\n\t\t\t\tconst isShown = shownPatterns.includes( pattern );\n\t\t\t\treturn isShown ? (\n\t\t\t\t\t<BlockPattern\n\t\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\t\tonClick={ onClickPattern }\n\t\t\t\t\t\tisDraggable={ isDraggable }\n\t\t\t\t\t\tcomposite={ composite }\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<BlockPatternPlaceholder key={ pattern.name } />\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</Composite>\n\t);\n}\n\nexport default BlockPatternList;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-patterns-list/index.js"],"names":["BlockPattern","isDraggable","pattern","onClick","composite","blocks","viewportWidth","instanceId","descriptionId","draggable","onDragStart","onDragEnd","title","description","undefined","BlockPatternPlaceholder","BlockPatternList","blockPatterns","shownPatterns","onClickPattern","orientation","label","map","isShown","includes","name"],"mappings":";;;;;;;;;;;;;AAGA;;AAMA;;AACA;;AAKA;;AACA;;AAhBA;AACA;AACA;;AAUA;AACA;AACA;AAIA,SAASA,YAAT,CAAuB;AAAEC,EAAAA,WAAF;AAAeC,EAAAA,OAAf;AAAwBC,EAAAA,OAAxB;AAAiCC,EAAAA;AAAjC,CAAvB,EAAsE;AACrE,QAAM;AAAEC,IAAAA,MAAF;AAAUC,IAAAA;AAAV,MAA4BJ,OAAlC;AACA,QAAMK,UAAU,GAAG,4BAAeP,YAAf,CAAnB;AACA,QAAMQ,aAAa,GAAI,sDAAsDD,UAAY,EAAzF;AAEA,SACC,4BAAC,gCAAD;AAAyB,IAAA,SAAS,EAAGN,WAArC;AAAmD,IAAA,MAAM,EAAGI;AAA5D,KACG,CAAE;AAAEI,IAAAA,SAAF;AAAaC,IAAAA,WAAb;AAA0BC,IAAAA;AAA1B,GAAF,KACD;AACC,IAAA,SAAS,EAAC,6CADX;AAEC,kBAAaT,OAAO,CAACU,KAFtB;AAGC,wBACCV,OAAO,CAACW,WAAR,GAAsBL,aAAtB,GAAsCM,SAJxC;AAMC,IAAA,SAAS,EAAGL,SANb;AAOC,IAAA,WAAW,EAAGC,WAPf;AAQC,IAAA,SAAS,EAAGC;AARb,KAUC,4BAAC,mCAAD;AACC,IAAA,IAAI,EAAC,QADN;AAEC,IAAA,EAAE,EAAC;AAFJ,KAGMP,SAHN;AAIC,IAAA,SAAS,EAAC,wCAJX;AAKC,IAAA,OAAO,EAAG,MAAMD,OAAO,CAAED,OAAF,EAAWG,MAAX;AALxB,MAOC,4BAAC,qBAAD;AACC,IAAA,MAAM,EAAGA,MADV;AAEC,IAAA,aAAa,EAAGC;AAFjB,IAPD,EAWC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGJ,OAAO,CAACU,KADX,CAXD,EAcG,CAAC,CAAEV,OAAO,CAACW,WAAX,IACD,4BAAC,0BAAD;AAAgB,IAAA,EAAE,EAAGL;AAArB,KACGN,OAAO,CAACW,WADX,CAfF,CAVD,CAFF,CADD;AAqCA;;AAED,SAASE,uBAAT,GAAmC;AAClC,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,IADD;AAGA;;AAED,SAASC,gBAAT,CAA2B;AAC1Bf,EAAAA,WAD0B;AAE1BgB,EAAAA,aAF0B;AAG1BC,EAAAA,aAH0B;AAI1BC,EAAAA,cAJ0B;AAK1BC,EAAAA,WAL0B;AAM1BC,EAAAA,KAAK,GAAG,cAAI,gBAAJ;AANkB,CAA3B,EAOI;AACH,QAAMjB,SAAS,GAAG,6CAAmB;AAAEgB,IAAAA;AAAF,GAAnB,CAAlB;AACA,SACC,4BAAC,+BAAD,6BACMhB,SADN;AAEC,IAAA,IAAI,EAAC,SAFN;AAGC,IAAA,SAAS,EAAC,kCAHX;AAIC,kBAAaiB;AAJd,MAMGJ,aAAa,CAACK,GAAd,CAAqBpB,OAAF,IAAe;AACnC,UAAMqB,OAAO,GAAGL,aAAa,CAACM,QAAd,CAAwBtB,OAAxB,CAAhB;AACA,WAAOqB,OAAO,GACb,4BAAC,YAAD;AACC,MAAA,GAAG,EAAGrB,OAAO,CAACuB,IADf;AAEC,MAAA,OAAO,EAAGvB,OAFX;AAGC,MAAA,OAAO,EAAGiB,cAHX;AAIC,MAAA,WAAW,EAAGlB,WAJf;AAKC,MAAA,SAAS,EAAGG;AALb,MADa,GASb,4BAAC,uBAAD;AAAyB,MAAA,GAAG,EAAGF,OAAO,CAACuB;AAAvC,MATD;AAWA,GAbC,CANH,CADD;AAuBA;;eAEcT,gB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tVisuallyHidden,\n\t__unstableComposite as Composite,\n\t__unstableUseCompositeState as useCompositeState,\n\t__unstableCompositeItem as CompositeItem,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockPreview from '../block-preview';\nimport InserterDraggableBlocks from '../inserter-draggable-blocks';\n\nfunction BlockPattern( { isDraggable, pattern, onClick, composite } ) {\n\tconst { blocks, viewportWidth } = pattern;\n\tconst instanceId = useInstanceId( BlockPattern );\n\tconst descriptionId = `block-editor-block-patterns-list__item-description-${ instanceId }`;\n\n\treturn (\n\t\t<InserterDraggableBlocks isEnabled={ isDraggable } blocks={ blocks }>\n\t\t\t{ ( { draggable, onDragStart, onDragEnd } ) => (\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"block-editor-block-patterns-list__list-item\"\n\t\t\t\t\taria-label={ pattern.title }\n\t\t\t\t\taria-describedby={\n\t\t\t\t\t\tpattern.description ? descriptionId : undefined\n\t\t\t\t\t}\n\t\t\t\t\tdraggable={ draggable }\n\t\t\t\t\tonDragStart={ onDragStart }\n\t\t\t\t\tonDragEnd={ onDragEnd }\n\t\t\t\t>\n\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\tas=\"div\"\n\t\t\t\t\t\t{ ...composite }\n\t\t\t\t\t\tclassName=\"block-editor-block-patterns-list__item\"\n\t\t\t\t\t\tonClick={ () => onClick( pattern, blocks ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockPreview\n\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\tviewportWidth={ viewportWidth }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<div className=\"block-editor-block-patterns-list__item-title\">\n\t\t\t\t\t\t\t{ pattern.title }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{ !! pattern.description && (\n\t\t\t\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t\t\t\t{ pattern.description }\n\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</CompositeItem>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</InserterDraggableBlocks>\n\t);\n}\n\nfunction BlockPatternPlaceholder() {\n\treturn (\n\t\t<div className=\"block-editor-block-patterns-list__item is-placeholder\" />\n\t);\n}\n\nfunction BlockPatternList( {\n\tisDraggable,\n\tblockPatterns,\n\tshownPatterns,\n\tonClickPattern,\n\torientation,\n\tlabel = __( 'Block Patterns' ),\n} ) {\n\tconst composite = useCompositeState( { orientation } );\n\treturn (\n\t\t<Composite\n\t\t\t{ ...composite }\n\t\t\trole=\"listbox\"\n\t\t\tclassName=\"block-editor-block-patterns-list\"\n\t\t\taria-label={ label }\n\t\t>\n\t\t\t{ blockPatterns.map( ( pattern ) => {\n\t\t\t\tconst isShown = shownPatterns.includes( pattern );\n\t\t\t\treturn isShown ? (\n\t\t\t\t\t<BlockPattern\n\t\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\t\tonClick={ onClickPattern }\n\t\t\t\t\t\tisDraggable={ isDraggable }\n\t\t\t\t\t\tcomposite={ composite }\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<BlockPatternPlaceholder key={ pattern.name } />\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</Composite>\n\t);\n}\n\nexport default BlockPatternList;\n"]}
@@ -45,7 +45,7 @@ function AutoBlockPreview({
45
45
  }] = (0, _compose.useResizeObserver)();
46
46
  const styles = (0, _data.useSelect)(select => {
47
47
  return select(_store.store).getSettings().styles;
48
- }); // Initialize on render instead of module top level, to avoid circular dependency issues.
48
+ }, []); // Initialize on render instead of module top level, to avoid circular dependency issues.
49
49
 
50
50
  MemoizedBlockList = MemoizedBlockList || (0, _compose.pure)(_blockList.default);
51
51
  const scale = containerWidth / viewportWidth;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-preview/auto.js"],"names":["MemoizedBlockList","AutoBlockPreview","viewportWidth","__experimentalPadding","containerResizeListener","width","containerWidth","contentResizeListener","height","contentHeight","styles","select","store","getSettings","BlockList","scale","transform","bodyElement","ownerDocument","documentElement","style","position","padding","pointerEvents"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AAbA;AACA;AACA;;AAKA;AACA;AACA;AAMA;AACA,IAAIA,iBAAJ;;AAEA,SAASC,gBAAT,CAA2B;AAAEC,EAAAA,aAAF;AAAiBC,EAAAA;AAAjB,CAA3B,EAAsE;AACrE,QAAM,CACLC,uBADK,EAEL;AAAEC,IAAAA,KAAK,EAAEC;AAAT,GAFK,IAGF,iCAHJ;AAIA,QAAM,CACLC,qBADK,EAEL;AAAEC,IAAAA,MAAM,EAAEC;AAAV,GAFK,IAGF,iCAHJ;AAIA,QAAMC,MAAM,GAAG,qBAAaC,MAAF,IAAc;AACvC,WAAOA,MAAM,CAAEC,YAAF,CAAN,CAAgBC,WAAhB,GAA8BH,MAArC;AACA,GAFc,CAAf,CATqE,CAarE;;AACAV,EAAAA,iBAAiB,GAAGA,iBAAiB,IAAI,mBAAMc,kBAAN,CAAzC;AAEA,QAAMC,KAAK,GAAGT,cAAc,GAAGJ,aAA/B;AAEA,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGE,uBADH,EAEC,4BAAC,oBAAD;AACC,IAAA,SAAS,EAAC,qCADX;AAEC,IAAA,KAAK,EAAG;AACPY,MAAAA,SAAS,EAAG,SAASD,KAAO,GADrB;AAEPP,MAAAA,MAAM,EAAEC,aAAa,GAAGM;AAFjB;AAFT,KAOC,4BAAC,eAAD;AACC,IAAA,IAAI,EAAG,4BAAC,qBAAD;AAAc,MAAA,MAAM,EAAGL;AAAvB,MADR;AAEC,IAAA,UAAU,EAAG,2BAAgBO,WAAF,IAAmB;AAC7C,YAAM;AACLC,QAAAA,aAAa,EAAE;AAAEC,UAAAA;AAAF;AADV,UAEFF,WAFJ;AAGAE,MAAAA,eAAe,CAACC,KAAhB,CAAsBC,QAAtB,GAAiC,UAAjC;AACAF,MAAAA,eAAe,CAACC,KAAhB,CAAsBf,KAAtB,GAA8B,MAA9B;AACAY,MAAAA,WAAW,CAACG,KAAZ,CAAkBE,OAAlB,GACCnB,qBAAqB,GAAG,IADzB;AAEA,KARY,EAQV,EARU,CAFd;AAWC,uBAXD;AAYC,IAAA,QAAQ,EAAG,CAAC,CAZb;AAaC,IAAA,KAAK,EAAG;AACPkB,MAAAA,QAAQ,EAAE,UADH;AAEPhB,MAAAA,KAAK,EAAEH,aAFA;AAGPM,MAAAA,MAAM,EAAEC,aAHD;AAIPc,MAAAA,aAAa,EAAE;AAJR;AAbT,KAoBGhB,qBApBH,EAqBC,4BAAC,iBAAD;AAAmB,IAAA,cAAc,EAAG;AAApC,IArBD,CAPD,CAFD,CADD;AAoCA;;eAEcN,gB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Disabled } from '@wordpress/components';\nimport { useResizeObserver, pure, useRefEffect } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport BlockList from '../block-list';\nimport Iframe from '../iframe';\nimport EditorStyles from '../editor-styles';\nimport { store } from '../../store';\n\n// This is used to avoid rendering the block list if the sizes change.\nlet MemoizedBlockList;\n\nfunction AutoBlockPreview( { viewportWidth, __experimentalPadding } ) {\n\tconst [\n\t\tcontainerResizeListener,\n\t\t{ width: containerWidth },\n\t] = useResizeObserver();\n\tconst [\n\t\tcontentResizeListener,\n\t\t{ height: contentHeight },\n\t] = useResizeObserver();\n\tconst styles = useSelect( ( select ) => {\n\t\treturn select( store ).getSettings().styles;\n\t} );\n\n\t// Initialize on render instead of module top level, to avoid circular dependency issues.\n\tMemoizedBlockList = MemoizedBlockList || pure( BlockList );\n\n\tconst scale = containerWidth / viewportWidth;\n\n\treturn (\n\t\t<div className=\"block-editor-block-preview__container\">\n\t\t\t{ containerResizeListener }\n\t\t\t<Disabled\n\t\t\t\tclassName=\"block-editor-block-preview__content\"\n\t\t\t\tstyle={ {\n\t\t\t\t\ttransform: `scale(${ scale })`,\n\t\t\t\t\theight: contentHeight * scale,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<Iframe\n\t\t\t\t\thead={ <EditorStyles styles={ styles } /> }\n\t\t\t\t\tcontentRef={ useRefEffect( ( bodyElement ) => {\n\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\townerDocument: { documentElement },\n\t\t\t\t\t\t} = bodyElement;\n\t\t\t\t\t\tdocumentElement.style.position = 'absolute';\n\t\t\t\t\t\tdocumentElement.style.width = '100%';\n\t\t\t\t\t\tbodyElement.style.padding =\n\t\t\t\t\t\t\t__experimentalPadding + 'px';\n\t\t\t\t\t}, [] ) }\n\t\t\t\t\taria-hidden\n\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\twidth: viewportWidth,\n\t\t\t\t\t\theight: contentHeight,\n\t\t\t\t\t\tpointerEvents: 'none',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ contentResizeListener }\n\t\t\t\t\t<MemoizedBlockList renderAppender={ false } />\n\t\t\t\t</Iframe>\n\t\t\t</Disabled>\n\t\t</div>\n\t);\n}\n\nexport default AutoBlockPreview;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-preview/auto.js"],"names":["MemoizedBlockList","AutoBlockPreview","viewportWidth","__experimentalPadding","containerResizeListener","width","containerWidth","contentResizeListener","height","contentHeight","styles","select","store","getSettings","BlockList","scale","transform","bodyElement","ownerDocument","documentElement","style","position","padding","pointerEvents"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AAbA;AACA;AACA;;AAKA;AACA;AACA;AAMA;AACA,IAAIA,iBAAJ;;AAEA,SAASC,gBAAT,CAA2B;AAAEC,EAAAA,aAAF;AAAiBC,EAAAA;AAAjB,CAA3B,EAAsE;AACrE,QAAM,CACLC,uBADK,EAEL;AAAEC,IAAAA,KAAK,EAAEC;AAAT,GAFK,IAGF,iCAHJ;AAIA,QAAM,CACLC,qBADK,EAEL;AAAEC,IAAAA,MAAM,EAAEC;AAAV,GAFK,IAGF,iCAHJ;AAIA,QAAMC,MAAM,GAAG,qBAAaC,MAAF,IAAc;AACvC,WAAOA,MAAM,CAAEC,YAAF,CAAN,CAAgBC,WAAhB,GAA8BH,MAArC;AACA,GAFc,EAEZ,EAFY,CAAf,CATqE,CAarE;;AACAV,EAAAA,iBAAiB,GAAGA,iBAAiB,IAAI,mBAAMc,kBAAN,CAAzC;AAEA,QAAMC,KAAK,GAAGT,cAAc,GAAGJ,aAA/B;AAEA,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGE,uBADH,EAEC,4BAAC,oBAAD;AACC,IAAA,SAAS,EAAC,qCADX;AAEC,IAAA,KAAK,EAAG;AACPY,MAAAA,SAAS,EAAG,SAASD,KAAO,GADrB;AAEPP,MAAAA,MAAM,EAAEC,aAAa,GAAGM;AAFjB;AAFT,KAOC,4BAAC,eAAD;AACC,IAAA,IAAI,EAAG,4BAAC,qBAAD;AAAc,MAAA,MAAM,EAAGL;AAAvB,MADR;AAEC,IAAA,UAAU,EAAG,2BAAgBO,WAAF,IAAmB;AAC7C,YAAM;AACLC,QAAAA,aAAa,EAAE;AAAEC,UAAAA;AAAF;AADV,UAEFF,WAFJ;AAGAE,MAAAA,eAAe,CAACC,KAAhB,CAAsBC,QAAtB,GAAiC,UAAjC;AACAF,MAAAA,eAAe,CAACC,KAAhB,CAAsBf,KAAtB,GAA8B,MAA9B;AACAY,MAAAA,WAAW,CAACG,KAAZ,CAAkBE,OAAlB,GACCnB,qBAAqB,GAAG,IADzB;AAEA,KARY,EAQV,EARU,CAFd;AAWC,uBAXD;AAYC,IAAA,QAAQ,EAAG,CAAC,CAZb;AAaC,IAAA,KAAK,EAAG;AACPkB,MAAAA,QAAQ,EAAE,UADH;AAEPhB,MAAAA,KAAK,EAAEH,aAFA;AAGPM,MAAAA,MAAM,EAAEC,aAHD;AAIPc,MAAAA,aAAa,EAAE;AAJR;AAbT,KAoBGhB,qBApBH,EAqBC,4BAAC,iBAAD;AAAmB,IAAA,cAAc,EAAG;AAApC,IArBD,CAPD,CAFD,CADD;AAoCA;;eAEcN,gB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Disabled } from '@wordpress/components';\nimport { useResizeObserver, pure, useRefEffect } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport BlockList from '../block-list';\nimport Iframe from '../iframe';\nimport EditorStyles from '../editor-styles';\nimport { store } from '../../store';\n\n// This is used to avoid rendering the block list if the sizes change.\nlet MemoizedBlockList;\n\nfunction AutoBlockPreview( { viewportWidth, __experimentalPadding } ) {\n\tconst [\n\t\tcontainerResizeListener,\n\t\t{ width: containerWidth },\n\t] = useResizeObserver();\n\tconst [\n\t\tcontentResizeListener,\n\t\t{ height: contentHeight },\n\t] = useResizeObserver();\n\tconst styles = useSelect( ( select ) => {\n\t\treturn select( store ).getSettings().styles;\n\t}, [] );\n\n\t// Initialize on render instead of module top level, to avoid circular dependency issues.\n\tMemoizedBlockList = MemoizedBlockList || pure( BlockList );\n\n\tconst scale = containerWidth / viewportWidth;\n\n\treturn (\n\t\t<div className=\"block-editor-block-preview__container\">\n\t\t\t{ containerResizeListener }\n\t\t\t<Disabled\n\t\t\t\tclassName=\"block-editor-block-preview__content\"\n\t\t\t\tstyle={ {\n\t\t\t\t\ttransform: `scale(${ scale })`,\n\t\t\t\t\theight: contentHeight * scale,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<Iframe\n\t\t\t\t\thead={ <EditorStyles styles={ styles } /> }\n\t\t\t\t\tcontentRef={ useRefEffect( ( bodyElement ) => {\n\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\townerDocument: { documentElement },\n\t\t\t\t\t\t} = bodyElement;\n\t\t\t\t\t\tdocumentElement.style.position = 'absolute';\n\t\t\t\t\t\tdocumentElement.style.width = '100%';\n\t\t\t\t\t\tbodyElement.style.padding =\n\t\t\t\t\t\t\t__experimentalPadding + 'px';\n\t\t\t\t\t}, [] ) }\n\t\t\t\t\taria-hidden\n\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\twidth: viewportWidth,\n\t\t\t\t\t\theight: contentHeight,\n\t\t\t\t\t\tpointerEvents: 'none',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ contentResizeListener }\n\t\t\t\t\t<MemoizedBlockList renderAppender={ false } />\n\t\t\t\t</Iframe>\n\t\t\t</Disabled>\n\t\t</div>\n\t);\n}\n\nexport default AutoBlockPreview;\n"]}
@@ -34,7 +34,8 @@ const blockSettingsScreens = {
34
34
  settings: 'Settings',
35
35
  color: 'Color',
36
36
  focalPoint: 'FocalPoint',
37
- linkPicker: 'linkPicker'
37
+ linkPicker: 'linkPicker',
38
+ imageLinkDestinations: 'imageLinkDestinations'
38
39
  };
39
40
  exports.blockSettingsScreens = blockSettingsScreens;
40
41
 
@@ -74,7 +75,9 @@ function BottomSheetSettings({
74
75
  isScrollable: true
75
76
  }, (0, _element.createElement)(_components.LinkPickerScreen, {
76
77
  returnScreenName: blockSettingsScreens.settings
77
- }))));
78
+ })), (0, _element.createElement)(_components.BottomSheet.NavigationScreen, {
79
+ name: blockSettingsScreens.imageLinkDestinations
80
+ }, (0, _element.createElement)(_components.ImageLinkDestinationsScreen, props))));
78
81
  }
79
82
 
80
83
  var _default = (0, _compose.compose)([(0, _data.withSelect)(select => {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-settings/container.native.js"],"names":["blockSettingsScreens","settings","color","focalPoint","linkPicker","BottomSheetSettings","editorSidebarOpened","closeGeneralSidebar","props","colorSettings","colors","gradients","styles","content","BottomSheet","SubSheet","screenName","select","isEditorSidebarOpened","getSettings","blockEditorStore","dispatch"],"mappings":";;;;;;;;;;;;;AAGA;;AACA;;AAMA;;AACA;;AAIA;;AACA;;AAhBA;AACA;AACA;;AAUA;AACA;AACA;AAIO,MAAMA,oBAAoB,GAAG;AACnCC,EAAAA,QAAQ,EAAE,UADyB;AAEnCC,EAAAA,KAAK,EAAE,OAF4B;AAGnCC,EAAAA,UAAU,EAAE,YAHuB;AAInCC,EAAAA,UAAU,EAAE;AAJuB,CAA7B;;;AAOP,SAASC,mBAAT,CAA8B;AAC7BC,EAAAA,mBAD6B;AAE7BC,EAAAA,mBAF6B;AAG7BN,EAAAA,QAH6B;AAI7B,KAAGO;AAJ0B,CAA9B,EAKI;AACH,QAAMC,aAAa,GAAG;AACrBC,IAAAA,MAAM,EAAE,6BAAY,eAAZ,KAAiCT,QAAQ,CAACS,MAD7B;AAErBC,IAAAA,SAAS,EAAE,6BAAY,iBAAZ,KAAmCV,QAAQ,CAACU;AAFlC,GAAtB;AAKA,SACC,4BAAC,uBAAD;AACC,IAAA,SAAS,EAAGL,mBADb;AAEC,IAAA,OAAO,EAAGC,mBAFX;AAGC,IAAA,UAAU,MAHX;AAIC,IAAA,YAAY,EAAGK,yBAAOC,OAJvB;AAKC,IAAA,aAAa;AALd,KAMML,KANN,GAQC,4BAAC,uBAAD,CAAa,mBAAb;AAAiC,IAAA,OAAO,MAAxC;AAAyC,IAAA,IAAI;AAA7C,KACC,4BAAC,uBAAD,CAAa,gBAAb;AACC,IAAA,IAAI,EAAGR,oBAAoB,CAACC;AAD7B,KAGC,4BAAC,8BAAD,CAAmB,IAAnB,OAHD,CADD,EAMC,4BAAC,uBAAD,CAAa,gBAAb;AACC,IAAA,IAAI,EAAGa,wBAAYC,QAAZ,CAAqBC;AAD7B,KAGC,4BAAC,uBAAD,CAAa,QAAb,CAAsB,IAAtB,OAHD,CAND,EAYC,4BAAC,uBAAD,CAAa,gBAAb;AACC,IAAA,IAAI,EAAGhB,oBAAoB,CAACE;AAD7B,KAGC,4BAAC,yBAAD;AAAe,IAAA,eAAe,EAAGO;AAAjC,IAHD,CAZD,EAiBC,4BAAC,uBAAD,CAAa,gBAAb;AACC,IAAA,IAAI,EAAGT,oBAAoB,CAACG,UAD7B;AAEC,IAAA,UAAU;AAFX,KAIC,4BAAC,mCAAD,OAJD,CAjBD,EAuBC,4BAAC,uBAAD,CAAa,gBAAb;AACC,IAAA,IAAI,EAAGH,oBAAoB,CAACI,UAD7B;AAEC,IAAA,UAAU,MAFX;AAGC,IAAA,YAAY;AAHb,KAKC,4BAAC,4BAAD;AACC,IAAA,gBAAgB,EAAGJ,oBAAoB,CAACC;AADzC,IALD,CAvBD,CARD,CADD;AA4CA;;eAEc,sBAAS,CACvB,sBAAcgB,MAAF,IAAc;AACzB,QAAM;AAAEC,IAAAA;AAAF,MAA4BD,MAAM,CAAE,gBAAF,CAAxC;AACA,QAAM;AAAEE,IAAAA;AAAF,MAAkBF,MAAM,CAAEG,YAAF,CAA9B;AACA,SAAO;AACNnB,IAAAA,QAAQ,EAAEkB,WAAW,EADf;AAENb,IAAAA,mBAAmB,EAAEY,qBAAqB;AAFpC,GAAP;AAIA,CAPD,CADuB,EASvB,wBAAgBG,QAAF,IAAgB;AAC7B,QAAM;AAAEd,IAAAA;AAAF,MAA0Bc,QAAQ,CAAE,gBAAF,CAAxC;AAEA,SAAO;AACNd,IAAAA;AADM,GAAP;AAGA,CAND,CATuB,CAAT,EAgBVF,mBAhBU,C","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { InspectorControls, useSetting } from '@wordpress/block-editor';\nimport {\n\tBottomSheet,\n\tColorSettings,\n\tFocalPointSettingsPanel,\n\tLinkPickerScreen,\n} from '@wordpress/components';\nimport { compose } from '@wordpress/compose';\nimport { withDispatch, withSelect } from '@wordpress/data';\n/**\n * Internal dependencies\n */\nimport styles from './container.native.scss';\nimport { store as blockEditorStore } from '../../store';\n\nexport const blockSettingsScreens = {\n\tsettings: 'Settings',\n\tcolor: 'Color',\n\tfocalPoint: 'FocalPoint',\n\tlinkPicker: 'linkPicker',\n};\n\nfunction BottomSheetSettings( {\n\teditorSidebarOpened,\n\tcloseGeneralSidebar,\n\tsettings,\n\t...props\n} ) {\n\tconst colorSettings = {\n\t\tcolors: useSetting( 'color.palette' ) || settings.colors,\n\t\tgradients: useSetting( 'color.gradients' ) || settings.gradients,\n\t};\n\n\treturn (\n\t\t<BottomSheet\n\t\t\tisVisible={ editorSidebarOpened }\n\t\t\tonClose={ closeGeneralSidebar }\n\t\t\thideHeader\n\t\t\tcontentStyle={ styles.content }\n\t\t\thasNavigation\n\t\t\t{ ...props }\n\t\t>\n\t\t\t<BottomSheet.NavigationContainer animate main>\n\t\t\t\t<BottomSheet.NavigationScreen\n\t\t\t\t\tname={ blockSettingsScreens.settings }\n\t\t\t\t>\n\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t\t<BottomSheet.NavigationScreen\n\t\t\t\t\tname={ BottomSheet.SubSheet.screenName }\n\t\t\t\t>\n\t\t\t\t\t<BottomSheet.SubSheet.Slot />\n\t\t\t\t</BottomSheet.NavigationScreen>\n\n\t\t\t\t<BottomSheet.NavigationScreen\n\t\t\t\t\tname={ blockSettingsScreens.color }\n\t\t\t\t>\n\t\t\t\t\t<ColorSettings defaultSettings={ colorSettings } />\n\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t\t<BottomSheet.NavigationScreen\n\t\t\t\t\tname={ blockSettingsScreens.focalPoint }\n\t\t\t\t\tfullScreen\n\t\t\t\t>\n\t\t\t\t\t<FocalPointSettingsPanel />\n\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t\t<BottomSheet.NavigationScreen\n\t\t\t\t\tname={ blockSettingsScreens.linkPicker }\n\t\t\t\t\tfullScreen\n\t\t\t\t\tisScrollable\n\t\t\t\t>\n\t\t\t\t\t<LinkPickerScreen\n\t\t\t\t\t\treturnScreenName={ blockSettingsScreens.settings }\n\t\t\t\t\t/>\n\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t</BottomSheet.NavigationContainer>\n\t\t</BottomSheet>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst { isEditorSidebarOpened } = select( 'core/edit-post' );\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\tsettings: getSettings(),\n\t\t\teditorSidebarOpened: isEditorSidebarOpened(),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { closeGeneralSidebar } = dispatch( 'core/edit-post' );\n\n\t\treturn {\n\t\t\tcloseGeneralSidebar,\n\t\t};\n\t} ),\n] )( BottomSheetSettings );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/block-settings/container.native.js"],"names":["blockSettingsScreens","settings","color","focalPoint","linkPicker","imageLinkDestinations","BottomSheetSettings","editorSidebarOpened","closeGeneralSidebar","props","colorSettings","colors","gradients","styles","content","BottomSheet","SubSheet","screenName","select","isEditorSidebarOpened","getSettings","blockEditorStore","dispatch"],"mappings":";;;;;;;;;;;;;AAGA;;AACA;;AAOA;;AACA;;AAIA;;AACA;;AAjBA;AACA;AACA;;AAWA;AACA;AACA;AAIO,MAAMA,oBAAoB,GAAG;AACnCC,EAAAA,QAAQ,EAAE,UADyB;AAEnCC,EAAAA,KAAK,EAAE,OAF4B;AAGnCC,EAAAA,UAAU,EAAE,YAHuB;AAInCC,EAAAA,UAAU,EAAE,YAJuB;AAKnCC,EAAAA,qBAAqB,EAAE;AALY,CAA7B;;;AAQP,SAASC,mBAAT,CAA8B;AAC7BC,EAAAA,mBAD6B;AAE7BC,EAAAA,mBAF6B;AAG7BP,EAAAA,QAH6B;AAI7B,KAAGQ;AAJ0B,CAA9B,EAKI;AACH,QAAMC,aAAa,GAAG;AACrBC,IAAAA,MAAM,EAAE,6BAAY,eAAZ,KAAiCV,QAAQ,CAACU,MAD7B;AAErBC,IAAAA,SAAS,EAAE,6BAAY,iBAAZ,KAAmCX,QAAQ,CAACW;AAFlC,GAAtB;AAKA,SACC,4BAAC,uBAAD;AACC,IAAA,SAAS,EAAGL,mBADb;AAEC,IAAA,OAAO,EAAGC,mBAFX;AAGC,IAAA,UAAU,MAHX;AAIC,IAAA,YAAY,EAAGK,yBAAOC,OAJvB;AAKC,IAAA,aAAa;AALd,KAMML,KANN,GAQC,4BAAC,uBAAD,CAAa,mBAAb;AAAiC,IAAA,OAAO,MAAxC;AAAyC,IAAA,IAAI;AAA7C,KACC,4BAAC,uBAAD,CAAa,gBAAb;AACC,IAAA,IAAI,EAAGT,oBAAoB,CAACC;AAD7B,KAGC,4BAAC,8BAAD,CAAmB,IAAnB,OAHD,CADD,EAMC,4BAAC,uBAAD,CAAa,gBAAb;AACC,IAAA,IAAI,EAAGc,wBAAYC,QAAZ,CAAqBC;AAD7B,KAGC,4BAAC,uBAAD,CAAa,QAAb,CAAsB,IAAtB,OAHD,CAND,EAYC,4BAAC,uBAAD,CAAa,gBAAb;AACC,IAAA,IAAI,EAAGjB,oBAAoB,CAACE;AAD7B,KAGC,4BAAC,yBAAD;AAAe,IAAA,eAAe,EAAGQ;AAAjC,IAHD,CAZD,EAiBC,4BAAC,uBAAD,CAAa,gBAAb;AACC,IAAA,IAAI,EAAGV,oBAAoB,CAACG,UAD7B;AAEC,IAAA,UAAU;AAFX,KAIC,4BAAC,mCAAD,OAJD,CAjBD,EAuBC,4BAAC,uBAAD,CAAa,gBAAb;AACC,IAAA,IAAI,EAAGH,oBAAoB,CAACI,UAD7B;AAEC,IAAA,UAAU,MAFX;AAGC,IAAA,YAAY;AAHb,KAKC,4BAAC,4BAAD;AACC,IAAA,gBAAgB,EAAGJ,oBAAoB,CAACC;AADzC,IALD,CAvBD,EAgCC,4BAAC,uBAAD,CAAa,gBAAb;AACC,IAAA,IAAI,EAAGD,oBAAoB,CAACK;AAD7B,KAGC,4BAAC,uCAAD,EAAkCI,KAAlC,CAHD,CAhCD,CARD,CADD;AAiDA;;eAEc,sBAAS,CACvB,sBAAcS,MAAF,IAAc;AACzB,QAAM;AAAEC,IAAAA;AAAF,MAA4BD,MAAM,CAAE,gBAAF,CAAxC;AACA,QAAM;AAAEE,IAAAA;AAAF,MAAkBF,MAAM,CAAEG,YAAF,CAA9B;AACA,SAAO;AACNpB,IAAAA,QAAQ,EAAEmB,WAAW,EADf;AAENb,IAAAA,mBAAmB,EAAEY,qBAAqB;AAFpC,GAAP;AAIA,CAPD,CADuB,EASvB,wBAAgBG,QAAF,IAAgB;AAC7B,QAAM;AAAEd,IAAAA;AAAF,MAA0Bc,QAAQ,CAAE,gBAAF,CAAxC;AAEA,SAAO;AACNd,IAAAA;AADM,GAAP;AAGA,CAND,CATuB,CAAT,EAgBVF,mBAhBU,C","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { InspectorControls, useSetting } from '@wordpress/block-editor';\nimport {\n\tBottomSheet,\n\tColorSettings,\n\tFocalPointSettingsPanel,\n\tImageLinkDestinationsScreen,\n\tLinkPickerScreen,\n} from '@wordpress/components';\nimport { compose } from '@wordpress/compose';\nimport { withDispatch, withSelect } from '@wordpress/data';\n/**\n * Internal dependencies\n */\nimport styles from './container.native.scss';\nimport { store as blockEditorStore } from '../../store';\n\nexport const blockSettingsScreens = {\n\tsettings: 'Settings',\n\tcolor: 'Color',\n\tfocalPoint: 'FocalPoint',\n\tlinkPicker: 'linkPicker',\n\timageLinkDestinations: 'imageLinkDestinations',\n};\n\nfunction BottomSheetSettings( {\n\teditorSidebarOpened,\n\tcloseGeneralSidebar,\n\tsettings,\n\t...props\n} ) {\n\tconst colorSettings = {\n\t\tcolors: useSetting( 'color.palette' ) || settings.colors,\n\t\tgradients: useSetting( 'color.gradients' ) || settings.gradients,\n\t};\n\n\treturn (\n\t\t<BottomSheet\n\t\t\tisVisible={ editorSidebarOpened }\n\t\t\tonClose={ closeGeneralSidebar }\n\t\t\thideHeader\n\t\t\tcontentStyle={ styles.content }\n\t\t\thasNavigation\n\t\t\t{ ...props }\n\t\t>\n\t\t\t<BottomSheet.NavigationContainer animate main>\n\t\t\t\t<BottomSheet.NavigationScreen\n\t\t\t\t\tname={ blockSettingsScreens.settings }\n\t\t\t\t>\n\t\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t\t<BottomSheet.NavigationScreen\n\t\t\t\t\tname={ BottomSheet.SubSheet.screenName }\n\t\t\t\t>\n\t\t\t\t\t<BottomSheet.SubSheet.Slot />\n\t\t\t\t</BottomSheet.NavigationScreen>\n\n\t\t\t\t<BottomSheet.NavigationScreen\n\t\t\t\t\tname={ blockSettingsScreens.color }\n\t\t\t\t>\n\t\t\t\t\t<ColorSettings defaultSettings={ colorSettings } />\n\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t\t<BottomSheet.NavigationScreen\n\t\t\t\t\tname={ blockSettingsScreens.focalPoint }\n\t\t\t\t\tfullScreen\n\t\t\t\t>\n\t\t\t\t\t<FocalPointSettingsPanel />\n\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t\t<BottomSheet.NavigationScreen\n\t\t\t\t\tname={ blockSettingsScreens.linkPicker }\n\t\t\t\t\tfullScreen\n\t\t\t\t\tisScrollable\n\t\t\t\t>\n\t\t\t\t\t<LinkPickerScreen\n\t\t\t\t\t\treturnScreenName={ blockSettingsScreens.settings }\n\t\t\t\t\t/>\n\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t\t<BottomSheet.NavigationScreen\n\t\t\t\t\tname={ blockSettingsScreens.imageLinkDestinations }\n\t\t\t\t>\n\t\t\t\t\t<ImageLinkDestinationsScreen { ...props } />\n\t\t\t\t</BottomSheet.NavigationScreen>\n\t\t\t</BottomSheet.NavigationContainer>\n\t\t</BottomSheet>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst { isEditorSidebarOpened } = select( 'core/edit-post' );\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\tsettings: getSettings(),\n\t\t\teditorSidebarOpened: isEditorSidebarOpened(),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { closeGeneralSidebar } = dispatch( 'core/edit-post' );\n\n\t\treturn {\n\t\t\tcloseGeneralSidebar,\n\t\t};\n\t} ),\n] )( BottomSheetSettings );\n"]}
@@ -76,7 +76,24 @@ function BlockSettingsDropdown({
76
76
  const blockClientIds = (0, _lodash.castArray)(clientIds);
77
77
  const count = blockClientIds.length;
78
78
  const firstBlockClientId = blockClientIds[0];
79
- const onlyBlock = (0, _data.useSelect)(select => 1 === select(_store.store).getBlockCount(), []);
79
+ const {
80
+ onlyBlock,
81
+ title
82
+ } = (0, _data.useSelect)(select => {
83
+ var _getBlockType;
84
+
85
+ const {
86
+ getBlockCount,
87
+ getBlockName
88
+ } = select(_store.store);
89
+ const {
90
+ getBlockType
91
+ } = select(_blocks.store);
92
+ return {
93
+ onlyBlock: 1 === getBlockCount(),
94
+ title: (_getBlockType = getBlockType(getBlockName(firstBlockClientId))) === null || _getBlockType === void 0 ? void 0 : _getBlockType.title
95
+ };
96
+ }, [firstBlockClientId]);
80
97
  const shortcuts = (0, _data.useSelect)(select => {
81
98
  const {
82
99
  getShortcutRepresentation
@@ -95,14 +112,18 @@ function BlockSettingsDropdown({
95
112
  __experimentalSelectBlock(ids[0]);
96
113
  }
97
114
  } : _lodash.noop, [__experimentalSelectBlock]);
98
- const removeBlockLabel = count === 1 ? (0, _i18n.__)('Remove block') : (0, _i18n.__)('Remove blocks');
115
+ const label = (0, _i18n.sprintf)(
116
+ /* translators: %s: block name */
117
+ (0, _i18n.__)('Remove %s'), title);
118
+ const removeBlockLabel = count === 1 ? label : (0, _i18n.__)('Remove blocks');
99
119
  return (0, _element.createElement)(_blockActions.default, {
100
120
  clientIds: clientIds,
101
121
  __experimentalUpdateSelection: !__experimentalSelectBlock
102
122
  }, ({
103
123
  canDuplicate,
104
124
  canInsertDefaultBlock,
105
- isLocked,
125
+ canMove,
126
+ canRemove,
106
127
  onDuplicate,
107
128
  onInsertAfter,
108
129
  onInsertBefore,
@@ -136,7 +157,7 @@ function BlockSettingsDropdown({
136
157
  }, (0, _i18n.__)('Insert before')), (0, _element.createElement)(_components.MenuItem, {
137
158
  onClick: (0, _lodash.flow)(onClose, onInsertAfter),
138
159
  shortcut: shortcuts.insertAfter
139
- }, (0, _i18n.__)('Insert after'))), !isLocked && !onlyBlock && (0, _element.createElement)(_components.MenuItem, {
160
+ }, (0, _i18n.__)('Insert after'))), canMove && !onlyBlock && (0, _element.createElement)(_components.MenuItem, {
140
161
  onClick: (0, _lodash.flow)(onClose, onMoveTo)
141
162
  }, (0, _i18n.__)('Move to')), count === 1 && (0, _element.createElement)(_blockModeToggle.default, {
142
163
  clientId: firstBlockClientId,
@@ -150,7 +171,7 @@ function BlockSettingsDropdown({
150
171
  onClose
151
172
  }) : _element.Children.map(child => (0, _element.cloneElement)(child, {
152
173
  onClose
153
- })), (0, _element.createElement)(_components.MenuGroup, null, !isLocked && (0, _element.createElement)(_components.MenuItem, {
174
+ })), canRemove && (0, _element.createElement)(_components.MenuGroup, null, (0, _element.createElement)(_components.MenuItem, {
154
175
  onClick: (0, _lodash.flow)(onClose, onRemove, updateSelection),
155
176
  shortcut: shortcuts.remove
156
177
  }, removeBlockLabel)))));
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-settings-dropdown.js"],"names":["POPOVER_PROPS","className","position","isAlternate","CopyMenuItem","blocks","onCopy","ref","BlockSettingsDropdown","clientIds","__experimentalSelectBlock","children","props","blockClientIds","count","length","firstBlockClientId","onlyBlock","select","blockEditorStore","getBlockCount","shortcuts","getShortcutRepresentation","keyboardShortcutsStore","duplicate","remove","insertAfter","insertBefore","updateSelection","clientIdsPromise","ids","noop","removeBlockLabel","canDuplicate","canInsertDefaultBlock","isLocked","onDuplicate","onInsertAfter","onInsertBefore","onRemove","onMoveTo","moreVertical","onClose","Children","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 { __ } from '@wordpress/i18n';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { moreVertical } from '@wordpress/icons';\n\nimport { Children, cloneElement, useCallback } from '@wordpress/element';\nimport { serialize } from '@wordpress/blocks';\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 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';\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 onlyBlock = useSelect(\n\t\t( select ) => 1 === select( blockEditorStore ).getBlockCount(),\n\t\t[]\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 updateSelection = 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 removeBlockLabel =\n\t\tcount === 1 ? __( 'Remove block' ) : __( 'Remove blocks' );\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\tisLocked,\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{ 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\tupdateSelection\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{ ! isLocked && ! 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<MenuGroup>\n\t\t\t\t\t\t\t\t{ ! isLocked && (\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\tupdateSelection\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) }\n\t\t\t\t\t\t\t</MenuGroup>\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":["POPOVER_PROPS","className","position","isAlternate","CopyMenuItem","blocks","onCopy","ref","BlockSettingsDropdown","clientIds","__experimentalSelectBlock","children","props","blockClientIds","count","length","firstBlockClientId","onlyBlock","title","select","getBlockCount","getBlockName","blockEditorStore","getBlockType","blocksStore","shortcuts","getShortcutRepresentation","keyboardShortcutsStore","duplicate","remove","insertAfter","insertBefore","updateSelection","clientIdsPromise","ids","noop","label","removeBlockLabel","canDuplicate","canInsertDefaultBlock","canMove","canRemove","onDuplicate","onInsertAfter","onInsertBefore","onRemove","onMoveTo","moreVertical","onClose","Children","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 { __, sprintf } from '@wordpress/i18n';\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { moreVertical } from '@wordpress/icons';\n\nimport { Children, cloneElement, useCallback } from '@wordpress/element';\nimport { serialize, store as blocksStore } from '@wordpress/blocks';\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 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';\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 { onlyBlock, title } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockCount, getBlockName } = select( blockEditorStore );\n\t\t\tconst { getBlockType } = select( blocksStore );\n\t\t\treturn {\n\t\t\t\tonlyBlock: 1 === getBlockCount(),\n\t\t\t\ttitle: getBlockType( getBlockName( firstBlockClientId ) )\n\t\t\t\t\t?.title,\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 updateSelection = 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 label = sprintf(\n\t\t/* translators: %s: block name */\n\t\t__( 'Remove %s' ),\n\t\ttitle\n\t);\n\tconst removeBlockLabel = count === 1 ? label : __( 'Remove blocks' );\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{ 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\tupdateSelection\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\tupdateSelection\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"]}