@wordpress/block-editor 9.2.0 → 9.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (693) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +1 -8
  3. package/build/autocompleters/block.js +3 -1
  4. package/build/autocompleters/block.js.map +1 -1
  5. package/build/components/block-actions/index.js.map +1 -1
  6. package/build/components/block-alignment-control/ui.js.map +1 -1
  7. package/build/components/block-alignment-matrix-control/index.js +3 -7
  8. package/build/components/block-alignment-matrix-control/index.js.map +1 -1
  9. package/build/components/block-breadcrumb/index.js.map +1 -1
  10. package/build/components/block-content-overlay/index.js.map +1 -1
  11. package/build/components/block-context/index.js.map +1 -1
  12. package/build/components/block-controls/hook.js.map +1 -1
  13. package/build/components/block-draggable/index.js.map +1 -1
  14. package/build/components/block-draggable/index.native.js.map +1 -1
  15. package/build/components/block-list/block-invalid-warning.native.js +54 -6
  16. package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
  17. package/build/components/block-list/block-list-item.native.js.map +1 -1
  18. package/build/components/block-list/block-selection-button.native.js.map +1 -1
  19. package/build/components/block-list/block.js +2 -2
  20. package/build/components/block-list/block.js.map +1 -1
  21. package/build/components/block-list/block.native.js +2 -1
  22. package/build/components/block-list/block.native.js.map +1 -1
  23. package/build/components/block-list/index.js.map +1 -1
  24. package/build/components/block-list/index.native.js +4 -3
  25. package/build/components/block-list/index.native.js.map +1 -1
  26. package/build/components/block-list/layout.js +20 -5
  27. package/build/components/block-list/layout.js.map +1 -1
  28. package/build/components/block-list/use-block-props/index.js.map +1 -1
  29. package/build/components/block-list/use-block-props/use-block-class-names.js +5 -2
  30. package/build/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  31. package/build/components/block-list/use-block-props/use-block-custom-class-name.js.map +1 -1
  32. package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  33. package/build/components/block-list/use-in-between-inserter.js.map +1 -1
  34. package/build/components/block-list-appender/index.js.map +1 -1
  35. package/build/components/block-list-appender/index.native.js.map +1 -1
  36. package/build/components/block-lock/modal.js +35 -5
  37. package/build/components/block-lock/modal.js.map +1 -1
  38. package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  39. package/build/components/block-mover/button.js.map +1 -1
  40. package/build/components/block-mover/index.native.js.map +1 -1
  41. package/build/components/block-parent-selector/index.js.map +1 -1
  42. package/build/components/block-pattern-setup/index.js +8 -26
  43. package/build/components/block-pattern-setup/index.js.map +1 -1
  44. package/build/components/block-pattern-setup/setup-toolbar.js +3 -8
  45. package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  46. package/build/components/block-popover/inbetween.js +1 -1
  47. package/build/components/block-popover/inbetween.js.map +1 -1
  48. package/build/components/block-popover/index.js +1 -1
  49. package/build/components/block-popover/index.js.map +1 -1
  50. package/build/components/block-preview/auto.js +21 -5
  51. package/build/components/block-preview/auto.js.map +1 -1
  52. package/build/components/block-selection-clearer/index.js.map +1 -1
  53. package/build/components/block-settings-menu/block-edit-visually-button.js +70 -0
  54. package/build/components/block-settings-menu/block-edit-visually-button.js.map +1 -0
  55. package/build/components/block-settings-menu/block-mode-toggle.js +4 -8
  56. package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  57. package/build/components/block-settings-menu/block-settings-dropdown.js +10 -4
  58. package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  59. package/build/components/block-settings-menu/index.js +6 -2
  60. package/build/components/block-settings-menu/index.js.map +1 -1
  61. package/build/components/block-settings-menu-controls/index.js +4 -1
  62. package/build/components/block-settings-menu-controls/index.js.map +1 -1
  63. package/build/components/block-styles/index.js +6 -3
  64. package/build/components/block-styles/index.js.map +1 -1
  65. package/build/components/block-styles/menu-items.js +3 -7
  66. package/build/components/block-styles/menu-items.js.map +1 -1
  67. package/build/components/block-styles/preview.native.js +3 -1
  68. package/build/components/block-styles/preview.native.js.map +1 -1
  69. package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
  70. package/build/components/block-switcher/index.js +7 -1
  71. package/build/components/block-switcher/index.js.map +1 -1
  72. package/build/components/block-title/index.js +8 -2
  73. package/build/components/block-title/index.js.map +1 -1
  74. package/build/components/block-title/use-block-display-title.js +15 -15
  75. package/build/components/block-title/use-block-display-title.js.map +1 -1
  76. package/build/components/block-toolbar/index.native.js.map +1 -1
  77. package/build/components/block-toolbar/utils.js +5 -8
  78. package/build/components/block-toolbar/utils.js.map +1 -1
  79. package/build/components/block-tools/block-contextual-toolbar.js +1 -1
  80. package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
  81. package/build/components/block-tools/index.js.map +1 -1
  82. package/build/components/block-types-list/index.native.js.map +1 -1
  83. package/build/components/block-variation-transforms/index.js.map +1 -1
  84. package/build/components/border-radius-control/index.js +2 -0
  85. package/build/components/border-radius-control/index.js.map +1 -1
  86. package/build/components/color-style-selector/index.js.map +1 -1
  87. package/build/components/colors/with-colors.js +1 -1
  88. package/build/components/colors/with-colors.js.map +1 -1
  89. package/build/components/colors-gradients/control.js +45 -39
  90. package/build/components/colors-gradients/control.js.map +1 -1
  91. package/build/components/colors-gradients/dropdown.js +2 -1
  92. package/build/components/colors-gradients/dropdown.js.map +1 -1
  93. package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
  94. package/build/components/copy-handler/index.js +17 -1
  95. package/build/components/copy-handler/index.js.map +1 -1
  96. package/build/components/date-format-picker/index.js +1 -1
  97. package/build/components/date-format-picker/index.js.map +1 -1
  98. package/build/components/default-block-appender/index.js.map +1 -1
  99. package/build/components/default-block-appender/index.native.js.map +1 -1
  100. package/build/components/default-style-picker/index.js.map +1 -1
  101. package/build/components/duotone/components.js +145 -0
  102. package/build/components/duotone/components.js.map +1 -0
  103. package/build/components/duotone/index.js +40 -0
  104. package/build/components/duotone/index.js.map +1 -0
  105. package/build/components/duotone/utils.js +38 -0
  106. package/build/components/duotone/utils.js.map +1 -0
  107. package/build/components/duotone-control/index.js +17 -5
  108. package/build/components/duotone-control/index.js.map +1 -1
  109. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  110. package/build/components/iframe/index.js +19 -6
  111. package/build/components/iframe/index.js.map +1 -1
  112. package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  113. package/build/components/image-size-control/index.js +3 -1
  114. package/build/components/image-size-control/index.js.map +1 -1
  115. package/build/components/index.js +32 -0
  116. package/build/components/index.js.map +1 -1
  117. package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  118. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  119. package/build/components/inserter/block-types-tab.native.js.map +1 -1
  120. package/build/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
  121. package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
  122. package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
  123. package/build/components/inserter/index.js +3 -3
  124. package/build/components/inserter/index.js.map +1 -1
  125. package/build/components/inserter/index.native.js.map +1 -1
  126. package/build/components/inserter/library.js +3 -7
  127. package/build/components/inserter/library.js.map +1 -1
  128. package/build/components/inserter/menu.js.map +1 -1
  129. package/build/components/inserter/menu.native.js.map +1 -1
  130. package/build/components/inserter/no-results.native.js.map +1 -1
  131. package/build/components/inserter/quick-inserter.js.map +1 -1
  132. package/build/components/inserter/search-items.js +1 -1
  133. package/build/components/inserter/search-items.js.map +1 -1
  134. package/build/components/inserter/search-results.native.js.map +1 -1
  135. package/build/components/inspector-popover-header/index.js +56 -0
  136. package/build/components/inspector-popover-header/index.js.map +1 -0
  137. package/build/components/line-height-control/index.js.map +1 -1
  138. package/build/components/link-control/index.js +5 -5
  139. package/build/components/link-control/index.js.map +1 -1
  140. package/build/components/link-control/search-create-button.js +1 -3
  141. package/build/components/link-control/search-create-button.js.map +1 -1
  142. package/build/components/link-control/search-input.js +5 -3
  143. package/build/components/link-control/search-input.js.map +1 -1
  144. package/build/components/link-control/settings-drawer.js +3 -7
  145. package/build/components/link-control/settings-drawer.js.map +1 -1
  146. package/build/components/link-control/use-search-handler.js.map +1 -1
  147. package/build/components/list-view/block-contents.js.map +1 -1
  148. package/build/components/list-view/block-select-button.js +15 -7
  149. package/build/components/list-view/block-select-button.js.map +1 -1
  150. package/build/components/list-view/branch.js.map +1 -1
  151. package/build/components/list-view/drop-indicator.js +1 -1
  152. package/build/components/list-view/drop-indicator.js.map +1 -1
  153. package/build/components/list-view/index.js.map +1 -1
  154. package/build/components/list-view/use-block-selection.js.map +1 -1
  155. package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
  156. package/build/components/list-view/utils.js +1 -7
  157. package/build/components/list-view/utils.js.map +1 -1
  158. package/build/components/media-placeholder/index.js +18 -6
  159. package/build/components/media-placeholder/index.js.map +1 -1
  160. package/build/components/media-placeholder/index.native.js +4 -4
  161. package/build/components/media-placeholder/index.native.js.map +1 -1
  162. package/build/components/media-replace-flow/index.js +25 -17
  163. package/build/components/media-replace-flow/index.js.map +1 -1
  164. package/build/components/media-upload/index.native.js +1 -1
  165. package/build/components/media-upload/index.native.js.map +1 -1
  166. package/build/components/navigable-toolbar/index.js.map +1 -1
  167. package/build/components/plain-text/index.native.js.map +1 -1
  168. package/build/components/preview-options/index.js +4 -0
  169. package/build/components/preview-options/index.js.map +1 -1
  170. package/build/components/provider/use-block-sync.js +5 -3
  171. package/build/components/provider/use-block-sync.js.map +1 -1
  172. package/build/components/publish-date-time-picker/index.js +17 -16
  173. package/build/components/publish-date-time-picker/index.js.map +1 -1
  174. package/build/components/rich-text/embed-handler-picker.native.js +4 -8
  175. package/build/components/rich-text/embed-handler-picker.native.js.map +1 -1
  176. package/build/components/rich-text/index.js.map +1 -1
  177. package/build/components/rich-text/use-format-types.js.map +1 -1
  178. package/build/components/rich-text/use-input-rules.js +4 -13
  179. package/build/components/rich-text/use-input-rules.js.map +1 -1
  180. package/build/components/rich-text/use-mark-persistent.js.map +1 -1
  181. package/build/components/rich-text/use-paste-handler.js +20 -5
  182. package/build/components/rich-text/use-paste-handler.js.map +1 -1
  183. package/build/components/skip-to-selected-block/index.js.map +1 -1
  184. package/build/components/ungroup-button/index.native.js +3 -7
  185. package/build/components/ungroup-button/index.native.js.map +1 -1
  186. package/build/components/url-input/index.js +14 -3
  187. package/build/components/url-input/index.js.map +1 -1
  188. package/build/components/url-popover/index.js +2 -1
  189. package/build/components/url-popover/index.js.map +1 -1
  190. package/build/components/use-block-display-information/index.js.map +1 -1
  191. package/build/components/use-block-drop-zone/index.js.map +1 -1
  192. package/build/components/use-block-drop-zone/index.native.js.map +1 -1
  193. package/build/components/use-display-block-controls/index.native.js.map +1 -1
  194. package/build/components/use-on-block-drop/index.js.map +1 -1
  195. package/build/components/use-on-block-drop/index.native.js.map +1 -1
  196. package/build/components/use-setting/index.js.map +1 -1
  197. package/build/components/writing-flow/use-arrow-nav.js +46 -14
  198. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  199. package/build/components/writing-flow/use-click-selection.js.map +1 -1
  200. package/build/components/writing-flow/use-drag-selection.js.map +1 -1
  201. package/build/components/writing-flow/use-multi-selection.js +3 -47
  202. package/build/components/writing-flow/use-multi-selection.js.map +1 -1
  203. package/build/components/writing-flow/use-select-all.js.map +1 -1
  204. package/build/components/writing-flow/use-selection-observer.js +1 -3
  205. package/build/components/writing-flow/use-selection-observer.js.map +1 -1
  206. package/build/components/writing-flow/use-tab-nav.js.map +1 -1
  207. package/build/elements/index.js +11 -3
  208. package/build/elements/index.js.map +1 -1
  209. package/build/hooks/aria-label.js +71 -0
  210. package/build/hooks/aria-label.js.map +1 -0
  211. package/build/hooks/color-panel.js.map +1 -1
  212. package/build/hooks/color-panel.native.js.map +1 -1
  213. package/build/hooks/color.js +2 -4
  214. package/build/hooks/color.js.map +1 -1
  215. package/build/hooks/duotone.js +33 -160
  216. package/build/hooks/duotone.js.map +1 -1
  217. package/build/hooks/font-family.js.map +1 -1
  218. package/build/hooks/gap.js.map +1 -1
  219. package/build/hooks/index.js +11 -7
  220. package/build/hooks/index.js.map +1 -1
  221. package/build/hooks/layout.js +74 -8
  222. package/build/hooks/layout.js.map +1 -1
  223. package/build/hooks/utils.js +5 -3
  224. package/build/hooks/utils.js.map +1 -1
  225. package/build/index.js +7 -7
  226. package/build/index.js.map +1 -1
  227. package/build/layouts/flex.js +42 -38
  228. package/build/layouts/flex.js.map +1 -1
  229. package/build/layouts/flow.js +10 -35
  230. package/build/layouts/flow.js.map +1 -1
  231. package/build/layouts/utils.js +35 -3
  232. package/build/layouts/utils.js.map +1 -1
  233. package/build/store/actions.js +24 -31
  234. package/build/store/actions.js.map +1 -1
  235. package/build/store/index.js +0 -4
  236. package/build/store/index.js.map +1 -1
  237. package/build/store/reducer.js +23 -12
  238. package/build/store/reducer.js.map +1 -1
  239. package/build/store/selectors.js +4 -4
  240. package/build/store/selectors.js.map +1 -1
  241. package/build/utils/pasting.js.map +1 -1
  242. package/build/utils/selection.js +34 -0
  243. package/build/utils/selection.js.map +1 -0
  244. package/build/utils/transform-styles/transforms/wrap.js.map +1 -1
  245. package/build-module/autocompleters/block.js +4 -1
  246. package/build-module/autocompleters/block.js.map +1 -1
  247. package/build-module/components/block-actions/index.js.map +1 -1
  248. package/build-module/components/block-alignment-control/ui.js.map +1 -1
  249. package/build-module/components/block-alignment-matrix-control/index.js +2 -5
  250. package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
  251. package/build-module/components/block-breadcrumb/index.js.map +1 -1
  252. package/build-module/components/block-content-overlay/index.js.map +1 -1
  253. package/build-module/components/block-context/index.js.map +1 -1
  254. package/build-module/components/block-controls/hook.js.map +1 -1
  255. package/build-module/components/block-draggable/index.js.map +1 -1
  256. package/build-module/components/block-draggable/index.native.js.map +1 -1
  257. package/build-module/components/block-list/block-invalid-warning.native.js +50 -6
  258. package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
  259. package/build-module/components/block-list/block-list-item.native.js.map +1 -1
  260. package/build-module/components/block-list/block-selection-button.native.js.map +1 -1
  261. package/build-module/components/block-list/block.js +2 -2
  262. package/build-module/components/block-list/block.js.map +1 -1
  263. package/build-module/components/block-list/block.native.js +2 -1
  264. package/build-module/components/block-list/block.native.js.map +1 -1
  265. package/build-module/components/block-list/index.js.map +1 -1
  266. package/build-module/components/block-list/index.native.js +3 -1
  267. package/build-module/components/block-list/index.native.js.map +1 -1
  268. package/build-module/components/block-list/layout.js +19 -4
  269. package/build-module/components/block-list/layout.js.map +1 -1
  270. package/build-module/components/block-list/use-block-props/index.js.map +1 -1
  271. package/build-module/components/block-list/use-block-props/use-block-class-names.js +5 -2
  272. package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
  273. package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js.map +1 -1
  274. package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
  275. package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
  276. package/build-module/components/block-list-appender/index.js.map +1 -1
  277. package/build-module/components/block-list-appender/index.native.js.map +1 -1
  278. package/build-module/components/block-lock/modal.js +37 -6
  279. package/build-module/components/block-lock/modal.js.map +1 -1
  280. package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
  281. package/build-module/components/block-mover/button.js.map +1 -1
  282. package/build-module/components/block-mover/index.native.js.map +1 -1
  283. package/build-module/components/block-parent-selector/index.js.map +1 -1
  284. package/build-module/components/block-pattern-setup/index.js +9 -27
  285. package/build-module/components/block-pattern-setup/index.js.map +1 -1
  286. package/build-module/components/block-pattern-setup/setup-toolbar.js +3 -8
  287. package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
  288. package/build-module/components/block-popover/inbetween.js +1 -1
  289. package/build-module/components/block-popover/inbetween.js.map +1 -1
  290. package/build-module/components/block-popover/index.js +1 -1
  291. package/build-module/components/block-popover/index.js.map +1 -1
  292. package/build-module/components/block-preview/auto.js +20 -5
  293. package/build-module/components/block-preview/auto.js.map +1 -1
  294. package/build-module/components/block-selection-clearer/index.js.map +1 -1
  295. package/build-module/components/block-settings-menu/block-edit-visually-button.js +56 -0
  296. package/build-module/components/block-settings-menu/block-edit-visually-button.js.map +1 -0
  297. package/build-module/components/block-settings-menu/block-mode-toggle.js +4 -6
  298. package/build-module/components/block-settings-menu/block-mode-toggle.js.map +1 -1
  299. package/build-module/components/block-settings-menu/block-settings-dropdown.js +10 -3
  300. package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
  301. package/build-module/components/block-settings-menu/index.js +6 -3
  302. package/build-module/components/block-settings-menu/index.js.map +1 -1
  303. package/build-module/components/block-settings-menu-controls/index.js +5 -2
  304. package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
  305. package/build-module/components/block-styles/index.js +5 -2
  306. package/build-module/components/block-styles/index.js.map +1 -1
  307. package/build-module/components/block-styles/menu-items.js +3 -5
  308. package/build-module/components/block-styles/menu-items.js.map +1 -1
  309. package/build-module/components/block-styles/preview.native.js +3 -2
  310. package/build-module/components/block-styles/preview.native.js.map +1 -1
  311. package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
  312. package/build-module/components/block-switcher/index.js +7 -1
  313. package/build-module/components/block-switcher/index.js.map +1 -1
  314. package/build-module/components/block-title/index.js +8 -2
  315. package/build-module/components/block-title/index.js.map +1 -1
  316. package/build-module/components/block-title/use-block-display-title.js +15 -14
  317. package/build-module/components/block-title/use-block-display-title.js.map +1 -1
  318. package/build-module/components/block-toolbar/index.native.js.map +1 -1
  319. package/build-module/components/block-toolbar/utils.js +3 -5
  320. package/build-module/components/block-toolbar/utils.js.map +1 -1
  321. package/build-module/components/block-tools/block-contextual-toolbar.js +1 -1
  322. package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
  323. package/build-module/components/block-tools/index.js.map +1 -1
  324. package/build-module/components/block-types-list/index.native.js.map +1 -1
  325. package/build-module/components/block-variation-transforms/index.js.map +1 -1
  326. package/build-module/components/border-radius-control/index.js +2 -0
  327. package/build-module/components/border-radius-control/index.js.map +1 -1
  328. package/build-module/components/color-style-selector/index.js.map +1 -1
  329. package/build-module/components/colors/with-colors.js +2 -2
  330. package/build-module/components/colors/with-colors.js.map +1 -1
  331. package/build-module/components/colors-gradients/control.js +46 -40
  332. package/build-module/components/colors-gradients/control.js.map +1 -1
  333. package/build-module/components/colors-gradients/dropdown.js +2 -1
  334. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  335. package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
  336. package/build-module/components/copy-handler/index.js +18 -2
  337. package/build-module/components/copy-handler/index.js.map +1 -1
  338. package/build-module/components/date-format-picker/index.js +1 -1
  339. package/build-module/components/date-format-picker/index.js.map +1 -1
  340. package/build-module/components/default-block-appender/index.js.map +1 -1
  341. package/build-module/components/default-block-appender/index.native.js.map +1 -1
  342. package/build-module/components/default-style-picker/index.js.map +1 -1
  343. package/build-module/components/duotone/components.js +130 -0
  344. package/build-module/components/duotone/components.js.map +1 -0
  345. package/build-module/components/duotone/index.js +3 -0
  346. package/build-module/components/duotone/index.js.map +1 -0
  347. package/build-module/components/duotone/utils.js +30 -0
  348. package/build-module/components/duotone/utils.js.map +1 -0
  349. package/build-module/components/duotone-control/index.js +18 -6
  350. package/build-module/components/duotone-control/index.js.map +1 -1
  351. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  352. package/build-module/components/iframe/index.js +19 -6
  353. package/build-module/components/iframe/index.js.map +1 -1
  354. package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
  355. package/build-module/components/image-size-control/index.js +4 -1
  356. package/build-module/components/image-size-control/index.js.map +1 -1
  357. package/build-module/components/index.js +3 -0
  358. package/build-module/components/index.js.map +1 -1
  359. package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
  360. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  361. package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
  362. package/build-module/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
  363. package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
  364. package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
  365. package/build-module/components/inserter/index.js +3 -2
  366. package/build-module/components/inserter/index.js.map +1 -1
  367. package/build-module/components/inserter/index.native.js.map +1 -1
  368. package/build-module/components/inserter/library.js +2 -5
  369. package/build-module/components/inserter/library.js.map +1 -1
  370. package/build-module/components/inserter/menu.js.map +1 -1
  371. package/build-module/components/inserter/menu.native.js.map +1 -1
  372. package/build-module/components/inserter/no-results.native.js.map +1 -1
  373. package/build-module/components/inserter/quick-inserter.js.map +1 -1
  374. package/build-module/components/inserter/search-items.js +2 -2
  375. package/build-module/components/inserter/search-items.js.map +1 -1
  376. package/build-module/components/inserter/search-results.native.js.map +1 -1
  377. package/build-module/components/inspector-popover-header/index.js +46 -0
  378. package/build-module/components/inspector-popover-header/index.js.map +1 -0
  379. package/build-module/components/line-height-control/index.js.map +1 -1
  380. package/build-module/components/link-control/index.js +3 -2
  381. package/build-module/components/link-control/index.js.map +1 -1
  382. package/build-module/components/link-control/search-create-button.js +1 -2
  383. package/build-module/components/link-control/search-create-button.js.map +1 -1
  384. package/build-module/components/link-control/search-input.js +3 -1
  385. package/build-module/components/link-control/search-input.js.map +1 -1
  386. package/build-module/components/link-control/settings-drawer.js +2 -5
  387. package/build-module/components/link-control/settings-drawer.js.map +1 -1
  388. package/build-module/components/link-control/use-search-handler.js.map +1 -1
  389. package/build-module/components/list-view/block-contents.js.map +1 -1
  390. package/build-module/components/list-view/block-select-button.js +16 -8
  391. package/build-module/components/list-view/block-select-button.js.map +1 -1
  392. package/build-module/components/list-view/branch.js.map +1 -1
  393. package/build-module/components/list-view/drop-indicator.js +1 -1
  394. package/build-module/components/list-view/drop-indicator.js.map +1 -1
  395. package/build-module/components/list-view/index.js.map +1 -1
  396. package/build-module/components/list-view/use-block-selection.js.map +1 -1
  397. package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
  398. package/build-module/components/list-view/utils.js +1 -6
  399. package/build-module/components/list-view/utils.js.map +1 -1
  400. package/build-module/components/media-placeholder/index.js +16 -3
  401. package/build-module/components/media-placeholder/index.js.map +1 -1
  402. package/build-module/components/media-placeholder/index.native.js +5 -3
  403. package/build-module/components/media-placeholder/index.native.js.map +1 -1
  404. package/build-module/components/media-replace-flow/index.js +27 -18
  405. package/build-module/components/media-replace-flow/index.js.map +1 -1
  406. package/build-module/components/media-upload/index.native.js +1 -1
  407. package/build-module/components/media-upload/index.native.js.map +1 -1
  408. package/build-module/components/navigable-toolbar/index.js.map +1 -1
  409. package/build-module/components/plain-text/index.native.js.map +1 -1
  410. package/build-module/components/preview-options/index.js +4 -0
  411. package/build-module/components/preview-options/index.js.map +1 -1
  412. package/build-module/components/provider/use-block-sync.js +4 -1
  413. package/build-module/components/provider/use-block-sync.js.map +1 -1
  414. package/build-module/components/publish-date-time-picker/index.js +16 -16
  415. package/build-module/components/publish-date-time-picker/index.js.map +1 -1
  416. package/build-module/components/rich-text/embed-handler-picker.native.js +3 -5
  417. package/build-module/components/rich-text/embed-handler-picker.native.js.map +1 -1
  418. package/build-module/components/rich-text/index.js.map +1 -1
  419. package/build-module/components/rich-text/use-format-types.js.map +1 -1
  420. package/build-module/components/rich-text/use-input-rules.js +3 -11
  421. package/build-module/components/rich-text/use-input-rules.js.map +1 -1
  422. package/build-module/components/rich-text/use-mark-persistent.js.map +1 -1
  423. package/build-module/components/rich-text/use-paste-handler.js +20 -5
  424. package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
  425. package/build-module/components/skip-to-selected-block/index.js.map +1 -1
  426. package/build-module/components/ungroup-button/index.native.js +3 -5
  427. package/build-module/components/ungroup-button/index.native.js.map +1 -1
  428. package/build-module/components/url-input/index.js +11 -1
  429. package/build-module/components/url-input/index.js.map +1 -1
  430. package/build-module/components/url-popover/index.js +2 -1
  431. package/build-module/components/url-popover/index.js.map +1 -1
  432. package/build-module/components/use-block-display-information/index.js.map +1 -1
  433. package/build-module/components/use-block-drop-zone/index.js.map +1 -1
  434. package/build-module/components/use-block-drop-zone/index.native.js.map +1 -1
  435. package/build-module/components/use-display-block-controls/index.native.js.map +1 -1
  436. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  437. package/build-module/components/use-on-block-drop/index.native.js.map +1 -1
  438. package/build-module/components/use-setting/index.js.map +1 -1
  439. package/build-module/components/writing-flow/use-arrow-nav.js +47 -14
  440. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  441. package/build-module/components/writing-flow/use-click-selection.js.map +1 -1
  442. package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
  443. package/build-module/components/writing-flow/use-multi-selection.js +3 -45
  444. package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
  445. package/build-module/components/writing-flow/use-select-all.js.map +1 -1
  446. package/build-module/components/writing-flow/use-selection-observer.js +1 -3
  447. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
  448. package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
  449. package/build-module/elements/index.js +7 -1
  450. package/build-module/elements/index.js.map +1 -1
  451. package/build-module/hooks/aria-label.js +59 -0
  452. package/build-module/hooks/aria-label.js.map +1 -0
  453. package/build-module/hooks/color-panel.js.map +1 -1
  454. package/build-module/hooks/color-panel.native.js.map +1 -1
  455. package/build-module/hooks/color.js +2 -3
  456. package/build-module/hooks/color.js.map +1 -1
  457. package/build-module/hooks/duotone.js +22 -140
  458. package/build-module/hooks/duotone.js.map +1 -1
  459. package/build-module/hooks/font-family.js.map +1 -1
  460. package/build-module/hooks/gap.js.map +1 -1
  461. package/build-module/hooks/index.js +2 -1
  462. package/build-module/hooks/index.js.map +1 -1
  463. package/build-module/hooks/layout.js +76 -10
  464. package/build-module/hooks/layout.js.map +1 -1
  465. package/build-module/hooks/utils.js +5 -2
  466. package/build-module/hooks/utils.js.map +1 -1
  467. package/build-module/index.js +1 -1
  468. package/build-module/index.js.map +1 -1
  469. package/build-module/layouts/flex.js +43 -35
  470. package/build-module/layouts/flex.js.map +1 -1
  471. package/build-module/layouts/flow.js +11 -36
  472. package/build-module/layouts/flow.js.map +1 -1
  473. package/build-module/layouts/utils.js +33 -3
  474. package/build-module/layouts/utils.js.map +1 -1
  475. package/build-module/store/actions.js +14 -20
  476. package/build-module/store/actions.js.map +1 -1
  477. package/build-module/store/index.js +0 -4
  478. package/build-module/store/index.js.map +1 -1
  479. package/build-module/store/reducer.js +23 -11
  480. package/build-module/store/reducer.js.map +1 -1
  481. package/build-module/store/selectors.js +5 -5
  482. package/build-module/store/selectors.js.map +1 -1
  483. package/build-module/utils/pasting.js.map +1 -1
  484. package/build-module/utils/selection.js +24 -0
  485. package/build-module/utils/selection.js.map +1 -0
  486. package/build-module/utils/transform-styles/transforms/wrap.js.map +1 -1
  487. package/build-style/style-rtl.css +57 -34
  488. package/build-style/style.css +57 -34
  489. package/package.json +28 -28
  490. package/src/autocompleters/block.js +2 -1
  491. package/src/components/block-actions/index.js +2 -3
  492. package/src/components/block-alignment-control/ui.js +4 -6
  493. package/src/components/block-alignment-matrix-control/index.js +2 -4
  494. package/src/components/block-breadcrumb/index.js +2 -5
  495. package/src/components/block-compare/test/block-view.js +2 -1
  496. package/src/components/block-content-overlay/index.js +2 -5
  497. package/src/components/block-context/index.js +4 -4
  498. package/src/components/block-controls/hook.js +2 -3
  499. package/src/components/block-draggable/index.js +6 -13
  500. package/src/components/block-draggable/index.native.js +6 -14
  501. package/src/components/block-draggable/test/helpers.native.js +3 -3
  502. package/src/components/block-draggable/test/index.native.js +12 -15
  503. package/src/components/block-edit/test/edit.js +2 -1
  504. package/src/components/block-list/block-invalid-warning.native.js +42 -7
  505. package/src/components/block-list/block-list-item.native.js +4 -12
  506. package/src/components/block-list/block-selection-button.native.js +2 -3
  507. package/src/components/block-list/block.js +10 -12
  508. package/src/components/block-list/block.native.js +11 -15
  509. package/src/components/block-list/index.js +2 -3
  510. package/src/components/block-list/index.native.js +13 -22
  511. package/src/components/block-list/layout.js +15 -3
  512. package/src/components/block-list/style.scss +2 -2
  513. package/src/components/block-list/test/block-list-context.native.js +8 -16
  514. package/src/components/block-list/use-block-props/index.js +6 -3
  515. package/src/components/block-list/use-block-props/use-block-class-names.js +5 -1
  516. package/src/components/block-list/use-block-props/use-block-custom-class-name.js +2 -3
  517. package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +2 -3
  518. package/src/components/block-list/use-in-between-inserter.js +2 -3
  519. package/src/components/block-list-appender/index.js +2 -5
  520. package/src/components/block-list-appender/index.native.js +2 -3
  521. package/src/components/block-lock/modal.js +42 -4
  522. package/src/components/block-lock/style.scss +10 -0
  523. package/src/components/block-mobile-toolbar/block-actions-menu.native.js +4 -6
  524. package/src/components/block-mover/button.js +2 -3
  525. package/src/components/block-mover/index.native.js +4 -6
  526. package/src/components/block-parent-selector/index.js +2 -3
  527. package/src/components/block-pattern-setup/index.js +5 -27
  528. package/src/components/block-pattern-setup/setup-toolbar.js +2 -9
  529. package/src/components/block-pattern-setup/style.scss +4 -2
  530. package/src/components/block-popover/inbetween.js +1 -1
  531. package/src/components/block-popover/index.js +1 -1
  532. package/src/components/block-preview/auto.js +21 -11
  533. package/src/components/block-selection-clearer/index.js +2 -3
  534. package/src/components/block-settings-menu/block-edit-visually-button.js +52 -0
  535. package/src/components/block-settings-menu/block-mode-toggle.js +5 -8
  536. package/src/components/block-settings-menu/block-settings-dropdown.js +13 -9
  537. package/src/components/block-settings-menu/index.js +15 -11
  538. package/src/components/block-settings-menu-controls/index.js +3 -2
  539. package/src/components/block-styles/index.js +3 -1
  540. package/src/components/block-styles/menu-items.js +2 -5
  541. package/src/components/block-styles/preview.native.js +3 -2
  542. package/src/components/block-switcher/block-transformations-menu.js +2 -4
  543. package/src/components/block-switcher/index.js +7 -1
  544. package/src/components/block-title/index.js +3 -2
  545. package/src/components/block-title/use-block-display-title.js +20 -12
  546. package/src/components/block-toolbar/index.native.js +2 -5
  547. package/src/components/block-toolbar/utils.js +3 -11
  548. package/src/components/block-tools/block-contextual-toolbar.js +5 -6
  549. package/src/components/block-tools/index.js +2 -3
  550. package/src/components/block-types-list/index.native.js +2 -4
  551. package/src/components/block-variation-transforms/index.js +4 -6
  552. package/src/components/border-radius-control/index.js +2 -0
  553. package/src/components/color-palette/test/control.js +2 -1
  554. package/src/components/color-style-selector/index.js +27 -28
  555. package/src/components/colors/test/with-colors.js +14 -14
  556. package/src/components/colors/with-colors.js +10 -14
  557. package/src/components/colors-gradients/control.js +77 -65
  558. package/src/components/colors-gradients/dropdown.js +22 -16
  559. package/src/components/colors-gradients/style.scss +4 -0
  560. package/src/components/colors-gradients/test/control.js +25 -32
  561. package/src/components/convert-to-group-buttons/toolbar.js +2 -6
  562. package/src/components/copy-handler/README.md +7 -2
  563. package/src/components/copy-handler/index.js +26 -6
  564. package/src/components/date-format-picker/index.js +1 -0
  565. package/src/components/default-block-appender/index.js +4 -6
  566. package/src/components/default-block-appender/index.native.js +4 -9
  567. package/src/components/default-style-picker/index.js +20 -21
  568. package/src/components/duotone/components.js +133 -0
  569. package/src/components/duotone/index.js +7 -0
  570. package/src/components/duotone/utils.js +25 -0
  571. package/src/components/duotone-control/index.js +12 -7
  572. package/src/components/duotone-control/style.scss +5 -0
  573. package/src/components/font-sizes/with-font-sizes.js +2 -3
  574. package/src/components/iframe/index.js +25 -6
  575. package/src/components/image-editor/aspect-ratio-dropdown.js +2 -6
  576. package/src/components/image-size-control/index.js +4 -7
  577. package/src/components/index.js +3 -0
  578. package/src/components/inner-blocks/use-inner-block-template-sync.js +2 -3
  579. package/src/components/inner-blocks/use-nested-settings-update.js +6 -9
  580. package/src/components/inserter/block-types-tab.native.js +2 -3
  581. package/src/components/inserter/hooks/use-block-type-impressions.native.js +2 -3
  582. package/src/components/inserter/hooks/use-insertion-point.js +3 -2
  583. package/src/components/inserter/hooks/use-patterns-state.js +4 -5
  584. package/src/components/inserter/index.js +7 -11
  585. package/src/components/inserter/index.native.js +6 -11
  586. package/src/components/inserter/library.js +2 -5
  587. package/src/components/inserter/menu.js +14 -19
  588. package/src/components/inserter/menu.native.js +8 -6
  589. package/src/components/inserter/no-results.native.js +2 -1
  590. package/src/components/inserter/quick-inserter.js +2 -3
  591. package/src/components/inserter/search-items.js +6 -6
  592. package/src/components/inserter/search-results.native.js +4 -6
  593. package/src/components/inserter/style.scss +1 -1
  594. package/src/components/inspector-popover-header/README.md +76 -0
  595. package/src/components/inspector-popover-header/index.js +56 -0
  596. package/src/components/inspector-popover-header/style.scss +16 -0
  597. package/src/components/line-height-control/index.js +1 -2
  598. package/src/components/link-control/index.js +5 -4
  599. package/src/components/link-control/search-create-button.js +4 -2
  600. package/src/components/link-control/search-input.js +3 -1
  601. package/src/components/link-control/settings-drawer.js +2 -5
  602. package/src/components/link-control/test/fixtures/index.js +5 -7
  603. package/src/components/link-control/test/index.js +85 -106
  604. package/src/components/link-control/use-search-handler.js +2 -2
  605. package/src/components/list-view/block-contents.js +2 -4
  606. package/src/components/list-view/block-select-button.js +29 -14
  607. package/src/components/list-view/branch.js +22 -23
  608. package/src/components/list-view/drop-indicator.js +1 -1
  609. package/src/components/list-view/index.js +4 -8
  610. package/src/components/list-view/style.scss +18 -4
  611. package/src/components/list-view/use-block-selection.js +5 -5
  612. package/src/components/list-view/use-list-view-drop-zone.js +2 -1
  613. package/src/components/list-view/utils.js +1 -6
  614. package/src/components/media-placeholder/index.js +22 -1
  615. package/src/components/media-placeholder/index.native.js +9 -5
  616. package/src/components/media-replace-flow/index.js +78 -56
  617. package/src/components/media-replace-flow/test/index.js +14 -4
  618. package/src/components/media-upload/README.md +8 -0
  619. package/src/components/media-upload/index.native.js +1 -1
  620. package/src/components/navigable-toolbar/index.js +1 -2
  621. package/src/components/panel-color-settings/test/index.js +2 -1
  622. package/src/components/plain-text/index.native.js +2 -6
  623. package/src/components/preview-options/index.js +4 -0
  624. package/src/components/provider/use-block-sync.js +5 -2
  625. package/src/components/publish-date-time-picker/README.md +1 -1
  626. package/src/components/publish-date-time-picker/index.js +18 -27
  627. package/src/components/responsive-block-control/README.md +3 -1
  628. package/src/components/responsive-block-control/test/index.js +4 -4
  629. package/src/components/rich-text/embed-handler-picker.native.js +2 -5
  630. package/src/components/rich-text/index.js +7 -4
  631. package/src/components/rich-text/use-format-types.js +16 -16
  632. package/src/components/rich-text/use-input-rules.js +6 -15
  633. package/src/components/rich-text/use-mark-persistent.js +2 -3
  634. package/src/components/rich-text/use-paste-handler.js +17 -5
  635. package/src/components/skip-to-selected-block/index.js +2 -3
  636. package/src/components/ungroup-button/index.native.js +4 -8
  637. package/src/components/url-input/index.js +21 -20
  638. package/src/components/url-popover/index.js +1 -0
  639. package/src/components/url-popover/test/__snapshots__/index.js.snap +3 -0
  640. package/src/components/use-block-display-information/index.js +4 -6
  641. package/src/components/use-block-drop-zone/index.js +2 -3
  642. package/src/components/use-block-drop-zone/index.native.js +2 -4
  643. package/src/components/use-block-drop-zone/test/index.js +22 -23
  644. package/src/components/use-display-block-controls/index.native.js +2 -3
  645. package/src/components/use-no-recursive-renders/test/use-no-recursive-renders.js +2 -3
  646. package/src/components/use-on-block-drop/index.js +2 -5
  647. package/src/components/use-on-block-drop/index.native.js +4 -8
  648. package/src/components/use-setting/index.js +8 -6
  649. package/src/components/writing-flow/test/index.js +22 -4
  650. package/src/components/writing-flow/use-arrow-nav.js +54 -11
  651. package/src/components/writing-flow/use-click-selection.js +2 -5
  652. package/src/components/writing-flow/use-drag-selection.js +6 -9
  653. package/src/components/writing-flow/use-multi-selection.js +1 -50
  654. package/src/components/writing-flow/use-select-all.js +2 -5
  655. package/src/components/writing-flow/use-selection-observer.js +6 -9
  656. package/src/components/writing-flow/use-tab-nav.js +2 -5
  657. package/src/elements/index.js +8 -1
  658. package/src/elements/test/index.js +18 -0
  659. package/src/hooks/aria-label.js +67 -0
  660. package/src/hooks/color-panel.js +4 -4
  661. package/src/hooks/color-panel.native.js +2 -2
  662. package/src/hooks/color.js +12 -5
  663. package/src/hooks/duotone.js +18 -139
  664. package/src/hooks/font-family.js +4 -2
  665. package/src/hooks/gap.js +2 -3
  666. package/src/hooks/index.js +2 -1
  667. package/src/hooks/layout.js +102 -15
  668. package/src/hooks/test/align.js +2 -1
  669. package/src/hooks/test/generated-class-name.js +2 -5
  670. package/src/hooks/test/utils.js +2 -5
  671. package/src/hooks/utils.js +7 -3
  672. package/src/index.js +1 -1
  673. package/src/layouts/flex.js +49 -43
  674. package/src/layouts/flow.js +14 -35
  675. package/src/layouts/test/flex.js +21 -0
  676. package/src/layouts/test/flow.js +21 -0
  677. package/src/layouts/test/utils.js +138 -0
  678. package/src/layouts/utils.js +44 -3
  679. package/src/store/actions.js +763 -733
  680. package/src/store/index.js +0 -4
  681. package/src/store/reducer.js +208 -184
  682. package/src/store/selectors.js +57 -58
  683. package/src/store/test/actions.js +2 -1
  684. package/src/store/test/reducer.js +140 -10
  685. package/src/store/test/selectors.js +20 -27
  686. package/src/style.scss +1 -1
  687. package/src/utils/pasting.js +3 -3
  688. package/src/utils/selection.js +26 -0
  689. package/src/utils/test/selection.js +39 -0
  690. package/src/utils/transform-styles/transforms/wrap.js +30 -28
  691. package/tsconfig.json +2 -1
  692. package/tsconfig.tsbuildinfo +1 -1
  693. package/src/components/publish-date-time-picker/style.scss +0 -20
@@ -0,0 +1,56 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import {
5
+ __experimentalVStack as VStack,
6
+ __experimentalHStack as HStack,
7
+ __experimentalHeading as Heading,
8
+ __experimentalSpacer as Spacer,
9
+ Button,
10
+ __experimentalText as Text,
11
+ } from '@wordpress/components';
12
+ import { closeSmall } from '@wordpress/icons';
13
+ import { __ } from '@wordpress/i18n';
14
+
15
+ export default function InspectorPopoverHeader( {
16
+ title,
17
+ help,
18
+ actions = [],
19
+ onClose,
20
+ } ) {
21
+ return (
22
+ <VStack className="block-editor-inspector-popover-header" spacing={ 4 }>
23
+ <HStack alignment="center">
24
+ <Heading
25
+ className="block-editor-inspector-popover-header__heading"
26
+ level={ 2 }
27
+ size={ 13 }
28
+ >
29
+ { title }
30
+ </Heading>
31
+ <Spacer />
32
+ { actions.map( ( { label, icon, onClick } ) => (
33
+ <Button
34
+ key={ label }
35
+ className="block-editor-inspector-popover-header__action"
36
+ label={ label }
37
+ icon={ icon }
38
+ variant={ ! icon && 'tertiary' }
39
+ onClick={ onClick }
40
+ >
41
+ { ! icon && label }
42
+ </Button>
43
+ ) ) }
44
+ { onClose && (
45
+ <Button
46
+ className="block-editor-inspector-popover-header__action"
47
+ label={ __( 'Close' ) }
48
+ icon={ closeSmall }
49
+ onClick={ onClose }
50
+ />
51
+ ) }
52
+ </HStack>
53
+ { help && <Text>{ help }</Text> }
54
+ </VStack>
55
+ );
56
+ }
@@ -0,0 +1,16 @@
1
+ .block-editor-inspector-popover-header {
2
+ margin-bottom: $grid-unit-20;
3
+ }
4
+
5
+ [class].block-editor-inspector-popover-header__action {
6
+ height: $icon-size;
7
+
8
+ &.has-icon {
9
+ min-width: $icon-size;
10
+ padding: 0;
11
+ }
12
+
13
+ &:not(.has-icon) {
14
+ text-decoration: underline;
15
+ }
16
+ }
@@ -75,8 +75,7 @@ const LineHeightControl = ( {
75
75
  {
76
76
  since: '6.0',
77
77
  version: '6.4',
78
- hint:
79
- 'Set the `__nextHasNoMarginBottom` prop to true to start opting into the new styles, which will become the default in a future version',
78
+ hint: 'Set the `__nextHasNoMarginBottom` prop to true to start opting into the new styles, which will become the default in a future version',
80
79
  }
81
80
  );
82
81
  }
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { noop } from 'lodash';
5
4
  import classnames from 'classnames';
6
5
 
7
6
  /**
@@ -97,6 +96,8 @@ import { DEFAULT_LINK_SETTINGS } from './constants';
97
96
  * @property {Function} renderControlBottom Optional controls to be rendered at the bottom of the component.
98
97
  */
99
98
 
99
+ const noop = () => {};
100
+
100
101
  /**
101
102
  * Renders a link control. A link control is a controlled input which maintains
102
103
  * a value associated with a link (HTML anchor element) and relevant settings
@@ -148,9 +149,8 @@ function LinkControl( {
148
149
 
149
150
  const currentInputIsEmpty = ! currentInputValue?.trim()?.length;
150
151
 
151
- const { createPage, isCreatingPage, errorMessage } = useCreatePage(
152
- createSuggestion
153
- );
152
+ const { createPage, isCreatingPage, errorMessage } =
153
+ useCreatePage( createSuggestion );
154
154
 
155
155
  useEffect( () => {
156
156
  if (
@@ -235,6 +235,7 @@ function LinkControl( {
235
235
  internalTextValue !== value?.title
236
236
  ) {
237
237
  onChange( {
238
+ ...value,
238
239
  url: currentInputValue,
239
240
  title: internalTextValue,
240
241
  } );
@@ -2,7 +2,6 @@
2
2
  * External dependencies
3
3
  */
4
4
  import classnames from 'classnames';
5
- import { isFunction } from 'lodash';
6
5
 
7
6
  /**
8
7
  * WordPress dependencies
@@ -25,7 +24,10 @@ export const LinkControlSearchCreate = ( {
25
24
 
26
25
  let text;
27
26
  if ( buttonText ) {
28
- text = isFunction( buttonText ) ? buttonText( searchTerm ) : buttonText;
27
+ text =
28
+ typeof buttonText === 'function'
29
+ ? buttonText( searchTerm )
30
+ : buttonText;
29
31
  } else {
30
32
  text = createInterpolateElement(
31
33
  sprintf(
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { noop, omit } from 'lodash';
4
+ import { omit } from 'lodash';
5
5
  import classnames from 'classnames';
6
6
  /**
7
7
  * WordPress dependencies
@@ -23,6 +23,8 @@ import useSearchHandler from './use-search-handler';
23
23
  // which will cause an unintended http request.
24
24
  const noopSearchHandler = () => Promise.resolve( [] );
25
25
 
26
+ const noop = () => {};
27
+
26
28
  const LinkControlSearchInput = forwardRef(
27
29
  (
28
30
  {
@@ -1,14 +1,11 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { noop } from 'lodash';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
9
4
  import { __ } from '@wordpress/i18n';
10
5
  import { ToggleControl, VisuallyHidden } from '@wordpress/components';
11
6
 
7
+ const noop = () => {};
8
+
12
9
  const LinkControlSettingsDrawer = ( { value, onChange = noop, settings } ) => {
13
10
  if ( ! settings || ! settings.length ) {
14
11
  return null;
@@ -1,7 +1,6 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { uniqueId, take } from 'lodash';
1
+ let uniqueIdCounter = 1;
2
+
3
+ export const uniqueId = () => uniqueIdCounter++;
5
4
 
6
5
  export const fauxEntitySuggestions = [
7
6
  {
@@ -27,8 +26,7 @@ export const fauxEntitySuggestions = [
27
26
  },
28
27
  {
29
28
  id: uniqueId(),
30
- title:
31
- 'This is another Post with a much longer title just to be really annoying and to try and break the UI',
29
+ title: 'This is another Post with a much longer title just to be really annoying and to try and break the UI',
32
30
  type: 'post',
33
31
  info: '1 month ago',
34
32
  url: `?p=${ uniqueId() }`,
@@ -41,7 +39,7 @@ export const fetchFauxEntitySuggestions = (
41
39
  { isInitialSuggestions } = {}
42
40
  ) => {
43
41
  const suggestions = isInitialSuggestions
44
- ? take( fauxEntitySuggestions, 3 )
42
+ ? fauxEntitySuggestions.slice( 0, 3 )
45
43
  : fauxEntitySuggestions;
46
44
  return Promise.resolve( suggestions );
47
45
  };
@@ -4,7 +4,6 @@
4
4
  import { render, unmountComponentAtNode } from 'react-dom';
5
5
  import { act, Simulate } from 'react-dom/test-utils';
6
6
  import { queryByText, queryByRole } from '@testing-library/react';
7
- import { default as lodash, first, last, nth, uniqueId } from 'lodash';
8
7
  /**
9
8
  * WordPress dependencies
10
9
  */
@@ -18,13 +17,20 @@ import { useSelect } from '@wordpress/data';
18
17
  * Internal dependencies
19
18
  */
20
19
  import LinkControl from '../';
21
- import { fauxEntitySuggestions, fetchFauxEntitySuggestions } from './fixtures';
20
+ import {
21
+ fauxEntitySuggestions,
22
+ fetchFauxEntitySuggestions,
23
+ uniqueId,
24
+ } from './fixtures';
22
25
 
23
26
  // Mock debounce() so that it runs instantly.
24
- lodash.debounce = jest.fn( ( callback ) => {
25
- callback.cancel = jest.fn();
26
- return callback;
27
- } );
27
+ jest.mock( 'lodash', () => ( {
28
+ ...jest.requireActual( 'lodash' ),
29
+ debounce: ( fn ) => {
30
+ fn.cancel = jest.fn();
31
+ return fn;
32
+ },
33
+ } ) );
28
34
 
29
35
  const mockFetchSearchSuggestions = jest.fn();
30
36
 
@@ -357,7 +363,7 @@ describe( 'Searching for a link', () => {
357
363
 
358
364
  it( 'should display only search suggestions when current input value is not URL-like', async () => {
359
365
  const searchTerm = 'Hello world';
360
- const firstFauxSuggestion = first( fauxEntitySuggestions );
366
+ const firstFauxSuggestion = fauxEntitySuggestions[ 0 ];
361
367
 
362
368
  act( () => {
363
369
  render( <LinkControl />, container );
@@ -377,9 +383,9 @@ describe( 'Searching for a link', () => {
377
383
 
378
384
  const searchResultElements = getSearchResults();
379
385
 
380
- const firstSearchResultItemHTML = first( searchResultElements )
381
- .innerHTML;
382
- const lastSearchResultItemHTML = last( searchResultElements ).innerHTML;
386
+ const firstSearchResultItemHTML = searchResultElements[ 0 ].innerHTML;
387
+ const lastSearchResultItemHTML =
388
+ searchResultElements[ searchResultElements.length - 1 ].innerHTML;
383
389
 
384
390
  expect( searchResultElements ).toHaveLength(
385
391
  fauxEntitySuggestions.length
@@ -501,8 +507,9 @@ describe( 'Searching for a link', () => {
501
507
 
502
508
  const searchResultElements = getSearchResults();
503
509
 
504
- const lastSearchResultItemHTML = last( searchResultElements )
505
- .innerHTML;
510
+ const lastSearchResultItemHTML =
511
+ searchResultElements[ searchResultElements.length - 1 ]
512
+ .innerHTML;
506
513
  const additionalDefaultFallbackURLSuggestionLength = 1;
507
514
 
508
515
  // We should see a search result for each of the expect search suggestions
@@ -758,12 +765,10 @@ describe( 'Default search suggestions', () => {
758
765
  // Search Input UI.
759
766
  const searchInput = getURLInput();
760
767
 
761
- const searchResultsWrapper = container.querySelector(
762
- '[role="listbox"]'
763
- );
764
- const initialSearchResultElements = searchResultsWrapper.querySelectorAll(
765
- '[role="option"]'
766
- );
768
+ const searchResultsWrapper =
769
+ container.querySelector( '[role="listbox"]' );
770
+ const initialSearchResultElements =
771
+ searchResultsWrapper.querySelectorAll( '[role="option"]' );
767
772
 
768
773
  const searchResultsLabel = container.querySelector(
769
774
  `#${ searchResultsWrapper.getAttribute( 'aria-labelledby' ) }`
@@ -976,11 +981,9 @@ describe( 'Creating Entities (eg: Posts, Pages)', () => {
976
981
  '[role="listbox"] [role="option"]'
977
982
  );
978
983
 
979
- const createButton = first(
980
- Array.from( searchResultElements ).filter( ( result ) =>
981
- result.innerHTML.includes( 'Create:' )
982
- )
983
- );
984
+ const createButton = Array.from( searchResultElements ).filter(
985
+ ( result ) => result.innerHTML.includes( 'Create:' )
986
+ )[ 0 ];
984
987
 
985
988
  expect( createButton ).not.toBeNull();
986
989
  expect( createButton.innerHTML ).toEqual(
@@ -1073,11 +1076,9 @@ describe( 'Creating Entities (eg: Posts, Pages)', () => {
1073
1076
  '[role="listbox"] [role="option"]'
1074
1077
  );
1075
1078
 
1076
- const createButton = first(
1077
- Array.from( searchResultElements ).filter( ( result ) =>
1078
- result.innerHTML.includes( 'Create:' )
1079
- )
1080
- );
1079
+ const createButton = Array.from( searchResultElements ).filter(
1080
+ ( result ) => result.innerHTML.includes( 'Create:' )
1081
+ )[ 0 ];
1081
1082
 
1082
1083
  await act( async () => {
1083
1084
  Simulate.click( createButton );
@@ -1145,11 +1146,9 @@ describe( 'Creating Entities (eg: Posts, Pages)', () => {
1145
1146
  const searchResultElements = container.querySelectorAll(
1146
1147
  '[role="listbox"] [role="option"]'
1147
1148
  );
1148
- const createButton = first(
1149
- Array.from( searchResultElements ).filter( ( result ) =>
1150
- result.innerHTML.includes( 'Create:' )
1151
- )
1152
- );
1149
+ const createButton = Array.from( searchResultElements ).filter(
1150
+ ( result ) => result.innerHTML.includes( 'Create:' )
1151
+ )[ 0 ];
1153
1152
 
1154
1153
  // Step down into the search results, highlighting the first result item.
1155
1154
  act( () => {
@@ -1212,11 +1211,9 @@ describe( 'Creating Entities (eg: Posts, Pages)', () => {
1212
1211
  '[role="listbox"] [role="option"]'
1213
1212
  );
1214
1213
 
1215
- const createButton = first(
1216
- Array.from( searchResultElements ).filter( ( result ) =>
1217
- result.innerHTML.includes( 'Custom suggestion text' )
1218
- )
1219
- );
1214
+ const createButton = Array.from( searchResultElements ).filter(
1215
+ ( result ) => result.innerHTML.includes( 'Custom suggestion text' )
1216
+ )[ 0 ];
1220
1217
 
1221
1218
  expect( createButton ).not.toBeNull();
1222
1219
  } );
@@ -1243,11 +1240,9 @@ describe( 'Creating Entities (eg: Posts, Pages)', () => {
1243
1240
  const searchResultElements = container.querySelectorAll(
1244
1241
  '[role="listbox"] [role="option"]'
1245
1242
  );
1246
- const createButton = first(
1247
- Array.from( searchResultElements ).filter( ( result ) =>
1248
- result.innerHTML.includes( 'Create:' )
1249
- )
1250
- );
1243
+ const createButton = Array.from( searchResultElements ).filter(
1244
+ ( result ) => result.innerHTML.includes( 'Create:' )
1245
+ )[ 0 ];
1251
1246
 
1252
1247
  // Verify input has no value.
1253
1248
  expect( searchInput.value ).toBe( '' );
@@ -1277,11 +1272,9 @@ describe( 'Creating Entities (eg: Posts, Pages)', () => {
1277
1272
  const searchResultElements = container.querySelectorAll(
1278
1273
  '[role="listbox"] [role="option"]'
1279
1274
  );
1280
- const createButton = first(
1281
- Array.from( searchResultElements ).filter( ( result ) =>
1282
- result.innerHTML.includes( 'New page' )
1283
- )
1284
- );
1275
+ const createButton = Array.from( searchResultElements ).filter(
1276
+ ( result ) => result.innerHTML.includes( 'New page' )
1277
+ )[ 0 ];
1285
1278
 
1286
1279
  // Verify input has no value.
1287
1280
  expect( searchInput.value ).toBe( '' );
@@ -1323,11 +1316,9 @@ describe( 'Creating Entities (eg: Posts, Pages)', () => {
1323
1316
  '[role="listbox"] [role="option"]'
1324
1317
  );
1325
1318
 
1326
- const createButton = first(
1327
- Array.from( searchResultElements ).filter( ( result ) =>
1328
- result.innerHTML.includes( 'New page' )
1329
- )
1330
- );
1319
+ const createButton = Array.from( searchResultElements ).filter(
1320
+ ( result ) => result.innerHTML.includes( 'New page' )
1321
+ )[ 0 ];
1331
1322
 
1332
1323
  expect( createButton ).toBeFalsy(); // Shouldn't exist!
1333
1324
  }
@@ -1368,11 +1359,9 @@ describe( 'Creating Entities (eg: Posts, Pages)', () => {
1368
1359
  let searchResultElements = container.querySelectorAll(
1369
1360
  '[role="listbox"] [role="option"]'
1370
1361
  );
1371
- let createButton = first(
1372
- Array.from( searchResultElements ).filter( ( result ) =>
1373
- result.innerHTML.includes( 'Create:' )
1374
- )
1375
- );
1362
+ let createButton = Array.from( searchResultElements ).filter(
1363
+ ( result ) => result.innerHTML.includes( 'Create:' )
1364
+ )[ 0 ];
1376
1365
 
1377
1366
  await act( async () => {
1378
1367
  Simulate.click( createButton );
@@ -1409,18 +1398,16 @@ describe( 'Creating Entities (eg: Posts, Pages)', () => {
1409
1398
  searchResultElements = container.querySelectorAll(
1410
1399
  '[role="listbox"] [role="option"]'
1411
1400
  );
1412
- createButton = first(
1413
- Array.from( searchResultElements ).filter( ( result ) =>
1414
- result.innerHTML.includes( 'New page' )
1415
- )
1416
- );
1401
+ createButton = Array.from( searchResultElements ).filter(
1402
+ ( result ) => result.innerHTML.includes( 'New page' )
1403
+ )[ 0 ];
1417
1404
  } );
1418
1405
  } );
1419
1406
  } );
1420
1407
 
1421
1408
  describe( 'Selecting links', () => {
1422
1409
  it( 'should display a selected link corresponding to the provided "currentLink" prop', () => {
1423
- const selectedLink = first( fauxEntitySuggestions );
1410
+ const selectedLink = fauxEntitySuggestions[ 0 ];
1424
1411
 
1425
1412
  const LinkControlConsumer = () => {
1426
1413
  const [ link ] = useState( selectedLink );
@@ -1449,7 +1436,7 @@ describe( 'Selecting links', () => {
1449
1436
  } );
1450
1437
 
1451
1438
  it( 'should hide "selected" link UI and display search UI prepopulated with previously selected link title when "Change" button is clicked', () => {
1452
- const selectedLink = first( fauxEntitySuggestions );
1439
+ const selectedLink = fauxEntitySuggestions[ 0 ];
1453
1440
 
1454
1441
  const LinkControlConsumer = () => {
1455
1442
  const [ link, setLink ] = useState( selectedLink );
@@ -1486,7 +1473,7 @@ describe( 'Selecting links', () => {
1486
1473
 
1487
1474
  describe( 'Selection using mouse click', () => {
1488
1475
  it.each( [
1489
- [ 'entity', 'hello world', first( fauxEntitySuggestions ) ], // Entity search.
1476
+ [ 'entity', 'hello world', fauxEntitySuggestions[ 0 ] ], // Entity search.
1490
1477
  [
1491
1478
  'url',
1492
1479
  'https://www.wordpress.org',
@@ -1530,7 +1517,7 @@ describe( 'Selecting links', () => {
1530
1517
 
1531
1518
  const searchResultElements = getSearchResults();
1532
1519
 
1533
- const firstSearchSuggestion = first( searchResultElements );
1520
+ const firstSearchSuggestion = searchResultElements[ 0 ];
1534
1521
 
1535
1522
  // Simulate selecting the first of the search suggestions.
1536
1523
  act( () => {
@@ -1559,7 +1546,7 @@ describe( 'Selecting links', () => {
1559
1546
 
1560
1547
  describe( 'Selection using keyboard', () => {
1561
1548
  it.each( [
1562
- [ 'entity', 'hello world', first( fauxEntitySuggestions ) ], // Entity search.
1549
+ [ 'entity', 'hello world', fauxEntitySuggestions[ 0 ] ], // Entity search.
1563
1550
  [
1564
1551
  'url',
1565
1552
  'https://www.wordpress.org',
@@ -1609,8 +1596,8 @@ describe( 'Selecting links', () => {
1609
1596
 
1610
1597
  const searchResultElements = getSearchResults();
1611
1598
 
1612
- const firstSearchSuggestion = first( searchResultElements );
1613
- const secondSearchSuggestion = nth( searchResultElements, 1 );
1599
+ const firstSearchSuggestion = searchResultElements[ 0 ];
1600
+ const secondSearchSuggestion = searchResultElements[ 1 ];
1614
1601
 
1615
1602
  let selectedSearchResultElement = container.querySelector(
1616
1603
  '[role="option"][aria-selected="true"]'
@@ -1690,9 +1677,8 @@ describe( 'Selecting links', () => {
1690
1677
 
1691
1678
  await eventLoopTick();
1692
1679
 
1693
- const searchResultsWrapper = container.querySelector(
1694
- '[role="listbox"]'
1695
- );
1680
+ const searchResultsWrapper =
1681
+ container.querySelector( '[role="listbox"]' );
1696
1682
 
1697
1683
  const searchResultsLabel = container.querySelector(
1698
1684
  `#${ searchResultsWrapper.getAttribute( 'aria-labelledby' ) }`
@@ -1714,8 +1700,8 @@ describe( 'Selecting links', () => {
1714
1700
 
1715
1701
  const searchResultElements = getSearchResults();
1716
1702
 
1717
- const firstSearchSuggestion = first( searchResultElements );
1718
- const secondSearchSuggestion = nth( searchResultElements, 1 );
1703
+ const firstSearchSuggestion = searchResultElements[ 0 ];
1704
+ const secondSearchSuggestion = searchResultElements[ 1 ];
1719
1705
 
1720
1706
  let selectedSearchResultElement = container.querySelector(
1721
1707
  '[role="option"][aria-selected="true"]'
@@ -1761,7 +1747,7 @@ describe( 'Selecting links', () => {
1761
1747
 
1762
1748
  describe( 'Addition Settings UI', () => {
1763
1749
  it( 'should display "New Tab" setting (in "off" mode) by default when a link is selected', async () => {
1764
- const selectedLink = first( fauxEntitySuggestions );
1750
+ const selectedLink = fauxEntitySuggestions[ 0 ];
1765
1751
  const expectedSettingText = 'Open in new tab';
1766
1752
 
1767
1753
  const LinkControlConsumer = () => {
@@ -1784,9 +1770,8 @@ describe( 'Addition Settings UI', () => {
1784
1770
 
1785
1771
  expect( newTabSettingLabel ).not.toBeUndefined(); // find() returns "undefined" if not found.
1786
1772
 
1787
- const newTabSettingLabelForAttr = newTabSettingLabel.getAttribute(
1788
- 'for'
1789
- );
1773
+ const newTabSettingLabelForAttr =
1774
+ newTabSettingLabel.getAttribute( 'for' );
1790
1775
  const newTabSettingInput = container.querySelector(
1791
1776
  `#${ newTabSettingLabelForAttr }`
1792
1777
  );
@@ -1795,7 +1780,7 @@ describe( 'Addition Settings UI', () => {
1795
1780
  } );
1796
1781
 
1797
1782
  it( 'should display a setting control with correct default state for each of the custom settings provided', async () => {
1798
- const selectedLink = first( fauxEntitySuggestions );
1783
+ const selectedLink = fauxEntitySuggestions[ 0 ];
1799
1784
 
1800
1785
  const customSettings = [
1801
1786
  {
@@ -1951,8 +1936,7 @@ describe( 'Rich link previews', () => {
1951
1936
  it( 'should not fetch or display rich previews by default', async () => {
1952
1937
  mockFetchRichUrlData.mockImplementation( () =>
1953
1938
  Promise.resolve( {
1954
- title:
1955
- 'Blog Tool, Publishing Platform, and CMS \u2014 WordPress.org',
1939
+ title: 'Blog Tool, Publishing Platform, and CMS \u2014 WordPress.org',
1956
1940
  icon: 'https://s.w.org/favicon.ico?2',
1957
1941
  description:
1958
1942
  'Open source software which you can use to easily create a beautiful website, blog, or app.',
@@ -1982,8 +1966,7 @@ describe( 'Rich link previews', () => {
1982
1966
  it( 'should display a rich preview when data is available', async () => {
1983
1967
  mockFetchRichUrlData.mockImplementation( () =>
1984
1968
  Promise.resolve( {
1985
- title:
1986
- 'Blog Tool, Publishing Platform, and CMS \u2014 WordPress.org',
1969
+ title: 'Blog Tool, Publishing Platform, and CMS \u2014 WordPress.org',
1987
1970
  icon: 'https://s.w.org/favicon.ico?2',
1988
1971
  description:
1989
1972
  'Open source software which you can use to easily create a beautiful website, blog, or app.',
@@ -2093,8 +2076,7 @@ describe( 'Rich link previews', () => {
2093
2076
  it( 'should display a fallback when icon is missing from rich data', async () => {
2094
2077
  mockFetchRichUrlData.mockImplementation( () =>
2095
2078
  Promise.resolve( {
2096
- title:
2097
- 'Blog Tool, Publishing Platform, and CMS \u2014 WordPress.org',
2079
+ title: 'Blog Tool, Publishing Platform, and CMS \u2014 WordPress.org',
2098
2080
  description:
2099
2081
  'Open source software which you can use to easily create a beautiful website, blog, or app.',
2100
2082
  image: 'https://s.w.org/images/home/screen-themes.png?3',
@@ -2136,8 +2118,7 @@ describe( 'Rich link previews', () => {
2136
2118
  async ( dataItem ) => {
2137
2119
  mockFetchRichUrlData.mockImplementation( () => {
2138
2120
  const data = {
2139
- title:
2140
- 'Blog Tool, Publishing Platform, and CMS \u2014 WordPress.org',
2121
+ title: 'Blog Tool, Publishing Platform, and CMS \u2014 WordPress.org',
2141
2122
  icon: 'https://s.w.org/favicon.ico?2',
2142
2123
  description:
2143
2124
  'Open source software which you can use to easily create a beautiful website, blog, or app.',
@@ -2163,9 +2144,8 @@ describe( 'Rich link previews', () => {
2163
2144
  "[aria-label='Currently selected']"
2164
2145
  );
2165
2146
 
2166
- const isRichLinkPreview = linkPreview.classList.contains(
2167
- 'is-rich'
2168
- );
2147
+ const isRichLinkPreview =
2148
+ linkPreview.classList.contains( 'is-rich' );
2169
2149
  expect( isRichLinkPreview ).toBe( true );
2170
2150
 
2171
2151
  const missingDataItem = linkPreview.querySelector(
@@ -2202,9 +2182,8 @@ describe( 'Rich link previews', () => {
2202
2182
  "[aria-label='Currently selected']"
2203
2183
  );
2204
2184
 
2205
- const isRichLinkPreview = linkPreview.classList.contains(
2206
- 'is-rich'
2207
- );
2185
+ const isRichLinkPreview =
2186
+ linkPreview.classList.contains( 'is-rich' );
2208
2187
 
2209
2188
  expect( isRichLinkPreview ).toBe( false );
2210
2189
  }
@@ -2231,9 +2210,8 @@ describe( 'Rich link previews', () => {
2231
2210
  "[aria-label='Currently selected']"
2232
2211
  );
2233
2212
 
2234
- const isFetchingRichPreview = linkPreview.classList.contains(
2235
- 'is-fetching'
2236
- );
2213
+ const isFetchingRichPreview =
2214
+ linkPreview.classList.contains( 'is-fetching' );
2237
2215
  const isRichLinkPreview = linkPreview.classList.contains( 'is-rich' );
2238
2216
 
2239
2217
  expect( isFetchingRichPreview ).toBe( true );
@@ -2261,9 +2239,8 @@ describe( 'Rich link previews', () => {
2261
2239
  "[aria-label='Currently selected']"
2262
2240
  );
2263
2241
 
2264
- const isFetchingRichPreview = linkPreview.classList.contains(
2265
- 'is-fetching'
2266
- );
2242
+ const isFetchingRichPreview =
2243
+ linkPreview.classList.contains( 'is-fetching' );
2267
2244
 
2268
2245
  const isRichLinkPreview = linkPreview.classList.contains( 'is-rich' );
2269
2246
 
@@ -2278,7 +2255,7 @@ describe( 'Rich link previews', () => {
2278
2255
  } );
2279
2256
 
2280
2257
  describe( 'Controlling link title text', () => {
2281
- const selectedLink = first( fauxEntitySuggestions );
2258
+ const selectedLink = fauxEntitySuggestions[ 0 ];
2282
2259
 
2283
2260
  it( 'should not show a means to alter the link title text by default', async () => {
2284
2261
  act( () => {
@@ -2297,7 +2274,7 @@ describe( 'Controlling link title text', () => {
2297
2274
  'should not show the link title text input when the URL is `%s`',
2298
2275
  async ( urlValue ) => {
2299
2276
  const selectedLinkWithoutURL = {
2300
- ...first( fauxEntitySuggestions ),
2277
+ ...fauxEntitySuggestions[ 0 ],
2301
2278
  url: urlValue,
2302
2279
  };
2303
2280
 
@@ -2440,10 +2417,12 @@ describe( 'Controlling link title text', () => {
2440
2417
  Simulate.keyDown( textInput, { keyCode: ENTER } );
2441
2418
  } );
2442
2419
 
2443
- expect( mockOnChange ).toHaveBeenCalledWith( {
2444
- title: textValue,
2445
- url: selectedLink.url,
2446
- } );
2420
+ expect( mockOnChange ).toHaveBeenCalledWith(
2421
+ expect.objectContaining( {
2422
+ title: textValue,
2423
+ url: selectedLink.url,
2424
+ } )
2425
+ );
2447
2426
 
2448
2427
  // The text input should not be showing as the form is submitted.
2449
2428
  expect(
@@ -138,8 +138,8 @@ export default function useSearchHandler(
138
138
 
139
139
  return {
140
140
  pageOnFront: getSettings().pageOnFront,
141
- fetchSearchSuggestions: getSettings()
142
- .__experimentalFetchLinkSuggestions,
141
+ fetchSearchSuggestions:
142
+ getSettings().__experimentalFetchLinkSuggestions,
143
143
  };
144
144
  }, [] );
145
145
 
@@ -36,10 +36,8 @@ const ListViewBlockContents = forwardRef(
36
36
 
37
37
  const { blockMovingClientId, selectedBlockInBlockEditor } = useSelect(
38
38
  ( select ) => {
39
- const {
40
- hasBlockMovingClientId,
41
- getSelectedBlockClientId,
42
- } = select( blockEditorStore );
39
+ const { hasBlockMovingClientId, getSelectedBlockClientId } =
40
+ select( blockEditorStore );
43
41
  return {
44
42
  blockMovingClientId: hasBlockMovingClientId(),
45
43
  selectedBlockInBlockEditor: getSelectedBlockClientId(),