@wordpress/block-editor 8.1.2-next.f435e9e01b.0 → 8.2.1-next.a55ed9455a.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 (586) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/README.md +6 -26
  3. package/build/autocompleters/link.js +78 -0
  4. package/build/autocompleters/link.js.map +1 -0
  5. package/build/components/autocomplete/index.js +3 -1
  6. package/build/components/autocomplete/index.js.map +1 -1
  7. package/build/components/block-actions/index.js +1 -1
  8. package/build/components/block-actions/index.js.map +1 -1
  9. package/build/components/block-breadcrumb/index.js +4 -2
  10. package/build/components/block-breadcrumb/index.js.map +1 -1
  11. package/build/components/block-compare/index.js +2 -2
  12. package/build/components/block-compare/index.js.map +1 -1
  13. package/build/components/block-controls/index.js +1 -1
  14. package/build/components/block-controls/index.js.map +1 -1
  15. package/build/components/block-draggable/index.js +1 -1
  16. package/build/components/block-draggable/index.js.map +1 -1
  17. package/build/components/block-edit/edit.js +1 -1
  18. package/build/components/block-edit/edit.js.map +1 -1
  19. package/build/components/block-list/block-html.js +1 -1
  20. package/build/components/block-list/block-html.js.map +1 -1
  21. package/build/components/block-list/block-invalid-warning.js +1 -1
  22. package/build/components/block-list/block-invalid-warning.js.map +1 -1
  23. package/build/components/block-list/block-list-item.native.js +4 -4
  24. package/build/components/block-list/block-list-item.native.js.map +1 -1
  25. package/build/components/block-list/block-selection-button.native.js +4 -3
  26. package/build/components/block-list/block-selection-button.native.js.map +1 -1
  27. package/build/components/block-list/block.js +17 -3
  28. package/build/components/block-list/block.js.map +1 -1
  29. package/build/components/block-list/block.native.js +6 -6
  30. package/build/components/block-list/block.native.js.map +1 -1
  31. package/build/components/block-list/index.native.js +5 -5
  32. package/build/components/block-list/index.native.js.map +1 -1
  33. package/build/components/block-list/use-block-props/use-block-class-names.js +1 -1
  34. package/build/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  35. package/build/components/block-list/use-block-props/use-focus-first-element.js +3 -0
  36. package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  37. package/build/components/block-list/use-block-props/use-multi-selection.js +25 -27
  38. package/build/components/block-list/use-block-props/use-multi-selection.js.map +1 -1
  39. package/build/components/block-media-update-progress/index.native.js +4 -4
  40. package/build/components/block-media-update-progress/index.native.js.map +1 -1
  41. package/build/components/block-mobile-toolbar/block-actions-menu.native.js +3 -3
  42. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  43. package/build/components/block-mobile-toolbar/index.native.js +1 -1
  44. package/build/components/block-mobile-toolbar/index.native.js.map +1 -1
  45. package/build/components/block-mover/mover-description.js +4 -4
  46. package/build/components/block-mover/mover-description.js.map +1 -1
  47. package/build/components/block-mover/mover-description.native.js +5 -5
  48. package/build/components/block-mover/mover-description.native.js.map +1 -1
  49. package/build/components/block-settings/container.native.js +1 -5
  50. package/build/components/block-settings/container.native.js.map +1 -1
  51. package/build/components/block-settings-menu/block-settings-dropdown.js +7 -12
  52. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  53. package/build/components/block-styles/preview.native.js +1 -1
  54. package/build/components/block-styles/preview.native.js.map +1 -1
  55. package/build/components/block-switcher/index.js +2 -1
  56. package/build/components/block-switcher/index.js.map +1 -1
  57. package/build/components/block-switcher/use-transformed-patterns.js +0 -1
  58. package/build/components/block-switcher/use-transformed-patterns.js.map +1 -1
  59. package/build/components/block-title/index.js +7 -62
  60. package/build/components/block-title/index.js.map +1 -1
  61. package/build/components/block-title/use-block-display-title.js +94 -0
  62. package/build/components/block-title/use-block-display-title.js.map +1 -0
  63. package/build/components/block-toolbar/utils.js +9 -1
  64. package/build/components/block-toolbar/utils.js.map +1 -1
  65. package/build/components/block-tools/block-popover.js +1 -1
  66. package/build/components/block-tools/block-popover.js.map +1 -1
  67. package/build/components/block-tools/block-selection-button.js +2 -1
  68. package/build/components/block-tools/block-selection-button.js.map +1 -1
  69. package/build/components/block-types-list/index.native.js +1 -1
  70. package/build/components/block-types-list/index.native.js.map +1 -1
  71. package/build/components/border-radius-control/index.js +2 -2
  72. package/build/components/border-radius-control/index.js.map +1 -1
  73. package/build/components/border-radius-control/utils.js +10 -6
  74. package/build/components/border-radius-control/utils.js.map +1 -1
  75. package/build/components/contrast-checker/index.js +3 -3
  76. package/build/components/contrast-checker/index.js.map +1 -1
  77. package/build/components/convert-to-group-buttons/index.js +1 -1
  78. package/build/components/convert-to-group-buttons/index.js.map +1 -1
  79. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js +1 -3
  80. package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  81. package/build/components/copy-handler/index.js +3 -3
  82. package/build/components/copy-handler/index.js.map +1 -1
  83. package/build/components/font-sizes/with-font-sizes.js +3 -3
  84. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  85. package/build/components/index.js +9 -0
  86. package/build/components/index.js.map +1 -1
  87. package/build/components/index.native.js +38 -1
  88. package/build/components/index.native.js.map +1 -1
  89. package/build/components/inserter/block-patterns-tab.js +4 -4
  90. package/build/components/inserter/block-patterns-tab.js.map +1 -1
  91. package/build/components/inserter/block-types-tab.js +1 -1
  92. package/build/components/inserter/block-types-tab.js.map +1 -1
  93. package/build/components/inserter/hooks/use-block-type-impressions.native.js +2 -2
  94. package/build/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
  95. package/build/components/inserter/index.js +3 -3
  96. package/build/components/inserter/index.js.map +1 -1
  97. package/build/components/inserter/index.native.js +7 -7
  98. package/build/components/inserter/index.native.js.map +1 -1
  99. package/build/components/inserter/menu.js.map +1 -1
  100. package/build/components/inserter/menu.native.js +3 -3
  101. package/build/components/inserter/menu.native.js.map +1 -1
  102. package/build/components/inserter/quick-inserter.js +20 -8
  103. package/build/components/inserter/quick-inserter.js.map +1 -1
  104. package/build/components/inserter/search-items.js +1 -1
  105. package/build/components/inserter/search-items.js.map +1 -1
  106. package/build/components/inserter/search-results.js +28 -11
  107. package/build/components/inserter/search-results.js.map +1 -1
  108. package/build/components/keyboard-shortcuts/index.js +1 -1
  109. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  110. package/build/components/letter-spacing-control/index.js +3 -3
  111. package/build/components/letter-spacing-control/index.js.map +1 -1
  112. package/build/components/line-height-control/index.js +63 -45
  113. package/build/components/line-height-control/index.js.map +1 -1
  114. package/build/components/line-height-control/index.native.js +3 -1
  115. package/build/components/line-height-control/index.native.js.map +1 -1
  116. package/build/components/link-control/index.js +2 -2
  117. package/build/components/link-control/index.js.map +1 -1
  118. package/build/components/link-control/search-input.js +1 -1
  119. package/build/components/link-control/search-input.js.map +1 -1
  120. package/build/components/link-control/search-results.js +2 -2
  121. package/build/components/link-control/search-results.js.map +1 -1
  122. package/build/components/link-control/use-rich-url-data.js +1 -1
  123. package/build/components/link-control/use-rich-url-data.js.map +1 -1
  124. package/build/components/link-control/use-search-handler.js +2 -2
  125. package/build/components/link-control/use-search-handler.js.map +1 -1
  126. package/build/components/list-view/block-contents.js +8 -4
  127. package/build/components/list-view/block-contents.js.map +1 -1
  128. package/build/components/list-view/block-select-button.js +2 -2
  129. package/build/components/list-view/block-select-button.js.map +1 -1
  130. package/build/components/list-view/block.js +20 -9
  131. package/build/components/list-view/block.js.map +1 -1
  132. package/build/components/list-view/branch.js +2 -1
  133. package/build/components/list-view/branch.js.map +1 -1
  134. package/build/components/list-view/index.js +49 -41
  135. package/build/components/list-view/index.js.map +1 -1
  136. package/build/components/list-view/use-block-selection.js +139 -0
  137. package/build/components/list-view/use-block-selection.js.map +1 -0
  138. package/build/components/list-view/use-list-view-expand-selected-item.js +60 -0
  139. package/build/components/list-view/use-list-view-expand-selected-item.js.map +1 -0
  140. package/build/components/list-view/utils.js +29 -1
  141. package/build/components/list-view/utils.js.map +1 -1
  142. package/build/components/media-placeholder/index.native.js +7 -5
  143. package/build/components/media-placeholder/index.native.js.map +1 -1
  144. package/build/components/media-replace-flow/index.js +20 -24
  145. package/build/components/media-replace-flow/index.js.map +1 -1
  146. package/build/components/media-upload/index.native.js +4 -3
  147. package/build/components/media-upload/index.native.js.map +1 -1
  148. package/build/components/media-upload-progress/index.native.js +1 -1
  149. package/build/components/media-upload-progress/index.native.js.map +1 -1
  150. package/build/components/navigable-toolbar/index.js +3 -3
  151. package/build/components/navigable-toolbar/index.js.map +1 -1
  152. package/build/components/plain-text/index.native.js +3 -3
  153. package/build/components/plain-text/index.native.js.map +1 -1
  154. package/build/components/rich-text/format-toolbar-container.js +2 -2
  155. package/build/components/rich-text/format-toolbar-container.js.map +1 -1
  156. package/build/components/rich-text/format-toolbar-container.native.js +1 -1
  157. package/build/components/rich-text/format-toolbar-container.native.js.map +1 -1
  158. package/build/components/rich-text/index.js +7 -12
  159. package/build/components/rich-text/index.js.map +1 -1
  160. package/build/components/rich-text/index.native.js +3 -3
  161. package/build/components/rich-text/index.native.js.map +1 -1
  162. package/build/components/rich-text/use-paste-handler.js +7 -12
  163. package/build/components/rich-text/use-paste-handler.js.map +1 -1
  164. package/build/components/url-input/index.js +11 -11
  165. package/build/components/url-input/index.js.map +1 -1
  166. package/build/components/use-moving-animation/index.js +1 -1
  167. package/build/components/use-moving-animation/index.js.map +1 -1
  168. package/build/components/use-on-block-drop/index.js +2 -2
  169. package/build/components/use-on-block-drop/index.js.map +1 -1
  170. package/build/components/writing-flow/index.js +1 -0
  171. package/build/components/writing-flow/index.js.map +1 -1
  172. package/build/components/writing-flow/use-multi-selection.js +22 -24
  173. package/build/components/writing-flow/use-multi-selection.js.map +1 -1
  174. package/build/components/writing-flow/use-select-all.js +3 -2
  175. package/build/components/writing-flow/use-select-all.js.map +1 -1
  176. package/build/components/writing-flow/use-tab-nav.js +4 -3
  177. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  178. package/build/hooks/align.js +1 -1
  179. package/build/hooks/align.js.map +1 -1
  180. package/build/hooks/anchor.js +1 -1
  181. package/build/hooks/anchor.js.map +1 -1
  182. package/build/hooks/border.js +2 -14
  183. package/build/hooks/border.js.map +1 -1
  184. package/build/hooks/color.js +2 -2
  185. package/build/hooks/color.js.map +1 -1
  186. package/build/hooks/custom-class-name.js +40 -0
  187. package/build/hooks/custom-class-name.js.map +1 -1
  188. package/build/hooks/generated-class-name.js +3 -3
  189. package/build/hooks/generated-class-name.js.map +1 -1
  190. package/build/hooks/line-height.js +2 -0
  191. package/build/hooks/line-height.js.map +1 -1
  192. package/build/hooks/lock.js +1 -1
  193. package/build/hooks/lock.js.map +1 -1
  194. package/build/hooks/style.js +32 -13
  195. package/build/hooks/style.js.map +1 -1
  196. package/build/layouts/flow.js +7 -5
  197. package/build/layouts/flow.js.map +1 -1
  198. package/build/store/actions.js +55 -48
  199. package/build/store/actions.js.map +1 -1
  200. package/build/store/defaults.js +2 -1
  201. package/build/store/defaults.js.map +1 -1
  202. package/build/store/index.js +1 -2
  203. package/build/store/index.js.map +1 -1
  204. package/build/store/reducer.js +13 -13
  205. package/build/store/reducer.js.map +1 -1
  206. package/build/store/selectors.js +6 -6
  207. package/build/store/selectors.js.map +1 -1
  208. package/build/utils/index.js +0 -14
  209. package/build/utils/index.js.map +1 -1
  210. package/build/utils/parse-css-unit-to-px.js +3 -3
  211. package/build/utils/parse-css-unit-to-px.js.map +1 -1
  212. package/build/utils/pasting.js +91 -0
  213. package/build/utils/pasting.js.map +1 -0
  214. package/build/utils/transform-styles/ast/parse.js +5 -5
  215. package/build/utils/transform-styles/ast/parse.js.map +1 -1
  216. package/build/utils/transform-styles/transforms/url-rewrite.js +2 -2
  217. package/build/utils/transform-styles/transforms/url-rewrite.js.map +1 -1
  218. package/build-module/autocompleters/link.js +64 -0
  219. package/build-module/autocompleters/link.js.map +1 -0
  220. package/build-module/components/autocomplete/index.js +2 -1
  221. package/build-module/components/autocomplete/index.js.map +1 -1
  222. package/build-module/components/block-actions/index.js +1 -1
  223. package/build-module/components/block-actions/index.js.map +1 -1
  224. package/build-module/components/block-breadcrumb/index.js +4 -2
  225. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  226. package/build-module/components/block-compare/index.js +2 -2
  227. package/build-module/components/block-compare/index.js.map +1 -1
  228. package/build-module/components/block-controls/index.js +1 -1
  229. package/build-module/components/block-controls/index.js.map +1 -1
  230. package/build-module/components/block-draggable/index.js +1 -1
  231. package/build-module/components/block-draggable/index.js.map +1 -1
  232. package/build-module/components/block-edit/edit.js +1 -1
  233. package/build-module/components/block-edit/edit.js.map +1 -1
  234. package/build-module/components/block-list/block-html.js +1 -1
  235. package/build-module/components/block-list/block-html.js.map +1 -1
  236. package/build-module/components/block-list/block-invalid-warning.js +1 -1
  237. package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
  238. package/build-module/components/block-list/block-list-item.native.js +4 -4
  239. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  240. package/build-module/components/block-list/block-selection-button.native.js +4 -3
  241. package/build-module/components/block-list/block-selection-button.native.js.map +1 -1
  242. package/build-module/components/block-list/block.js +18 -4
  243. package/build-module/components/block-list/block.js.map +1 -1
  244. package/build-module/components/block-list/block.native.js +7 -7
  245. package/build-module/components/block-list/block.native.js.map +1 -1
  246. package/build-module/components/block-list/index.native.js +5 -5
  247. package/build-module/components/block-list/index.native.js.map +1 -1
  248. package/build-module/components/block-list/use-block-props/use-block-class-names.js +1 -1
  249. package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  250. package/build-module/components/block-list/use-block-props/use-focus-first-element.js +2 -0
  251. package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
  252. package/build-module/components/block-list/use-block-props/use-multi-selection.js +23 -28
  253. package/build-module/components/block-list/use-block-props/use-multi-selection.js.map +1 -1
  254. package/build-module/components/block-media-update-progress/index.native.js +4 -4
  255. package/build-module/components/block-media-update-progress/index.native.js.map +1 -1
  256. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +3 -3
  257. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  258. package/build-module/components/block-mobile-toolbar/index.native.js +1 -1
  259. package/build-module/components/block-mobile-toolbar/index.native.js.map +1 -1
  260. package/build-module/components/block-mover/mover-description.js +4 -4
  261. package/build-module/components/block-mover/mover-description.js.map +1 -1
  262. package/build-module/components/block-mover/mover-description.native.js +5 -5
  263. package/build-module/components/block-mover/mover-description.native.js.map +1 -1
  264. package/build-module/components/block-settings/container.native.js +2 -6
  265. package/build-module/components/block-settings/container.native.js.map +1 -1
  266. package/build-module/components/block-settings-menu/block-settings-dropdown.js +7 -13
  267. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  268. package/build-module/components/block-styles/preview.native.js +1 -1
  269. package/build-module/components/block-styles/preview.native.js.map +1 -1
  270. package/build-module/components/block-switcher/index.js +2 -1
  271. package/build-module/components/block-switcher/index.js.map +1 -1
  272. package/build-module/components/block-switcher/use-transformed-patterns.js +0 -1
  273. package/build-module/components/block-switcher/use-transformed-patterns.js.map +1 -1
  274. package/build-module/components/block-title/index.js +7 -58
  275. package/build-module/components/block-title/index.js.map +1 -1
  276. package/build-module/components/block-title/use-block-display-title.js +80 -0
  277. package/build-module/components/block-title/use-block-display-title.js.map +1 -0
  278. package/build-module/components/block-toolbar/utils.js +9 -1
  279. package/build-module/components/block-toolbar/utils.js.map +1 -1
  280. package/build-module/components/block-tools/block-popover.js +1 -1
  281. package/build-module/components/block-tools/block-popover.js.map +1 -1
  282. package/build-module/components/block-tools/block-selection-button.js +2 -1
  283. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  284. package/build-module/components/block-types-list/index.native.js +1 -1
  285. package/build-module/components/block-types-list/index.native.js.map +1 -1
  286. package/build-module/components/border-radius-control/index.js +3 -3
  287. package/build-module/components/border-radius-control/index.js.map +1 -1
  288. package/build-module/components/border-radius-control/utils.js +11 -7
  289. package/build-module/components/border-radius-control/utils.js.map +1 -1
  290. package/build-module/components/contrast-checker/index.js +3 -3
  291. package/build-module/components/contrast-checker/index.js.map +1 -1
  292. package/build-module/components/convert-to-group-buttons/index.js +1 -1
  293. package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
  294. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js +1 -3
  295. package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
  296. package/build-module/components/copy-handler/index.js +2 -2
  297. package/build-module/components/copy-handler/index.js.map +1 -1
  298. package/build-module/components/font-sizes/with-font-sizes.js +3 -3
  299. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  300. package/build-module/components/index.js +1 -0
  301. package/build-module/components/index.js.map +1 -1
  302. package/build-module/components/index.native.js +5 -4
  303. package/build-module/components/index.native.js.map +1 -1
  304. package/build-module/components/inserter/block-patterns-tab.js +4 -4
  305. package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
  306. package/build-module/components/inserter/block-types-tab.js +1 -1
  307. package/build-module/components/inserter/block-types-tab.js.map +1 -1
  308. package/build-module/components/inserter/hooks/use-block-type-impressions.native.js +2 -2
  309. package/build-module/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
  310. package/build-module/components/inserter/index.js +3 -3
  311. package/build-module/components/inserter/index.js.map +1 -1
  312. package/build-module/components/inserter/index.native.js +7 -7
  313. package/build-module/components/inserter/index.native.js.map +1 -1
  314. package/build-module/components/inserter/menu.js.map +1 -1
  315. package/build-module/components/inserter/menu.native.js +3 -3
  316. package/build-module/components/inserter/menu.native.js.map +1 -1
  317. package/build-module/components/inserter/quick-inserter.js +20 -8
  318. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  319. package/build-module/components/inserter/search-items.js +1 -1
  320. package/build-module/components/inserter/search-items.js.map +1 -1
  321. package/build-module/components/inserter/search-results.js +28 -11
  322. package/build-module/components/inserter/search-results.js.map +1 -1
  323. package/build-module/components/keyboard-shortcuts/index.js +1 -1
  324. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  325. package/build-module/components/letter-spacing-control/index.js +3 -3
  326. package/build-module/components/letter-spacing-control/index.js.map +1 -1
  327. package/build-module/components/line-height-control/index.js +61 -45
  328. package/build-module/components/line-height-control/index.js.map +1 -1
  329. package/build-module/components/line-height-control/index.native.js +3 -1
  330. package/build-module/components/line-height-control/index.native.js.map +1 -1
  331. package/build-module/components/link-control/index.js +2 -2
  332. package/build-module/components/link-control/index.js.map +1 -1
  333. package/build-module/components/link-control/search-input.js +1 -1
  334. package/build-module/components/link-control/search-input.js.map +1 -1
  335. package/build-module/components/link-control/search-results.js +2 -2
  336. package/build-module/components/link-control/search-results.js.map +1 -1
  337. package/build-module/components/link-control/use-rich-url-data.js +1 -1
  338. package/build-module/components/link-control/use-rich-url-data.js.map +1 -1
  339. package/build-module/components/link-control/use-search-handler.js +2 -2
  340. package/build-module/components/link-control/use-search-handler.js.map +1 -1
  341. package/build-module/components/list-view/block-contents.js +8 -4
  342. package/build-module/components/list-view/block-contents.js.map +1 -1
  343. package/build-module/components/list-view/block-select-button.js +2 -2
  344. package/build-module/components/list-view/block-select-button.js.map +1 -1
  345. package/build-module/components/list-view/block.js +20 -9
  346. package/build-module/components/list-view/block.js.map +1 -1
  347. package/build-module/components/list-view/branch.js +2 -1
  348. package/build-module/components/list-view/branch.js.map +1 -1
  349. package/build-module/components/list-view/index.js +46 -42
  350. package/build-module/components/list-view/index.js.map +1 -1
  351. package/build-module/components/list-view/use-block-selection.js +123 -0
  352. package/build-module/components/list-view/use-block-selection.js.map +1 -0
  353. package/build-module/components/list-view/use-list-view-expand-selected-item.js +50 -0
  354. package/build-module/components/list-view/use-list-view-expand-selected-item.js.map +1 -0
  355. package/build-module/components/list-view/utils.js +25 -0
  356. package/build-module/components/list-view/utils.js.map +1 -1
  357. package/build-module/components/media-placeholder/index.native.js +7 -5
  358. package/build-module/components/media-placeholder/index.native.js.map +1 -1
  359. package/build-module/components/media-replace-flow/index.js +22 -27
  360. package/build-module/components/media-replace-flow/index.js.map +1 -1
  361. package/build-module/components/media-upload/index.native.js +4 -3
  362. package/build-module/components/media-upload/index.native.js.map +1 -1
  363. package/build-module/components/media-upload-progress/index.native.js +1 -1
  364. package/build-module/components/media-upload-progress/index.native.js.map +1 -1
  365. package/build-module/components/navigable-toolbar/index.js +3 -3
  366. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  367. package/build-module/components/plain-text/index.native.js +3 -3
  368. package/build-module/components/plain-text/index.native.js.map +1 -1
  369. package/build-module/components/rich-text/format-toolbar-container.js +2 -2
  370. package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
  371. package/build-module/components/rich-text/format-toolbar-container.native.js +1 -1
  372. package/build-module/components/rich-text/format-toolbar-container.native.js.map +1 -1
  373. package/build-module/components/rich-text/index.js +7 -12
  374. package/build-module/components/rich-text/index.js.map +1 -1
  375. package/build-module/components/rich-text/index.native.js +3 -3
  376. package/build-module/components/rich-text/index.native.js.map +1 -1
  377. package/build-module/components/rich-text/use-paste-handler.js +6 -12
  378. package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
  379. package/build-module/components/url-input/index.js +11 -11
  380. package/build-module/components/url-input/index.js.map +1 -1
  381. package/build-module/components/use-moving-animation/index.js +1 -1
  382. package/build-module/components/use-moving-animation/index.js.map +1 -1
  383. package/build-module/components/use-on-block-drop/index.js +2 -2
  384. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  385. package/build-module/components/writing-flow/index.js +1 -0
  386. package/build-module/components/writing-flow/index.js.map +1 -1
  387. package/build-module/components/writing-flow/use-multi-selection.js +21 -21
  388. package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
  389. package/build-module/components/writing-flow/use-select-all.js +3 -2
  390. package/build-module/components/writing-flow/use-select-all.js.map +1 -1
  391. package/build-module/components/writing-flow/use-tab-nav.js +4 -3
  392. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  393. package/build-module/hooks/align.js +1 -1
  394. package/build-module/hooks/align.js.map +1 -1
  395. package/build-module/hooks/anchor.js +1 -1
  396. package/build-module/hooks/anchor.js.map +1 -1
  397. package/build-module/hooks/border.js +2 -14
  398. package/build-module/hooks/border.js.map +1 -1
  399. package/build-module/hooks/color.js +2 -2
  400. package/build-module/hooks/color.js.map +1 -1
  401. package/build-module/hooks/custom-class-name.js +38 -0
  402. package/build-module/hooks/custom-class-name.js.map +1 -1
  403. package/build-module/hooks/generated-class-name.js +3 -3
  404. package/build-module/hooks/generated-class-name.js.map +1 -1
  405. package/build-module/hooks/line-height.js +2 -0
  406. package/build-module/hooks/line-height.js.map +1 -1
  407. package/build-module/hooks/lock.js +1 -1
  408. package/build-module/hooks/lock.js.map +1 -1
  409. package/build-module/hooks/style.js +31 -13
  410. package/build-module/hooks/style.js.map +1 -1
  411. package/build-module/layouts/flow.js +7 -5
  412. package/build-module/layouts/flow.js.map +1 -1
  413. package/build-module/store/actions.js +52 -45
  414. package/build-module/store/actions.js.map +1 -1
  415. package/build-module/store/defaults.js +2 -1
  416. package/build-module/store/defaults.js.map +1 -1
  417. package/build-module/store/index.js +1 -2
  418. package/build-module/store/index.js.map +1 -1
  419. package/build-module/store/reducer.js +13 -13
  420. package/build-module/store/reducer.js.map +1 -1
  421. package/build-module/store/selectors.js +6 -6
  422. package/build-module/store/selectors.js.map +1 -1
  423. package/build-module/utils/index.js +0 -1
  424. package/build-module/utils/index.js.map +1 -1
  425. package/build-module/utils/parse-css-unit-to-px.js +3 -3
  426. package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
  427. package/build-module/utils/pasting.js +80 -0
  428. package/build-module/utils/pasting.js.map +1 -0
  429. package/build-module/utils/transform-styles/ast/parse.js +5 -5
  430. package/build-module/utils/transform-styles/ast/parse.js.map +1 -1
  431. package/build-module/utils/transform-styles/transforms/url-rewrite.js +2 -2
  432. package/build-module/utils/transform-styles/transforms/url-rewrite.js.map +1 -1
  433. package/build-style/style-rtl.css +10 -12
  434. package/build-style/style.css +10 -12
  435. package/package.json +27 -26
  436. package/src/autocompleters/link.js +62 -0
  437. package/src/autocompleters/style.scss +8 -0
  438. package/src/components/alignment-control/test/index.js +2 -2
  439. package/src/components/autocomplete/index.js +2 -0
  440. package/src/components/block-actions/index.js +1 -1
  441. package/src/components/block-alignment-control/test/index.js +1 -1
  442. package/src/components/block-breadcrumb/index.js +5 -2
  443. package/src/components/block-compare/index.js +2 -2
  444. package/src/components/block-controls/index.js +1 -1
  445. package/src/components/block-draggable/index.js +1 -1
  446. package/src/components/block-draggable/stories/index.js +1 -1
  447. package/src/components/block-edit/edit.js +1 -1
  448. package/src/components/block-list/block-html.js +1 -1
  449. package/src/components/block-list/block-invalid-warning.js +1 -1
  450. package/src/components/block-list/block-list-item.native.js +4 -4
  451. package/src/components/block-list/block-selection-button.native.js +3 -3
  452. package/src/components/block-list/block.js +28 -4
  453. package/src/components/block-list/block.native.js +7 -6
  454. package/src/components/block-list/index.native.js +5 -5
  455. package/src/components/block-list/style.scss +3 -1
  456. package/src/components/block-list/use-block-props/use-block-class-names.js +1 -1
  457. package/src/components/block-list/use-block-props/use-focus-first-element.js +3 -0
  458. package/src/components/block-list/use-block-props/use-multi-selection.js +22 -30
  459. package/src/components/block-media-update-progress/index.native.js +4 -4
  460. package/src/components/block-media-update-progress/test/index.native.js +2 -2
  461. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +3 -3
  462. package/src/components/block-mobile-toolbar/index.native.js +2 -2
  463. package/src/components/block-mover/mover-description.js +4 -4
  464. package/src/components/block-mover/mover-description.native.js +5 -5
  465. package/src/components/block-settings/container.native.js +5 -6
  466. package/src/components/block-settings-menu/block-settings-dropdown.js +7 -8
  467. package/src/components/block-styles/preview.native.js +1 -1
  468. package/src/components/block-switcher/index.js +4 -1
  469. package/src/components/block-switcher/use-transformed-patterns.js +0 -1
  470. package/src/components/block-title/README.md +17 -1
  471. package/src/components/block-title/index.js +7 -62
  472. package/src/components/block-title/test/index.js +21 -3
  473. package/src/components/block-title/use-block-display-title.js +83 -0
  474. package/src/components/block-toolbar/utils.js +12 -2
  475. package/src/components/block-tools/block-popover.js +1 -1
  476. package/src/components/block-tools/block-selection-button.js +4 -1
  477. package/src/components/block-types-list/index.native.js +1 -1
  478. package/src/components/border-radius-control/index.js +5 -3
  479. package/src/components/border-radius-control/test/utils.js +10 -10
  480. package/src/components/border-radius-control/utils.js +10 -8
  481. package/src/components/contrast-checker/index.js +3 -3
  482. package/src/components/convert-to-group-buttons/index.js +1 -1
  483. package/src/components/convert-to-group-buttons/use-convert-to-group-button-props.js +1 -6
  484. package/src/components/copy-handler/index.js +2 -2
  485. package/src/components/font-sizes/with-font-sizes.js +3 -3
  486. package/src/components/image-size-control/test/index.js +1 -1
  487. package/src/components/index.js +1 -0
  488. package/src/components/index.native.js +11 -4
  489. package/src/components/inserter/block-patterns-tab.js +13 -17
  490. package/src/components/inserter/block-types-tab.js +1 -1
  491. package/src/components/inserter/hooks/use-block-type-impressions.native.js +2 -2
  492. package/src/components/inserter/index.js +3 -3
  493. package/src/components/inserter/index.native.js +7 -7
  494. package/src/components/inserter/menu.js +1 -1
  495. package/src/components/inserter/menu.native.js +3 -3
  496. package/src/components/inserter/quick-inserter.js +32 -10
  497. package/src/components/inserter/search-items.js +1 -1
  498. package/src/components/inserter/search-results.js +55 -43
  499. package/src/components/inserter/test/fixtures/index.native.js +1 -1
  500. package/src/components/inserter/test/reusable-blocks-tab.js +2 -2
  501. package/src/components/justify-content-control/README.md +1 -1
  502. package/src/components/keyboard-shortcuts/index.js +1 -1
  503. package/src/components/letter-spacing-control/index.js +1 -1
  504. package/src/components/line-height-control/README.md +13 -2
  505. package/src/components/line-height-control/index.js +66 -43
  506. package/src/components/line-height-control/index.native.js +2 -0
  507. package/src/components/line-height-control/stories/index.js +33 -0
  508. package/src/components/line-height-control/test/index.js +61 -0
  509. package/src/components/link-control/index.js +2 -2
  510. package/src/components/link-control/search-input.js +1 -1
  511. package/src/components/link-control/search-results.js +2 -2
  512. package/src/components/link-control/test/index.js +142 -144
  513. package/src/components/link-control/use-rich-url-data.js +1 -1
  514. package/src/components/link-control/use-search-handler.js +2 -2
  515. package/src/components/list-view/README.md +2 -2
  516. package/src/components/list-view/block-contents.js +10 -3
  517. package/src/components/list-view/block-select-button.js +1 -2
  518. package/src/components/list-view/block.js +30 -10
  519. package/src/components/list-view/branch.js +1 -0
  520. package/src/components/list-view/index.js +56 -30
  521. package/src/components/list-view/test/utils.js +50 -0
  522. package/src/components/list-view/use-block-selection.js +163 -0
  523. package/src/components/list-view/use-list-view-expand-selected-item.js +58 -0
  524. package/src/components/list-view/utils.js +31 -0
  525. package/src/components/media-placeholder/index.native.js +11 -9
  526. package/src/components/media-replace-flow/README.md +7 -0
  527. package/src/components/media-replace-flow/index.js +20 -26
  528. package/src/components/media-replace-flow/test/index.js +100 -0
  529. package/src/components/media-upload/index.native.js +3 -2
  530. package/src/components/media-upload-progress/index.native.js +1 -1
  531. package/src/components/navigable-toolbar/index.js +3 -3
  532. package/src/components/plain-text/index.native.js +3 -3
  533. package/src/components/responsive-block-control/test/index.js +6 -6
  534. package/src/components/rich-text/format-toolbar-container.js +2 -2
  535. package/src/components/rich-text/format-toolbar-container.native.js +1 -1
  536. package/src/components/rich-text/index.js +7 -14
  537. package/src/components/rich-text/index.native.js +3 -3
  538. package/src/components/rich-text/use-paste-handler.js +7 -14
  539. package/src/components/url-input/index.js +11 -11
  540. package/src/components/use-block-drop-zone/test/index.js +1 -1
  541. package/src/components/use-moving-animation/index.js +1 -1
  542. package/src/components/use-on-block-drop/index.js +2 -2
  543. package/src/components/writing-flow/index.js +1 -0
  544. package/src/components/writing-flow/use-multi-selection.js +17 -20
  545. package/src/components/writing-flow/use-select-all.js +6 -2
  546. package/src/components/writing-flow/use-tab-nav.js +6 -3
  547. package/src/hooks/align.js +1 -1
  548. package/src/hooks/anchor.js +1 -1
  549. package/src/hooks/border.js +8 -19
  550. package/src/hooks/color.js +2 -2
  551. package/src/hooks/custom-class-name.js +45 -0
  552. package/src/hooks/generated-class-name.js +3 -3
  553. package/src/hooks/line-height.js +2 -0
  554. package/src/hooks/lock.js +1 -1
  555. package/src/hooks/style.js +31 -13
  556. package/src/hooks/test/align.js +1 -1
  557. package/src/hooks/typography.scss +0 -4
  558. package/src/layouts/flow.js +10 -5
  559. package/src/store/actions.js +24 -14
  560. package/src/store/defaults.js +2 -2
  561. package/src/store/index.js +0 -1
  562. package/src/store/reducer.js +13 -12
  563. package/src/store/selectors.js +6 -6
  564. package/src/store/test/actions.js +2 -2
  565. package/src/store/test/reducer.js +10 -1
  566. package/src/store/test/selectors.js +1 -1
  567. package/src/style.scss +0 -1
  568. package/src/utils/index.js +0 -1
  569. package/src/utils/parse-css-unit-to-px.js +3 -3
  570. package/src/utils/pasting.js +77 -0
  571. package/src/utils/test/parse-css-unit-to-px.js +5 -5
  572. package/src/utils/test/pasting.js +84 -0
  573. package/src/utils/transform-styles/ast/parse.js +5 -5
  574. package/src/utils/transform-styles/transforms/url-rewrite.js +2 -2
  575. package/build/utils/get-paste-event-data.js +0 -56
  576. package/build/utils/get-paste-event-data.js.map +0 -1
  577. package/build/utils/theme.js +0 -63
  578. package/build/utils/theme.js.map +0 -1
  579. package/build-module/utils/get-paste-event-data.js +0 -47
  580. package/build-module/utils/get-paste-event-data.js.map +0 -1
  581. package/build-module/utils/theme.js +0 -53
  582. package/build-module/utils/theme.js.map +0 -1
  583. package/src/components/line-height-control/style.scss +0 -8
  584. package/src/components/writing-flow/test/use-multi-selection.js +0 -36
  585. package/src/utils/get-paste-event-data.js +0 -42
  586. package/src/utils/theme.js +0 -48
@@ -67,7 +67,7 @@ function LinkControlSearchResults(_ref) {
67
67
  // so we conditionally render it as a wrapper to visually hide the label
68
68
  // when that is required.
69
69
 
70
- const searchResultsLabel = (0, _element.createElement)(isInitialSuggestions ? _element.Fragment : _components.VisuallyHidden, {}, // empty props
70
+ const searchResultsLabel = (0, _element.createElement)(isInitialSuggestions ? _element.Fragment : _components.VisuallyHidden, {}, // Empty props.
71
71
  (0, _element.createElement)("span", {
72
72
  className: "block-editor-link-control__search-results-label",
73
73
  id: searchResultsLabelId
@@ -91,7 +91,7 @@ function LinkControlSearchResults(_ref) {
91
91
  isSelected: index === selectedSuggestion
92
92
  });
93
93
  } // If we're not handling "Create" suggestions above then
94
- // we don't want them in the main results so exit early
94
+ // we don't want them in the main results so exit early.
95
95
 
96
96
 
97
97
  if (_constants.CREATE_TYPE === suggestion.type) {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/link-control/search-results.js"],"names":["LinkControlSearchResults","instanceId","withCreateSuggestion","currentInputValue","handleSuggestionClick","suggestionsListProps","buildSuggestionItemProps","suggestions","selectedSuggestion","isLoading","isInitialSuggestions","createSuggestionButtonText","suggestionsQuery","resultsListClasses","directLinkEntryTypes","isSingleDirectEntryResult","length","includes","type","toLowerCase","shouldShowCreateSuggestion","shouldShowSuggestionsTypes","searchResultsLabelId","labelText","searchResultsLabel","Fragment","VisuallyHidden","map","suggestion","index","CREATE_TYPE","id","isFrontPage"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { VisuallyHidden } from '@wordpress/components';\n\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { createElement, Fragment } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport LinkControlSearchCreate from './search-create-button';\nimport LinkControlSearchItem from './search-item';\nimport { CREATE_TYPE } from './constants';\n\nexport default function LinkControlSearchResults( {\n\tinstanceId,\n\twithCreateSuggestion,\n\tcurrentInputValue,\n\thandleSuggestionClick,\n\tsuggestionsListProps,\n\tbuildSuggestionItemProps,\n\tsuggestions,\n\tselectedSuggestion,\n\tisLoading,\n\tisInitialSuggestions,\n\tcreateSuggestionButtonText,\n\tsuggestionsQuery,\n} ) {\n\tconst resultsListClasses = classnames(\n\t\t'block-editor-link-control__search-results',\n\t\t{\n\t\t\t'is-loading': isLoading,\n\t\t}\n\t);\n\n\tconst directLinkEntryTypes = [ 'url', 'mailto', 'tel', 'internal' ];\n\tconst isSingleDirectEntryResult =\n\t\tsuggestions.length === 1 &&\n\t\tdirectLinkEntryTypes.includes( suggestions[ 0 ].type.toLowerCase() );\n\tconst shouldShowCreateSuggestion =\n\t\twithCreateSuggestion &&\n\t\t! isSingleDirectEntryResult &&\n\t\t! isInitialSuggestions;\n\t// If the query has a specified type, then we can skip showing them in the result. See #24839.\n\tconst shouldShowSuggestionsTypes = ! suggestionsQuery?.type;\n\n\t// According to guidelines aria-label should be added if the label\n\t// itself is not visible.\n\t// See: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role\n\tconst searchResultsLabelId = `block-editor-link-control-search-results-label-${ instanceId }`;\n\tconst labelText = isInitialSuggestions\n\t\t? __( 'Recently updated' )\n\t\t: sprintf(\n\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t__( 'Search results for \"%s\"' ),\n\t\t\t\tcurrentInputValue\n\t\t );\n\n\t// VisuallyHidden rightly doesn't accept custom classNames\n\t// so we conditionally render it as a wrapper to visually hide the label\n\t// when that is required.\n\tconst searchResultsLabel = createElement(\n\t\tisInitialSuggestions ? Fragment : VisuallyHidden,\n\t\t{}, // empty props\n\t\t<span\n\t\t\tclassName=\"block-editor-link-control__search-results-label\"\n\t\t\tid={ searchResultsLabelId }\n\t\t>\n\t\t\t{ labelText }\n\t\t</span>\n\t);\n\n\treturn (\n\t\t<div className=\"block-editor-link-control__search-results-wrapper\">\n\t\t\t{ searchResultsLabel }\n\t\t\t<div\n\t\t\t\t{ ...suggestionsListProps }\n\t\t\t\tclassName={ resultsListClasses }\n\t\t\t\taria-labelledby={ searchResultsLabelId }\n\t\t\t>\n\t\t\t\t{ suggestions.map( ( suggestion, index ) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tshouldShowCreateSuggestion &&\n\t\t\t\t\t\tCREATE_TYPE === suggestion.type\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<LinkControlSearchCreate\n\t\t\t\t\t\t\t\tsearchTerm={ currentInputValue }\n\t\t\t\t\t\t\t\tbuttonText={ createSuggestionButtonText }\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\thandleSuggestionClick( suggestion )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Intentionally only using `type` here as\n\t\t\t\t\t\t\t\t// the constant is enough to uniquely\n\t\t\t\t\t\t\t\t// identify the single \"CREATE\" suggestion.\n\t\t\t\t\t\t\t\tkey={ suggestion.type }\n\t\t\t\t\t\t\t\titemProps={ buildSuggestionItemProps(\n\t\t\t\t\t\t\t\t\tsuggestion,\n\t\t\t\t\t\t\t\t\tindex\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tisSelected={ index === selectedSuggestion }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\t// If we're not handling \"Create\" suggestions above then\n\t\t\t\t\t// we don't want them in the main results so exit early\n\t\t\t\t\tif ( CREATE_TYPE === suggestion.type ) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<LinkControlSearchItem\n\t\t\t\t\t\t\tkey={ `${ suggestion.id }-${ suggestion.type }` }\n\t\t\t\t\t\t\titemProps={ buildSuggestionItemProps(\n\t\t\t\t\t\t\t\tsuggestion,\n\t\t\t\t\t\t\t\tindex\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tsuggestion={ suggestion }\n\t\t\t\t\t\t\tindex={ index }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\thandleSuggestionClick( suggestion );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tisSelected={ index === selectedSuggestion }\n\t\t\t\t\t\t\tisURL={ directLinkEntryTypes.includes(\n\t\t\t\t\t\t\t\tsuggestion.type.toLowerCase()\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tsearchTerm={ currentInputValue }\n\t\t\t\t\t\t\tshouldShowType={ shouldShowSuggestionsTypes }\n\t\t\t\t\t\t\tisFrontPage={ suggestion?.isFrontPage }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/link-control/search-results.js"],"names":["LinkControlSearchResults","instanceId","withCreateSuggestion","currentInputValue","handleSuggestionClick","suggestionsListProps","buildSuggestionItemProps","suggestions","selectedSuggestion","isLoading","isInitialSuggestions","createSuggestionButtonText","suggestionsQuery","resultsListClasses","directLinkEntryTypes","isSingleDirectEntryResult","length","includes","type","toLowerCase","shouldShowCreateSuggestion","shouldShowSuggestionsTypes","searchResultsLabelId","labelText","searchResultsLabel","Fragment","VisuallyHidden","map","suggestion","index","CREATE_TYPE","id","isFrontPage"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { VisuallyHidden } from '@wordpress/components';\n\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { createElement, Fragment } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport LinkControlSearchCreate from './search-create-button';\nimport LinkControlSearchItem from './search-item';\nimport { CREATE_TYPE } from './constants';\n\nexport default function LinkControlSearchResults( {\n\tinstanceId,\n\twithCreateSuggestion,\n\tcurrentInputValue,\n\thandleSuggestionClick,\n\tsuggestionsListProps,\n\tbuildSuggestionItemProps,\n\tsuggestions,\n\tselectedSuggestion,\n\tisLoading,\n\tisInitialSuggestions,\n\tcreateSuggestionButtonText,\n\tsuggestionsQuery,\n} ) {\n\tconst resultsListClasses = classnames(\n\t\t'block-editor-link-control__search-results',\n\t\t{\n\t\t\t'is-loading': isLoading,\n\t\t}\n\t);\n\n\tconst directLinkEntryTypes = [ 'url', 'mailto', 'tel', 'internal' ];\n\tconst isSingleDirectEntryResult =\n\t\tsuggestions.length === 1 &&\n\t\tdirectLinkEntryTypes.includes( suggestions[ 0 ].type.toLowerCase() );\n\tconst shouldShowCreateSuggestion =\n\t\twithCreateSuggestion &&\n\t\t! isSingleDirectEntryResult &&\n\t\t! isInitialSuggestions;\n\t// If the query has a specified type, then we can skip showing them in the result. See #24839.\n\tconst shouldShowSuggestionsTypes = ! suggestionsQuery?.type;\n\n\t// According to guidelines aria-label should be added if the label\n\t// itself is not visible.\n\t// See: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role\n\tconst searchResultsLabelId = `block-editor-link-control-search-results-label-${ instanceId }`;\n\tconst labelText = isInitialSuggestions\n\t\t? __( 'Recently updated' )\n\t\t: sprintf(\n\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t__( 'Search results for \"%s\"' ),\n\t\t\t\tcurrentInputValue\n\t\t );\n\n\t// VisuallyHidden rightly doesn't accept custom classNames\n\t// so we conditionally render it as a wrapper to visually hide the label\n\t// when that is required.\n\tconst searchResultsLabel = createElement(\n\t\tisInitialSuggestions ? Fragment : VisuallyHidden,\n\t\t{}, // Empty props.\n\t\t<span\n\t\t\tclassName=\"block-editor-link-control__search-results-label\"\n\t\t\tid={ searchResultsLabelId }\n\t\t>\n\t\t\t{ labelText }\n\t\t</span>\n\t);\n\n\treturn (\n\t\t<div className=\"block-editor-link-control__search-results-wrapper\">\n\t\t\t{ searchResultsLabel }\n\t\t\t<div\n\t\t\t\t{ ...suggestionsListProps }\n\t\t\t\tclassName={ resultsListClasses }\n\t\t\t\taria-labelledby={ searchResultsLabelId }\n\t\t\t>\n\t\t\t\t{ suggestions.map( ( suggestion, index ) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tshouldShowCreateSuggestion &&\n\t\t\t\t\t\tCREATE_TYPE === suggestion.type\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<LinkControlSearchCreate\n\t\t\t\t\t\t\t\tsearchTerm={ currentInputValue }\n\t\t\t\t\t\t\t\tbuttonText={ createSuggestionButtonText }\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\thandleSuggestionClick( suggestion )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Intentionally only using `type` here as\n\t\t\t\t\t\t\t\t// the constant is enough to uniquely\n\t\t\t\t\t\t\t\t// identify the single \"CREATE\" suggestion.\n\t\t\t\t\t\t\t\tkey={ suggestion.type }\n\t\t\t\t\t\t\t\titemProps={ buildSuggestionItemProps(\n\t\t\t\t\t\t\t\t\tsuggestion,\n\t\t\t\t\t\t\t\t\tindex\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tisSelected={ index === selectedSuggestion }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\t// If we're not handling \"Create\" suggestions above then\n\t\t\t\t\t// we don't want them in the main results so exit early.\n\t\t\t\t\tif ( CREATE_TYPE === suggestion.type ) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<LinkControlSearchItem\n\t\t\t\t\t\t\tkey={ `${ suggestion.id }-${ suggestion.type }` }\n\t\t\t\t\t\t\titemProps={ buildSuggestionItemProps(\n\t\t\t\t\t\t\t\tsuggestion,\n\t\t\t\t\t\t\t\tindex\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tsuggestion={ suggestion }\n\t\t\t\t\t\t\tindex={ index }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\thandleSuggestionClick( suggestion );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tisSelected={ index === selectedSuggestion }\n\t\t\t\t\t\t\tisURL={ directLinkEntryTypes.includes(\n\t\t\t\t\t\t\t\tsuggestion.type.toLowerCase()\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tsearchTerm={ currentInputValue }\n\t\t\t\t\t\t\tshouldShowType={ shouldShowSuggestionsTypes }\n\t\t\t\t\t\t\tisFrontPage={ suggestion?.isFrontPage }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
@@ -81,7 +81,7 @@ function useRemoteUrlData(url) {
81
81
  type: 'ERROR'
82
82
  });
83
83
  }
84
- }); // Cleanup: when the URL changes the abort the current request
84
+ }); // Cleanup: when the URL changes the abort the current request.
85
85
 
86
86
  return () => {
87
87
  controller.abort();
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/link-control/use-rich-url-data.js"],"names":["reducer","state","action","type","isFetching","richData","Error","useRemoteUrlData","url","dispatch","fetchRichUrlData","select","getSettings","blockEditorStore","__experimentalFetchRichUrlData","length","AbortController","controller","window","signal","then","urlData","catch","aborted","abort"],"mappings":";;;;;;;AAGA;;AAKA;;AACA;;AATA;AACA;AACA;;AAGA;AACA;AACA;AAIA,SAASA,OAAT,CAAkBC,KAAlB,EAAyBC,MAAzB,EAAkC;AACjC,UAASA,MAAM,CAACC,IAAhB;AACC,SAAK,UAAL;AACC,aAAO,EACN,GAAGF,KADG;AAENG,QAAAA,UAAU,EAAE,KAFN;AAGNC,QAAAA,QAAQ,EAAEH,MAAM,CAACG;AAHX,OAAP;;AAKD,SAAK,OAAL;AACC,aAAO,EACN,GAAGJ,KADG;AAENG,QAAAA,UAAU,EAAE,KAFN;AAGNC,QAAAA,QAAQ,EAAE;AAHJ,OAAP;;AAKD,SAAK,SAAL;AACC,aAAO,EACN,GAAGJ,KADG;AAENG,QAAAA,UAAU,EAAE;AAFN,OAAP;;AAID;AACC,YAAM,IAAIE,KAAJ,CAAY,0BAA0BJ,MAAM,CAACC,IAAM,EAAnD,CAAN;AAnBF;AAqBA;;AAED,SAASI,gBAAT,CAA2BC,GAA3B,EAAiC;AAChC,QAAM,CAAEP,KAAF,EAASQ,QAAT,IAAsB,yBAAYT,OAAZ,EAAqB;AAChDK,IAAAA,QAAQ,EAAE,IADsC;AAEhDD,IAAAA,UAAU,EAAE;AAFoC,GAArB,CAA5B;AAKA,QAAM;AAAEM,IAAAA;AAAF,MAAuB,qBAAaC,MAAF,IAAc;AACrD,UAAM;AAAEC,MAAAA;AAAF,QAAkBD,MAAM,CAAEE,YAAF,CAA9B;AACA,WAAO;AACNH,MAAAA,gBAAgB,EAAEE,WAAW,GAAGE;AAD1B,KAAP;AAGA,GAL4B,EAK1B,EAL0B,CAA7B;AAOA,0BAAW,MAAM;AAChB;AACA;AACA;AACA,QACCN,GAAG,SAAH,IAAAA,GAAG,WAAH,IAAAA,GAAG,CAAEO,MAAL,IACAL,gBADA,IAEA,OAAOM,eAAP,KAA2B,WAH5B,EAIE;AACDP,MAAAA,QAAQ,CAAE;AACTN,QAAAA,IAAI,EAAE;AADG,OAAF,CAAR;AAIA,YAAMc,UAAU,GAAG,IAAIC,MAAM,CAACF,eAAX,EAAnB;AAEA,YAAMG,MAAM,GAAGF,UAAU,CAACE,MAA1B;AAEAT,MAAAA,gBAAgB,CAAEF,GAAF,EAAO;AACtBW,QAAAA;AADsB,OAAP,CAAhB,CAGEC,IAHF,CAGUC,OAAF,IAAe;AACrBZ,QAAAA,QAAQ,CAAE;AACTN,UAAAA,IAAI,EAAE,UADG;AAETE,UAAAA,QAAQ,EAAEgB;AAFD,SAAF,CAAR;AAIA,OARF,EASEC,KATF,CASS,MAAM;AACb;AACA,YAAK,CAAEH,MAAM,CAACI,OAAd,EAAwB;AACvBd,UAAAA,QAAQ,CAAE;AACTN,YAAAA,IAAI,EAAE;AADG,WAAF,CAAR;AAGA;AACD,OAhBF,EATC,CA0BD;;AACA,aAAO,MAAM;AACZc,QAAAA,UAAU,CAACO,KAAX;AACA,OAFD;AAGA;AACD,GAvCD,EAuCG,CAAEhB,GAAF,CAvCH;AAyCA,SAAOP,KAAP;AACA;;eAEcM,gB","sourcesContent":["/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useEffect, useReducer } from '@wordpress/element';\n\nfunction reducer( state, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RESOLVED':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tisFetching: false,\n\t\t\t\trichData: action.richData,\n\t\t\t};\n\t\tcase 'ERROR':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tisFetching: false,\n\t\t\t\trichData: null,\n\t\t\t};\n\t\tcase 'LOADING':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tisFetching: true,\n\t\t\t};\n\t\tdefault:\n\t\t\tthrow new Error( `Unexpected action type ${ action.type }` );\n\t}\n}\n\nfunction useRemoteUrlData( url ) {\n\tconst [ state, dispatch ] = useReducer( reducer, {\n\t\trichData: null,\n\t\tisFetching: false,\n\t} );\n\n\tconst { fetchRichUrlData } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\tfetchRichUrlData: getSettings().__experimentalFetchRichUrlData,\n\t\t};\n\t}, [] );\n\n\tuseEffect( () => {\n\t\t// Only make the request if we have an actual URL\n\t\t// and the fetching util is available. In some editors\n\t\t// there may not be such a util.\n\t\tif (\n\t\t\turl?.length &&\n\t\t\tfetchRichUrlData &&\n\t\t\ttypeof AbortController !== 'undefined'\n\t\t) {\n\t\t\tdispatch( {\n\t\t\t\ttype: 'LOADING',\n\t\t\t} );\n\n\t\t\tconst controller = new window.AbortController();\n\n\t\t\tconst signal = controller.signal;\n\n\t\t\tfetchRichUrlData( url, {\n\t\t\t\tsignal,\n\t\t\t} )\n\t\t\t\t.then( ( urlData ) => {\n\t\t\t\t\tdispatch( {\n\t\t\t\t\t\ttype: 'RESOLVED',\n\t\t\t\t\t\trichData: urlData,\n\t\t\t\t\t} );\n\t\t\t\t} )\n\t\t\t\t.catch( () => {\n\t\t\t\t\t// Avoid setting state on unmounted component\n\t\t\t\t\tif ( ! signal.aborted ) {\n\t\t\t\t\t\tdispatch( {\n\t\t\t\t\t\t\ttype: 'ERROR',\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t// Cleanup: when the URL changes the abort the current request\n\t\t\treturn () => {\n\t\t\t\tcontroller.abort();\n\t\t\t};\n\t\t}\n\t}, [ url ] );\n\n\treturn state;\n}\n\nexport default useRemoteUrlData;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/link-control/use-rich-url-data.js"],"names":["reducer","state","action","type","isFetching","richData","Error","useRemoteUrlData","url","dispatch","fetchRichUrlData","select","getSettings","blockEditorStore","__experimentalFetchRichUrlData","length","AbortController","controller","window","signal","then","urlData","catch","aborted","abort"],"mappings":";;;;;;;AAGA;;AAKA;;AACA;;AATA;AACA;AACA;;AAGA;AACA;AACA;AAIA,SAASA,OAAT,CAAkBC,KAAlB,EAAyBC,MAAzB,EAAkC;AACjC,UAASA,MAAM,CAACC,IAAhB;AACC,SAAK,UAAL;AACC,aAAO,EACN,GAAGF,KADG;AAENG,QAAAA,UAAU,EAAE,KAFN;AAGNC,QAAAA,QAAQ,EAAEH,MAAM,CAACG;AAHX,OAAP;;AAKD,SAAK,OAAL;AACC,aAAO,EACN,GAAGJ,KADG;AAENG,QAAAA,UAAU,EAAE,KAFN;AAGNC,QAAAA,QAAQ,EAAE;AAHJ,OAAP;;AAKD,SAAK,SAAL;AACC,aAAO,EACN,GAAGJ,KADG;AAENG,QAAAA,UAAU,EAAE;AAFN,OAAP;;AAID;AACC,YAAM,IAAIE,KAAJ,CAAY,0BAA0BJ,MAAM,CAACC,IAAM,EAAnD,CAAN;AAnBF;AAqBA;;AAED,SAASI,gBAAT,CAA2BC,GAA3B,EAAiC;AAChC,QAAM,CAAEP,KAAF,EAASQ,QAAT,IAAsB,yBAAYT,OAAZ,EAAqB;AAChDK,IAAAA,QAAQ,EAAE,IADsC;AAEhDD,IAAAA,UAAU,EAAE;AAFoC,GAArB,CAA5B;AAKA,QAAM;AAAEM,IAAAA;AAAF,MAAuB,qBAAaC,MAAF,IAAc;AACrD,UAAM;AAAEC,MAAAA;AAAF,QAAkBD,MAAM,CAAEE,YAAF,CAA9B;AACA,WAAO;AACNH,MAAAA,gBAAgB,EAAEE,WAAW,GAAGE;AAD1B,KAAP;AAGA,GAL4B,EAK1B,EAL0B,CAA7B;AAOA,0BAAW,MAAM;AAChB;AACA;AACA;AACA,QACCN,GAAG,SAAH,IAAAA,GAAG,WAAH,IAAAA,GAAG,CAAEO,MAAL,IACAL,gBADA,IAEA,OAAOM,eAAP,KAA2B,WAH5B,EAIE;AACDP,MAAAA,QAAQ,CAAE;AACTN,QAAAA,IAAI,EAAE;AADG,OAAF,CAAR;AAIA,YAAMc,UAAU,GAAG,IAAIC,MAAM,CAACF,eAAX,EAAnB;AAEA,YAAMG,MAAM,GAAGF,UAAU,CAACE,MAA1B;AAEAT,MAAAA,gBAAgB,CAAEF,GAAF,EAAO;AACtBW,QAAAA;AADsB,OAAP,CAAhB,CAGEC,IAHF,CAGUC,OAAF,IAAe;AACrBZ,QAAAA,QAAQ,CAAE;AACTN,UAAAA,IAAI,EAAE,UADG;AAETE,UAAAA,QAAQ,EAAEgB;AAFD,SAAF,CAAR;AAIA,OARF,EASEC,KATF,CASS,MAAM;AACb;AACA,YAAK,CAAEH,MAAM,CAACI,OAAd,EAAwB;AACvBd,UAAAA,QAAQ,CAAE;AACTN,YAAAA,IAAI,EAAE;AADG,WAAF,CAAR;AAGA;AACD,OAhBF,EATC,CA0BD;;AACA,aAAO,MAAM;AACZc,QAAAA,UAAU,CAACO,KAAX;AACA,OAFD;AAGA;AACD,GAvCD,EAuCG,CAAEhB,GAAF,CAvCH;AAyCA,SAAOP,KAAP;AACA;;eAEcM,gB","sourcesContent":["/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useEffect, useReducer } from '@wordpress/element';\n\nfunction reducer( state, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RESOLVED':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tisFetching: false,\n\t\t\t\trichData: action.richData,\n\t\t\t};\n\t\tcase 'ERROR':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tisFetching: false,\n\t\t\t\trichData: null,\n\t\t\t};\n\t\tcase 'LOADING':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tisFetching: true,\n\t\t\t};\n\t\tdefault:\n\t\t\tthrow new Error( `Unexpected action type ${ action.type }` );\n\t}\n}\n\nfunction useRemoteUrlData( url ) {\n\tconst [ state, dispatch ] = useReducer( reducer, {\n\t\trichData: null,\n\t\tisFetching: false,\n\t} );\n\n\tconst { fetchRichUrlData } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\tfetchRichUrlData: getSettings().__experimentalFetchRichUrlData,\n\t\t};\n\t}, [] );\n\n\tuseEffect( () => {\n\t\t// Only make the request if we have an actual URL\n\t\t// and the fetching util is available. In some editors\n\t\t// there may not be such a util.\n\t\tif (\n\t\t\turl?.length &&\n\t\t\tfetchRichUrlData &&\n\t\t\ttypeof AbortController !== 'undefined'\n\t\t) {\n\t\t\tdispatch( {\n\t\t\t\ttype: 'LOADING',\n\t\t\t} );\n\n\t\t\tconst controller = new window.AbortController();\n\n\t\t\tconst signal = controller.signal;\n\n\t\t\tfetchRichUrlData( url, {\n\t\t\t\tsignal,\n\t\t\t} )\n\t\t\t\t.then( ( urlData ) => {\n\t\t\t\t\tdispatch( {\n\t\t\t\t\t\ttype: 'RESOLVED',\n\t\t\t\t\t\trichData: urlData,\n\t\t\t\t\t} );\n\t\t\t\t} )\n\t\t\t\t.catch( () => {\n\t\t\t\t\t// Avoid setting state on unmounted component\n\t\t\t\t\tif ( ! signal.aborted ) {\n\t\t\t\t\t\tdispatch( {\n\t\t\t\t\t\t\ttype: 'ERROR',\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t// Cleanup: when the URL changes the abort the current request.\n\t\t\treturn () => {\n\t\t\t\tcontroller.abort();\n\t\t\t};\n\t\t}\n\t}, [ url ] );\n\n\treturn state;\n}\n\nexport default useRemoteUrlData;\n"]}
@@ -113,9 +113,9 @@ const handleEntitySearch = async (val, suggestionsQuery, fetchSearchSuggestions,
113
113
  // is never exposed as part of the component's public API.
114
114
  // see: https://github.com/WordPress/gutenberg/pull/19775#discussion_r378931316.
115
115
  title: val,
116
- // must match the existing `<input>`s text value
116
+ // Must match the existing `<input>`s text value.
117
117
  url: val,
118
- // must match the existing `<input>`s text value
118
+ // Must match the existing `<input>`s text value.
119
119
  type: _constants.CREATE_TYPE
120
120
  });
121
121
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/link-control/use-search-handler.js"],"names":["handleNoop","Promise","resolve","handleDirectEntry","val","type","protocol","includes","id","title","url","handleEntitySearch","suggestionsQuery","fetchSearchSuggestions","directEntryHandler","withCreateSuggestion","withURLSuggestion","pageOnFront","isInitialSuggestions","resultsIncludeFrontPage","results","all","map","result","Number","isFrontPage","couldBeURL","concat","CREATE_TYPE","useSearchHandler","allowDirectEntry","select","getSettings","blockEditorStore","__experimentalFetchLinkSuggestions"],"mappings":";;;;;;;;;;AAGA;;AACA;;AACA;;AAKA;;AAKA;;AACA;;AACA;;AAjBA;AACA;AACA;;AAKA;AACA;AACA;;AAGA;AACA;AACA;AAKO,MAAMA,UAAU,GAAG,MAAMC,OAAO,CAACC,OAAR,CAAiB,EAAjB,CAAzB;;;;AAEA,MAAMC,iBAAiB,GAAKC,GAAF,IAAW;AAC3C,MAAIC,IAAI,GAAG,KAAX;AAEA,QAAMC,QAAQ,GAAG,sBAAaF,GAAb,KAAsB,EAAvC;;AAEA,MAAKE,QAAQ,CAACC,QAAT,CAAmB,QAAnB,CAAL,EAAqC;AACpCF,IAAAA,IAAI,GAAG,QAAP;AACA;;AAED,MAAKC,QAAQ,CAACC,QAAT,CAAmB,KAAnB,CAAL,EAAkC;AACjCF,IAAAA,IAAI,GAAG,KAAP;AACA;;AAED,MAAK,wBAAYD,GAAZ,EAAiB,GAAjB,CAAL,EAA8B;AAC7BC,IAAAA,IAAI,GAAG,UAAP;AACA;;AAED,SAAOJ,OAAO,CAACC,OAAR,CAAiB,CACvB;AACCM,IAAAA,EAAE,EAAEJ,GADL;AAECK,IAAAA,KAAK,EAAEL,GAFR;AAGCM,IAAAA,GAAG,EAAEL,IAAI,KAAK,KAAT,GAAiB,sBAAaD,GAAb,CAAjB,GAAsCA,GAH5C;AAICC,IAAAA;AAJD,GADuB,CAAjB,CAAP;AAQA,CAzBM;;;;AA2BP,MAAMM,kBAAkB,GAAG,OAC1BP,GAD0B,EAE1BQ,gBAF0B,EAG1BC,sBAH0B,EAI1BC,kBAJ0B,EAK1BC,oBAL0B,EAM1BC,iBAN0B,EAO1BC,WAP0B,KAQtB;AACJ,QAAM;AAAEC,IAAAA;AAAF,MAA2BN,gBAAjC;AACA,MAAIO,uBAAuB,GAAG,KAA9B;AAEA,MAAIC,OAAO,GAAG,MAAMnB,OAAO,CAACoB,GAAR,CAAa,CAChCR,sBAAsB,CAAET,GAAF,EAAOQ,gBAAP,CADU,EAEhCE,kBAAkB,CAAEV,GAAF,CAFc,CAAb,CAApB,CAJI,CASJ;;AACAgB,EAAAA,OAAO,CAAE,CAAF,CAAP,GAAeA,OAAO,CAAE,CAAF,CAAP,CAAaE,GAAb,CAAoBC,MAAF,IAAc;AAC9C,QAAKC,MAAM,CAAED,MAAM,CAACf,EAAT,CAAN,KAAwBS,WAA7B,EAA2C;AAC1CE,MAAAA,uBAAuB,GAAG,IAA1B;AACAI,MAAAA,MAAM,CAACE,WAAP,GAAqB,IAArB;AACA,aAAOF,MAAP;AACA;;AAED,WAAOA,MAAP;AACA,GARc,CAAf;AAUA,QAAMG,UAAU,GAAG,CAAEtB,GAAG,CAACG,QAAJ,CAAc,GAAd,CAArB,CApBI,CAsBJ;AACA;AACA;;AACA,MACC,CAAEY,uBAAF,IACAO,UADA,IAEAV,iBAFA,IAGA,CAAEE,oBAJH,EAKE;AACDE,IAAAA,OAAO,GAAGA,OAAO,CAAE,CAAF,CAAP,CAAaO,MAAb,CAAqBP,OAAO,CAAE,CAAF,CAA5B,CAAV;AACA,GAPD,MAOO;AACNA,IAAAA,OAAO,GAAGA,OAAO,CAAE,CAAF,CAAjB;AACA,GAlCG,CAoCJ;;;AACA,MAAKF,oBAAL,EAA4B;AAC3B,WAAOE,OAAP;AACA,GAvCG,CAyCJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAO,wBAAWhB,GAAX,KAAoB,CAAEW,oBAAtB,GACJK,OADI,GAEJA,OAAO,CAACO,MAAR,CAAgB;AAChB;AACA;AACA;AACAlB,IAAAA,KAAK,EAAEL,GAJS;AAIJ;AACZM,IAAAA,GAAG,EAAEN,GALW;AAKN;AACVC,IAAAA,IAAI,EAAEuB;AANU,GAAhB,CAFH;AAUA,CAzED;;AA2Ee,SAASC,gBAAT,CACdjB,gBADc,EAEdkB,gBAFc,EAGdf,oBAHc,EAIdC,iBAJc,EAKb;AACD,QAAM;AAAEH,IAAAA,sBAAF;AAA0BI,IAAAA;AAA1B,MAA0C,qBAAac,MAAF,IAAc;AACxE,UAAM;AAAEC,MAAAA;AAAF,QAAkBD,MAAM,CAAEE,YAAF,CAA9B;AAEA,WAAO;AACNhB,MAAAA,WAAW,EAAEe,WAAW,GAAGf,WADrB;AAENJ,MAAAA,sBAAsB,EAAEmB,WAAW,GACjCE;AAHI,KAAP;AAKA,GAR+C,EAQ7C,EAR6C,CAAhD;AAUA,QAAMpB,kBAAkB,GAAGgB,gBAAgB,GACxC3B,iBADwC,GAExCH,UAFH;AAIA,SAAO,0BACN,CAAEI,GAAF,WAAqC;AAAA,QAA9B;AAAEc,MAAAA;AAAF,KAA8B;AACpC,WAAO,wBAAWd,GAAX,IACJU,kBAAkB,CAAEV,GAAF,EAAO;AAAEc,MAAAA;AAAF,KAAP,CADd,GAEJP,kBAAkB,CAClBP,GADkB,EAElB,EAAE,GAAGQ,gBAAL;AAAuBM,MAAAA;AAAvB,KAFkB,EAGlBL,sBAHkB,EAIlBC,kBAJkB,EAKlBC,oBALkB,EAMlBC,iBANkB,EAOlBC,WAPkB,CAFrB;AAWA,GAbK,EAcN,CAAEH,kBAAF,EAAsBD,sBAAtB,EAA8CE,oBAA9C,CAdM,CAAP;AAgBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getProtocol, prependHTTP } from '@wordpress/url';\nimport { useCallback } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * External dependencies\n */\nimport { startsWith } from 'lodash';\n\n/**\n * Internal dependencies\n */\nimport isURLLike from './is-url-like';\nimport { CREATE_TYPE } from './constants';\nimport { store as blockEditorStore } from '../../store';\n\nexport const handleNoop = () => Promise.resolve( [] );\n\nexport const handleDirectEntry = ( val ) => {\n\tlet type = 'URL';\n\n\tconst protocol = getProtocol( val ) || '';\n\n\tif ( protocol.includes( 'mailto' ) ) {\n\t\ttype = 'mailto';\n\t}\n\n\tif ( protocol.includes( 'tel' ) ) {\n\t\ttype = 'tel';\n\t}\n\n\tif ( startsWith( val, '#' ) ) {\n\t\ttype = 'internal';\n\t}\n\n\treturn Promise.resolve( [\n\t\t{\n\t\t\tid: val,\n\t\t\ttitle: val,\n\t\t\turl: type === 'URL' ? prependHTTP( val ) : val,\n\t\t\ttype,\n\t\t},\n\t] );\n};\n\nconst handleEntitySearch = async (\n\tval,\n\tsuggestionsQuery,\n\tfetchSearchSuggestions,\n\tdirectEntryHandler,\n\twithCreateSuggestion,\n\twithURLSuggestion,\n\tpageOnFront\n) => {\n\tconst { isInitialSuggestions } = suggestionsQuery;\n\tlet resultsIncludeFrontPage = false;\n\n\tlet results = await Promise.all( [\n\t\tfetchSearchSuggestions( val, suggestionsQuery ),\n\t\tdirectEntryHandler( val ),\n\t] );\n\n\t// Identify front page and update type to match.\n\tresults[ 0 ] = results[ 0 ].map( ( result ) => {\n\t\tif ( Number( result.id ) === pageOnFront ) {\n\t\t\tresultsIncludeFrontPage = true;\n\t\t\tresult.isFrontPage = true;\n\t\t\treturn result;\n\t\t}\n\n\t\treturn result;\n\t} );\n\n\tconst couldBeURL = ! val.includes( ' ' );\n\n\t// If it's potentially a URL search then concat on a URL search suggestion\n\t// just for good measure. That way once the actual results run out we always\n\t// have a URL option to fallback on.\n\tif (\n\t\t! resultsIncludeFrontPage &&\n\t\tcouldBeURL &&\n\t\twithURLSuggestion &&\n\t\t! isInitialSuggestions\n\t) {\n\t\tresults = results[ 0 ].concat( results[ 1 ] );\n\t} else {\n\t\tresults = results[ 0 ];\n\t}\n\n\t// If displaying initial suggestions just return plain results.\n\tif ( isInitialSuggestions ) {\n\t\treturn results;\n\t}\n\n\t// Here we append a faux suggestion to represent a \"CREATE\" option. This\n\t// is detected in the rendering of the search results and handled as a\n\t// special case. This is currently necessary because the suggestions\n\t// dropdown will only appear if there are valid suggestions and\n\t// therefore unless the create option is a suggestion it will not\n\t// display in scenarios where there are no results returned from the\n\t// API. In addition promoting CREATE to a first class suggestion affords\n\t// the a11y benefits afforded by `URLInput` to all suggestions (eg:\n\t// keyboard handling, ARIA roles...etc).\n\t//\n\t// Note also that the value of the `title` and `url` properties must correspond\n\t// to the text value of the `<input>`. This is because `title` is used\n\t// when creating the suggestion. Similarly `url` is used when using keyboard to select\n\t// the suggestion (the <form> `onSubmit` handler falls-back to `url`).\n\treturn isURLLike( val ) || ! withCreateSuggestion\n\t\t? results\n\t\t: results.concat( {\n\t\t\t\t// the `id` prop is intentionally ommitted here because it\n\t\t\t\t// is never exposed as part of the component's public API.\n\t\t\t\t// see: https://github.com/WordPress/gutenberg/pull/19775#discussion_r378931316.\n\t\t\t\ttitle: val, // must match the existing `<input>`s text value\n\t\t\t\turl: val, // must match the existing `<input>`s text value\n\t\t\t\ttype: CREATE_TYPE,\n\t\t } );\n};\n\nexport default function useSearchHandler(\n\tsuggestionsQuery,\n\tallowDirectEntry,\n\twithCreateSuggestion,\n\twithURLSuggestion\n) {\n\tconst { fetchSearchSuggestions, pageOnFront } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\n\t\treturn {\n\t\t\tpageOnFront: getSettings().pageOnFront,\n\t\t\tfetchSearchSuggestions: getSettings()\n\t\t\t\t.__experimentalFetchLinkSuggestions,\n\t\t};\n\t}, [] );\n\n\tconst directEntryHandler = allowDirectEntry\n\t\t? handleDirectEntry\n\t\t: handleNoop;\n\n\treturn useCallback(\n\t\t( val, { isInitialSuggestions } ) => {\n\t\t\treturn isURLLike( val )\n\t\t\t\t? directEntryHandler( val, { isInitialSuggestions } )\n\t\t\t\t: handleEntitySearch(\n\t\t\t\t\t\tval,\n\t\t\t\t\t\t{ ...suggestionsQuery, isInitialSuggestions },\n\t\t\t\t\t\tfetchSearchSuggestions,\n\t\t\t\t\t\tdirectEntryHandler,\n\t\t\t\t\t\twithCreateSuggestion,\n\t\t\t\t\t\twithURLSuggestion,\n\t\t\t\t\t\tpageOnFront\n\t\t\t\t );\n\t\t},\n\t\t[ directEntryHandler, fetchSearchSuggestions, withCreateSuggestion ]\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/link-control/use-search-handler.js"],"names":["handleNoop","Promise","resolve","handleDirectEntry","val","type","protocol","includes","id","title","url","handleEntitySearch","suggestionsQuery","fetchSearchSuggestions","directEntryHandler","withCreateSuggestion","withURLSuggestion","pageOnFront","isInitialSuggestions","resultsIncludeFrontPage","results","all","map","result","Number","isFrontPage","couldBeURL","concat","CREATE_TYPE","useSearchHandler","allowDirectEntry","select","getSettings","blockEditorStore","__experimentalFetchLinkSuggestions"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getProtocol, prependHTTP } from '@wordpress/url';\nimport { useCallback } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * External dependencies\n */\nimport { startsWith } from 'lodash';\n\n/**\n * Internal dependencies\n */\nimport isURLLike from './is-url-like';\nimport { CREATE_TYPE } from './constants';\nimport { store as blockEditorStore } from '../../store';\n\nexport const handleNoop = () => Promise.resolve( [] );\n\nexport const handleDirectEntry = ( val ) => {\n\tlet type = 'URL';\n\n\tconst protocol = getProtocol( val ) || '';\n\n\tif ( protocol.includes( 'mailto' ) ) {\n\t\ttype = 'mailto';\n\t}\n\n\tif ( protocol.includes( 'tel' ) ) {\n\t\ttype = 'tel';\n\t}\n\n\tif ( startsWith( val, '#' ) ) {\n\t\ttype = 'internal';\n\t}\n\n\treturn Promise.resolve( [\n\t\t{\n\t\t\tid: val,\n\t\t\ttitle: val,\n\t\t\turl: type === 'URL' ? prependHTTP( val ) : val,\n\t\t\ttype,\n\t\t},\n\t] );\n};\n\nconst handleEntitySearch = async (\n\tval,\n\tsuggestionsQuery,\n\tfetchSearchSuggestions,\n\tdirectEntryHandler,\n\twithCreateSuggestion,\n\twithURLSuggestion,\n\tpageOnFront\n) => {\n\tconst { isInitialSuggestions } = suggestionsQuery;\n\tlet resultsIncludeFrontPage = false;\n\n\tlet results = await Promise.all( [\n\t\tfetchSearchSuggestions( val, suggestionsQuery ),\n\t\tdirectEntryHandler( val ),\n\t] );\n\n\t// Identify front page and update type to match.\n\tresults[ 0 ] = results[ 0 ].map( ( result ) => {\n\t\tif ( Number( result.id ) === pageOnFront ) {\n\t\t\tresultsIncludeFrontPage = true;\n\t\t\tresult.isFrontPage = true;\n\t\t\treturn result;\n\t\t}\n\n\t\treturn result;\n\t} );\n\n\tconst couldBeURL = ! val.includes( ' ' );\n\n\t// If it's potentially a URL search then concat on a URL search suggestion\n\t// just for good measure. That way once the actual results run out we always\n\t// have a URL option to fallback on.\n\tif (\n\t\t! resultsIncludeFrontPage &&\n\t\tcouldBeURL &&\n\t\twithURLSuggestion &&\n\t\t! isInitialSuggestions\n\t) {\n\t\tresults = results[ 0 ].concat( results[ 1 ] );\n\t} else {\n\t\tresults = results[ 0 ];\n\t}\n\n\t// If displaying initial suggestions just return plain results.\n\tif ( isInitialSuggestions ) {\n\t\treturn results;\n\t}\n\n\t// Here we append a faux suggestion to represent a \"CREATE\" option. This\n\t// is detected in the rendering of the search results and handled as a\n\t// special case. This is currently necessary because the suggestions\n\t// dropdown will only appear if there are valid suggestions and\n\t// therefore unless the create option is a suggestion it will not\n\t// display in scenarios where there are no results returned from the\n\t// API. In addition promoting CREATE to a first class suggestion affords\n\t// the a11y benefits afforded by `URLInput` to all suggestions (eg:\n\t// keyboard handling, ARIA roles...etc).\n\t//\n\t// Note also that the value of the `title` and `url` properties must correspond\n\t// to the text value of the `<input>`. This is because `title` is used\n\t// when creating the suggestion. Similarly `url` is used when using keyboard to select\n\t// the suggestion (the <form> `onSubmit` handler falls-back to `url`).\n\treturn isURLLike( val ) || ! withCreateSuggestion\n\t\t? results\n\t\t: results.concat( {\n\t\t\t\t// the `id` prop is intentionally ommitted here because it\n\t\t\t\t// is never exposed as part of the component's public API.\n\t\t\t\t// see: https://github.com/WordPress/gutenberg/pull/19775#discussion_r378931316.\n\t\t\t\ttitle: val, // Must match the existing `<input>`s text value.\n\t\t\t\turl: val, // Must match the existing `<input>`s text value.\n\t\t\t\ttype: CREATE_TYPE,\n\t\t } );\n};\n\nexport default function useSearchHandler(\n\tsuggestionsQuery,\n\tallowDirectEntry,\n\twithCreateSuggestion,\n\twithURLSuggestion\n) {\n\tconst { fetchSearchSuggestions, pageOnFront } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\n\t\treturn {\n\t\t\tpageOnFront: getSettings().pageOnFront,\n\t\t\tfetchSearchSuggestions: getSettings()\n\t\t\t\t.__experimentalFetchLinkSuggestions,\n\t\t};\n\t}, [] );\n\n\tconst directEntryHandler = allowDirectEntry\n\t\t? handleDirectEntry\n\t\t: handleNoop;\n\n\treturn useCallback(\n\t\t( val, { isInitialSuggestions } ) => {\n\t\t\treturn isURLLike( val )\n\t\t\t\t? directEntryHandler( val, { isInitialSuggestions } )\n\t\t\t\t: handleEntitySearch(\n\t\t\t\t\t\tval,\n\t\t\t\t\t\t{ ...suggestionsQuery, isInitialSuggestions },\n\t\t\t\t\t\tfetchSearchSuggestions,\n\t\t\t\t\t\tdirectEntryHandler,\n\t\t\t\t\t\twithCreateSuggestion,\n\t\t\t\t\t\twithURLSuggestion,\n\t\t\t\t\t\tpageOnFront\n\t\t\t\t );\n\t\t},\n\t\t[ directEntryHandler, fetchSearchSuggestions, withCreateSuggestion ]\n\t);\n}\n"]}
@@ -42,6 +42,7 @@ const ListViewBlockContents = (0, _element.forwardRef)((_ref, ref) => {
42
42
  siblingBlockCount,
43
43
  level,
44
44
  isExpanded,
45
+ selectedClientIds,
45
46
  ...props
46
47
  } = _ref;
47
48
  const {
@@ -52,12 +53,10 @@ const ListViewBlockContents = (0, _element.forwardRef)((_ref, ref) => {
52
53
  selectedBlockInBlockEditor
53
54
  } = (0, _data.useSelect)(select => {
54
55
  const {
55
- getBlockRootClientId,
56
56
  hasBlockMovingClientId,
57
57
  getSelectedBlockClientId
58
58
  } = select(_store.store);
59
59
  return {
60
- rootClientId: getBlockRootClientId(clientId) || '',
61
60
  blockMovingClientId: hasBlockMovingClientId(),
62
61
  selectedBlockInBlockEditor: getSelectedBlockClientId()
63
62
  };
@@ -65,9 +64,14 @@ const ListViewBlockContents = (0, _element.forwardRef)((_ref, ref) => {
65
64
  const isBlockMoveTarget = blockMovingClientId && selectedBlockInBlockEditor === clientId;
66
65
  const className = (0, _classnames.default)('block-editor-list-view-block-contents', {
67
66
  'is-dropping-before': isBlockMoveTarget
68
- });
67
+ }); // Only include all selected blocks if the currently clicked on block
68
+ // is one of the selected blocks. This ensures that if a user attempts
69
+ // to drag a block that isn't part of the selection, they're still able
70
+ // to drag it and rearrange its position.
71
+
72
+ const draggableClientIds = selectedClientIds.includes(clientId) ? selectedClientIds : [clientId];
69
73
  return (0, _element.createElement)(_blockDraggable.default, {
70
- clientIds: [block.clientId]
74
+ clientIds: draggableClientIds
71
75
  }, _ref2 => {
72
76
  let {
73
77
  draggable,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/list-view/block-contents.js"],"names":["ListViewBlockContents","ref","onClick","onToggleExpanded","block","isSelected","position","siblingBlockCount","level","isExpanded","props","clientId","blockMovingClientId","selectedBlockInBlockEditor","select","getBlockRootClientId","hasBlockMovingClientId","getSelectedBlockClientId","blockEditorStore","rootClientId","isBlockMoveTarget","className","draggable","onDragStart","onDragEnd"],"mappings":";;;;;;;;;AASA;;;;AANA;;AAKA;;AAMA;;AACA;;AACA;;AAhBA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;AAKA,MAAMA,qBAAqB,GAAG,yBAC7B,OAYCC,GAZD,KAaK;AAAA,MAZJ;AACCC,IAAAA,OADD;AAECC,IAAAA,gBAFD;AAGCC,IAAAA,KAHD;AAICC,IAAAA,UAJD;AAKCC,IAAAA,QALD;AAMCC,IAAAA,iBAND;AAOCC,IAAAA,KAPD;AAQCC,IAAAA,UARD;AASC,OAAGC;AATJ,GAYI;AACJ,QAAM;AAAEC,IAAAA;AAAF,MAAeP,KAArB;AAEA,QAAM;AAAEQ,IAAAA,mBAAF;AAAuBC,IAAAA;AAAvB,MAAsD,qBACzDC,MAAF,IAAc;AACb,UAAM;AACLC,MAAAA,oBADK;AAELC,MAAAA,sBAFK;AAGLC,MAAAA;AAHK,QAIFH,MAAM,CAAEI,YAAF,CAJV;AAKA,WAAO;AACNC,MAAAA,YAAY,EAAEJ,oBAAoB,CAAEJ,QAAF,CAApB,IAAoC,EAD5C;AAENC,MAAAA,mBAAmB,EAAEI,sBAAsB,EAFrC;AAGNH,MAAAA,0BAA0B,EAAEI,wBAAwB;AAH9C,KAAP;AAKA,GAZ0D,EAa3D,CAAEN,QAAF,CAb2D,CAA5D;AAgBA,QAAMS,iBAAiB,GACtBR,mBAAmB,IAAIC,0BAA0B,KAAKF,QADvD;AAGA,QAAMU,SAAS,GAAG,yBAAY,uCAAZ,EAAqD;AACtE,0BAAsBD;AADgD,GAArD,CAAlB;AAIA,SACC,4BAAC,uBAAD;AAAgB,IAAA,SAAS,EAAG,CAAEhB,KAAK,CAACO,QAAR;AAA5B,KACG;AAAA,QAAE;AAAEW,MAAAA,SAAF;AAAaC,MAAAA,WAAb;AAA0BC,MAAAA;AAA1B,KAAF;AAAA,WACD,4BAAC,0BAAD;AACC,MAAA,GAAG,EAAGvB,GADP;AAEC,MAAA,SAAS,EAAGoB,SAFb;AAGC,MAAA,KAAK,EAAGjB,KAHT;AAIC,MAAA,OAAO,EAAGF,OAJX;AAKC,MAAA,gBAAgB,EAAGC,gBALpB;AAMC,MAAA,UAAU,EAAGE,UANd;AAOC,MAAA,QAAQ,EAAGC,QAPZ;AAQC,MAAA,iBAAiB,EAAGC,iBARrB;AASC,MAAA,KAAK,EAAGC,KATT;AAUC,MAAA,SAAS,EAAGc,SAVb;AAWC,MAAA,WAAW,EAAGC,WAXf;AAYC,MAAA,SAAS,EAAGC,SAZb;AAaC,MAAA,UAAU,EAAGf;AAbd,OAcMC,KAdN,EADC;AAAA,GADH,CADD;AAsBA,CA9D4B,CAA9B;eAiEeV,qB","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport ListViewBlockSelectButton from './block-select-button';\nimport BlockDraggable from '../block-draggable';\nimport { store as blockEditorStore } from '../../store';\n\nconst ListViewBlockContents = forwardRef(\n\t(\n\t\t{\n\t\t\tonClick,\n\t\t\tonToggleExpanded,\n\t\t\tblock,\n\t\t\tisSelected,\n\t\t\tposition,\n\t\t\tsiblingBlockCount,\n\t\t\tlevel,\n\t\t\tisExpanded,\n\t\t\t...props\n\t\t},\n\t\tref\n\t) => {\n\t\tconst { clientId } = block;\n\n\t\tconst { blockMovingClientId, selectedBlockInBlockEditor } = useSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\thasBlockMovingClientId,\n\t\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\t} = select( blockEditorStore );\n\t\t\t\treturn {\n\t\t\t\t\trootClientId: getBlockRootClientId( clientId ) || '',\n\t\t\t\t\tblockMovingClientId: hasBlockMovingClientId(),\n\t\t\t\t\tselectedBlockInBlockEditor: getSelectedBlockClientId(),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientId ]\n\t\t);\n\n\t\tconst isBlockMoveTarget =\n\t\t\tblockMovingClientId && selectedBlockInBlockEditor === clientId;\n\n\t\tconst className = classnames( 'block-editor-list-view-block-contents', {\n\t\t\t'is-dropping-before': isBlockMoveTarget,\n\t\t} );\n\n\t\treturn (\n\t\t\t<BlockDraggable clientIds={ [ block.clientId ] }>\n\t\t\t\t{ ( { draggable, onDragStart, onDragEnd } ) => (\n\t\t\t\t\t<ListViewBlockSelectButton\n\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\tclassName={ className }\n\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\tonToggleExpanded={ onToggleExpanded }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\tsiblingBlockCount={ siblingBlockCount }\n\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\tdraggable={ draggable }\n\t\t\t\t\t\tonDragStart={ onDragStart }\n\t\t\t\t\t\tonDragEnd={ onDragEnd }\n\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockDraggable>\n\t\t);\n\t}\n);\n\nexport default ListViewBlockContents;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/list-view/block-contents.js"],"names":["ListViewBlockContents","ref","onClick","onToggleExpanded","block","isSelected","position","siblingBlockCount","level","isExpanded","selectedClientIds","props","clientId","blockMovingClientId","selectedBlockInBlockEditor","select","hasBlockMovingClientId","getSelectedBlockClientId","blockEditorStore","isBlockMoveTarget","className","draggableClientIds","includes","draggable","onDragStart","onDragEnd"],"mappings":";;;;;;;;;AASA;;;;AANA;;AAKA;;AAMA;;AACA;;AACA;;AAhBA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;AAKA,MAAMA,qBAAqB,GAAG,yBAC7B,OAaCC,GAbD,KAcK;AAAA,MAbJ;AACCC,IAAAA,OADD;AAECC,IAAAA,gBAFD;AAGCC,IAAAA,KAHD;AAICC,IAAAA,UAJD;AAKCC,IAAAA,QALD;AAMCC,IAAAA,iBAND;AAOCC,IAAAA,KAPD;AAQCC,IAAAA,UARD;AASCC,IAAAA,iBATD;AAUC,OAAGC;AAVJ,GAaI;AACJ,QAAM;AAAEC,IAAAA;AAAF,MAAeR,KAArB;AAEA,QAAM;AAAES,IAAAA,mBAAF;AAAuBC,IAAAA;AAAvB,MAAsD,qBACzDC,MAAF,IAAc;AACb,UAAM;AACLC,MAAAA,sBADK;AAELC,MAAAA;AAFK,QAGFF,MAAM,CAAEG,YAAF,CAHV;AAIA,WAAO;AACNL,MAAAA,mBAAmB,EAAEG,sBAAsB,EADrC;AAENF,MAAAA,0BAA0B,EAAEG,wBAAwB;AAF9C,KAAP;AAIA,GAV0D,EAW3D,CAAEL,QAAF,CAX2D,CAA5D;AAcA,QAAMO,iBAAiB,GACtBN,mBAAmB,IAAIC,0BAA0B,KAAKF,QADvD;AAGA,QAAMQ,SAAS,GAAG,yBAAY,uCAAZ,EAAqD;AACtE,0BAAsBD;AADgD,GAArD,CAAlB,CApBI,CAwBJ;AACA;AACA;AACA;;AACA,QAAME,kBAAkB,GAAGX,iBAAiB,CAACY,QAAlB,CAA4BV,QAA5B,IACxBF,iBADwB,GAExB,CAAEE,QAAF,CAFH;AAIA,SACC,4BAAC,uBAAD;AAAgB,IAAA,SAAS,EAAGS;AAA5B,KACG;AAAA,QAAE;AAAEE,MAAAA,SAAF;AAAaC,MAAAA,WAAb;AAA0BC,MAAAA;AAA1B,KAAF;AAAA,WACD,4BAAC,0BAAD;AACC,MAAA,GAAG,EAAGxB,GADP;AAEC,MAAA,SAAS,EAAGmB,SAFb;AAGC,MAAA,KAAK,EAAGhB,KAHT;AAIC,MAAA,OAAO,EAAGF,OAJX;AAKC,MAAA,gBAAgB,EAAGC,gBALpB;AAMC,MAAA,UAAU,EAAGE,UANd;AAOC,MAAA,QAAQ,EAAGC,QAPZ;AAQC,MAAA,iBAAiB,EAAGC,iBARrB;AASC,MAAA,KAAK,EAAGC,KATT;AAUC,MAAA,SAAS,EAAGe,SAVb;AAWC,MAAA,WAAW,EAAGC,WAXf;AAYC,MAAA,SAAS,EAAGC,SAZb;AAaC,MAAA,UAAU,EAAGhB;AAbd,OAcME,KAdN,EADC;AAAA,GADH,CADD;AAsBA,CArE4B,CAA9B;eAwEeX,qB","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport ListViewBlockSelectButton from './block-select-button';\nimport BlockDraggable from '../block-draggable';\nimport { store as blockEditorStore } from '../../store';\n\nconst ListViewBlockContents = forwardRef(\n\t(\n\t\t{\n\t\t\tonClick,\n\t\t\tonToggleExpanded,\n\t\t\tblock,\n\t\t\tisSelected,\n\t\t\tposition,\n\t\t\tsiblingBlockCount,\n\t\t\tlevel,\n\t\t\tisExpanded,\n\t\t\tselectedClientIds,\n\t\t\t...props\n\t\t},\n\t\tref\n\t) => {\n\t\tconst { clientId } = block;\n\n\t\tconst { blockMovingClientId, selectedBlockInBlockEditor } = useSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\thasBlockMovingClientId,\n\t\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\t} = select( blockEditorStore );\n\t\t\t\treturn {\n\t\t\t\t\tblockMovingClientId: hasBlockMovingClientId(),\n\t\t\t\t\tselectedBlockInBlockEditor: getSelectedBlockClientId(),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientId ]\n\t\t);\n\n\t\tconst isBlockMoveTarget =\n\t\t\tblockMovingClientId && selectedBlockInBlockEditor === clientId;\n\n\t\tconst className = classnames( 'block-editor-list-view-block-contents', {\n\t\t\t'is-dropping-before': isBlockMoveTarget,\n\t\t} );\n\n\t\t// Only include all selected blocks if the currently clicked on block\n\t\t// is one of the selected blocks. This ensures that if a user attempts\n\t\t// to drag a block that isn't part of the selection, they're still able\n\t\t// to drag it and rearrange its position.\n\t\tconst draggableClientIds = selectedClientIds.includes( clientId )\n\t\t\t? selectedClientIds\n\t\t\t: [ clientId ];\n\n\t\treturn (\n\t\t\t<BlockDraggable clientIds={ draggableClientIds }>\n\t\t\t\t{ ( { draggable, onDragStart, onDragEnd } ) => (\n\t\t\t\t\t<ListViewBlockSelectButton\n\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\tclassName={ className }\n\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\tonToggleExpanded={ onToggleExpanded }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\tsiblingBlockCount={ siblingBlockCount }\n\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\tdraggable={ draggable }\n\t\t\t\t\t\tonDragStart={ onDragStart }\n\t\t\t\t\t\tonDragEnd={ onDragEnd }\n\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockDraggable>\n\t\t);\n\t}\n);\n\nexport default ListViewBlockContents;\n"]}
@@ -74,7 +74,6 @@ function ListViewBlockSelectButton(_ref, ref) {
74
74
 
75
75
  function onKeyDownHandler(event) {
76
76
  if (event.keyCode === _keycodes.ENTER || event.keyCode === _keycodes.SPACE) {
77
- event.preventDefault();
78
77
  onClick(event);
79
78
  }
80
79
  }
@@ -98,7 +97,8 @@ function ListViewBlockSelectButton(_ref, ref) {
98
97
  icon: blockInformation === null || blockInformation === void 0 ? void 0 : blockInformation.icon,
99
98
  showColors: true
100
99
  }), (0, _element.createElement)(_blockTitle.default, {
101
- clientId: clientId
100
+ clientId: clientId,
101
+ maximumLength: 35
102
102
  }), (blockInformation === null || blockInformation === void 0 ? void 0 : blockInformation.anchor) && (0, _element.createElement)("span", {
103
103
  className: "block-editor-list-view-block-select-button__anchor"
104
104
  }, blockInformation.anchor), isSelected && (0, _element.createElement)(_components.VisuallyHidden, null, (0, _i18n.__)('(selected block)'))), (0, _element.createElement)("div", {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/list-view/block-select-button.js"],"names":["ListViewBlockSelectButton","ref","className","block","clientId","isSelected","onClick","onToggleExpanded","position","siblingBlockCount","level","tabIndex","onFocus","onDragStart","onDragEnd","draggable","isExpanded","blockInformation","instanceId","descriptionId","blockPositionDescription","onDragStartHandler","event","dataTransfer","clearData","onKeyDownHandler","keyCode","ENTER","SPACE","preventDefault","icon","anchor"],"mappings":";;;;;;;;;AAUA;;AAPA;;AAKA;;AACA;;AAEA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AArBA;AACA;AACA;;AAGA;AACA;AACA;;AAMA;AACA;AACA;AAQA,SAASA,yBAAT,OAiBCC,GAjBD,EAkBE;AAAA,MAjBD;AACCC,IAAAA,SADD;AAECC,IAAAA,KAAK,EAAE;AAAEC,MAAAA;AAAF,KAFR;AAGCC,IAAAA,UAHD;AAICC,IAAAA,OAJD;AAKCC,IAAAA,gBALD;AAMCC,IAAAA,QAND;AAOCC,IAAAA,iBAPD;AAQCC,IAAAA,KARD;AASCC,IAAAA,QATD;AAUCC,IAAAA,OAVD;AAWCC,IAAAA,WAXD;AAYCC,IAAAA,SAZD;AAaCC,IAAAA,SAbD;AAcCC,IAAAA;AAdD,GAiBC;AACD,QAAMC,gBAAgB,GAAG,yCAA4Bb,QAA5B,CAAzB;AACA,QAAMc,UAAU,GAAG,4BAAelB,yBAAf,CAAnB;AACA,QAAMmB,aAAa,GAAI,kCAAkCD,UAAY,EAArE;AACA,QAAME,wBAAwB,GAAG,wCAChCZ,QADgC,EAEhCC,iBAFgC,EAGhCC,KAHgC,CAAjC,CAJC,CAUD;AACA;AACA;AACA;;AACA,QAAMW,kBAAkB,GAAKC,KAAF,IAAa;AACvCA,IAAAA,KAAK,CAACC,YAAN,CAAmBC,SAAnB;AACAX,IAAAA,WAAW,CAAES,KAAF,CAAX;AACA,GAHD;;AAKA,WAASG,gBAAT,CAA2BH,KAA3B,EAAmC;AAClC,QAAKA,KAAK,CAACI,OAAN,KAAkBC,eAAlB,IAA2BL,KAAK,CAACI,OAAN,KAAkBE,eAAlD,EAA0D;AACzDN,MAAAA,KAAK,CAACO,cAAN;AACAvB,MAAAA,OAAO,CAAEgB,KAAF,CAAP;AACA;AACD;;AAED,SACC,qDACC,4BAAC,kBAAD;AACC,IAAA,SAAS,EAAG,yBACX,4CADW,EAEXpB,SAFW,CADb;AAKC,IAAA,OAAO,EAAGI,OALX;AAMC,IAAA,SAAS,EAAGmB,gBANb;AAOC,wBAAmBN,aAPpB;AAQC,IAAA,GAAG,EAAGlB,GARP;AASC,IAAA,QAAQ,EAAGU,QATZ;AAUC,IAAA,OAAO,EAAGC,OAVX;AAWC,IAAA,WAAW,EAAGS,kBAXf;AAYC,IAAA,SAAS,EAAGP,SAZb;AAaC,IAAA,SAAS,EAAGC,SAbb;AAcC,IAAA,IAAI,EAAI,UAAUX,QAAU,EAd7B;AAeC,qBAAgBY;AAfjB,KAiBC,4BAAC,iBAAD;AAAkB,IAAA,OAAO,EAAGT;AAA5B,IAjBD,EAkBC,4BAAC,kBAAD;AAAW,IAAA,IAAI,EAAGU,gBAAH,aAAGA,gBAAH,uBAAGA,gBAAgB,CAAEa,IAApC;AAA2C,IAAA,UAAU;AAArD,IAlBD,EAmBC,4BAAC,mBAAD;AAAY,IAAA,QAAQ,EAAG1B;AAAvB,IAnBD,EAoBG,CAAAa,gBAAgB,SAAhB,IAAAA,gBAAgB,WAAhB,YAAAA,gBAAgB,CAAEc,MAAlB,KACD;AAAM,IAAA,SAAS,EAAC;AAAhB,KACGd,gBAAgB,CAACc,MADpB,CArBF,EAyBG1B,UAAU,IACX,4BAAC,0BAAD,QACG,cAAI,kBAAJ,CADH,CA1BF,CADD,EAgCC;AACC,IAAA,SAAS,EAAC,yDADX;AAEC,IAAA,EAAE,EAAGc;AAFN,KAIGC,wBAJH,CAhCD,CADD;AAyCA;;eAEc,yBAAYpB,yBAAZ,C","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Button, VisuallyHidden } from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { forwardRef } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { getBlockPositionDescription } from './utils';\nimport BlockTitle from '../block-title';\nimport ListViewExpander from './expander';\nimport { SPACE, ENTER } from '@wordpress/keycodes';\n\nfunction ListViewBlockSelectButton(\n\t{\n\t\tclassName,\n\t\tblock: { clientId },\n\t\tisSelected,\n\t\tonClick,\n\t\tonToggleExpanded,\n\t\tposition,\n\t\tsiblingBlockCount,\n\t\tlevel,\n\t\ttabIndex,\n\t\tonFocus,\n\t\tonDragStart,\n\t\tonDragEnd,\n\t\tdraggable,\n\t\tisExpanded,\n\t},\n\tref\n) {\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst instanceId = useInstanceId( ListViewBlockSelectButton );\n\tconst descriptionId = `list-view-block-select-button__${ instanceId }`;\n\tconst blockPositionDescription = getBlockPositionDescription(\n\t\tposition,\n\t\tsiblingBlockCount,\n\t\tlevel\n\t);\n\n\t// The `href` attribute triggers the browser's native HTML drag operations.\n\t// When the link is dragged, the element's outerHTML is set in DataTransfer object as text/html.\n\t// We need to clear any HTML drag data to prevent `pasteHandler` from firing\n\t// inside the `useOnBlockDrop` hook.\n\tconst onDragStartHandler = ( event ) => {\n\t\tevent.dataTransfer.clearData();\n\t\tonDragStart( event );\n\t};\n\n\tfunction onKeyDownHandler( event ) {\n\t\tif ( event.keyCode === ENTER || event.keyCode === SPACE ) {\n\t\t\tevent.preventDefault();\n\t\t\tonClick( event );\n\t\t}\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-list-view-block-select-button',\n\t\t\t\t\tclassName\n\t\t\t\t) }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tonKeyDown={ onKeyDownHandler }\n\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\tref={ ref }\n\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\tonFocus={ onFocus }\n\t\t\t\tonDragStart={ onDragStartHandler }\n\t\t\t\tonDragEnd={ onDragEnd }\n\t\t\t\tdraggable={ draggable }\n\t\t\t\thref={ `#block-${ clientId }` }\n\t\t\t\taria-expanded={ isExpanded }\n\t\t\t>\n\t\t\t\t<ListViewExpander onClick={ onToggleExpanded } />\n\t\t\t\t<BlockIcon icon={ blockInformation?.icon } showColors />\n\t\t\t\t<BlockTitle clientId={ clientId } />\n\t\t\t\t{ blockInformation?.anchor && (\n\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__anchor\">\n\t\t\t\t\t\t{ blockInformation.anchor }\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t{ isSelected && (\n\t\t\t\t\t<VisuallyHidden>\n\t\t\t\t\t\t{ __( '(selected block)' ) }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t) }\n\t\t\t</Button>\n\t\t\t<div\n\t\t\t\tclassName=\"block-editor-list-view-block-select-button__description\"\n\t\t\t\tid={ descriptionId }\n\t\t\t>\n\t\t\t\t{ blockPositionDescription }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default forwardRef( ListViewBlockSelectButton );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/list-view/block-select-button.js"],"names":["ListViewBlockSelectButton","ref","className","block","clientId","isSelected","onClick","onToggleExpanded","position","siblingBlockCount","level","tabIndex","onFocus","onDragStart","onDragEnd","draggable","isExpanded","blockInformation","instanceId","descriptionId","blockPositionDescription","onDragStartHandler","event","dataTransfer","clearData","onKeyDownHandler","keyCode","ENTER","SPACE","icon","anchor"],"mappings":";;;;;;;;;AAUA;;AAPA;;AAKA;;AACA;;AAEA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AArBA;AACA;AACA;;AAGA;AACA;AACA;;AAMA;AACA;AACA;AAQA,SAASA,yBAAT,OAiBCC,GAjBD,EAkBE;AAAA,MAjBD;AACCC,IAAAA,SADD;AAECC,IAAAA,KAAK,EAAE;AAAEC,MAAAA;AAAF,KAFR;AAGCC,IAAAA,UAHD;AAICC,IAAAA,OAJD;AAKCC,IAAAA,gBALD;AAMCC,IAAAA,QAND;AAOCC,IAAAA,iBAPD;AAQCC,IAAAA,KARD;AASCC,IAAAA,QATD;AAUCC,IAAAA,OAVD;AAWCC,IAAAA,WAXD;AAYCC,IAAAA,SAZD;AAaCC,IAAAA,SAbD;AAcCC,IAAAA;AAdD,GAiBC;AACD,QAAMC,gBAAgB,GAAG,yCAA4Bb,QAA5B,CAAzB;AACA,QAAMc,UAAU,GAAG,4BAAelB,yBAAf,CAAnB;AACA,QAAMmB,aAAa,GAAI,kCAAkCD,UAAY,EAArE;AACA,QAAME,wBAAwB,GAAG,wCAChCZ,QADgC,EAEhCC,iBAFgC,EAGhCC,KAHgC,CAAjC,CAJC,CAUD;AACA;AACA;AACA;;AACA,QAAMW,kBAAkB,GAAKC,KAAF,IAAa;AACvCA,IAAAA,KAAK,CAACC,YAAN,CAAmBC,SAAnB;AACAX,IAAAA,WAAW,CAAES,KAAF,CAAX;AACA,GAHD;;AAKA,WAASG,gBAAT,CAA2BH,KAA3B,EAAmC;AAClC,QAAKA,KAAK,CAACI,OAAN,KAAkBC,eAAlB,IAA2BL,KAAK,CAACI,OAAN,KAAkBE,eAAlD,EAA0D;AACzDtB,MAAAA,OAAO,CAAEgB,KAAF,CAAP;AACA;AACD;;AAED,SACC,qDACC,4BAAC,kBAAD;AACC,IAAA,SAAS,EAAG,yBACX,4CADW,EAEXpB,SAFW,CADb;AAKC,IAAA,OAAO,EAAGI,OALX;AAMC,IAAA,SAAS,EAAGmB,gBANb;AAOC,wBAAmBN,aAPpB;AAQC,IAAA,GAAG,EAAGlB,GARP;AASC,IAAA,QAAQ,EAAGU,QATZ;AAUC,IAAA,OAAO,EAAGC,OAVX;AAWC,IAAA,WAAW,EAAGS,kBAXf;AAYC,IAAA,SAAS,EAAGP,SAZb;AAaC,IAAA,SAAS,EAAGC,SAbb;AAcC,IAAA,IAAI,EAAI,UAAUX,QAAU,EAd7B;AAeC,qBAAgBY;AAfjB,KAiBC,4BAAC,iBAAD;AAAkB,IAAA,OAAO,EAAGT;AAA5B,IAjBD,EAkBC,4BAAC,kBAAD;AAAW,IAAA,IAAI,EAAGU,gBAAH,aAAGA,gBAAH,uBAAGA,gBAAgB,CAAEY,IAApC;AAA2C,IAAA,UAAU;AAArD,IAlBD,EAmBC,4BAAC,mBAAD;AAAY,IAAA,QAAQ,EAAGzB,QAAvB;AAAkC,IAAA,aAAa,EAAG;AAAlD,IAnBD,EAoBG,CAAAa,gBAAgB,SAAhB,IAAAA,gBAAgB,WAAhB,YAAAA,gBAAgB,CAAEa,MAAlB,KACD;AAAM,IAAA,SAAS,EAAC;AAAhB,KACGb,gBAAgB,CAACa,MADpB,CArBF,EAyBGzB,UAAU,IACX,4BAAC,0BAAD,QACG,cAAI,kBAAJ,CADH,CA1BF,CADD,EAgCC;AACC,IAAA,SAAS,EAAC,yDADX;AAEC,IAAA,EAAE,EAAGc;AAFN,KAIGC,wBAJH,CAhCD,CADD;AAyCA;;eAEc,yBAAYpB,yBAAZ,C","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Button, VisuallyHidden } from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { forwardRef } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { getBlockPositionDescription } from './utils';\nimport BlockTitle from '../block-title';\nimport ListViewExpander from './expander';\nimport { SPACE, ENTER } from '@wordpress/keycodes';\n\nfunction ListViewBlockSelectButton(\n\t{\n\t\tclassName,\n\t\tblock: { clientId },\n\t\tisSelected,\n\t\tonClick,\n\t\tonToggleExpanded,\n\t\tposition,\n\t\tsiblingBlockCount,\n\t\tlevel,\n\t\ttabIndex,\n\t\tonFocus,\n\t\tonDragStart,\n\t\tonDragEnd,\n\t\tdraggable,\n\t\tisExpanded,\n\t},\n\tref\n) {\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst instanceId = useInstanceId( ListViewBlockSelectButton );\n\tconst descriptionId = `list-view-block-select-button__${ instanceId }`;\n\tconst blockPositionDescription = getBlockPositionDescription(\n\t\tposition,\n\t\tsiblingBlockCount,\n\t\tlevel\n\t);\n\n\t// The `href` attribute triggers the browser's native HTML drag operations.\n\t// When the link is dragged, the element's outerHTML is set in DataTransfer object as text/html.\n\t// We need to clear any HTML drag data to prevent `pasteHandler` from firing\n\t// inside the `useOnBlockDrop` hook.\n\tconst onDragStartHandler = ( event ) => {\n\t\tevent.dataTransfer.clearData();\n\t\tonDragStart( event );\n\t};\n\n\tfunction onKeyDownHandler( event ) {\n\t\tif ( event.keyCode === ENTER || event.keyCode === SPACE ) {\n\t\t\tonClick( event );\n\t\t}\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-list-view-block-select-button',\n\t\t\t\t\tclassName\n\t\t\t\t) }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tonKeyDown={ onKeyDownHandler }\n\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\tref={ ref }\n\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\tonFocus={ onFocus }\n\t\t\t\tonDragStart={ onDragStartHandler }\n\t\t\t\tonDragEnd={ onDragEnd }\n\t\t\t\tdraggable={ draggable }\n\t\t\t\thref={ `#block-${ clientId }` }\n\t\t\t\taria-expanded={ isExpanded }\n\t\t\t>\n\t\t\t\t<ListViewExpander onClick={ onToggleExpanded } />\n\t\t\t\t<BlockIcon icon={ blockInformation?.icon } showColors />\n\t\t\t\t<BlockTitle clientId={ clientId } maximumLength={ 35 } />\n\t\t\t\t{ blockInformation?.anchor && (\n\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__anchor\">\n\t\t\t\t\t\t{ blockInformation.anchor }\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t{ isSelected && (\n\t\t\t\t\t<VisuallyHidden>\n\t\t\t\t\t\t{ __( '(selected block)' ) }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t) }\n\t\t\t</Button>\n\t\t\t<div\n\t\t\t\tclassName=\"block-editor-list-view-block-select-button__description\"\n\t\t\t\tid={ descriptionId }\n\t\t\t>\n\t\t\t\t{ blockPositionDescription }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default forwardRef( ListViewBlockSelectButton );\n"]}
@@ -57,7 +57,8 @@ function ListViewBlock(_ref) {
57
57
  siblingBlockCount,
58
58
  showBlockMovers,
59
59
  path,
60
- isExpanded
60
+ isExpanded,
61
+ selectedClientIds
61
62
  } = _ref;
62
63
  const cellRef = (0, _element.useRef)(null);
63
64
  const [isHovered, setIsHovered] = (0, _element.useState)(false);
@@ -101,10 +102,14 @@ function ListViewBlock(_ref) {
101
102
  highlightBlock(clientId, false);
102
103
  }, [clientId, setIsHovered, highlightBlock]);
103
104
  const selectEditorBlock = (0, _element.useCallback)(event => {
104
- event.stopPropagation();
105
- selectBlock(clientId);
105
+ selectBlock(event, clientId);
106
106
  }, [clientId, selectBlock]);
107
+ const selectDuplicatedBlock = (0, _element.useCallback)(newClientId => {
108
+ selectBlock(undefined, newClientId);
109
+ }, [selectBlock]);
107
110
  const toggleExpanded = (0, _element.useCallback)(event => {
111
+ // Prevent shift+click from opening link in a new window when toggling.
112
+ event.preventDefault();
108
113
  event.stopPropagation();
109
114
 
110
115
  if (isExpanded === true) {
@@ -113,7 +118,7 @@ function ListViewBlock(_ref) {
113
118
  expand(clientId);
114
119
  }
115
120
  }, [clientId, expand, collapse, isExpanded]);
116
- const showBlockActions = withExperimentalFeatures && ( //hide actions for blocks like core/widget-areas
121
+ const showBlockActions = withExperimentalFeatures && ( // hide actions for blocks like core/widget-areas
117
122
  !hideContainerBlockActions || hideContainerBlockActions && level > 1);
118
123
  const hideBlockActions = withExperimentalFeatures && !showBlockActions;
119
124
  let colSpan;
@@ -131,8 +136,13 @@ function ListViewBlock(_ref) {
131
136
  'has-single-cell': hideBlockActions
132
137
  });
133
138
  const blockInformation = (0, _useBlockDisplayInformation.default)(clientId);
134
- const settingsAriaLabel = (0, _i18n.sprintf)( // translators: %s: The title of the block.
135
- (0, _i18n.__)('Options for %s block'), blockInformation.title);
139
+ const settingsAriaLabel = blockInformation ? (0, _i18n.sprintf)( // translators: %s: The title of the block.
140
+ (0, _i18n.__)('Options for %s block'), blockInformation.title) : (0, _i18n.__)('Options'); // Only include all selected blocks if the currently clicked on block
141
+ // is one of the selected blocks. This ensures that if a user attempts
142
+ // to alter a block that isn't part of the selection, they're still able
143
+ // to do so.
144
+
145
+ const dropdownClientIds = selectedClientIds.includes(clientId) ? selectedClientIds : [clientId];
136
146
  return (0, _element.createElement)(_leaf.default, {
137
147
  className: classes,
138
148
  onMouseEnter: onMouseEnter,
@@ -169,7 +179,8 @@ function ListViewBlock(_ref) {
169
179
  ref: ref,
170
180
  tabIndex: tabIndex,
171
181
  onFocus: onFocus,
172
- isExpanded: isExpanded
182
+ isExpanded: isExpanded,
183
+ selectedClientIds: selectedClientIds
173
184
  }));
174
185
  }), hasRenderedMovers && (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.__experimentalTreeGridCell, {
175
186
  className: moverCellClassName,
@@ -209,7 +220,7 @@ function ListViewBlock(_ref) {
209
220
  onFocus
210
221
  } = _ref5;
211
222
  return (0, _element.createElement)(_blockSettingsDropdown.default, {
212
- clientIds: [clientId],
223
+ clientIds: dropdownClientIds,
213
224
  icon: _icons.moreVertical,
214
225
  label: settingsAriaLabel,
215
226
  toggleProps: {
@@ -219,7 +230,7 @@ function ListViewBlock(_ref) {
219
230
  onFocus
220
231
  },
221
232
  disableOpenOnArrowDown: true,
222
- __experimentalSelectBlock: selectEditorBlock
233
+ __experimentalSelectBlock: selectDuplicatedBlock
223
234
  });
224
235
  }));
225
236
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/list-view/block.js"],"names":["ListViewBlock","block","isDragged","isSelected","isBranchSelected","selectBlock","position","level","rowCount","siblingBlockCount","showBlockMovers","path","isExpanded","cellRef","isHovered","setIsHovered","clientId","toggleBlockHighlight","blockEditorStore","__experimentalFeatures","withExperimentalFeatures","__experimentalPersistentListViewFeatures","withExperimentalPersistentListViewFeatures","__experimentalHideContainerBlockActions","hideContainerBlockActions","isTreeGridMounted","expand","collapse","hasSiblings","hasRenderedMovers","moverCellClassName","listViewBlockSettingsClassName","current","focus","highlightBlock","onMouseEnter","onMouseLeave","selectEditorBlock","event","stopPropagation","toggleExpanded","showBlockActions","hideBlockActions","colSpan","classes","blockInformation","settingsAriaLabel","title","ref","tabIndex","onFocus","moreVertical","className"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalTreeGridCell as TreeGridCell,\n\t__experimentalTreeGridItem as TreeGridItem,\n} from '@wordpress/components';\nimport { moreVertical } from '@wordpress/icons';\nimport {\n\tuseState,\n\tuseRef,\n\tuseEffect,\n\tuseCallback,\n\tmemo,\n} from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\nimport { sprintf, __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ListViewLeaf from './leaf';\nimport {\n\tBlockMoverUpButton,\n\tBlockMoverDownButton,\n} from '../block-mover/button';\nimport ListViewBlockContents from './block-contents';\nimport BlockSettingsDropdown from '../block-settings-menu/block-settings-dropdown';\nimport { useListViewContext } from './context';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayInformation from '../use-block-display-information';\n\nfunction ListViewBlock( {\n\tblock,\n\tisDragged,\n\tisSelected,\n\tisBranchSelected,\n\tselectBlock,\n\tposition,\n\tlevel,\n\trowCount,\n\tsiblingBlockCount,\n\tshowBlockMovers,\n\tpath,\n\tisExpanded,\n} ) {\n\tconst cellRef = useRef( null );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst { clientId } = block;\n\n\tconst { toggleBlockHighlight } = useDispatch( blockEditorStore );\n\n\tconst {\n\t\t__experimentalFeatures: withExperimentalFeatures,\n\t\t__experimentalPersistentListViewFeatures: withExperimentalPersistentListViewFeatures,\n\t\t__experimentalHideContainerBlockActions: hideContainerBlockActions,\n\t\tisTreeGridMounted,\n\t\texpand,\n\t\tcollapse,\n\t} = useListViewContext();\n\n\tconst hasSiblings = siblingBlockCount > 0;\n\tconst hasRenderedMovers = showBlockMovers && hasSiblings;\n\tconst moverCellClassName = classnames(\n\t\t'block-editor-list-view-block__mover-cell',\n\t\t{ 'is-visible': isHovered || isSelected }\n\t);\n\n\tconst listViewBlockSettingsClassName = classnames(\n\t\t'block-editor-list-view-block__menu-cell',\n\t\t{ 'is-visible': isHovered || isSelected }\n\t);\n\n\t// If ListView has experimental features related to the Persistent List View,\n\t// only focus the selected list item on mount; otherwise the list would always\n\t// try to steal the focus from the editor canvas.\n\tuseEffect( () => {\n\t\tif (\n\t\t\twithExperimentalPersistentListViewFeatures &&\n\t\t\t! isTreeGridMounted &&\n\t\t\tisSelected\n\t\t) {\n\t\t\tcellRef.current.focus();\n\t\t}\n\t}, [] );\n\n\tconst highlightBlock = withExperimentalPersistentListViewFeatures\n\t\t? toggleBlockHighlight\n\t\t: () => {};\n\n\tconst onMouseEnter = useCallback( () => {\n\t\tsetIsHovered( true );\n\t\thighlightBlock( clientId, true );\n\t}, [ clientId, setIsHovered, highlightBlock ] );\n\tconst onMouseLeave = useCallback( () => {\n\t\tsetIsHovered( false );\n\t\thighlightBlock( clientId, false );\n\t}, [ clientId, setIsHovered, highlightBlock ] );\n\n\tconst selectEditorBlock = useCallback(\n\t\t( event ) => {\n\t\t\tevent.stopPropagation();\n\t\t\tselectBlock( clientId );\n\t\t},\n\t\t[ clientId, selectBlock ]\n\t);\n\n\tconst toggleExpanded = useCallback(\n\t\t( event ) => {\n\t\t\tevent.stopPropagation();\n\t\t\tif ( isExpanded === true ) {\n\t\t\t\tcollapse( clientId );\n\t\t\t} else if ( isExpanded === false ) {\n\t\t\t\texpand( clientId );\n\t\t\t}\n\t\t},\n\t\t[ clientId, expand, collapse, isExpanded ]\n\t);\n\n\tconst showBlockActions =\n\t\twithExperimentalFeatures &&\n\t\t//hide actions for blocks like core/widget-areas\n\t\t( ! hideContainerBlockActions ||\n\t\t\t( hideContainerBlockActions && level > 1 ) );\n\n\tconst hideBlockActions = withExperimentalFeatures && ! showBlockActions;\n\n\tlet colSpan;\n\tif ( hasRenderedMovers ) {\n\t\tcolSpan = 2;\n\t} else if ( hideBlockActions ) {\n\t\tcolSpan = 3;\n\t}\n\n\tconst classes = classnames( {\n\t\t'is-selected': isSelected,\n\t\t'is-branch-selected':\n\t\t\twithExperimentalPersistentListViewFeatures && isBranchSelected,\n\t\t'is-dragging': isDragged,\n\t\t'has-single-cell': hideBlockActions,\n\t} );\n\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst settingsAriaLabel = sprintf(\n\t\t// translators: %s: The title of the block.\n\t\t__( 'Options for %s block' ),\n\t\tblockInformation.title\n\t);\n\n\treturn (\n\t\t<ListViewLeaf\n\t\t\tclassName={ classes }\n\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\tonFocus={ onMouseEnter }\n\t\t\tonBlur={ onMouseLeave }\n\t\t\tlevel={ level }\n\t\t\tposition={ position }\n\t\t\trowCount={ rowCount }\n\t\t\tpath={ path }\n\t\t\tid={ `list-view-block-${ clientId }` }\n\t\t\tdata-block={ clientId }\n\t\t\tisExpanded={ isExpanded }\n\t\t>\n\t\t\t<TreeGridCell\n\t\t\t\tclassName=\"block-editor-list-view-block__contents-cell\"\n\t\t\t\tcolSpan={ colSpan }\n\t\t\t\tref={ cellRef }\n\t\t\t>\n\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t<div className=\"block-editor-list-view-block__contents-container\">\n\t\t\t\t\t\t<ListViewBlockContents\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\tonClick={ selectEditorBlock }\n\t\t\t\t\t\t\tonToggleExpanded={ toggleExpanded }\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\tsiblingBlockCount={ siblingBlockCount }\n\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</TreeGridCell>\n\t\t\t{ hasRenderedMovers && (\n\t\t\t\t<>\n\t\t\t\t\t<TreeGridCell\n\t\t\t\t\t\tclassName={ moverCellClassName }\n\t\t\t\t\t\twithoutGridItem\n\t\t\t\t\t>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t</TreeGridCell>\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ showBlockActions && (\n\t\t\t\t<TreeGridCell className={ listViewBlockSettingsClassName }>\n\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t<BlockSettingsDropdown\n\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\tlabel={ settingsAriaLabel }\n\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\tref,\n\t\t\t\t\t\t\t\tclassName: 'block-editor-list-view-block__menu',\n\t\t\t\t\t\t\t\ttabIndex,\n\t\t\t\t\t\t\t\tonFocus,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tdisableOpenOnArrowDown\n\t\t\t\t\t\t\t__experimentalSelectBlock={ selectEditorBlock }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</TreeGridCell>\n\t\t\t) }\n\t\t</ListViewLeaf>\n\t);\n}\n\nexport default memo( ListViewBlock );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/list-view/block.js"],"names":["ListViewBlock","block","isDragged","isSelected","isBranchSelected","selectBlock","position","level","rowCount","siblingBlockCount","showBlockMovers","path","isExpanded","selectedClientIds","cellRef","isHovered","setIsHovered","clientId","toggleBlockHighlight","blockEditorStore","__experimentalFeatures","withExperimentalFeatures","__experimentalPersistentListViewFeatures","withExperimentalPersistentListViewFeatures","__experimentalHideContainerBlockActions","hideContainerBlockActions","isTreeGridMounted","expand","collapse","hasSiblings","hasRenderedMovers","moverCellClassName","listViewBlockSettingsClassName","current","focus","highlightBlock","onMouseEnter","onMouseLeave","selectEditorBlock","event","selectDuplicatedBlock","newClientId","undefined","toggleExpanded","preventDefault","stopPropagation","showBlockActions","hideBlockActions","colSpan","classes","blockInformation","settingsAriaLabel","title","dropdownClientIds","includes","ref","tabIndex","onFocus","moreVertical","className"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalTreeGridCell as TreeGridCell,\n\t__experimentalTreeGridItem as TreeGridItem,\n} from '@wordpress/components';\nimport { moreVertical } from '@wordpress/icons';\nimport {\n\tuseState,\n\tuseRef,\n\tuseEffect,\n\tuseCallback,\n\tmemo,\n} from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\nimport { sprintf, __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ListViewLeaf from './leaf';\nimport {\n\tBlockMoverUpButton,\n\tBlockMoverDownButton,\n} from '../block-mover/button';\nimport ListViewBlockContents from './block-contents';\nimport BlockSettingsDropdown from '../block-settings-menu/block-settings-dropdown';\nimport { useListViewContext } from './context';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayInformation from '../use-block-display-information';\n\nfunction ListViewBlock( {\n\tblock,\n\tisDragged,\n\tisSelected,\n\tisBranchSelected,\n\tselectBlock,\n\tposition,\n\tlevel,\n\trowCount,\n\tsiblingBlockCount,\n\tshowBlockMovers,\n\tpath,\n\tisExpanded,\n\tselectedClientIds,\n} ) {\n\tconst cellRef = useRef( null );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst { clientId } = block;\n\n\tconst { toggleBlockHighlight } = useDispatch( blockEditorStore );\n\n\tconst {\n\t\t__experimentalFeatures: withExperimentalFeatures,\n\t\t__experimentalPersistentListViewFeatures: withExperimentalPersistentListViewFeatures,\n\t\t__experimentalHideContainerBlockActions: hideContainerBlockActions,\n\t\tisTreeGridMounted,\n\t\texpand,\n\t\tcollapse,\n\t} = useListViewContext();\n\n\tconst hasSiblings = siblingBlockCount > 0;\n\tconst hasRenderedMovers = showBlockMovers && hasSiblings;\n\tconst moverCellClassName = classnames(\n\t\t'block-editor-list-view-block__mover-cell',\n\t\t{ 'is-visible': isHovered || isSelected }\n\t);\n\n\tconst listViewBlockSettingsClassName = classnames(\n\t\t'block-editor-list-view-block__menu-cell',\n\t\t{ 'is-visible': isHovered || isSelected }\n\t);\n\n\t// If ListView has experimental features related to the Persistent List View,\n\t// only focus the selected list item on mount; otherwise the list would always\n\t// try to steal the focus from the editor canvas.\n\tuseEffect( () => {\n\t\tif (\n\t\t\twithExperimentalPersistentListViewFeatures &&\n\t\t\t! isTreeGridMounted &&\n\t\t\tisSelected\n\t\t) {\n\t\t\tcellRef.current.focus();\n\t\t}\n\t}, [] );\n\n\tconst highlightBlock = withExperimentalPersistentListViewFeatures\n\t\t? toggleBlockHighlight\n\t\t: () => {};\n\n\tconst onMouseEnter = useCallback( () => {\n\t\tsetIsHovered( true );\n\t\thighlightBlock( clientId, true );\n\t}, [ clientId, setIsHovered, highlightBlock ] );\n\tconst onMouseLeave = useCallback( () => {\n\t\tsetIsHovered( false );\n\t\thighlightBlock( clientId, false );\n\t}, [ clientId, setIsHovered, highlightBlock ] );\n\n\tconst selectEditorBlock = useCallback(\n\t\t( event ) => {\n\t\t\tselectBlock( event, clientId );\n\t\t},\n\t\t[ clientId, selectBlock ]\n\t);\n\n\tconst selectDuplicatedBlock = useCallback(\n\t\t( newClientId ) => {\n\t\t\tselectBlock( undefined, newClientId );\n\t\t},\n\t\t[ selectBlock ]\n\t);\n\n\tconst toggleExpanded = useCallback(\n\t\t( event ) => {\n\t\t\t// Prevent shift+click from opening link in a new window when toggling.\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tif ( isExpanded === true ) {\n\t\t\t\tcollapse( clientId );\n\t\t\t} else if ( isExpanded === false ) {\n\t\t\t\texpand( clientId );\n\t\t\t}\n\t\t},\n\t\t[ clientId, expand, collapse, isExpanded ]\n\t);\n\n\tconst showBlockActions =\n\t\twithExperimentalFeatures &&\n\t\t// hide actions for blocks like core/widget-areas\n\t\t( ! hideContainerBlockActions ||\n\t\t\t( hideContainerBlockActions && level > 1 ) );\n\n\tconst hideBlockActions = withExperimentalFeatures && ! showBlockActions;\n\n\tlet colSpan;\n\tif ( hasRenderedMovers ) {\n\t\tcolSpan = 2;\n\t} else if ( hideBlockActions ) {\n\t\tcolSpan = 3;\n\t}\n\n\tconst classes = classnames( {\n\t\t'is-selected': isSelected,\n\t\t'is-branch-selected':\n\t\t\twithExperimentalPersistentListViewFeatures && isBranchSelected,\n\t\t'is-dragging': isDragged,\n\t\t'has-single-cell': hideBlockActions,\n\t} );\n\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst settingsAriaLabel = blockInformation\n\t\t? sprintf(\n\t\t\t\t// translators: %s: The title of the block.\n\t\t\t\t__( 'Options for %s block' ),\n\t\t\t\tblockInformation.title\n\t\t )\n\t\t: __( 'Options' );\n\n\t// Only include all selected blocks if the currently clicked on block\n\t// is one of the selected blocks. This ensures that if a user attempts\n\t// to alter a block that isn't part of the selection, they're still able\n\t// to do so.\n\tconst dropdownClientIds = selectedClientIds.includes( clientId )\n\t\t? selectedClientIds\n\t\t: [ clientId ];\n\n\treturn (\n\t\t<ListViewLeaf\n\t\t\tclassName={ classes }\n\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\tonFocus={ onMouseEnter }\n\t\t\tonBlur={ onMouseLeave }\n\t\t\tlevel={ level }\n\t\t\tposition={ position }\n\t\t\trowCount={ rowCount }\n\t\t\tpath={ path }\n\t\t\tid={ `list-view-block-${ clientId }` }\n\t\t\tdata-block={ clientId }\n\t\t\tisExpanded={ isExpanded }\n\t\t>\n\t\t\t<TreeGridCell\n\t\t\t\tclassName=\"block-editor-list-view-block__contents-cell\"\n\t\t\t\tcolSpan={ colSpan }\n\t\t\t\tref={ cellRef }\n\t\t\t>\n\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t<div className=\"block-editor-list-view-block__contents-container\">\n\t\t\t\t\t\t<ListViewBlockContents\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\tonClick={ selectEditorBlock }\n\t\t\t\t\t\t\tonToggleExpanded={ toggleExpanded }\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\tsiblingBlockCount={ siblingBlockCount }\n\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</TreeGridCell>\n\t\t\t{ hasRenderedMovers && (\n\t\t\t\t<>\n\t\t\t\t\t<TreeGridCell\n\t\t\t\t\t\tclassName={ moverCellClassName }\n\t\t\t\t\t\twithoutGridItem\n\t\t\t\t\t>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t</TreeGridCell>\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ showBlockActions && (\n\t\t\t\t<TreeGridCell className={ listViewBlockSettingsClassName }>\n\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t<BlockSettingsDropdown\n\t\t\t\t\t\t\tclientIds={ dropdownClientIds }\n\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\tlabel={ settingsAriaLabel }\n\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\tref,\n\t\t\t\t\t\t\t\tclassName: 'block-editor-list-view-block__menu',\n\t\t\t\t\t\t\t\ttabIndex,\n\t\t\t\t\t\t\t\tonFocus,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tdisableOpenOnArrowDown\n\t\t\t\t\t\t\t__experimentalSelectBlock={ selectDuplicatedBlock }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</TreeGridCell>\n\t\t\t) }\n\t\t</ListViewLeaf>\n\t);\n}\n\nexport default memo( ListViewBlock );\n"]}
@@ -143,7 +143,8 @@ function ListViewBranch(props) {
143
143
  showBlockMovers: showBlockMovers,
144
144
  path: updatedPath,
145
145
  isExpanded: isExpanded,
146
- listPosition: nextPosition
146
+ listPosition: nextPosition,
147
+ selectedClientIds: selectedClientIds
147
148
  }), !showBlock && (0, _element.createElement)("tr", null, (0, _element.createElement)("td", {
148
149
  className: "block-editor-list-view-placeholder"
149
150
  })), hasNestedBlocks && isExpanded && !isDragged && (0, _element.createElement)(ListViewBranch, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/list-view/branch.js"],"names":["countBlocks","block","expandedState","draggedClientIds","isDragged","includes","clientId","isExpanded","innerBlocks","reduce","countReducer","count","length","ListViewBranch","props","blocks","selectBlock","showBlockMovers","showNestedBlocks","selectedClientIds","level","path","isBranchSelected","listPosition","fixedListWindow","__experimentalPersistentListViewFeatures","filteredBlocks","blockCount","nextPosition","map","index","usesWindowing","itemInView","blockInView","position","updatedPath","hasNestedBlocks","undefined","showBlock","isSelected","isSelectedBranch","defaultProps"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { compact } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { memo } from '@wordpress/element';\nimport { AsyncModeProvider } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport ListViewBlock from './block';\nimport { useListViewContext } from './context';\nimport { isClientIdSelected } from './utils';\n\n/**\n * Given a block, returns the total number of blocks in that subtree. This is used to help determine\n * the list position of a block.\n *\n * When a block is collapsed, we do not count their children as part of that total. In the current drag\n * implementation dragged blocks and their children are not counted.\n *\n * @param {Object} block block tree\n * @param {Object} expandedState state that notes which branches are collapsed\n * @param {Array} draggedClientIds a list of dragged client ids\n * @return {number} block count\n */\nfunction countBlocks( block, expandedState, draggedClientIds ) {\n\tconst isDragged = draggedClientIds?.includes( block.clientId );\n\tif ( isDragged ) {\n\t\treturn 0;\n\t}\n\tconst isExpanded = expandedState[ block.clientId ] ?? true;\n\tif ( isExpanded ) {\n\t\treturn (\n\t\t\t1 +\n\t\t\tblock.innerBlocks.reduce(\n\t\t\t\tcountReducer( expandedState, draggedClientIds ),\n\t\t\t\t0\n\t\t\t)\n\t\t);\n\t}\n\treturn 1;\n}\nconst countReducer = ( expandedState, draggedClientIds ) => (\n\tcount,\n\tblock\n) => {\n\tconst isDragged = draggedClientIds?.includes( block.clientId );\n\tif ( isDragged ) {\n\t\treturn count;\n\t}\n\tconst isExpanded = expandedState[ block.clientId ] ?? true;\n\tif ( isExpanded && block.innerBlocks.length > 0 ) {\n\t\treturn count + countBlocks( block, expandedState, draggedClientIds );\n\t}\n\treturn count + 1;\n};\n\nfunction ListViewBranch( props ) {\n\tconst {\n\t\tblocks,\n\t\tselectBlock,\n\t\tshowBlockMovers,\n\t\tshowNestedBlocks,\n\t\tselectedClientIds,\n\t\tlevel = 1,\n\t\tpath = '',\n\t\tisBranchSelected = false,\n\t\tlistPosition = 0,\n\t\tfixedListWindow,\n\t} = props;\n\n\tconst {\n\t\texpandedState,\n\t\tdraggedClientIds,\n\t\t__experimentalPersistentListViewFeatures,\n\t} = useListViewContext();\n\n\tconst filteredBlocks = compact( blocks );\n\tconst blockCount = filteredBlocks.length;\n\tlet nextPosition = listPosition;\n\n\treturn (\n\t\t<>\n\t\t\t{ filteredBlocks.map( ( block, index ) => {\n\t\t\t\tconst { clientId, innerBlocks } = block;\n\n\t\t\t\tif ( index > 0 ) {\n\t\t\t\t\tnextPosition += countBlocks(\n\t\t\t\t\t\tfilteredBlocks[ index - 1 ],\n\t\t\t\t\t\texpandedState,\n\t\t\t\t\t\tdraggedClientIds\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst usesWindowing = __experimentalPersistentListViewFeatures;\n\n\t\t\t\tconst { itemInView } = fixedListWindow;\n\n\t\t\t\tconst blockInView =\n\t\t\t\t\t! usesWindowing || itemInView( nextPosition );\n\n\t\t\t\tconst position = index + 1;\n\t\t\t\tconst updatedPath =\n\t\t\t\t\tpath.length > 0\n\t\t\t\t\t\t? `${ path }_${ position }`\n\t\t\t\t\t\t: `${ position }`;\n\t\t\t\tconst hasNestedBlocks =\n\t\t\t\t\tshowNestedBlocks && !! innerBlocks && !! innerBlocks.length;\n\n\t\t\t\tconst isExpanded = hasNestedBlocks\n\t\t\t\t\t? expandedState[ clientId ] ?? true\n\t\t\t\t\t: undefined;\n\n\t\t\t\tconst isDragged = !! draggedClientIds?.includes( clientId );\n\n\t\t\t\tconst showBlock = isDragged || blockInView;\n\n\t\t\t\t// Make updates to the selected or dragged blocks synchronous,\n\t\t\t\t// but asynchronous for any other block.\n\t\t\t\tconst isSelected = isClientIdSelected(\n\t\t\t\t\tclientId,\n\t\t\t\t\tselectedClientIds\n\t\t\t\t);\n\t\t\t\tconst isSelectedBranch =\n\t\t\t\t\tisBranchSelected || ( isSelected && hasNestedBlocks );\n\t\t\t\treturn (\n\t\t\t\t\t<AsyncModeProvider key={ clientId } value={ ! isSelected }>\n\t\t\t\t\t\t{ showBlock && (\n\t\t\t\t\t\t\t<ListViewBlock\n\t\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\t\tselectBlock={ selectBlock }\n\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\tisBranchSelected={ isSelectedBranch }\n\t\t\t\t\t\t\t\tisDragged={ isDragged }\n\t\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\t\trowCount={ blockCount }\n\t\t\t\t\t\t\t\tsiblingBlockCount={ blockCount }\n\t\t\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\t\t\tpath={ updatedPath }\n\t\t\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t\t\tlistPosition={ nextPosition }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! showBlock && (\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td className=\"block-editor-list-view-placeholder\" />\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ hasNestedBlocks && isExpanded && ! isDragged && (\n\t\t\t\t\t\t\t<ListViewBranch\n\t\t\t\t\t\t\t\tblocks={ innerBlocks }\n\t\t\t\t\t\t\t\tselectBlock={ selectBlock }\n\t\t\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\t\t\tshowNestedBlocks={ showNestedBlocks }\n\t\t\t\t\t\t\t\tlevel={ level + 1 }\n\t\t\t\t\t\t\t\tpath={ updatedPath }\n\t\t\t\t\t\t\t\tlistPosition={ nextPosition + 1 }\n\t\t\t\t\t\t\t\tfixedListWindow={ fixedListWindow }\n\t\t\t\t\t\t\t\tisBranchSelected={ isSelectedBranch }\n\t\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</AsyncModeProvider>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</>\n\t);\n}\n\nListViewBranch.defaultProps = {\n\tselectBlock: () => {},\n};\n\nexport default memo( ListViewBranch );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/list-view/branch.js"],"names":["countBlocks","block","expandedState","draggedClientIds","isDragged","includes","clientId","isExpanded","innerBlocks","reduce","countReducer","count","length","ListViewBranch","props","blocks","selectBlock","showBlockMovers","showNestedBlocks","selectedClientIds","level","path","isBranchSelected","listPosition","fixedListWindow","__experimentalPersistentListViewFeatures","filteredBlocks","blockCount","nextPosition","map","index","usesWindowing","itemInView","blockInView","position","updatedPath","hasNestedBlocks","undefined","showBlock","isSelected","isSelectedBranch","defaultProps"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { compact } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { memo } from '@wordpress/element';\nimport { AsyncModeProvider } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport ListViewBlock from './block';\nimport { useListViewContext } from './context';\nimport { isClientIdSelected } from './utils';\n\n/**\n * Given a block, returns the total number of blocks in that subtree. This is used to help determine\n * the list position of a block.\n *\n * When a block is collapsed, we do not count their children as part of that total. In the current drag\n * implementation dragged blocks and their children are not counted.\n *\n * @param {Object} block block tree\n * @param {Object} expandedState state that notes which branches are collapsed\n * @param {Array} draggedClientIds a list of dragged client ids\n * @return {number} block count\n */\nfunction countBlocks( block, expandedState, draggedClientIds ) {\n\tconst isDragged = draggedClientIds?.includes( block.clientId );\n\tif ( isDragged ) {\n\t\treturn 0;\n\t}\n\tconst isExpanded = expandedState[ block.clientId ] ?? true;\n\tif ( isExpanded ) {\n\t\treturn (\n\t\t\t1 +\n\t\t\tblock.innerBlocks.reduce(\n\t\t\t\tcountReducer( expandedState, draggedClientIds ),\n\t\t\t\t0\n\t\t\t)\n\t\t);\n\t}\n\treturn 1;\n}\nconst countReducer = ( expandedState, draggedClientIds ) => (\n\tcount,\n\tblock\n) => {\n\tconst isDragged = draggedClientIds?.includes( block.clientId );\n\tif ( isDragged ) {\n\t\treturn count;\n\t}\n\tconst isExpanded = expandedState[ block.clientId ] ?? true;\n\tif ( isExpanded && block.innerBlocks.length > 0 ) {\n\t\treturn count + countBlocks( block, expandedState, draggedClientIds );\n\t}\n\treturn count + 1;\n};\n\nfunction ListViewBranch( props ) {\n\tconst {\n\t\tblocks,\n\t\tselectBlock,\n\t\tshowBlockMovers,\n\t\tshowNestedBlocks,\n\t\tselectedClientIds,\n\t\tlevel = 1,\n\t\tpath = '',\n\t\tisBranchSelected = false,\n\t\tlistPosition = 0,\n\t\tfixedListWindow,\n\t} = props;\n\n\tconst {\n\t\texpandedState,\n\t\tdraggedClientIds,\n\t\t__experimentalPersistentListViewFeatures,\n\t} = useListViewContext();\n\n\tconst filteredBlocks = compact( blocks );\n\tconst blockCount = filteredBlocks.length;\n\tlet nextPosition = listPosition;\n\n\treturn (\n\t\t<>\n\t\t\t{ filteredBlocks.map( ( block, index ) => {\n\t\t\t\tconst { clientId, innerBlocks } = block;\n\n\t\t\t\tif ( index > 0 ) {\n\t\t\t\t\tnextPosition += countBlocks(\n\t\t\t\t\t\tfilteredBlocks[ index - 1 ],\n\t\t\t\t\t\texpandedState,\n\t\t\t\t\t\tdraggedClientIds\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst usesWindowing = __experimentalPersistentListViewFeatures;\n\n\t\t\t\tconst { itemInView } = fixedListWindow;\n\n\t\t\t\tconst blockInView =\n\t\t\t\t\t! usesWindowing || itemInView( nextPosition );\n\n\t\t\t\tconst position = index + 1;\n\t\t\t\tconst updatedPath =\n\t\t\t\t\tpath.length > 0\n\t\t\t\t\t\t? `${ path }_${ position }`\n\t\t\t\t\t\t: `${ position }`;\n\t\t\t\tconst hasNestedBlocks =\n\t\t\t\t\tshowNestedBlocks && !! innerBlocks && !! innerBlocks.length;\n\n\t\t\t\tconst isExpanded = hasNestedBlocks\n\t\t\t\t\t? expandedState[ clientId ] ?? true\n\t\t\t\t\t: undefined;\n\n\t\t\t\tconst isDragged = !! draggedClientIds?.includes( clientId );\n\n\t\t\t\tconst showBlock = isDragged || blockInView;\n\n\t\t\t\t// Make updates to the selected or dragged blocks synchronous,\n\t\t\t\t// but asynchronous for any other block.\n\t\t\t\tconst isSelected = isClientIdSelected(\n\t\t\t\t\tclientId,\n\t\t\t\t\tselectedClientIds\n\t\t\t\t);\n\t\t\t\tconst isSelectedBranch =\n\t\t\t\t\tisBranchSelected || ( isSelected && hasNestedBlocks );\n\t\t\t\treturn (\n\t\t\t\t\t<AsyncModeProvider key={ clientId } value={ ! isSelected }>\n\t\t\t\t\t\t{ showBlock && (\n\t\t\t\t\t\t\t<ListViewBlock\n\t\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\t\tselectBlock={ selectBlock }\n\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\tisBranchSelected={ isSelectedBranch }\n\t\t\t\t\t\t\t\tisDragged={ isDragged }\n\t\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\t\trowCount={ blockCount }\n\t\t\t\t\t\t\t\tsiblingBlockCount={ blockCount }\n\t\t\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\t\t\tpath={ updatedPath }\n\t\t\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t\t\tlistPosition={ nextPosition }\n\t\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! showBlock && (\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td className=\"block-editor-list-view-placeholder\" />\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ hasNestedBlocks && isExpanded && ! isDragged && (\n\t\t\t\t\t\t\t<ListViewBranch\n\t\t\t\t\t\t\t\tblocks={ innerBlocks }\n\t\t\t\t\t\t\t\tselectBlock={ selectBlock }\n\t\t\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\t\t\tshowNestedBlocks={ showNestedBlocks }\n\t\t\t\t\t\t\t\tlevel={ level + 1 }\n\t\t\t\t\t\t\t\tpath={ updatedPath }\n\t\t\t\t\t\t\t\tlistPosition={ nextPosition + 1 }\n\t\t\t\t\t\t\t\tfixedListWindow={ fixedListWindow }\n\t\t\t\t\t\t\t\tisBranchSelected={ isSelectedBranch }\n\t\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</AsyncModeProvider>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</>\n\t);\n}\n\nListViewBranch.defaultProps = {\n\tselectBlock: () => {},\n};\n\nexport default memo( ListViewBranch );\n"]}