@wordpress/block-editor 8.0.13 → 8.1.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 (441) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/LICENSE.md +1 -1
  3. package/README.md +12 -1
  4. package/build/components/block-caption/index.native.js +14 -3
  5. package/build/components/block-caption/index.native.js.map +1 -1
  6. package/build/components/block-edit/index.js +9 -0
  7. package/build/components/block-edit/index.js.map +1 -1
  8. package/build/components/block-inspector/index.js +8 -20
  9. package/build/components/block-inspector/index.js.map +1 -1
  10. package/build/components/block-list-appender/index.js +3 -11
  11. package/build/components/block-list-appender/index.js.map +1 -1
  12. package/build/components/block-media-update-progress/index.native.js +2 -1
  13. package/build/components/block-media-update-progress/index.native.js.map +1 -1
  14. package/build/components/block-preview/auto.js +30 -6
  15. package/build/components/block-preview/auto.js.map +1 -1
  16. package/build/components/block-settings/container.native.js +2 -1
  17. package/build/components/block-settings/container.native.js.map +1 -1
  18. package/build/components/block-styles/index.js +110 -134
  19. package/build/components/block-styles/index.js.map +1 -1
  20. package/build/components/block-styles/menu-items.js +63 -0
  21. package/build/components/block-styles/menu-items.js.map +1 -0
  22. package/build/components/block-styles/preview-panel.js +45 -0
  23. package/build/components/block-styles/preview-panel.js.map +1 -0
  24. package/build/components/block-styles/preview.native.js +2 -2
  25. package/build/components/block-styles/preview.native.js.map +1 -1
  26. package/build/components/block-styles/use-styles-for-block.js +119 -0
  27. package/build/components/block-styles/use-styles-for-block.js.map +1 -0
  28. package/build/components/block-styles/utils.js +39 -0
  29. package/build/components/block-styles/utils.js.map +1 -1
  30. package/build/components/block-switcher/block-styles-menu.js +3 -23
  31. package/build/components/block-switcher/block-styles-menu.js.map +1 -1
  32. package/build/components/block-tools/back-compat.js +2 -1
  33. package/build/components/block-tools/back-compat.js.map +1 -1
  34. package/build/components/block-tools/block-selection-button.js +5 -1
  35. package/build/components/block-tools/block-selection-button.js.map +1 -1
  36. package/build/components/block-tools/insertion-point.js +11 -1
  37. package/build/components/block-tools/insertion-point.js.map +1 -1
  38. package/build/components/block-types-list/index.native.js +2 -2
  39. package/build/components/block-types-list/index.native.js.map +1 -1
  40. package/build/components/button-block-appender/index.js +2 -1
  41. package/build/components/button-block-appender/index.js.map +1 -1
  42. package/build/components/colors-gradients/dropdown.js +88 -0
  43. package/build/components/colors-gradients/dropdown.js.map +1 -0
  44. package/build/components/colors-gradients/panel-color-gradient-settings.js +6 -5
  45. package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  46. package/build/components/colors-gradients/panel-color-gradient-settings.native.js +6 -3
  47. package/build/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
  48. package/build/components/contrast-checker/index.js +34 -9
  49. package/build/components/contrast-checker/index.js.map +1 -1
  50. package/build/components/contrast-checker/index.native.js +108 -0
  51. package/build/components/contrast-checker/index.native.js.map +1 -0
  52. package/build/components/default-block-appender/index.js +16 -19
  53. package/build/components/default-block-appender/index.js.map +1 -1
  54. package/build/components/default-style-picker/index.js +18 -3
  55. package/build/components/default-style-picker/index.js.map +1 -1
  56. package/build/components/font-appearance-control/index.js +11 -11
  57. package/build/components/font-appearance-control/index.js.map +1 -1
  58. package/build/components/iframe/index.js +6 -9
  59. package/build/components/iframe/index.js.map +1 -1
  60. package/build/components/index.js +18 -9
  61. package/build/components/index.js.map +1 -1
  62. package/build/components/index.native.js +9 -0
  63. package/build/components/index.native.js.map +1 -1
  64. package/build/components/inner-blocks/default-block-appender.js +2 -4
  65. package/build/components/inner-blocks/default-block-appender.js.map +1 -1
  66. package/build/components/inner-blocks/use-nested-settings-update.js +16 -14
  67. package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  68. package/build/components/inserter/index.js +61 -3
  69. package/build/components/inserter/index.js.map +1 -1
  70. package/build/components/inserter/index.native.js +1 -1
  71. package/build/components/inserter/index.native.js.map +1 -1
  72. package/build/components/inserter/library.js +5 -3
  73. package/build/components/inserter/library.js.map +1 -1
  74. package/build/components/inserter/menu.js +11 -3
  75. package/build/components/inserter/menu.js.map +1 -1
  76. package/build/components/inserter/tabs.native.js +7 -4
  77. package/build/components/inserter/tabs.native.js.map +1 -1
  78. package/build/components/inspector-controls/block-support-slot-container.js +2 -1
  79. package/build/components/inspector-controls/block-support-slot-container.js.map +1 -1
  80. package/build/components/inspector-controls/block-support-tools-panel.js +11 -43
  81. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  82. package/build/components/inspector-controls/fill.native.js +3 -5
  83. package/build/components/inspector-controls/fill.native.js.map +1 -1
  84. package/build/components/inspector-controls/groups.js +2 -0
  85. package/build/components/inspector-controls/groups.js.map +1 -1
  86. package/build/components/inspector-controls/slot.js +1 -3
  87. package/build/components/inspector-controls/slot.js.map +1 -1
  88. package/build/components/letter-spacing-control/index.js +6 -6
  89. package/build/components/letter-spacing-control/index.js.map +1 -1
  90. package/build/components/link-control/link-preview.js +1 -1
  91. package/build/components/link-control/link-preview.js.map +1 -1
  92. package/build/components/link-control/search-item.js +11 -1
  93. package/build/components/link-control/search-item.js.map +1 -1
  94. package/build/components/link-control/search-results.js +2 -1
  95. package/build/components/link-control/search-results.js.map +1 -1
  96. package/build/components/link-control/use-search-handler.js +18 -5
  97. package/build/components/link-control/use-search-handler.js.map +1 -1
  98. package/build/components/list-view/block-select-button.js +23 -3
  99. package/build/components/list-view/block-select-button.js.map +1 -1
  100. package/build/components/list-view/block.js +8 -0
  101. package/build/components/list-view/block.js.map +1 -1
  102. package/build/components/media-placeholder/index.js +2 -0
  103. package/build/components/media-placeholder/index.js.map +1 -1
  104. package/build/components/media-replace-flow/index.js +32 -6
  105. package/build/components/media-replace-flow/index.js.map +1 -1
  106. package/build/components/media-upload-progress/index.native.js +2 -1
  107. package/build/components/media-upload-progress/index.native.js.map +1 -1
  108. package/build/components/panel-color-settings/index.js +7 -3
  109. package/build/components/panel-color-settings/index.js.map +1 -1
  110. package/build/components/provider/block-refs-provider.js +4 -1
  111. package/build/components/provider/block-refs-provider.js.map +1 -1
  112. package/build/components/rich-text/file-paste-handler.js +1 -1
  113. package/build/components/rich-text/file-paste-handler.js.map +1 -1
  114. package/build/components/rich-text/prevent-event-discovery.js +33 -0
  115. package/build/components/rich-text/prevent-event-discovery.js.map +1 -0
  116. package/build/components/rich-text/use-input-rules.js +3 -1
  117. package/build/components/rich-text/use-input-rules.js.map +1 -1
  118. package/build/components/selection-scroll-into-view/index.js +2 -1
  119. package/build/components/selection-scroll-into-view/index.js.map +1 -1
  120. package/build/components/use-display-block-controls/index.native.js +45 -0
  121. package/build/components/use-display-block-controls/index.native.js.map +1 -0
  122. package/build/components/use-on-block-drop/index.js +7 -3
  123. package/build/components/use-on-block-drop/index.js.map +1 -1
  124. package/build/components/writing-flow/use-multi-selection.js +3 -1
  125. package/build/components/writing-flow/use-multi-selection.js.map +1 -1
  126. package/build/hooks/border-color.js +74 -10
  127. package/build/hooks/border-color.js.map +1 -1
  128. package/build/hooks/border-radius.js +47 -0
  129. package/build/hooks/border-radius.js.map +1 -1
  130. package/build/hooks/border-style.js +41 -0
  131. package/build/hooks/border-style.js.map +1 -1
  132. package/build/hooks/border-width.js +70 -31
  133. package/build/hooks/border-width.js.map +1 -1
  134. package/build/hooks/border.js +81 -11
  135. package/build/hooks/border.js.map +1 -1
  136. package/build/hooks/color-panel.js +4 -1
  137. package/build/hooks/color-panel.js.map +1 -1
  138. package/build/hooks/color-panel.native.js +77 -0
  139. package/build/hooks/color-panel.native.js.map +1 -0
  140. package/build/hooks/color.js +6 -5
  141. package/build/hooks/color.js.map +1 -1
  142. package/build/hooks/index.native.js +2 -0
  143. package/build/hooks/index.native.js.map +1 -1
  144. package/build/hooks/layout.native.js +20 -0
  145. package/build/hooks/layout.native.js.map +1 -0
  146. package/build/hooks/letter-spacing.js +1 -1
  147. package/build/hooks/letter-spacing.js.map +1 -1
  148. package/build/hooks/typography.js +1 -1
  149. package/build/hooks/typography.js.map +1 -1
  150. package/build/store/actions.js +1 -2
  151. package/build/store/actions.js.map +1 -1
  152. package/build/store/defaults.js +5 -1
  153. package/build/store/defaults.js.map +1 -1
  154. package/build/store/defaults.native.js +2 -6
  155. package/build/store/defaults.native.js.map +1 -1
  156. package/build/store/selectors.js +10 -5
  157. package/build/store/selectors.js.map +1 -1
  158. package/build/utils/get-paste-event-data.js +1 -1
  159. package/build/utils/get-paste-event-data.js.map +1 -1
  160. package/build/utils/parse-css-unit-to-px.js +1 -1
  161. package/build/utils/parse-css-unit-to-px.js.map +1 -1
  162. package/build-module/components/block-caption/index.native.js +13 -3
  163. package/build-module/components/block-caption/index.native.js.map +1 -1
  164. package/build-module/components/block-edit/index.js +9 -0
  165. package/build-module/components/block-edit/index.js.map +1 -1
  166. package/build-module/components/block-inspector/index.js +8 -20
  167. package/build-module/components/block-inspector/index.js.map +1 -1
  168. package/build-module/components/block-list-appender/index.js +3 -10
  169. package/build-module/components/block-list-appender/index.js.map +1 -1
  170. package/build-module/components/block-media-update-progress/index.native.js +2 -1
  171. package/build-module/components/block-media-update-progress/index.native.js.map +1 -1
  172. package/build-module/components/block-preview/auto.js +31 -6
  173. package/build-module/components/block-preview/auto.js.map +1 -1
  174. package/build-module/components/block-settings/container.native.js +2 -1
  175. package/build-module/components/block-settings/container.native.js.map +1 -1
  176. package/build-module/components/block-styles/index.js +112 -133
  177. package/build-module/components/block-styles/index.js.map +1 -1
  178. package/build-module/components/block-styles/menu-items.js +50 -0
  179. package/build-module/components/block-styles/menu-items.js.map +1 -0
  180. package/build-module/components/block-styles/preview-panel.js +35 -0
  181. package/build-module/components/block-styles/preview-panel.js.map +1 -0
  182. package/build-module/components/block-styles/preview.native.js +2 -2
  183. package/build-module/components/block-styles/preview.native.js.map +1 -1
  184. package/build-module/components/block-styles/use-styles-for-block.js +107 -0
  185. package/build-module/components/block-styles/use-styles-for-block.js.map +1 -0
  186. package/build-module/components/block-styles/utils.js +34 -0
  187. package/build-module/components/block-styles/utils.js.map +1 -1
  188. package/build-module/components/block-switcher/block-styles-menu.js +3 -21
  189. package/build-module/components/block-switcher/block-styles-menu.js.map +1 -1
  190. package/build-module/components/block-tools/back-compat.js +2 -1
  191. package/build-module/components/block-tools/back-compat.js.map +1 -1
  192. package/build-module/components/block-tools/block-selection-button.js +5 -1
  193. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  194. package/build-module/components/block-tools/insertion-point.js +11 -1
  195. package/build-module/components/block-tools/insertion-point.js.map +1 -1
  196. package/build-module/components/block-types-list/index.native.js +2 -2
  197. package/build-module/components/block-types-list/index.native.js.map +1 -1
  198. package/build-module/components/button-block-appender/index.js +2 -1
  199. package/build-module/components/button-block-appender/index.js.map +1 -1
  200. package/build-module/components/colors-gradients/dropdown.js +75 -0
  201. package/build-module/components/colors-gradients/dropdown.js.map +1 -0
  202. package/build-module/components/colors-gradients/panel-color-gradient-settings.js +8 -7
  203. package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  204. package/build-module/components/colors-gradients/panel-color-gradient-settings.native.js +7 -4
  205. package/build-module/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
  206. package/build-module/components/contrast-checker/index.js +34 -9
  207. package/build-module/components/contrast-checker/index.js.map +1 -1
  208. package/build-module/components/contrast-checker/index.native.js +90 -0
  209. package/build-module/components/contrast-checker/index.native.js.map +1 -0
  210. package/build-module/components/default-block-appender/index.js +15 -18
  211. package/build-module/components/default-block-appender/index.js.map +1 -1
  212. package/build-module/components/default-style-picker/index.js +17 -3
  213. package/build-module/components/default-style-picker/index.js.map +1 -1
  214. package/build-module/components/font-appearance-control/index.js +12 -12
  215. package/build-module/components/font-appearance-control/index.js.map +1 -1
  216. package/build-module/components/iframe/index.js +6 -9
  217. package/build-module/components/iframe/index.js.map +1 -1
  218. package/build-module/components/index.js +2 -1
  219. package/build-module/components/index.js.map +1 -1
  220. package/build-module/components/index.native.js +1 -0
  221. package/build-module/components/index.native.js.map +1 -1
  222. package/build-module/components/inner-blocks/default-block-appender.js +2 -4
  223. package/build-module/components/inner-blocks/default-block-appender.js.map +1 -1
  224. package/build-module/components/inner-blocks/use-nested-settings-update.js +16 -14
  225. package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
  226. package/build-module/components/inserter/index.js +61 -3
  227. package/build-module/components/inserter/index.js.map +1 -1
  228. package/build-module/components/inserter/index.native.js +2 -2
  229. package/build-module/components/inserter/index.native.js.map +1 -1
  230. package/build-module/components/inserter/library.js +5 -3
  231. package/build-module/components/inserter/library.js.map +1 -1
  232. package/build-module/components/inserter/menu.js +11 -4
  233. package/build-module/components/inserter/menu.js.map +1 -1
  234. package/build-module/components/inserter/tabs.native.js +7 -4
  235. package/build-module/components/inserter/tabs.native.js.map +1 -1
  236. package/build-module/components/inspector-controls/block-support-slot-container.js +2 -1
  237. package/build-module/components/inspector-controls/block-support-slot-container.js.map +1 -1
  238. package/build-module/components/inspector-controls/block-support-tools-panel.js +12 -43
  239. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  240. package/build-module/components/inspector-controls/fill.native.js +3 -5
  241. package/build-module/components/inspector-controls/fill.native.js.map +1 -1
  242. package/build-module/components/inspector-controls/groups.js +2 -0
  243. package/build-module/components/inspector-controls/groups.js.map +1 -1
  244. package/build-module/components/inspector-controls/slot.js +1 -3
  245. package/build-module/components/inspector-controls/slot.js.map +1 -1
  246. package/build-module/components/letter-spacing-control/index.js +6 -6
  247. package/build-module/components/letter-spacing-control/index.js.map +1 -1
  248. package/build-module/components/link-control/link-preview.js +1 -1
  249. package/build-module/components/link-control/link-preview.js.map +1 -1
  250. package/build-module/components/link-control/search-item.js +11 -1
  251. package/build-module/components/link-control/search-item.js.map +1 -1
  252. package/build-module/components/link-control/search-results.js +2 -1
  253. package/build-module/components/link-control/search-results.js.map +1 -1
  254. package/build-module/components/link-control/use-search-handler.js +18 -5
  255. package/build-module/components/link-control/use-search-handler.js.map +1 -1
  256. package/build-module/components/list-view/block-select-button.js +22 -3
  257. package/build-module/components/list-view/block-select-button.js.map +1 -1
  258. package/build-module/components/list-view/block.js +6 -0
  259. package/build-module/components/list-view/block.js.map +1 -1
  260. package/build-module/components/media-placeholder/index.js +2 -0
  261. package/build-module/components/media-placeholder/index.js.map +1 -1
  262. package/build-module/components/media-replace-flow/index.js +32 -6
  263. package/build-module/components/media-replace-flow/index.js.map +1 -1
  264. package/build-module/components/media-upload-progress/index.native.js +2 -1
  265. package/build-module/components/media-upload-progress/index.native.js.map +1 -1
  266. package/build-module/components/panel-color-settings/index.js +7 -3
  267. package/build-module/components/panel-color-settings/index.js.map +1 -1
  268. package/build-module/components/provider/block-refs-provider.js +4 -1
  269. package/build-module/components/provider/block-refs-provider.js.map +1 -1
  270. package/build-module/components/rich-text/file-paste-handler.js +1 -1
  271. package/build-module/components/rich-text/file-paste-handler.js.map +1 -1
  272. package/build-module/components/rich-text/prevent-event-discovery.js +25 -0
  273. package/build-module/components/rich-text/prevent-event-discovery.js.map +1 -0
  274. package/build-module/components/rich-text/use-input-rules.js +2 -1
  275. package/build-module/components/rich-text/use-input-rules.js.map +1 -1
  276. package/build-module/components/selection-scroll-into-view/index.js +2 -1
  277. package/build-module/components/selection-scroll-into-view/index.js.map +1 -1
  278. package/build-module/components/use-display-block-controls/index.native.js +34 -0
  279. package/build-module/components/use-display-block-controls/index.native.js.map +1 -0
  280. package/build-module/components/use-on-block-drop/index.js +7 -3
  281. package/build-module/components/use-on-block-drop/index.js.map +1 -1
  282. package/build-module/components/writing-flow/use-multi-selection.js +3 -4
  283. package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
  284. package/build-module/hooks/border-color.js +72 -12
  285. package/build-module/hooks/border-color.js.map +1 -1
  286. package/build-module/hooks/border-radius.js +42 -0
  287. package/build-module/hooks/border-radius.js.map +1 -1
  288. package/build-module/hooks/border-style.js +36 -0
  289. package/build-module/hooks/border-style.js.map +1 -1
  290. package/build-module/hooks/border-width.js +66 -32
  291. package/build-module/hooks/border-width.js.map +1 -1
  292. package/build-module/hooks/border.js +80 -12
  293. package/build-module/hooks/border.js.map +1 -1
  294. package/build-module/hooks/color-panel.js +4 -1
  295. package/build-module/hooks/color-panel.js.map +1 -1
  296. package/build-module/hooks/color-panel.native.js +62 -0
  297. package/build-module/hooks/color-panel.native.js.map +1 -0
  298. package/build-module/hooks/color.js +6 -5
  299. package/build-module/hooks/color.js.map +1 -1
  300. package/build-module/hooks/index.native.js +1 -0
  301. package/build-module/hooks/index.native.js.map +1 -1
  302. package/build-module/hooks/layout.native.js +16 -0
  303. package/build-module/hooks/layout.native.js.map +1 -0
  304. package/build-module/hooks/letter-spacing.js +1 -1
  305. package/build-module/hooks/letter-spacing.js.map +1 -1
  306. package/build-module/hooks/typography.js +1 -1
  307. package/build-module/hooks/typography.js.map +1 -1
  308. package/build-module/store/actions.js +1 -2
  309. package/build-module/store/actions.js.map +1 -1
  310. package/build-module/store/defaults.js +5 -1
  311. package/build-module/store/defaults.js.map +1 -1
  312. package/build-module/store/defaults.native.js +2 -5
  313. package/build-module/store/defaults.native.js.map +1 -1
  314. package/build-module/store/selectors.js +10 -5
  315. package/build-module/store/selectors.js.map +1 -1
  316. package/build-module/utils/get-paste-event-data.js +1 -1
  317. package/build-module/utils/get-paste-event-data.js.map +1 -1
  318. package/build-module/utils/parse-css-unit-to-px.js +1 -1
  319. package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
  320. package/build-style/style-rtl.css +226 -181
  321. package/build-style/style.css +226 -181
  322. package/package.json +31 -27
  323. package/src/components/block-caption/index.native.js +22 -4
  324. package/src/components/block-card/README.md +1 -1
  325. package/src/components/block-edit/index.js +8 -0
  326. package/src/components/block-edit/test/edit.native.js +10 -9
  327. package/src/components/block-inspector/index.js +9 -16
  328. package/src/components/block-list-appender/index.js +5 -21
  329. package/src/components/block-media-update-progress/index.native.js +1 -1
  330. package/src/components/block-media-update-progress/test/index.native.js +136 -93
  331. package/src/components/block-mover/test/__snapshots__/index.native.js.snap +108 -47
  332. package/src/components/block-mover/test/index.native.js +5 -5
  333. package/src/components/block-preview/README.md +14 -26
  334. package/src/components/block-preview/auto.js +33 -3
  335. package/src/components/block-preview/test/index.js +2 -0
  336. package/src/components/block-settings/container.native.js +1 -0
  337. package/src/components/block-styles/index.js +125 -145
  338. package/src/components/block-styles/menu-items.js +49 -0
  339. package/src/components/block-styles/preview-panel.js +36 -0
  340. package/src/components/block-styles/preview.native.js +5 -2
  341. package/src/components/block-styles/style.scss +59 -51
  342. package/src/components/block-styles/test/{index.js → utils.js} +60 -1
  343. package/src/components/block-styles/use-styles-for-block.js +99 -0
  344. package/src/components/block-styles/utils.js +39 -0
  345. package/src/components/block-switcher/block-styles-menu.js +3 -38
  346. package/src/components/block-tools/back-compat.js +1 -0
  347. package/src/components/block-tools/block-selection-button.js +7 -1
  348. package/src/components/block-tools/insertion-point.js +10 -1
  349. package/src/components/block-types-list/index.native.js +5 -2
  350. package/src/components/border-radius-control/style.scss +1 -1
  351. package/src/components/border-style-control/style.scss +0 -1
  352. package/src/components/button-block-appender/index.js +1 -0
  353. package/src/components/color-palette/test/__snapshots__/control.js.snap +9 -4
  354. package/src/components/colors-gradients/dropdown.js +96 -0
  355. package/src/components/colors-gradients/panel-color-gradient-settings.js +23 -19
  356. package/src/components/colors-gradients/panel-color-gradient-settings.native.js +13 -2
  357. package/src/components/colors-gradients/style.scss +59 -5
  358. package/src/components/contrast-checker/README.md +3 -1
  359. package/src/components/contrast-checker/index.js +48 -20
  360. package/src/components/contrast-checker/index.native.js +113 -0
  361. package/src/components/contrast-checker/style.native.scss +26 -0
  362. package/src/components/contrast-checker/test/index.js +65 -0
  363. package/src/components/default-block-appender/index.js +17 -24
  364. package/src/components/default-block-appender/style.scss +4 -0
  365. package/src/components/default-block-appender/test/__snapshots__/index.js.snap +12 -24
  366. package/src/components/default-block-appender/test/index.js +4 -14
  367. package/src/components/default-style-picker/index.js +18 -6
  368. package/src/components/font-appearance-control/index.js +12 -12
  369. package/src/components/iframe/index.js +10 -10
  370. package/src/components/index.js +2 -1
  371. package/src/components/index.native.js +1 -0
  372. package/src/components/inner-blocks/README.md +2 -0
  373. package/src/components/inner-blocks/default-block-appender.js +2 -7
  374. package/src/components/inner-blocks/use-nested-settings-update.js +16 -14
  375. package/src/components/inserter/index.js +77 -5
  376. package/src/components/inserter/index.native.js +2 -2
  377. package/src/components/inserter/library.js +17 -12
  378. package/src/components/inserter/menu.js +31 -13
  379. package/src/components/inserter/tabs.native.js +5 -4
  380. package/src/components/inserter/test/block-types-tab.native.js +9 -10
  381. package/src/components/inserter/test/index.native.js +3 -7
  382. package/src/components/inserter/test/reusable-blocks-tab.native.js +8 -10
  383. package/src/components/inspector-controls/block-support-slot-container.js +3 -1
  384. package/src/components/inspector-controls/block-support-tools-panel.js +39 -58
  385. package/src/components/inspector-controls/fill.native.js +4 -3
  386. package/src/components/inspector-controls/groups.js +2 -0
  387. package/src/components/inspector-controls/slot.js +2 -7
  388. package/src/components/letter-spacing-control/index.js +6 -6
  389. package/src/components/link-control/README.md +1 -1
  390. package/src/components/link-control/link-preview.js +1 -1
  391. package/src/components/link-control/search-item.js +11 -2
  392. package/src/components/link-control/search-results.js +1 -0
  393. package/src/components/link-control/style.scss +2 -1
  394. package/src/components/link-control/test/index.js +4 -0
  395. package/src/components/link-control/use-search-handler.js +25 -4
  396. package/src/components/list-view/block-select-button.js +20 -1
  397. package/src/components/list-view/block.js +10 -0
  398. package/src/components/media-placeholder/index.js +2 -0
  399. package/src/components/media-replace-flow/index.js +35 -5
  400. package/src/components/media-upload/test/index.native.js +28 -47
  401. package/src/components/media-upload-progress/index.native.js +1 -0
  402. package/src/components/media-upload-progress/test/index.native.js +60 -47
  403. package/src/components/panel-color-settings/index.js +8 -4
  404. package/src/components/provider/block-refs-provider.js +4 -1
  405. package/src/components/rich-text/file-paste-handler.js +3 -1
  406. package/src/components/rich-text/prevent-event-discovery.js +23 -0
  407. package/src/components/rich-text/use-input-rules.js +2 -1
  408. package/src/components/selection-scroll-into-view/index.js +1 -0
  409. package/src/components/url-input/README.md +5 -0
  410. package/src/components/use-display-block-controls/index.native.js +38 -0
  411. package/src/components/use-on-block-drop/index.js +7 -3
  412. package/src/components/writing-flow/test/use-multi-selection.js +36 -0
  413. package/src/components/writing-flow/use-multi-selection.js +12 -9
  414. package/src/hooks/border-color.js +69 -9
  415. package/src/hooks/border-radius.js +32 -0
  416. package/src/hooks/border-style.js +26 -0
  417. package/src/hooks/border-width.js +56 -32
  418. package/src/hooks/border.js +115 -20
  419. package/src/hooks/border.scss +3 -17
  420. package/src/hooks/color-panel.js +3 -0
  421. package/src/hooks/color-panel.native.js +63 -0
  422. package/src/hooks/color.js +8 -7
  423. package/src/hooks/dimensions.scss +5 -0
  424. package/src/hooks/index.native.js +1 -0
  425. package/src/hooks/layout.native.js +23 -0
  426. package/src/hooks/letter-spacing.js +1 -1
  427. package/src/hooks/typography.js +1 -1
  428. package/src/store/actions.js +1 -2
  429. package/src/store/defaults.js +2 -0
  430. package/src/store/defaults.native.js +2 -6
  431. package/src/store/selectors.js +10 -5
  432. package/src/style.scss +4 -3
  433. package/src/utils/get-paste-event-data.js +1 -1
  434. package/src/utils/parse-css-unit-to-px.js +1 -1
  435. package/src/utils/test/parse-css-unit-to-px.js +3 -0
  436. package/tsconfig.tsbuildinfo +1 -1
  437. package/build/components/use-canvas-click-redirect/index.js +0 -66
  438. package/build/components/use-canvas-click-redirect/index.js.map +0 -1
  439. package/build-module/components/use-canvas-click-redirect/index.js +0 -54
  440. package/build-module/components/use-canvas-click-redirect/index.js.map +0 -1
  441. package/src/components/use-canvas-click-redirect/index.js +0 -57
@@ -5,6 +5,7 @@ import { createElement } from "@wordpress/element";
5
5
  */
6
6
  import { __experimentalToolsPanel as ToolsPanel } from '@wordpress/components';
7
7
  import { useDispatch, useSelect } from '@wordpress/data';
8
+ import { useCallback } from '@wordpress/element';
8
9
  /**
9
10
  * Internal dependencies
10
11
  */
@@ -17,55 +18,24 @@ export default function BlockSupportToolsPanel(_ref) {
17
18
  group,
18
19
  label
19
20
  } = _ref;
20
- const {
21
- attributes,
22
- clientIds,
23
- panelId
24
- } = useSelect(select => {
25
- const {
26
- getBlockAttributes,
27
- getMultiSelectedBlockClientIds,
28
- getSelectedBlockClientId,
29
- hasMultiSelection
30
- } = select(blockEditorStore); // When we currently have a multi-selection, the value returned from
31
- // `getSelectedBlockClientId()` is `null`. When a `null` value is used
32
- // for the `panelId`, a `ToolsPanel` will still allow panel items to
33
- // register themselves despite their panelIds not matching.
34
-
35
- const selectedBlockClientId = getSelectedBlockClientId();
36
-
37
- if (hasMultiSelection()) {
38
- const selectedBlockClientIds = getMultiSelectedBlockClientIds();
39
- const selectedBlockAttributes = selectedBlockClientIds.reduce((blockAttributes, blockId) => {
40
- blockAttributes[blockId] = getBlockAttributes(blockId);
41
- return blockAttributes;
42
- }, {});
43
- return {
44
- panelId: selectedBlockClientId,
45
- clientIds: selectedBlockClientIds,
46
- attributes: selectedBlockAttributes
47
- };
48
- }
49
-
50
- return {
51
- panelId: selectedBlockClientId,
52
- clientIds: [selectedBlockClientId],
53
- attributes: {
54
- [selectedBlockClientId]: getBlockAttributes(selectedBlockClientId)
55
- }
56
- };
57
- }, []);
58
21
  const {
59
22
  updateBlockAttributes
60
23
  } = useDispatch(blockEditorStore);
61
-
62
- const resetAll = function () {
24
+ const {
25
+ getBlockAttributes,
26
+ getMultiSelectedBlockClientIds,
27
+ getSelectedBlockClientId,
28
+ hasMultiSelection
29
+ } = useSelect(blockEditorStore);
30
+ const panelId = getSelectedBlockClientId();
31
+ const resetAll = useCallback(function () {
63
32
  let resetFilters = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
64
33
  const newAttributes = {};
34
+ const clientIds = hasMultiSelection() ? getMultiSelectedBlockClientIds() : [panelId];
65
35
  clientIds.forEach(clientId => {
66
36
  const {
67
37
  style
68
- } = attributes[clientId];
38
+ } = getBlockAttributes(clientId);
69
39
  let newBlockAttributes = {
70
40
  style
71
41
  };
@@ -81,8 +51,7 @@ export default function BlockSupportToolsPanel(_ref) {
81
51
  newAttributes[clientId] = newBlockAttributes;
82
52
  });
83
53
  updateBlockAttributes(clientIds, newAttributes, true);
84
- };
85
-
54
+ }, [cleanEmptyObject, getBlockAttributes, getMultiSelectedBlockClientIds, hasMultiSelection, panelId, updateBlockAttributes]);
86
55
  return createElement(ToolsPanel, {
87
56
  className: `${group}-block-support-panel`,
88
57
  label: label,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inspector-controls/block-support-tools-panel.js"],"names":["__experimentalToolsPanel","ToolsPanel","useDispatch","useSelect","store","blockEditorStore","cleanEmptyObject","BlockSupportToolsPanel","children","group","label","attributes","clientIds","panelId","select","getBlockAttributes","getMultiSelectedBlockClientIds","getSelectedBlockClientId","hasMultiSelection","selectedBlockClientId","selectedBlockClientIds","selectedBlockAttributes","reduce","blockAttributes","blockId","updateBlockAttributes","resetAll","resetFilters","newAttributes","forEach","clientId","style","newBlockAttributes","resetFilter"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,wBAAwB,IAAIC,UAArC,QAAuD,uBAAvD;AACA,SAASC,WAAT,EAAsBC,SAAtB,QAAuC,iBAAvC;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,SAASC,gBAAT,QAAiC,mBAAjC;AAEA,eAAe,SAASC,sBAAT,OAA8D;AAAA,MAA7B;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,KAAZ;AAAmBC,IAAAA;AAAnB,GAA6B;AAC5E,QAAM;AAAEC,IAAAA,UAAF;AAAcC,IAAAA,SAAd;AAAyBC,IAAAA;AAAzB,MAAqCV,SAAS,CAAIW,MAAF,IAAc;AACnE,UAAM;AACLC,MAAAA,kBADK;AAELC,MAAAA,8BAFK;AAGLC,MAAAA,wBAHK;AAILC,MAAAA;AAJK,QAKFJ,MAAM,CAAET,gBAAF,CALV,CADmE,CAQnE;AACA;AACA;AACA;;AACA,UAAMc,qBAAqB,GAAGF,wBAAwB,EAAtD;;AAEA,QAAKC,iBAAiB,EAAtB,EAA2B;AAC1B,YAAME,sBAAsB,GAAGJ,8BAA8B,EAA7D;AACA,YAAMK,uBAAuB,GAAGD,sBAAsB,CAACE,MAAvB,CAC/B,CAAEC,eAAF,EAAmBC,OAAnB,KAAgC;AAC/BD,QAAAA,eAAe,CAAEC,OAAF,CAAf,GAA6BT,kBAAkB,CAAES,OAAF,CAA/C;AACA,eAAOD,eAAP;AACA,OAJ8B,EAK/B,EAL+B,CAAhC;AAQA,aAAO;AACNV,QAAAA,OAAO,EAAEM,qBADH;AAENP,QAAAA,SAAS,EAAEQ,sBAFL;AAGNT,QAAAA,UAAU,EAAEU;AAHN,OAAP;AAKA;;AAED,WAAO;AACNR,MAAAA,OAAO,EAAEM,qBADH;AAENP,MAAAA,SAAS,EAAE,CAAEO,qBAAF,CAFL;AAGNR,MAAAA,UAAU,EAAE;AACX,SAAEQ,qBAAF,GAA2BJ,kBAAkB,CAC5CI,qBAD4C;AADlC;AAHN,KAAP;AASA,GAxCmD,EAwCjD,EAxCiD,CAApD;AAyCA,QAAM;AAAEM,IAAAA;AAAF,MAA4BvB,WAAW,CAAEG,gBAAF,CAA7C;;AAEA,QAAMqB,QAAQ,GAAG,YAAyB;AAAA,QAAvBC,YAAuB,uEAAR,EAAQ;AACzC,UAAMC,aAAa,GAAG,EAAtB;AAEAhB,IAAAA,SAAS,CAACiB,OAAV,CAAqBC,QAAF,IAAgB;AAClC,YAAM;AAAEC,QAAAA;AAAF,UAAYpB,UAAU,CAAEmB,QAAF,CAA5B;AACA,UAAIE,kBAAkB,GAAG;AAAED,QAAAA;AAAF,OAAzB;AAEAJ,MAAAA,YAAY,CAACE,OAAb,CAAwBI,WAAF,IAAmB;AACxCD,QAAAA,kBAAkB,GAAG,EACpB,GAAGA,kBADiB;AAEpB,aAAGC,WAAW,CAAED,kBAAF;AAFM,SAArB;AAIA,OALD,EAJkC,CAWlC;;AACAA,MAAAA,kBAAkB,GAAG,EACpB,GAAGA,kBADiB;AAEpBD,QAAAA,KAAK,EAAEzB,gBAAgB,CAAE0B,kBAAkB,CAACD,KAArB;AAFH,OAArB;AAKAH,MAAAA,aAAa,CAAEE,QAAF,CAAb,GAA4BE,kBAA5B;AACA,KAlBD;AAoBAP,IAAAA,qBAAqB,CAAEb,SAAF,EAAagB,aAAb,EAA4B,IAA5B,CAArB;AACA,GAxBD;;AA0BA,SACC,cAAC,UAAD;AACC,IAAA,SAAS,EAAI,GAAGnB,KAAO,sBADxB;AAEC,IAAA,KAAK,EAAGC,KAFT;AAGC,IAAA,QAAQ,EAAGgB,QAHZ;AAIC,IAAA,GAAG,EAAGb,OAJP;AAKC,IAAA,OAAO,EAAGA,OALX;AAMC,IAAA,eAAe,EAAG,IANnB;AAOC,IAAA,4BAA4B,EAAG,IAPhC,CAOuC;;AAPvC,KASGL,QATH,CADD;AAaA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalToolsPanel as ToolsPanel } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { cleanEmptyObject } from '../../hooks/utils';\n\nexport default function BlockSupportToolsPanel( { children, group, label } ) {\n\tconst { attributes, clientIds, panelId } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockAttributes,\n\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\tgetSelectedBlockClientId,\n\t\t\thasMultiSelection,\n\t\t} = select( blockEditorStore );\n\n\t\t// When we currently have a multi-selection, the value returned from\n\t\t// `getSelectedBlockClientId()` is `null`. When a `null` value is used\n\t\t// for the `panelId`, a `ToolsPanel` will still allow panel items to\n\t\t// register themselves despite their panelIds not matching.\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\tif ( hasMultiSelection() ) {\n\t\t\tconst selectedBlockClientIds = getMultiSelectedBlockClientIds();\n\t\t\tconst selectedBlockAttributes = selectedBlockClientIds.reduce(\n\t\t\t\t( blockAttributes, blockId ) => {\n\t\t\t\t\tblockAttributes[ blockId ] = getBlockAttributes( blockId );\n\t\t\t\t\treturn blockAttributes;\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tpanelId: selectedBlockClientId,\n\t\t\t\tclientIds: selectedBlockClientIds,\n\t\t\t\tattributes: selectedBlockAttributes,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tpanelId: selectedBlockClientId,\n\t\t\tclientIds: [ selectedBlockClientId ],\n\t\t\tattributes: {\n\t\t\t\t[ selectedBlockClientId ]: getBlockAttributes(\n\t\t\t\t\tselectedBlockClientId\n\t\t\t\t),\n\t\t\t},\n\t\t};\n\t}, [] );\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst resetAll = ( resetFilters = [] ) => {\n\t\tconst newAttributes = {};\n\n\t\tclientIds.forEach( ( clientId ) => {\n\t\t\tconst { style } = attributes[ clientId ];\n\t\t\tlet newBlockAttributes = { style };\n\n\t\t\tresetFilters.forEach( ( resetFilter ) => {\n\t\t\t\tnewBlockAttributes = {\n\t\t\t\t\t...newBlockAttributes,\n\t\t\t\t\t...resetFilter( newBlockAttributes ),\n\t\t\t\t};\n\t\t\t} );\n\n\t\t\t// Enforce a cleaned style object.\n\t\t\tnewBlockAttributes = {\n\t\t\t\t...newBlockAttributes,\n\t\t\t\tstyle: cleanEmptyObject( newBlockAttributes.style ),\n\t\t\t};\n\n\t\t\tnewAttributes[ clientId ] = newBlockAttributes;\n\t\t} );\n\n\t\tupdateBlockAttributes( clientIds, newAttributes, true );\n\t};\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tclassName={ `${ group }-block-support-panel` }\n\t\t\tlabel={ label }\n\t\t\tresetAll={ resetAll }\n\t\t\tkey={ panelId }\n\t\t\tpanelId={ panelId }\n\t\t\thasInnerWrapper={ true }\n\t\t\tshouldRenderPlaceholderItems={ true } // Required to maintain fills ordering.\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inspector-controls/block-support-tools-panel.js"],"names":["__experimentalToolsPanel","ToolsPanel","useDispatch","useSelect","useCallback","store","blockEditorStore","cleanEmptyObject","BlockSupportToolsPanel","children","group","label","updateBlockAttributes","getBlockAttributes","getMultiSelectedBlockClientIds","getSelectedBlockClientId","hasMultiSelection","panelId","resetAll","resetFilters","newAttributes","clientIds","forEach","clientId","style","newBlockAttributes","resetFilter"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,wBAAwB,IAAIC,UAArC,QAAuD,uBAAvD;AACA,SAASC,WAAT,EAAsBC,SAAtB,QAAuC,iBAAvC;AACA,SAASC,WAAT,QAA4B,oBAA5B;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,SAASC,gBAAT,QAAiC,mBAAjC;AAEA,eAAe,SAASC,sBAAT,OAA8D;AAAA,MAA7B;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,KAAZ;AAAmBC,IAAAA;AAAnB,GAA6B;AAC5E,QAAM;AAAEC,IAAAA;AAAF,MAA4BV,WAAW,CAAEI,gBAAF,CAA7C;AACA,QAAM;AACLO,IAAAA,kBADK;AAELC,IAAAA,8BAFK;AAGLC,IAAAA,wBAHK;AAILC,IAAAA;AAJK,MAKFb,SAAS,CAAEG,gBAAF,CALb;AAOA,QAAMW,OAAO,GAAGF,wBAAwB,EAAxC;AACA,QAAMG,QAAQ,GAAGd,WAAW,CAC3B,YAAyB;AAAA,QAAvBe,YAAuB,uEAAR,EAAQ;AACxB,UAAMC,aAAa,GAAG,EAAtB;AAEA,UAAMC,SAAS,GAAGL,iBAAiB,KAChCF,8BAA8B,EADE,GAEhC,CAAEG,OAAF,CAFH;AAIAI,IAAAA,SAAS,CAACC,OAAV,CAAqBC,QAAF,IAAgB;AAClC,YAAM;AAAEC,QAAAA;AAAF,UAAYX,kBAAkB,CAAEU,QAAF,CAApC;AACA,UAAIE,kBAAkB,GAAG;AAAED,QAAAA;AAAF,OAAzB;AAEAL,MAAAA,YAAY,CAACG,OAAb,CAAwBI,WAAF,IAAmB;AACxCD,QAAAA,kBAAkB,GAAG,EACpB,GAAGA,kBADiB;AAEpB,aAAGC,WAAW,CAAED,kBAAF;AAFM,SAArB;AAIA,OALD,EAJkC,CAWlC;;AACAA,MAAAA,kBAAkB,GAAG,EACpB,GAAGA,kBADiB;AAEpBD,QAAAA,KAAK,EAAEjB,gBAAgB,CAAEkB,kBAAkB,CAACD,KAArB;AAFH,OAArB;AAKAJ,MAAAA,aAAa,CAAEG,QAAF,CAAb,GAA4BE,kBAA5B;AACA,KAlBD;AAoBAb,IAAAA,qBAAqB,CAAES,SAAF,EAAaD,aAAb,EAA4B,IAA5B,CAArB;AACA,GA7B0B,EA8B3B,CACCb,gBADD,EAECM,kBAFD,EAGCC,8BAHD,EAICE,iBAJD,EAKCC,OALD,EAMCL,qBAND,CA9B2B,CAA5B;AAwCA,SACC,cAAC,UAAD;AACC,IAAA,SAAS,EAAI,GAAGF,KAAO,sBADxB;AAEC,IAAA,KAAK,EAAGC,KAFT;AAGC,IAAA,QAAQ,EAAGO,QAHZ;AAIC,IAAA,GAAG,EAAGD,OAJP;AAKC,IAAA,OAAO,EAAGA,OALX;AAMC,IAAA,eAAe,EAAG,IANnB;AAOC,IAAA,4BAA4B,EAAG,IAPhC,CAOuC;;AAPvC,KASGR,QATH,CADD;AAaA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalToolsPanel as ToolsPanel } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { cleanEmptyObject } from '../../hooks/utils';\n\nexport default function BlockSupportToolsPanel( { children, group, label } ) {\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst {\n\t\tgetBlockAttributes,\n\t\tgetMultiSelectedBlockClientIds,\n\t\tgetSelectedBlockClientId,\n\t\thasMultiSelection,\n\t} = useSelect( blockEditorStore );\n\n\tconst panelId = getSelectedBlockClientId();\n\tconst resetAll = useCallback(\n\t\t( resetFilters = [] ) => {\n\t\t\tconst newAttributes = {};\n\n\t\t\tconst clientIds = hasMultiSelection()\n\t\t\t\t? getMultiSelectedBlockClientIds()\n\t\t\t\t: [ panelId ];\n\n\t\t\tclientIds.forEach( ( clientId ) => {\n\t\t\t\tconst { style } = getBlockAttributes( clientId );\n\t\t\t\tlet newBlockAttributes = { style };\n\n\t\t\t\tresetFilters.forEach( ( resetFilter ) => {\n\t\t\t\t\tnewBlockAttributes = {\n\t\t\t\t\t\t...newBlockAttributes,\n\t\t\t\t\t\t...resetFilter( newBlockAttributes ),\n\t\t\t\t\t};\n\t\t\t\t} );\n\n\t\t\t\t// Enforce a cleaned style object.\n\t\t\t\tnewBlockAttributes = {\n\t\t\t\t\t...newBlockAttributes,\n\t\t\t\t\tstyle: cleanEmptyObject( newBlockAttributes.style ),\n\t\t\t\t};\n\n\t\t\t\tnewAttributes[ clientId ] = newBlockAttributes;\n\t\t\t} );\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes, true );\n\t\t},\n\t\t[\n\t\t\tcleanEmptyObject,\n\t\t\tgetBlockAttributes,\n\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\thasMultiSelection,\n\t\t\tpanelId,\n\t\t\tupdateBlockAttributes,\n\t\t]\n\t);\n\n\treturn (\n\t\t<ToolsPanel\n\t\t\tclassName={ `${ group }-block-support-panel` }\n\t\t\tlabel={ label }\n\t\t\tresetAll={ resetAll }\n\t\t\tkey={ panelId }\n\t\t\tpanelId={ panelId }\n\t\t\thasInnerWrapper={ true }\n\t\t\tshouldRenderPlaceholderItems={ true } // Required to maintain fills ordering.\n\t\t>\n\t\t\t{ children }\n\t\t</ToolsPanel>\n\t);\n}\n"]}
@@ -16,7 +16,7 @@ import warning from '@wordpress/warning';
16
16
  */
17
17
 
18
18
  import groups from './groups';
19
- import { useBlockEditContext } from '../block-edit/context';
19
+ import useDisplayBlockControls from '../use-display-block-controls';
20
20
  import { BlockSettingsButton } from '../block-settings';
21
21
  export default function InspectorControlsFill(_ref) {
22
22
  var _groups$group;
@@ -26,9 +26,7 @@ export default function InspectorControlsFill(_ref) {
26
26
  __experimentalGroup: group = 'default',
27
27
  ...props
28
28
  } = _ref;
29
- const {
30
- isSelected
31
- } = useBlockEditContext();
29
+ const isDisplayed = useDisplayBlockControls();
32
30
  const Fill = (_groups$group = groups[group]) === null || _groups$group === void 0 ? void 0 : _groups$group.Fill;
33
31
 
34
32
  if (!Fill) {
@@ -36,7 +34,7 @@ export default function InspectorControlsFill(_ref) {
36
34
  return null;
37
35
  }
38
36
 
39
- if (!isSelected) {
37
+ if (!isDisplayed) {
40
38
  return null;
41
39
  }
42
40
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inspector-controls/fill.native.js"],"names":["View","Children","BottomSheetConsumer","warning","groups","useBlockEditContext","BlockSettingsButton","InspectorControlsFill","children","__experimentalGroup","group","props","isSelected","Fill","count"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,IAAT,QAAqB,cAArB;AAEA;AACA;AACA;;AACA,SAASC,QAAT,QAAyB,oBAAzB;AACA,SAASC,mBAAT,QAAoC,uBAApC;AACA,OAAOC,OAAP,MAAoB,oBAApB;AAEA;AACA;AACA;;AACA,OAAOC,MAAP,MAAmB,UAAnB;AACA,SAASC,mBAAT,QAAoC,uBAApC;AACA,SAASC,mBAAT,QAAoC,mBAApC;AAEA,eAAe,SAASC,qBAAT,OAIX;AAAA;;AAAA,MAJ2C;AAC9CC,IAAAA,QAD8C;AAE9CC,IAAAA,mBAAmB,EAAEC,KAAK,GAAG,SAFiB;AAG9C,OAAGC;AAH2C,GAI3C;AACH,QAAM;AAAEC,IAAAA;AAAF,MAAiBP,mBAAmB,EAA1C;AACA,QAAMQ,IAAI,oBAAGT,MAAM,CAAEM,KAAF,CAAT,kDAAG,cAAiBG,IAA9B;;AACA,MAAK,CAAEA,IAAP,EAAc;AACb,6FAAAV,OAAO,CAAG,mCAAmCO,KAAO,aAA7C,CAAP;AACA,WAAO,IAAP;AACA;;AACD,MAAK,CAAEE,UAAP,EAAoB;AACnB,WAAO,IAAP;AACA;;AAED,SACC,8BACC,cAAC,IAAD,EAAWD,KAAX,EAEE,cAAC,mBAAD,QACG,MAAM,cAAC,IAAD,QAAQH,QAAR,CADT,CAFF,CADD,EAQGP,QAAQ,CAACa,KAAT,CAAgBN,QAAhB,IAA6B,CAA7B,IAAkC,cAAC,mBAAD,OARrC,CADD;AAYA","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Children } from '@wordpress/element';\nimport { BottomSheetConsumer } from '@wordpress/components';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport groups from './groups';\nimport { useBlockEditContext } from '../block-edit/context';\nimport { BlockSettingsButton } from '../block-settings';\n\nexport default function InspectorControlsFill( {\n\tchildren,\n\t__experimentalGroup: group = 'default',\n\t...props\n} ) {\n\tconst { isSelected } = useBlockEditContext();\n\tconst Fill = groups[ group ]?.Fill;\n\tif ( ! Fill ) {\n\t\twarning( `Unknown InspectorControl group \"${ group }\" provided.` );\n\t\treturn null;\n\t}\n\tif ( ! isSelected ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Fill { ...props }>\n\t\t\t\t{\n\t\t\t\t\t<BottomSheetConsumer>\n\t\t\t\t\t\t{ () => <View>{ children }</View> }\n\t\t\t\t\t</BottomSheetConsumer>\n\t\t\t\t}\n\t\t\t</Fill>\n\t\t\t{ Children.count( children ) > 0 && <BlockSettingsButton /> }\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inspector-controls/fill.native.js"],"names":["View","Children","BottomSheetConsumer","warning","groups","useDisplayBlockControls","BlockSettingsButton","InspectorControlsFill","children","__experimentalGroup","group","props","isDisplayed","Fill","count"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,IAAT,QAAqB,cAArB;AAEA;AACA;AACA;;AACA,SAASC,QAAT,QAAyB,oBAAzB;AACA,SAASC,mBAAT,QAAoC,uBAApC;AACA,OAAOC,OAAP,MAAoB,oBAApB;AAEA;AACA;AACA;;AACA,OAAOC,MAAP,MAAmB,UAAnB;AACA,OAAOC,uBAAP,MAAoC,+BAApC;AACA,SAASC,mBAAT,QAAoC,mBAApC;AAEA,eAAe,SAASC,qBAAT,OAIX;AAAA;;AAAA,MAJ2C;AAC9CC,IAAAA,QAD8C;AAE9CC,IAAAA,mBAAmB,EAAEC,KAAK,GAAG,SAFiB;AAG9C,OAAGC;AAH2C,GAI3C;AACH,QAAMC,WAAW,GAAGP,uBAAuB,EAA3C;AAEA,QAAMQ,IAAI,oBAAGT,MAAM,CAAEM,KAAF,CAAT,kDAAG,cAAiBG,IAA9B;;AACA,MAAK,CAAEA,IAAP,EAAc;AACb,6FAAAV,OAAO,CAAG,mCAAmCO,KAAO,aAA7C,CAAP;AACA,WAAO,IAAP;AACA;;AACD,MAAK,CAAEE,WAAP,EAAqB;AACpB,WAAO,IAAP;AACA;;AAED,SACC,8BACC,cAAC,IAAD,EAAWD,KAAX,EAEE,cAAC,mBAAD,QACG,MAAM,cAAC,IAAD,QAAQH,QAAR,CADT,CAFF,CADD,EAQGP,QAAQ,CAACa,KAAT,CAAgBN,QAAhB,IAA6B,CAA7B,IAAkC,cAAC,mBAAD,OARrC,CADD;AAYA","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Children } from '@wordpress/element';\nimport { BottomSheetConsumer } from '@wordpress/components';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport groups from './groups';\nimport useDisplayBlockControls from '../use-display-block-controls';\nimport { BlockSettingsButton } from '../block-settings';\n\nexport default function InspectorControlsFill( {\n\tchildren,\n\t__experimentalGroup: group = 'default',\n\t...props\n} ) {\n\tconst isDisplayed = useDisplayBlockControls();\n\n\tconst Fill = groups[ group ]?.Fill;\n\tif ( ! Fill ) {\n\t\twarning( `Unknown InspectorControl group \"${ group }\" provided.` );\n\t\treturn null;\n\t}\n\tif ( ! isDisplayed ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Fill { ...props }>\n\t\t\t\t{\n\t\t\t\t\t<BottomSheetConsumer>\n\t\t\t\t\t\t{ () => <View>{ children }</View> }\n\t\t\t\t\t</BottomSheetConsumer>\n\t\t\t\t}\n\t\t\t</Fill>\n\t\t\t{ Children.count( children ) > 0 && <BlockSettingsButton /> }\n\t\t</>\n\t);\n}\n"]}
@@ -4,11 +4,13 @@
4
4
  import { createSlotFill } from '@wordpress/components';
5
5
  const InspectorControlsDefault = createSlotFill('InspectorControls');
6
6
  const InspectorControlsAdvanced = createSlotFill('InspectorAdvancedControls');
7
+ const InspectorControlsBorder = createSlotFill('InspectorControlsBorder');
7
8
  const InspectorControlsDimensions = createSlotFill('InspectorControlsDimensions');
8
9
  const InspectorControlsTypography = createSlotFill('InspectorControlsTypography');
9
10
  const groups = {
10
11
  default: InspectorControlsDefault,
11
12
  advanced: InspectorControlsAdvanced,
13
+ border: InspectorControlsBorder,
12
14
  dimensions: InspectorControlsDimensions,
13
15
  typography: InspectorControlsTypography
14
16
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inspector-controls/groups.js"],"names":["createSlotFill","InspectorControlsDefault","InspectorControlsAdvanced","InspectorControlsDimensions","InspectorControlsTypography","groups","default","advanced","dimensions","typography"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,cAAT,QAA+B,uBAA/B;AAEA,MAAMC,wBAAwB,GAAGD,cAAc,CAAE,mBAAF,CAA/C;AACA,MAAME,yBAAyB,GAAGF,cAAc,CAAE,2BAAF,CAAhD;AACA,MAAMG,2BAA2B,GAAGH,cAAc,CACjD,6BADiD,CAAlD;AAGA,MAAMI,2BAA2B,GAAGJ,cAAc,CACjD,6BADiD,CAAlD;AAIA,MAAMK,MAAM,GAAG;AACdC,EAAAA,OAAO,EAAEL,wBADK;AAEdM,EAAAA,QAAQ,EAAEL,yBAFI;AAGdM,EAAAA,UAAU,EAAEL,2BAHE;AAIdM,EAAAA,UAAU,EAAEL;AAJE,CAAf;AAOA,eAAeC,MAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createSlotFill } from '@wordpress/components';\n\nconst InspectorControlsDefault = createSlotFill( 'InspectorControls' );\nconst InspectorControlsAdvanced = createSlotFill( 'InspectorAdvancedControls' );\nconst InspectorControlsDimensions = createSlotFill(\n\t'InspectorControlsDimensions'\n);\nconst InspectorControlsTypography = createSlotFill(\n\t'InspectorControlsTypography'\n);\n\nconst groups = {\n\tdefault: InspectorControlsDefault,\n\tadvanced: InspectorControlsAdvanced,\n\tdimensions: InspectorControlsDimensions,\n\ttypography: InspectorControlsTypography,\n};\n\nexport default groups;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inspector-controls/groups.js"],"names":["createSlotFill","InspectorControlsDefault","InspectorControlsAdvanced","InspectorControlsBorder","InspectorControlsDimensions","InspectorControlsTypography","groups","default","advanced","border","dimensions","typography"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,cAAT,QAA+B,uBAA/B;AAEA,MAAMC,wBAAwB,GAAGD,cAAc,CAAE,mBAAF,CAA/C;AACA,MAAME,yBAAyB,GAAGF,cAAc,CAAE,2BAAF,CAAhD;AACA,MAAMG,uBAAuB,GAAGH,cAAc,CAAE,yBAAF,CAA9C;AACA,MAAMI,2BAA2B,GAAGJ,cAAc,CACjD,6BADiD,CAAlD;AAGA,MAAMK,2BAA2B,GAAGL,cAAc,CACjD,6BADiD,CAAlD;AAIA,MAAMM,MAAM,GAAG;AACdC,EAAAA,OAAO,EAAEN,wBADK;AAEdO,EAAAA,QAAQ,EAAEN,yBAFI;AAGdO,EAAAA,MAAM,EAAEN,uBAHM;AAIdO,EAAAA,UAAU,EAAEN,2BAJE;AAKdO,EAAAA,UAAU,EAAEN;AALE,CAAf;AAQA,eAAeC,MAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createSlotFill } from '@wordpress/components';\n\nconst InspectorControlsDefault = createSlotFill( 'InspectorControls' );\nconst InspectorControlsAdvanced = createSlotFill( 'InspectorAdvancedControls' );\nconst InspectorControlsBorder = createSlotFill( 'InspectorControlsBorder' );\nconst InspectorControlsDimensions = createSlotFill(\n\t'InspectorControlsDimensions'\n);\nconst InspectorControlsTypography = createSlotFill(\n\t'InspectorControlsTypography'\n);\n\nconst groups = {\n\tdefault: InspectorControlsDefault,\n\tadvanced: InspectorControlsAdvanced,\n\tborder: InspectorControlsBorder,\n\tdimensions: InspectorControlsDimensions,\n\ttypography: InspectorControlsTypography,\n};\n\nexport default groups;\n"]}
@@ -18,7 +18,6 @@ export default function InspectorControlsSlot(_ref) {
18
18
 
19
19
  let {
20
20
  __experimentalGroup: group = 'default',
21
- bubblesVirtually = true,
22
21
  label,
23
22
  ...props
24
23
  } = _ref;
@@ -41,13 +40,12 @@ export default function InspectorControlsSlot(_ref) {
41
40
  group: group,
42
41
  label: label
43
42
  }, createElement(BlockSupportSlotContainer, _extends({}, props, {
44
- bubblesVirtually: bubblesVirtually,
45
43
  Slot: Slot
46
44
  })));
47
45
  }
48
46
 
49
47
  return createElement(Slot, _extends({}, props, {
50
- bubblesVirtually: bubblesVirtually
48
+ bubblesVirtually: true
51
49
  }));
52
50
  }
53
51
  //# sourceMappingURL=slot.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/inspector-controls/slot.js"],"names":["__experimentalUseSlot","useSlot","warning","BlockSupportToolsPanel","BlockSupportSlotContainer","groups","InspectorControlsSlot","__experimentalGroup","group","bubblesVirtually","label","props","Slot","slot","__unstableName","hasFills","Boolean","fills","length"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,qBAAqB,IAAIC,OAAlC,QAAiD,uBAAjD;AACA,OAAOC,OAAP,MAAoB,oBAApB;AAEA;AACA;AACA;;AACA,OAAOC,sBAAP,MAAmC,6BAAnC;AACA,OAAOC,yBAAP,MAAsC,gCAAtC;AACA,OAAOC,MAAP,MAAmB,UAAnB;AAEA,eAAe,SAASC,qBAAT,OAKX;AAAA;;AAAA,MAL2C;AAC9CC,IAAAA,mBAAmB,EAAEC,KAAK,GAAG,SADiB;AAE9CC,IAAAA,gBAAgB,GAAG,IAF2B;AAG9CC,IAAAA,KAH8C;AAI9C,OAAGC;AAJ2C,GAK3C;AACH,QAAMC,IAAI,oBAAGP,MAAM,CAAEG,KAAF,CAAT,kDAAG,cAAiBI,IAA9B;AACA,QAAMC,IAAI,GAAGZ,OAAO,CAAEW,IAAF,aAAEA,IAAF,uBAAEA,IAAI,CAAEE,cAAR,CAApB;;AACA,MAAK,CAAEF,IAAF,IAAU,CAAEC,IAAjB,EAAwB;AACvB,6FAAAX,OAAO,CAAG,mCAAmCM,KAAO,aAA7C,CAAP;AACA,WAAO,IAAP;AACA;;AAED,QAAMO,QAAQ,GAAGC,OAAO,CAAEH,IAAI,CAACI,KAAL,IAAcJ,IAAI,CAACI,KAAL,CAAWC,MAA3B,CAAxB;;AACA,MAAK,CAAEH,QAAP,EAAkB;AACjB,WAAO,IAAP;AACA;;AAED,MAAKL,KAAL,EAAa;AACZ,WACC,cAAC,sBAAD;AAAwB,MAAA,KAAK,EAAGF,KAAhC;AAAwC,MAAA,KAAK,EAAGE;AAAhD,OACC,cAAC,yBAAD,eACMC,KADN;AAEC,MAAA,gBAAgB,EAAGF,gBAFpB;AAGC,MAAA,IAAI,EAAGG;AAHR,OADD,CADD;AASA;;AAED,SAAO,cAAC,IAAD,eAAWD,KAAX;AAAmB,IAAA,gBAAgB,EAAGF;AAAtC,KAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalUseSlot as useSlot } from '@wordpress/components';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport BlockSupportToolsPanel from './block-support-tools-panel';\nimport BlockSupportSlotContainer from './block-support-slot-container';\nimport groups from './groups';\n\nexport default function InspectorControlsSlot( {\n\t__experimentalGroup: group = 'default',\n\tbubblesVirtually = true,\n\tlabel,\n\t...props\n} ) {\n\tconst Slot = groups[ group ]?.Slot;\n\tconst slot = useSlot( Slot?.__unstableName );\n\tif ( ! Slot || ! slot ) {\n\t\twarning( `Unknown InspectorControl group \"${ group }\" provided.` );\n\t\treturn null;\n\t}\n\n\tconst hasFills = Boolean( slot.fills && slot.fills.length );\n\tif ( ! hasFills ) {\n\t\treturn null;\n\t}\n\n\tif ( label ) {\n\t\treturn (\n\t\t\t<BlockSupportToolsPanel group={ group } label={ label }>\n\t\t\t\t<BlockSupportSlotContainer\n\t\t\t\t\t{ ...props }\n\t\t\t\t\tbubblesVirtually={ bubblesVirtually }\n\t\t\t\t\tSlot={ Slot }\n\t\t\t\t/>\n\t\t\t</BlockSupportToolsPanel>\n\t\t);\n\t}\n\n\treturn <Slot { ...props } bubblesVirtually={ bubblesVirtually } />;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/inspector-controls/slot.js"],"names":["__experimentalUseSlot","useSlot","warning","BlockSupportToolsPanel","BlockSupportSlotContainer","groups","InspectorControlsSlot","__experimentalGroup","group","label","props","Slot","slot","__unstableName","hasFills","Boolean","fills","length"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,qBAAqB,IAAIC,OAAlC,QAAiD,uBAAjD;AACA,OAAOC,OAAP,MAAoB,oBAApB;AAEA;AACA;AACA;;AACA,OAAOC,sBAAP,MAAmC,6BAAnC;AACA,OAAOC,yBAAP,MAAsC,gCAAtC;AACA,OAAOC,MAAP,MAAmB,UAAnB;AAEA,eAAe,SAASC,qBAAT,OAIX;AAAA;;AAAA,MAJ2C;AAC9CC,IAAAA,mBAAmB,EAAEC,KAAK,GAAG,SADiB;AAE9CC,IAAAA,KAF8C;AAG9C,OAAGC;AAH2C,GAI3C;AACH,QAAMC,IAAI,oBAAGN,MAAM,CAAEG,KAAF,CAAT,kDAAG,cAAiBG,IAA9B;AACA,QAAMC,IAAI,GAAGX,OAAO,CAAEU,IAAF,aAAEA,IAAF,uBAAEA,IAAI,CAAEE,cAAR,CAApB;;AACA,MAAK,CAAEF,IAAF,IAAU,CAAEC,IAAjB,EAAwB;AACvB,6FAAAV,OAAO,CAAG,mCAAmCM,KAAO,aAA7C,CAAP;AACA,WAAO,IAAP;AACA;;AAED,QAAMM,QAAQ,GAAGC,OAAO,CAAEH,IAAI,CAACI,KAAL,IAAcJ,IAAI,CAACI,KAAL,CAAWC,MAA3B,CAAxB;;AACA,MAAK,CAAEH,QAAP,EAAkB;AACjB,WAAO,IAAP;AACA;;AAED,MAAKL,KAAL,EAAa;AACZ,WACC,cAAC,sBAAD;AAAwB,MAAA,KAAK,EAAGD,KAAhC;AAAwC,MAAA,KAAK,EAAGC;AAAhD,OACC,cAAC,yBAAD,eAAgCC,KAAhC;AAAwC,MAAA,IAAI,EAAGC;AAA/C,OADD,CADD;AAKA;;AAED,SAAO,cAAC,IAAD,eAAWD,KAAX;AAAmB,IAAA,gBAAgB;AAAnC,KAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalUseSlot as useSlot } from '@wordpress/components';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport BlockSupportToolsPanel from './block-support-tools-panel';\nimport BlockSupportSlotContainer from './block-support-slot-container';\nimport groups from './groups';\n\nexport default function InspectorControlsSlot( {\n\t__experimentalGroup: group = 'default',\n\tlabel,\n\t...props\n} ) {\n\tconst Slot = groups[ group ]?.Slot;\n\tconst slot = useSlot( Slot?.__unstableName );\n\tif ( ! Slot || ! slot ) {\n\t\twarning( `Unknown InspectorControl group \"${ group }\" provided.` );\n\t\treturn null;\n\t}\n\n\tconst hasFills = Boolean( slot.fills && slot.fills.length );\n\tif ( ! hasFills ) {\n\t\treturn null;\n\t}\n\n\tif ( label ) {\n\t\treturn (\n\t\t\t<BlockSupportToolsPanel group={ group } label={ label }>\n\t\t\t\t<BlockSupportSlotContainer { ...props } Slot={ Slot } />\n\t\t\t</BlockSupportToolsPanel>\n\t\t);\n\t}\n\n\treturn <Slot { ...props } bubblesVirtually />;\n}\n"]}
@@ -13,12 +13,12 @@ import useSetting from '../../components/use-setting';
13
13
  /**
14
14
  * Control for letter-spacing.
15
15
  *
16
- * @param {Object} props Component props.
17
- * @param {string} props.value Currently selected letter-spacing.
18
- * @param {Function} props.onChange Handles change in letter-spacing selection.
19
- * @param {boolean} props.__unstableInputWidth Input width to pass through to inner UnitControl.
16
+ * @param {Object} props Component props.
17
+ * @param {string} props.value Currently selected letter-spacing.
18
+ * @param {Function} props.onChange Handles change in letter-spacing selection.
19
+ * @param {string|number|undefined} props.__unstableInputWidth Input width to pass through to inner UnitControl. Should be a valid CSS value.
20
20
  *
21
- * @return {WPElement} Letter-spacing control.
21
+ * @return {WPElement} Letter-spacing control.
22
22
  */
23
23
 
24
24
  export default function LetterSpacingControl(_ref) {
@@ -36,7 +36,7 @@ export default function LetterSpacingControl(_ref) {
36
36
  }
37
37
  });
38
38
  return createElement(UnitControl, {
39
- label: __('Letter-spacing'),
39
+ label: __('Letter spacing'),
40
40
  value: value,
41
41
  __unstableInputWidth: __unstableInputWidth,
42
42
  units: units,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/letter-spacing-control/index.js"],"names":["__experimentalUnitControl","UnitControl","__experimentalUseCustomUnits","useCustomUnits","__","useSetting","LetterSpacingControl","value","onChange","__unstableInputWidth","units","availableUnits","defaultValues","px","em","rem"],"mappings":";;AAAA;AACA;AACA;AACA,SACCA,yBAAyB,IAAIC,WAD9B,EAECC,4BAA4B,IAAIC,cAFjC,QAGO,uBAHP;AAIA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;;AACA,OAAOC,UAAP,MAAuB,8BAAvB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAe,SAASC,oBAAT,OAIX;AAAA,MAJ0C;AAC7CC,IAAAA,KAD6C;AAE7CC,IAAAA,QAF6C;AAG7CC,IAAAA,oBAAoB,GAAG;AAHsB,GAI1C;AACH,QAAMC,KAAK,GAAGP,cAAc,CAAE;AAC7BQ,IAAAA,cAAc,EAAEN,UAAU,CAAE,eAAF,CAAV,IAAiC,CAAE,IAAF,EAAQ,IAAR,EAAc,KAAd,CADpB;AAE7BO,IAAAA,aAAa,EAAE;AAAEC,MAAAA,EAAE,EAAE,GAAN;AAAWC,MAAAA,EAAE,EAAE,IAAf;AAAqBC,MAAAA,GAAG,EAAE;AAA1B;AAFc,GAAF,CAA5B;AAIA,SACC,cAAC,WAAD;AACC,IAAA,KAAK,EAAGX,EAAE,CAAE,gBAAF,CADX;AAEC,IAAA,KAAK,EAAGG,KAFT;AAGC,IAAA,oBAAoB,EAAGE,oBAHxB;AAIC,IAAA,KAAK,EAAGC,KAJT;AAKC,IAAA,QAAQ,EAAGF;AALZ,IADD;AASA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useSetting from '../../components/use-setting';\n\n/**\n * Control for letter-spacing.\n *\n * @param {Object} props Component props.\n * @param {string} props.value Currently selected letter-spacing.\n * @param {Function} props.onChange Handles change in letter-spacing selection.\n * @param {boolean} props.__unstableInputWidth Input width to pass through to inner UnitControl.\n *\n * @return {WPElement} Letter-spacing control.\n */\nexport default function LetterSpacingControl( {\n\tvalue,\n\tonChange,\n\t__unstableInputWidth = '60px',\n} ) {\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [ 'px', 'em', 'rem' ],\n\t\tdefaultValues: { px: '2', em: '.2', rem: '.2' },\n\t} );\n\treturn (\n\t\t<UnitControl\n\t\t\tlabel={ __( 'Letter-spacing' ) }\n\t\t\tvalue={ value }\n\t\t\t__unstableInputWidth={ __unstableInputWidth }\n\t\t\tunits={ units }\n\t\t\tonChange={ onChange }\n\t\t/>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/letter-spacing-control/index.js"],"names":["__experimentalUnitControl","UnitControl","__experimentalUseCustomUnits","useCustomUnits","__","useSetting","LetterSpacingControl","value","onChange","__unstableInputWidth","units","availableUnits","defaultValues","px","em","rem"],"mappings":";;AAAA;AACA;AACA;AACA,SACCA,yBAAyB,IAAIC,WAD9B,EAECC,4BAA4B,IAAIC,cAFjC,QAGO,uBAHP;AAIA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;;AACA,OAAOC,UAAP,MAAuB,8BAAvB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAe,SAASC,oBAAT,OAIX;AAAA,MAJ0C;AAC7CC,IAAAA,KAD6C;AAE7CC,IAAAA,QAF6C;AAG7CC,IAAAA,oBAAoB,GAAG;AAHsB,GAI1C;AACH,QAAMC,KAAK,GAAGP,cAAc,CAAE;AAC7BQ,IAAAA,cAAc,EAAEN,UAAU,CAAE,eAAF,CAAV,IAAiC,CAAE,IAAF,EAAQ,IAAR,EAAc,KAAd,CADpB;AAE7BO,IAAAA,aAAa,EAAE;AAAEC,MAAAA,EAAE,EAAE,GAAN;AAAWC,MAAAA,EAAE,EAAE,IAAf;AAAqBC,MAAAA,GAAG,EAAE;AAA1B;AAFc,GAAF,CAA5B;AAIA,SACC,cAAC,WAAD;AACC,IAAA,KAAK,EAAGX,EAAE,CAAE,gBAAF,CADX;AAEC,IAAA,KAAK,EAAGG,KAFT;AAGC,IAAA,oBAAoB,EAAGE,oBAHxB;AAIC,IAAA,KAAK,EAAGC,KAJT;AAKC,IAAA,QAAQ,EAAGF;AALZ,IADD;AASA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useSetting from '../../components/use-setting';\n\n/**\n * Control for letter-spacing.\n *\n * @param {Object} props Component props.\n * @param {string} props.value Currently selected letter-spacing.\n * @param {Function} props.onChange Handles change in letter-spacing selection.\n * @param {string|number|undefined} props.__unstableInputWidth Input width to pass through to inner UnitControl. Should be a valid CSS value.\n *\n * @return {WPElement} Letter-spacing control.\n */\nexport default function LetterSpacingControl( {\n\tvalue,\n\tonChange,\n\t__unstableInputWidth = '60px',\n} ) {\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [ 'px', 'em', 'rem' ],\n\t\tdefaultValues: { px: '2', em: '.2', rem: '.2' },\n\t} );\n\treturn (\n\t\t<UnitControl\n\t\t\tlabel={ __( 'Letter spacing' ) }\n\t\t\tvalue={ value }\n\t\t\t__unstableInputWidth={ __unstableInputWidth }\n\t\t\tunits={ units }\n\t\t\tonChange={ onChange }\n\t\t/>\n\t);\n}\n"]}
@@ -83,7 +83,7 @@ export default function LinkPreview(_ref) {
83
83
  className: "block-editor-link-control__search-item-info"
84
84
  }, displayURL)) : createElement("span", {
85
85
  className: "block-editor-link-control__search-item-error-notice"
86
- }, "Link is empty"))), createElement(Button, {
86
+ }, __('Link is empty')))), createElement(Button, {
87
87
  icon: edit,
88
88
  label: __('Edit'),
89
89
  className: "block-editor-link-control__search-item-action",
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/link-control/link-preview.js"],"names":["classnames","__","Button","ExternalLink","__experimentalText","Text","filterURLForDisplay","safeDecodeURI","Icon","globe","info","linkOff","edit","__unstableStripHTML","stripHTML","ViewerSlot","useRichUrlData","LinkPreview","value","onEditClick","hasRichPreviews","hasUnlinkControl","onRemove","showRichPreviews","url","richData","isFetching","hasRichData","Object","keys","length","displayURL","displayTitle","title","isEmptyURL","icon","image","description"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tExternalLink,\n\t__experimentalText as Text,\n} from '@wordpress/components';\nimport { filterURLForDisplay, safeDecodeURI } from '@wordpress/url';\nimport { Icon, globe, info, linkOff, edit } from '@wordpress/icons';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport { ViewerSlot } from './viewer-slot';\n\nimport useRichUrlData from './use-rich-url-data';\n\nexport default function LinkPreview( {\n\tvalue,\n\tonEditClick,\n\thasRichPreviews = false,\n\thasUnlinkControl = false,\n\tonRemove,\n} ) {\n\t// Avoid fetching if rich previews are not desired.\n\tconst showRichPreviews = hasRichPreviews ? value?.url : null;\n\n\tconst { richData, isFetching } = useRichUrlData( showRichPreviews );\n\n\t// Rich data may be an empty object so test for that.\n\tconst hasRichData = richData && Object.keys( richData ).length;\n\n\tconst displayURL =\n\t\t( value && filterURLForDisplay( safeDecodeURI( value.url ), 16 ) ) ||\n\t\t'';\n\n\tconst displayTitle = richData?.title || value?.title || displayURL;\n\n\tconst isEmptyURL = ! value.url.length;\n\n\tlet icon;\n\n\tif ( richData?.icon ) {\n\t\ticon = <img src={ richData?.icon } alt=\"\" />;\n\t} else if ( isEmptyURL ) {\n\t\ticon = <Icon icon={ info } size={ 32 } />;\n\t} else {\n\t\ticon = <Icon icon={ globe } />;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\taria-label={ __( 'Currently selected' ) }\n\t\t\taria-selected=\"true\"\n\t\t\tclassName={ classnames( 'block-editor-link-control__search-item', {\n\t\t\t\t'is-current': true,\n\t\t\t\t'is-rich': hasRichData,\n\t\t\t\t'is-fetching': !! isFetching,\n\t\t\t\t'is-preview': true,\n\t\t\t\t'is-error': isEmptyURL,\n\t\t\t} ) }\n\t\t>\n\t\t\t<div className=\"block-editor-link-control__search-item-top\">\n\t\t\t\t<span className=\"block-editor-link-control__search-item-header\">\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'block-editor-link-control__search-item-icon',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-image': richData?.icon,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ icon }\n\t\t\t\t\t</span>\n\t\t\t\t\t<span className=\"block-editor-link-control__search-item-details\">\n\t\t\t\t\t\t{ ! isEmptyURL ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-link-control__search-item-title\"\n\t\t\t\t\t\t\t\t\thref={ value.url }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ stripHTML( displayTitle ) }\n\t\t\t\t\t\t\t\t</ExternalLink>\n\n\t\t\t\t\t\t\t\t{ value?.url && (\n\t\t\t\t\t\t\t\t\t<span className=\"block-editor-link-control__search-item-info\">\n\t\t\t\t\t\t\t\t\t\t{ displayURL }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<span className=\"block-editor-link-control__search-item-error-notice\">\n\t\t\t\t\t\t\t\tLink is empty\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\n\t\t\t\t<Button\n\t\t\t\t\ticon={ edit }\n\t\t\t\t\tlabel={ __( 'Edit' ) }\n\t\t\t\t\tclassName=\"block-editor-link-control__search-item-action\"\n\t\t\t\t\tonClick={ onEditClick }\n\t\t\t\t\ticonSize={ 24 }\n\t\t\t\t/>\n\t\t\t\t{ hasUnlinkControl && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ linkOff }\n\t\t\t\t\t\tlabel={ __( 'Unlink' ) }\n\t\t\t\t\t\tclassName=\"block-editor-link-control__search-item-action block-editor-link-control__unlink\"\n\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t\ticonSize={ 24 }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<ViewerSlot fillProps={ value } />\n\t\t\t</div>\n\n\t\t\t{ ( ( hasRichData &&\n\t\t\t\t( richData?.image || richData?.description ) ) ||\n\t\t\t\tisFetching ) && (\n\t\t\t\t<div className=\"block-editor-link-control__search-item-bottom\">\n\t\t\t\t\t{ ( richData?.image || isFetching ) && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\taria-hidden={ ! richData?.image }\n\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t'block-editor-link-control__search-item-image',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t'is-placeholder': ! richData?.image,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ richData?.image && (\n\t\t\t\t\t\t\t\t<img src={ richData?.image } alt=\"\" />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ ( richData?.description || isFetching ) && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\taria-hidden={ ! richData?.description }\n\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t'block-editor-link-control__search-item-description',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t'is-placeholder': ! richData?.description,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ richData?.description && (\n\t\t\t\t\t\t\t\t<Text truncate numberOfLines=\"2\">\n\t\t\t\t\t\t\t\t\t{ richData.description }\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/link-control/link-preview.js"],"names":["classnames","__","Button","ExternalLink","__experimentalText","Text","filterURLForDisplay","safeDecodeURI","Icon","globe","info","linkOff","edit","__unstableStripHTML","stripHTML","ViewerSlot","useRichUrlData","LinkPreview","value","onEditClick","hasRichPreviews","hasUnlinkControl","onRemove","showRichPreviews","url","richData","isFetching","hasRichData","Object","keys","length","displayURL","displayTitle","title","isEmptyURL","icon","image","description"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SACCC,MADD,EAECC,YAFD,EAGCC,kBAAkB,IAAIC,IAHvB,QAIO,uBAJP;AAKA,SAASC,mBAAT,EAA8BC,aAA9B,QAAmD,gBAAnD;AACA,SAASC,IAAT,EAAeC,KAAf,EAAsBC,IAAtB,EAA4BC,OAA5B,EAAqCC,IAArC,QAAiD,kBAAjD;AACA,SAASC,mBAAmB,IAAIC,SAAhC,QAAiD,gBAAjD;AAEA;AACA;AACA;;AACA,SAASC,UAAT,QAA2B,eAA3B;AAEA,OAAOC,cAAP,MAA2B,qBAA3B;AAEA,eAAe,SAASC,WAAT,OAMX;AAAA,MANiC;AACpCC,IAAAA,KADoC;AAEpCC,IAAAA,WAFoC;AAGpCC,IAAAA,eAAe,GAAG,KAHkB;AAIpCC,IAAAA,gBAAgB,GAAG,KAJiB;AAKpCC,IAAAA;AALoC,GAMjC;AACH;AACA,QAAMC,gBAAgB,GAAGH,eAAe,GAAGF,KAAH,aAAGA,KAAH,uBAAGA,KAAK,CAAEM,GAAV,GAAgB,IAAxD;AAEA,QAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,MAA2BV,cAAc,CAAEO,gBAAF,CAA/C,CAJG,CAMH;;AACA,QAAMI,WAAW,GAAGF,QAAQ,IAAIG,MAAM,CAACC,IAAP,CAAaJ,QAAb,EAAwBK,MAAxD;AAEA,QAAMC,UAAU,GACbb,KAAK,IAAIZ,mBAAmB,CAAEC,aAAa,CAAEW,KAAK,CAACM,GAAR,CAAf,EAA8B,EAA9B,CAA9B,IACA,EAFD;AAIA,QAAMQ,YAAY,GAAG,CAAAP,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEQ,KAAV,MAAmBf,KAAnB,aAAmBA,KAAnB,uBAAmBA,KAAK,CAAEe,KAA1B,KAAmCF,UAAxD;AAEA,QAAMG,UAAU,GAAG,CAAEhB,KAAK,CAACM,GAAN,CAAUM,MAA/B;AAEA,MAAIK,IAAJ;;AAEA,MAAKV,QAAL,aAAKA,QAAL,eAAKA,QAAQ,CAAEU,IAAf,EAAsB;AACrBA,IAAAA,IAAI,GAAG;AAAK,MAAA,GAAG,EAAGV,QAAH,aAAGA,QAAH,uBAAGA,QAAQ,CAAEU,IAArB;AAA4B,MAAA,GAAG,EAAC;AAAhC,MAAP;AACA,GAFD,MAEO,IAAKD,UAAL,EAAkB;AACxBC,IAAAA,IAAI,GAAG,cAAC,IAAD;AAAM,MAAA,IAAI,EAAGzB,IAAb;AAAoB,MAAA,IAAI,EAAG;AAA3B,MAAP;AACA,GAFM,MAEA;AACNyB,IAAAA,IAAI,GAAG,cAAC,IAAD;AAAM,MAAA,IAAI,EAAG1B;AAAb,MAAP;AACA;;AAED,SACC;AACC,kBAAaR,EAAE,CAAE,oBAAF,CADhB;AAEC,qBAAc,MAFf;AAGC,IAAA,SAAS,EAAGD,UAAU,CAAE,wCAAF,EAA4C;AACjE,oBAAc,IADmD;AAEjE,iBAAW2B,WAFsD;AAGjE,qBAAe,CAAC,CAAED,UAH+C;AAIjE,oBAAc,IAJmD;AAKjE,kBAAYQ;AALqD,KAA5C;AAHvB,KAWC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC;AAAM,IAAA,SAAS,EAAC;AAAhB,KACC;AACC,IAAA,SAAS,EAAGlC,UAAU,CACrB,6CADqB,EAErB;AACC,kBAAYyB,QAAZ,aAAYA,QAAZ,uBAAYA,QAAQ,CAAEU;AADvB,KAFqB;AADvB,KAQGA,IARH,CADD,EAWC;AAAM,IAAA,SAAS,EAAC;AAAhB,KACG,CAAED,UAAF,GACD,8BACC,cAAC,YAAD;AACC,IAAA,SAAS,EAAC,8CADX;AAEC,IAAA,IAAI,EAAGhB,KAAK,CAACM;AAFd,KAIGV,SAAS,CAAEkB,YAAF,CAJZ,CADD,EAQG,CAAAd,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEM,GAAP,KACD;AAAM,IAAA,SAAS,EAAC;AAAhB,KACGO,UADH,CATF,CADC,GAgBD;AAAM,IAAA,SAAS,EAAC;AAAhB,KACG9B,EAAE,CAAE,eAAF,CADL,CAjBF,CAXD,CADD,EAoCC,cAAC,MAAD;AACC,IAAA,IAAI,EAAGW,IADR;AAEC,IAAA,KAAK,EAAGX,EAAE,CAAE,MAAF,CAFX;AAGC,IAAA,SAAS,EAAC,+CAHX;AAIC,IAAA,OAAO,EAAGkB,WAJX;AAKC,IAAA,QAAQ,EAAG;AALZ,IApCD,EA2CGE,gBAAgB,IACjB,cAAC,MAAD;AACC,IAAA,IAAI,EAAGV,OADR;AAEC,IAAA,KAAK,EAAGV,EAAE,CAAE,QAAF,CAFX;AAGC,IAAA,SAAS,EAAC,iFAHX;AAIC,IAAA,OAAO,EAAGqB,QAJX;AAKC,IAAA,QAAQ,EAAG;AALZ,IA5CF,EAoDC,cAAC,UAAD;AAAY,IAAA,SAAS,EAAGJ;AAAxB,IApDD,CAXD,EAkEG,CAAIS,WAAW,KACd,CAAAF,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEW,KAAV,MAAmBX,QAAnB,aAAmBA,QAAnB,uBAAmBA,QAAQ,CAAEY,WAA7B,CADc,CAAb,IAEHX,UAFC,KAGD;AAAK,IAAA,SAAS,EAAC;AAAf,KACG,CAAE,CAAAD,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEW,KAAV,KAAmBV,UAArB,KACD;AACC,mBAAc,EAAED,QAAF,aAAEA,QAAF,eAAEA,QAAQ,CAAEW,KAAZ,CADf;AAEC,IAAA,SAAS,EAAGpC,UAAU,CACrB,8CADqB,EAErB;AACC,wBAAkB,EAAEyB,QAAF,aAAEA,QAAF,eAAEA,QAAQ,CAAEW,KAAZ;AADnB,KAFqB;AAFvB,KASG,CAAAX,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEW,KAAV,KACD;AAAK,IAAA,GAAG,EAAGX,QAAH,aAAGA,QAAH,uBAAGA,QAAQ,CAAEW,KAArB;AAA6B,IAAA,GAAG,EAAC;AAAjC,IAVF,CAFF,EAiBG,CAAE,CAAAX,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEY,WAAV,KAAyBX,UAA3B,KACD;AACC,mBAAc,EAAED,QAAF,aAAEA,QAAF,eAAEA,QAAQ,CAAEY,WAAZ,CADf;AAEC,IAAA,SAAS,EAAGrC,UAAU,CACrB,oDADqB,EAErB;AACC,wBAAkB,EAAEyB,QAAF,aAAEA,QAAF,eAAEA,QAAQ,CAAEY,WAAZ;AADnB,KAFqB;AAFvB,KASG,CAAAZ,QAAQ,SAAR,IAAAA,QAAQ,WAAR,YAAAA,QAAQ,CAAEY,WAAV,KACD,cAAC,IAAD;AAAM,IAAA,QAAQ,MAAd;AAAe,IAAA,aAAa,EAAC;AAA7B,KACGZ,QAAQ,CAACY,WADZ,CAVF,CAlBF,CArEF,CADD;AA4GA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tExternalLink,\n\t__experimentalText as Text,\n} from '@wordpress/components';\nimport { filterURLForDisplay, safeDecodeURI } from '@wordpress/url';\nimport { Icon, globe, info, linkOff, edit } from '@wordpress/icons';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport { ViewerSlot } from './viewer-slot';\n\nimport useRichUrlData from './use-rich-url-data';\n\nexport default function LinkPreview( {\n\tvalue,\n\tonEditClick,\n\thasRichPreviews = false,\n\thasUnlinkControl = false,\n\tonRemove,\n} ) {\n\t// Avoid fetching if rich previews are not desired.\n\tconst showRichPreviews = hasRichPreviews ? value?.url : null;\n\n\tconst { richData, isFetching } = useRichUrlData( showRichPreviews );\n\n\t// Rich data may be an empty object so test for that.\n\tconst hasRichData = richData && Object.keys( richData ).length;\n\n\tconst displayURL =\n\t\t( value && filterURLForDisplay( safeDecodeURI( value.url ), 16 ) ) ||\n\t\t'';\n\n\tconst displayTitle = richData?.title || value?.title || displayURL;\n\n\tconst isEmptyURL = ! value.url.length;\n\n\tlet icon;\n\n\tif ( richData?.icon ) {\n\t\ticon = <img src={ richData?.icon } alt=\"\" />;\n\t} else if ( isEmptyURL ) {\n\t\ticon = <Icon icon={ info } size={ 32 } />;\n\t} else {\n\t\ticon = <Icon icon={ globe } />;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\taria-label={ __( 'Currently selected' ) }\n\t\t\taria-selected=\"true\"\n\t\t\tclassName={ classnames( 'block-editor-link-control__search-item', {\n\t\t\t\t'is-current': true,\n\t\t\t\t'is-rich': hasRichData,\n\t\t\t\t'is-fetching': !! isFetching,\n\t\t\t\t'is-preview': true,\n\t\t\t\t'is-error': isEmptyURL,\n\t\t\t} ) }\n\t\t>\n\t\t\t<div className=\"block-editor-link-control__search-item-top\">\n\t\t\t\t<span className=\"block-editor-link-control__search-item-header\">\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'block-editor-link-control__search-item-icon',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-image': richData?.icon,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ icon }\n\t\t\t\t\t</span>\n\t\t\t\t\t<span className=\"block-editor-link-control__search-item-details\">\n\t\t\t\t\t\t{ ! isEmptyURL ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-link-control__search-item-title\"\n\t\t\t\t\t\t\t\t\thref={ value.url }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ stripHTML( displayTitle ) }\n\t\t\t\t\t\t\t\t</ExternalLink>\n\n\t\t\t\t\t\t\t\t{ value?.url && (\n\t\t\t\t\t\t\t\t\t<span className=\"block-editor-link-control__search-item-info\">\n\t\t\t\t\t\t\t\t\t\t{ displayURL }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<span className=\"block-editor-link-control__search-item-error-notice\">\n\t\t\t\t\t\t\t\t{ __( 'Link is empty' ) }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\n\t\t\t\t<Button\n\t\t\t\t\ticon={ edit }\n\t\t\t\t\tlabel={ __( 'Edit' ) }\n\t\t\t\t\tclassName=\"block-editor-link-control__search-item-action\"\n\t\t\t\t\tonClick={ onEditClick }\n\t\t\t\t\ticonSize={ 24 }\n\t\t\t\t/>\n\t\t\t\t{ hasUnlinkControl && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ linkOff }\n\t\t\t\t\t\tlabel={ __( 'Unlink' ) }\n\t\t\t\t\t\tclassName=\"block-editor-link-control__search-item-action block-editor-link-control__unlink\"\n\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t\ticonSize={ 24 }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<ViewerSlot fillProps={ value } />\n\t\t\t</div>\n\n\t\t\t{ ( ( hasRichData &&\n\t\t\t\t( richData?.image || richData?.description ) ) ||\n\t\t\t\tisFetching ) && (\n\t\t\t\t<div className=\"block-editor-link-control__search-item-bottom\">\n\t\t\t\t\t{ ( richData?.image || isFetching ) && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\taria-hidden={ ! richData?.image }\n\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t'block-editor-link-control__search-item-image',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t'is-placeholder': ! richData?.image,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ richData?.image && (\n\t\t\t\t\t\t\t\t<img src={ richData?.image } alt=\"\" />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ ( richData?.description || isFetching ) && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\taria-hidden={ ! richData?.description }\n\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t'block-editor-link-control__search-item-description',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t'is-placeholder': ! richData?.description,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ richData?.description && (\n\t\t\t\t\t\t\t\t<Text truncate numberOfLines=\"2\">\n\t\t\t\t\t\t\t\t\t{ richData.description }\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"]}
@@ -45,7 +45,17 @@ export const LinkControlSearchItem = _ref => {
45
45
  className: "block-editor-link-control__search-item-info"
46
46
  }, !isURL && (filterURLForDisplay(safeDecodeURI(suggestion.url)) || ''), isURL && __('Press ENTER to add this link'))), shouldShowType && suggestion.type && createElement("span", {
47
47
  className: "block-editor-link-control__search-item-type"
48
- }, suggestion.type === 'post_tag' ? 'tag' : suggestion.type));
48
+ }, getVisualTypeName(suggestion)));
49
49
  };
50
+
51
+ function getVisualTypeName(suggestion) {
52
+ if (suggestion.isFrontPage) {
53
+ return 'front page';
54
+ } // Rename 'post_tag' to 'tag'. Ideally, the API would return the localised CPT or taxonomy label.
55
+
56
+
57
+ return suggestion.type === 'post_tag' ? 'tag' : suggestion.type;
58
+ }
59
+
50
60
  export default LinkControlSearchItem;
51
61
  //# sourceMappingURL=search-item.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/link-control/search-item.js"],"names":["classnames","safeDecodeURI","filterURLForDisplay","__","Button","TextHighlight","Icon","globe","LinkControlSearchItem","itemProps","suggestion","isSelected","onClick","isURL","searchTerm","shouldShowType","title","url","type"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,aAAT,EAAwBC,mBAAxB,QAAmD,gBAAnD;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,MAAT,EAAiBC,aAAjB,QAAsC,uBAAtC;AACA,SAASC,IAAT,EAAeC,KAAf,QAA4B,kBAA5B;AAEA,OAAO,MAAMC,qBAAqB,GAAG,QAQ9B;AAAA,MARgC;AACtCC,IAAAA,SADsC;AAEtCC,IAAAA,UAFsC;AAGtCC,IAAAA,UAAU,GAAG,KAHyB;AAItCC,IAAAA,OAJsC;AAKtCC,IAAAA,KAAK,GAAG,KAL8B;AAMtCC,IAAAA,UAAU,GAAG,EANyB;AAOtCC,IAAAA,cAAc,GAAG;AAPqB,GAQhC;AACN,SACC,cAAC,MAAD,eACMN,SADN;AAEC,IAAA,OAAO,EAAGG,OAFX;AAGC,IAAA,SAAS,EAAGZ,UAAU,CAAE,wCAAF,EAA4C;AACjE,qBAAeW,UADkD;AAEjE,gBAAUE,KAFuD;AAGjE,mBAAa,CAAEA;AAHkD,KAA5C;AAHvB,MASGA,KAAK,IACN,cAAC,IAAD;AACC,IAAA,SAAS,EAAC,6CADX;AAEC,IAAA,IAAI,EAAGN;AAFR,IAVF,EAeC;AAAM,IAAA,SAAS,EAAC;AAAhB,KACC;AAAM,IAAA,SAAS,EAAC;AAAhB,KACC,cAAC,aAAD;AACC,IAAA,IAAI,EAAGG,UAAU,CAACM,KADnB;AAEC,IAAA,SAAS,EAAGF;AAFb,IADD,CADD,EAOC;AACC,mBAAc,CAAED,KADjB;AAEC,IAAA,SAAS,EAAC;AAFX,KAIG,CAAEA,KAAF,KACCX,mBAAmB,CACpBD,aAAa,CAAES,UAAU,CAACO,GAAb,CADO,CAAnB,IAGD,EAJA,CAJH,EASGJ,KAAK,IAAIV,EAAE,CAAE,8BAAF,CATd,CAPD,CAfD,EAkCGY,cAAc,IAAIL,UAAU,CAACQ,IAA7B,IACD;AAAM,IAAA,SAAS,EAAC;AAAhB,KAEGR,UAAU,CAACQ,IAAX,KAAoB,UAApB,GAAiC,KAAjC,GAAyCR,UAAU,CAACQ,IAFvD,CAnCF,CADD;AA2CA,CApDM;AAsDP,eAAeV,qBAAf","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { safeDecodeURI, filterURLForDisplay } from '@wordpress/url';\nimport { __ } from '@wordpress/i18n';\nimport { Button, TextHighlight } from '@wordpress/components';\nimport { Icon, globe } from '@wordpress/icons';\n\nexport const LinkControlSearchItem = ( {\n\titemProps,\n\tsuggestion,\n\tisSelected = false,\n\tonClick,\n\tisURL = false,\n\tsearchTerm = '',\n\tshouldShowType = false,\n} ) => {\n\treturn (\n\t\t<Button\n\t\t\t{ ...itemProps }\n\t\t\tonClick={ onClick }\n\t\t\tclassName={ classnames( 'block-editor-link-control__search-item', {\n\t\t\t\t'is-selected': isSelected,\n\t\t\t\t'is-url': isURL,\n\t\t\t\t'is-entity': ! isURL,\n\t\t\t} ) }\n\t\t>\n\t\t\t{ isURL && (\n\t\t\t\t<Icon\n\t\t\t\t\tclassName=\"block-editor-link-control__search-item-icon\"\n\t\t\t\t\ticon={ globe }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<span className=\"block-editor-link-control__search-item-header\">\n\t\t\t\t<span className=\"block-editor-link-control__search-item-title\">\n\t\t\t\t\t<TextHighlight\n\t\t\t\t\t\ttext={ suggestion.title }\n\t\t\t\t\t\thighlight={ searchTerm }\n\t\t\t\t\t/>\n\t\t\t\t</span>\n\t\t\t\t<span\n\t\t\t\t\taria-hidden={ ! isURL }\n\t\t\t\t\tclassName=\"block-editor-link-control__search-item-info\"\n\t\t\t\t>\n\t\t\t\t\t{ ! isURL &&\n\t\t\t\t\t\t( filterURLForDisplay(\n\t\t\t\t\t\t\tsafeDecodeURI( suggestion.url )\n\t\t\t\t\t\t) ||\n\t\t\t\t\t\t\t'' ) }\n\t\t\t\t\t{ isURL && __( 'Press ENTER to add this link' ) }\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t\t{ shouldShowType && suggestion.type && (\n\t\t\t\t<span className=\"block-editor-link-control__search-item-type\">\n\t\t\t\t\t{ /* Rename 'post_tag' to 'tag'. Ideally, the API would return the localised CPT or taxonomy label. */ }\n\t\t\t\t\t{ suggestion.type === 'post_tag' ? 'tag' : suggestion.type }\n\t\t\t\t</span>\n\t\t\t) }\n\t\t</Button>\n\t);\n};\n\nexport default LinkControlSearchItem;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/link-control/search-item.js"],"names":["classnames","safeDecodeURI","filterURLForDisplay","__","Button","TextHighlight","Icon","globe","LinkControlSearchItem","itemProps","suggestion","isSelected","onClick","isURL","searchTerm","shouldShowType","title","url","type","getVisualTypeName","isFrontPage"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,aAAT,EAAwBC,mBAAxB,QAAmD,gBAAnD;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,MAAT,EAAiBC,aAAjB,QAAsC,uBAAtC;AACA,SAASC,IAAT,EAAeC,KAAf,QAA4B,kBAA5B;AAEA,OAAO,MAAMC,qBAAqB,GAAG,QAQ9B;AAAA,MARgC;AACtCC,IAAAA,SADsC;AAEtCC,IAAAA,UAFsC;AAGtCC,IAAAA,UAAU,GAAG,KAHyB;AAItCC,IAAAA,OAJsC;AAKtCC,IAAAA,KAAK,GAAG,KAL8B;AAMtCC,IAAAA,UAAU,GAAG,EANyB;AAOtCC,IAAAA,cAAc,GAAG;AAPqB,GAQhC;AACN,SACC,cAAC,MAAD,eACMN,SADN;AAEC,IAAA,OAAO,EAAGG,OAFX;AAGC,IAAA,SAAS,EAAGZ,UAAU,CAAE,wCAAF,EAA4C;AACjE,qBAAeW,UADkD;AAEjE,gBAAUE,KAFuD;AAGjE,mBAAa,CAAEA;AAHkD,KAA5C;AAHvB,MASGA,KAAK,IACN,cAAC,IAAD;AACC,IAAA,SAAS,EAAC,6CADX;AAEC,IAAA,IAAI,EAAGN;AAFR,IAVF,EAgBC;AAAM,IAAA,SAAS,EAAC;AAAhB,KACC;AAAM,IAAA,SAAS,EAAC;AAAhB,KACC,cAAC,aAAD;AACC,IAAA,IAAI,EAAGG,UAAU,CAACM,KADnB;AAEC,IAAA,SAAS,EAAGF;AAFb,IADD,CADD,EAOC;AACC,mBAAc,CAAED,KADjB;AAEC,IAAA,SAAS,EAAC;AAFX,KAIG,CAAEA,KAAF,KACCX,mBAAmB,CACpBD,aAAa,CAAES,UAAU,CAACO,GAAb,CADO,CAAnB,IAGD,EAJA,CAJH,EASGJ,KAAK,IAAIV,EAAE,CAAE,8BAAF,CATd,CAPD,CAhBD,EAmCGY,cAAc,IAAIL,UAAU,CAACQ,IAA7B,IACD;AAAM,IAAA,SAAS,EAAC;AAAhB,KACGC,iBAAiB,CAAET,UAAF,CADpB,CApCF,CADD;AA2CA,CApDM;;AAsDP,SAASS,iBAAT,CAA4BT,UAA5B,EAAyC;AACxC,MAAKA,UAAU,CAACU,WAAhB,EAA8B;AAC7B,WAAO,YAAP;AACA,GAHuC,CAKxC;;;AACA,SAAOV,UAAU,CAACQ,IAAX,KAAoB,UAApB,GAAiC,KAAjC,GAAyCR,UAAU,CAACQ,IAA3D;AACA;;AAED,eAAeV,qBAAf","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { safeDecodeURI, filterURLForDisplay } from '@wordpress/url';\nimport { __ } from '@wordpress/i18n';\nimport { Button, TextHighlight } from '@wordpress/components';\nimport { Icon, globe } from '@wordpress/icons';\n\nexport const LinkControlSearchItem = ( {\n\titemProps,\n\tsuggestion,\n\tisSelected = false,\n\tonClick,\n\tisURL = false,\n\tsearchTerm = '',\n\tshouldShowType = false,\n} ) => {\n\treturn (\n\t\t<Button\n\t\t\t{ ...itemProps }\n\t\t\tonClick={ onClick }\n\t\t\tclassName={ classnames( 'block-editor-link-control__search-item', {\n\t\t\t\t'is-selected': isSelected,\n\t\t\t\t'is-url': isURL,\n\t\t\t\t'is-entity': ! isURL,\n\t\t\t} ) }\n\t\t>\n\t\t\t{ isURL && (\n\t\t\t\t<Icon\n\t\t\t\t\tclassName=\"block-editor-link-control__search-item-icon\"\n\t\t\t\t\ticon={ globe }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<span className=\"block-editor-link-control__search-item-header\">\n\t\t\t\t<span className=\"block-editor-link-control__search-item-title\">\n\t\t\t\t\t<TextHighlight\n\t\t\t\t\t\ttext={ suggestion.title }\n\t\t\t\t\t\thighlight={ searchTerm }\n\t\t\t\t\t/>\n\t\t\t\t</span>\n\t\t\t\t<span\n\t\t\t\t\taria-hidden={ ! isURL }\n\t\t\t\t\tclassName=\"block-editor-link-control__search-item-info\"\n\t\t\t\t>\n\t\t\t\t\t{ ! isURL &&\n\t\t\t\t\t\t( filterURLForDisplay(\n\t\t\t\t\t\t\tsafeDecodeURI( suggestion.url )\n\t\t\t\t\t\t) ||\n\t\t\t\t\t\t\t'' ) }\n\t\t\t\t\t{ isURL && __( 'Press ENTER to add this link' ) }\n\t\t\t\t</span>\n\t\t\t</span>\n\t\t\t{ shouldShowType && suggestion.type && (\n\t\t\t\t<span className=\"block-editor-link-control__search-item-type\">\n\t\t\t\t\t{ getVisualTypeName( suggestion ) }\n\t\t\t\t</span>\n\t\t\t) }\n\t\t</Button>\n\t);\n};\n\nfunction getVisualTypeName( suggestion ) {\n\tif ( suggestion.isFrontPage ) {\n\t\treturn 'front page';\n\t}\n\n\t// Rename 'post_tag' to 'tag'. Ideally, the API would return the localised CPT or taxonomy label.\n\treturn suggestion.type === 'post_tag' ? 'tag' : suggestion.type;\n}\n\nexport default LinkControlSearchItem;\n"]}
@@ -93,7 +93,8 @@ export default function LinkControlSearchResults(_ref) {
93
93
  isSelected: index === selectedSuggestion,
94
94
  isURL: directLinkEntryTypes.includes(suggestion.type.toLowerCase()),
95
95
  searchTerm: currentInputValue,
96
- shouldShowType: shouldShowSuggestionsTypes
96
+ shouldShowType: shouldShowSuggestionsTypes,
97
+ isFrontPage: suggestion === null || suggestion === void 0 ? void 0 : suggestion.isFrontPage
97
98
  });
98
99
  })));
99
100
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/link-control/search-results.js"],"names":["__","sprintf","VisuallyHidden","classnames","createElement","Fragment","LinkControlSearchCreate","LinkControlSearchItem","CREATE_TYPE","LinkControlSearchResults","instanceId","withCreateSuggestion","currentInputValue","handleSuggestionClick","suggestionsListProps","buildSuggestionItemProps","suggestions","selectedSuggestion","isLoading","isInitialSuggestions","createSuggestionButtonText","suggestionsQuery","resultsListClasses","directLinkEntryTypes","isSingleDirectEntryResult","length","includes","type","toLowerCase","shouldShowCreateSuggestion","shouldShowSuggestionsTypes","searchResultsLabelId","labelText","searchResultsLabel","map","suggestion","index","id"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { VisuallyHidden } from '@wordpress/components';\n\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { createElement, Fragment } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport LinkControlSearchCreate from './search-create-button';\nimport LinkControlSearchItem from './search-item';\nimport { CREATE_TYPE } from './constants';\n\nexport default function LinkControlSearchResults( {\n\tinstanceId,\n\twithCreateSuggestion,\n\tcurrentInputValue,\n\thandleSuggestionClick,\n\tsuggestionsListProps,\n\tbuildSuggestionItemProps,\n\tsuggestions,\n\tselectedSuggestion,\n\tisLoading,\n\tisInitialSuggestions,\n\tcreateSuggestionButtonText,\n\tsuggestionsQuery,\n} ) {\n\tconst resultsListClasses = classnames(\n\t\t'block-editor-link-control__search-results',\n\t\t{\n\t\t\t'is-loading': isLoading,\n\t\t}\n\t);\n\n\tconst directLinkEntryTypes = [ 'url', 'mailto', 'tel', 'internal' ];\n\tconst isSingleDirectEntryResult =\n\t\tsuggestions.length === 1 &&\n\t\tdirectLinkEntryTypes.includes( suggestions[ 0 ].type.toLowerCase() );\n\tconst shouldShowCreateSuggestion =\n\t\twithCreateSuggestion &&\n\t\t! isSingleDirectEntryResult &&\n\t\t! isInitialSuggestions;\n\t// If the query has a specified type, then we can skip showing them in the result. See #24839.\n\tconst shouldShowSuggestionsTypes = ! suggestionsQuery?.type;\n\n\t// According to guidelines aria-label should be added if the label\n\t// itself is not visible.\n\t// See: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role\n\tconst searchResultsLabelId = `block-editor-link-control-search-results-label-${ instanceId }`;\n\tconst labelText = isInitialSuggestions\n\t\t? __( 'Recently updated' )\n\t\t: sprintf(\n\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t__( 'Search results for \"%s\"' ),\n\t\t\t\tcurrentInputValue\n\t\t );\n\n\t// VisuallyHidden rightly doesn't accept custom classNames\n\t// so we conditionally render it as a wrapper to visually hide the label\n\t// when that is required.\n\tconst searchResultsLabel = createElement(\n\t\tisInitialSuggestions ? Fragment : VisuallyHidden,\n\t\t{}, // empty props\n\t\t<span\n\t\t\tclassName=\"block-editor-link-control__search-results-label\"\n\t\t\tid={ searchResultsLabelId }\n\t\t>\n\t\t\t{ labelText }\n\t\t</span>\n\t);\n\n\treturn (\n\t\t<div className=\"block-editor-link-control__search-results-wrapper\">\n\t\t\t{ searchResultsLabel }\n\t\t\t<div\n\t\t\t\t{ ...suggestionsListProps }\n\t\t\t\tclassName={ resultsListClasses }\n\t\t\t\taria-labelledby={ searchResultsLabelId }\n\t\t\t>\n\t\t\t\t{ suggestions.map( ( suggestion, index ) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tshouldShowCreateSuggestion &&\n\t\t\t\t\t\tCREATE_TYPE === suggestion.type\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<LinkControlSearchCreate\n\t\t\t\t\t\t\t\tsearchTerm={ currentInputValue }\n\t\t\t\t\t\t\t\tbuttonText={ createSuggestionButtonText }\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\thandleSuggestionClick( suggestion )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Intentionally only using `type` here as\n\t\t\t\t\t\t\t\t// the constant is enough to uniquely\n\t\t\t\t\t\t\t\t// identify the single \"CREATE\" suggestion.\n\t\t\t\t\t\t\t\tkey={ suggestion.type }\n\t\t\t\t\t\t\t\titemProps={ buildSuggestionItemProps(\n\t\t\t\t\t\t\t\t\tsuggestion,\n\t\t\t\t\t\t\t\t\tindex\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tisSelected={ index === selectedSuggestion }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\t// If we're not handling \"Create\" suggestions above then\n\t\t\t\t\t// we don't want them in the main results so exit early\n\t\t\t\t\tif ( CREATE_TYPE === suggestion.type ) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<LinkControlSearchItem\n\t\t\t\t\t\t\tkey={ `${ suggestion.id }-${ suggestion.type }` }\n\t\t\t\t\t\t\titemProps={ buildSuggestionItemProps(\n\t\t\t\t\t\t\t\tsuggestion,\n\t\t\t\t\t\t\t\tindex\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tsuggestion={ suggestion }\n\t\t\t\t\t\t\tindex={ index }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\thandleSuggestionClick( suggestion );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tisSelected={ index === selectedSuggestion }\n\t\t\t\t\t\t\tisURL={ directLinkEntryTypes.includes(\n\t\t\t\t\t\t\t\tsuggestion.type.toLowerCase()\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tsearchTerm={ currentInputValue }\n\t\t\t\t\t\t\tshouldShowType={ shouldShowSuggestionsTypes }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/link-control/search-results.js"],"names":["__","sprintf","VisuallyHidden","classnames","createElement","Fragment","LinkControlSearchCreate","LinkControlSearchItem","CREATE_TYPE","LinkControlSearchResults","instanceId","withCreateSuggestion","currentInputValue","handleSuggestionClick","suggestionsListProps","buildSuggestionItemProps","suggestions","selectedSuggestion","isLoading","isInitialSuggestions","createSuggestionButtonText","suggestionsQuery","resultsListClasses","directLinkEntryTypes","isSingleDirectEntryResult","length","includes","type","toLowerCase","shouldShowCreateSuggestion","shouldShowSuggestionsTypes","searchResultsLabelId","labelText","searchResultsLabel","map","suggestion","index","id","isFrontPage"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { VisuallyHidden } from '@wordpress/components';\n\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { createElement, Fragment } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport LinkControlSearchCreate from './search-create-button';\nimport LinkControlSearchItem from './search-item';\nimport { CREATE_TYPE } from './constants';\n\nexport default function LinkControlSearchResults( {\n\tinstanceId,\n\twithCreateSuggestion,\n\tcurrentInputValue,\n\thandleSuggestionClick,\n\tsuggestionsListProps,\n\tbuildSuggestionItemProps,\n\tsuggestions,\n\tselectedSuggestion,\n\tisLoading,\n\tisInitialSuggestions,\n\tcreateSuggestionButtonText,\n\tsuggestionsQuery,\n} ) {\n\tconst resultsListClasses = classnames(\n\t\t'block-editor-link-control__search-results',\n\t\t{\n\t\t\t'is-loading': isLoading,\n\t\t}\n\t);\n\n\tconst directLinkEntryTypes = [ 'url', 'mailto', 'tel', 'internal' ];\n\tconst isSingleDirectEntryResult =\n\t\tsuggestions.length === 1 &&\n\t\tdirectLinkEntryTypes.includes( suggestions[ 0 ].type.toLowerCase() );\n\tconst shouldShowCreateSuggestion =\n\t\twithCreateSuggestion &&\n\t\t! isSingleDirectEntryResult &&\n\t\t! isInitialSuggestions;\n\t// If the query has a specified type, then we can skip showing them in the result. See #24839.\n\tconst shouldShowSuggestionsTypes = ! suggestionsQuery?.type;\n\n\t// According to guidelines aria-label should be added if the label\n\t// itself is not visible.\n\t// See: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role\n\tconst searchResultsLabelId = `block-editor-link-control-search-results-label-${ instanceId }`;\n\tconst labelText = isInitialSuggestions\n\t\t? __( 'Recently updated' )\n\t\t: sprintf(\n\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t__( 'Search results for \"%s\"' ),\n\t\t\t\tcurrentInputValue\n\t\t );\n\n\t// VisuallyHidden rightly doesn't accept custom classNames\n\t// so we conditionally render it as a wrapper to visually hide the label\n\t// when that is required.\n\tconst searchResultsLabel = createElement(\n\t\tisInitialSuggestions ? Fragment : VisuallyHidden,\n\t\t{}, // empty props\n\t\t<span\n\t\t\tclassName=\"block-editor-link-control__search-results-label\"\n\t\t\tid={ searchResultsLabelId }\n\t\t>\n\t\t\t{ labelText }\n\t\t</span>\n\t);\n\n\treturn (\n\t\t<div className=\"block-editor-link-control__search-results-wrapper\">\n\t\t\t{ searchResultsLabel }\n\t\t\t<div\n\t\t\t\t{ ...suggestionsListProps }\n\t\t\t\tclassName={ resultsListClasses }\n\t\t\t\taria-labelledby={ searchResultsLabelId }\n\t\t\t>\n\t\t\t\t{ suggestions.map( ( suggestion, index ) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tshouldShowCreateSuggestion &&\n\t\t\t\t\t\tCREATE_TYPE === suggestion.type\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<LinkControlSearchCreate\n\t\t\t\t\t\t\t\tsearchTerm={ currentInputValue }\n\t\t\t\t\t\t\t\tbuttonText={ createSuggestionButtonText }\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\thandleSuggestionClick( suggestion )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Intentionally only using `type` here as\n\t\t\t\t\t\t\t\t// the constant is enough to uniquely\n\t\t\t\t\t\t\t\t// identify the single \"CREATE\" suggestion.\n\t\t\t\t\t\t\t\tkey={ suggestion.type }\n\t\t\t\t\t\t\t\titemProps={ buildSuggestionItemProps(\n\t\t\t\t\t\t\t\t\tsuggestion,\n\t\t\t\t\t\t\t\t\tindex\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tisSelected={ index === selectedSuggestion }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\t// If we're not handling \"Create\" suggestions above then\n\t\t\t\t\t// we don't want them in the main results so exit early\n\t\t\t\t\tif ( CREATE_TYPE === suggestion.type ) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<LinkControlSearchItem\n\t\t\t\t\t\t\tkey={ `${ suggestion.id }-${ suggestion.type }` }\n\t\t\t\t\t\t\titemProps={ buildSuggestionItemProps(\n\t\t\t\t\t\t\t\tsuggestion,\n\t\t\t\t\t\t\t\tindex\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tsuggestion={ suggestion }\n\t\t\t\t\t\t\tindex={ index }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\thandleSuggestionClick( suggestion );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tisSelected={ index === selectedSuggestion }\n\t\t\t\t\t\t\tisURL={ directLinkEntryTypes.includes(\n\t\t\t\t\t\t\t\tsuggestion.type.toLowerCase()\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tsearchTerm={ currentInputValue }\n\t\t\t\t\t\t\tshouldShowType={ shouldShowSuggestionsTypes }\n\t\t\t\t\t\t\tisFrontPage={ suggestion?.isFrontPage }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
@@ -41,16 +41,27 @@ export const handleDirectEntry = val => {
41
41
  }]);
42
42
  };
43
43
 
44
- const handleEntitySearch = async (val, suggestionsQuery, fetchSearchSuggestions, directEntryHandler, withCreateSuggestion, withURLSuggestion) => {
44
+ const handleEntitySearch = async (val, suggestionsQuery, fetchSearchSuggestions, directEntryHandler, withCreateSuggestion, withURLSuggestion, pageOnFront) => {
45
45
  const {
46
46
  isInitialSuggestions
47
47
  } = suggestionsQuery;
48
- let results = await Promise.all([fetchSearchSuggestions(val, suggestionsQuery), directEntryHandler(val)]);
48
+ let resultsIncludeFrontPage = false;
49
+ let results = await Promise.all([fetchSearchSuggestions(val, suggestionsQuery), directEntryHandler(val)]); // Identify front page and update type to match.
50
+
51
+ results[0] = results[0].map(result => {
52
+ if (Number(result.id) === pageOnFront) {
53
+ resultsIncludeFrontPage = true;
54
+ result.isFrontPage = true;
55
+ return result;
56
+ }
57
+
58
+ return result;
59
+ });
49
60
  const couldBeURL = !val.includes(' '); // If it's potentially a URL search then concat on a URL search suggestion
50
61
  // just for good measure. That way once the actual results run out we always
51
62
  // have a URL option to fallback on.
52
63
 
53
- if (couldBeURL && withURLSuggestion && !isInitialSuggestions) {
64
+ if (!resultsIncludeFrontPage && couldBeURL && withURLSuggestion && !isInitialSuggestions) {
54
65
  results = results[0].concat(results[1]);
55
66
  } else {
56
67
  results = results[0];
@@ -89,12 +100,14 @@ const handleEntitySearch = async (val, suggestionsQuery, fetchSearchSuggestions,
89
100
 
90
101
  export default function useSearchHandler(suggestionsQuery, allowDirectEntry, withCreateSuggestion, withURLSuggestion) {
91
102
  const {
92
- fetchSearchSuggestions
103
+ fetchSearchSuggestions,
104
+ pageOnFront
93
105
  } = useSelect(select => {
94
106
  const {
95
107
  getSettings
96
108
  } = select(blockEditorStore);
97
109
  return {
110
+ pageOnFront: getSettings().pageOnFront,
98
111
  fetchSearchSuggestions: getSettings().__experimentalFetchLinkSuggestions
99
112
  };
100
113
  }, []);
@@ -107,7 +120,7 @@ export default function useSearchHandler(suggestionsQuery, allowDirectEntry, wit
107
120
  isInitialSuggestions
108
121
  }) : handleEntitySearch(val, { ...suggestionsQuery,
109
122
  isInitialSuggestions
110
- }, fetchSearchSuggestions, directEntryHandler, withCreateSuggestion, withURLSuggestion);
123
+ }, fetchSearchSuggestions, directEntryHandler, withCreateSuggestion, withURLSuggestion, pageOnFront);
111
124
  }, [directEntryHandler, fetchSearchSuggestions, withCreateSuggestion]);
112
125
  }
113
126
  //# sourceMappingURL=use-search-handler.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/link-control/use-search-handler.js"],"names":["getProtocol","prependHTTP","useCallback","useSelect","startsWith","isURLLike","CREATE_TYPE","store","blockEditorStore","handleNoop","Promise","resolve","handleDirectEntry","val","type","protocol","includes","id","title","url","handleEntitySearch","suggestionsQuery","fetchSearchSuggestions","directEntryHandler","withCreateSuggestion","withURLSuggestion","isInitialSuggestions","results","all","couldBeURL","concat","useSearchHandler","allowDirectEntry","select","getSettings","__experimentalFetchLinkSuggestions"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getProtocol, prependHTTP } from '@wordpress/url';\nimport { useCallback } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * External dependencies\n */\nimport { startsWith } from 'lodash';\n\n/**\n * Internal dependencies\n */\nimport isURLLike from './is-url-like';\nimport { CREATE_TYPE } from './constants';\nimport { store as blockEditorStore } from '../../store';\n\nexport const handleNoop = () => Promise.resolve( [] );\n\nexport const handleDirectEntry = ( val ) => {\n\tlet type = 'URL';\n\n\tconst protocol = getProtocol( val ) || '';\n\n\tif ( protocol.includes( 'mailto' ) ) {\n\t\ttype = 'mailto';\n\t}\n\n\tif ( protocol.includes( 'tel' ) ) {\n\t\ttype = 'tel';\n\t}\n\n\tif ( startsWith( val, '#' ) ) {\n\t\ttype = 'internal';\n\t}\n\n\treturn Promise.resolve( [\n\t\t{\n\t\t\tid: val,\n\t\t\ttitle: val,\n\t\t\turl: type === 'URL' ? prependHTTP( val ) : val,\n\t\t\ttype,\n\t\t},\n\t] );\n};\n\nconst handleEntitySearch = async (\n\tval,\n\tsuggestionsQuery,\n\tfetchSearchSuggestions,\n\tdirectEntryHandler,\n\twithCreateSuggestion,\n\twithURLSuggestion\n) => {\n\tconst { isInitialSuggestions } = suggestionsQuery;\n\n\tlet results = await Promise.all( [\n\t\tfetchSearchSuggestions( val, suggestionsQuery ),\n\t\tdirectEntryHandler( val ),\n\t] );\n\n\tconst couldBeURL = ! val.includes( ' ' );\n\n\t// If it's potentially a URL search then concat on a URL search suggestion\n\t// just for good measure. That way once the actual results run out we always\n\t// have a URL option to fallback on.\n\tif ( couldBeURL && withURLSuggestion && ! isInitialSuggestions ) {\n\t\tresults = results[ 0 ].concat( results[ 1 ] );\n\t} else {\n\t\tresults = results[ 0 ];\n\t}\n\n\t// If displaying initial suggestions just return plain results.\n\tif ( isInitialSuggestions ) {\n\t\treturn results;\n\t}\n\n\t// Here we append a faux suggestion to represent a \"CREATE\" option. This\n\t// is detected in the rendering of the search results and handled as a\n\t// special case. This is currently necessary because the suggestions\n\t// dropdown will only appear if there are valid suggestions and\n\t// therefore unless the create option is a suggestion it will not\n\t// display in scenarios where there are no results returned from the\n\t// API. In addition promoting CREATE to a first class suggestion affords\n\t// the a11y benefits afforded by `URLInput` to all suggestions (eg:\n\t// keyboard handling, ARIA roles...etc).\n\t//\n\t// Note also that the value of the `title` and `url` properties must correspond\n\t// to the text value of the `<input>`. This is because `title` is used\n\t// when creating the suggestion. Similarly `url` is used when using keyboard to select\n\t// the suggestion (the <form> `onSubmit` handler falls-back to `url`).\n\treturn isURLLike( val ) || ! withCreateSuggestion\n\t\t? results\n\t\t: results.concat( {\n\t\t\t\t// the `id` prop is intentionally ommitted here because it\n\t\t\t\t// is never exposed as part of the component's public API.\n\t\t\t\t// see: https://github.com/WordPress/gutenberg/pull/19775#discussion_r378931316.\n\t\t\t\ttitle: val, // must match the existing `<input>`s text value\n\t\t\t\turl: val, // must match the existing `<input>`s text value\n\t\t\t\ttype: CREATE_TYPE,\n\t\t } );\n};\n\nexport default function useSearchHandler(\n\tsuggestionsQuery,\n\tallowDirectEntry,\n\twithCreateSuggestion,\n\twithURLSuggestion\n) {\n\tconst { fetchSearchSuggestions } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\tfetchSearchSuggestions: getSettings()\n\t\t\t\t.__experimentalFetchLinkSuggestions,\n\t\t};\n\t}, [] );\n\n\tconst directEntryHandler = allowDirectEntry\n\t\t? handleDirectEntry\n\t\t: handleNoop;\n\n\treturn useCallback(\n\t\t( val, { isInitialSuggestions } ) => {\n\t\t\treturn isURLLike( val )\n\t\t\t\t? directEntryHandler( val, { isInitialSuggestions } )\n\t\t\t\t: handleEntitySearch(\n\t\t\t\t\t\tval,\n\t\t\t\t\t\t{ ...suggestionsQuery, isInitialSuggestions },\n\t\t\t\t\t\tfetchSearchSuggestions,\n\t\t\t\t\t\tdirectEntryHandler,\n\t\t\t\t\t\twithCreateSuggestion,\n\t\t\t\t\t\twithURLSuggestion\n\t\t\t\t );\n\t\t},\n\t\t[ directEntryHandler, fetchSearchSuggestions, withCreateSuggestion ]\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/link-control/use-search-handler.js"],"names":["getProtocol","prependHTTP","useCallback","useSelect","startsWith","isURLLike","CREATE_TYPE","store","blockEditorStore","handleNoop","Promise","resolve","handleDirectEntry","val","type","protocol","includes","id","title","url","handleEntitySearch","suggestionsQuery","fetchSearchSuggestions","directEntryHandler","withCreateSuggestion","withURLSuggestion","pageOnFront","isInitialSuggestions","resultsIncludeFrontPage","results","all","map","result","Number","isFrontPage","couldBeURL","concat","useSearchHandler","allowDirectEntry","select","getSettings","__experimentalFetchLinkSuggestions"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getProtocol, prependHTTP } from '@wordpress/url';\nimport { useCallback } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * External dependencies\n */\nimport { startsWith } from 'lodash';\n\n/**\n * Internal dependencies\n */\nimport isURLLike from './is-url-like';\nimport { CREATE_TYPE } from './constants';\nimport { store as blockEditorStore } from '../../store';\n\nexport const handleNoop = () => Promise.resolve( [] );\n\nexport const handleDirectEntry = ( val ) => {\n\tlet type = 'URL';\n\n\tconst protocol = getProtocol( val ) || '';\n\n\tif ( protocol.includes( 'mailto' ) ) {\n\t\ttype = 'mailto';\n\t}\n\n\tif ( protocol.includes( 'tel' ) ) {\n\t\ttype = 'tel';\n\t}\n\n\tif ( startsWith( val, '#' ) ) {\n\t\ttype = 'internal';\n\t}\n\n\treturn Promise.resolve( [\n\t\t{\n\t\t\tid: val,\n\t\t\ttitle: val,\n\t\t\turl: type === 'URL' ? prependHTTP( val ) : val,\n\t\t\ttype,\n\t\t},\n\t] );\n};\n\nconst handleEntitySearch = async (\n\tval,\n\tsuggestionsQuery,\n\tfetchSearchSuggestions,\n\tdirectEntryHandler,\n\twithCreateSuggestion,\n\twithURLSuggestion,\n\tpageOnFront\n) => {\n\tconst { isInitialSuggestions } = suggestionsQuery;\n\tlet resultsIncludeFrontPage = false;\n\n\tlet results = await Promise.all( [\n\t\tfetchSearchSuggestions( val, suggestionsQuery ),\n\t\tdirectEntryHandler( val ),\n\t] );\n\n\t// Identify front page and update type to match.\n\tresults[ 0 ] = results[ 0 ].map( ( result ) => {\n\t\tif ( Number( result.id ) === pageOnFront ) {\n\t\t\tresultsIncludeFrontPage = true;\n\t\t\tresult.isFrontPage = true;\n\t\t\treturn result;\n\t\t}\n\n\t\treturn result;\n\t} );\n\n\tconst couldBeURL = ! val.includes( ' ' );\n\n\t// If it's potentially a URL search then concat on a URL search suggestion\n\t// just for good measure. That way once the actual results run out we always\n\t// have a URL option to fallback on.\n\tif (\n\t\t! resultsIncludeFrontPage &&\n\t\tcouldBeURL &&\n\t\twithURLSuggestion &&\n\t\t! isInitialSuggestions\n\t) {\n\t\tresults = results[ 0 ].concat( results[ 1 ] );\n\t} else {\n\t\tresults = results[ 0 ];\n\t}\n\n\t// If displaying initial suggestions just return plain results.\n\tif ( isInitialSuggestions ) {\n\t\treturn results;\n\t}\n\n\t// Here we append a faux suggestion to represent a \"CREATE\" option. This\n\t// is detected in the rendering of the search results and handled as a\n\t// special case. This is currently necessary because the suggestions\n\t// dropdown will only appear if there are valid suggestions and\n\t// therefore unless the create option is a suggestion it will not\n\t// display in scenarios where there are no results returned from the\n\t// API. In addition promoting CREATE to a first class suggestion affords\n\t// the a11y benefits afforded by `URLInput` to all suggestions (eg:\n\t// keyboard handling, ARIA roles...etc).\n\t//\n\t// Note also that the value of the `title` and `url` properties must correspond\n\t// to the text value of the `<input>`. This is because `title` is used\n\t// when creating the suggestion. Similarly `url` is used when using keyboard to select\n\t// the suggestion (the <form> `onSubmit` handler falls-back to `url`).\n\treturn isURLLike( val ) || ! withCreateSuggestion\n\t\t? results\n\t\t: results.concat( {\n\t\t\t\t// the `id` prop is intentionally ommitted here because it\n\t\t\t\t// is never exposed as part of the component's public API.\n\t\t\t\t// see: https://github.com/WordPress/gutenberg/pull/19775#discussion_r378931316.\n\t\t\t\ttitle: val, // must match the existing `<input>`s text value\n\t\t\t\turl: val, // must match the existing `<input>`s text value\n\t\t\t\ttype: CREATE_TYPE,\n\t\t } );\n};\n\nexport default function useSearchHandler(\n\tsuggestionsQuery,\n\tallowDirectEntry,\n\twithCreateSuggestion,\n\twithURLSuggestion\n) {\n\tconst { fetchSearchSuggestions, pageOnFront } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\n\t\treturn {\n\t\t\tpageOnFront: getSettings().pageOnFront,\n\t\t\tfetchSearchSuggestions: getSettings()\n\t\t\t\t.__experimentalFetchLinkSuggestions,\n\t\t};\n\t}, [] );\n\n\tconst directEntryHandler = allowDirectEntry\n\t\t? handleDirectEntry\n\t\t: handleNoop;\n\n\treturn useCallback(\n\t\t( val, { isInitialSuggestions } ) => {\n\t\t\treturn isURLLike( val )\n\t\t\t\t? directEntryHandler( val, { isInitialSuggestions } )\n\t\t\t\t: handleEntitySearch(\n\t\t\t\t\t\tval,\n\t\t\t\t\t\t{ ...suggestionsQuery, isInitialSuggestions },\n\t\t\t\t\t\tfetchSearchSuggestions,\n\t\t\t\t\t\tdirectEntryHandler,\n\t\t\t\t\t\twithCreateSuggestion,\n\t\t\t\t\t\twithURLSuggestion,\n\t\t\t\t\t\tpageOnFront\n\t\t\t\t );\n\t\t},\n\t\t[ directEntryHandler, fetchSearchSuggestions, withCreateSuggestion ]\n\t);\n}\n"]}
@@ -21,6 +21,7 @@ import useBlockDisplayInformation from '../use-block-display-information';
21
21
  import { getBlockPositionDescription } from './utils';
22
22
  import BlockTitle from '../block-title';
23
23
  import ListViewExpander from './expander';
24
+ import { SPACE, ENTER } from '@wordpress/keycodes';
24
25
 
25
26
  function ListViewBlockSelectButton(_ref, ref) {
26
27
  let {
@@ -43,17 +44,35 @@ function ListViewBlockSelectButton(_ref, ref) {
43
44
  const blockInformation = useBlockDisplayInformation(clientId);
44
45
  const instanceId = useInstanceId(ListViewBlockSelectButton);
45
46
  const descriptionId = `list-view-block-select-button__${instanceId}`;
46
- const blockPositionDescription = getBlockPositionDescription(position, siblingBlockCount, level);
47
+ const blockPositionDescription = getBlockPositionDescription(position, siblingBlockCount, level); // The `href` attribute triggers the browser's native HTML drag operations.
48
+ // When the link is dragged, the element's outerHTML is set in DataTransfer object as text/html.
49
+ // We need to clear any HTML drag data to prevent `pasteHandler` from firing
50
+ // inside the `useOnBlockDrop` hook.
51
+
52
+ const onDragStartHandler = event => {
53
+ event.dataTransfer.clearData();
54
+ onDragStart(event);
55
+ };
56
+
57
+ function onKeyDownHandler(event) {
58
+ if (event.keyCode === ENTER || event.keyCode === SPACE) {
59
+ event.preventDefault();
60
+ onClick(event);
61
+ }
62
+ }
63
+
47
64
  return createElement(Fragment, null, createElement(Button, {
48
65
  className: classnames('block-editor-list-view-block-select-button', className),
49
66
  onClick: onClick,
67
+ onKeyDown: onKeyDownHandler,
50
68
  "aria-describedby": descriptionId,
51
69
  ref: ref,
52
70
  tabIndex: tabIndex,
53
71
  onFocus: onFocus,
54
- onDragStart: onDragStart,
72
+ onDragStart: onDragStartHandler,
55
73
  onDragEnd: onDragEnd,
56
- draggable: draggable
74
+ draggable: draggable,
75
+ href: `#block-${clientId}`
57
76
  }, createElement(ListViewExpander, {
58
77
  onClick: onToggleExpanded
59
78
  }), createElement(BlockIcon, {