@wordpress/block-library 8.14.0 → 8.16.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 (365) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/avatar/edit.js +1 -0
  3. package/build/avatar/edit.js.map +1 -1
  4. package/build/avatar/index.js +3 -0
  5. package/build/avatar/index.js.map +1 -1
  6. package/build/block/edit.js +2 -30
  7. package/build/block/edit.js.map +1 -1
  8. package/build/block/index.js +2 -1
  9. package/build/block/index.js.map +1 -1
  10. package/build/buttons/edit.js +2 -2
  11. package/build/buttons/edit.js.map +1 -1
  12. package/build/column/edit.native.js +1 -4
  13. package/build/column/edit.native.js.map +1 -1
  14. package/build/columns/edit.js +1 -0
  15. package/build/columns/edit.js.map +1 -1
  16. package/build/comment-author-avatar/edit.js +1 -0
  17. package/build/comment-author-avatar/edit.js.map +1 -1
  18. package/build/cover/deprecated.js +4 -2
  19. package/build/cover/deprecated.js.map +1 -1
  20. package/build/cover/index.js +2 -1
  21. package/build/cover/index.js.map +1 -1
  22. package/build/embed/embed-placeholder.native.js +37 -13
  23. package/build/embed/embed-placeholder.native.js.map +1 -1
  24. package/build/file/index.js +1 -2
  25. package/build/file/index.js.map +1 -1
  26. package/build/file/inspector.js +1 -0
  27. package/build/file/inspector.js.map +1 -1
  28. package/build/file/view-interactivity.js +23 -0
  29. package/build/file/view-interactivity.js.map +1 -0
  30. package/build/file/view.js +1 -15
  31. package/build/file/view.js.map +1 -1
  32. package/build/footnotes/edit.js +31 -1
  33. package/build/footnotes/edit.js.map +1 -1
  34. package/build/footnotes/format.js +119 -23
  35. package/build/footnotes/format.js.map +1 -1
  36. package/build/footnotes/index.js +45 -4
  37. package/build/footnotes/index.js.map +1 -1
  38. package/build/gallery/edit.js +8 -6
  39. package/build/gallery/edit.js.map +1 -1
  40. package/build/image/deprecated.js +106 -2
  41. package/build/image/deprecated.js.map +1 -1
  42. package/build/image/image.js +2 -2
  43. package/build/image/image.js.map +1 -1
  44. package/build/image/index.js +2 -1
  45. package/build/image/index.js.map +1 -1
  46. package/build/index.js +3 -1
  47. package/build/index.js.map +1 -1
  48. package/build/latest-comments/edit.js +1 -0
  49. package/build/latest-comments/edit.js.map +1 -1
  50. package/build/latest-posts/edit.js +2 -0
  51. package/build/latest-posts/edit.js.map +1 -1
  52. package/build/list/edit.js +4 -4
  53. package/build/list/edit.js.map +1 -1
  54. package/build/list-item/hooks/use-merge.js +10 -1
  55. package/build/list-item/hooks/use-merge.js.map +1 -1
  56. package/build/media-text/media-container.native.js +2 -1
  57. package/build/media-text/media-container.native.js.map +1 -1
  58. package/build/missing/edit.native.js +7 -5
  59. package/build/missing/edit.native.js.map +1 -1
  60. package/build/navigation/constants.js +10 -4
  61. package/build/navigation/constants.js.map +1 -1
  62. package/build/navigation/edit/index.js +16 -2
  63. package/build/navigation/edit/index.js.map +1 -1
  64. package/build/navigation/edit/inner-blocks.js +2 -2
  65. package/build/navigation/edit/inner-blocks.js.map +1 -1
  66. package/build/navigation/edit/menu-inspector-controls.js +1 -1
  67. package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
  68. package/build/navigation/edit/navigation-menu-selector.js +4 -4
  69. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  70. package/build/navigation/edit/unsaved-inner-blocks.js +2 -2
  71. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  72. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +10 -15
  73. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  74. package/build/navigation/index.js +2 -3
  75. package/build/navigation/index.js.map +1 -1
  76. package/build/navigation/use-navigation-menu.js +33 -45
  77. package/build/navigation/use-navigation-menu.js.map +1 -1
  78. package/build/navigation/view-interactivity.js +185 -0
  79. package/build/navigation/view-interactivity.js.map +1 -0
  80. package/build/navigation/view-modal.js +125 -0
  81. package/build/navigation/view-modal.js.map +1 -0
  82. package/build/navigation/view.js +71 -163
  83. package/build/navigation/view.js.map +1 -1
  84. package/build/navigation-link/edit.js +12 -7
  85. package/build/navigation-link/edit.js.map +1 -1
  86. package/build/navigation-submenu/edit.js +2 -2
  87. package/build/navigation-submenu/edit.js.map +1 -1
  88. package/build/pattern/edit.js +28 -4
  89. package/build/pattern/edit.js.map +1 -1
  90. package/build/preformatted/index.js +4 -0
  91. package/build/preformatted/index.js.map +1 -1
  92. package/build/query-pagination/edit.js +1 -1
  93. package/build/query-pagination/edit.js.map +1 -1
  94. package/build/query-title/edit.js +43 -1
  95. package/build/query-title/edit.js.map +1 -1
  96. package/build/quote/transforms.js +8 -0
  97. package/build/quote/transforms.js.map +1 -1
  98. package/build/rss/edit.js +3 -0
  99. package/build/rss/edit.js.map +1 -1
  100. package/build/search/edit.js +4 -3
  101. package/build/search/edit.js.map +1 -1
  102. package/build/search/index.js +1 -0
  103. package/build/search/index.js.map +1 -1
  104. package/build/search/view.js +166 -62
  105. package/build/search/view.js.map +1 -1
  106. package/build/site-logo/edit.js +1 -0
  107. package/build/site-logo/edit.js.map +1 -1
  108. package/build/social-link/icons/index.js +13 -0
  109. package/build/social-link/icons/index.js.map +1 -1
  110. package/build/social-link/icons/threads.js +25 -0
  111. package/build/social-link/icons/threads.js.map +1 -0
  112. package/build/social-link/variations.js +7 -0
  113. package/build/social-link/variations.js.map +1 -1
  114. package/build/tag-cloud/edit.js +1 -0
  115. package/build/tag-cloud/edit.js.map +1 -1
  116. package/build/template-part/edit/import-controls.js +1 -1
  117. package/build/template-part/edit/import-controls.js.map +1 -1
  118. package/build/template-part/edit/index.js +1 -1
  119. package/build/template-part/edit/index.js.map +1 -1
  120. package/build/text-columns/edit.js +1 -0
  121. package/build/text-columns/edit.js.map +1 -1
  122. package/build-module/avatar/edit.js +1 -0
  123. package/build-module/avatar/edit.js.map +1 -1
  124. package/build-module/avatar/index.js +3 -0
  125. package/build-module/avatar/index.js.map +1 -1
  126. package/build-module/block/edit.js +4 -29
  127. package/build-module/block/edit.js.map +1 -1
  128. package/build-module/block/index.js +2 -1
  129. package/build-module/block/index.js.map +1 -1
  130. package/build-module/buttons/edit.js +2 -2
  131. package/build-module/buttons/edit.js.map +1 -1
  132. package/build-module/column/edit.native.js +1 -4
  133. package/build-module/column/edit.native.js.map +1 -1
  134. package/build-module/columns/edit.js +1 -0
  135. package/build-module/columns/edit.js.map +1 -1
  136. package/build-module/comment-author-avatar/edit.js +1 -0
  137. package/build-module/comment-author-avatar/edit.js.map +1 -1
  138. package/build-module/cover/deprecated.js +4 -2
  139. package/build-module/cover/deprecated.js.map +1 -1
  140. package/build-module/cover/index.js +2 -1
  141. package/build-module/cover/index.js.map +1 -1
  142. package/build-module/embed/embed-placeholder.native.js +37 -14
  143. package/build-module/embed/embed-placeholder.native.js.map +1 -1
  144. package/build-module/file/index.js +1 -2
  145. package/build-module/file/index.js.map +1 -1
  146. package/build-module/file/inspector.js +1 -0
  147. package/build-module/file/inspector.js.map +1 -1
  148. package/build-module/file/view-interactivity.js +19 -0
  149. package/build-module/file/view-interactivity.js.map +1 -0
  150. package/build-module/file/view.js +2 -15
  151. package/build-module/file/view.js.map +1 -1
  152. package/build-module/footnotes/edit.js +29 -2
  153. package/build-module/footnotes/edit.js.map +1 -1
  154. package/build-module/footnotes/format.js +120 -25
  155. package/build-module/footnotes/format.js.map +1 -1
  156. package/build-module/footnotes/index.js +45 -4
  157. package/build-module/footnotes/index.js.map +1 -1
  158. package/build-module/gallery/edit.js +8 -6
  159. package/build-module/gallery/edit.js.map +1 -1
  160. package/build-module/image/deprecated.js +107 -3
  161. package/build-module/image/deprecated.js.map +1 -1
  162. package/build-module/image/image.js +2 -2
  163. package/build-module/image/image.js.map +1 -1
  164. package/build-module/image/index.js +2 -1
  165. package/build-module/image/index.js.map +1 -1
  166. package/build-module/index.js +3 -1
  167. package/build-module/index.js.map +1 -1
  168. package/build-module/latest-comments/edit.js +1 -0
  169. package/build-module/latest-comments/edit.js.map +1 -1
  170. package/build-module/latest-posts/edit.js +2 -0
  171. package/build-module/latest-posts/edit.js.map +1 -1
  172. package/build-module/list/edit.js +4 -4
  173. package/build-module/list/edit.js.map +1 -1
  174. package/build-module/list-item/hooks/use-merge.js +10 -1
  175. package/build-module/list-item/hooks/use-merge.js.map +1 -1
  176. package/build-module/media-text/media-container.native.js +2 -1
  177. package/build-module/media-text/media-container.native.js.map +1 -1
  178. package/build-module/missing/edit.native.js +8 -6
  179. package/build-module/missing/edit.native.js.map +1 -1
  180. package/build-module/navigation/constants.js +8 -3
  181. package/build-module/navigation/constants.js.map +1 -1
  182. package/build-module/navigation/edit/index.js +17 -3
  183. package/build-module/navigation/edit/index.js.map +1 -1
  184. package/build-module/navigation/edit/inner-blocks.js +2 -2
  185. package/build-module/navigation/edit/inner-blocks.js.map +1 -1
  186. package/build-module/navigation/edit/menu-inspector-controls.js +1 -1
  187. package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
  188. package/build-module/navigation/edit/navigation-menu-selector.js +4 -4
  189. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  190. package/build-module/navigation/edit/unsaved-inner-blocks.js +2 -2
  191. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  192. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +10 -14
  193. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  194. package/build-module/navigation/index.js +2 -3
  195. package/build-module/navigation/index.js.map +1 -1
  196. package/build-module/navigation/use-navigation-menu.js +35 -47
  197. package/build-module/navigation/use-navigation-menu.js.map +1 -1
  198. package/build-module/navigation/view-interactivity.js +182 -0
  199. package/build-module/navigation/view-interactivity.js.map +1 -0
  200. package/build-module/navigation/view-modal.js +120 -0
  201. package/build-module/navigation/view-modal.js.map +1 -0
  202. package/build-module/navigation/view.js +72 -163
  203. package/build-module/navigation/view.js.map +1 -1
  204. package/build-module/navigation-link/edit.js +12 -7
  205. package/build-module/navigation-link/edit.js.map +1 -1
  206. package/build-module/navigation-submenu/edit.js +2 -2
  207. package/build-module/navigation-submenu/edit.js.map +1 -1
  208. package/build-module/pattern/edit.js +27 -4
  209. package/build-module/pattern/edit.js.map +1 -1
  210. package/build-module/preformatted/index.js +4 -0
  211. package/build-module/preformatted/index.js.map +1 -1
  212. package/build-module/query-pagination/edit.js +1 -1
  213. package/build-module/query-pagination/edit.js.map +1 -1
  214. package/build-module/query-title/edit.js +44 -3
  215. package/build-module/query-title/edit.js.map +1 -1
  216. package/build-module/quote/transforms.js +8 -0
  217. package/build-module/quote/transforms.js.map +1 -1
  218. package/build-module/rss/edit.js +3 -0
  219. package/build-module/rss/edit.js.map +1 -1
  220. package/build-module/search/edit.js +4 -3
  221. package/build-module/search/edit.js.map +1 -1
  222. package/build-module/search/index.js +1 -0
  223. package/build-module/search/index.js.map +1 -1
  224. package/build-module/search/view.js +166 -62
  225. package/build-module/search/view.js.map +1 -1
  226. package/build-module/site-logo/edit.js +1 -0
  227. package/build-module/site-logo/edit.js.map +1 -1
  228. package/build-module/social-link/icons/index.js +1 -0
  229. package/build-module/social-link/icons/index.js.map +1 -1
  230. package/build-module/social-link/icons/threads.js +15 -0
  231. package/build-module/social-link/icons/threads.js.map +1 -0
  232. package/build-module/social-link/variations.js +8 -1
  233. package/build-module/social-link/variations.js.map +1 -1
  234. package/build-module/tag-cloud/edit.js +1 -0
  235. package/build-module/tag-cloud/edit.js.map +1 -1
  236. package/build-module/template-part/edit/import-controls.js +2 -2
  237. package/build-module/template-part/edit/import-controls.js.map +1 -1
  238. package/build-module/template-part/edit/index.js +1 -1
  239. package/build-module/template-part/edit/index.js.map +1 -1
  240. package/build-module/text-columns/edit.js +1 -0
  241. package/build-module/text-columns/edit.js.map +1 -1
  242. package/build-style/details/style-rtl.css +4 -2
  243. package/build-style/details/style.css +4 -2
  244. package/build-style/footnotes/style-rtl.css +4 -3
  245. package/build-style/footnotes/style.css +4 -3
  246. package/build-style/navigation/style-rtl.css +14 -2
  247. package/build-style/navigation/style.css +14 -2
  248. package/build-style/preformatted/style-rtl.css +2 -1
  249. package/build-style/preformatted/style.css +2 -1
  250. package/build-style/query-pagination/style-rtl.css +4 -2
  251. package/build-style/query-pagination/style.css +4 -2
  252. package/build-style/social-links/style-rtl.css +7 -0
  253. package/build-style/social-links/style.css +7 -0
  254. package/build-style/style-rtl.css +36 -10
  255. package/build-style/style.css +36 -10
  256. package/build-style/video/style-rtl.css +1 -0
  257. package/build-style/video/style.css +1 -0
  258. package/package.json +33 -32
  259. package/src/audio/test/__snapshots__/edit.native.js.snap +118 -33
  260. package/src/avatar/block.json +3 -0
  261. package/src/avatar/edit.js +1 -0
  262. package/src/block/block.json +2 -1
  263. package/src/block/edit.js +1 -39
  264. package/src/block/editor.native.scss +2 -2
  265. package/src/buttons/edit.js +2 -2
  266. package/src/buttons/test/edit.native.js +4 -0
  267. package/src/column/edit.native.js +4 -10
  268. package/src/column/editor.native.scss +0 -4
  269. package/src/columns/edit.js +1 -0
  270. package/src/columns/test/edit.native.js +5 -0
  271. package/src/comment-author-avatar/edit.js +1 -0
  272. package/src/comment-template/index.php +7 -2
  273. package/src/cover/block.json +2 -1
  274. package/src/cover/deprecated.js +2 -0
  275. package/src/cover/test/edit.native.js +8 -0
  276. package/src/embed/embed-placeholder.native.js +80 -47
  277. package/src/embed/styles.native.scss +54 -18
  278. package/src/embed/test/index.native.js +13 -5
  279. package/src/file/block.json +1 -2
  280. package/src/file/index.php +20 -2
  281. package/src/file/inspector.js +1 -0
  282. package/src/file/test/__snapshots__/edit.native.js.snap +119 -33
  283. package/src/file/view-interactivity.js +18 -0
  284. package/src/file/view.js +5 -14
  285. package/src/footnotes/block.json +44 -2
  286. package/src/footnotes/edit.js +33 -2
  287. package/src/footnotes/format.js +90 -25
  288. package/src/footnotes/index.js +0 -1
  289. package/src/footnotes/index.php +207 -0
  290. package/src/footnotes/style.scss +6 -3
  291. package/src/gallery/edit.js +42 -38
  292. package/src/gallery/test/index.native.js +31 -18
  293. package/src/heading/test/index.native.js +4 -0
  294. package/src/home-link/index.php +15 -2
  295. package/src/image/block.json +2 -1
  296. package/src/image/deprecated.js +109 -3
  297. package/src/image/image.js +2 -2
  298. package/src/image/index.php +45 -8
  299. package/src/image/test/edit.native.js +1 -2
  300. package/src/index.js +5 -1
  301. package/src/latest-comments/edit.js +1 -0
  302. package/src/latest-posts/edit.js +2 -0
  303. package/src/list/edit.js +6 -4
  304. package/src/list/test/edit.native.js +134 -33
  305. package/src/list-item/hooks/use-merge.js +12 -5
  306. package/src/media-text/media-container.native.js +1 -0
  307. package/src/missing/edit.native.js +12 -10
  308. package/src/missing/style.native.scss +19 -12
  309. package/src/missing/test/__snapshots__/edit.native.js.snap +42 -13
  310. package/src/navigation/block.json +2 -3
  311. package/src/navigation/constants.js +12 -6
  312. package/src/navigation/edit/index.js +29 -1
  313. package/src/navigation/edit/inner-blocks.js +2 -2
  314. package/src/navigation/edit/menu-inspector-controls.js +1 -1
  315. package/src/navigation/edit/navigation-menu-selector.js +8 -4
  316. package/src/navigation/edit/unsaved-inner-blocks.js +2 -2
  317. package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +17 -21
  318. package/src/navigation/index.php +50 -18
  319. package/src/navigation/style.scss +27 -8
  320. package/src/navigation/use-navigation-menu.js +39 -63
  321. package/src/navigation/view-interactivity.js +196 -0
  322. package/src/navigation/view-modal.js +127 -0
  323. package/src/navigation/view.js +96 -185
  324. package/src/navigation-link/edit.js +61 -47
  325. package/src/navigation-submenu/edit.js +2 -2
  326. package/src/paragraph/test/__snapshots__/edit.native.js.snap +1 -0
  327. package/src/paragraph/test/edit.native.js +81 -35
  328. package/src/pattern/edit.js +21 -0
  329. package/src/pattern/index.php +13 -1
  330. package/src/post-template/index.php +6 -2
  331. package/src/post-title/index.php +8 -3
  332. package/src/preformatted/block.json +4 -0
  333. package/src/preformatted/style.scss +4 -1
  334. package/src/preformatted/test/__snapshots__/edit.native.js.snap +2 -0
  335. package/src/pullquote/test/edit.native.js +12 -4
  336. package/src/query-pagination/edit.js +17 -14
  337. package/src/query-title/edit.js +48 -6
  338. package/src/quote/test/__snapshots__/transforms.native.js.snap +10 -0
  339. package/src/quote/test/edit.native.js +12 -4
  340. package/src/quote/test/transforms.native.js +5 -1
  341. package/src/quote/transforms.js +13 -0
  342. package/src/rss/edit.js +3 -0
  343. package/src/search/block.json +1 -0
  344. package/src/search/edit.js +4 -3
  345. package/src/search/index.php +26 -4
  346. package/src/search/test/__snapshots__/edit.native.js.snap +70 -0
  347. package/src/search/view.js +171 -67
  348. package/src/site-logo/edit.js +1 -0
  349. package/src/social-link/icons/index.js +1 -0
  350. package/src/social-link/icons/threads.js +10 -0
  351. package/src/social-link/index.php +4 -0
  352. package/src/social-link/socials-with-bg.scss +5 -0
  353. package/src/social-link/socials-without-bg.scss +4 -0
  354. package/src/social-link/variations.js +7 -0
  355. package/src/tag-cloud/edit.js +1 -0
  356. package/src/template-part/edit/import-controls.js +2 -2
  357. package/src/template-part/edit/index.js +1 -1
  358. package/src/template-part/index.php +7 -16
  359. package/src/text-columns/edit.js +1 -0
  360. package/src/video/style.scss +1 -0
  361. package/build/gallery/shared-icon.native.js +0 -38
  362. package/build/gallery/shared-icon.native.js.map +0 -1
  363. package/build-module/gallery/shared-icon.native.js +0 -24
  364. package/build-module/gallery/shared-icon.native.js.map +0 -1
  365. package/src/gallery/shared-icon.native.js +0 -23
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { View, Text, TouchableWithoutFeedback } from 'react-native';
4
+ import { View, Text, TouchableOpacity } from 'react-native';
5
5
 
6
6
  /**
7
7
  * WordPress dependencies
@@ -18,6 +18,8 @@ import { useRef } from '@wordpress/element';
18
18
  import styles from './styles.scss';
19
19
  import { noticeOutline } from '../../../components/src/mobile/gridicons';
20
20
 
21
+ const hitSlop = { top: 22, bottom: 22, left: 22, right: 22 };
22
+
21
23
  const EmbedPlaceholder = ( {
22
24
  icon,
23
25
  isSelected,
@@ -28,10 +30,17 @@ const EmbedPlaceholder = ( {
28
30
  tryAgain,
29
31
  openEmbedLinkSettings,
30
32
  } ) => {
31
- const containerStyle = usePreferredColorSchemeStyle(
32
- styles.embed__container,
33
- styles[ 'embed__container--dark' ]
33
+ const containerSelectedStyle = usePreferredColorSchemeStyle(
34
+ styles[ 'embed__container-selected' ],
35
+ styles[ 'embed__container-selected--dark' ]
34
36
  );
37
+ const containerStyle = [
38
+ usePreferredColorSchemeStyle(
39
+ styles.embed__container,
40
+ styles[ 'embed__container--dark' ]
41
+ ),
42
+ isSelected && containerSelectedStyle,
43
+ ];
35
44
  const labelStyle = usePreferredColorSchemeStyle(
36
45
  styles.embed__label,
37
46
  styles[ 'embed__label--dark' ]
@@ -44,6 +53,15 @@ const EmbedPlaceholder = ( {
44
53
  );
45
54
  const embedIconErrorStyle = styles[ 'embed__icon--error' ];
46
55
 
56
+ const buttonStyles = usePreferredColorSchemeStyle(
57
+ styles.embed__button,
58
+ styles[ 'embed__button--dark' ]
59
+ );
60
+ const iconStyles = usePreferredColorSchemeStyle(
61
+ styles.embed__icon,
62
+ styles[ 'embed__icon--dark' ]
63
+ );
64
+
47
65
  const cannotEmbedMenuPickerRef = useRef();
48
66
 
49
67
  const errorPickerOptions = {
@@ -89,55 +107,70 @@ const EmbedPlaceholder = ( {
89
107
 
90
108
  return (
91
109
  <>
92
- <TouchableWithoutFeedback
93
- accessibilityRole={ 'button' }
94
- accessibilityHint={
95
- cannotEmbed
96
- ? __( 'Double tap to view embed options.' )
97
- : __( 'Double tap to add a link.' )
98
- }
99
- onPress={ resolveOnPressEvent }
100
- disabled={ ! isSelected }
101
- >
102
- <View style={ containerStyle }>
103
- { cannotEmbed ? (
104
- <>
105
- <Icon
106
- icon={ noticeOutline }
107
- fill={ embedIconErrorStyle.fill }
108
- style={ embedIconErrorStyle }
109
- />
110
- <Text
111
- style={ [
112
- descriptionStyle,
113
- descriptionErrorStyle,
114
- ] }
115
- >
116
- { __( 'Unable to embed media' ) }
117
- </Text>
110
+ <View style={ containerStyle }>
111
+ { cannotEmbed ? (
112
+ <>
113
+ <Icon
114
+ icon={ noticeOutline }
115
+ fill={ embedIconErrorStyle.fill }
116
+ style={ embedIconErrorStyle }
117
+ />
118
+ <Text
119
+ style={ [
120
+ descriptionStyle,
121
+ descriptionErrorStyle,
122
+ ] }
123
+ >
124
+ { __( 'Unable to embed media' ) }
125
+ </Text>
126
+ <TouchableOpacity
127
+ activeOpacity={ 0.5 }
128
+ accessibilityRole={ 'button' }
129
+ accessibilityHint={ __(
130
+ 'Double tap to view embed options.'
131
+ ) }
132
+ style={ buttonStyles }
133
+ hitSlop={ hitSlop }
134
+ onPress={ resolveOnPressEvent }
135
+ disabled={ ! isSelected }
136
+ >
118
137
  <Text style={ actionStyle }>
119
138
  { __( 'More options' ) }
120
139
  </Text>
121
- <Picker
122
- title={ __( 'Embed options' ) }
123
- ref={ cannotEmbedMenuPickerRef }
124
- options={ options }
125
- onChange={ onPickerSelect }
126
- hideCancelButton
127
- leftAlign
128
- />
129
- </>
130
- ) : (
131
- <>
132
- <BlockIcon icon={ icon } />
140
+ </TouchableOpacity>
141
+ <Picker
142
+ title={ __( 'Embed options' ) }
143
+ ref={ cannotEmbedMenuPickerRef }
144
+ options={ options }
145
+ onChange={ onPickerSelect }
146
+ hideCancelButton
147
+ leftAlign
148
+ />
149
+ </>
150
+ ) : (
151
+ <>
152
+ <View style={ styles[ 'embed__placeholder-header' ] }>
153
+ <BlockIcon icon={ icon } fill={ iconStyles.fill } />
133
154
  <Text style={ labelStyle }>{ label }</Text>
155
+ </View>
156
+ <TouchableOpacity
157
+ activeOpacity={ 0.5 }
158
+ accessibilityRole={ 'button' }
159
+ accessibilityHint={ __(
160
+ 'Double tap to add a link.'
161
+ ) }
162
+ style={ buttonStyles }
163
+ hitSlop={ hitSlop }
164
+ onPress={ resolveOnPressEvent }
165
+ disabled={ ! isSelected }
166
+ >
134
167
  <Text style={ actionStyle }>
135
- { __( 'ADD LINK' ) }
168
+ { __( 'Add link' ) }
136
169
  </Text>
137
- </>
138
- ) }
139
- </View>
140
- </TouchableWithoutFeedback>
170
+ </TouchableOpacity>
171
+ </>
172
+ ) }
173
+ </View>
141
174
  </>
142
175
  );
143
176
  };
@@ -4,19 +4,28 @@
4
4
  flex-direction: column;
5
5
  align-items: center;
6
6
  justify-content: center;
7
- background-color: $gray-lighten-30;
7
+ background-color: #e0e0e0; // $light-dim
8
8
  padding-left: 12;
9
9
  padding-right: 12;
10
10
  padding-top: 12;
11
11
  padding-bottom: 12;
12
- border-top-left-radius: 4;
13
- border-top-right-radius: 4;
14
- border-bottom-left-radius: 4;
15
- border-bottom-right-radius: 4;
12
+ border-top-left-radius: 2;
13
+ border-top-right-radius: 2;
14
+ border-bottom-left-radius: 2;
15
+ border-bottom-right-radius: 2;
16
16
  }
17
17
 
18
18
  .embed__container--dark {
19
- background-color: $background-dark-secondary;
19
+ background-color: #1f1f1f; // $dark-dim
20
+ }
21
+
22
+ .embed__container-selected {
23
+ border-width: 2px;
24
+ border-color: $blue-40;
25
+ }
26
+
27
+ .embed__container-selected--dark {
28
+ border-color: $blue-50;
20
29
  }
21
30
 
22
31
  .embed__icon--error {
@@ -24,23 +33,38 @@
24
33
  fill: $alert-red;
25
34
  }
26
35
 
36
+ .embed__placeholder-header {
37
+ flex-direction: row;
38
+ align-items: center;
39
+ margin-top: 4;
40
+ margin-bottom: 16;
41
+ }
42
+
43
+ .embed__icon {
44
+ fill: $light-secondary;
45
+ }
46
+
47
+ .embed__icon--dark {
48
+ fill: $dark-tertiary;
49
+ }
50
+
27
51
  .embed__label {
28
52
  text-align: center;
29
- margin-top: 4;
30
- margin-bottom: 4;
31
- font-size: 14;
32
- font-weight: 500;
33
- color: $gray-90;
53
+ margin-left: $grid-unit;
54
+ font-size: 16;
55
+ font-weight: 400;
56
+ color: $light-secondary;
34
57
  }
35
58
 
36
59
  .embed__label--dark {
37
- color: $gray-10;
60
+ color: $dark-tertiary;
38
61
  }
39
62
 
40
63
  .embed__description {
41
64
  font-size: $default-font-size;
42
65
  text-align: center;
43
- margin-bottom: 4;
66
+ margin-top: 4;
67
+ margin-bottom: 16;
44
68
  color: $light-secondary;
45
69
  }
46
70
 
@@ -53,12 +77,14 @@
53
77
  }
54
78
 
55
79
  .embed__action {
56
- width: 100%;
57
80
  text-align: center;
58
- color: $blue-wordpress;
59
- font-size: 14;
60
- font-weight: 500;
61
- margin-top: 4;
81
+ color: $white;
82
+ font-size: 16;
83
+ font-weight: 400;
84
+ }
85
+
86
+ .embed__action--dark {
87
+ color: $black;
62
88
  }
63
89
 
64
90
  .embed-preview__loading {
@@ -158,3 +184,13 @@
158
184
  .embed-no-preview__sheet-button--dark {
159
185
  color: $blue-30;
160
186
  }
187
+
188
+ .embed__button {
189
+ background-color: $light-primary;
190
+ border-radius: 3px;
191
+ padding: $grid-unit $grid-unit-20;
192
+ }
193
+
194
+ .embed__button--dark {
195
+ background-color: $dark-primary;
196
+ }
@@ -330,7 +330,7 @@ describe( 'Embed block', () => {
330
330
  const editor = await initializeWithEmbedBlock( EMPTY_EMBED_HTML );
331
331
 
332
332
  // Edit URL.
333
- fireEvent.press( await editor.findByText( 'ADD LINK' ) );
333
+ fireEvent.press( await editor.findByText( 'Add link' ) );
334
334
 
335
335
  // Wait for edit URL modal to be visible.
336
336
  const embedEditURLModal = editor.getByTestId(
@@ -351,7 +351,7 @@ describe( 'Embed block', () => {
351
351
  const editor = await initializeWithEmbedBlock( EMPTY_EMBED_HTML );
352
352
 
353
353
  // Edit URL.
354
- fireEvent.press( editor.getByText( 'ADD LINK' ) );
354
+ fireEvent.press( editor.getByText( 'Add link' ) );
355
355
 
356
356
  // Wait for edit URL modal to be visible.
357
357
  const embedEditURLModal = editor.getByTestId(
@@ -392,7 +392,7 @@ describe( 'Embed block', () => {
392
392
  const editor = await initializeWithEmbedBlock( EMPTY_EMBED_HTML );
393
393
 
394
394
  // Edit URL.
395
- fireEvent.press( editor.getByText( 'ADD LINK' ) );
395
+ fireEvent.press( editor.getByText( 'Add link' ) );
396
396
 
397
397
  // Wait for edit URL modal to be visible.
398
398
  const embedEditURLModal = editor.getByTestId(
@@ -592,7 +592,7 @@ describe( 'Embed block', () => {
592
592
  fireEvent.press( editor.block );
593
593
 
594
594
  // Edit URL.
595
- fireEvent.press( editor.getByText( 'ADD LINK' ) );
595
+ fireEvent.press( editor.getByText( 'Add link' ) );
596
596
 
597
597
  // Wait for edit URL modal to be visible.
598
598
  await waitForModalVisible( embedEditURLModal );
@@ -602,7 +602,7 @@ describe( 'Embed block', () => {
602
602
  fireEvent( embedEditURLModal, MODAL_DISMISS_EVENT );
603
603
 
604
604
  // Edit URL.
605
- fireEvent.press( editor.getByText( 'ADD LINK' ) );
605
+ fireEvent.press( editor.getByText( 'Add link' ) );
606
606
 
607
607
  // Wait for edit URL modal to be visible.
608
608
  await waitForModalVisible( embedEditURLModal );
@@ -898,6 +898,10 @@ describe( 'Embed block', () => {
898
898
 
899
899
  // Select create embed option.
900
900
  fireEvent.press( editor.getByText( 'Create embed' ) );
901
+ expect( console ).toHaveLoggedWith(
902
+ 'Processed HTML piece:\n\n',
903
+ `<p>${ expectedURL }</p>`
904
+ );
901
905
 
902
906
  // Get the created embed block.
903
907
  const [ embedBlock ] = await editor.findAllByLabelText(
@@ -942,6 +946,10 @@ describe( 'Embed block', () => {
942
946
 
943
947
  // Select create link option.
944
948
  fireEvent.press( editor.getByText( 'Create link' ) );
949
+ expect( console ).toHaveLoggedWith(
950
+ 'Processed HTML piece:\n\n',
951
+ `<p>${ expectedURL }</p>`
952
+ );
945
953
 
946
954
  // Get the link text.
947
955
  const linkText = await editor.findByDisplayValue(
@@ -65,8 +65,7 @@
65
65
  "background": true,
66
66
  "link": true
67
67
  }
68
- },
69
- "interactivity": true
68
+ }
70
69
  },
71
70
  "viewScript": "file:./view.min.js",
72
71
  "editorStyle": "wp-block-file-editor",
@@ -5,8 +5,26 @@
5
5
  * @package WordPress
6
6
  */
7
7
 
8
+ if ( gutenberg_should_block_use_interactivity_api( 'core/file' ) ) {
9
+ /**
10
+ * Replaces view script for the File block with version using Interactivity API.
11
+ *
12
+ * @param array $metadata Block metadata as read in via block.json.
13
+ *
14
+ * @return array Filtered block type metadata.
15
+ */
16
+ function gutenberg_block_core_file_update_interactive_view_script( $metadata ) {
17
+ if ( 'core/file' === $metadata['name'] ) {
18
+ $metadata['viewScript'] = array( 'file:./view-interactivity.min.js' );
19
+ $metadata['supports']['interactivity'] = true;
20
+ }
21
+ return $metadata;
22
+ }
23
+ add_filter( 'block_type_metadata', 'gutenberg_block_core_file_update_interactive_view_script', 10, 1 );
24
+ }
25
+
8
26
  /**
9
- * When the `core/file` block is rendering, check if we need to enqueue the `'wp-block-file-view` script.
27
+ * When the `core/file` block is rendering, check if we need to enqueue the `wp-block-file-view` script.
10
28
  *
11
29
  * @param array $attributes The block attributes.
12
30
  * @param string $content The block content.
@@ -54,7 +72,7 @@ function render_block_core_file( $attributes, $content, $block ) {
54
72
  );
55
73
 
56
74
  // If it uses the Interactivity API, add the directives.
57
- if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN && $should_load_view_script ) {
75
+ if ( gutenberg_should_block_use_interactivity_api( 'core/file' ) && $should_load_view_script ) {
58
76
  $processor = new WP_HTML_Tag_Processor( $content );
59
77
  $processor->next_tag();
60
78
  $processor->set_attribute( 'data-wp-interactive', '' );
@@ -58,6 +58,7 @@ export default function FileBlockInspector( {
58
58
  { displayPreview && (
59
59
  <RangeControl
60
60
  __nextHasNoMarginBottom
61
+ __next40pxDefaultSize
61
62
  label={ __( 'Height in pixels' ) }
62
63
  min={ MIN_PREVIEW_HEIGHT }
63
64
  max={ Math.max(
@@ -22,7 +22,11 @@ exports[`File block renders file error state without crashing 1`] = `
22
22
  <View
23
23
  accessibilityState={
24
24
  {
25
+ "busy": undefined,
26
+ "checked": undefined,
25
27
  "disabled": false,
28
+ "expanded": undefined,
29
+ "selected": undefined,
26
30
  }
27
31
  }
28
32
  accessible={false}
@@ -61,6 +65,15 @@ exports[`File block renders file error state without crashing 1`] = `
61
65
  }
62
66
  >
63
67
  <RCTAztecView
68
+ accessibilityState={
69
+ {
70
+ "busy": undefined,
71
+ "checked": undefined,
72
+ "disabled": undefined,
73
+ "expanded": undefined,
74
+ "selected": undefined,
75
+ }
76
+ }
64
77
  accessible={true}
65
78
  activeFormats={[]}
66
79
  blockType={
@@ -94,6 +107,7 @@ exports[`File block renders file error state without crashing 1`] = `
94
107
  onStartShouldSetResponder={[Function]}
95
108
  placeholder="File name"
96
109
  placeholderTextColor="gray"
110
+ selectionColor="black"
97
111
  style={
98
112
  {
99
113
  "backgroundColor": undefined,
@@ -166,6 +180,15 @@ exports[`File block renders file error state without crashing 1`] = `
166
180
  }
167
181
  >
168
182
  <RCTAztecView
183
+ accessibilityState={
184
+ {
185
+ "busy": undefined,
186
+ "checked": undefined,
187
+ "disabled": undefined,
188
+ "expanded": undefined,
189
+ "selected": undefined,
190
+ }
191
+ }
169
192
  accessible={true}
170
193
  activeFormats={[]}
171
194
  blockType={
@@ -250,7 +273,11 @@ exports[`File block renders file without crashing 1`] = `
250
273
  <View
251
274
  accessibilityState={
252
275
  {
276
+ "busy": undefined,
277
+ "checked": undefined,
253
278
  "disabled": false,
279
+ "expanded": undefined,
280
+ "selected": undefined,
254
281
  }
255
282
  }
256
283
  accessible={false}
@@ -289,6 +316,15 @@ exports[`File block renders file without crashing 1`] = `
289
316
  }
290
317
  >
291
318
  <RCTAztecView
319
+ accessibilityState={
320
+ {
321
+ "busy": undefined,
322
+ "checked": undefined,
323
+ "disabled": undefined,
324
+ "expanded": undefined,
325
+ "selected": undefined,
326
+ }
327
+ }
292
328
  accessible={true}
293
329
  activeFormats={[]}
294
330
  blockType={
@@ -322,6 +358,7 @@ exports[`File block renders file without crashing 1`] = `
322
358
  onStartShouldSetResponder={[Function]}
323
359
  placeholder="File name"
324
360
  placeholderTextColor="gray"
361
+ selectionColor="black"
325
362
  style={
326
363
  {
327
364
  "backgroundColor": undefined,
@@ -368,6 +405,15 @@ exports[`File block renders file without crashing 1`] = `
368
405
  }
369
406
  >
370
407
  <RCTAztecView
408
+ accessibilityState={
409
+ {
410
+ "busy": undefined,
411
+ "checked": undefined,
412
+ "disabled": undefined,
413
+ "expanded": undefined,
414
+ "selected": undefined,
415
+ }
416
+ }
371
417
  accessible={true}
372
418
  activeFormats={[]}
373
419
  blockType={
@@ -439,22 +485,13 @@ exports[`File block renders placeholder without crashing 1`] = `
439
485
  }
440
486
  >
441
487
  <View
442
- accessibilityHint="Double tap to select"
443
- accessibilityLabel="File block. Empty"
444
- accessibilityRole="button"
445
- accessible={true}
446
- focusable={true}
447
- onClick={[Function]}
448
- onResponderGrant={[Function]}
449
- onResponderMove={[Function]}
450
- onResponderRelease={[Function]}
451
- onResponderTerminate={[Function]}
452
- onResponderTerminationRequest={[Function]}
453
- onStartShouldSetResponder={[Function]}
454
488
  style={
455
489
  [
456
490
  [
457
- undefined,
491
+ [
492
+ undefined,
493
+ false,
494
+ ],
458
495
  undefined,
459
496
  undefined,
460
497
  ],
@@ -462,33 +499,82 @@ exports[`File block renders placeholder without crashing 1`] = `
462
499
  ]
463
500
  }
464
501
  >
502
+ <View>
503
+ <View
504
+ style={
505
+ {
506
+ "fill": "black",
507
+ }
508
+ }
509
+ >
510
+ <View
511
+ style={{}}
512
+ >
513
+ <Svg
514
+ fill="black"
515
+ height={24}
516
+ style={{}}
517
+ viewBox="0 0 24 24"
518
+ width={24}
519
+ xmlns="http://www.w3.org/2000/svg"
520
+ >
521
+ Path
522
+ </Svg>
523
+ </View>
524
+ </View>
525
+ <Text>
526
+ File
527
+ </Text>
528
+ </View>
465
529
  <View
530
+ accessibilityHint="Double tap to select"
531
+ accessibilityLabel="File block. Empty"
532
+ accessibilityRole="button"
533
+ accessibilityState={
534
+ {
535
+ "busy": undefined,
536
+ "checked": undefined,
537
+ "disabled": undefined,
538
+ "expanded": undefined,
539
+ "selected": undefined,
540
+ }
541
+ }
542
+ accessibilityValue={
543
+ {
544
+ "max": undefined,
545
+ "min": undefined,
546
+ "now": undefined,
547
+ "text": undefined,
548
+ }
549
+ }
550
+ accessible={true}
551
+ collapsable={false}
552
+ focusable={true}
553
+ hitSlop={
554
+ {
555
+ "bottom": 22,
556
+ "left": 22,
557
+ "right": 22,
558
+ "top": 22,
559
+ }
560
+ }
561
+ onClick={[Function]}
562
+ onResponderGrant={[Function]}
563
+ onResponderMove={[Function]}
564
+ onResponderRelease={[Function]}
565
+ onResponderTerminate={[Function]}
566
+ onResponderTerminationRequest={[Function]}
567
+ onStartShouldSetResponder={[Function]}
466
568
  style={
467
569
  {
468
- "fill": "gray",
570
+ "opacity": 1,
469
571
  }
470
572
  }
471
573
  >
472
- <View
473
- style={{}}
474
- >
475
- <Svg
476
- height={24}
477
- style={{}}
478
- viewBox="0 0 24 24"
479
- width={24}
480
- xmlns="http://www.w3.org/2000/svg"
481
- >
482
- Path
483
- </Svg>
484
- </View>
574
+ <Text>
575
+ Choose a file
576
+ </Text>
485
577
  </View>
486
- <Text>
487
- File
488
- </Text>
489
- <Text>
490
- CHOOSE A FILE
491
- </Text>
492
578
  </View>
493
579
  </View>
494
580
  `;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { store } from '@wordpress/interactivity';
5
+ /**
6
+ * Internal dependencies
7
+ */
8
+ import { browserSupportsPdfs as hasPdfPreview } from './utils';
9
+
10
+ store( {
11
+ selectors: {
12
+ core: {
13
+ file: {
14
+ hasPdfPreview,
15
+ },
16
+ },
17
+ },
18
+ } );
package/src/file/view.js CHANGED
@@ -1,18 +1,9 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { store } from '@wordpress/interactivity';
5
1
  /**
6
2
  * Internal dependencies
7
3
  */
8
- import { browserSupportsPdfs as hasPdfPreview } from './utils';
4
+ import { hidePdfEmbedsOnUnsupportedBrowsers } from './utils';
9
5
 
10
- store( {
11
- selectors: {
12
- core: {
13
- file: {
14
- hasPdfPreview,
15
- },
16
- },
17
- },
18
- } );
6
+ document.addEventListener(
7
+ 'DOMContentLoaded',
8
+ hidePdfEmbedsOnUnsupportedBrowsers
9
+ );