@wordpress/block-editor 9.6.0 → 9.8.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 (462) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/components/block-alignment-control/use-available-alignments.js +1 -1
  3. package/build/components/block-alignment-control/use-available-alignments.js.map +1 -1
  4. package/build/components/block-edit-visually-button/index.js +46 -0
  5. package/build/components/block-edit-visually-button/index.js.map +1 -0
  6. package/build/components/block-list/block.js +12 -2
  7. package/build/components/block-list/block.js.map +1 -1
  8. package/build/components/block-list/index.native.js +1 -1
  9. package/build/components/block-list/index.native.js.map +1 -1
  10. package/build/components/block-popover/inbetween.js +5 -3
  11. package/build/components/block-popover/inbetween.js.map +1 -1
  12. package/build/components/block-popover/index.js +10 -4
  13. package/build/components/block-popover/index.js.map +1 -1
  14. package/build/components/block-settings-menu/index.js +2 -6
  15. package/build/components/block-settings-menu/index.js.map +1 -1
  16. package/build/components/block-styles/index.js +3 -6
  17. package/build/components/block-styles/index.js.map +1 -1
  18. package/build/components/block-switcher/index.js +10 -16
  19. package/build/components/block-switcher/index.js.map +1 -1
  20. package/build/components/block-toolbar/index.js +5 -1
  21. package/build/components/block-toolbar/index.js.map +1 -1
  22. package/build/components/block-tools/selected-block-popover.js +10 -2
  23. package/build/components/block-tools/selected-block-popover.js.map +1 -1
  24. package/build/components/block-tools/use-block-toolbar-popover-props.js +126 -0
  25. package/build/components/block-tools/use-block-toolbar-popover-props.js.map +1 -0
  26. package/build/components/block-types-list/index.js +1 -1
  27. package/build/components/block-types-list/index.js.map +1 -1
  28. package/build/components/border-radius-control/all-input-control.js +31 -3
  29. package/build/components/border-radius-control/all-input-control.js.map +1 -1
  30. package/build/components/border-radius-control/index.js +23 -7
  31. package/build/components/border-radius-control/index.js.map +1 -1
  32. package/build/components/border-radius-control/input-controls.js +21 -6
  33. package/build/components/border-radius-control/input-controls.js.map +1 -1
  34. package/build/components/border-radius-control/utils.js +13 -16
  35. package/build/components/border-radius-control/utils.js.map +1 -1
  36. package/build/components/colors/utils.js +6 -2
  37. package/build/components/colors/utils.js.map +1 -1
  38. package/build/components/colors/with-colors.js +17 -4
  39. package/build/components/colors/with-colors.js.map +1 -1
  40. package/build/components/colors-gradients/control.js +7 -4
  41. package/build/components/colors-gradients/control.js.map +1 -1
  42. package/build/components/colors-gradients/dropdown.js +5 -2
  43. package/build/components/colors-gradients/dropdown.js.map +1 -1
  44. package/build/components/copy-handler/index.js +6 -0
  45. package/build/components/copy-handler/index.js.map +1 -1
  46. package/build/components/date-format-picker/index.js +2 -7
  47. package/build/components/date-format-picker/index.js.map +1 -1
  48. package/build/components/duotone/components.js +5 -5
  49. package/build/components/duotone/components.js.map +1 -1
  50. package/build/components/font-appearance-control/index.js +10 -4
  51. package/build/components/font-appearance-control/index.js.map +1 -1
  52. package/build/components/font-family/index.js +1 -1
  53. package/build/components/font-family/index.js.map +1 -1
  54. package/build/components/font-sizes/with-font-sizes.js +17 -4
  55. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  56. package/build/components/image-size-control/index.js +3 -1
  57. package/build/components/image-size-control/index.js.map +1 -1
  58. package/build/components/index.js +22 -6
  59. package/build/components/index.js.map +1 -1
  60. package/build/components/index.native.js +11 -4
  61. package/build/components/index.native.js.map +1 -1
  62. package/build/components/inserter/index.native.js +8 -3
  63. package/build/components/inserter/index.native.js.map +1 -1
  64. package/build/components/inserter/search-items.js +22 -4
  65. package/build/components/inserter/search-items.js.map +1 -1
  66. package/build/components/inserter-list-item/index.js +2 -19
  67. package/build/components/inserter-list-item/index.js.map +1 -1
  68. package/build/components/letter-spacing-control/index.js +6 -3
  69. package/build/components/letter-spacing-control/index.js.map +1 -1
  70. package/build/components/line-height-control/index.js +6 -3
  71. package/build/components/line-height-control/index.js.map +1 -1
  72. package/build/components/link-control/is-url-like.js +1 -7
  73. package/build/components/link-control/is-url-like.js.map +1 -1
  74. package/build/components/link-control/link-preview.js +0 -1
  75. package/build/components/link-control/link-preview.js.map +1 -1
  76. package/build/components/link-control/use-search-handler.js +1 -7
  77. package/build/components/link-control/use-search-handler.js.map +1 -1
  78. package/build/components/list-view/block-select-button.js +5 -2
  79. package/build/components/list-view/block-select-button.js.map +1 -1
  80. package/build/components/list-view/expander.js +3 -1
  81. package/build/components/list-view/expander.js.map +1 -1
  82. package/build/components/list-view/use-block-selection.js +1 -7
  83. package/build/components/list-view/use-block-selection.js.map +1 -1
  84. package/build/components/media-upload/index.native.js +8 -3
  85. package/build/components/media-upload/index.native.js.map +1 -1
  86. package/build/components/preview-options/index.js +2 -2
  87. package/build/components/preview-options/index.js.map +1 -1
  88. package/build/components/{use-no-recursive-renders → recursion-provider}/index.js +40 -18
  89. package/build/components/recursion-provider/index.js.map +1 -0
  90. package/build/components/rich-text/index.js +6 -1
  91. package/build/components/rich-text/index.js.map +1 -1
  92. package/build/components/rich-text/index.native.js +3 -1
  93. package/build/components/rich-text/index.native.js.map +1 -1
  94. package/build/components/rich-text/use-before-input-rules.js +110 -0
  95. package/build/components/rich-text/use-before-input-rules.js.map +1 -0
  96. package/build/components/rich-text/use-enter.js +0 -4
  97. package/build/components/rich-text/use-enter.js.map +1 -1
  98. package/build/components/rich-text/use-format-types.js +8 -11
  99. package/build/components/rich-text/use-format-types.js.map +1 -1
  100. package/build/components/spacing-sizes-control/all-input-control.js +53 -0
  101. package/build/components/spacing-sizes-control/all-input-control.js.map +1 -0
  102. package/build/components/spacing-sizes-control/axial-input-controls.js +69 -0
  103. package/build/components/spacing-sizes-control/axial-input-controls.js.map +1 -0
  104. package/build/components/spacing-sizes-control/index.js +100 -0
  105. package/build/components/spacing-sizes-control/index.js.map +1 -0
  106. package/build/components/spacing-sizes-control/input-controls.js +52 -0
  107. package/build/components/spacing-sizes-control/input-controls.js.map +1 -0
  108. package/build/components/spacing-sizes-control/linked-button.js +38 -0
  109. package/build/components/spacing-sizes-control/linked-button.js.map +1 -0
  110. package/build/components/spacing-sizes-control/spacing-input-control.js +208 -0
  111. package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -0
  112. package/build/components/spacing-sizes-control/utils.js +202 -0
  113. package/build/components/spacing-sizes-control/utils.js.map +1 -0
  114. package/build/components/text-decoration-control/index.js +3 -1
  115. package/build/components/text-decoration-control/index.js.map +1 -1
  116. package/build/components/text-transform-control/index.js +3 -1
  117. package/build/components/text-transform-control/index.js.map +1 -1
  118. package/build/components/url-input/index.js +1 -1
  119. package/build/components/url-input/index.js.map +1 -1
  120. package/build/components/url-popover/image-url-input-ui.js +4 -1
  121. package/build/components/url-popover/image-url-input-ui.js.map +1 -1
  122. package/build/components/writing-flow/use-arrow-nav.js +4 -25
  123. package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
  124. package/build/components/writing-flow/use-drag-selection.js +9 -2
  125. package/build/components/writing-flow/use-drag-selection.js.map +1 -1
  126. package/build/components/writing-flow/use-multi-selection.js +4 -2
  127. package/build/components/writing-flow/use-multi-selection.js.map +1 -1
  128. package/build/components/writing-flow/use-select-all.js +3 -1
  129. package/build/components/writing-flow/use-select-all.js.map +1 -1
  130. package/build/components/writing-flow/use-selection-observer.js +10 -2
  131. package/build/components/writing-flow/use-selection-observer.js.map +1 -1
  132. package/build/hooks/border-radius.js +2 -7
  133. package/build/hooks/border-radius.js.map +1 -1
  134. package/build/hooks/border.js +2 -2
  135. package/build/hooks/border.js.map +1 -1
  136. package/build/hooks/color.js +4 -1
  137. package/build/hooks/color.js.map +1 -1
  138. package/build/hooks/dimensions.js +15 -0
  139. package/build/hooks/dimensions.js.map +1 -1
  140. package/build/hooks/duotone.js +4 -4
  141. package/build/hooks/duotone.js.map +1 -1
  142. package/build/hooks/gap.js +6 -4
  143. package/build/hooks/gap.js.map +1 -1
  144. package/build/hooks/generated-class-name.js +1 -7
  145. package/build/hooks/generated-class-name.js.map +1 -1
  146. package/build/hooks/layout.js +29 -14
  147. package/build/hooks/layout.js.map +1 -1
  148. package/build/hooks/margin.js +28 -12
  149. package/build/hooks/margin.js.map +1 -1
  150. package/build/hooks/padding.js +19 -8
  151. package/build/hooks/padding.js.map +1 -1
  152. package/build/hooks/style.js +4 -50
  153. package/build/hooks/style.js.map +1 -1
  154. package/build/layouts/constrained.js +215 -0
  155. package/build/layouts/constrained.js.map +1 -0
  156. package/build/layouts/flex.js +1 -1
  157. package/build/layouts/flex.js.map +1 -1
  158. package/build/layouts/flow.js +7 -151
  159. package/build/layouts/flow.js.map +1 -1
  160. package/build/layouts/index.js +3 -1
  161. package/build/layouts/index.js.map +1 -1
  162. package/build/layouts/utils.js +43 -0
  163. package/build/layouts/utils.js.map +1 -1
  164. package/build/store/actions.js +25 -3
  165. package/build/store/actions.js.map +1 -1
  166. package/build/store/selectors.js +4 -6
  167. package/build/store/selectors.js.map +1 -1
  168. package/build/utils/block-variation-transforms.js +15 -9
  169. package/build/utils/block-variation-transforms.js.map +1 -1
  170. package/build/utils/pasting.js +9 -1
  171. package/build/utils/pasting.js.map +1 -1
  172. package/build-module/components/block-alignment-control/use-available-alignments.js +1 -1
  173. package/build-module/components/block-alignment-control/use-available-alignments.js.map +1 -1
  174. package/build-module/components/block-edit-visually-button/index.js +35 -0
  175. package/build-module/components/block-edit-visually-button/index.js.map +1 -0
  176. package/build-module/components/block-list/block.js +13 -3
  177. package/build-module/components/block-list/block.js.map +1 -1
  178. package/build-module/components/block-list/index.native.js +1 -1
  179. package/build-module/components/block-list/index.native.js.map +1 -1
  180. package/build-module/components/block-popover/inbetween.js +5 -3
  181. package/build-module/components/block-popover/inbetween.js.map +1 -1
  182. package/build-module/components/block-popover/index.js +8 -4
  183. package/build-module/components/block-popover/index.js.map +1 -1
  184. package/build-module/components/block-settings-menu/index.js +3 -6
  185. package/build-module/components/block-settings-menu/index.js.map +1 -1
  186. package/build-module/components/block-styles/index.js +4 -7
  187. package/build-module/components/block-styles/index.js.map +1 -1
  188. package/build-module/components/block-switcher/index.js +10 -16
  189. package/build-module/components/block-switcher/index.js.map +1 -1
  190. package/build-module/components/block-toolbar/index.js +4 -1
  191. package/build-module/components/block-toolbar/index.js.map +1 -1
  192. package/build-module/components/block-tools/selected-block-popover.js +8 -2
  193. package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
  194. package/build-module/components/block-tools/use-block-toolbar-popover-props.js +114 -0
  195. package/build-module/components/block-tools/use-block-toolbar-popover-props.js.map +1 -0
  196. package/build-module/components/block-types-list/index.js +1 -1
  197. package/build-module/components/block-types-list/index.js.map +1 -1
  198. package/build-module/components/border-radius-control/all-input-control.js +32 -4
  199. package/build-module/components/border-radius-control/all-input-control.js.map +1 -1
  200. package/build-module/components/border-radius-control/index.js +24 -8
  201. package/build-module/components/border-radius-control/index.js.map +1 -1
  202. package/build-module/components/border-radius-control/input-controls.js +22 -7
  203. package/build-module/components/border-radius-control/input-controls.js.map +1 -1
  204. package/build-module/components/border-radius-control/utils.js +13 -16
  205. package/build-module/components/border-radius-control/utils.js.map +1 -1
  206. package/build-module/components/colors/utils.js +7 -3
  207. package/build-module/components/colors/utils.js.map +1 -1
  208. package/build-module/components/colors/with-colors.js +16 -3
  209. package/build-module/components/colors/with-colors.js.map +1 -1
  210. package/build-module/components/colors-gradients/control.js +7 -4
  211. package/build-module/components/colors-gradients/control.js.map +1 -1
  212. package/build-module/components/colors-gradients/dropdown.js +5 -2
  213. package/build-module/components/colors-gradients/dropdown.js.map +1 -1
  214. package/build-module/components/copy-handler/index.js +7 -1
  215. package/build-module/components/copy-handler/index.js.map +1 -1
  216. package/build-module/components/date-format-picker/index.js +2 -6
  217. package/build-module/components/date-format-picker/index.js.map +1 -1
  218. package/build-module/components/duotone/components.js +5 -5
  219. package/build-module/components/duotone/components.js.map +1 -1
  220. package/build-module/components/font-appearance-control/index.js +7 -4
  221. package/build-module/components/font-appearance-control/index.js.map +1 -1
  222. package/build-module/components/font-family/index.js +1 -1
  223. package/build-module/components/font-family/index.js.map +1 -1
  224. package/build-module/components/font-sizes/with-font-sizes.js +16 -3
  225. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  226. package/build-module/components/image-size-control/index.js +3 -1
  227. package/build-module/components/image-size-control/index.js.map +1 -1
  228. package/build-module/components/index.js +2 -1
  229. package/build-module/components/index.js.map +1 -1
  230. package/build-module/components/index.native.js +1 -1
  231. package/build-module/components/index.native.js.map +1 -1
  232. package/build-module/components/inserter/index.native.js +9 -2
  233. package/build-module/components/inserter/index.native.js.map +1 -1
  234. package/build-module/components/inserter/search-items.js +19 -5
  235. package/build-module/components/inserter/search-items.js.map +1 -1
  236. package/build-module/components/inserter-list-item/index.js +1 -17
  237. package/build-module/components/inserter-list-item/index.js.map +1 -1
  238. package/build-module/components/letter-spacing-control/index.js +5 -3
  239. package/build-module/components/letter-spacing-control/index.js.map +1 -1
  240. package/build-module/components/line-height-control/index.js +5 -3
  241. package/build-module/components/line-height-control/index.js.map +1 -1
  242. package/build-module/components/link-control/is-url-like.js +1 -6
  243. package/build-module/components/link-control/is-url-like.js.map +1 -1
  244. package/build-module/components/link-control/link-preview.js +0 -1
  245. package/build-module/components/link-control/link-preview.js.map +1 -1
  246. package/build-module/components/link-control/use-search-handler.js +1 -6
  247. package/build-module/components/link-control/use-search-handler.js.map +1 -1
  248. package/build-module/components/list-view/block-select-button.js +5 -2
  249. package/build-module/components/list-view/block-select-button.js.map +1 -1
  250. package/build-module/components/list-view/expander.js +3 -2
  251. package/build-module/components/list-view/expander.js.map +1 -1
  252. package/build-module/components/list-view/use-block-selection.js +1 -6
  253. package/build-module/components/list-view/use-block-selection.js.map +1 -1
  254. package/build-module/components/media-upload/index.native.js +9 -2
  255. package/build-module/components/media-upload/index.native.js.map +1 -1
  256. package/build-module/components/preview-options/index.js +2 -2
  257. package/build-module/components/preview-options/index.js.map +1 -1
  258. package/build-module/components/{use-no-recursive-renders → recursion-provider}/index.js +39 -19
  259. package/build-module/components/recursion-provider/index.js.map +1 -0
  260. package/build-module/components/rich-text/index.js +5 -1
  261. package/build-module/components/rich-text/index.js.map +1 -1
  262. package/build-module/components/rich-text/index.native.js +3 -1
  263. package/build-module/components/rich-text/index.native.js.map +1 -1
  264. package/build-module/components/rich-text/use-before-input-rules.js +96 -0
  265. package/build-module/components/rich-text/use-before-input-rules.js.map +1 -0
  266. package/build-module/components/rich-text/use-enter.js +0 -4
  267. package/build-module/components/rich-text/use-enter.js.map +1 -1
  268. package/build-module/components/rich-text/use-format-types.js +8 -10
  269. package/build-module/components/rich-text/use-format-types.js.map +1 -1
  270. package/build-module/components/spacing-sizes-control/all-input-control.js +41 -0
  271. package/build-module/components/spacing-sizes-control/all-input-control.js.map +1 -0
  272. package/build-module/components/spacing-sizes-control/axial-input-controls.js +57 -0
  273. package/build-module/components/spacing-sizes-control/axial-input-controls.js.map +1 -0
  274. package/build-module/components/spacing-sizes-control/index.js +83 -0
  275. package/build-module/components/spacing-sizes-control/index.js.map +1 -0
  276. package/build-module/components/spacing-sizes-control/input-controls.js +41 -0
  277. package/build-module/components/spacing-sizes-control/input-controls.js.map +1 -0
  278. package/build-module/components/spacing-sizes-control/linked-button.js +28 -0
  279. package/build-module/components/spacing-sizes-control/linked-button.js.map +1 -0
  280. package/build-module/components/spacing-sizes-control/spacing-input-control.js +192 -0
  281. package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -0
  282. package/build-module/components/spacing-sizes-control/utils.js +174 -0
  283. package/build-module/components/spacing-sizes-control/utils.js.map +1 -0
  284. package/build-module/components/text-decoration-control/index.js +4 -2
  285. package/build-module/components/text-decoration-control/index.js.map +1 -1
  286. package/build-module/components/text-transform-control/index.js +4 -2
  287. package/build-module/components/text-transform-control/index.js.map +1 -1
  288. package/build-module/components/url-input/index.js +1 -1
  289. package/build-module/components/url-input/index.js.map +1 -1
  290. package/build-module/components/url-popover/image-url-input-ui.js +4 -1
  291. package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
  292. package/build-module/components/writing-flow/use-arrow-nav.js +5 -26
  293. package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
  294. package/build-module/components/writing-flow/use-drag-selection.js +9 -2
  295. package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
  296. package/build-module/components/writing-flow/use-multi-selection.js +4 -2
  297. package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
  298. package/build-module/components/writing-flow/use-select-all.js +3 -1
  299. package/build-module/components/writing-flow/use-select-all.js.map +1 -1
  300. package/build-module/components/writing-flow/use-selection-observer.js +10 -2
  301. package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
  302. package/build-module/hooks/border-radius.js +2 -7
  303. package/build-module/hooks/border-radius.js.map +1 -1
  304. package/build-module/hooks/border.js +2 -2
  305. package/build-module/hooks/border.js.map +1 -1
  306. package/build-module/hooks/color.js +4 -1
  307. package/build-module/hooks/color.js.map +1 -1
  308. package/build-module/hooks/dimensions.js +13 -0
  309. package/build-module/hooks/dimensions.js.map +1 -1
  310. package/build-module/hooks/duotone.js +4 -4
  311. package/build-module/hooks/duotone.js.map +1 -1
  312. package/build-module/hooks/gap.js +3 -2
  313. package/build-module/hooks/gap.js.map +1 -1
  314. package/build-module/hooks/generated-class-name.js +1 -6
  315. package/build-module/hooks/generated-class-name.js.map +1 -1
  316. package/build-module/hooks/layout.js +29 -14
  317. package/build-module/hooks/layout.js.map +1 -1
  318. package/build-module/hooks/margin.js +26 -12
  319. package/build-module/hooks/margin.js.map +1 -1
  320. package/build-module/hooks/padding.js +17 -8
  321. package/build-module/hooks/padding.js.map +1 -1
  322. package/build-module/hooks/style.js +7 -53
  323. package/build-module/hooks/style.js.map +1 -1
  324. package/build-module/layouts/constrained.js +197 -0
  325. package/build-module/layouts/constrained.js.map +1 -0
  326. package/build-module/layouts/flex.js +1 -1
  327. package/build-module/layouts/flex.js.map +1 -1
  328. package/build-module/layouts/flow.js +8 -145
  329. package/build-module/layouts/flow.js.map +1 -1
  330. package/build-module/layouts/index.js +2 -1
  331. package/build-module/layouts/index.js.map +1 -1
  332. package/build-module/layouts/utils.js +40 -0
  333. package/build-module/layouts/utils.js.map +1 -1
  334. package/build-module/store/actions.js +25 -3
  335. package/build-module/store/actions.js.map +1 -1
  336. package/build-module/store/selectors.js +5 -7
  337. package/build-module/store/selectors.js.map +1 -1
  338. package/build-module/utils/block-variation-transforms.js +14 -7
  339. package/build-module/utils/block-variation-transforms.js.map +1 -1
  340. package/build-module/utils/pasting.js +9 -1
  341. package/build-module/utils/pasting.js.map +1 -1
  342. package/build-style/style-rtl.css +154 -27
  343. package/build-style/style.css +154 -27
  344. package/package.json +30 -28
  345. package/src/components/block-alignment-control/use-available-alignments.js +1 -1
  346. package/src/components/block-edit-visually-button/index.js +39 -0
  347. package/src/components/block-list/block.js +13 -2
  348. package/src/components/block-list/index.native.js +1 -1
  349. package/src/components/block-popover/inbetween.js +5 -1
  350. package/src/components/block-popover/index.js +22 -13
  351. package/src/components/block-popover/style.scss +25 -2
  352. package/src/components/block-settings-menu/index.js +11 -15
  353. package/src/components/block-styles/index.js +4 -7
  354. package/src/components/block-styles/style.scss +10 -0
  355. package/src/components/block-switcher/index.js +9 -13
  356. package/src/components/block-switcher/test/index.js +1 -0
  357. package/src/components/block-toolbar/index.js +2 -0
  358. package/src/components/block-tools/selected-block-popover.js +7 -0
  359. package/src/components/block-tools/use-block-toolbar-popover-props.js +123 -0
  360. package/src/components/block-types-list/index.js +1 -1
  361. package/src/components/border-radius-control/all-input-control.js +41 -4
  362. package/src/components/border-radius-control/index.js +29 -6
  363. package/src/components/border-radius-control/input-controls.js +40 -13
  364. package/src/components/border-radius-control/test/utils.js +22 -60
  365. package/src/components/border-radius-control/utils.js +12 -16
  366. package/src/components/color-palette/test/__snapshots__/control.js.snap +93 -77
  367. package/src/components/colors/utils.js +5 -2
  368. package/src/components/colors/with-colors.js +11 -1
  369. package/src/components/colors-gradients/control.js +12 -8
  370. package/src/components/colors-gradients/dropdown.js +7 -2
  371. package/src/components/colors-gradients/style.scss +27 -5
  372. package/src/components/colors-gradients/test/control.js +3 -3
  373. package/src/components/copy-handler/index.js +18 -0
  374. package/src/components/date-format-picker/index.js +12 -14
  375. package/src/components/date-format-picker/style.scss +0 -4
  376. package/src/components/duotone/components.js +5 -5
  377. package/src/components/duotone-control/style.scss +0 -4
  378. package/src/components/font-appearance-control/index.js +3 -0
  379. package/src/components/font-appearance-control/style.scss +0 -2
  380. package/src/components/font-family/index.js +1 -1
  381. package/src/components/font-sizes/with-font-sizes.js +11 -1
  382. package/src/components/image-size-control/README.md +7 -0
  383. package/src/components/image-size-control/index.js +2 -0
  384. package/src/components/index.js +5 -1
  385. package/src/components/index.native.js +4 -1
  386. package/src/components/inserter/index.native.js +7 -2
  387. package/src/components/inserter/search-items.js +17 -5
  388. package/src/components/inserter-list-item/index.js +1 -17
  389. package/src/components/letter-spacing-control/index.js +2 -0
  390. package/src/components/line-height-control/index.js +2 -0
  391. package/src/components/link-control/is-url-like.js +1 -6
  392. package/src/components/link-control/link-preview.js +0 -1
  393. package/src/components/link-control/test/index.js +540 -893
  394. package/src/components/link-control/use-search-handler.js +1 -6
  395. package/src/components/list-view/block-select-button.js +7 -2
  396. package/src/components/list-view/expander.js +4 -2
  397. package/src/components/list-view/style.scss +11 -4
  398. package/src/components/list-view/use-block-selection.js +2 -8
  399. package/src/components/media-replace-flow/style.scss +1 -0
  400. package/src/components/media-upload/index.native.js +7 -3
  401. package/src/components/preview-options/index.js +2 -2
  402. package/src/components/{use-no-recursive-renders → recursion-provider}/index.js +39 -28
  403. package/src/components/{use-no-recursive-renders/test/use-no-recursive-renders.js → recursion-provider/test/index.js} +5 -6
  404. package/src/components/rich-text/README.md +13 -1
  405. package/src/components/rich-text/index.js +2 -0
  406. package/src/components/rich-text/index.native.js +2 -0
  407. package/src/components/rich-text/use-before-input-rules.js +91 -0
  408. package/src/components/rich-text/use-enter.js +0 -3
  409. package/src/components/rich-text/use-format-types.js +6 -6
  410. package/src/components/spacing-sizes-control/all-input-control.js +40 -0
  411. package/src/components/spacing-sizes-control/axial-input-controls.js +62 -0
  412. package/src/components/spacing-sizes-control/index.js +91 -0
  413. package/src/components/spacing-sizes-control/input-controls.js +46 -0
  414. package/src/components/spacing-sizes-control/linked-button.js +25 -0
  415. package/src/components/spacing-sizes-control/spacing-input-control.js +280 -0
  416. package/src/components/spacing-sizes-control/style.scss +122 -0
  417. package/src/components/spacing-sizes-control/test/utils.js +156 -0
  418. package/src/components/spacing-sizes-control/utils.js +195 -0
  419. package/src/components/text-decoration-control/index.js +4 -2
  420. package/src/components/text-transform-control/index.js +4 -2
  421. package/src/components/url-input/index.js +1 -1
  422. package/src/components/url-input/style.scss +2 -2
  423. package/src/components/url-popover/image-url-input-ui.js +3 -0
  424. package/src/components/url-popover/style.scss +0 -3
  425. package/src/components/writing-flow/use-arrow-nav.js +4 -33
  426. package/src/components/writing-flow/use-drag-selection.js +7 -1
  427. package/src/components/writing-flow/use-multi-selection.js +4 -1
  428. package/src/components/writing-flow/use-select-all.js +2 -1
  429. package/src/components/writing-flow/use-selection-observer.js +10 -2
  430. package/src/hooks/border-radius.js +2 -6
  431. package/src/hooks/border.js +2 -2
  432. package/src/hooks/color.js +13 -3
  433. package/src/hooks/dimensions.js +15 -0
  434. package/src/hooks/duotone.js +4 -4
  435. package/src/hooks/gap.js +7 -2
  436. package/src/hooks/generated-class-name.js +6 -9
  437. package/src/hooks/layout.js +53 -16
  438. package/src/hooks/margin.js +49 -17
  439. package/src/hooks/padding.js +41 -14
  440. package/src/hooks/style.js +5 -56
  441. package/src/hooks/test/gap.js +22 -0
  442. package/src/hooks/typography.scss +0 -1
  443. package/src/layouts/constrained.js +217 -0
  444. package/src/layouts/flex.js +1 -1
  445. package/src/layouts/flow.js +6 -164
  446. package/src/layouts/index.js +2 -1
  447. package/src/layouts/test/constrained.js +21 -0
  448. package/src/layouts/utils.js +34 -0
  449. package/src/store/actions.js +32 -4
  450. package/src/store/selectors.js +5 -4
  451. package/src/style.scss +1 -0
  452. package/src/utils/block-variation-transforms.js +13 -6
  453. package/src/utils/pasting.js +10 -1
  454. package/src/utils/test/block-variation-transforms.js +24 -0
  455. package/src/utils/test/pasting.js +10 -0
  456. package/build/components/block-settings-menu/block-edit-visually-button.js +0 -70
  457. package/build/components/block-settings-menu/block-edit-visually-button.js.map +0 -1
  458. package/build/components/use-no-recursive-renders/index.js.map +0 -1
  459. package/build-module/components/block-settings-menu/block-edit-visually-button.js +0 -56
  460. package/build-module/components/block-settings-menu/block-edit-visually-button.js.map +0 -1
  461. package/build-module/components/use-no-recursive-renders/index.js.map +0 -1
  462. package/src/components/block-settings-menu/block-edit-visually-button.js +0 -52
@@ -61,7 +61,12 @@ const LabeledColorIndicator = ( { colorValue, label } ) => (
61
61
  className="block-editor-panel-color-gradient-settings__color-indicator"
62
62
  colorValue={ colorValue }
63
63
  />
64
- <FlexItem>{ label }</FlexItem>
64
+ <FlexItem
65
+ className="block-editor-panel-color-gradient-settings__color-name"
66
+ title={ label }
67
+ >
68
+ { label }
69
+ </FlexItem>
65
70
  </HStack>
66
71
  );
67
72
 
@@ -158,7 +163,7 @@ export default function ColorGradientSettingsDropdown( {
158
163
  className="block-editor-tools-panel-color-gradient-settings__dropdown"
159
164
  renderToggle={ renderToggle( toggleSettings ) }
160
165
  renderContent={ () => (
161
- <DropdownContentWrapper paddingSize="medium">
166
+ <DropdownContentWrapper paddingSize="none">
162
167
  <div className="block-editor-panel-color-gradient-settings__dropdown-content">
163
168
  <ColorGradientControl
164
169
  { ...controlProps }
@@ -15,6 +15,12 @@ $swatch-gap: 12px;
15
15
  min-width: 0;
16
16
  }
17
17
 
18
+ .block-editor-color-gradient-control__tabs {
19
+ .block-editor-color-gradient-control__panel {
20
+ padding: $grid-unit-20;
21
+ }
22
+ }
23
+
18
24
  .block-editor-panel-color-gradient-settings.block-editor-panel-color-gradient-settings {
19
25
  &,
20
26
  & > div:not(:first-of-type) {
@@ -41,7 +47,13 @@ $swatch-gap: 12px;
41
47
  }
42
48
 
43
49
  .block-editor-panel-color-gradient-settings__dropdown-content {
44
- width: ( $swatch-size * 6 ) + ( $swatch-gap * 5 ); // Ensure the popover perfectly wraps the swatches.
50
+ .block-editor-color-gradient-control__panel {
51
+ $panelPadding: $grid-unit-20;
52
+
53
+ // Ensure the popover perfectly wraps the swatches.
54
+ width: ( $swatch-size * 6 ) + ( $swatch-gap * 5 ) + ( $panelPadding * 2 );
55
+ padding: $panelPadding;
56
+ }
45
57
  }
46
58
 
47
59
  .block-editor-panel-color-gradient-settings__color-indicator {
@@ -58,6 +70,7 @@ $swatch-gap: 12px;
58
70
  */
59
71
  .block-editor-tools-panel-color-gradient-settings__item {
60
72
  padding: 0;
73
+ max-width: 100%;
61
74
 
62
75
  // Border styles.
63
76
  border-left: 1px solid rgba(0, 0, 0, 0.1);
@@ -87,19 +100,28 @@ $swatch-gap: 12px;
87
100
  padding: 0;
88
101
 
89
102
  > button {
90
- height: 46px;
103
+ height: auto;
104
+ padding-top: $grid-unit * 1.25;
105
+ padding-bottom: $grid-unit * 1.25;
106
+ text-align: left;
91
107
 
92
108
  &.is-open {
93
109
  background: $gray-100;
94
110
  color: var(--wp-admin-theme-color);
95
111
  }
96
112
  }
113
+
114
+ .block-editor-panel-color-gradient-settings__color-name {
115
+ white-space: nowrap;
116
+ overflow: hidden;
117
+ text-overflow: ellipsis;
118
+ }
97
119
  }
98
120
 
99
121
  .block-editor-panel-color-gradient-settings__dropdown {
100
122
  width: 100%;
101
- }
102
123
 
103
- .block-editor-color-gradient-control__tab-panel {
104
- padding-top: $grid-unit-10;
124
+ .component-color-indicator {
125
+ flex-shrink: 0;
126
+ }
105
127
  }
@@ -53,7 +53,7 @@ describe( 'ColorPaletteControl', () => {
53
53
 
54
54
  // Is showing the two tab buttons.
55
55
  expect(
56
- screen.getByRole( 'tab', { name: 'Solid color' } )
56
+ screen.getByRole( 'tab', { name: 'Solid' } )
57
57
  ).toBeInTheDocument();
58
58
  expect(
59
59
  screen.getByRole( 'tab', { name: 'Gradient' } )
@@ -86,7 +86,7 @@ describe( 'ColorPaletteControl', () => {
86
86
 
87
87
  // Is not showing the two tab buttons.
88
88
  expect(
89
- screen.queryByRole( 'tab', { name: 'Solid color' } )
89
+ screen.queryByRole( 'tab', { name: 'Solid' } )
90
90
  ).not.toBeInTheDocument();
91
91
  expect(
92
92
  screen.queryByRole( 'tab', { name: 'Gradient' } )
@@ -133,7 +133,7 @@ describe( 'ColorPaletteControl', () => {
133
133
 
134
134
  // Is not showing the two tab buttons.
135
135
  expect(
136
- screen.queryByRole( 'tab', { name: 'Solid color' } )
136
+ screen.queryByRole( 'tab', { name: 'Solid' } )
137
137
  ).not.toBeInTheDocument();
138
138
  expect(
139
139
  screen.queryByRole( 'tab', { name: 'Gradient' } )
@@ -6,6 +6,7 @@ import {
6
6
  serialize,
7
7
  pasteHandler,
8
8
  store as blocksStore,
9
+ createBlock,
9
10
  } from '@wordpress/blocks';
10
11
  import {
11
12
  documentHasSelection,
@@ -155,6 +156,23 @@ export function useClipboardHandler() {
155
156
  );
156
157
  blocks = [ head, ...inBetweenBlocks, tail ];
157
158
  }
159
+
160
+ const wrapperBlockName = event.clipboardData.getData(
161
+ '__unstableWrapperBlockName'
162
+ );
163
+
164
+ if ( wrapperBlockName ) {
165
+ blocks = createBlock(
166
+ wrapperBlockName,
167
+ JSON.parse(
168
+ event.clipboardData.getData(
169
+ '__unstableWrapperBlockAttributes'
170
+ )
171
+ ),
172
+ blocks
173
+ );
174
+ }
175
+
158
176
  const serialized = serialize( blocks );
159
177
 
160
178
  event.clipboardData.setData(
@@ -1,8 +1,3 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { uniq } from 'lodash';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
@@ -83,15 +78,17 @@ function NonDefaultControls( { format, onChange } ) {
83
78
  // 2022) in German (de). The resultant array is de-duplicated as some
84
79
  // languages will use the same format string for short, medium, and long
85
80
  // formats.
86
- const suggestedFormats = uniq( [
87
- 'Y-m-d',
88
- _x( 'n/j/Y', 'short date format' ),
89
- _x( 'n/j/Y g:i A', 'short date format with time' ),
90
- _x( 'M j, Y', 'medium date format' ),
91
- _x( 'M j, Y g:i A', 'medium date format with time' ),
92
- _x( 'F j, Y', 'long date format' ),
93
- _x( 'M j', 'short date format without the year' ),
94
- ] );
81
+ const suggestedFormats = [
82
+ ...new Set( [
83
+ 'Y-m-d',
84
+ _x( 'n/j/Y', 'short date format' ),
85
+ _x( 'n/j/Y g:i A', 'short date format with time' ),
86
+ _x( 'M j, Y', 'medium date format' ),
87
+ _x( 'M j, Y g:i A', 'medium date format with time' ),
88
+ _x( 'F j, Y', 'long date format' ),
89
+ _x( 'M j', 'short date format without the year' ),
90
+ ] ),
91
+ ];
95
92
 
96
93
  const suggestedOptions = suggestedFormats.map(
97
94
  ( suggestedFormat, index ) => ( {
@@ -116,6 +113,7 @@ function NonDefaultControls( { format, onChange } ) {
116
113
  <>
117
114
  <BaseControl className="block-editor-date-format-picker__custom-format-select-control">
118
115
  <CustomSelectControl
116
+ __nextUnconstrainedWidth
119
117
  label={ __( 'Choose a format' ) }
120
118
  options={ [ ...suggestedOptions, customOption ] }
121
119
  value={
@@ -11,10 +11,6 @@
11
11
  &.components-base-control {
12
12
  margin-bottom: 0;
13
13
  }
14
-
15
- .components-custom-select-control__button {
16
- width: 100%;
17
- }
18
14
  }
19
15
 
20
16
  .block-editor-date-format-picker__custom-format-select-control__custom-option {
@@ -11,9 +11,9 @@ import { __unstableGetValuesFromColors as getValuesFromColors } from './index';
11
11
  /**
12
12
  * SVG and stylesheet needed for rendering the duotone filter.
13
13
  *
14
- * @param {Object} props Duotone props.
15
- * @param {string} props.selector Selector to apply the filter to.
16
- * @param {string} props.id Unique id for this duotone filter.
14
+ * @param {Object} props Duotone props.
15
+ * @param {string} props.selector Selector to apply the filter to.
16
+ * @param {string} props.id Unique id for this duotone filter.
17
17
  *
18
18
  * @return {WPElement} Duotone element.
19
19
  */
@@ -29,8 +29,8 @@ ${ selector } {
29
29
  /**
30
30
  * Stylesheet for disabling a global styles duotone filter.
31
31
  *
32
- * @param {Object} props Duotone props.
33
- * @param {string} props.selector Selector to disable the filter for.
32
+ * @param {Object} props Duotone props.
33
+ * @param {string} props.selector Selector to disable the filter for.
34
34
  *
35
35
  * @return {WPElement} Filter none style element.
36
36
  */
@@ -18,10 +18,6 @@ $swatch-columns: math.floor(math.div($popover-width + $swatch-gap - 2 * $popover
18
18
  padding: 0;
19
19
  }
20
20
 
21
- .components-custom-gradient-picker__gradient-bar {
22
- margin: $grid-unit-20 0 $grid-unit-15;
23
- }
24
-
25
21
  .components-circular-option-picker__swatches {
26
22
  display: grid;
27
23
  grid-template-columns: repeat($swatch-columns, $swatch-size);
@@ -88,6 +88,7 @@ export default function FontAppearanceControl( props ) {
88
88
  hasFontStyles = true,
89
89
  hasFontWeights = true,
90
90
  value: { fontStyle, fontWeight },
91
+ ...otherProps
91
92
  } = props;
92
93
  const hasStylesOrWeights = hasFontStyles || hasFontWeights;
93
94
  const label = getFontAppearanceLabel( hasFontStyles, hasFontWeights );
@@ -205,6 +206,7 @@ export default function FontAppearanceControl( props ) {
205
206
  return (
206
207
  hasStylesOrWeights && (
207
208
  <CustomSelectControl
209
+ { ...otherProps }
208
210
  className="components-font-appearance-control"
209
211
  label={ label }
210
212
  describedBy={ getDescribedBy() }
@@ -213,6 +215,7 @@ export default function FontAppearanceControl( props ) {
213
215
  onChange={ ( { selectedItem } ) =>
214
216
  onChange( selectedItem.style )
215
217
  }
218
+ __nextUnconstrainedWidth
216
219
  />
217
220
  )
218
221
  );
@@ -1,6 +1,4 @@
1
1
  .components-font-appearance-control {
2
- margin-bottom: 24px;
3
-
4
2
  ul {
5
3
  li {
6
4
  color: $gray-900;
@@ -40,7 +40,7 @@ export default function FontFamilyControl( {
40
40
  ];
41
41
  return (
42
42
  <SelectControl
43
- label={ __( 'Font family' ) }
43
+ label={ __( 'Font' ) }
44
44
  options={ options }
45
45
  value={ value }
46
46
  onChange={ onChange }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { find, pickBy, reduce, some, upperFirst } from 'lodash';
4
+ import { find, pickBy, reduce, some } from 'lodash';
5
5
 
6
6
  /**
7
7
  * WordPress dependencies
@@ -17,6 +17,16 @@ import useSetting from '../use-setting';
17
17
 
18
18
  const DEFAULT_FONT_SIZES = [];
19
19
 
20
+ /**
21
+ * Capitalizes the first letter in a string.
22
+ *
23
+ * @param {string} str The string whose first letter the function will capitalize.
24
+ *
25
+ * @return {string} Capitalized string.
26
+ */
27
+ const upperFirst = ( [ firstLetter, ...rest ] ) =>
28
+ firstLetter.toUpperCase() + rest.join( '' );
29
+
20
30
  /**
21
31
  * Higher-order component, which handles font size logic for class generation,
22
32
  * font size value retrieval, and font size change handling.
@@ -32,6 +32,13 @@ const MyImageSizeControl = () => {
32
32
 
33
33
  The component accepts the following props:
34
34
 
35
+ ### imageSizeHelp
36
+
37
+ If this property is added, a help text will be generated for the image size control, using imageSizeHelp property as the content.
38
+
39
+ - Type: `String|WPElement`
40
+ - Required: No
41
+
35
42
  ### slug
36
43
 
37
44
  The currently-selected image size slug (`thumbnail`, `large`, etc). This is used by the parent component to get the specific image, which is used to populate `imageHeight` & `imageWidth`. This is not required, but necessary when `imageSizeOptions` is used.
@@ -23,6 +23,7 @@ const IMAGE_SIZE_PRESETS = [ 25, 50, 75, 100 ];
23
23
  const noop = () => {};
24
24
 
25
25
  export default function ImageSizeControl( {
26
+ imageSizeHelp,
26
27
  imageWidth,
27
28
  imageHeight,
28
29
  imageSizeOptions = [],
@@ -44,6 +45,7 @@ export default function ImageSizeControl( {
44
45
  value={ slug }
45
46
  options={ imageSizeOptions }
46
47
  onChange={ onChangeImage }
48
+ help={ imageSizeHelp }
47
49
  />
48
50
  ) }
49
51
  { isResizable && (
@@ -93,6 +93,7 @@ export { default as URLInputButton } from './url-input/button';
93
93
  export { default as URLPopover } from './url-popover';
94
94
  export { __experimentalImageURLInputUI } from './url-popover/image-url-input-ui';
95
95
  export { default as withColorContext } from './color-palette/with-color-context';
96
+ export { default as __experimentalSpacingSizesControl } from './spacing-sizes-control';
96
97
 
97
98
  /*
98
99
  * Content Related Components
@@ -147,7 +148,10 @@ export { default as Warning } from './warning';
147
148
  export { default as WritingFlow } from './writing-flow';
148
149
  export { default as useBlockDisplayInformation } from './use-block-display-information';
149
150
  export { default as __unstableIframe } from './iframe';
150
- export { default as __experimentalUseNoRecursiveRenders } from './use-no-recursive-renders';
151
+ export {
152
+ RecursionProvider as __experimentalRecursionProvider,
153
+ useHasRecursion as __experimentalUseHasRecursion,
154
+ } from './recursion-provider';
151
155
  export { default as __experimentalBlockPatternsList } from './block-patterns-list';
152
156
  export { default as __experimentalPublishDateTimePicker } from './publish-date-time-picker';
153
157
  export { default as __experimentalInspectorPopoverHeader } from './inspector-popover-header';
@@ -59,7 +59,10 @@ export { default as Caption } from './caption';
59
59
  export { default as PanelColorSettings } from './panel-color-settings';
60
60
  export { default as __experimentalPanelColorGradientSettings } from './colors-gradients/panel-color-gradient-settings';
61
61
  export { default as useSetting } from './use-setting';
62
- export { default as __experimentalUseNoRecursiveRenders } from './use-no-recursive-renders';
62
+ export {
63
+ RecursionProvider as __experimentalRecursionProvider,
64
+ useHasRecursion as __experimentalUseHasRecursion,
65
+ } from './recursion-provider';
63
66
  export { default as Warning } from './warning';
64
67
  export { default as ContrastChecker } from './contrast-checker';
65
68
  export { default as useMultipleOriginColorsAndGradients } from './colors-gradients/use-multiple-origin-colors-and-gradients';
@@ -2,7 +2,6 @@
2
2
  * External dependencies
3
3
  */
4
4
  import { AccessibilityInfo, Platform, Text } from 'react-native';
5
- import { delay } from 'lodash';
6
5
 
7
6
  /**
8
7
  * WordPress dependencies
@@ -80,6 +79,8 @@ const defaultRenderToggle = ( {
80
79
  };
81
80
 
82
81
  export class Inserter extends Component {
82
+ announcementTimeout;
83
+
83
84
  constructor() {
84
85
  super( ...arguments );
85
86
 
@@ -88,6 +89,10 @@ export class Inserter extends Component {
88
89
  this.renderContent = this.renderContent.bind( this );
89
90
  }
90
91
 
92
+ componentWillUnmount() {
93
+ clearTimeout( this.announcementTimeout );
94
+ }
95
+
91
96
  getInsertionOptions() {
92
97
  const addBeforeOption = {
93
98
  value: 'before',
@@ -217,7 +222,7 @@ export class Inserter extends Component {
217
222
  const announcement = isOpen
218
223
  ? __( 'Scrollable block menu opened. Select a block.' )
219
224
  : __( 'Scrollable block menu closed.' );
220
- delay(
225
+ this.announcementTimeout = setTimeout(
221
226
  () =>
222
227
  AccessibilityInfo.announceForAccessibility(
223
228
  announcement
@@ -1,7 +1,9 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { deburr, find, words } from 'lodash';
4
+ import { noCase } from 'change-case';
5
+ import removeAccents from 'remove-accents';
6
+ import { find } from 'lodash';
5
7
 
6
8
  // Default search helpers.
7
9
  const defaultGetName = ( item ) => item.name || '';
@@ -21,7 +23,7 @@ const defaultGetCollection = () => null;
21
23
  function normalizeSearchInput( input = '' ) {
22
24
  // Disregard diacritics.
23
25
  // Input: "média"
24
- input = deburr( input );
26
+ input = removeAccents( input );
25
27
 
26
28
  // Accommodate leading slash, matching autocomplete expectations.
27
29
  // Input: "/media"
@@ -34,6 +36,17 @@ function normalizeSearchInput( input = '' ) {
34
36
  return input;
35
37
  }
36
38
 
39
+ /**
40
+ * Extracts words from an input string.
41
+ *
42
+ * @param {string} input The input string.
43
+ *
44
+ * @return {Array} Words, extracted from the input string.
45
+ */
46
+ function extractWords( input = '' ) {
47
+ return noCase( input ).split( ' ' ).filter( Boolean );
48
+ }
49
+
37
50
  /**
38
51
  * Converts the search term into a list of normalized terms.
39
52
  *
@@ -42,8 +55,7 @@ function normalizeSearchInput( input = '' ) {
42
55
  * @return {string[]} The normalized list of search terms.
43
56
  */
44
57
  export const getNormalizedSearchTerms = ( input = '' ) => {
45
- // Extract words.
46
- return words( normalizeSearchInput( input ) );
58
+ return extractWords( normalizeSearchInput( input ) );
47
59
  };
48
60
 
49
61
  const removeMatchingTerms = ( unmatchedTerms, unprocessedTerms ) => {
@@ -150,7 +162,7 @@ export function getItemSearchRank( item, searchTerm, config = {} ) {
150
162
  category,
151
163
  collection,
152
164
  ].join( ' ' );
153
- const normalizedSearchTerms = words( normalizedSearchInput );
165
+ const normalizedSearchTerms = extractWords( normalizedSearchInput );
154
166
  const unmatchedTerms = removeMatchingTerms(
155
167
  normalizedSearchTerms,
156
168
  terms
@@ -12,7 +12,7 @@ import {
12
12
  createBlocksFromInnerBlocksTemplate,
13
13
  } from '@wordpress/blocks';
14
14
  import { __experimentalTruncate as Truncate } from '@wordpress/components';
15
- import { ENTER } from '@wordpress/keycodes';
15
+ import { ENTER, isAppleOS } from '@wordpress/keycodes';
16
16
 
17
17
  /**
18
18
  * Internal dependencies
@@ -21,22 +21,6 @@ import BlockIcon from '../block-icon';
21
21
  import { InserterListboxItem } from '../inserter-listbox';
22
22
  import InserterDraggableBlocks from '../inserter-draggable-blocks';
23
23
 
24
- /**
25
- * Return true if platform is MacOS.
26
- *
27
- * @param {Object} _window window object by default; used for DI testing.
28
- *
29
- * @return {boolean} True if MacOS; false otherwise.
30
- */
31
- function isAppleOS( _window = window ) {
32
- const { platform } = _window.navigator;
33
-
34
- return (
35
- platform.indexOf( 'Mac' ) !== -1 ||
36
- [ 'iPad', 'iPhone' ].includes( platform )
37
- );
38
- }
39
-
40
24
  function InserterListItem( {
41
25
  className,
42
26
  isFirst,
@@ -26,6 +26,7 @@ export default function LetterSpacingControl( {
26
26
  value,
27
27
  onChange,
28
28
  __unstableInputWidth = '60px',
29
+ ...otherProps
29
30
  } ) {
30
31
  const units = useCustomUnits( {
31
32
  availableUnits: useSetting( 'spacing.units' ) || [ 'px', 'em', 'rem' ],
@@ -33,6 +34,7 @@ export default function LetterSpacingControl( {
33
34
  } );
34
35
  return (
35
36
  <UnitControl
37
+ { ...otherProps }
36
38
  label={ __( 'Letter spacing' ) }
37
39
  value={ value }
38
40
  __unstableInputWidth={ __unstableInputWidth }
@@ -21,6 +21,7 @@ const LineHeightControl = ( {
21
21
  /** Start opting into the new margin-free styles that will become the default in a future version. */
22
22
  __nextHasNoMarginBottom = false,
23
23
  __unstableInputWidth = '60px',
24
+ ...otherProps
24
25
  } ) => {
25
26
  const isDefined = isLineHeightDefined( lineHeight );
26
27
 
@@ -89,6 +90,7 @@ const LineHeightControl = ( {
89
90
  style={ deprecatedStyles }
90
91
  >
91
92
  <NumberControl
93
+ { ...otherProps }
92
94
  __unstableInputWidth={ __unstableInputWidth }
93
95
  __unstableStateReducer={ stateReducer }
94
96
  onChange={ onChange }
@@ -1,8 +1,3 @@
1
- /**
2
- * External dependencies
3
- */
4
- import { startsWith } from 'lodash';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
@@ -20,6 +15,6 @@ import { isURL } from '@wordpress/url';
20
15
  * @return {boolean} whether or not the value is potentially a URL.
21
16
  */
22
17
  export default function isURLLike( val ) {
23
- const isInternal = startsWith( val, '#' );
18
+ const isInternal = val?.startsWith( '#' );
24
19
  return isURL( val ) || ( val && val.includes( 'www.' ) ) || isInternal;
25
20
  }
@@ -60,7 +60,6 @@ export default function LinkPreview( {
60
60
  return (
61
61
  <div
62
62
  aria-label={ __( 'Currently selected' ) }
63
- aria-selected="true"
64
63
  className={ classnames( 'block-editor-link-control__search-item', {
65
64
  'is-current': true,
66
65
  'is-rich': hasRichData,