@wordpress/block-editor 9.2.0 → 9.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (693) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +1 -8
  3. package/build/autocompleters/block.js +3 -1
  4. package/build/autocompleters/block.js.map +1 -1
  5. package/build/components/block-actions/index.js.map +1 -1
  6. package/build/components/block-alignment-control/ui.js.map +1 -1
  7. package/build/components/block-alignment-matrix-control/index.js +3 -7
  8. package/build/components/block-alignment-matrix-control/index.js.map +1 -1
  9. package/build/components/block-breadcrumb/index.js.map +1 -1
  10. package/build/components/block-content-overlay/index.js.map +1 -1
  11. package/build/components/block-context/index.js.map +1 -1
  12. package/build/components/block-controls/hook.js.map +1 -1
  13. package/build/components/block-draggable/index.js.map +1 -1
  14. package/build/components/block-draggable/index.native.js.map +1 -1
  15. package/build/components/block-list/block-invalid-warning.native.js +54 -6
  16. package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
  17. package/build/components/block-list/block-list-item.native.js.map +1 -1
  18. package/build/components/block-list/block-selection-button.native.js.map +1 -1
  19. package/build/components/block-list/block.js +2 -2
  20. package/build/components/block-list/block.js.map +1 -1
  21. package/build/components/block-list/block.native.js +2 -1
  22. package/build/components/block-list/block.native.js.map +1 -1
  23. package/build/components/block-list/index.js.map +1 -1
  24. package/build/components/block-list/index.native.js +4 -3
  25. package/build/components/block-list/index.native.js.map +1 -1
  26. package/build/components/block-list/layout.js +20 -5
  27. package/build/components/block-list/layout.js.map +1 -1
  28. package/build/components/block-list/use-block-props/index.js.map +1 -1
  29. package/build/components/block-list/use-block-props/use-block-class-names.js +5 -2
  30. package/build/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  31. package/build/components/block-list/use-block-props/use-block-custom-class-name.js.map +1 -1
  32. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  33. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  34. package/build/components/block-list-appender/index.js.map +1 -1
  35. package/build/components/block-list-appender/index.native.js.map +1 -1
  36. package/build/components/block-lock/modal.js +35 -5
  37. package/build/components/block-lock/modal.js.map +1 -1
  38. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  39. package/build/components/block-mover/button.js.map +1 -1
  40. package/build/components/block-mover/index.native.js.map +1 -1
  41. package/build/components/block-parent-selector/index.js.map +1 -1
  42. package/build/components/block-pattern-setup/index.js +8 -26
  43. package/build/components/block-pattern-setup/index.js.map +1 -1
  44. package/build/components/block-pattern-setup/setup-toolbar.js +3 -8
  45. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  46. package/build/components/block-popover/inbetween.js +1 -1
  47. package/build/components/block-popover/inbetween.js.map +1 -1
  48. package/build/components/block-popover/index.js +1 -1
  49. package/build/components/block-popover/index.js.map +1 -1
  50. package/build/components/block-preview/auto.js +21 -5
  51. package/build/components/block-preview/auto.js.map +1 -1
  52. package/build/components/block-selection-clearer/index.js.map +1 -1
  53. package/build/components/block-settings-menu/block-edit-visually-button.js +70 -0
  54. package/build/components/block-settings-menu/block-edit-visually-button.js.map +1 -0
  55. package/build/components/block-settings-menu/block-mode-toggle.js +4 -8
  56. package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  57. package/build/components/block-settings-menu/block-settings-dropdown.js +10 -4
  58. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  59. package/build/components/block-settings-menu/index.js +6 -2
  60. package/build/components/block-settings-menu/index.js.map +1 -1
  61. package/build/components/block-settings-menu-controls/index.js +4 -1
  62. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  63. package/build/components/block-styles/index.js +6 -3
  64. package/build/components/block-styles/index.js.map +1 -1
  65. package/build/components/block-styles/menu-items.js +3 -7
  66. package/build/components/block-styles/menu-items.js.map +1 -1
  67. package/build/components/block-styles/preview.native.js +3 -1
  68. package/build/components/block-styles/preview.native.js.map +1 -1
  69. package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
  70. package/build/components/block-switcher/index.js +7 -1
  71. package/build/components/block-switcher/index.js.map +1 -1
  72. package/build/components/block-title/index.js +8 -2
  73. package/build/components/block-title/index.js.map +1 -1
  74. package/build/components/block-title/use-block-display-title.js +15 -15
  75. package/build/components/block-title/use-block-display-title.js.map +1 -1
  76. package/build/components/block-toolbar/index.native.js.map +1 -1
  77. package/build/components/block-toolbar/utils.js +5 -8
  78. package/build/components/block-toolbar/utils.js.map +1 -1
  79. package/build/components/block-tools/block-contextual-toolbar.js +1 -1
  80. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  81. package/build/components/block-tools/index.js.map +1 -1
  82. package/build/components/block-types-list/index.native.js.map +1 -1
  83. package/build/components/block-variation-transforms/index.js.map +1 -1
  84. package/build/components/border-radius-control/index.js +2 -0
  85. package/build/components/border-radius-control/index.js.map +1 -1
  86. package/build/components/color-style-selector/index.js.map +1 -1
  87. package/build/components/colors/with-colors.js +1 -1
  88. package/build/components/colors/with-colors.js.map +1 -1
  89. package/build/components/colors-gradients/control.js +45 -39
  90. package/build/components/colors-gradients/control.js.map +1 -1
  91. package/build/components/colors-gradients/dropdown.js +2 -1
  92. package/build/components/colors-gradients/dropdown.js.map +1 -1
  93. package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
  94. package/build/components/copy-handler/index.js +17 -1
  95. package/build/components/copy-handler/index.js.map +1 -1
  96. package/build/components/date-format-picker/index.js +1 -1
  97. package/build/components/date-format-picker/index.js.map +1 -1
  98. package/build/components/default-block-appender/index.js.map +1 -1
  99. package/build/components/default-block-appender/index.native.js.map +1 -1
  100. package/build/components/default-style-picker/index.js.map +1 -1
  101. package/build/components/duotone/components.js +145 -0
  102. package/build/components/duotone/components.js.map +1 -0
  103. package/build/components/duotone/index.js +40 -0
  104. package/build/components/duotone/index.js.map +1 -0
  105. package/build/components/duotone/utils.js +38 -0
  106. package/build/components/duotone/utils.js.map +1 -0
  107. package/build/components/duotone-control/index.js +17 -5
  108. package/build/components/duotone-control/index.js.map +1 -1
  109. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  110. package/build/components/iframe/index.js +19 -6
  111. package/build/components/iframe/index.js.map +1 -1
  112. package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  113. package/build/components/image-size-control/index.js +3 -1
  114. package/build/components/image-size-control/index.js.map +1 -1
  115. package/build/components/index.js +32 -0
  116. package/build/components/index.js.map +1 -1
  117. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  118. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  119. package/build/components/inserter/block-types-tab.native.js.map +1 -1
  120. package/build/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
  121. package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
  122. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  123. package/build/components/inserter/index.js +3 -3
  124. package/build/components/inserter/index.js.map +1 -1
  125. package/build/components/inserter/index.native.js.map +1 -1
  126. package/build/components/inserter/library.js +3 -7
  127. package/build/components/inserter/library.js.map +1 -1
  128. package/build/components/inserter/menu.js.map +1 -1
  129. package/build/components/inserter/menu.native.js.map +1 -1
  130. package/build/components/inserter/no-results.native.js.map +1 -1
  131. package/build/components/inserter/quick-inserter.js.map +1 -1
  132. package/build/components/inserter/search-items.js +1 -1
  133. package/build/components/inserter/search-items.js.map +1 -1
  134. package/build/components/inserter/search-results.native.js.map +1 -1
  135. package/build/components/inspector-popover-header/index.js +56 -0
  136. package/build/components/inspector-popover-header/index.js.map +1 -0
  137. package/build/components/line-height-control/index.js.map +1 -1
  138. package/build/components/link-control/index.js +5 -5
  139. package/build/components/link-control/index.js.map +1 -1
  140. package/build/components/link-control/search-create-button.js +1 -3
  141. package/build/components/link-control/search-create-button.js.map +1 -1
  142. package/build/components/link-control/search-input.js +5 -3
  143. package/build/components/link-control/search-input.js.map +1 -1
  144. package/build/components/link-control/settings-drawer.js +3 -7
  145. package/build/components/link-control/settings-drawer.js.map +1 -1
  146. package/build/components/link-control/use-search-handler.js.map +1 -1
  147. package/build/components/list-view/block-contents.js.map +1 -1
  148. package/build/components/list-view/block-select-button.js +15 -7
  149. package/build/components/list-view/block-select-button.js.map +1 -1
  150. package/build/components/list-view/branch.js.map +1 -1
  151. package/build/components/list-view/drop-indicator.js +1 -1
  152. package/build/components/list-view/drop-indicator.js.map +1 -1
  153. package/build/components/list-view/index.js.map +1 -1
  154. package/build/components/list-view/use-block-selection.js.map +1 -1
  155. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  156. package/build/components/list-view/utils.js +1 -7
  157. package/build/components/list-view/utils.js.map +1 -1
  158. package/build/components/media-placeholder/index.js +18 -6
  159. package/build/components/media-placeholder/index.js.map +1 -1
  160. package/build/components/media-placeholder/index.native.js +4 -4
  161. package/build/components/media-placeholder/index.native.js.map +1 -1
  162. package/build/components/media-replace-flow/index.js +25 -17
  163. package/build/components/media-replace-flow/index.js.map +1 -1
  164. package/build/components/media-upload/index.native.js +1 -1
  165. package/build/components/media-upload/index.native.js.map +1 -1
  166. package/build/components/navigable-toolbar/index.js.map +1 -1
  167. package/build/components/plain-text/index.native.js.map +1 -1
  168. package/build/components/preview-options/index.js +4 -0
  169. package/build/components/preview-options/index.js.map +1 -1
  170. package/build/components/provider/use-block-sync.js +5 -3
  171. package/build/components/provider/use-block-sync.js.map +1 -1
  172. package/build/components/publish-date-time-picker/index.js +17 -16
  173. package/build/components/publish-date-time-picker/index.js.map +1 -1
  174. package/build/components/rich-text/embed-handler-picker.native.js +4 -8
  175. package/build/components/rich-text/embed-handler-picker.native.js.map +1 -1
  176. package/build/components/rich-text/index.js.map +1 -1
  177. package/build/components/rich-text/use-format-types.js.map +1 -1
  178. package/build/components/rich-text/use-input-rules.js +4 -13
  179. package/build/components/rich-text/use-input-rules.js.map +1 -1
  180. package/build/components/rich-text/use-mark-persistent.js.map +1 -1
  181. package/build/components/rich-text/use-paste-handler.js +20 -5
  182. package/build/components/rich-text/use-paste-handler.js.map +1 -1
  183. package/build/components/skip-to-selected-block/index.js.map +1 -1
  184. package/build/components/ungroup-button/index.native.js +3 -7
  185. package/build/components/ungroup-button/index.native.js.map +1 -1
  186. package/build/components/url-input/index.js +14 -3
  187. package/build/components/url-input/index.js.map +1 -1
  188. package/build/components/url-popover/index.js +2 -1
  189. package/build/components/url-popover/index.js.map +1 -1
  190. package/build/components/use-block-display-information/index.js.map +1 -1
  191. package/build/components/use-block-drop-zone/index.js.map +1 -1
  192. package/build/components/use-block-drop-zone/index.native.js.map +1 -1
  193. package/build/components/use-display-block-controls/index.native.js.map +1 -1
  194. package/build/components/use-on-block-drop/index.js.map +1 -1
  195. package/build/components/use-on-block-drop/index.native.js.map +1 -1
  196. package/build/components/use-setting/index.js.map +1 -1
  197. package/build/components/writing-flow/use-arrow-nav.js +46 -14
  198. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  199. package/build/components/writing-flow/use-click-selection.js.map +1 -1
  200. package/build/components/writing-flow/use-drag-selection.js.map +1 -1
  201. package/build/components/writing-flow/use-multi-selection.js +3 -47
  202. package/build/components/writing-flow/use-multi-selection.js.map +1 -1
  203. package/build/components/writing-flow/use-select-all.js.map +1 -1
  204. package/build/components/writing-flow/use-selection-observer.js +1 -3
  205. package/build/components/writing-flow/use-selection-observer.js.map +1 -1
  206. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  207. package/build/elements/index.js +11 -3
  208. package/build/elements/index.js.map +1 -1
  209. package/build/hooks/aria-label.js +71 -0
  210. package/build/hooks/aria-label.js.map +1 -0
  211. package/build/hooks/color-panel.js.map +1 -1
  212. package/build/hooks/color-panel.native.js.map +1 -1
  213. package/build/hooks/color.js +2 -4
  214. package/build/hooks/color.js.map +1 -1
  215. package/build/hooks/duotone.js +33 -160
  216. package/build/hooks/duotone.js.map +1 -1
  217. package/build/hooks/font-family.js.map +1 -1
  218. package/build/hooks/gap.js.map +1 -1
  219. package/build/hooks/index.js +11 -7
  220. package/build/hooks/index.js.map +1 -1
  221. package/build/hooks/layout.js +74 -8
  222. package/build/hooks/layout.js.map +1 -1
  223. package/build/hooks/utils.js +5 -3
  224. package/build/hooks/utils.js.map +1 -1
  225. package/build/index.js +7 -7
  226. package/build/index.js.map +1 -1
  227. package/build/layouts/flex.js +42 -38
  228. package/build/layouts/flex.js.map +1 -1
  229. package/build/layouts/flow.js +10 -35
  230. package/build/layouts/flow.js.map +1 -1
  231. package/build/layouts/utils.js +35 -3
  232. package/build/layouts/utils.js.map +1 -1
  233. package/build/store/actions.js +24 -31
  234. package/build/store/actions.js.map +1 -1
  235. package/build/store/index.js +0 -4
  236. package/build/store/index.js.map +1 -1
  237. package/build/store/reducer.js +23 -12
  238. package/build/store/reducer.js.map +1 -1
  239. package/build/store/selectors.js +4 -4
  240. package/build/store/selectors.js.map +1 -1
  241. package/build/utils/pasting.js.map +1 -1
  242. package/build/utils/selection.js +34 -0
  243. package/build/utils/selection.js.map +1 -0
  244. package/build/utils/transform-styles/transforms/wrap.js.map +1 -1
  245. package/build-module/autocompleters/block.js +4 -1
  246. package/build-module/autocompleters/block.js.map +1 -1
  247. package/build-module/components/block-actions/index.js.map +1 -1
  248. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  249. package/build-module/components/block-alignment-matrix-control/index.js +2 -5
  250. package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
  251. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  252. package/build-module/components/block-content-overlay/index.js.map +1 -1
  253. package/build-module/components/block-context/index.js.map +1 -1
  254. package/build-module/components/block-controls/hook.js.map +1 -1
  255. package/build-module/components/block-draggable/index.js.map +1 -1
  256. package/build-module/components/block-draggable/index.native.js.map +1 -1
  257. package/build-module/components/block-list/block-invalid-warning.native.js +50 -6
  258. package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
  259. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  260. package/build-module/components/block-list/block-selection-button.native.js.map +1 -1
  261. package/build-module/components/block-list/block.js +2 -2
  262. package/build-module/components/block-list/block.js.map +1 -1
  263. package/build-module/components/block-list/block.native.js +2 -1
  264. package/build-module/components/block-list/block.native.js.map +1 -1
  265. package/build-module/components/block-list/index.js.map +1 -1
  266. package/build-module/components/block-list/index.native.js +3 -1
  267. package/build-module/components/block-list/index.native.js.map +1 -1
  268. package/build-module/components/block-list/layout.js +19 -4
  269. package/build-module/components/block-list/layout.js.map +1 -1
  270. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  271. package/build-module/components/block-list/use-block-props/use-block-class-names.js +5 -2
  272. package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  273. package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js.map +1 -1
  274. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  275. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  276. package/build-module/components/block-list-appender/index.js.map +1 -1
  277. package/build-module/components/block-list-appender/index.native.js.map +1 -1
  278. package/build-module/components/block-lock/modal.js +37 -6
  279. package/build-module/components/block-lock/modal.js.map +1 -1
  280. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  281. package/build-module/components/block-mover/button.js.map +1 -1
  282. package/build-module/components/block-mover/index.native.js.map +1 -1
  283. package/build-module/components/block-parent-selector/index.js.map +1 -1
  284. package/build-module/components/block-pattern-setup/index.js +9 -27
  285. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  286. package/build-module/components/block-pattern-setup/setup-toolbar.js +3 -8
  287. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  288. package/build-module/components/block-popover/inbetween.js +1 -1
  289. package/build-module/components/block-popover/inbetween.js.map +1 -1
  290. package/build-module/components/block-popover/index.js +1 -1
  291. package/build-module/components/block-popover/index.js.map +1 -1
  292. package/build-module/components/block-preview/auto.js +20 -5
  293. package/build-module/components/block-preview/auto.js.map +1 -1
  294. package/build-module/components/block-selection-clearer/index.js.map +1 -1
  295. package/build-module/components/block-settings-menu/block-edit-visually-button.js +56 -0
  296. package/build-module/components/block-settings-menu/block-edit-visually-button.js.map +1 -0
  297. package/build-module/components/block-settings-menu/block-mode-toggle.js +4 -6
  298. package/build-module/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  299. package/build-module/components/block-settings-menu/block-settings-dropdown.js +10 -3
  300. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  301. package/build-module/components/block-settings-menu/index.js +6 -3
  302. package/build-module/components/block-settings-menu/index.js.map +1 -1
  303. package/build-module/components/block-settings-menu-controls/index.js +5 -2
  304. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  305. package/build-module/components/block-styles/index.js +5 -2
  306. package/build-module/components/block-styles/index.js.map +1 -1
  307. package/build-module/components/block-styles/menu-items.js +3 -5
  308. package/build-module/components/block-styles/menu-items.js.map +1 -1
  309. package/build-module/components/block-styles/preview.native.js +3 -2
  310. package/build-module/components/block-styles/preview.native.js.map +1 -1
  311. package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
  312. package/build-module/components/block-switcher/index.js +7 -1
  313. package/build-module/components/block-switcher/index.js.map +1 -1
  314. package/build-module/components/block-title/index.js +8 -2
  315. package/build-module/components/block-title/index.js.map +1 -1
  316. package/build-module/components/block-title/use-block-display-title.js +15 -14
  317. package/build-module/components/block-title/use-block-display-title.js.map +1 -1
  318. package/build-module/components/block-toolbar/index.native.js.map +1 -1
  319. package/build-module/components/block-toolbar/utils.js +3 -5
  320. package/build-module/components/block-toolbar/utils.js.map +1 -1
  321. package/build-module/components/block-tools/block-contextual-toolbar.js +1 -1
  322. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  323. package/build-module/components/block-tools/index.js.map +1 -1
  324. package/build-module/components/block-types-list/index.native.js.map +1 -1
  325. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  326. package/build-module/components/border-radius-control/index.js +2 -0
  327. package/build-module/components/border-radius-control/index.js.map +1 -1
  328. package/build-module/components/color-style-selector/index.js.map +1 -1
  329. package/build-module/components/colors/with-colors.js +2 -2
  330. package/build-module/components/colors/with-colors.js.map +1 -1
  331. package/build-module/components/colors-gradients/control.js +46 -40
  332. package/build-module/components/colors-gradients/control.js.map +1 -1
  333. package/build-module/components/colors-gradients/dropdown.js +2 -1
  334. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  335. package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
  336. package/build-module/components/copy-handler/index.js +18 -2
  337. package/build-module/components/copy-handler/index.js.map +1 -1
  338. package/build-module/components/date-format-picker/index.js +1 -1
  339. package/build-module/components/date-format-picker/index.js.map +1 -1
  340. package/build-module/components/default-block-appender/index.js.map +1 -1
  341. package/build-module/components/default-block-appender/index.native.js.map +1 -1
  342. package/build-module/components/default-style-picker/index.js.map +1 -1
  343. package/build-module/components/duotone/components.js +130 -0
  344. package/build-module/components/duotone/components.js.map +1 -0
  345. package/build-module/components/duotone/index.js +3 -0
  346. package/build-module/components/duotone/index.js.map +1 -0
  347. package/build-module/components/duotone/utils.js +30 -0
  348. package/build-module/components/duotone/utils.js.map +1 -0
  349. package/build-module/components/duotone-control/index.js +18 -6
  350. package/build-module/components/duotone-control/index.js.map +1 -1
  351. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  352. package/build-module/components/iframe/index.js +19 -6
  353. package/build-module/components/iframe/index.js.map +1 -1
  354. package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  355. package/build-module/components/image-size-control/index.js +4 -1
  356. package/build-module/components/image-size-control/index.js.map +1 -1
  357. package/build-module/components/index.js +3 -0
  358. package/build-module/components/index.js.map +1 -1
  359. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  360. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  361. package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
  362. package/build-module/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
  363. package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
  364. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  365. package/build-module/components/inserter/index.js +3 -2
  366. package/build-module/components/inserter/index.js.map +1 -1
  367. package/build-module/components/inserter/index.native.js.map +1 -1
  368. package/build-module/components/inserter/library.js +2 -5
  369. package/build-module/components/inserter/library.js.map +1 -1
  370. package/build-module/components/inserter/menu.js.map +1 -1
  371. package/build-module/components/inserter/menu.native.js.map +1 -1
  372. package/build-module/components/inserter/no-results.native.js.map +1 -1
  373. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  374. package/build-module/components/inserter/search-items.js +2 -2
  375. package/build-module/components/inserter/search-items.js.map +1 -1
  376. package/build-module/components/inserter/search-results.native.js.map +1 -1
  377. package/build-module/components/inspector-popover-header/index.js +46 -0
  378. package/build-module/components/inspector-popover-header/index.js.map +1 -0
  379. package/build-module/components/line-height-control/index.js.map +1 -1
  380. package/build-module/components/link-control/index.js +3 -2
  381. package/build-module/components/link-control/index.js.map +1 -1
  382. package/build-module/components/link-control/search-create-button.js +1 -2
  383. package/build-module/components/link-control/search-create-button.js.map +1 -1
  384. package/build-module/components/link-control/search-input.js +3 -1
  385. package/build-module/components/link-control/search-input.js.map +1 -1
  386. package/build-module/components/link-control/settings-drawer.js +2 -5
  387. package/build-module/components/link-control/settings-drawer.js.map +1 -1
  388. package/build-module/components/link-control/use-search-handler.js.map +1 -1
  389. package/build-module/components/list-view/block-contents.js.map +1 -1
  390. package/build-module/components/list-view/block-select-button.js +16 -8
  391. package/build-module/components/list-view/block-select-button.js.map +1 -1
  392. package/build-module/components/list-view/branch.js.map +1 -1
  393. package/build-module/components/list-view/drop-indicator.js +1 -1
  394. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  395. package/build-module/components/list-view/index.js.map +1 -1
  396. package/build-module/components/list-view/use-block-selection.js.map +1 -1
  397. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  398. package/build-module/components/list-view/utils.js +1 -6
  399. package/build-module/components/list-view/utils.js.map +1 -1
  400. package/build-module/components/media-placeholder/index.js +16 -3
  401. package/build-module/components/media-placeholder/index.js.map +1 -1
  402. package/build-module/components/media-placeholder/index.native.js +5 -3
  403. package/build-module/components/media-placeholder/index.native.js.map +1 -1
  404. package/build-module/components/media-replace-flow/index.js +27 -18
  405. package/build-module/components/media-replace-flow/index.js.map +1 -1
  406. package/build-module/components/media-upload/index.native.js +1 -1
  407. package/build-module/components/media-upload/index.native.js.map +1 -1
  408. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  409. package/build-module/components/plain-text/index.native.js.map +1 -1
  410. package/build-module/components/preview-options/index.js +4 -0
  411. package/build-module/components/preview-options/index.js.map +1 -1
  412. package/build-module/components/provider/use-block-sync.js +4 -1
  413. package/build-module/components/provider/use-block-sync.js.map +1 -1
  414. package/build-module/components/publish-date-time-picker/index.js +16 -16
  415. package/build-module/components/publish-date-time-picker/index.js.map +1 -1
  416. package/build-module/components/rich-text/embed-handler-picker.native.js +3 -5
  417. package/build-module/components/rich-text/embed-handler-picker.native.js.map +1 -1
  418. package/build-module/components/rich-text/index.js.map +1 -1
  419. package/build-module/components/rich-text/use-format-types.js.map +1 -1
  420. package/build-module/components/rich-text/use-input-rules.js +3 -11
  421. package/build-module/components/rich-text/use-input-rules.js.map +1 -1
  422. package/build-module/components/rich-text/use-mark-persistent.js.map +1 -1
  423. package/build-module/components/rich-text/use-paste-handler.js +20 -5
  424. package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
  425. package/build-module/components/skip-to-selected-block/index.js.map +1 -1
  426. package/build-module/components/ungroup-button/index.native.js +3 -5
  427. package/build-module/components/ungroup-button/index.native.js.map +1 -1
  428. package/build-module/components/url-input/index.js +11 -1
  429. package/build-module/components/url-input/index.js.map +1 -1
  430. package/build-module/components/url-popover/index.js +2 -1
  431. package/build-module/components/url-popover/index.js.map +1 -1
  432. package/build-module/components/use-block-display-information/index.js.map +1 -1
  433. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  434. package/build-module/components/use-block-drop-zone/index.native.js.map +1 -1
  435. package/build-module/components/use-display-block-controls/index.native.js.map +1 -1
  436. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  437. package/build-module/components/use-on-block-drop/index.native.js.map +1 -1
  438. package/build-module/components/use-setting/index.js.map +1 -1
  439. package/build-module/components/writing-flow/use-arrow-nav.js +47 -14
  440. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  441. package/build-module/components/writing-flow/use-click-selection.js.map +1 -1
  442. package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
  443. package/build-module/components/writing-flow/use-multi-selection.js +3 -45
  444. package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
  445. package/build-module/components/writing-flow/use-select-all.js.map +1 -1
  446. package/build-module/components/writing-flow/use-selection-observer.js +1 -3
  447. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
  448. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  449. package/build-module/elements/index.js +7 -1
  450. package/build-module/elements/index.js.map +1 -1
  451. package/build-module/hooks/aria-label.js +59 -0
  452. package/build-module/hooks/aria-label.js.map +1 -0
  453. package/build-module/hooks/color-panel.js.map +1 -1
  454. package/build-module/hooks/color-panel.native.js.map +1 -1
  455. package/build-module/hooks/color.js +2 -3
  456. package/build-module/hooks/color.js.map +1 -1
  457. package/build-module/hooks/duotone.js +22 -140
  458. package/build-module/hooks/duotone.js.map +1 -1
  459. package/build-module/hooks/font-family.js.map +1 -1
  460. package/build-module/hooks/gap.js.map +1 -1
  461. package/build-module/hooks/index.js +2 -1
  462. package/build-module/hooks/index.js.map +1 -1
  463. package/build-module/hooks/layout.js +76 -10
  464. package/build-module/hooks/layout.js.map +1 -1
  465. package/build-module/hooks/utils.js +5 -2
  466. package/build-module/hooks/utils.js.map +1 -1
  467. package/build-module/index.js +1 -1
  468. package/build-module/index.js.map +1 -1
  469. package/build-module/layouts/flex.js +43 -35
  470. package/build-module/layouts/flex.js.map +1 -1
  471. package/build-module/layouts/flow.js +11 -36
  472. package/build-module/layouts/flow.js.map +1 -1
  473. package/build-module/layouts/utils.js +33 -3
  474. package/build-module/layouts/utils.js.map +1 -1
  475. package/build-module/store/actions.js +14 -20
  476. package/build-module/store/actions.js.map +1 -1
  477. package/build-module/store/index.js +0 -4
  478. package/build-module/store/index.js.map +1 -1
  479. package/build-module/store/reducer.js +23 -11
  480. package/build-module/store/reducer.js.map +1 -1
  481. package/build-module/store/selectors.js +5 -5
  482. package/build-module/store/selectors.js.map +1 -1
  483. package/build-module/utils/pasting.js.map +1 -1
  484. package/build-module/utils/selection.js +24 -0
  485. package/build-module/utils/selection.js.map +1 -0
  486. package/build-module/utils/transform-styles/transforms/wrap.js.map +1 -1
  487. package/build-style/style-rtl.css +57 -34
  488. package/build-style/style.css +57 -34
  489. package/package.json +28 -28
  490. package/src/autocompleters/block.js +2 -1
  491. package/src/components/block-actions/index.js +2 -3
  492. package/src/components/block-alignment-control/ui.js +4 -6
  493. package/src/components/block-alignment-matrix-control/index.js +2 -4
  494. package/src/components/block-breadcrumb/index.js +2 -5
  495. package/src/components/block-compare/test/block-view.js +2 -1
  496. package/src/components/block-content-overlay/index.js +2 -5
  497. package/src/components/block-context/index.js +4 -4
  498. package/src/components/block-controls/hook.js +2 -3
  499. package/src/components/block-draggable/index.js +6 -13
  500. package/src/components/block-draggable/index.native.js +6 -14
  501. package/src/components/block-draggable/test/helpers.native.js +3 -3
  502. package/src/components/block-draggable/test/index.native.js +12 -15
  503. package/src/components/block-edit/test/edit.js +2 -1
  504. package/src/components/block-list/block-invalid-warning.native.js +42 -7
  505. package/src/components/block-list/block-list-item.native.js +4 -12
  506. package/src/components/block-list/block-selection-button.native.js +2 -3
  507. package/src/components/block-list/block.js +10 -12
  508. package/src/components/block-list/block.native.js +11 -15
  509. package/src/components/block-list/index.js +2 -3
  510. package/src/components/block-list/index.native.js +13 -22
  511. package/src/components/block-list/layout.js +15 -3
  512. package/src/components/block-list/style.scss +2 -2
  513. package/src/components/block-list/test/block-list-context.native.js +8 -16
  514. package/src/components/block-list/use-block-props/index.js +6 -3
  515. package/src/components/block-list/use-block-props/use-block-class-names.js +5 -1
  516. package/src/components/block-list/use-block-props/use-block-custom-class-name.js +2 -3
  517. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +2 -3
  518. package/src/components/block-list/use-in-between-inserter.js +2 -3
  519. package/src/components/block-list-appender/index.js +2 -5
  520. package/src/components/block-list-appender/index.native.js +2 -3
  521. package/src/components/block-lock/modal.js +42 -4
  522. package/src/components/block-lock/style.scss +10 -0
  523. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +4 -6
  524. package/src/components/block-mover/button.js +2 -3
  525. package/src/components/block-mover/index.native.js +4 -6
  526. package/src/components/block-parent-selector/index.js +2 -3
  527. package/src/components/block-pattern-setup/index.js +5 -27
  528. package/src/components/block-pattern-setup/setup-toolbar.js +2 -9
  529. package/src/components/block-pattern-setup/style.scss +4 -2
  530. package/src/components/block-popover/inbetween.js +1 -1
  531. package/src/components/block-popover/index.js +1 -1
  532. package/src/components/block-preview/auto.js +21 -11
  533. package/src/components/block-selection-clearer/index.js +2 -3
  534. package/src/components/block-settings-menu/block-edit-visually-button.js +52 -0
  535. package/src/components/block-settings-menu/block-mode-toggle.js +5 -8
  536. package/src/components/block-settings-menu/block-settings-dropdown.js +13 -9
  537. package/src/components/block-settings-menu/index.js +15 -11
  538. package/src/components/block-settings-menu-controls/index.js +3 -2
  539. package/src/components/block-styles/index.js +3 -1
  540. package/src/components/block-styles/menu-items.js +2 -5
  541. package/src/components/block-styles/preview.native.js +3 -2
  542. package/src/components/block-switcher/block-transformations-menu.js +2 -4
  543. package/src/components/block-switcher/index.js +7 -1
  544. package/src/components/block-title/index.js +3 -2
  545. package/src/components/block-title/use-block-display-title.js +20 -12
  546. package/src/components/block-toolbar/index.native.js +2 -5
  547. package/src/components/block-toolbar/utils.js +3 -11
  548. package/src/components/block-tools/block-contextual-toolbar.js +5 -6
  549. package/src/components/block-tools/index.js +2 -3
  550. package/src/components/block-types-list/index.native.js +2 -4
  551. package/src/components/block-variation-transforms/index.js +4 -6
  552. package/src/components/border-radius-control/index.js +2 -0
  553. package/src/components/color-palette/test/control.js +2 -1
  554. package/src/components/color-style-selector/index.js +27 -28
  555. package/src/components/colors/test/with-colors.js +14 -14
  556. package/src/components/colors/with-colors.js +10 -14
  557. package/src/components/colors-gradients/control.js +77 -65
  558. package/src/components/colors-gradients/dropdown.js +22 -16
  559. package/src/components/colors-gradients/style.scss +4 -0
  560. package/src/components/colors-gradients/test/control.js +25 -32
  561. package/src/components/convert-to-group-buttons/toolbar.js +2 -6
  562. package/src/components/copy-handler/README.md +7 -2
  563. package/src/components/copy-handler/index.js +26 -6
  564. package/src/components/date-format-picker/index.js +1 -0
  565. package/src/components/default-block-appender/index.js +4 -6
  566. package/src/components/default-block-appender/index.native.js +4 -9
  567. package/src/components/default-style-picker/index.js +20 -21
  568. package/src/components/duotone/components.js +133 -0
  569. package/src/components/duotone/index.js +7 -0
  570. package/src/components/duotone/utils.js +25 -0
  571. package/src/components/duotone-control/index.js +12 -7
  572. package/src/components/duotone-control/style.scss +5 -0
  573. package/src/components/font-sizes/with-font-sizes.js +2 -3
  574. package/src/components/iframe/index.js +25 -6
  575. package/src/components/image-editor/aspect-ratio-dropdown.js +2 -6
  576. package/src/components/image-size-control/index.js +4 -7
  577. package/src/components/index.js +3 -0
  578. package/src/components/inner-blocks/use-inner-block-template-sync.js +2 -3
  579. package/src/components/inner-blocks/use-nested-settings-update.js +6 -9
  580. package/src/components/inserter/block-types-tab.native.js +2 -3
  581. package/src/components/inserter/hooks/use-block-type-impressions.native.js +2 -3
  582. package/src/components/inserter/hooks/use-insertion-point.js +3 -2
  583. package/src/components/inserter/hooks/use-patterns-state.js +4 -5
  584. package/src/components/inserter/index.js +7 -11
  585. package/src/components/inserter/index.native.js +6 -11
  586. package/src/components/inserter/library.js +2 -5
  587. package/src/components/inserter/menu.js +14 -19
  588. package/src/components/inserter/menu.native.js +8 -6
  589. package/src/components/inserter/no-results.native.js +2 -1
  590. package/src/components/inserter/quick-inserter.js +2 -3
  591. package/src/components/inserter/search-items.js +6 -6
  592. package/src/components/inserter/search-results.native.js +4 -6
  593. package/src/components/inserter/style.scss +1 -1
  594. package/src/components/inspector-popover-header/README.md +76 -0
  595. package/src/components/inspector-popover-header/index.js +56 -0
  596. package/src/components/inspector-popover-header/style.scss +16 -0
  597. package/src/components/line-height-control/index.js +1 -2
  598. package/src/components/link-control/index.js +5 -4
  599. package/src/components/link-control/search-create-button.js +4 -2
  600. package/src/components/link-control/search-input.js +3 -1
  601. package/src/components/link-control/settings-drawer.js +2 -5
  602. package/src/components/link-control/test/fixtures/index.js +5 -7
  603. package/src/components/link-control/test/index.js +85 -106
  604. package/src/components/link-control/use-search-handler.js +2 -2
  605. package/src/components/list-view/block-contents.js +2 -4
  606. package/src/components/list-view/block-select-button.js +29 -14
  607. package/src/components/list-view/branch.js +22 -23
  608. package/src/components/list-view/drop-indicator.js +1 -1
  609. package/src/components/list-view/index.js +4 -8
  610. package/src/components/list-view/style.scss +18 -4
  611. package/src/components/list-view/use-block-selection.js +5 -5
  612. package/src/components/list-view/use-list-view-drop-zone.js +2 -1
  613. package/src/components/list-view/utils.js +1 -6
  614. package/src/components/media-placeholder/index.js +22 -1
  615. package/src/components/media-placeholder/index.native.js +9 -5
  616. package/src/components/media-replace-flow/index.js +78 -56
  617. package/src/components/media-replace-flow/test/index.js +14 -4
  618. package/src/components/media-upload/README.md +8 -0
  619. package/src/components/media-upload/index.native.js +1 -1
  620. package/src/components/navigable-toolbar/index.js +1 -2
  621. package/src/components/panel-color-settings/test/index.js +2 -1
  622. package/src/components/plain-text/index.native.js +2 -6
  623. package/src/components/preview-options/index.js +4 -0
  624. package/src/components/provider/use-block-sync.js +5 -2
  625. package/src/components/publish-date-time-picker/README.md +1 -1
  626. package/src/components/publish-date-time-picker/index.js +18 -27
  627. package/src/components/responsive-block-control/README.md +3 -1
  628. package/src/components/responsive-block-control/test/index.js +4 -4
  629. package/src/components/rich-text/embed-handler-picker.native.js +2 -5
  630. package/src/components/rich-text/index.js +7 -4
  631. package/src/components/rich-text/use-format-types.js +16 -16
  632. package/src/components/rich-text/use-input-rules.js +6 -15
  633. package/src/components/rich-text/use-mark-persistent.js +2 -3
  634. package/src/components/rich-text/use-paste-handler.js +17 -5
  635. package/src/components/skip-to-selected-block/index.js +2 -3
  636. package/src/components/ungroup-button/index.native.js +4 -8
  637. package/src/components/url-input/index.js +21 -20
  638. package/src/components/url-popover/index.js +1 -0
  639. package/src/components/url-popover/test/__snapshots__/index.js.snap +3 -0
  640. package/src/components/use-block-display-information/index.js +4 -6
  641. package/src/components/use-block-drop-zone/index.js +2 -3
  642. package/src/components/use-block-drop-zone/index.native.js +2 -4
  643. package/src/components/use-block-drop-zone/test/index.js +22 -23
  644. package/src/components/use-display-block-controls/index.native.js +2 -3
  645. package/src/components/use-no-recursive-renders/test/use-no-recursive-renders.js +2 -3
  646. package/src/components/use-on-block-drop/index.js +2 -5
  647. package/src/components/use-on-block-drop/index.native.js +4 -8
  648. package/src/components/use-setting/index.js +8 -6
  649. package/src/components/writing-flow/test/index.js +22 -4
  650. package/src/components/writing-flow/use-arrow-nav.js +54 -11
  651. package/src/components/writing-flow/use-click-selection.js +2 -5
  652. package/src/components/writing-flow/use-drag-selection.js +6 -9
  653. package/src/components/writing-flow/use-multi-selection.js +1 -50
  654. package/src/components/writing-flow/use-select-all.js +2 -5
  655. package/src/components/writing-flow/use-selection-observer.js +6 -9
  656. package/src/components/writing-flow/use-tab-nav.js +2 -5
  657. package/src/elements/index.js +8 -1
  658. package/src/elements/test/index.js +18 -0
  659. package/src/hooks/aria-label.js +67 -0
  660. package/src/hooks/color-panel.js +4 -4
  661. package/src/hooks/color-panel.native.js +2 -2
  662. package/src/hooks/color.js +12 -5
  663. package/src/hooks/duotone.js +18 -139
  664. package/src/hooks/font-family.js +4 -2
  665. package/src/hooks/gap.js +2 -3
  666. package/src/hooks/index.js +2 -1
  667. package/src/hooks/layout.js +102 -15
  668. package/src/hooks/test/align.js +2 -1
  669. package/src/hooks/test/generated-class-name.js +2 -5
  670. package/src/hooks/test/utils.js +2 -5
  671. package/src/hooks/utils.js +7 -3
  672. package/src/index.js +1 -1
  673. package/src/layouts/flex.js +49 -43
  674. package/src/layouts/flow.js +14 -35
  675. package/src/layouts/test/flex.js +21 -0
  676. package/src/layouts/test/flow.js +21 -0
  677. package/src/layouts/test/utils.js +138 -0
  678. package/src/layouts/utils.js +44 -3
  679. package/src/store/actions.js +763 -733
  680. package/src/store/index.js +0 -4
  681. package/src/store/reducer.js +208 -184
  682. package/src/store/selectors.js +57 -58
  683. package/src/store/test/actions.js +2 -1
  684. package/src/store/test/reducer.js +140 -10
  685. package/src/store/test/selectors.js +20 -27
  686. package/src/style.scss +1 -1
  687. package/src/utils/pasting.js +3 -3
  688. package/src/utils/selection.js +26 -0
  689. package/src/utils/test/selection.js +39 -0
  690. package/src/utils/transform-styles/transforms/wrap.js +30 -28
  691. package/tsconfig.json +2 -1
  692. package/tsconfig.tsbuildinfo +1 -1
  693. package/src/components/publish-date-time-picker/style.scss +0 -20
@@ -6,7 +6,11 @@ import classnames from 'classnames';
6
6
  /**
7
7
  * WordPress dependencies
8
8
  */
9
- import { Button } from '@wordpress/components';
9
+ import {
10
+ Button,
11
+ __experimentalHStack as HStack,
12
+ __experimentalTruncate as Truncate,
13
+ } from '@wordpress/components';
10
14
  import { forwardRef } from '@wordpress/element';
11
15
  import { Icon, lock } from '@wordpress/icons';
12
16
  import { SPACE, ENTER } from '@wordpress/keycodes';
@@ -16,7 +20,7 @@ import { SPACE, ENTER } from '@wordpress/keycodes';
16
20
  */
17
21
  import BlockIcon from '../block-icon';
18
22
  import useBlockDisplayInformation from '../use-block-display-information';
19
- import BlockTitle from '../block-title';
23
+ import useBlockDisplayTitle from '../block-title/use-block-display-title';
20
24
  import ListViewExpander from './expander';
21
25
  import { useBlockLock } from '../block-lock';
22
26
 
@@ -35,6 +39,10 @@ function ListViewBlockSelectButton(
35
39
  ref
36
40
  ) {
37
41
  const blockInformation = useBlockDisplayInformation( clientId );
42
+ const blockTitle = useBlockDisplayTitle( {
43
+ clientId,
44
+ context: 'list-view',
45
+ } );
38
46
  const { isLocked } = useBlockLock( clientId );
39
47
 
40
48
  // The `href` attribute triggers the browser's native HTML drag operations.
@@ -72,19 +80,26 @@ function ListViewBlockSelectButton(
72
80
  >
73
81
  <ListViewExpander onClick={ onToggleExpanded } />
74
82
  <BlockIcon icon={ blockInformation?.icon } showColors />
75
- <span className="block-editor-list-view-block-select-button__title">
76
- <BlockTitle clientId={ clientId } maximumLength={ 35 } />
77
- </span>
78
- { blockInformation?.anchor && (
79
- <span className="block-editor-list-view-block-select-button__anchor">
80
- { blockInformation.anchor }
83
+ <HStack
84
+ alignment="center"
85
+ className="block-editor-list-view-block-select-button__label-wrapper"
86
+ justify="flex-start"
87
+ spacing={ 1 }
88
+ >
89
+ <span className="block-editor-list-view-block-select-button__title">
90
+ <Truncate ellipsizeMode="auto">{ blockTitle }</Truncate>
81
91
  </span>
82
- ) }
83
- { isLocked && (
84
- <span className="block-editor-list-view-block-select-button__lock">
85
- <Icon icon={ lock } />
86
- </span>
87
- ) }
92
+ { blockInformation?.anchor && (
93
+ <span className="block-editor-list-view-block-select-button__anchor">
94
+ { blockInformation.anchor }
95
+ </span>
96
+ ) }
97
+ { isLocked && (
98
+ <span className="block-editor-list-view-block-select-button__lock">
99
+ <Icon icon={ lock } />
100
+ </span>
101
+ ) }
102
+ </HStack>
88
103
  </Button>
89
104
  </>
90
105
  );
@@ -56,29 +56,28 @@ function countBlocks(
56
56
  }
57
57
  return 1;
58
58
  }
59
- const countReducer = (
60
- expandedState,
61
- draggedClientIds,
62
- isExpandedByDefault
63
- ) => ( count, block ) => {
64
- const isDragged = draggedClientIds?.includes( block.clientId );
65
- if ( isDragged ) {
66
- return count;
67
- }
68
- const isExpanded = expandedState[ block.clientId ] ?? isExpandedByDefault;
69
- if ( isExpanded && block.innerBlocks.length > 0 ) {
70
- return (
71
- count +
72
- countBlocks(
73
- block,
74
- expandedState,
75
- draggedClientIds,
76
- isExpandedByDefault
77
- )
78
- );
79
- }
80
- return count + 1;
81
- };
59
+ const countReducer =
60
+ ( expandedState, draggedClientIds, isExpandedByDefault ) =>
61
+ ( count, block ) => {
62
+ const isDragged = draggedClientIds?.includes( block.clientId );
63
+ if ( isDragged ) {
64
+ return count;
65
+ }
66
+ const isExpanded =
67
+ expandedState[ block.clientId ] ?? isExpandedByDefault;
68
+ if ( isExpanded && block.innerBlocks.length > 0 ) {
69
+ return (
70
+ count +
71
+ countBlocks(
72
+ block,
73
+ expandedState,
74
+ draggedClientIds,
75
+ isExpandedByDefault
76
+ )
77
+ );
78
+ }
79
+ return count + 1;
80
+ };
82
81
 
83
82
  function ListViewBranch( props ) {
84
83
  const {
@@ -81,7 +81,7 @@ export default function ListViewDropIndicator( {
81
81
  left: rect.left + indent,
82
82
  right: rect.right,
83
83
  width: 0,
84
- height: rect.height,
84
+ height: 0,
85
85
  ownerDocument,
86
86
  };
87
87
 
@@ -61,17 +61,13 @@ function ListView(
61
61
  { id, blocks, showBlockMovers = false, isExpanded = false },
62
62
  ref
63
63
  ) {
64
- const {
65
- clientIdsTree,
66
- draggedClientIds,
67
- selectedClientIds,
68
- } = useListViewClientIds( blocks );
64
+ const { clientIdsTree, draggedClientIds, selectedClientIds } =
65
+ useListViewClientIds( blocks );
69
66
 
70
67
  const { visibleBlockCount } = useSelect(
71
68
  ( select ) => {
72
- const { getGlobalBlockCount, getClientIdsOfDescendants } = select(
73
- blockEditorStore
74
- );
69
+ const { getGlobalBlockCount, getClientIdsOfDescendants } =
70
+ select( blockEditorStore );
75
71
  const draggedBlockCount =
76
72
  draggedClientIds?.length > 0
77
73
  ? getClientIdsOfDescendants( draggedClientIds ).length + 1
@@ -97,7 +97,7 @@
97
97
  align-items: center;
98
98
  width: 100%;
99
99
  height: auto;
100
- padding: ($grid-unit-15 * 0.5) $grid-unit-15 ($grid-unit-15 * 0.5) 0;
100
+ padding: ($grid-unit-15 * 0.5) $grid-unit-05 ($grid-unit-15 * 0.5) 0;
101
101
  text-align: left;
102
102
  color: $gray-900;
103
103
  border-radius: $radius-block-ui;
@@ -207,7 +207,7 @@
207
207
  }
208
208
 
209
209
  .block-editor-list-view-block__menu-cell {
210
- padding-right: 5px;
210
+ padding-right: $grid-unit-05;
211
211
 
212
212
  .components-button.has-icon {
213
213
  height: 24px;
@@ -297,13 +297,27 @@
297
297
  }
298
298
  }
299
299
 
300
+ .block-editor-list-view-block-select-button__label-wrapper {
301
+ min-width: 120px;
302
+ }
303
+
304
+ .block-editor-list-view-block-select-button__title {
305
+ flex: 1;
306
+ position: relative;
307
+
308
+ .components-truncate {
309
+ position: absolute;
310
+ width: 100%;
311
+ transform: translateY(-50%);
312
+ }
313
+ }
314
+
300
315
  .block-editor-list-view-block-select-button__anchor {
301
316
  background: rgba($black, 0.1);
302
317
  border-radius: $radius-block-ui;
303
318
  display: inline-block;
304
319
  padding: 2px 6px;
305
- margin: 0 $grid-unit-10;
306
- max-width: 120px;
320
+ max-width: min(100px, 40%);
307
321
  overflow: hidden;
308
322
  text-overflow: ellipsis;
309
323
  }
@@ -20,9 +20,8 @@ import { store as blockEditorStore } from '../../store';
20
20
  import { getCommonDepthClientIds } from './utils';
21
21
 
22
22
  export default function useBlockSelection() {
23
- const { clearSelectedBlock, multiSelect, selectBlock } = useDispatch(
24
- blockEditorStore
25
- );
23
+ const { clearSelectedBlock, multiSelect, selectBlock } =
24
+ useDispatch( blockEditorStore );
26
25
  const {
27
26
  getBlockName,
28
27
  getBlockParents,
@@ -134,8 +133,9 @@ export default function useBlockSelection() {
134
133
 
135
134
  let label;
136
135
  if ( selectionDiff.length === 1 ) {
137
- const title = getBlockType( getBlockName( selectionDiff[ 0 ] ) )
138
- ?.title;
136
+ const title = getBlockType(
137
+ getBlockName( selectionDiff[ 0 ] )
138
+ )?.title;
139
139
  if ( title ) {
140
140
  label = sprintf(
141
141
  /* translators: %s: block name */
@@ -132,7 +132,8 @@ function getListViewDropTarget( blocksData, position ) {
132
132
  ) {
133
133
  candidateBlockData = previousBlockData;
134
134
  candidateEdge = 'bottom';
135
- candidateRect = previousBlockData.element.getBoundingClientRect();
135
+ candidateRect =
136
+ previousBlockData.element.getBoundingClientRect();
136
137
  } else {
137
138
  candidateBlockData = blockData;
138
139
  candidateEdge = edge;
@@ -1,8 +1,3 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { isArray } from 'lodash';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
@@ -27,7 +22,7 @@ export const getBlockPositionDescription = ( position, siblingCount, level ) =>
27
22
  * @return {boolean} Whether the block is in multi-selection set.
28
23
  */
29
24
  export const isClientIdSelected = ( clientId, selectedBlockClientIds ) =>
30
- isArray( selectedBlockClientIds ) && selectedBlockClientIds.length
25
+ Array.isArray( selectedBlockClientIds ) && selectedBlockClientIds.length
31
26
  ? selectedBlockClientIds.indexOf( clientId ) !== -1
32
27
  : selectedBlockClientIds === clientId;
33
28
 
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { noop } from 'lodash';
5
4
  import classnames from 'classnames';
6
5
 
7
6
  /**
@@ -27,6 +26,8 @@ import MediaUploadCheck from '../media-upload/check';
27
26
  import URLPopover from '../url-popover';
28
27
  import { store as blockEditorStore } from '../../store';
29
28
 
29
+ const noop = () => {};
30
+
30
31
  const InsertFromURLPopover = ( { src, onChange, onSubmit, onClose } ) => (
31
32
  <URLPopover onClose={ onClose }>
32
33
  <form
@@ -70,6 +71,7 @@ export function MediaPlaceholder( {
70
71
  onSelect,
71
72
  onCancel,
72
73
  onSelectURL,
74
+ onToggleFeaturedImage,
73
75
  onDoubleClick,
74
76
  onFilesPreUpload = noop,
75
77
  onHTMLDrop = noop,
@@ -306,6 +308,22 @@ export function MediaPlaceholder( {
306
308
  );
307
309
  };
308
310
 
311
+ const renderFeaturedImageToggle = () => {
312
+ return (
313
+ onToggleFeaturedImage && (
314
+ <div className="block-editor-media-placeholder__url-input-container">
315
+ <Button
316
+ className="block-editor-media-placeholder__button"
317
+ onClick={ onToggleFeaturedImage }
318
+ variant="tertiary"
319
+ >
320
+ { __( 'Use featured image' ) }
321
+ </Button>
322
+ </div>
323
+ )
324
+ );
325
+ };
326
+
309
327
  const renderMediaUploadChecked = () => {
310
328
  const defaultButton = ( { open } ) => {
311
329
  return (
@@ -327,6 +345,7 @@ export function MediaPlaceholder( {
327
345
  multiple={ multiple }
328
346
  onSelect={ onSelect }
329
347
  allowedTypes={ allowedTypes }
348
+ mode={ 'browse' }
330
349
  value={
331
350
  Array.isArray( value )
332
351
  ? value.map( ( { id } ) => id )
@@ -359,6 +378,7 @@ export function MediaPlaceholder( {
359
378
  </Button>
360
379
  { uploadMediaLibraryButton }
361
380
  { renderUrlSelectionUI() }
381
+ { renderFeaturedImageToggle() }
362
382
  { renderCancelLink() }
363
383
  </>
364
384
  );
@@ -387,6 +407,7 @@ export function MediaPlaceholder( {
387
407
  </FormFileUpload>
388
408
  { uploadMediaLibraryButton }
389
409
  { renderUrlSelectionUI() }
410
+ { renderFeaturedImageToggle() }
390
411
  { renderCancelLink() }
391
412
  </>
392
413
  );
@@ -2,7 +2,6 @@
2
2
  * External dependencies
3
3
  */
4
4
  import { View, Text, TouchableWithoutFeedback } from 'react-native';
5
- import { uniqWith } from 'lodash';
6
5
 
7
6
  /**
8
7
  * WordPress dependencies
@@ -23,12 +22,17 @@ import { Icon, plusCircleFilled } from '@wordpress/icons';
23
22
  */
24
23
  import styles from './styles.scss';
25
24
 
25
+ const isMediaEqual = ( media1, media2 ) =>
26
+ media1.id === media2.id || media1.url === media2.url;
27
+
26
28
  // Remove duplicates after gallery append.
27
29
  const dedupMedia = ( media ) =>
28
- uniqWith(
29
- media,
30
- ( media1, media2 ) =>
31
- media1.id === media2.id || media1.url === media2.url
30
+ media.reduce(
31
+ ( dedupedMedia, mediaItem ) =>
32
+ dedupedMedia.some( ( item ) => isMediaEqual( item, mediaItem ) )
33
+ ? dedupedMedia
34
+ : [ ...dedupedMedia, mediaItem ],
35
+ []
32
36
  );
33
37
 
34
38
  function MediaPlaceholder( props ) {
@@ -1,12 +1,7 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { noop, uniqueId } from 'lodash';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
9
- import { useState, useRef } from '@wordpress/element';
4
+ import { useRef } from '@wordpress/element';
10
5
  import { __ } from '@wordpress/i18n';
11
6
  import { speak } from '@wordpress/a11y';
12
7
  import {
@@ -16,10 +11,15 @@ import {
16
11
  ToolbarButton,
17
12
  Dropdown,
18
13
  withFilters,
14
+ Tooltip,
19
15
  } from '@wordpress/components';
20
16
  import { useSelect, withDispatch } from '@wordpress/data';
21
17
  import { DOWN } from '@wordpress/keycodes';
22
- import { upload, media as mediaIcon } from '@wordpress/icons';
18
+ import {
19
+ postFeaturedImage,
20
+ upload,
21
+ media as mediaIcon,
22
+ } from '@wordpress/icons';
23
23
  import { compose } from '@wordpress/compose';
24
24
  import { __unstableStripHTML as stripHTML } from '@wordpress/dom';
25
25
  import { store as noticesStore } from '@wordpress/notices';
@@ -32,6 +32,9 @@ import MediaUploadCheck from '../media-upload/check';
32
32
  import LinkControl from '../link-control';
33
33
  import { store as blockEditorStore } from '../../store';
34
34
 
35
+ const noop = () => {};
36
+ let uniqueId = 0;
37
+
35
38
  const MediaReplaceFlow = ( {
36
39
  mediaURL,
37
40
  mediaId,
@@ -41,6 +44,8 @@ const MediaReplaceFlow = ( {
41
44
  onError,
42
45
  onSelect,
43
46
  onSelectURL,
47
+ onToggleFeaturedImage,
48
+ useFeaturedImage,
44
49
  onFilesUpload = noop,
45
50
  name = __( 'Replace' ),
46
51
  createNotice,
@@ -50,14 +55,11 @@ const MediaReplaceFlow = ( {
50
55
  addToGallery,
51
56
  handleUpload = true,
52
57
  } ) => {
53
- const [ mediaURLValue, setMediaURLValue ] = useState( mediaURL );
54
58
  const mediaUpload = useSelect( ( select ) => {
55
59
  return select( blockEditorStore ).getSettings().mediaUpload;
56
60
  }, [] );
57
61
  const editMediaButtonRef = useRef();
58
- const errorNoticeID = uniqueId(
59
- 'block-editor/media-replace-flow/error-notice/'
60
- );
62
+ const errorNoticeID = `block-editor/media-replace-flow/error-notice/${ ++uniqueId }`;
61
63
 
62
64
  const onUploadError = ( message ) => {
63
65
  const safeMessage = stripHTML( message );
@@ -81,8 +83,10 @@ const MediaReplaceFlow = ( {
81
83
  };
82
84
 
83
85
  const selectMedia = ( media, closeMenu ) => {
86
+ if ( useFeaturedImage && onToggleFeaturedImage ) {
87
+ onToggleFeaturedImage();
88
+ }
84
89
  closeMenu();
85
- setMediaURLValue( media?.url );
86
90
  // Calling `onSelect` after the state update since it might unmount the component.
87
91
  onSelect( media );
88
92
  speak( __( 'The media file has been replaced' ) );
@@ -148,42 +152,56 @@ const MediaReplaceFlow = ( {
148
152
  renderContent={ ( { onClose } ) => (
149
153
  <>
150
154
  <NavigableMenu className="block-editor-media-replace-flow__media-upload-menu">
151
- <MediaUpload
152
- gallery={ gallery }
153
- addToGallery={ addToGallery }
154
- multiple={ multiple }
155
- value={ multiple ? mediaIds : mediaId }
156
- onSelect={ ( media ) =>
157
- selectMedia( media, onClose )
158
- }
159
- allowedTypes={ allowedTypes }
160
- render={ ( { open } ) => (
161
- <MenuItem icon={ mediaIcon } onClick={ open }>
162
- { __( 'Open Media Library' ) }
163
- </MenuItem>
164
- ) }
165
- />
166
- <MediaUploadCheck>
167
- <FormFileUpload
168
- onChange={ ( event ) => {
169
- uploadFiles( event, onClose );
170
- } }
171
- accept={ accept }
155
+ <>
156
+ <MediaUpload
157
+ gallery={ gallery }
158
+ addToGallery={ addToGallery }
172
159
  multiple={ multiple }
173
- render={ ( { openFileDialog } ) => {
174
- return (
175
- <MenuItem
176
- icon={ upload }
177
- onClick={ () => {
178
- openFileDialog();
179
- } }
180
- >
181
- { __( 'Upload' ) }
182
- </MenuItem>
183
- );
184
- } }
160
+ value={ multiple ? mediaIds : mediaId }
161
+ onSelect={ ( media ) =>
162
+ selectMedia( media, onClose )
163
+ }
164
+ allowedTypes={ allowedTypes }
165
+ render={ ( { open } ) => (
166
+ <MenuItem
167
+ icon={ mediaIcon }
168
+ onClick={ open }
169
+ >
170
+ { __( 'Open Media Library' ) }
171
+ </MenuItem>
172
+ ) }
185
173
  />
186
- </MediaUploadCheck>
174
+ <MediaUploadCheck>
175
+ <FormFileUpload
176
+ onChange={ ( event ) => {
177
+ uploadFiles( event, onClose );
178
+ } }
179
+ accept={ accept }
180
+ multiple={ multiple }
181
+ render={ ( { openFileDialog } ) => {
182
+ return (
183
+ <MenuItem
184
+ icon={ upload }
185
+ onClick={ () => {
186
+ openFileDialog();
187
+ } }
188
+ >
189
+ { __( 'Upload' ) }
190
+ </MenuItem>
191
+ );
192
+ } }
193
+ />
194
+ </MediaUploadCheck>
195
+ </>
196
+ { onToggleFeaturedImage && (
197
+ <MenuItem
198
+ icon={ postFeaturedImage }
199
+ onClick={ onToggleFeaturedImage }
200
+ isPressed={ useFeaturedImage }
201
+ >
202
+ { __( 'Use featured image' ) }
203
+ </MenuItem>
204
+ ) }
187
205
  { children }
188
206
  </NavigableMenu>
189
207
  { onSelectURL && (
@@ -192,16 +210,20 @@ const MediaReplaceFlow = ( {
192
210
  <span className="block-editor-media-replace-flow__image-url-label">
193
211
  { __( 'Current media URL:' ) }
194
212
  </span>
195
- <LinkControl
196
- value={ { url: mediaURLValue } }
197
- settings={ [] }
198
- showSuggestions={ false }
199
- onChange={ ( { url } ) => {
200
- setMediaURLValue( url );
201
- onSelectURL( url );
202
- editMediaButtonRef.current.focus();
203
- } }
204
- />
213
+
214
+ <Tooltip text={ mediaURL } position="bottom">
215
+ <div>
216
+ <LinkControl
217
+ value={ { url: mediaURL } }
218
+ settings={ [] }
219
+ showSuggestions={ false }
220
+ onChange={ ( { url } ) => {
221
+ onSelectURL( url );
222
+ editMediaButtonRef.current.focus();
223
+ } }
224
+ />
225
+ </div>
226
+ </Tooltip>
205
227
  </form>
206
228
  ) }
207
229
  </>
@@ -3,6 +3,11 @@
3
3
  */
4
4
  import { render, fireEvent } from '@testing-library/react';
5
5
 
6
+ /**
7
+ * WordPress dependencies
8
+ */
9
+ import { useState } from '@wordpress/element';
10
+
6
11
  /**
7
12
  * Internal dependencies
8
13
  */
@@ -10,19 +15,24 @@ import MediaReplaceFlow from '../';
10
15
 
11
16
  const noop = () => {};
12
17
 
13
- function setUpMediaReplaceFlow() {
14
- const { container } = render(
18
+ function TestWrapper() {
19
+ const [ mediaURL, setMediaURL ] = useState( 'https://example.media' );
20
+ return (
15
21
  <MediaReplaceFlow
16
22
  mediaId={ 1 }
17
- mediaURL={ 'https://example.media' }
23
+ mediaURL={ mediaURL }
18
24
  allowedTypes={ [ 'png' ] }
19
25
  accept="image/*"
20
26
  onSelect={ noop }
21
- onSelectURL={ noop }
27
+ onSelectURL={ setMediaURL }
22
28
  onError={ noop }
23
29
  onCloseModal={ noop }
24
30
  />
25
31
  );
32
+ }
33
+
34
+ function setUpMediaReplaceFlow() {
35
+ const { container } = render( <TestWrapper /> );
26
36
  return container;
27
37
  }
28
38
 
@@ -64,6 +64,14 @@ If allowedTypes is unset all mime types should be allowed.
64
64
  - Required: No
65
65
  - Platform: Web | Mobile
66
66
 
67
+ ### mode
68
+
69
+ Value of Frame content default mode like 'browse', 'upload' etc.
70
+
71
+ - Type: `String`
72
+ - Required: No
73
+ - Default: false
74
+ - Platform: Web
67
75
  ### multiple
68
76
 
69
77
  Whether to allow multiple selections or not.
@@ -127,7 +127,7 @@ export class MediaUpload extends Component {
127
127
  id: URL_MEDIA_SOURCE,
128
128
  value: URL_MEDIA_SOURCE,
129
129
  label: __( 'Insert from URL' ),
130
- types: [ MEDIA_TYPE_AUDIO, MEDIA_TYPE_IMAGE ],
130
+ types: [ MEDIA_TYPE_AUDIO, MEDIA_TYPE_IMAGE, MEDIA_TYPE_VIDEO ],
131
131
  icon: globe,
132
132
  };
133
133
 
@@ -69,8 +69,7 @@ function useIsAccessibleToolbar( ref ) {
69
69
  since: '5.6',
70
70
  alternative:
71
71
  'ToolbarItem, ToolbarButton or ToolbarDropdownMenu components',
72
- link:
73
- 'https://developer.wordpress.org/block-editor/components/toolbar-button/#inside-blockcontrols',
72
+ link: 'https://developer.wordpress.org/block-editor/components/toolbar-button/#inside-blockcontrols',
74
73
  } );
75
74
  }
76
75
  setIsAccessibleToolbar( onlyToolbarItem );
@@ -2,13 +2,14 @@
2
2
  * External dependencies
3
3
  */
4
4
  import { render } from '@testing-library/react';
5
- import { noop } from 'lodash';
6
5
 
7
6
  /**
8
7
  * Internal dependencies
9
8
  */
10
9
  import PanelColorSettings from '../';
11
10
 
11
+ const noop = () => {};
12
+
12
13
  describe( 'PanelColorSettings', () => {
13
14
  it( 'should not render anything if there are no colors to choose', async () => {
14
15
  const { container } = render(
@@ -99,12 +99,8 @@ export default class PlainText extends Component {
99
99
  }
100
100
 
101
101
  render() {
102
- const {
103
- style,
104
- __experimentalVersion,
105
- onFocus,
106
- ...otherProps
107
- } = this.props;
102
+ const { style, __experimentalVersion, onFocus, ...otherProps } =
103
+ this.props;
108
104
  const textStyles = [
109
105
  style || styles[ 'block-editor-plain-text' ],
110
106
  this.getFontSize(),