@wordpress/block-library 8.24.1 → 8.25.1-next.79a6196f.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 (509) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/LICENSE.md +1 -1
  3. package/build/audio/edit.js +15 -62
  4. package/build/audio/edit.js.map +1 -1
  5. package/build/audio/edit.native.js +1 -1
  6. package/build/audio/edit.native.js.map +1 -1
  7. package/build/audio/index.js +2 -2
  8. package/build/block/edit.js +157 -19
  9. package/build/block/edit.js.map +1 -1
  10. package/build/block/index.js +3 -2
  11. package/build/block/index.js.map +1 -1
  12. package/build/block/v1/edit.js +116 -0
  13. package/build/block/v1/edit.js.map +1 -0
  14. package/build/block/{edit.native.js → v1/edit.native.js} +2 -2
  15. package/build/block/v1/edit.native.js.map +1 -0
  16. package/build/button/index.js +2 -2
  17. package/build/button/save.js +1 -1
  18. package/build/button/save.js.map +1 -1
  19. package/build/code/edit.native.js +13 -14
  20. package/build/code/edit.native.js.map +1 -1
  21. package/build/code/index.js +2 -2
  22. package/build/code/save.js +6 -2
  23. package/build/code/save.js.map +1 -1
  24. package/build/comments-title/deprecated.js +1 -1
  25. package/build/comments-title/index.js +1 -1
  26. package/build/cover/edit/inspector-controls.js +1 -1
  27. package/build/cover/edit/inspector-controls.js.map +1 -1
  28. package/build/cover/edit.native.js +1 -0
  29. package/build/cover/edit.native.js.map +1 -1
  30. package/build/details/index.js +2 -2
  31. package/build/embed/deprecated.js +2 -2
  32. package/build/embed/embed-preview.native.js +1 -1
  33. package/build/embed/embed-preview.native.js.map +1 -1
  34. package/build/embed/icons.js +1 -1
  35. package/build/embed/icons.js.map +1 -1
  36. package/build/embed/index.js +2 -2
  37. package/build/embed/transforms.js +2 -2
  38. package/build/embed/util.js +6 -6
  39. package/build/embed/util.js.map +1 -1
  40. package/build/file/edit.js +20 -28
  41. package/build/file/edit.js.map +1 -1
  42. package/build/file/edit.native.js +1 -1
  43. package/build/file/edit.native.js.map +1 -1
  44. package/build/file/index.js +4 -4
  45. package/build/file/save.js +4 -1
  46. package/build/file/save.js.map +1 -1
  47. package/build/form-input/deprecated.js +147 -0
  48. package/build/form-input/deprecated.js.map +1 -0
  49. package/build/form-input/edit.js +1 -1
  50. package/build/form-input/edit.js.map +1 -1
  51. package/build/form-input/index.js +4 -2
  52. package/build/form-input/index.js.map +1 -1
  53. package/build/form-input/save.js +7 -9
  54. package/build/form-input/save.js.map +1 -1
  55. package/build/gallery/edit.js +38 -58
  56. package/build/gallery/edit.js.map +1 -1
  57. package/build/gallery/gallery.js +19 -24
  58. package/build/gallery/gallery.js.map +1 -1
  59. package/build/gallery/gallery.native.js +1 -1
  60. package/build/gallery/gallery.native.js.map +1 -1
  61. package/build/gallery/index.js +8 -4
  62. package/build/gallery/index.js.map +1 -1
  63. package/build/gallery/transforms.js +4 -68
  64. package/build/gallery/transforms.js.map +1 -1
  65. package/build/gallery/v1/gallery.native.js +1 -1
  66. package/build/gallery/v1/gallery.native.js.map +1 -1
  67. package/build/group/edit.js +6 -1
  68. package/build/group/edit.js.map +1 -1
  69. package/build/group/index.js +5 -1
  70. package/build/group/index.js.map +1 -1
  71. package/build/heading/index.js +3 -6
  72. package/build/heading/index.js.map +1 -1
  73. package/build/image/deprecated.js +11 -0
  74. package/build/image/deprecated.js.map +1 -1
  75. package/build/image/edit.native.js +4 -1
  76. package/build/image/edit.native.js.map +1 -1
  77. package/build/image/image.js +35 -71
  78. package/build/image/image.js.map +1 -1
  79. package/build/image/index.js +2 -2
  80. package/build/image/save.js +3 -1
  81. package/build/image/save.js.map +1 -1
  82. package/build/image/view.js +7 -1
  83. package/build/image/view.js.map +1 -1
  84. package/build/list/edit.js +10 -15
  85. package/build/list/edit.js.map +1 -1
  86. package/build/list-item/edit.js +17 -2
  87. package/build/list-item/edit.js.map +1 -1
  88. package/build/list-item/hooks/use-enter.js +5 -3
  89. package/build/list-item/hooks/use-enter.js.map +1 -1
  90. package/build/list-item/hooks/use-enter.native.js +4 -3
  91. package/build/list-item/hooks/use-enter.native.js.map +1 -1
  92. package/build/list-item/hooks/use-indent-list-item.js +2 -3
  93. package/build/list-item/hooks/use-indent-list-item.js.map +1 -1
  94. package/build/list-item/hooks/use-merge.js +1 -1
  95. package/build/list-item/hooks/use-merge.js.map +1 -1
  96. package/build/list-item/hooks/use-outdent-list-item.js +3 -17
  97. package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
  98. package/build/list-item/hooks/use-space.js +8 -4
  99. package/build/list-item/hooks/use-space.js.map +1 -1
  100. package/build/list-item/index.js +10 -3
  101. package/build/list-item/index.js.map +1 -1
  102. package/build/media-text/media-container.native.js +3 -0
  103. package/build/media-text/media-container.native.js.map +1 -1
  104. package/build/navigation/constants.js +3 -1
  105. package/build/navigation/constants.js.map +1 -1
  106. package/build/navigation/edit/index.js +5 -1
  107. package/build/navigation/edit/index.js.map +1 -1
  108. package/build/navigation/view.js +25 -1
  109. package/build/navigation/view.js.map +1 -1
  110. package/build/page-list/convert-to-links-modal.js +2 -2
  111. package/build/page-list/convert-to-links-modal.js.map +1 -1
  112. package/build/paragraph/edit.js +54 -32
  113. package/build/paragraph/edit.js.map +1 -1
  114. package/build/paragraph/index.js +2 -4
  115. package/build/paragraph/index.js.map +1 -1
  116. package/build/paragraph/transforms.js +2 -4
  117. package/build/paragraph/transforms.js.map +1 -1
  118. package/build/pattern/edit.js +24 -2
  119. package/build/pattern/edit.js.map +1 -1
  120. package/build/pattern/recursion-detector.js +147 -0
  121. package/build/pattern/recursion-detector.js.map +1 -0
  122. package/build/post-featured-image/edit.js +19 -2
  123. package/build/post-featured-image/edit.js.map +1 -1
  124. package/build/post-featured-image/index.js +4 -0
  125. package/build/post-featured-image/index.js.map +1 -1
  126. package/build/post-title/index.js +1 -3
  127. package/build/post-title/index.js.map +1 -1
  128. package/build/preformatted/index.js +2 -3
  129. package/build/preformatted/index.js.map +1 -1
  130. package/build/pullquote/index.js +5 -7
  131. package/build/pullquote/index.js.map +1 -1
  132. package/build/query/edit/inspector-controls/index.js +3 -1
  133. package/build/query/edit/inspector-controls/index.js.map +1 -1
  134. package/build/query/edit/inspector-controls/taxonomy-controls.js +2 -0
  135. package/build/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  136. package/build/query-pagination-numbers/index.js +1 -1
  137. package/build/query-title/index.js +1 -3
  138. package/build/query-title/index.js.map +1 -1
  139. package/build/quote/index.js +3 -5
  140. package/build/quote/index.js.map +1 -1
  141. package/build/quote/transforms.js +7 -6
  142. package/build/quote/transforms.js.map +1 -1
  143. package/build/search/edit.js +3 -5
  144. package/build/search/edit.js.map +1 -1
  145. package/build/search/index.js +0 -4
  146. package/build/search/index.js.map +1 -1
  147. package/build/site-logo/edit.js +7 -6
  148. package/build/site-logo/edit.js.map +1 -1
  149. package/build/site-title/index.js +1 -5
  150. package/build/site-title/index.js.map +1 -1
  151. package/build/social-link/icons/gravatar.js +22 -0
  152. package/build/social-link/icons/gravatar.js.map +1 -0
  153. package/build/social-link/icons/index.js +11 -0
  154. package/build/social-link/icons/index.js.map +1 -1
  155. package/build/social-link/variations.js +7 -0
  156. package/build/social-link/variations.js.map +1 -1
  157. package/build/spacer/edit.native.js +2 -2
  158. package/build/spacer/edit.native.js.map +1 -1
  159. package/build/table/edit.js +3 -1
  160. package/build/table/edit.js.map +1 -1
  161. package/build/table/index.js +9 -10
  162. package/build/table/index.js.map +1 -1
  163. package/build/table-of-contents/edit.js +2 -2
  164. package/build/table-of-contents/edit.js.map +1 -1
  165. package/build/table-of-contents/index.js +5 -2
  166. package/build/table-of-contents/index.js.map +1 -1
  167. package/build/tag-cloud/edit.js +5 -9
  168. package/build/tag-cloud/edit.js.map +1 -1
  169. package/build/utils/caption.js +90 -0
  170. package/build/utils/caption.js.map +1 -0
  171. package/build/utils/constants.js +16 -0
  172. package/build/utils/constants.js.map +1 -0
  173. package/build/utils/remove-anchor-tag.js +2 -1
  174. package/build/utils/remove-anchor-tag.js.map +1 -1
  175. package/build/verse/index.js +3 -5
  176. package/build/verse/index.js.map +1 -1
  177. package/build/video/deprecated.js +2 -2
  178. package/build/video/edit.js +16 -57
  179. package/build/video/edit.js.map +1 -1
  180. package/build/video/edit.native.js +1 -1
  181. package/build/video/edit.native.js.map +1 -1
  182. package/build/video/index.js +2 -2
  183. package/build-module/audio/edit.js +19 -66
  184. package/build-module/audio/edit.js.map +1 -1
  185. package/build-module/audio/edit.native.js +2 -2
  186. package/build-module/audio/edit.native.js.map +1 -1
  187. package/build-module/audio/index.js +2 -2
  188. package/build-module/block/edit.js +160 -22
  189. package/build-module/block/edit.js.map +1 -1
  190. package/build-module/block/index.js +3 -2
  191. package/build-module/block/index.js.map +1 -1
  192. package/build-module/block/v1/edit.js +108 -0
  193. package/build-module/block/v1/edit.js.map +1 -0
  194. package/build-module/block/{edit.native.js → v1/edit.native.js} +2 -2
  195. package/build-module/block/v1/edit.native.js.map +1 -0
  196. package/build-module/button/index.js +2 -2
  197. package/build-module/button/save.js +1 -1
  198. package/build-module/button/save.js.map +1 -1
  199. package/build-module/code/edit.native.js +14 -16
  200. package/build-module/code/edit.native.js.map +1 -1
  201. package/build-module/code/index.js +2 -2
  202. package/build-module/code/save.js +6 -2
  203. package/build-module/code/save.js.map +1 -1
  204. package/build-module/comments-title/deprecated.js +1 -1
  205. package/build-module/comments-title/index.js +1 -1
  206. package/build-module/cover/edit/inspector-controls.js +1 -1
  207. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  208. package/build-module/cover/edit.native.js +1 -0
  209. package/build-module/cover/edit.native.js.map +1 -1
  210. package/build-module/details/index.js +2 -2
  211. package/build-module/embed/deprecated.js +2 -2
  212. package/build-module/embed/embed-preview.native.js +2 -2
  213. package/build-module/embed/embed-preview.native.js.map +1 -1
  214. package/build-module/embed/icons.js +1 -1
  215. package/build-module/embed/icons.js.map +1 -1
  216. package/build-module/embed/index.js +2 -2
  217. package/build-module/embed/transforms.js +2 -2
  218. package/build-module/embed/util.js +6 -6
  219. package/build-module/embed/util.js.map +1 -1
  220. package/build-module/file/edit.js +20 -28
  221. package/build-module/file/edit.js.map +1 -1
  222. package/build-module/file/edit.native.js +1 -1
  223. package/build-module/file/edit.native.js.map +1 -1
  224. package/build-module/file/index.js +4 -4
  225. package/build-module/file/save.js +4 -1
  226. package/build-module/file/save.js.map +1 -1
  227. package/build-module/form-input/deprecated.js +138 -0
  228. package/build-module/form-input/deprecated.js.map +1 -0
  229. package/build-module/form-input/edit.js +1 -1
  230. package/build-module/form-input/edit.js.map +1 -1
  231. package/build-module/form-input/index.js +4 -2
  232. package/build-module/form-input/index.js.map +1 -1
  233. package/build-module/form-input/save.js +8 -10
  234. package/build-module/form-input/save.js.map +1 -1
  235. package/build-module/gallery/edit.js +41 -61
  236. package/build-module/gallery/edit.js.map +1 -1
  237. package/build-module/gallery/gallery.js +18 -21
  238. package/build-module/gallery/gallery.js.map +1 -1
  239. package/build-module/gallery/gallery.native.js +2 -2
  240. package/build-module/gallery/gallery.native.js.map +1 -1
  241. package/build-module/gallery/index.js +8 -4
  242. package/build-module/gallery/index.js.map +1 -1
  243. package/build-module/gallery/transforms.js +4 -68
  244. package/build-module/gallery/transforms.js.map +1 -1
  245. package/build-module/gallery/v1/gallery.native.js +2 -2
  246. package/build-module/gallery/v1/gallery.native.js.map +1 -1
  247. package/build-module/group/edit.js +6 -1
  248. package/build-module/group/edit.js.map +1 -1
  249. package/build-module/group/index.js +5 -1
  250. package/build-module/group/index.js.map +1 -1
  251. package/build-module/heading/index.js +3 -6
  252. package/build-module/heading/index.js.map +1 -1
  253. package/build-module/image/deprecated.js +11 -0
  254. package/build-module/image/deprecated.js.map +1 -1
  255. package/build-module/image/edit.native.js +5 -2
  256. package/build-module/image/edit.native.js.map +1 -1
  257. package/build-module/image/image.js +35 -71
  258. package/build-module/image/image.js.map +1 -1
  259. package/build-module/image/index.js +2 -2
  260. package/build-module/image/save.js +3 -1
  261. package/build-module/image/save.js.map +1 -1
  262. package/build-module/image/view.js +7 -1
  263. package/build-module/image/view.js.map +1 -1
  264. package/build-module/list/edit.js +10 -15
  265. package/build-module/list/edit.js.map +1 -1
  266. package/build-module/list-item/edit.js +18 -3
  267. package/build-module/list-item/edit.js.map +1 -1
  268. package/build-module/list-item/hooks/use-enter.js +5 -3
  269. package/build-module/list-item/hooks/use-enter.js.map +1 -1
  270. package/build-module/list-item/hooks/use-enter.native.js +4 -3
  271. package/build-module/list-item/hooks/use-enter.native.js.map +1 -1
  272. package/build-module/list-item/hooks/use-indent-list-item.js +2 -3
  273. package/build-module/list-item/hooks/use-indent-list-item.js.map +1 -1
  274. package/build-module/list-item/hooks/use-merge.js +1 -1
  275. package/build-module/list-item/hooks/use-merge.js.map +1 -1
  276. package/build-module/list-item/hooks/use-outdent-list-item.js +3 -17
  277. package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
  278. package/build-module/list-item/hooks/use-space.js +8 -4
  279. package/build-module/list-item/hooks/use-space.js.map +1 -1
  280. package/build-module/list-item/index.js +10 -3
  281. package/build-module/list-item/index.js.map +1 -1
  282. package/build-module/media-text/media-container.native.js +3 -0
  283. package/build-module/media-text/media-container.native.js.map +1 -1
  284. package/build-module/navigation/constants.js +1 -0
  285. package/build-module/navigation/constants.js.map +1 -1
  286. package/build-module/navigation/edit/index.js +7 -3
  287. package/build-module/navigation/edit/index.js.map +1 -1
  288. package/build-module/navigation/view.js +25 -1
  289. package/build-module/navigation/view.js.map +1 -1
  290. package/build-module/page-list/convert-to-links-modal.js +2 -2
  291. package/build-module/page-list/convert-to-links-modal.js.map +1 -1
  292. package/build-module/paragraph/edit.js +54 -32
  293. package/build-module/paragraph/edit.js.map +1 -1
  294. package/build-module/paragraph/index.js +2 -4
  295. package/build-module/paragraph/index.js.map +1 -1
  296. package/build-module/paragraph/transforms.js +2 -4
  297. package/build-module/paragraph/transforms.js.map +1 -1
  298. package/build-module/pattern/edit.js +26 -4
  299. package/build-module/pattern/edit.js.map +1 -1
  300. package/build-module/pattern/recursion-detector.js +139 -0
  301. package/build-module/pattern/recursion-detector.js.map +1 -0
  302. package/build-module/post-featured-image/edit.js +19 -2
  303. package/build-module/post-featured-image/edit.js.map +1 -1
  304. package/build-module/post-featured-image/index.js +4 -0
  305. package/build-module/post-featured-image/index.js.map +1 -1
  306. package/build-module/post-title/index.js +1 -3
  307. package/build-module/post-title/index.js.map +1 -1
  308. package/build-module/preformatted/index.js +2 -3
  309. package/build-module/preformatted/index.js.map +1 -1
  310. package/build-module/pullquote/index.js +5 -7
  311. package/build-module/pullquote/index.js.map +1 -1
  312. package/build-module/query/edit/inspector-controls/index.js +3 -1
  313. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  314. package/build-module/query/edit/inspector-controls/taxonomy-controls.js +2 -0
  315. package/build-module/query/edit/inspector-controls/taxonomy-controls.js.map +1 -1
  316. package/build-module/query-pagination-numbers/index.js +1 -1
  317. package/build-module/query-title/index.js +1 -3
  318. package/build-module/query-title/index.js.map +1 -1
  319. package/build-module/quote/index.js +3 -5
  320. package/build-module/quote/index.js.map +1 -1
  321. package/build-module/quote/transforms.js +7 -6
  322. package/build-module/quote/transforms.js.map +1 -1
  323. package/build-module/search/edit.js +3 -5
  324. package/build-module/search/edit.js.map +1 -1
  325. package/build-module/search/index.js +0 -4
  326. package/build-module/search/index.js.map +1 -1
  327. package/build-module/site-logo/edit.js +7 -6
  328. package/build-module/site-logo/edit.js.map +1 -1
  329. package/build-module/site-title/index.js +1 -5
  330. package/build-module/site-title/index.js.map +1 -1
  331. package/build-module/social-link/icons/gravatar.js +14 -0
  332. package/build-module/social-link/icons/gravatar.js.map +1 -0
  333. package/build-module/social-link/icons/index.js +1 -0
  334. package/build-module/social-link/icons/index.js.map +1 -1
  335. package/build-module/social-link/variations.js +8 -1
  336. package/build-module/social-link/variations.js.map +1 -1
  337. package/build-module/spacer/edit.native.js +2 -2
  338. package/build-module/spacer/edit.native.js.map +1 -1
  339. package/build-module/table/edit.js +3 -1
  340. package/build-module/table/edit.js.map +1 -1
  341. package/build-module/table/index.js +9 -10
  342. package/build-module/table/index.js.map +1 -1
  343. package/build-module/table-of-contents/edit.js +1 -1
  344. package/build-module/table-of-contents/edit.js.map +1 -1
  345. package/build-module/table-of-contents/index.js +5 -1
  346. package/build-module/table-of-contents/index.js.map +1 -1
  347. package/build-module/tag-cloud/edit.js +6 -10
  348. package/build-module/tag-cloud/edit.js.map +1 -1
  349. package/build-module/utils/caption.js +82 -0
  350. package/build-module/utils/caption.js.map +1 -0
  351. package/build-module/utils/constants.js +9 -0
  352. package/build-module/utils/constants.js.map +1 -0
  353. package/build-module/utils/remove-anchor-tag.js +2 -1
  354. package/build-module/utils/remove-anchor-tag.js.map +1 -1
  355. package/build-module/verse/index.js +3 -5
  356. package/build-module/verse/index.js.map +1 -1
  357. package/build-module/video/deprecated.js +2 -2
  358. package/build-module/video/edit.js +21 -62
  359. package/build-module/video/edit.js.map +1 -1
  360. package/build-module/video/edit.native.js +2 -2
  361. package/build-module/video/edit.native.js.map +1 -1
  362. package/build-module/video/index.js +2 -2
  363. package/build-style/button/editor-rtl.css +0 -37
  364. package/build-style/button/editor.css +0 -37
  365. package/build-style/button/style-rtl.css +6 -6
  366. package/build-style/button/style.css +6 -6
  367. package/build-style/editor-rtl.css +3 -55
  368. package/build-style/editor.css +3 -55
  369. package/build-style/navigation/editor-rtl.css +2 -4
  370. package/build-style/navigation/editor.css +2 -4
  371. package/build-style/navigation/style-rtl.css +14 -18
  372. package/build-style/navigation/style.css +14 -18
  373. package/build-style/search/style-rtl.css +26 -27
  374. package/build-style/search/style.css +26 -27
  375. package/build-style/social-links/style-rtl.css +14 -2
  376. package/build-style/social-links/style.css +14 -2
  377. package/build-style/style-rtl.css +60 -53
  378. package/build-style/style.css +60 -53
  379. package/build-style/table/editor-rtl.css +1 -14
  380. package/build-style/table/editor.css +1 -14
  381. package/package.json +32 -32
  382. package/src/audio/block.json +2 -2
  383. package/src/audio/edit.js +29 -92
  384. package/src/audio/edit.native.js +2 -1
  385. package/src/audio/test/__snapshots__/edit.native.js.snap +12 -0
  386. package/src/audio/test/edit.native.js +29 -0
  387. package/src/block/edit.js +218 -37
  388. package/src/block/index.js +3 -2
  389. package/src/block/index.php +48 -0
  390. package/src/block/v1/edit.js +163 -0
  391. package/src/block/{edit.native.js → v1/edit.native.js} +2 -2
  392. package/src/button/block.json +2 -2
  393. package/src/button/editor.scss +0 -43
  394. package/src/button/save.js +1 -1
  395. package/src/button/style.scss +6 -6
  396. package/src/buttons/test/__snapshots__/edit.native.js.snap +6 -0
  397. package/src/buttons/test/edit.native.js +49 -0
  398. package/src/code/block.json +2 -2
  399. package/src/code/edit.native.js +11 -13
  400. package/src/code/save.js +4 -1
  401. package/src/code/test/edit.native.js +2 -2
  402. package/src/comments-title/block.json +1 -1
  403. package/src/cover/edit/inspector-controls.js +1 -1
  404. package/src/cover/edit.native.js +1 -0
  405. package/src/cover/test/edit.native.js +7 -1
  406. package/src/details/block.json +2 -2
  407. package/src/embed/block.json +2 -2
  408. package/src/embed/embed-preview.native.js +2 -1
  409. package/src/embed/icons.js +1 -1
  410. package/src/embed/util.js +2 -2
  411. package/src/file/block.json +4 -4
  412. package/src/file/edit.js +18 -25
  413. package/src/file/edit.native.js +1 -1
  414. package/src/file/save.js +5 -1
  415. package/src/form-input/block.json +2 -2
  416. package/src/form-input/deprecated.js +142 -0
  417. package/src/form-input/edit.js +1 -1
  418. package/src/form-input/index.js +2 -0
  419. package/src/form-input/save.js +27 -24
  420. package/src/gallery/block.json +8 -4
  421. package/src/gallery/edit.js +70 -98
  422. package/src/gallery/gallery.js +22 -36
  423. package/src/gallery/gallery.native.js +6 -2
  424. package/src/gallery/index.php +15 -0
  425. package/src/gallery/transforms.js +2 -55
  426. package/src/gallery/v1/gallery.native.js +2 -1
  427. package/src/group/block.json +5 -1
  428. package/src/group/edit.js +4 -1
  429. package/src/heading/block.json +3 -6
  430. package/src/image/block.json +2 -2
  431. package/src/image/deprecated.js +8 -0
  432. package/src/image/edit.native.js +5 -3
  433. package/src/image/image.js +77 -127
  434. package/src/image/index.php +1 -6
  435. package/src/image/save.js +3 -1
  436. package/src/image/view.js +5 -2
  437. package/src/list/edit.js +27 -35
  438. package/src/list-item/block.json +10 -3
  439. package/src/list-item/edit.js +18 -2
  440. package/src/list-item/hooks/use-enter.js +63 -62
  441. package/src/list-item/hooks/use-enter.native.js +9 -5
  442. package/src/list-item/hooks/use-indent-list-item.js +43 -53
  443. package/src/list-item/hooks/use-merge.js +1 -1
  444. package/src/list-item/hooks/use-outdent-list-item.js +50 -69
  445. package/src/list-item/hooks/use-space.js +7 -4
  446. package/src/media-text/media-container.native.js +3 -1
  447. package/src/navigation/constants.js +2 -0
  448. package/src/navigation/edit/index.js +18 -3
  449. package/src/navigation/editor.scss +1 -1
  450. package/src/navigation/index.php +1 -1
  451. package/src/navigation/style.scss +18 -16
  452. package/src/navigation/view.js +29 -3
  453. package/src/navigation-link/test/__snapshots__/hooks.js.snap +6 -3
  454. package/src/page-list/convert-to-links-modal.js +2 -2
  455. package/src/paragraph/block.json +2 -4
  456. package/src/paragraph/edit.js +53 -40
  457. package/src/paragraph/test/__snapshots__/edit.native.js.snap +12 -0
  458. package/src/paragraph/test/edit.native.js +114 -0
  459. package/src/pattern/edit.js +35 -3
  460. package/src/pattern/index.php +16 -0
  461. package/src/pattern/recursion-detector.js +145 -0
  462. package/src/pattern/test/index.js +74 -0
  463. package/src/post-featured-image/block.json +4 -0
  464. package/src/post-featured-image/edit.js +32 -1
  465. package/src/post-featured-image/index.php +31 -0
  466. package/src/post-title/block.json +1 -3
  467. package/src/preformatted/block.json +2 -3
  468. package/src/pullquote/block.json +5 -7
  469. package/src/query/edit/inspector-controls/index.js +2 -0
  470. package/src/query/edit/inspector-controls/taxonomy-controls.js +2 -0
  471. package/src/query-pagination-numbers/block.json +1 -1
  472. package/src/query-title/block.json +1 -3
  473. package/src/quote/block.json +3 -5
  474. package/src/quote/transforms.js +12 -11
  475. package/src/search/block.json +0 -4
  476. package/src/search/edit.js +2 -8
  477. package/src/search/index.php +3 -7
  478. package/src/search/style.scss +27 -29
  479. package/src/site-logo/edit.js +3 -4
  480. package/src/site-title/block.json +1 -5
  481. package/src/social-link/icons/gravatar.js +10 -0
  482. package/src/social-link/icons/index.js +1 -0
  483. package/src/social-link/index.php +5 -1
  484. package/src/social-link/socials-with-bg.scss +5 -0
  485. package/src/social-link/socials-without-bg.scss +4 -0
  486. package/src/social-link/variations.js +7 -0
  487. package/src/social-links/style.scss +14 -8
  488. package/src/spacer/edit.native.js +4 -2
  489. package/src/table/block.json +9 -10
  490. package/src/table/edit.js +3 -1
  491. package/src/table/editor.scss +1 -17
  492. package/src/table-of-contents/edit.js +1 -1
  493. package/src/table-of-contents/index.js +5 -1
  494. package/src/tag-cloud/edit.js +7 -7
  495. package/src/template-part/index.php +6 -0
  496. package/src/utils/caption.js +108 -0
  497. package/src/utils/constants.js +8 -0
  498. package/src/utils/remove-anchor-tag.js +2 -1
  499. package/src/verse/block.json +3 -5
  500. package/src/video/block.json +2 -2
  501. package/src/video/edit.js +40 -100
  502. package/src/video/edit.native.js +2 -1
  503. package/build/block/edit.native.js.map +0 -1
  504. package/build/table-of-contents/icon.js +0 -22
  505. package/build/table-of-contents/icon.js.map +0 -1
  506. package/build-module/block/edit.native.js.map +0 -1
  507. package/build-module/table-of-contents/icon.js +0 -15
  508. package/build-module/table-of-contents/icon.js.map +0 -1
  509. package/src/table-of-contents/icon.js +0 -18
@@ -1 +1 @@
1
- {"version":3,"names":["View","TouchableWithoutFeedback","Text","Clipboard","requestImageFailedRetryDialog","requestImageUploadCancelDialog","mediaUploadSync","BlockIcon","MediaPlaceholder","MediaUploadProgress","RichText","PlainText","BlockControls","MediaUpload","InspectorControls","MEDIA_TYPE_ANY","store","blockEditorStore","ToolbarButton","ToolbarGroup","PanelBody","ToggleControl","TextControl","SelectControl","Icon","file","icon","replace","button","external","link","warning","Component","__","_x","compose","withPreferredColorScheme","withDispatch","withSelect","getProtocol","coreStore","styles","URL_COPIED_NOTIFICATION_DURATION_MS","MIN_WIDTH","FileEdit","constructor","props","state","isUploadInProgress","isSidebarLinkSettings","placeholderTextWidth","maxWidth","timerRef","onLayout","bind","onSelectFile","onChangeFileName","onChangeDownloadButtonText","updateMediaProgress","finishMediaUploadWithSuccess","finishMediaUploadWithFailure","getFileComponent","onChangeDownloadButtonVisibility","onCopyURL","onChangeOpenInNewWindow","onChangeLinkDestinationOption","onShowLinkSettings","onFilePressed","mediaUploadStateReset","componentDidMount","attributes","setAttributes","downloadButtonText","undefined","id","url","componentWillUnmount","clearTimeout","componentDidUpdate","prevProps","isSidebarOpened","setState","media","href","fileName","title","textLinkHref","showDownloadButton","newHref","isUrlCopied","setString","setTimeout","newValue","textLinkTarget","payload","mediaUrl","mediaServerId","mediaId","openSidebar","getToolbarEditButton","open","createElement","onClick","getInspectorControls","isUploadFailed","linkDestinationOptions","value","label","attachmentPage","actionButtonStyle","getStylesFromColorScheme","actionButton","actionButtonDark","isCopyUrlDisabled","dimmedActionButtonStyle","dimmedActionButton","dimmedActionButtonDark","finalButtonStyle","onChange","options","hideCancelButton","checked","disabled","labelStyle","onPress","getStyleForAlignment","align","getFlexAlign","alignment","alignSelf","getTextAlignmentForAlignment","nativeEvent","width","layout","paddingLeft","paddingRight","defaultButton","getPlaceholderWidth","placeholderText","style","placeholder","onTextLayout","textWidth","lines","Math","min","openMediaOptions","getMediaOptions","isSelected","isButtonFocused","minWidth","onUpdateMediaProgress","onFinishMediaUploadWithSuccess","onFinishMediaUploadWithFailure","onMediaUploadStateReset","renderContent","dimmedStyle","disabledButton","errorIconStyle","Object","assign","errorIcon","uploadFailed","accessible","testID","container","withoutInteractiveFormatting","__unstableMobileNoFocusOnMount","tagName","underlineColorAndroid","deleteEnter","textAlign","errorContainer","editable","buttonText","unstableOnFocus","onBlur","selectionColor","color","placeholderTextColor","render","wasBlockJustInserted","labels","instructions","onSelect","onFocus","allowedTypes","autoOpenMediaUpload","isReplacingMedia","select","clientId","isEditorSidebarOpened","isNotFileHref","getMedia","dispatch","openGeneralSidebar"],"sources":["@wordpress/block-library/src/file/edit.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View, TouchableWithoutFeedback, Text } from 'react-native';\nimport Clipboard from '@react-native-clipboard/clipboard';\n\n/**\n * WordPress dependencies\n */\nimport {\n\trequestImageFailedRetryDialog,\n\trequestImageUploadCancelDialog,\n\tmediaUploadSync,\n} from '@wordpress/react-native-bridge';\nimport {\n\tBlockIcon,\n\tMediaPlaceholder,\n\tMediaUploadProgress,\n\tRichText,\n\tPlainText,\n\tBlockControls,\n\tMediaUpload,\n\tInspectorControls,\n\tMEDIA_TYPE_ANY,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tToolbarButton,\n\tToolbarGroup,\n\tPanelBody,\n\tToggleControl,\n\tTextControl,\n\tSelectControl,\n\tIcon,\n} from '@wordpress/components';\nimport {\n\tfile as icon,\n\treplace,\n\tbutton,\n\texternal,\n\tlink,\n\twarning,\n} from '@wordpress/icons';\nimport { Component } from '@wordpress/element';\nimport { __, _x } from '@wordpress/i18n';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { getProtocol } from '@wordpress/url';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nconst URL_COPIED_NOTIFICATION_DURATION_MS = 1500;\nconst MIN_WIDTH = 40;\n\nexport class FileEdit extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.state = {\n\t\t\tisUploadInProgress: false,\n\t\t\tisSidebarLinkSettings: false,\n\t\t\tplaceholderTextWidth: 0,\n\t\t\tmaxWidth: 0,\n\t\t};\n\n\t\tthis.timerRef = null;\n\n\t\tthis.onLayout = this.onLayout.bind( this );\n\t\tthis.onSelectFile = this.onSelectFile.bind( this );\n\t\tthis.onChangeFileName = this.onChangeFileName.bind( this );\n\t\tthis.onChangeDownloadButtonText =\n\t\t\tthis.onChangeDownloadButtonText.bind( this );\n\t\tthis.updateMediaProgress = this.updateMediaProgress.bind( this );\n\t\tthis.finishMediaUploadWithSuccess =\n\t\t\tthis.finishMediaUploadWithSuccess.bind( this );\n\t\tthis.finishMediaUploadWithFailure =\n\t\t\tthis.finishMediaUploadWithFailure.bind( this );\n\t\tthis.getFileComponent = this.getFileComponent.bind( this );\n\t\tthis.onChangeDownloadButtonVisibility =\n\t\t\tthis.onChangeDownloadButtonVisibility.bind( this );\n\t\tthis.onCopyURL = this.onCopyURL.bind( this );\n\t\tthis.onChangeOpenInNewWindow =\n\t\t\tthis.onChangeOpenInNewWindow.bind( this );\n\n\t\tthis.onChangeLinkDestinationOption =\n\t\t\tthis.onChangeLinkDestinationOption.bind( this );\n\t\tthis.onShowLinkSettings = this.onShowLinkSettings.bind( this );\n\t\tthis.onFilePressed = this.onFilePressed.bind( this );\n\t\tthis.mediaUploadStateReset = this.mediaUploadStateReset.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { downloadButtonText } = attributes;\n\n\t\tif ( downloadButtonText === undefined || downloadButtonText === '' ) {\n\t\t\tsetAttributes( {\n\t\t\t\tdownloadButtonText: _x( 'Download', 'button label' ),\n\t\t\t} );\n\t\t}\n\n\t\tif (\n\t\t\tattributes.id &&\n\t\t\tattributes.url &&\n\t\t\tgetProtocol( attributes.url ) === 'file:'\n\t\t) {\n\t\t\tmediaUploadSync();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tclearTimeout( this.timerRef );\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tif (\n\t\t\tprevProps.isSidebarOpened &&\n\t\t\t! this.props.isSidebarOpened &&\n\t\t\tthis.state.isSidebarLinkSettings\n\t\t) {\n\t\t\tthis.setState( { isSidebarLinkSettings: false } );\n\t\t}\n\t}\n\n\tonSelectFile( media ) {\n\t\tthis.props.setAttributes( {\n\t\t\thref: media.url,\n\t\t\tfileName: media.title,\n\t\t\ttextLinkHref: media.url,\n\t\t\tid: media.id,\n\t\t} );\n\t}\n\n\tonChangeFileName( fileName ) {\n\t\tthis.props.setAttributes( { fileName } );\n\t}\n\n\tonChangeDownloadButtonText( downloadButtonText ) {\n\t\tthis.props.setAttributes( { downloadButtonText } );\n\t}\n\n\tonChangeDownloadButtonVisibility( showDownloadButton ) {\n\t\tthis.props.setAttributes( { showDownloadButton } );\n\t}\n\n\tonChangeLinkDestinationOption( newHref ) {\n\t\t// Choose Media File or Attachment Page (when file is in Media Library)\n\t\tthis.props.setAttributes( { textLinkHref: newHref } );\n\t}\n\n\tonCopyURL() {\n\t\tif ( this.state.isUrlCopied ) {\n\t\t\treturn;\n\t\t}\n\t\tconst { href } = this.props.attributes;\n\t\tClipboard.setString( href );\n\n\t\tthis.setState( { isUrlCopied: true } );\n\t\tthis.timerRef = setTimeout( () => {\n\t\t\tthis.setState( { isUrlCopied: false } );\n\t\t}, URL_COPIED_NOTIFICATION_DURATION_MS );\n\t}\n\n\tonChangeOpenInNewWindow( newValue ) {\n\t\tthis.props.setAttributes( {\n\t\t\ttextLinkTarget: newValue ? '_blank' : false,\n\t\t} );\n\t}\n\n\tupdateMediaProgress( payload ) {\n\t\tconst { setAttributes } = this.props;\n\t\tif ( payload.mediaUrl ) {\n\t\t\tsetAttributes( { url: payload.mediaUrl } );\n\t\t}\n\t\tif ( ! this.state.isUploadInProgress ) {\n\t\t\tthis.setState( { isUploadInProgress: true } );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithSuccess( payload ) {\n\t\tconst { setAttributes } = this.props;\n\n\t\tsetAttributes( {\n\t\t\thref: payload.mediaUrl,\n\t\t\tid: payload.mediaServerId,\n\t\t\ttextLinkHref: payload.mediaUrl,\n\t\t} );\n\t\tthis.setState( { isUploadInProgress: false } );\n\t}\n\n\tfinishMediaUploadWithFailure( payload ) {\n\t\tthis.props.setAttributes( { id: payload.mediaId } );\n\t\tthis.setState( { isUploadInProgress: false } );\n\t}\n\n\tmediaUploadStateReset() {\n\t\tconst { setAttributes } = this.props;\n\n\t\tsetAttributes( {\n\t\t\tid: null,\n\t\t\thref: null,\n\t\t\ttextLinkHref: null,\n\t\t\tfileName: null,\n\t\t} );\n\t\tthis.setState( { isUploadInProgress: false } );\n\t}\n\n\tonShowLinkSettings() {\n\t\tthis.setState(\n\t\t\t{\n\t\t\t\tisSidebarLinkSettings: true,\n\t\t\t},\n\t\t\tthis.props.openSidebar\n\t\t);\n\t}\n\n\tgetToolbarEditButton( open ) {\n\t\treturn (\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ttitle={ __( 'Edit file' ) }\n\t\t\t\t\t\ticon={ replace }\n\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ttitle={ __( 'Link To' ) }\n\t\t\t\t\t\ticon={ link }\n\t\t\t\t\t\tonClick={ this.onShowLinkSettings }\n\t\t\t\t\t/>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t);\n\t}\n\n\tgetInspectorControls(\n\t\t{ showDownloadButton, textLinkTarget, href, textLinkHref },\n\t\tmedia,\n\t\tisUploadInProgress,\n\t\tisUploadFailed\n\t) {\n\t\tlet linkDestinationOptions = [ { value: href, label: __( 'URL' ) } ];\n\t\tconst attachmentPage = media && media.link;\n\t\tconst { isSidebarLinkSettings } = this.state;\n\n\t\tif ( attachmentPage ) {\n\t\t\tlinkDestinationOptions = [\n\t\t\t\t{ value: href, label: __( 'Media file' ) },\n\t\t\t\t{ value: attachmentPage, label: __( 'Attachment page' ) },\n\t\t\t];\n\t\t}\n\n\t\tconst actionButtonStyle = this.props.getStylesFromColorScheme(\n\t\t\tstyles.actionButton,\n\t\t\tstyles.actionButtonDark\n\t\t);\n\n\t\tconst isCopyUrlDisabled = isUploadFailed || isUploadInProgress;\n\n\t\tconst dimmedActionButtonStyle = this.props.getStylesFromColorScheme(\n\t\t\tstyles.dimmedActionButton,\n\t\t\tstyles.dimmedActionButtonDark\n\t\t);\n\n\t\tconst finalButtonStyle = isCopyUrlDisabled\n\t\t\t? dimmedActionButtonStyle\n\t\t\t: actionButtonStyle;\n\n\t\treturn (\n\t\t\t<InspectorControls>\n\t\t\t\t{ isSidebarLinkSettings || (\n\t\t\t\t\t<PanelBody title={ __( 'File block settings' ) } />\n\t\t\t\t) }\n\t\t\t\t<PanelBody>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\ticon={ link }\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ textLinkHref }\n\t\t\t\t\t\tonChange={ this.onChangeLinkDestinationOption }\n\t\t\t\t\t\toptions={ linkDestinationOptions }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\tchecked={ textLinkTarget === '_blank' }\n\t\t\t\t\t\tonChange={ this.onChangeOpenInNewWindow }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! isSidebarLinkSettings && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\ticon={ button }\n\t\t\t\t\t\t\tlabel={ __( 'Show download button' ) }\n\t\t\t\t\t\t\tchecked={ showDownloadButton }\n\t\t\t\t\t\t\tonChange={ this.onChangeDownloadButtonVisibility }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tdisabled={ isCopyUrlDisabled }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tthis.state.isUrlCopied\n\t\t\t\t\t\t\t\t? __( 'Copied!' )\n\t\t\t\t\t\t\t\t: __( 'Copy file URL' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlabelStyle={\n\t\t\t\t\t\t\tthis.state.isUrlCopied || finalButtonStyle\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonPress={ this.onCopyURL }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t);\n\t}\n\n\tgetStyleForAlignment( align ) {\n\t\tconst getFlexAlign = ( alignment ) => {\n\t\t\tswitch ( alignment ) {\n\t\t\t\tcase 'right':\n\t\t\t\t\treturn 'flex-end';\n\t\t\t\tcase 'center':\n\t\t\t\t\treturn 'center';\n\t\t\t\tdefault:\n\t\t\t\t\treturn 'flex-start';\n\t\t\t}\n\t\t};\n\t\treturn { alignSelf: getFlexAlign( align ) };\n\t}\n\n\tgetTextAlignmentForAlignment( align ) {\n\t\tswitch ( align ) {\n\t\t\tcase 'right':\n\t\t\t\treturn 'right';\n\t\t\tcase 'center':\n\t\t\t\treturn 'center';\n\t\t\tdefault:\n\t\t\t\treturn 'left';\n\t\t}\n\t}\n\n\tonFilePressed() {\n\t\tconst { attributes } = this.props;\n\n\t\tif ( this.state.isUploadInProgress ) {\n\t\t\trequestImageUploadCancelDialog( attributes.id );\n\t\t} else if (\n\t\t\tattributes.id &&\n\t\t\tgetProtocol( attributes.href ) === 'file:'\n\t\t) {\n\t\t\trequestImageFailedRetryDialog( attributes.id );\n\t\t}\n\t}\n\n\tonLayout( { nativeEvent } ) {\n\t\tconst { width } = nativeEvent.layout;\n\t\tconst { paddingLeft, paddingRight } = styles.defaultButton;\n\t\tthis.setState( {\n\t\t\tmaxWidth: width - ( paddingLeft + paddingRight ),\n\t\t} );\n\t}\n\n\t// Render `Text` with `placeholderText` styled as a placeholder\n\t// to calculate its width which then is set as a `minWidth`\n\t// This should be fixed on RNAztec level. In the mean time,\n\t// We use the same strategy implemented in Button block.\n\tgetPlaceholderWidth( placeholderText ) {\n\t\tconst { maxWidth, placeholderTextWidth } = this.state;\n\t\treturn (\n\t\t\t<Text\n\t\t\t\tstyle={ styles.placeholder }\n\t\t\t\tonTextLayout={ ( { nativeEvent } ) => {\n\t\t\t\t\tconst textWidth =\n\t\t\t\t\t\tnativeEvent.lines[ 0 ] && nativeEvent.lines[ 0 ].width;\n\t\t\t\t\tif ( textWidth && textWidth !== placeholderTextWidth ) {\n\t\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\t\tplaceholderTextWidth: Math.min(\n\t\t\t\t\t\t\t\ttextWidth,\n\t\t\t\t\t\t\t\tmaxWidth\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} }\n\t\t\t>\n\t\t\t\t{ placeholderText }\n\t\t\t</Text>\n\t\t);\n\t}\n\n\tgetFileComponent( openMediaOptions, getMediaOptions ) {\n\t\tconst { attributes, media, isSelected } = this.props;\n\t\tconst { isButtonFocused, placeholderTextWidth } = this.state;\n\n\t\tconst { fileName, downloadButtonText, id, showDownloadButton, align } =\n\t\t\tattributes;\n\n\t\tconst minWidth =\n\t\t\tisButtonFocused ||\n\t\t\t( ! isButtonFocused &&\n\t\t\t\tdownloadButtonText &&\n\t\t\t\tdownloadButtonText !== '' )\n\t\t\t\t? MIN_WIDTH\n\t\t\t\t: placeholderTextWidth;\n\n\t\tconst placeholderText =\n\t\t\tisButtonFocused ||\n\t\t\t( ! isButtonFocused &&\n\t\t\t\tdownloadButtonText &&\n\t\t\t\tdownloadButtonText !== '' )\n\t\t\t\t? ''\n\t\t\t\t: __( 'Add text…' );\n\n\t\treturn (\n\t\t\t<MediaUploadProgress\n\t\t\t\tmediaId={ id }\n\t\t\t\tonUpdateMediaProgress={ this.updateMediaProgress }\n\t\t\t\tonFinishMediaUploadWithSuccess={\n\t\t\t\t\tthis.finishMediaUploadWithSuccess\n\t\t\t\t}\n\t\t\t\tonFinishMediaUploadWithFailure={\n\t\t\t\t\tthis.finishMediaUploadWithFailure\n\t\t\t\t}\n\t\t\t\tonMediaUploadStateReset={ this.mediaUploadStateReset }\n\t\t\t\trenderContent={ ( { isUploadInProgress, isUploadFailed } ) => {\n\t\t\t\t\tconst dimmedStyle =\n\t\t\t\t\t\t( this.state.isUploadInProgress || isUploadFailed ) &&\n\t\t\t\t\t\tstyles.disabledButton;\n\t\t\t\t\tconst finalButtonStyle = [\n\t\t\t\t\t\tstyles.defaultButton,\n\t\t\t\t\t\tdimmedStyle,\n\t\t\t\t\t];\n\n\t\t\t\t\tconst errorIconStyle = Object.assign(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\tstyles.errorIcon,\n\t\t\t\t\t\tstyles.uploadFailed\n\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<TouchableWithoutFeedback\n\t\t\t\t\t\t\taccessible={ ! isSelected }\n\t\t\t\t\t\t\tonPress={ this.onFilePressed }\n\t\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tonLayout={ this.onLayout }\n\t\t\t\t\t\t\t\ttestID=\"file-edit-container\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ this.getPlaceholderWidth( placeholderText ) }\n\t\t\t\t\t\t\t\t{ isUploadInProgress ||\n\t\t\t\t\t\t\t\t\tthis.getToolbarEditButton(\n\t\t\t\t\t\t\t\t\t\topenMediaOptions\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ getMediaOptions() }\n\t\t\t\t\t\t\t\t{ isSelected &&\n\t\t\t\t\t\t\t\t\tthis.getInspectorControls(\n\t\t\t\t\t\t\t\t\t\tattributes,\n\t\t\t\t\t\t\t\t\t\tmedia,\n\t\t\t\t\t\t\t\t\t\tisUploadInProgress,\n\t\t\t\t\t\t\t\t\t\tisUploadFailed\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<View style={ styles.container }>\n\t\t\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t\t\t\t__unstableMobileNoFocusOnMount\n\t\t\t\t\t\t\t\t\t\tonChange={ this.onChangeFileName }\n\t\t\t\t\t\t\t\t\t\tplaceholder={ __( 'File name' ) }\n\t\t\t\t\t\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\t\t\t\t\t\tunderlineColorAndroid=\"transparent\"\n\t\t\t\t\t\t\t\t\t\tvalue={ fileName }\n\t\t\t\t\t\t\t\t\t\tdeleteEnter={ true }\n\t\t\t\t\t\t\t\t\t\ttextAlign={ this.getTextAlignmentForAlignment(\n\t\t\t\t\t\t\t\t\t\t\talign\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ isUploadFailed && (\n\t\t\t\t\t\t\t\t\t\t<View style={ styles.errorContainer }>\n\t\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ warning }\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={ errorIconStyle }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t<PlainText\n\t\t\t\t\t\t\t\t\t\t\t\teditable={ false }\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={ __( 'Error' ) }\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={ styles.uploadFailed }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t{ showDownloadButton &&\n\t\t\t\t\t\t\t\t\tthis.state.maxWidth > 0 && (\n\t\t\t\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\t\t\t\tfinalButtonStyle,\n\t\t\t\t\t\t\t\t\t\t\t\tthis.getStyleForAlignment(\n\t\t\t\t\t\t\t\t\t\t\t\t\talign\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t\t\t\t\t\t__unstableMobileNoFocusOnMount\n\t\t\t\t\t\t\t\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\t\t\t\t\t\t\t\ttextAlign=\"center\"\n\t\t\t\t\t\t\t\t\t\t\t\tminWidth={ minWidth }\n\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth={ this.state.maxWidth }\n\t\t\t\t\t\t\t\t\t\t\t\tdeleteEnter={ true }\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={ styles.buttonText }\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={ downloadButtonText }\n\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={ placeholderText }\n\t\t\t\t\t\t\t\t\t\t\t\tunstableOnFocus={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisButtonFocused: true,\n\t\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tonBlur={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisButtonFocused: false,\n\t\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tselectionColor={\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.buttonText.color\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tplaceholderTextColor={\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.placeholderTextColor\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.color\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tunderlineColorAndroid=\"transparent\"\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.onChangeDownloadButtonText\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</TouchableWithoutFeedback>\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst { attributes, wasBlockJustInserted, isSelected } = this.props;\n\t\tconst { href } = attributes;\n\n\t\tif ( ! href ) {\n\t\t\treturn (\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tlabels={ {\n\t\t\t\t\t\ttitle: __( 'File' ),\n\t\t\t\t\t\tinstructions: __( 'Choose a file' ),\n\t\t\t\t\t} }\n\t\t\t\t\tonSelect={ this.onSelectFile }\n\t\t\t\t\tonFocus={ this.props.onFocus }\n\t\t\t\t\tallowedTypes={ [ MEDIA_TYPE_ANY ] }\n\t\t\t\t\tautoOpenMediaUpload={ isSelected && wasBlockJustInserted }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<MediaUpload\n\t\t\t\tallowedTypes={ [ MEDIA_TYPE_ANY ] }\n\t\t\t\tisReplacingMedia={ true }\n\t\t\t\tonSelect={ this.onSelectFile }\n\t\t\t\trender={ ( { open, getMediaOptions } ) => {\n\t\t\t\t\treturn this.getFileComponent( open, getMediaOptions );\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, props ) => {\n\t\tconst { attributes, isSelected, clientId } = props;\n\t\tconst { id, href } = attributes;\n\t\tconst { isEditorSidebarOpened } = select( 'core/edit-post' );\n\t\tconst isNotFileHref = id && getProtocol( href ) !== 'file:';\n\t\treturn {\n\t\t\tmedia: isNotFileHref\n\t\t\t\t? select( coreStore ).getMedia( id )\n\t\t\t\t: undefined,\n\t\t\tisSidebarOpened: isSelected && isEditorSidebarOpened(),\n\t\t\twasBlockJustInserted: select(\n\t\t\t\tblockEditorStore\n\t\t\t).wasBlockJustInserted( clientId, 'inserter_menu' ),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { openGeneralSidebar } = dispatch( 'core/edit-post' );\n\t\treturn {\n\t\t\topenSidebar: () => openGeneralSidebar( 'edit-post/block' ),\n\t\t};\n\t} ),\n\twithPreferredColorScheme,\n] )( FileEdit );\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,IAAI,EAAEC,wBAAwB,EAAEC,IAAI,QAAQ,cAAc;AACnE,OAAOC,SAAS,MAAM,mCAAmC;;AAEzD;AACA;AACA;AACA,SACCC,6BAA6B,EAC7BC,8BAA8B,EAC9BC,eAAe,QACT,gCAAgC;AACvC,SACCC,SAAS,EACTC,gBAAgB,EAChBC,mBAAmB,EACnBC,QAAQ,EACRC,SAAS,EACTC,aAAa,EACbC,WAAW,EACXC,iBAAiB,EACjBC,cAAc,EACdC,KAAK,IAAIC,gBAAgB,QACnB,yBAAyB;AAChC,SACCC,aAAa,EACbC,YAAY,EACZC,SAAS,EACTC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,IAAI,QACE,uBAAuB;AAC9B,SACCC,IAAI,IAAIC,IAAI,EACZC,OAAO,EACPC,MAAM,EACNC,QAAQ,EACRC,IAAI,EACJC,OAAO,QACD,kBAAkB;AACzB,SAASC,SAAS,QAAQ,oBAAoB;AAC9C,SAASC,EAAE,EAAEC,EAAE,QAAQ,iBAAiB;AACxC,SAASC,OAAO,EAAEC,wBAAwB,QAAQ,oBAAoB;AACtE,SAASC,YAAY,EAAEC,UAAU,QAAQ,iBAAiB;AAC1D,SAASC,WAAW,QAAQ,gBAAgB;AAC5C,SAASvB,KAAK,IAAIwB,SAAS,QAAQ,sBAAsB;;AAEzD;AACA;AACA;AACA,OAAOC,MAAM,MAAM,cAAc;AAEjC,MAAMC,mCAAmC,GAAG,IAAI;AAChD,MAAMC,SAAS,GAAG,EAAE;AAEpB,OAAO,MAAMC,QAAQ,SAASZ,SAAS,CAAC;EACvCa,WAAWA,CAAEC,KAAK,EAAG;IACpB,KAAK,CAAEA,KAAM,CAAC;IAEd,IAAI,CAACC,KAAK,GAAG;MACZC,kBAAkB,EAAE,KAAK;MACzBC,qBAAqB,EAAE,KAAK;MAC5BC,oBAAoB,EAAE,CAAC;MACvBC,QAAQ,EAAE;IACX,CAAC;IAED,IAAI,CAACC,QAAQ,GAAG,IAAI;IAEpB,IAAI,CAACC,QAAQ,GAAG,IAAI,CAACA,QAAQ,CAACC,IAAI,CAAE,IAAK,CAAC;IAC1C,IAAI,CAACC,YAAY,GAAG,IAAI,CAACA,YAAY,CAACD,IAAI,CAAE,IAAK,CAAC;IAClD,IAAI,CAACE,gBAAgB,GAAG,IAAI,CAACA,gBAAgB,CAACF,IAAI,CAAE,IAAK,CAAC;IAC1D,IAAI,CAACG,0BAA0B,GAC9B,IAAI,CAACA,0BAA0B,CAACH,IAAI,CAAE,IAAK,CAAC;IAC7C,IAAI,CAACI,mBAAmB,GAAG,IAAI,CAACA,mBAAmB,CAACJ,IAAI,CAAE,IAAK,CAAC;IAChE,IAAI,CAACK,4BAA4B,GAChC,IAAI,CAACA,4BAA4B,CAACL,IAAI,CAAE,IAAK,CAAC;IAC/C,IAAI,CAACM,4BAA4B,GAChC,IAAI,CAACA,4BAA4B,CAACN,IAAI,CAAE,IAAK,CAAC;IAC/C,IAAI,CAACO,gBAAgB,GAAG,IAAI,CAACA,gBAAgB,CAACP,IAAI,CAAE,IAAK,CAAC;IAC1D,IAAI,CAACQ,gCAAgC,GACpC,IAAI,CAACA,gCAAgC,CAACR,IAAI,CAAE,IAAK,CAAC;IACnD,IAAI,CAACS,SAAS,GAAG,IAAI,CAACA,SAAS,CAACT,IAAI,CAAE,IAAK,CAAC;IAC5C,IAAI,CAACU,uBAAuB,GAC3B,IAAI,CAACA,uBAAuB,CAACV,IAAI,CAAE,IAAK,CAAC;IAE1C,IAAI,CAACW,6BAA6B,GACjC,IAAI,CAACA,6BAA6B,CAACX,IAAI,CAAE,IAAK,CAAC;IAChD,IAAI,CAACY,kBAAkB,GAAG,IAAI,CAACA,kBAAkB,CAACZ,IAAI,CAAE,IAAK,CAAC;IAC9D,IAAI,CAACa,aAAa,GAAG,IAAI,CAACA,aAAa,CAACb,IAAI,CAAE,IAAK,CAAC;IACpD,IAAI,CAACc,qBAAqB,GAAG,IAAI,CAACA,qBAAqB,CAACd,IAAI,CAAE,IAAK,CAAC;EACrE;EAEAe,iBAAiBA,CAAA,EAAG;IACnB,MAAM;MAAEC,UAAU;MAAEC;IAAc,CAAC,GAAG,IAAI,CAACzB,KAAK;IAChD,MAAM;MAAE0B;IAAmB,CAAC,GAAGF,UAAU;IAEzC,IAAKE,kBAAkB,KAAKC,SAAS,IAAID,kBAAkB,KAAK,EAAE,EAAG;MACpED,aAAa,CAAE;QACdC,kBAAkB,EAAEtC,EAAE,CAAE,UAAU,EAAE,cAAe;MACpD,CAAE,CAAC;IACJ;IAEA,IACCoC,UAAU,CAACI,EAAE,IACbJ,UAAU,CAACK,GAAG,IACdpC,WAAW,CAAE+B,UAAU,CAACK,GAAI,CAAC,KAAK,OAAO,EACxC;MACDrE,eAAe,CAAC,CAAC;IAClB;EACD;EAEAsE,oBAAoBA,CAAA,EAAG;IACtBC,YAAY,CAAE,IAAI,CAACzB,QAAS,CAAC;EAC9B;EAEA0B,kBAAkBA,CAAEC,SAAS,EAAG;IAC/B,IACCA,SAAS,CAACC,eAAe,IACzB,CAAE,IAAI,CAAClC,KAAK,CAACkC,eAAe,IAC5B,IAAI,CAACjC,KAAK,CAACE,qBAAqB,EAC/B;MACD,IAAI,CAACgC,QAAQ,CAAE;QAAEhC,qBAAqB,EAAE;MAAM,CAAE,CAAC;IAClD;EACD;EAEAM,YAAYA,CAAE2B,KAAK,EAAG;IACrB,IAAI,CAACpC,KAAK,CAACyB,aAAa,CAAE;MACzBY,IAAI,EAAED,KAAK,CAACP,GAAG;MACfS,QAAQ,EAAEF,KAAK,CAACG,KAAK;MACrBC,YAAY,EAAEJ,KAAK,CAACP,GAAG;MACvBD,EAAE,EAAEQ,KAAK,CAACR;IACX,CAAE,CAAC;EACJ;EAEAlB,gBAAgBA,CAAE4B,QAAQ,EAAG;IAC5B,IAAI,CAACtC,KAAK,CAACyB,aAAa,CAAE;MAAEa;IAAS,CAAE,CAAC;EACzC;EAEA3B,0BAA0BA,CAAEe,kBAAkB,EAAG;IAChD,IAAI,CAAC1B,KAAK,CAACyB,aAAa,CAAE;MAAEC;IAAmB,CAAE,CAAC;EACnD;EAEAV,gCAAgCA,CAAEyB,kBAAkB,EAAG;IACtD,IAAI,CAACzC,KAAK,CAACyB,aAAa,CAAE;MAAEgB;IAAmB,CAAE,CAAC;EACnD;EAEAtB,6BAA6BA,CAAEuB,OAAO,EAAG;IACxC;IACA,IAAI,CAAC1C,KAAK,CAACyB,aAAa,CAAE;MAAEe,YAAY,EAAEE;IAAQ,CAAE,CAAC;EACtD;EAEAzB,SAASA,CAAA,EAAG;IACX,IAAK,IAAI,CAAChB,KAAK,CAAC0C,WAAW,EAAG;MAC7B;IACD;IACA,MAAM;MAAEN;IAAK,CAAC,GAAG,IAAI,CAACrC,KAAK,CAACwB,UAAU;IACtCnE,SAAS,CAACuF,SAAS,CAAEP,IAAK,CAAC;IAE3B,IAAI,CAACF,QAAQ,CAAE;MAAEQ,WAAW,EAAE;IAAK,CAAE,CAAC;IACtC,IAAI,CAACrC,QAAQ,GAAGuC,UAAU,CAAE,MAAM;MACjC,IAAI,CAACV,QAAQ,CAAE;QAAEQ,WAAW,EAAE;MAAM,CAAE,CAAC;IACxC,CAAC,EAAE/C,mCAAoC,CAAC;EACzC;EAEAsB,uBAAuBA,CAAE4B,QAAQ,EAAG;IACnC,IAAI,CAAC9C,KAAK,CAACyB,aAAa,CAAE;MACzBsB,cAAc,EAAED,QAAQ,GAAG,QAAQ,GAAG;IACvC,CAAE,CAAC;EACJ;EAEAlC,mBAAmBA,CAAEoC,OAAO,EAAG;IAC9B,MAAM;MAAEvB;IAAc,CAAC,GAAG,IAAI,CAACzB,KAAK;IACpC,IAAKgD,OAAO,CAACC,QAAQ,EAAG;MACvBxB,aAAa,CAAE;QAAEI,GAAG,EAAEmB,OAAO,CAACC;MAAS,CAAE,CAAC;IAC3C;IACA,IAAK,CAAE,IAAI,CAAChD,KAAK,CAACC,kBAAkB,EAAG;MACtC,IAAI,CAACiC,QAAQ,CAAE;QAAEjC,kBAAkB,EAAE;MAAK,CAAE,CAAC;IAC9C;EACD;EAEAW,4BAA4BA,CAAEmC,OAAO,EAAG;IACvC,MAAM;MAAEvB;IAAc,CAAC,GAAG,IAAI,CAACzB,KAAK;IAEpCyB,aAAa,CAAE;MACdY,IAAI,EAAEW,OAAO,CAACC,QAAQ;MACtBrB,EAAE,EAAEoB,OAAO,CAACE,aAAa;MACzBV,YAAY,EAAEQ,OAAO,CAACC;IACvB,CAAE,CAAC;IACH,IAAI,CAACd,QAAQ,CAAE;MAAEjC,kBAAkB,EAAE;IAAM,CAAE,CAAC;EAC/C;EAEAY,4BAA4BA,CAAEkC,OAAO,EAAG;IACvC,IAAI,CAAChD,KAAK,CAACyB,aAAa,CAAE;MAAEG,EAAE,EAAEoB,OAAO,CAACG;IAAQ,CAAE,CAAC;IACnD,IAAI,CAAChB,QAAQ,CAAE;MAAEjC,kBAAkB,EAAE;IAAM,CAAE,CAAC;EAC/C;EAEAoB,qBAAqBA,CAAA,EAAG;IACvB,MAAM;MAAEG;IAAc,CAAC,GAAG,IAAI,CAACzB,KAAK;IAEpCyB,aAAa,CAAE;MACdG,EAAE,EAAE,IAAI;MACRS,IAAI,EAAE,IAAI;MACVG,YAAY,EAAE,IAAI;MAClBF,QAAQ,EAAE;IACX,CAAE,CAAC;IACH,IAAI,CAACH,QAAQ,CAAE;MAAEjC,kBAAkB,EAAE;IAAM,CAAE,CAAC;EAC/C;EAEAkB,kBAAkBA,CAAA,EAAG;IACpB,IAAI,CAACe,QAAQ,CACZ;MACChC,qBAAqB,EAAE;IACxB,CAAC,EACD,IAAI,CAACH,KAAK,CAACoD,WACZ,CAAC;EACF;EAEAC,oBAAoBA,CAAEC,IAAI,EAAG;IAC5B,OACCC,aAAA,CAACzF,aAAa,QACbyF,aAAA,CAAClF,YAAY,QACZkF,aAAA,CAACnF,aAAa;MACbmE,KAAK,EAAGpD,EAAE,CAAE,WAAY,CAAG;MAC3BP,IAAI,EAAGC,OAAS;MAChB2E,OAAO,EAAGF;IAAM,CAChB,CAAC,EACFC,aAAA,CAACnF,aAAa;MACbmE,KAAK,EAAGpD,EAAE,CAAE,SAAU,CAAG;MACzBP,IAAI,EAAGI,IAAM;MACbwE,OAAO,EAAG,IAAI,CAACpC;IAAoB,CACnC,CACY,CACA,CAAC;EAElB;EAEAqC,oBAAoBA,CACnB;IAAEhB,kBAAkB;IAAEM,cAAc;IAAEV,IAAI;IAAEG;EAAa,CAAC,EAC1DJ,KAAK,EACLlC,kBAAkB,EAClBwD,cAAc,EACb;IACD,IAAIC,sBAAsB,GAAG,CAAE;MAAEC,KAAK,EAAEvB,IAAI;MAAEwB,KAAK,EAAE1E,EAAE,CAAE,KAAM;IAAE,CAAC,CAAE;IACpE,MAAM2E,cAAc,GAAG1B,KAAK,IAAIA,KAAK,CAACpD,IAAI;IAC1C,MAAM;MAAEmB;IAAsB,CAAC,GAAG,IAAI,CAACF,KAAK;IAE5C,IAAK6D,cAAc,EAAG;MACrBH,sBAAsB,GAAG,CACxB;QAAEC,KAAK,EAAEvB,IAAI;QAAEwB,KAAK,EAAE1E,EAAE,CAAE,YAAa;MAAE,CAAC,EAC1C;QAAEyE,KAAK,EAAEE,cAAc;QAAED,KAAK,EAAE1E,EAAE,CAAE,iBAAkB;MAAE,CAAC,CACzD;IACF;IAEA,MAAM4E,iBAAiB,GAAG,IAAI,CAAC/D,KAAK,CAACgE,wBAAwB,CAC5DrE,MAAM,CAACsE,YAAY,EACnBtE,MAAM,CAACuE,gBACR,CAAC;IAED,MAAMC,iBAAiB,GAAGT,cAAc,IAAIxD,kBAAkB;IAE9D,MAAMkE,uBAAuB,GAAG,IAAI,CAACpE,KAAK,CAACgE,wBAAwB,CAClErE,MAAM,CAAC0E,kBAAkB,EACzB1E,MAAM,CAAC2E,sBACR,CAAC;IAED,MAAMC,gBAAgB,GAAGJ,iBAAiB,GACvCC,uBAAuB,GACvBL,iBAAiB;IAEpB,OACCR,aAAA,CAACvF,iBAAiB,QACfmC,qBAAqB,IACtBoD,aAAA,CAACjF,SAAS;MAACiE,KAAK,EAAGpD,EAAE,CAAE,qBAAsB;IAAG,CAAE,CAClD,EACDoE,aAAA,CAACjF,SAAS,QACTiF,aAAA,CAAC9E,aAAa;MACbG,IAAI,EAAGI,IAAM;MACb6E,KAAK,EAAG1E,EAAE,CAAE,SAAU,CAAG;MACzByE,KAAK,EAAGpB,YAAc;MACtBgC,QAAQ,EAAG,IAAI,CAACrD,6BAA+B;MAC/CsD,OAAO,EAAGd,sBAAwB;MAClCe,gBAAgB,EAAG;IAAM,CACzB,CAAC,EACFnB,aAAA,CAAChF,aAAa;MACbK,IAAI,EAAGG,QAAU;MACjB8E,KAAK,EAAG1E,EAAE,CAAE,iBAAkB,CAAG;MACjCwF,OAAO,EAAG5B,cAAc,KAAK,QAAU;MACvCyB,QAAQ,EAAG,IAAI,CAACtD;IAAyB,CACzC,CAAC,EACA,CAAEf,qBAAqB,IACxBoD,aAAA,CAAChF,aAAa;MACbK,IAAI,EAAGE,MAAQ;MACf+E,KAAK,EAAG1E,EAAE,CAAE,sBAAuB,CAAG;MACtCwF,OAAO,EAAGlC,kBAAoB;MAC9B+B,QAAQ,EAAG,IAAI,CAACxD;IAAkC,CAClD,CACD,EACDuC,aAAA,CAAC/E,WAAW;MACXoG,QAAQ,EAAGT,iBAAmB;MAC9BN,KAAK,EACJ,IAAI,CAAC5D,KAAK,CAAC0C,WAAW,GACnBxD,EAAE,CAAE,SAAU,CAAC,GACfA,EAAE,CAAE,eAAgB,CACvB;MACD0F,UAAU,EACT,IAAI,CAAC5E,KAAK,CAAC0C,WAAW,IAAI4B,gBAC1B;MACDO,OAAO,EAAG,IAAI,CAAC7D;IAAW,CAC1B,CACS,CACO,CAAC;EAEtB;EAEA8D,oBAAoBA,CAAEC,KAAK,EAAG;IAC7B,MAAMC,YAAY,GAAKC,SAAS,IAAM;MACrC,QAASA,SAAS;QACjB,KAAK,OAAO;UACX,OAAO,UAAU;QAClB,KAAK,QAAQ;UACZ,OAAO,QAAQ;QAChB;UACC,OAAO,YAAY;MACrB;IACD,CAAC;IACD,OAAO;MAAEC,SAAS,EAAEF,YAAY,CAAED,KAAM;IAAE,CAAC;EAC5C;EAEAI,4BAA4BA,CAAEJ,KAAK,EAAG;IACrC,QAASA,KAAK;MACb,KAAK,OAAO;QACX,OAAO,OAAO;MACf,KAAK,QAAQ;QACZ,OAAO,QAAQ;MAChB;QACC,OAAO,MAAM;IACf;EACD;EAEA3D,aAAaA,CAAA,EAAG;IACf,MAAM;MAAEG;IAAW,CAAC,GAAG,IAAI,CAACxB,KAAK;IAEjC,IAAK,IAAI,CAACC,KAAK,CAACC,kBAAkB,EAAG;MACpC3C,8BAA8B,CAAEiE,UAAU,CAACI,EAAG,CAAC;IAChD,CAAC,MAAM,IACNJ,UAAU,CAACI,EAAE,IACbnC,WAAW,CAAE+B,UAAU,CAACa,IAAK,CAAC,KAAK,OAAO,EACzC;MACD/E,6BAA6B,CAAEkE,UAAU,CAACI,EAAG,CAAC;IAC/C;EACD;EAEArB,QAAQA,CAAE;IAAE8E;EAAY,CAAC,EAAG;IAC3B,MAAM;MAAEC;IAAM,CAAC,GAAGD,WAAW,CAACE,MAAM;IACpC,MAAM;MAAEC,WAAW;MAAEC;IAAa,CAAC,GAAG9F,MAAM,CAAC+F,aAAa;IAC1D,IAAI,CAACvD,QAAQ,CAAE;MACd9B,QAAQ,EAAEiF,KAAK,IAAKE,WAAW,GAAGC,YAAY;IAC/C,CAAE,CAAC;EACJ;;EAEA;EACA;EACA;EACA;EACAE,mBAAmBA,CAAEC,eAAe,EAAG;IACtC,MAAM;MAAEvF,QAAQ;MAAED;IAAqB,CAAC,GAAG,IAAI,CAACH,KAAK;IACrD,OACCsD,aAAA,CAACnG,IAAI;MACJyI,KAAK,EAAGlG,MAAM,CAACmG,WAAa;MAC5BC,YAAY,EAAGA,CAAE;QAAEV;MAAY,CAAC,KAAM;QACrC,MAAMW,SAAS,GACdX,WAAW,CAACY,KAAK,CAAE,CAAC,CAAE,IAAIZ,WAAW,CAACY,KAAK,CAAE,CAAC,CAAE,CAACX,KAAK;QACvD,IAAKU,SAAS,IAAIA,SAAS,KAAK5F,oBAAoB,EAAG;UACtD,IAAI,CAAC+B,QAAQ,CAAE;YACd/B,oBAAoB,EAAE8F,IAAI,CAACC,GAAG,CAC7BH,SAAS,EACT3F,QACD;UACD,CAAE,CAAC;QACJ;MACD;IAAG,GAEDuF,eACG,CAAC;EAET;EAEA7E,gBAAgBA,CAAEqF,gBAAgB,EAAEC,eAAe,EAAG;IACrD,MAAM;MAAE7E,UAAU;MAAEY,KAAK;MAAEkE;IAAW,CAAC,GAAG,IAAI,CAACtG,KAAK;IACpD,MAAM;MAAEuG,eAAe;MAAEnG;IAAqB,CAAC,GAAG,IAAI,CAACH,KAAK;IAE5D,MAAM;MAAEqC,QAAQ;MAAEZ,kBAAkB;MAAEE,EAAE;MAAEa,kBAAkB;MAAEuC;IAAM,CAAC,GACpExD,UAAU;IAEX,MAAMgF,QAAQ,GACbD,eAAe,IACb,CAAEA,eAAe,IAClB7E,kBAAkB,IAClBA,kBAAkB,KAAK,EAAI,GACzB7B,SAAS,GACTO,oBAAoB;IAExB,MAAMwF,eAAe,GACpBW,eAAe,IACb,CAAEA,eAAe,IAClB7E,kBAAkB,IAClBA,kBAAkB,KAAK,EAAI,GACzB,EAAE,GACFvC,EAAE,CAAE,WAAY,CAAC;IAErB,OACCoE,aAAA,CAAC5F,mBAAmB;MACnBwF,OAAO,EAAGvB,EAAI;MACd6E,qBAAqB,EAAG,IAAI,CAAC7F,mBAAqB;MAClD8F,8BAA8B,EAC7B,IAAI,CAAC7F,4BACL;MACD8F,8BAA8B,EAC7B,IAAI,CAAC7F,4BACL;MACD8F,uBAAuB,EAAG,IAAI,CAACtF,qBAAuB;MACtDuF,aAAa,EAAGA,CAAE;QAAE3G,kBAAkB;QAAEwD;MAAe,CAAC,KAAM;QAC7D,MAAMoD,WAAW,GAChB,CAAE,IAAI,CAAC7G,KAAK,CAACC,kBAAkB,IAAIwD,cAAc,KACjD/D,MAAM,CAACoH,cAAc;QACtB,MAAMxC,gBAAgB,GAAG,CACxB5E,MAAM,CAAC+F,aAAa,EACpBoB,WAAW,CACX;QAED,MAAME,cAAc,GAAGC,MAAM,CAACC,MAAM,CACnC,CAAC,CAAC,EACFvH,MAAM,CAACwH,SAAS,EAChBxH,MAAM,CAACyH,YACR,CAAC;QAED,OACC7D,aAAA,CAACpG,wBAAwB;UACxBkK,UAAU,EAAG,CAAEf,UAAY;UAC3BxB,OAAO,EAAG,IAAI,CAACzD,aAAe;UAC9BuD,QAAQ,EAAG,CAAE0B;QAAY,GAEzB/C,aAAA,CAACrG,IAAI;UACJqD,QAAQ,EAAG,IAAI,CAACA,QAAU;UAC1B+G,MAAM,EAAC;QAAqB,GAE1B,IAAI,CAAC3B,mBAAmB,CAAEC,eAAgB,CAAC,EAC3C1F,kBAAkB,IACnB,IAAI,CAACmD,oBAAoB,CACxB+C,gBACD,CAAC,EACAC,eAAe,CAAC,CAAC,EACjBC,UAAU,IACX,IAAI,CAAC7C,oBAAoB,CACxBjC,UAAU,EACVY,KAAK,EACLlC,kBAAkB,EAClBwD,cACD,CAAC,EACFH,aAAA,CAACrG,IAAI;UAAC2I,KAAK,EAAGlG,MAAM,CAAC4H;QAAW,GAC/BhE,aAAA,CAAC3F,QAAQ;UACR4J,4BAA4B;UAC5BC,8BAA8B;UAC9BjD,QAAQ,EAAG,IAAI,CAAC9D,gBAAkB;UAClCoF,WAAW,EAAG3G,EAAE,CAAE,WAAY,CAAG;UACjCuI,OAAO,EAAC,GAAG;UACXC,qBAAqB,EAAC,aAAa;UACnC/D,KAAK,EAAGtB,QAAU;UAClBsF,WAAW,EAAG,IAAM;UACpBC,SAAS,EAAG,IAAI,CAACzC,4BAA4B,CAC5CJ,KACD;QAAG,CACH,CAAC,EACAtB,cAAc,IACfH,aAAA,CAACrG,IAAI;UAAC2I,KAAK,EAAGlG,MAAM,CAACmI;QAAgB,GACpCvE,aAAA,CAAC7E,IAAI;UACJE,IAAI,EAAGK,OAAS;UAChB4G,KAAK,EAAGmB;QAAgB,CACxB,CAAC,EACFzD,aAAA,CAAC1F,SAAS;UACTkK,QAAQ,EAAG,KAAO;UAClBnE,KAAK,EAAGzE,EAAE,CAAE,OAAQ,CAAG;UACvB0G,KAAK,EAAGlG,MAAM,CAACyH;QAAc,CAC7B,CACI,CAEF,CAAC,EACL3E,kBAAkB,IACnB,IAAI,CAACxC,KAAK,CAACI,QAAQ,GAAG,CAAC,IACtBkD,aAAA,CAACrG,IAAI;UACJ2I,KAAK,EAAG,CACPtB,gBAAgB,EAChB,IAAI,CAACQ,oBAAoB,CACxBC,KACD,CAAC;QACC,GAEHzB,aAAA,CAAC3F,QAAQ;UACR4J,4BAA4B;UAC5BC,8BAA8B;UAC9BC,OAAO,EAAC,GAAG;UACXG,SAAS,EAAC,QAAQ;UAClBrB,QAAQ,EAAGA,QAAU;UACrBnG,QAAQ,EAAG,IAAI,CAACJ,KAAK,CAACI,QAAU;UAChCuH,WAAW,EAAG,IAAM;UACpB/B,KAAK,EAAGlG,MAAM,CAACqI,UAAY;UAC3BpE,KAAK,EAAGlC,kBAAoB;UAC5BoE,WAAW,EAAGF,eAAiB;UAC/BqC,eAAe,EAAGA,CAAA,KACjB,IAAI,CAAC9F,QAAQ,CAAE;YACdoE,eAAe,EAAE;UAClB,CAAE,CACF;UACD2B,MAAM,EAAGA,CAAA,KACR,IAAI,CAAC/F,QAAQ,CAAE;YACdoE,eAAe,EAAE;UAClB,CAAE,CACF;UACD4B,cAAc,EACbxI,MAAM,CAACqI,UAAU,CAACI,KAClB;UACDC,oBAAoB,EACnB1I,MAAM,CAAC0I,oBAAoB,CACzBD,KACF;UACDT,qBAAqB,EAAC,aAAa;UACnCnD,QAAQ,EACP,IAAI,CACF7D;QACF,CACD,CACI,CAEH,CACmB,CAAC;MAE7B;IAAG,CACH,CAAC;EAEJ;EAEA2H,MAAMA,CAAA,EAAG;IACR,MAAM;MAAE9G,UAAU;MAAE+G,oBAAoB;MAAEjC;IAAW,CAAC,GAAG,IAAI,CAACtG,KAAK;IACnE,MAAM;MAAEqC;IAAK,CAAC,GAAGb,UAAU;IAE3B,IAAK,CAAEa,IAAI,EAAG;MACb,OACCkB,aAAA,CAAC7F,gBAAgB;QAChBkB,IAAI,EAAG2E,aAAA,CAAC9F,SAAS;UAACmB,IAAI,EAAGA;QAAM,CAAE,CAAG;QACpC4J,MAAM,EAAG;UACRjG,KAAK,EAAEpD,EAAE,CAAE,MAAO,CAAC;UACnBsJ,YAAY,EAAEtJ,EAAE,CAAE,eAAgB;QACnC,CAAG;QACHuJ,QAAQ,EAAG,IAAI,CAACjI,YAAc;QAC9BkI,OAAO,EAAG,IAAI,CAAC3I,KAAK,CAAC2I,OAAS;QAC9BC,YAAY,EAAG,CAAE3K,cAAc,CAAI;QACnC4K,mBAAmB,EAAGvC,UAAU,IAAIiC;MAAsB,CAC1D,CAAC;IAEJ;IAEA,OACChF,aAAA,CAACxF,WAAW;MACX6K,YAAY,EAAG,CAAE3K,cAAc,CAAI;MACnC6K,gBAAgB,EAAG,IAAM;MACzBJ,QAAQ,EAAG,IAAI,CAACjI,YAAc;MAC9B6H,MAAM,EAAGA,CAAE;QAAEhF,IAAI;QAAE+C;MAAgB,CAAC,KAAM;QACzC,OAAO,IAAI,CAACtF,gBAAgB,CAAEuC,IAAI,EAAE+C,eAAgB,CAAC;MACtD;IAAG,CACH,CAAC;EAEJ;AACD;AAEA,eAAehH,OAAO,CAAE,CACvBG,UAAU,CAAE,CAAEuJ,MAAM,EAAE/I,KAAK,KAAM;EAChC,MAAM;IAAEwB,UAAU;IAAE8E,UAAU;IAAE0C;EAAS,CAAC,GAAGhJ,KAAK;EAClD,MAAM;IAAE4B,EAAE;IAAES;EAAK,CAAC,GAAGb,UAAU;EAC/B,MAAM;IAAEyH;EAAsB,CAAC,GAAGF,MAAM,CAAE,gBAAiB,CAAC;EAC5D,MAAMG,aAAa,GAAGtH,EAAE,IAAInC,WAAW,CAAE4C,IAAK,CAAC,KAAK,OAAO;EAC3D,OAAO;IACND,KAAK,EAAE8G,aAAa,GACjBH,MAAM,CAAErJ,SAAU,CAAC,CAACyJ,QAAQ,CAAEvH,EAAG,CAAC,GAClCD,SAAS;IACZO,eAAe,EAAEoE,UAAU,IAAI2C,qBAAqB,CAAC,CAAC;IACtDV,oBAAoB,EAAEQ,MAAM,CAC3B5K,gBACD,CAAC,CAACoK,oBAAoB,CAAES,QAAQ,EAAE,eAAgB;EACnD,CAAC;AACF,CAAE,CAAC,EACHzJ,YAAY,CAAI6J,QAAQ,IAAM;EAC7B,MAAM;IAAEC;EAAmB,CAAC,GAAGD,QAAQ,CAAE,gBAAiB,CAAC;EAC3D,OAAO;IACNhG,WAAW,EAAEA,CAAA,KAAMiG,kBAAkB,CAAE,iBAAkB;EAC1D,CAAC;AACF,CAAE,CAAC,EACH/J,wBAAwB,CACvB,CAAC,CAAEQ,QAAS,CAAC"}
1
+ {"version":3,"names":["View","TouchableWithoutFeedback","Text","Clipboard","requestImageFailedRetryDialog","requestImageUploadCancelDialog","mediaUploadSync","BlockIcon","MediaPlaceholder","MediaUploadProgress","RichText","PlainText","BlockControls","MediaUpload","InspectorControls","MEDIA_TYPE_ANY","store","blockEditorStore","ToolbarButton","ToolbarGroup","PanelBody","ToggleControl","TextControl","SelectControl","Icon","file","icon","replace","button","external","link","warning","Component","__","_x","compose","withPreferredColorScheme","withDispatch","withSelect","getProtocol","coreStore","styles","URL_COPIED_NOTIFICATION_DURATION_MS","MIN_WIDTH","FileEdit","constructor","props","state","isUploadInProgress","isSidebarLinkSettings","placeholderTextWidth","maxWidth","timerRef","onLayout","bind","onSelectFile","onChangeFileName","onChangeDownloadButtonText","updateMediaProgress","finishMediaUploadWithSuccess","finishMediaUploadWithFailure","getFileComponent","onChangeDownloadButtonVisibility","onCopyURL","onChangeOpenInNewWindow","onChangeLinkDestinationOption","onShowLinkSettings","onFilePressed","mediaUploadStateReset","componentDidMount","attributes","setAttributes","downloadButtonText","isEmpty","id","url","componentWillUnmount","clearTimeout","componentDidUpdate","prevProps","isSidebarOpened","setState","media","href","fileName","title","textLinkHref","showDownloadButton","newHref","isUrlCopied","setString","setTimeout","newValue","textLinkTarget","payload","mediaUrl","mediaServerId","mediaId","openSidebar","getToolbarEditButton","open","createElement","onClick","getInspectorControls","isUploadFailed","linkDestinationOptions","value","label","attachmentPage","actionButtonStyle","getStylesFromColorScheme","actionButton","actionButtonDark","isCopyUrlDisabled","dimmedActionButtonStyle","dimmedActionButton","dimmedActionButtonDark","finalButtonStyle","onChange","options","hideCancelButton","checked","disabled","labelStyle","onPress","getStyleForAlignment","align","getFlexAlign","alignment","alignSelf","getTextAlignmentForAlignment","nativeEvent","width","layout","paddingLeft","paddingRight","defaultButton","getPlaceholderWidth","placeholderText","style","placeholder","onTextLayout","textWidth","lines","Math","min","openMediaOptions","getMediaOptions","isSelected","isButtonFocused","minWidth","onUpdateMediaProgress","onFinishMediaUploadWithSuccess","onFinishMediaUploadWithFailure","onMediaUploadStateReset","renderContent","dimmedStyle","disabledButton","errorIconStyle","Object","assign","errorIcon","uploadFailed","accessible","testID","container","withoutInteractiveFormatting","__unstableMobileNoFocusOnMount","tagName","underlineColorAndroid","deleteEnter","textAlign","errorContainer","editable","buttonText","unstableOnFocus","onBlur","selectionColor","color","placeholderTextColor","render","wasBlockJustInserted","labels","instructions","onSelect","onFocus","allowedTypes","autoOpenMediaUpload","isReplacingMedia","select","clientId","isEditorSidebarOpened","isNotFileHref","getMedia","undefined","dispatch","openGeneralSidebar"],"sources":["@wordpress/block-library/src/file/edit.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View, TouchableWithoutFeedback, Text } from 'react-native';\nimport Clipboard from '@react-native-clipboard/clipboard';\n\n/**\n * WordPress dependencies\n */\nimport {\n\trequestImageFailedRetryDialog,\n\trequestImageUploadCancelDialog,\n\tmediaUploadSync,\n} from '@wordpress/react-native-bridge';\nimport {\n\tBlockIcon,\n\tMediaPlaceholder,\n\tMediaUploadProgress,\n\tRichText,\n\tPlainText,\n\tBlockControls,\n\tMediaUpload,\n\tInspectorControls,\n\tMEDIA_TYPE_ANY,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tToolbarButton,\n\tToolbarGroup,\n\tPanelBody,\n\tToggleControl,\n\tTextControl,\n\tSelectControl,\n\tIcon,\n} from '@wordpress/components';\nimport {\n\tfile as icon,\n\treplace,\n\tbutton,\n\texternal,\n\tlink,\n\twarning,\n} from '@wordpress/icons';\nimport { Component } from '@wordpress/element';\nimport { __, _x } from '@wordpress/i18n';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { getProtocol } from '@wordpress/url';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nconst URL_COPIED_NOTIFICATION_DURATION_MS = 1500;\nconst MIN_WIDTH = 40;\n\nexport class FileEdit extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.state = {\n\t\t\tisUploadInProgress: false,\n\t\t\tisSidebarLinkSettings: false,\n\t\t\tplaceholderTextWidth: 0,\n\t\t\tmaxWidth: 0,\n\t\t};\n\n\t\tthis.timerRef = null;\n\n\t\tthis.onLayout = this.onLayout.bind( this );\n\t\tthis.onSelectFile = this.onSelectFile.bind( this );\n\t\tthis.onChangeFileName = this.onChangeFileName.bind( this );\n\t\tthis.onChangeDownloadButtonText =\n\t\t\tthis.onChangeDownloadButtonText.bind( this );\n\t\tthis.updateMediaProgress = this.updateMediaProgress.bind( this );\n\t\tthis.finishMediaUploadWithSuccess =\n\t\t\tthis.finishMediaUploadWithSuccess.bind( this );\n\t\tthis.finishMediaUploadWithFailure =\n\t\t\tthis.finishMediaUploadWithFailure.bind( this );\n\t\tthis.getFileComponent = this.getFileComponent.bind( this );\n\t\tthis.onChangeDownloadButtonVisibility =\n\t\t\tthis.onChangeDownloadButtonVisibility.bind( this );\n\t\tthis.onCopyURL = this.onCopyURL.bind( this );\n\t\tthis.onChangeOpenInNewWindow =\n\t\t\tthis.onChangeOpenInNewWindow.bind( this );\n\n\t\tthis.onChangeLinkDestinationOption =\n\t\t\tthis.onChangeLinkDestinationOption.bind( this );\n\t\tthis.onShowLinkSettings = this.onShowLinkSettings.bind( this );\n\t\tthis.onFilePressed = this.onFilePressed.bind( this );\n\t\tthis.mediaUploadStateReset = this.mediaUploadStateReset.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { downloadButtonText } = attributes;\n\n\t\tif ( RichText.isEmpty( downloadButtonText ) ) {\n\t\t\tsetAttributes( {\n\t\t\t\tdownloadButtonText: _x( 'Download', 'button label' ),\n\t\t\t} );\n\t\t}\n\n\t\tif (\n\t\t\tattributes.id &&\n\t\t\tattributes.url &&\n\t\t\tgetProtocol( attributes.url ) === 'file:'\n\t\t) {\n\t\t\tmediaUploadSync();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tclearTimeout( this.timerRef );\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tif (\n\t\t\tprevProps.isSidebarOpened &&\n\t\t\t! this.props.isSidebarOpened &&\n\t\t\tthis.state.isSidebarLinkSettings\n\t\t) {\n\t\t\tthis.setState( { isSidebarLinkSettings: false } );\n\t\t}\n\t}\n\n\tonSelectFile( media ) {\n\t\tthis.props.setAttributes( {\n\t\t\thref: media.url,\n\t\t\tfileName: media.title,\n\t\t\ttextLinkHref: media.url,\n\t\t\tid: media.id,\n\t\t} );\n\t}\n\n\tonChangeFileName( fileName ) {\n\t\tthis.props.setAttributes( { fileName } );\n\t}\n\n\tonChangeDownloadButtonText( downloadButtonText ) {\n\t\tthis.props.setAttributes( { downloadButtonText } );\n\t}\n\n\tonChangeDownloadButtonVisibility( showDownloadButton ) {\n\t\tthis.props.setAttributes( { showDownloadButton } );\n\t}\n\n\tonChangeLinkDestinationOption( newHref ) {\n\t\t// Choose Media File or Attachment Page (when file is in Media Library)\n\t\tthis.props.setAttributes( { textLinkHref: newHref } );\n\t}\n\n\tonCopyURL() {\n\t\tif ( this.state.isUrlCopied ) {\n\t\t\treturn;\n\t\t}\n\t\tconst { href } = this.props.attributes;\n\t\tClipboard.setString( href );\n\n\t\tthis.setState( { isUrlCopied: true } );\n\t\tthis.timerRef = setTimeout( () => {\n\t\t\tthis.setState( { isUrlCopied: false } );\n\t\t}, URL_COPIED_NOTIFICATION_DURATION_MS );\n\t}\n\n\tonChangeOpenInNewWindow( newValue ) {\n\t\tthis.props.setAttributes( {\n\t\t\ttextLinkTarget: newValue ? '_blank' : false,\n\t\t} );\n\t}\n\n\tupdateMediaProgress( payload ) {\n\t\tconst { setAttributes } = this.props;\n\t\tif ( payload.mediaUrl ) {\n\t\t\tsetAttributes( { url: payload.mediaUrl } );\n\t\t}\n\t\tif ( ! this.state.isUploadInProgress ) {\n\t\t\tthis.setState( { isUploadInProgress: true } );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithSuccess( payload ) {\n\t\tconst { setAttributes } = this.props;\n\n\t\tsetAttributes( {\n\t\t\thref: payload.mediaUrl,\n\t\t\tid: payload.mediaServerId,\n\t\t\ttextLinkHref: payload.mediaUrl,\n\t\t} );\n\t\tthis.setState( { isUploadInProgress: false } );\n\t}\n\n\tfinishMediaUploadWithFailure( payload ) {\n\t\tthis.props.setAttributes( { id: payload.mediaId } );\n\t\tthis.setState( { isUploadInProgress: false } );\n\t}\n\n\tmediaUploadStateReset() {\n\t\tconst { setAttributes } = this.props;\n\n\t\tsetAttributes( {\n\t\t\tid: null,\n\t\t\thref: null,\n\t\t\ttextLinkHref: null,\n\t\t\tfileName: null,\n\t\t} );\n\t\tthis.setState( { isUploadInProgress: false } );\n\t}\n\n\tonShowLinkSettings() {\n\t\tthis.setState(\n\t\t\t{\n\t\t\t\tisSidebarLinkSettings: true,\n\t\t\t},\n\t\t\tthis.props.openSidebar\n\t\t);\n\t}\n\n\tgetToolbarEditButton( open ) {\n\t\treturn (\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ttitle={ __( 'Edit file' ) }\n\t\t\t\t\t\ticon={ replace }\n\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ttitle={ __( 'Link To' ) }\n\t\t\t\t\t\ticon={ link }\n\t\t\t\t\t\tonClick={ this.onShowLinkSettings }\n\t\t\t\t\t/>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t);\n\t}\n\n\tgetInspectorControls(\n\t\t{ showDownloadButton, textLinkTarget, href, textLinkHref },\n\t\tmedia,\n\t\tisUploadInProgress,\n\t\tisUploadFailed\n\t) {\n\t\tlet linkDestinationOptions = [ { value: href, label: __( 'URL' ) } ];\n\t\tconst attachmentPage = media && media.link;\n\t\tconst { isSidebarLinkSettings } = this.state;\n\n\t\tif ( attachmentPage ) {\n\t\t\tlinkDestinationOptions = [\n\t\t\t\t{ value: href, label: __( 'Media file' ) },\n\t\t\t\t{ value: attachmentPage, label: __( 'Attachment page' ) },\n\t\t\t];\n\t\t}\n\n\t\tconst actionButtonStyle = this.props.getStylesFromColorScheme(\n\t\t\tstyles.actionButton,\n\t\t\tstyles.actionButtonDark\n\t\t);\n\n\t\tconst isCopyUrlDisabled = isUploadFailed || isUploadInProgress;\n\n\t\tconst dimmedActionButtonStyle = this.props.getStylesFromColorScheme(\n\t\t\tstyles.dimmedActionButton,\n\t\t\tstyles.dimmedActionButtonDark\n\t\t);\n\n\t\tconst finalButtonStyle = isCopyUrlDisabled\n\t\t\t? dimmedActionButtonStyle\n\t\t\t: actionButtonStyle;\n\n\t\treturn (\n\t\t\t<InspectorControls>\n\t\t\t\t{ isSidebarLinkSettings || (\n\t\t\t\t\t<PanelBody title={ __( 'File block settings' ) } />\n\t\t\t\t) }\n\t\t\t\t<PanelBody>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\ticon={ link }\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ textLinkHref }\n\t\t\t\t\t\tonChange={ this.onChangeLinkDestinationOption }\n\t\t\t\t\t\toptions={ linkDestinationOptions }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\tchecked={ textLinkTarget === '_blank' }\n\t\t\t\t\t\tonChange={ this.onChangeOpenInNewWindow }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! isSidebarLinkSettings && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\ticon={ button }\n\t\t\t\t\t\t\tlabel={ __( 'Show download button' ) }\n\t\t\t\t\t\t\tchecked={ showDownloadButton }\n\t\t\t\t\t\t\tonChange={ this.onChangeDownloadButtonVisibility }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tdisabled={ isCopyUrlDisabled }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tthis.state.isUrlCopied\n\t\t\t\t\t\t\t\t? __( 'Copied!' )\n\t\t\t\t\t\t\t\t: __( 'Copy file URL' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlabelStyle={\n\t\t\t\t\t\t\tthis.state.isUrlCopied || finalButtonStyle\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonPress={ this.onCopyURL }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t);\n\t}\n\n\tgetStyleForAlignment( align ) {\n\t\tconst getFlexAlign = ( alignment ) => {\n\t\t\tswitch ( alignment ) {\n\t\t\t\tcase 'right':\n\t\t\t\t\treturn 'flex-end';\n\t\t\t\tcase 'center':\n\t\t\t\t\treturn 'center';\n\t\t\t\tdefault:\n\t\t\t\t\treturn 'flex-start';\n\t\t\t}\n\t\t};\n\t\treturn { alignSelf: getFlexAlign( align ) };\n\t}\n\n\tgetTextAlignmentForAlignment( align ) {\n\t\tswitch ( align ) {\n\t\t\tcase 'right':\n\t\t\t\treturn 'right';\n\t\t\tcase 'center':\n\t\t\t\treturn 'center';\n\t\t\tdefault:\n\t\t\t\treturn 'left';\n\t\t}\n\t}\n\n\tonFilePressed() {\n\t\tconst { attributes } = this.props;\n\n\t\tif ( this.state.isUploadInProgress ) {\n\t\t\trequestImageUploadCancelDialog( attributes.id );\n\t\t} else if (\n\t\t\tattributes.id &&\n\t\t\tgetProtocol( attributes.href ) === 'file:'\n\t\t) {\n\t\t\trequestImageFailedRetryDialog( attributes.id );\n\t\t}\n\t}\n\n\tonLayout( { nativeEvent } ) {\n\t\tconst { width } = nativeEvent.layout;\n\t\tconst { paddingLeft, paddingRight } = styles.defaultButton;\n\t\tthis.setState( {\n\t\t\tmaxWidth: width - ( paddingLeft + paddingRight ),\n\t\t} );\n\t}\n\n\t// Render `Text` with `placeholderText` styled as a placeholder\n\t// to calculate its width which then is set as a `minWidth`\n\t// This should be fixed on RNAztec level. In the mean time,\n\t// We use the same strategy implemented in Button block.\n\tgetPlaceholderWidth( placeholderText ) {\n\t\tconst { maxWidth, placeholderTextWidth } = this.state;\n\t\treturn (\n\t\t\t<Text\n\t\t\t\tstyle={ styles.placeholder }\n\t\t\t\tonTextLayout={ ( { nativeEvent } ) => {\n\t\t\t\t\tconst textWidth =\n\t\t\t\t\t\tnativeEvent.lines[ 0 ] && nativeEvent.lines[ 0 ].width;\n\t\t\t\t\tif ( textWidth && textWidth !== placeholderTextWidth ) {\n\t\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\t\tplaceholderTextWidth: Math.min(\n\t\t\t\t\t\t\t\ttextWidth,\n\t\t\t\t\t\t\t\tmaxWidth\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} }\n\t\t\t>\n\t\t\t\t{ placeholderText }\n\t\t\t</Text>\n\t\t);\n\t}\n\n\tgetFileComponent( openMediaOptions, getMediaOptions ) {\n\t\tconst { attributes, media, isSelected } = this.props;\n\t\tconst { isButtonFocused, placeholderTextWidth } = this.state;\n\n\t\tconst { fileName, downloadButtonText, id, showDownloadButton, align } =\n\t\t\tattributes;\n\n\t\tconst minWidth =\n\t\t\tisButtonFocused ||\n\t\t\t( ! isButtonFocused &&\n\t\t\t\tdownloadButtonText &&\n\t\t\t\tdownloadButtonText !== '' )\n\t\t\t\t? MIN_WIDTH\n\t\t\t\t: placeholderTextWidth;\n\n\t\tconst placeholderText =\n\t\t\tisButtonFocused ||\n\t\t\t( ! isButtonFocused &&\n\t\t\t\tdownloadButtonText &&\n\t\t\t\tdownloadButtonText !== '' )\n\t\t\t\t? ''\n\t\t\t\t: __( 'Add text…' );\n\n\t\treturn (\n\t\t\t<MediaUploadProgress\n\t\t\t\tmediaId={ id }\n\t\t\t\tonUpdateMediaProgress={ this.updateMediaProgress }\n\t\t\t\tonFinishMediaUploadWithSuccess={\n\t\t\t\t\tthis.finishMediaUploadWithSuccess\n\t\t\t\t}\n\t\t\t\tonFinishMediaUploadWithFailure={\n\t\t\t\t\tthis.finishMediaUploadWithFailure\n\t\t\t\t}\n\t\t\t\tonMediaUploadStateReset={ this.mediaUploadStateReset }\n\t\t\t\trenderContent={ ( { isUploadInProgress, isUploadFailed } ) => {\n\t\t\t\t\tconst dimmedStyle =\n\t\t\t\t\t\t( this.state.isUploadInProgress || isUploadFailed ) &&\n\t\t\t\t\t\tstyles.disabledButton;\n\t\t\t\t\tconst finalButtonStyle = [\n\t\t\t\t\t\tstyles.defaultButton,\n\t\t\t\t\t\tdimmedStyle,\n\t\t\t\t\t];\n\n\t\t\t\t\tconst errorIconStyle = Object.assign(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\tstyles.errorIcon,\n\t\t\t\t\t\tstyles.uploadFailed\n\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<TouchableWithoutFeedback\n\t\t\t\t\t\t\taccessible={ ! isSelected }\n\t\t\t\t\t\t\tonPress={ this.onFilePressed }\n\t\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tonLayout={ this.onLayout }\n\t\t\t\t\t\t\t\ttestID=\"file-edit-container\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ this.getPlaceholderWidth( placeholderText ) }\n\t\t\t\t\t\t\t\t{ isUploadInProgress ||\n\t\t\t\t\t\t\t\t\tthis.getToolbarEditButton(\n\t\t\t\t\t\t\t\t\t\topenMediaOptions\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ getMediaOptions() }\n\t\t\t\t\t\t\t\t{ isSelected &&\n\t\t\t\t\t\t\t\t\tthis.getInspectorControls(\n\t\t\t\t\t\t\t\t\t\tattributes,\n\t\t\t\t\t\t\t\t\t\tmedia,\n\t\t\t\t\t\t\t\t\t\tisUploadInProgress,\n\t\t\t\t\t\t\t\t\t\tisUploadFailed\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<View style={ styles.container }>\n\t\t\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t\t\t\t__unstableMobileNoFocusOnMount\n\t\t\t\t\t\t\t\t\t\tonChange={ this.onChangeFileName }\n\t\t\t\t\t\t\t\t\t\tplaceholder={ __( 'File name' ) }\n\t\t\t\t\t\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\t\t\t\t\t\tunderlineColorAndroid=\"transparent\"\n\t\t\t\t\t\t\t\t\t\tvalue={ fileName }\n\t\t\t\t\t\t\t\t\t\tdeleteEnter={ true }\n\t\t\t\t\t\t\t\t\t\ttextAlign={ this.getTextAlignmentForAlignment(\n\t\t\t\t\t\t\t\t\t\t\talign\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ isUploadFailed && (\n\t\t\t\t\t\t\t\t\t\t<View style={ styles.errorContainer }>\n\t\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ warning }\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={ errorIconStyle }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t<PlainText\n\t\t\t\t\t\t\t\t\t\t\t\teditable={ false }\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={ __( 'Error' ) }\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={ styles.uploadFailed }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t{ showDownloadButton &&\n\t\t\t\t\t\t\t\t\tthis.state.maxWidth > 0 && (\n\t\t\t\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\t\t\t\tfinalButtonStyle,\n\t\t\t\t\t\t\t\t\t\t\t\tthis.getStyleForAlignment(\n\t\t\t\t\t\t\t\t\t\t\t\t\talign\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t\t\t\t\t\t__unstableMobileNoFocusOnMount\n\t\t\t\t\t\t\t\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\t\t\t\t\t\t\t\ttextAlign=\"center\"\n\t\t\t\t\t\t\t\t\t\t\t\tminWidth={ minWidth }\n\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth={ this.state.maxWidth }\n\t\t\t\t\t\t\t\t\t\t\t\tdeleteEnter={ true }\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={ styles.buttonText }\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={ downloadButtonText }\n\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={ placeholderText }\n\t\t\t\t\t\t\t\t\t\t\t\tunstableOnFocus={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisButtonFocused: true,\n\t\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tonBlur={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisButtonFocused: false,\n\t\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tselectionColor={\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.buttonText.color\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tplaceholderTextColor={\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.placeholderTextColor\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.color\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tunderlineColorAndroid=\"transparent\"\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.onChangeDownloadButtonText\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</TouchableWithoutFeedback>\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst { attributes, wasBlockJustInserted, isSelected } = this.props;\n\t\tconst { href } = attributes;\n\n\t\tif ( ! href ) {\n\t\t\treturn (\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tlabels={ {\n\t\t\t\t\t\ttitle: __( 'File' ),\n\t\t\t\t\t\tinstructions: __( 'Choose a file' ),\n\t\t\t\t\t} }\n\t\t\t\t\tonSelect={ this.onSelectFile }\n\t\t\t\t\tonFocus={ this.props.onFocus }\n\t\t\t\t\tallowedTypes={ [ MEDIA_TYPE_ANY ] }\n\t\t\t\t\tautoOpenMediaUpload={ isSelected && wasBlockJustInserted }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<MediaUpload\n\t\t\t\tallowedTypes={ [ MEDIA_TYPE_ANY ] }\n\t\t\t\tisReplacingMedia={ true }\n\t\t\t\tonSelect={ this.onSelectFile }\n\t\t\t\trender={ ( { open, getMediaOptions } ) => {\n\t\t\t\t\treturn this.getFileComponent( open, getMediaOptions );\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, props ) => {\n\t\tconst { attributes, isSelected, clientId } = props;\n\t\tconst { id, href } = attributes;\n\t\tconst { isEditorSidebarOpened } = select( 'core/edit-post' );\n\t\tconst isNotFileHref = id && getProtocol( href ) !== 'file:';\n\t\treturn {\n\t\t\tmedia: isNotFileHref\n\t\t\t\t? select( coreStore ).getMedia( id )\n\t\t\t\t: undefined,\n\t\t\tisSidebarOpened: isSelected && isEditorSidebarOpened(),\n\t\t\twasBlockJustInserted: select(\n\t\t\t\tblockEditorStore\n\t\t\t).wasBlockJustInserted( clientId, 'inserter_menu' ),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { openGeneralSidebar } = dispatch( 'core/edit-post' );\n\t\treturn {\n\t\t\topenSidebar: () => openGeneralSidebar( 'edit-post/block' ),\n\t\t};\n\t} ),\n\twithPreferredColorScheme,\n] )( FileEdit );\n"],"mappings":"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"}
@@ -33,8 +33,8 @@ const metadata = {
33
33
  attribute: "id"
34
34
  },
35
35
  fileName: {
36
- type: "string",
37
- source: "html",
36
+ type: "rich-text",
37
+ source: "rich-text",
38
38
  selector: "a:not([download])"
39
39
  },
40
40
  textLinkHref: {
@@ -54,8 +54,8 @@ const metadata = {
54
54
  "default": true
55
55
  },
56
56
  downloadButtonText: {
57
- type: "string",
58
- source: "html",
57
+ type: "rich-text",
58
+ source: "rich-text",
59
59
  selector: "a[download]"
60
60
  },
61
61
  displayPreview: {
@@ -22,7 +22,10 @@ export default function save({
22
22
  displayPreview,
23
23
  previewHeight
24
24
  } = attributes;
25
- const pdfEmbedLabel = RichText.isEmpty(fileName) ? 'PDF embed' : fileName;
25
+ const pdfEmbedLabel = RichText.isEmpty(fileName) ? 'PDF embed' :
26
+ // To do: use toPlainText, but we need ensure it's RichTextData. See
27
+ // https://github.com/WordPress/gutenberg/pull/56710.
28
+ fileName.toString();
26
29
  const hasFilename = !RichText.isEmpty(fileName);
27
30
 
28
31
  // Only output an `aria-describedby` when the element it's referring to is
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","RichText","useBlockProps","__experimentalGetElementClassName","save","attributes","href","fileId","fileName","textLinkHref","textLinkTarget","showDownloadButton","downloadButtonText","displayPreview","previewHeight","pdfEmbedLabel","isEmpty","hasFilename","describedById","undefined","createElement","Fragment","className","data","type","style","width","height","id","target","rel","Content","value","download"],"sources":["@wordpress/block-library/src/file/save.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst {\n\t\thref,\n\t\tfileId,\n\t\tfileName,\n\t\ttextLinkHref,\n\t\ttextLinkTarget,\n\t\tshowDownloadButton,\n\t\tdownloadButtonText,\n\t\tdisplayPreview,\n\t\tpreviewHeight,\n\t} = attributes;\n\n\tconst pdfEmbedLabel = RichText.isEmpty( fileName ) ? 'PDF embed' : fileName;\n\n\tconst hasFilename = ! RichText.isEmpty( fileName );\n\n\t// Only output an `aria-describedby` when the element it's referring to is\n\t// actually rendered.\n\tconst describedById = hasFilename ? fileId : undefined;\n\n\treturn (\n\t\thref && (\n\t\t\t<div { ...useBlockProps.save() }>\n\t\t\t\t{ displayPreview && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<object\n\t\t\t\t\t\t\tclassName=\"wp-block-file__embed\"\n\t\t\t\t\t\t\tdata={ href }\n\t\t\t\t\t\t\ttype=\"application/pdf\"\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t\t\theight: `${ previewHeight }px`,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taria-label={ pdfEmbedLabel }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t{ hasFilename && (\n\t\t\t\t\t<a\n\t\t\t\t\t\tid={ describedById }\n\t\t\t\t\t\thref={ textLinkHref }\n\t\t\t\t\t\ttarget={ textLinkTarget }\n\t\t\t\t\t\trel={\n\t\t\t\t\t\t\ttextLinkTarget ? 'noreferrer noopener' : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<RichText.Content value={ fileName } />\n\t\t\t\t\t</a>\n\t\t\t\t) }\n\t\t\t\t{ showDownloadButton && (\n\t\t\t\t\t<a\n\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'wp-block-file__button',\n\t\t\t\t\t\t\t__experimentalGetElementClassName( 'button' )\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tdownload={ true }\n\t\t\t\t\t\taria-describedby={ describedById }\n\t\t\t\t\t>\n\t\t\t\t\t\t<RichText.Content value={ downloadButtonText } />\n\t\t\t\t\t</a>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t)\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SACCC,QAAQ,EACRC,aAAa,EACbC,iCAAiC,QAC3B,yBAAyB;AAEhC,eAAe,SAASC,IAAIA,CAAE;EAAEC;AAAW,CAAC,EAAG;EAC9C,MAAM;IACLC,IAAI;IACJC,MAAM;IACNC,QAAQ;IACRC,YAAY;IACZC,cAAc;IACdC,kBAAkB;IAClBC,kBAAkB;IAClBC,cAAc;IACdC;EACD,CAAC,GAAGT,UAAU;EAEd,MAAMU,aAAa,GAAGd,QAAQ,CAACe,OAAO,CAAER,QAAS,CAAC,GAAG,WAAW,GAAGA,QAAQ;EAE3E,MAAMS,WAAW,GAAG,CAAEhB,QAAQ,CAACe,OAAO,CAAER,QAAS,CAAC;;EAElD;EACA;EACA,MAAMU,aAAa,GAAGD,WAAW,GAAGV,MAAM,GAAGY,SAAS;EAEtD,OACCb,IAAI,IACHc,aAAA;IAAA,GAAUlB,aAAa,CAACE,IAAI,CAAC;EAAC,GAC3BS,cAAc,IACfO,aAAA,CAAAC,QAAA,QACCD,aAAA;IACCE,SAAS,EAAC,sBAAsB;IAChCC,IAAI,EAAGjB,IAAM;IACbkB,IAAI,EAAC,iBAAiB;IACtBC,KAAK,EAAG;MACPC,KAAK,EAAE,MAAM;MACbC,MAAM,EAAG,GAAGb,aAAe;IAC5B,CAAG;IACH,cAAaC;EAAe,CAC5B,CACA,CACF,EACCE,WAAW,IACZG,aAAA;IACCQ,EAAE,EAAGV,aAAe;IACpBZ,IAAI,EAAGG,YAAc;IACrBoB,MAAM,EAAGnB,cAAgB;IACzBoB,GAAG,EACFpB,cAAc,GAAG,qBAAqB,GAAGS;EACzC,GAEDC,aAAA,CAACnB,QAAQ,CAAC8B,OAAO;IAACC,KAAK,EAAGxB;EAAU,CAAE,CACpC,CACH,EACCG,kBAAkB,IACnBS,aAAA;IACCd,IAAI,EAAGA,IAAM;IACbgB,SAAS,EAAGtB,UAAU,CACrB,uBAAuB,EACvBG,iCAAiC,CAAE,QAAS,CAC7C,CAAG;IACH8B,QAAQ,EAAG,IAAM;IACjB,oBAAmBf;EAAe,GAElCE,aAAA,CAACnB,QAAQ,CAAC8B,OAAO;IAACC,KAAK,EAAGpB;EAAoB,CAAE,CAC9C,CAEA,CACL;AAEH"}
1
+ {"version":3,"names":["classnames","RichText","useBlockProps","__experimentalGetElementClassName","save","attributes","href","fileId","fileName","textLinkHref","textLinkTarget","showDownloadButton","downloadButtonText","displayPreview","previewHeight","pdfEmbedLabel","isEmpty","toString","hasFilename","describedById","undefined","createElement","Fragment","className","data","type","style","width","height","id","target","rel","Content","value","download"],"sources":["@wordpress/block-library/src/file/save.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst {\n\t\thref,\n\t\tfileId,\n\t\tfileName,\n\t\ttextLinkHref,\n\t\ttextLinkTarget,\n\t\tshowDownloadButton,\n\t\tdownloadButtonText,\n\t\tdisplayPreview,\n\t\tpreviewHeight,\n\t} = attributes;\n\n\tconst pdfEmbedLabel = RichText.isEmpty( fileName )\n\t\t? 'PDF embed'\n\t\t: // To do: use toPlainText, but we need ensure it's RichTextData. See\n\t\t // https://github.com/WordPress/gutenberg/pull/56710.\n\t\t fileName.toString();\n\n\tconst hasFilename = ! RichText.isEmpty( fileName );\n\n\t// Only output an `aria-describedby` when the element it's referring to is\n\t// actually rendered.\n\tconst describedById = hasFilename ? fileId : undefined;\n\n\treturn (\n\t\thref && (\n\t\t\t<div { ...useBlockProps.save() }>\n\t\t\t\t{ displayPreview && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<object\n\t\t\t\t\t\t\tclassName=\"wp-block-file__embed\"\n\t\t\t\t\t\t\tdata={ href }\n\t\t\t\t\t\t\ttype=\"application/pdf\"\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t\t\theight: `${ previewHeight }px`,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taria-label={ pdfEmbedLabel }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t{ hasFilename && (\n\t\t\t\t\t<a\n\t\t\t\t\t\tid={ describedById }\n\t\t\t\t\t\thref={ textLinkHref }\n\t\t\t\t\t\ttarget={ textLinkTarget }\n\t\t\t\t\t\trel={\n\t\t\t\t\t\t\ttextLinkTarget ? 'noreferrer noopener' : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<RichText.Content value={ fileName } />\n\t\t\t\t\t</a>\n\t\t\t\t) }\n\t\t\t\t{ showDownloadButton && (\n\t\t\t\t\t<a\n\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'wp-block-file__button',\n\t\t\t\t\t\t\t__experimentalGetElementClassName( 'button' )\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tdownload={ true }\n\t\t\t\t\t\taria-describedby={ describedById }\n\t\t\t\t\t>\n\t\t\t\t\t\t<RichText.Content value={ downloadButtonText } />\n\t\t\t\t\t</a>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t)\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SACCC,QAAQ,EACRC,aAAa,EACbC,iCAAiC,QAC3B,yBAAyB;AAEhC,eAAe,SAASC,IAAIA,CAAE;EAAEC;AAAW,CAAC,EAAG;EAC9C,MAAM;IACLC,IAAI;IACJC,MAAM;IACNC,QAAQ;IACRC,YAAY;IACZC,cAAc;IACdC,kBAAkB;IAClBC,kBAAkB;IAClBC,cAAc;IACdC;EACD,CAAC,GAAGT,UAAU;EAEd,MAAMU,aAAa,GAAGd,QAAQ,CAACe,OAAO,CAAER,QAAS,CAAC,GAC/C,WAAW;EACX;EACA;EACAA,QAAQ,CAACS,QAAQ,CAAC,CAAC;EAEtB,MAAMC,WAAW,GAAG,CAAEjB,QAAQ,CAACe,OAAO,CAAER,QAAS,CAAC;;EAElD;EACA;EACA,MAAMW,aAAa,GAAGD,WAAW,GAAGX,MAAM,GAAGa,SAAS;EAEtD,OACCd,IAAI,IACHe,aAAA;IAAA,GAAUnB,aAAa,CAACE,IAAI,CAAC;EAAC,GAC3BS,cAAc,IACfQ,aAAA,CAAAC,QAAA,QACCD,aAAA;IACCE,SAAS,EAAC,sBAAsB;IAChCC,IAAI,EAAGlB,IAAM;IACbmB,IAAI,EAAC,iBAAiB;IACtBC,KAAK,EAAG;MACPC,KAAK,EAAE,MAAM;MACbC,MAAM,EAAG,GAAGd,aAAe;IAC5B,CAAG;IACH,cAAaC;EAAe,CAC5B,CACA,CACF,EACCG,WAAW,IACZG,aAAA;IACCQ,EAAE,EAAGV,aAAe;IACpBb,IAAI,EAAGG,YAAc;IACrBqB,MAAM,EAAGpB,cAAgB;IACzBqB,GAAG,EACFrB,cAAc,GAAG,qBAAqB,GAAGU;EACzC,GAEDC,aAAA,CAACpB,QAAQ,CAAC+B,OAAO;IAACC,KAAK,EAAGzB;EAAU,CAAE,CACpC,CACH,EACCG,kBAAkB,IACnBU,aAAA;IACCf,IAAI,EAAGA,IAAM;IACbiB,SAAS,EAAGvB,UAAU,CACrB,uBAAuB,EACvBG,iCAAiC,CAAE,QAAS,CAC7C,CAAG;IACH+B,QAAQ,EAAG,IAAM;IACjB,oBAAmBf;EAAe,GAElCE,aAAA,CAACpB,QAAQ,CAAC+B,OAAO;IAACC,KAAK,EAAGrB;EAAoB,CAAE,CAC9C,CAEA,CACL;AAEH"}
@@ -0,0 +1,138 @@
1
+ import { createElement } from "react";
2
+ /**
3
+ * External dependencies
4
+ */
5
+ import classNames from 'classnames';
6
+ import removeAccents from 'remove-accents';
7
+
8
+ /**
9
+ * WordPress dependencies
10
+ */
11
+ import { RichText, __experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles, __experimentalGetColorClassesAndStyles as getColorClassesAndStyles } from '@wordpress/block-editor';
12
+ import { __unstableStripHTML as stripHTML } from '@wordpress/dom';
13
+ const getNameFromLabelV1 = content => {
14
+ return removeAccents(stripHTML(content))
15
+ // Convert anything that's not a letter or number to a hyphen.
16
+ .replace(/[^\p{L}\p{N}]+/gu, '-')
17
+ // Convert to lowercase
18
+ .toLowerCase()
19
+ // Remove any remaining leading or trailing hyphens.
20
+ .replace(/(^-+)|(-+$)/g, '');
21
+ };
22
+
23
+ // Version without wrapper div in saved markup
24
+ // See: https://github.com/WordPress/gutenberg/pull/56507
25
+ const v1 = {
26
+ attributes: {
27
+ type: {
28
+ type: 'string',
29
+ default: 'text'
30
+ },
31
+ name: {
32
+ type: 'string'
33
+ },
34
+ label: {
35
+ type: 'string',
36
+ default: 'Label',
37
+ selector: '.wp-block-form-input__label-content',
38
+ source: 'html',
39
+ __experimentalRole: 'content'
40
+ },
41
+ inlineLabel: {
42
+ type: 'boolean',
43
+ default: false
44
+ },
45
+ required: {
46
+ type: 'boolean',
47
+ default: false,
48
+ selector: '.wp-block-form-input__input',
49
+ source: 'attribute',
50
+ attribute: 'required'
51
+ },
52
+ placeholder: {
53
+ type: 'string',
54
+ selector: '.wp-block-form-input__input',
55
+ source: 'attribute',
56
+ attribute: 'placeholder',
57
+ __experimentalRole: 'content'
58
+ },
59
+ value: {
60
+ type: 'string',
61
+ default: '',
62
+ selector: 'input',
63
+ source: 'attribute',
64
+ attribute: 'value'
65
+ },
66
+ visibilityPermissions: {
67
+ type: 'string',
68
+ default: 'all'
69
+ }
70
+ },
71
+ supports: {
72
+ className: false,
73
+ anchor: true,
74
+ reusable: false,
75
+ spacing: {
76
+ margin: ['top', 'bottom']
77
+ },
78
+ __experimentalBorder: {
79
+ radius: true,
80
+ __experimentalSkipSerialization: true,
81
+ __experimentalDefaultControls: {
82
+ radius: true
83
+ }
84
+ }
85
+ },
86
+ save({
87
+ attributes
88
+ }) {
89
+ const {
90
+ type,
91
+ name,
92
+ label,
93
+ inlineLabel,
94
+ required,
95
+ placeholder,
96
+ value
97
+ } = attributes;
98
+ const borderProps = getBorderClassesAndStyles(attributes);
99
+ const colorProps = getColorClassesAndStyles(attributes);
100
+ const inputStyle = {
101
+ ...borderProps.style,
102
+ ...colorProps.style
103
+ };
104
+ const inputClasses = classNames('wp-block-form-input__input', colorProps.className, borderProps.className);
105
+ const TagName = type === 'textarea' ? 'textarea' : 'input';
106
+ if ('hidden' === type) {
107
+ return createElement("input", {
108
+ type: type,
109
+ name: name,
110
+ value: value
111
+ });
112
+ }
113
+
114
+ /* eslint-disable jsx-a11y/label-has-associated-control */
115
+ return createElement("label", {
116
+ className: classNames('wp-block-form-input__label', {
117
+ 'is-label-inline': inlineLabel
118
+ })
119
+ }, createElement("span", {
120
+ className: "wp-block-form-input__label-content"
121
+ }, createElement(RichText.Content, {
122
+ value: label
123
+ })), createElement(TagName, {
124
+ className: inputClasses,
125
+ type: 'textarea' === type ? undefined : type,
126
+ name: name || getNameFromLabelV1(label),
127
+ required: required,
128
+ "aria-required": required,
129
+ placeholder: placeholder || undefined,
130
+ style: inputStyle
131
+ }));
132
+ /* eslint-enable jsx-a11y/label-has-associated-control */
133
+ }
134
+ };
135
+
136
+ const deprecated = [v1];
137
+ export default deprecated;
138
+ //# sourceMappingURL=deprecated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["classNames","removeAccents","RichText","__experimentalGetBorderClassesAndStyles","getBorderClassesAndStyles","__experimentalGetColorClassesAndStyles","getColorClassesAndStyles","__unstableStripHTML","stripHTML","getNameFromLabelV1","content","replace","toLowerCase","v1","attributes","type","default","name","label","selector","source","__experimentalRole","inlineLabel","required","attribute","placeholder","value","visibilityPermissions","supports","className","anchor","reusable","spacing","margin","__experimentalBorder","radius","__experimentalSkipSerialization","__experimentalDefaultControls","save","borderProps","colorProps","inputStyle","style","inputClasses","TagName","createElement","Content","undefined","deprecated"],"sources":["@wordpress/block-library/src/form-input/deprecated.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n} from '@wordpress/block-editor';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\nconst getNameFromLabelV1 = ( content ) => {\n\treturn (\n\t\tremoveAccents( stripHTML( content ) )\n\t\t\t// Convert anything that's not a letter or number to a hyphen.\n\t\t\t.replace( /[^\\p{L}\\p{N}]+/gu, '-' )\n\t\t\t// Convert to lowercase\n\t\t\t.toLowerCase()\n\t\t\t// Remove any remaining leading or trailing hyphens.\n\t\t\t.replace( /(^-+)|(-+$)/g, '' )\n\t);\n};\n\n// Version without wrapper div in saved markup\n// See: https://github.com/WordPress/gutenberg/pull/56507\nconst v1 = {\n\tattributes: {\n\t\ttype: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'text',\n\t\t},\n\t\tname: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tlabel: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'Label',\n\t\t\tselector: '.wp-block-form-input__label-content',\n\t\t\tsource: 'html',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\tinlineLabel: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t\trequired: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t\tselector: '.wp-block-form-input__input',\n\t\t\tsource: 'attribute',\n\t\t\tattribute: 'required',\n\t\t},\n\t\tplaceholder: {\n\t\t\ttype: 'string',\n\t\t\tselector: '.wp-block-form-input__input',\n\t\t\tsource: 'attribute',\n\t\t\tattribute: 'placeholder',\n\t\t\t__experimentalRole: 'content',\n\t\t},\n\t\tvalue: {\n\t\t\ttype: 'string',\n\t\t\tdefault: '',\n\t\t\tselector: 'input',\n\t\t\tsource: 'attribute',\n\t\t\tattribute: 'value',\n\t\t},\n\t\tvisibilityPermissions: {\n\t\t\ttype: 'string',\n\t\t\tdefault: 'all',\n\t\t},\n\t},\n\tsupports: {\n\t\tclassName: false,\n\t\tanchor: true,\n\t\treusable: false,\n\t\tspacing: {\n\t\t\tmargin: [ 'top', 'bottom' ],\n\t\t},\n\t\t__experimentalBorder: {\n\t\t\tradius: true,\n\t\t\t__experimentalSkipSerialization: true,\n\t\t\t__experimentalDefaultControls: {\n\t\t\t\tradius: true,\n\t\t\t},\n\t\t},\n\t},\n\tsave( { attributes } ) {\n\t\tconst { type, name, label, inlineLabel, required, placeholder, value } =\n\t\t\tattributes;\n\n\t\tconst borderProps = getBorderClassesAndStyles( attributes );\n\t\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\t\tconst inputStyle = {\n\t\t\t...borderProps.style,\n\t\t\t...colorProps.style,\n\t\t};\n\n\t\tconst inputClasses = classNames(\n\t\t\t'wp-block-form-input__input',\n\t\t\tcolorProps.className,\n\t\t\tborderProps.className\n\t\t);\n\t\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\n\t\tif ( 'hidden' === type ) {\n\t\t\treturn <input type={ type } name={ name } value={ value } />;\n\t\t}\n\n\t\t/* eslint-disable jsx-a11y/label-has-associated-control */\n\t\treturn (\n\t\t\t<label\n\t\t\t\tclassName={ classNames( 'wp-block-form-input__label', {\n\t\t\t\t\t'is-label-inline': inlineLabel,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<span className=\"wp-block-form-input__label-content\">\n\t\t\t\t\t<RichText.Content value={ label } />\n\t\t\t\t</span>\n\t\t\t\t<TagName\n\t\t\t\t\tclassName={ inputClasses }\n\t\t\t\t\ttype={ 'textarea' === type ? undefined : type }\n\t\t\t\t\tname={ name || getNameFromLabelV1( label ) }\n\t\t\t\t\trequired={ required }\n\t\t\t\t\taria-required={ required }\n\t\t\t\t\tplaceholder={ placeholder || undefined }\n\t\t\t\t\tstyle={ inputStyle }\n\t\t\t\t/>\n\t\t\t</label>\n\t\t);\n\t\t/* eslint-enable jsx-a11y/label-has-associated-control */\n\t},\n};\n\nconst deprecated = [ v1 ];\n\nexport default deprecated;\n"],"mappings":"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"}
@@ -52,7 +52,7 @@ function InputFieldBlock({
52
52
  });
53
53
  }
54
54
  }))), createElement(InspectorControls, {
55
- __experimentalGroup: "advanced"
55
+ group: "advanced"
56
56
  }, createElement(TextControl, {
57
57
  autoComplete: "off",
58
58
  label: __('Name'),
@@ -1 +1 @@
1
- {"version":3,"names":["classNames","__","InspectorControls","RichText","useBlockProps","__experimentalUseBorderProps","useBorderProps","__experimentalUseColorProps","useColorProps","PanelBody","TextControl","CheckboxControl","useRef","InputFieldBlock","attributes","setAttributes","className","type","name","label","inlineLabel","required","placeholder","value","blockProps","ref","TagName","borderProps","colorProps","current","focus","controls","createElement","Fragment","title","checked","onChange","newVal","__experimentalGroup","autoComplete","help","event","target","tagName","newLabel","undefined","style"],"sources":["@wordpress/block-library/src/form-input/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n} from '@wordpress/block-editor';\nimport { PanelBody, TextControl, CheckboxControl } from '@wordpress/components';\n\nimport { useRef } from '@wordpress/element';\n\nfunction InputFieldBlock( { attributes, setAttributes, className } ) {\n\tconst { type, name, label, inlineLabel, required, placeholder, value } =\n\t\tattributes;\n\tconst blockProps = useBlockProps();\n\tconst ref = useRef();\n\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst colorProps = useColorProps( attributes );\n\tif ( ref.current ) {\n\t\tref.current.focus();\n\t}\n\n\tconst controls = (\n\t\t<>\n\t\t\t{ 'hidden' !== type && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Input settings' ) }>\n\t\t\t\t\t\t{ 'checkbox' !== type && (\n\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Inline label' ) }\n\t\t\t\t\t\t\t\tchecked={ inlineLabel }\n\t\t\t\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tinlineLabel: newVal,\n\t\t\t\t\t\t\t\t\t} );\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<CheckboxControl\n\t\t\t\t\t\t\tlabel={ __( 'Required' ) }\n\t\t\t\t\t\t\tchecked={ required }\n\t\t\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\trequired: newVal,\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</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<InspectorControls __experimentalGroup=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\tvalue={ name }\n\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tname: newVal,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Affects the \"name\" atribute of the input element, and is used as a name for the form submission results.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tif ( 'hidden' === type ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ controls }\n\t\t\t\t<input\n\t\t\t\t\ttype=\"hidden\"\n\t\t\t\t\tclassName={ classNames(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-form-input__input',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className\n\t\t\t\t\t) }\n\t\t\t\t\taria-label={ __( 'Value' ) }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ ( event ) =>\n\t\t\t\t\t\tsetAttributes( { value: event.target.value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\n\t\t\t<span\n\t\t\t\tclassName={ classNames( 'wp-block-form-input__label', {\n\t\t\t\t\t'is-label-inline': inlineLabel || 'checkbox' === type,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<RichText\n\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\tclassName=\"wp-block-form-input__label-content\"\n\t\t\t\t\tvalue={ label }\n\t\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\t\tsetAttributes( { label: newLabel } )\n\t\t\t\t\t}\n\t\t\t\t\taria-label={ label ? __( 'Label' ) : __( 'Empty label' ) }\n\t\t\t\t\tdata-empty={ label ? false : true }\n\t\t\t\t\tplaceholder={ __( 'Type the label for this input' ) }\n\t\t\t\t/>\n\t\t\t\t<TagName\n\t\t\t\t\ttype={ 'textarea' === type ? undefined : type }\n\t\t\t\t\tclassName={ classNames(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-form-input__input',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className\n\t\t\t\t\t) }\n\t\t\t\t\taria-label={ __( 'Optional placeholder text' ) }\n\t\t\t\t\t// We hide the placeholder field's placeholder when there is a value. This\n\t\t\t\t\t// stops screen readers from reading the placeholder field's placeholder\n\t\t\t\t\t// which is confusing.\n\t\t\t\t\tplaceholder={\n\t\t\t\t\t\tplaceholder ? undefined : __( 'Optional placeholder…' )\n\t\t\t\t\t}\n\t\t\t\t\tvalue={ placeholder }\n\t\t\t\t\tonChange={ ( event ) =>\n\t\t\t\t\t\tsetAttributes( { placeholder: event.target.value } )\n\t\t\t\t\t}\n\t\t\t\t\taria-required={ required }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t\t...colorProps.style,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</span>\n\t\t</div>\n\t);\n}\n\nexport default InputFieldBlock;\n"],"mappings":"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"}
1
+ {"version":3,"names":["classNames","__","InspectorControls","RichText","useBlockProps","__experimentalUseBorderProps","useBorderProps","__experimentalUseColorProps","useColorProps","PanelBody","TextControl","CheckboxControl","useRef","InputFieldBlock","attributes","setAttributes","className","type","name","label","inlineLabel","required","placeholder","value","blockProps","ref","TagName","borderProps","colorProps","current","focus","controls","createElement","Fragment","title","checked","onChange","newVal","group","autoComplete","help","event","target","tagName","newLabel","undefined","style"],"sources":["@wordpress/block-library/src/form-input/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n} from '@wordpress/block-editor';\nimport { PanelBody, TextControl, CheckboxControl } from '@wordpress/components';\n\nimport { useRef } from '@wordpress/element';\n\nfunction InputFieldBlock( { attributes, setAttributes, className } ) {\n\tconst { type, name, label, inlineLabel, required, placeholder, value } =\n\t\tattributes;\n\tconst blockProps = useBlockProps();\n\tconst ref = useRef();\n\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst colorProps = useColorProps( attributes );\n\tif ( ref.current ) {\n\t\tref.current.focus();\n\t}\n\n\tconst controls = (\n\t\t<>\n\t\t\t{ 'hidden' !== type && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Input settings' ) }>\n\t\t\t\t\t\t{ 'checkbox' !== type && (\n\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Inline label' ) }\n\t\t\t\t\t\t\t\tchecked={ inlineLabel }\n\t\t\t\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tinlineLabel: newVal,\n\t\t\t\t\t\t\t\t\t} );\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<CheckboxControl\n\t\t\t\t\t\t\tlabel={ __( 'Required' ) }\n\t\t\t\t\t\t\tchecked={ required }\n\t\t\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\trequired: newVal,\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</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\tvalue={ name }\n\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tname: newVal,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Affects the \"name\" atribute of the input element, and is used as a name for the form submission results.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tif ( 'hidden' === type ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ controls }\n\t\t\t\t<input\n\t\t\t\t\ttype=\"hidden\"\n\t\t\t\t\tclassName={ classNames(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-form-input__input',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className\n\t\t\t\t\t) }\n\t\t\t\t\taria-label={ __( 'Value' ) }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ ( event ) =>\n\t\t\t\t\t\tsetAttributes( { value: event.target.value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\n\t\t\t<span\n\t\t\t\tclassName={ classNames( 'wp-block-form-input__label', {\n\t\t\t\t\t'is-label-inline': inlineLabel || 'checkbox' === type,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<RichText\n\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\tclassName=\"wp-block-form-input__label-content\"\n\t\t\t\t\tvalue={ label }\n\t\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\t\tsetAttributes( { label: newLabel } )\n\t\t\t\t\t}\n\t\t\t\t\taria-label={ label ? __( 'Label' ) : __( 'Empty label' ) }\n\t\t\t\t\tdata-empty={ label ? false : true }\n\t\t\t\t\tplaceholder={ __( 'Type the label for this input' ) }\n\t\t\t\t/>\n\t\t\t\t<TagName\n\t\t\t\t\ttype={ 'textarea' === type ? undefined : type }\n\t\t\t\t\tclassName={ classNames(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-form-input__input',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className\n\t\t\t\t\t) }\n\t\t\t\t\taria-label={ __( 'Optional placeholder text' ) }\n\t\t\t\t\t// We hide the placeholder field's placeholder when there is a value. This\n\t\t\t\t\t// stops screen readers from reading the placeholder field's placeholder\n\t\t\t\t\t// which is confusing.\n\t\t\t\t\tplaceholder={\n\t\t\t\t\t\tplaceholder ? undefined : __( 'Optional placeholder…' )\n\t\t\t\t\t}\n\t\t\t\t\tvalue={ placeholder }\n\t\t\t\t\tonChange={ ( event ) =>\n\t\t\t\t\t\tsetAttributes( { placeholder: event.target.value } )\n\t\t\t\t\t}\n\t\t\t\t\taria-required={ required }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t\t...colorProps.style,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</span>\n\t\t</div>\n\t);\n}\n\nexport default InputFieldBlock;\n"],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  * Internal dependencies
3
3
  */
4
4
  import initBlock from '../utils/init-block';
5
+ import deprecated from './deprecated';
5
6
  import edit from './edit';
6
7
  const metadata = {
7
8
  $schema: "https://schemas.wp.org/trunk/block.json",
@@ -24,10 +25,10 @@ const metadata = {
24
25
  type: "string"
25
26
  },
26
27
  label: {
27
- type: "string",
28
+ type: "rich-text",
28
29
  "default": "Label",
29
30
  selector: ".wp-block-form-input__label-content",
30
- source: "html",
31
+ source: "rich-text",
31
32
  __experimentalRole: "content"
32
33
  },
33
34
  inlineLabel: {
@@ -83,6 +84,7 @@ const {
83
84
  } = metadata;
84
85
  export { metadata, name };
85
86
  export const settings = {
87
+ deprecated,
86
88
  edit,
87
89
  save,
88
90
  variations
@@ -1 +1 @@
1
- {"version":3,"names":["initBlock","edit","metadata","$schema","apiVersion","__experimental","name","title","category","ancestor","description","keywords","textdomain","icon","attributes","type","label","selector","source","__experimentalRole","inlineLabel","required","attribute","placeholder","value","visibilityPermissions","supports","anchor","reusable","spacing","margin","__experimentalBorder","radius","__experimentalSkipSerialization","__experimentalDefaultControls","style","save","variations","settings","init"],"sources":["@wordpress/block-library/src/form-input/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport variations from './variations';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\tedit,\n\tsave,\n\tvariations,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,SAAS,MAAM,qBAAqB;AAC3C,OAAOC,IAAI,MAAM,QAAQ;AAAC,MAAAC,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,cAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,QAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,UAAA;IAAAC,IAAA;MAAAA,IAAA;MAAA;IAAA;IAAAT,IAAA;MAAAS,IAAA;IAAA;IAAAC,KAAA;MAAAD,IAAA;MAAA;MAAAE,QAAA;MAAAC,MAAA;MAAAC,kBAAA;IAAA;IAAAC,WAAA;MAAAL,IAAA;MAAA;IAAA;IAAAM,QAAA;MAAAN,IAAA;MAAA;MAAAE,QAAA;MAAAC,MAAA;MAAAI,SAAA;IAAA;IAAAC,WAAA;MAAAR,IAAA;MAAAE,QAAA;MAAAC,MAAA;MAAAI,SAAA;MAAAH,kBAAA;IAAA;IAAAK,KAAA;MAAAT,IAAA;MAAA;MAAAE,QAAA;MAAAC,MAAA;MAAAI,SAAA;IAAA;IAAAG,qBAAA;MAAAV,IAAA;MAAA;IAAA;EAAA;EAAAW,QAAA;IAAAC,MAAA;IAAAC,QAAA;IAAAC,OAAA;MAAAC,MAAA;IAAA;IAAAC,oBAAA;MAAAC,MAAA;MAAAC,+BAAA;MAAAC,6BAAA;QAAAF,MAAA;MAAA;IAAA;EAAA;EAAAG,KAAA;AAAA;AAE1B,OAAOC,IAAI,MAAM,QAAQ;AACzB,OAAOC,UAAU,MAAM,cAAc;AAErC,MAAM;EAAE/B;AAAK,CAAC,GAAGJ,QAAQ;AAEzB,SAASA,QAAQ,EAAEI,IAAI;AAEvB,OAAO,MAAMgC,QAAQ,GAAG;EACvBrC,IAAI;EACJmC,IAAI;EACJC;AACD,CAAC;AAED,OAAO,MAAME,IAAI,GAAGA,CAAA,KAAMvC,SAAS,CAAE;EAAEM,IAAI;EAAEJ,QAAQ;EAAEoC;AAAS,CAAE,CAAC"}
1
+ {"version":3,"names":["initBlock","deprecated","edit","metadata","$schema","apiVersion","__experimental","name","title","category","ancestor","description","keywords","textdomain","icon","attributes","type","label","selector","source","__experimentalRole","inlineLabel","required","attribute","placeholder","value","visibilityPermissions","supports","anchor","reusable","spacing","margin","__experimentalBorder","radius","__experimentalSkipSerialization","__experimentalDefaultControls","style","save","variations","settings","init"],"sources":["@wordpress/block-library/src/form-input/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport deprecated from './deprecated';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport variations from './variations';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\tdeprecated,\n\tedit,\n\tsave,\n\tvariations,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,SAAS,MAAM,qBAAqB;AAC3C,OAAOC,UAAU,MAAM,cAAc;AACrC,OAAOC,IAAI,MAAM,QAAQ;AAAC,MAAAC,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,cAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,QAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,UAAA;IAAAC,IAAA;MAAAA,IAAA;MAAA;IAAA;IAAAT,IAAA;MAAAS,IAAA;IAAA;IAAAC,KAAA;MAAAD,IAAA;MAAA;MAAAE,QAAA;MAAAC,MAAA;MAAAC,kBAAA;IAAA;IAAAC,WAAA;MAAAL,IAAA;MAAA;IAAA;IAAAM,QAAA;MAAAN,IAAA;MAAA;MAAAE,QAAA;MAAAC,MAAA;MAAAI,SAAA;IAAA;IAAAC,WAAA;MAAAR,IAAA;MAAAE,QAAA;MAAAC,MAAA;MAAAI,SAAA;MAAAH,kBAAA;IAAA;IAAAK,KAAA;MAAAT,IAAA;MAAA;MAAAE,QAAA;MAAAC,MAAA;MAAAI,SAAA;IAAA;IAAAG,qBAAA;MAAAV,IAAA;MAAA;IAAA;EAAA;EAAAW,QAAA;IAAAC,MAAA;IAAAC,QAAA;IAAAC,OAAA;MAAAC,MAAA;IAAA;IAAAC,oBAAA;MAAAC,MAAA;MAAAC,+BAAA;MAAAC,6BAAA;QAAAF,MAAA;MAAA;IAAA;EAAA;EAAAG,KAAA;AAAA;AAE1B,OAAOC,IAAI,MAAM,QAAQ;AACzB,OAAOC,UAAU,MAAM,cAAc;AAErC,MAAM;EAAE/B;AAAK,CAAC,GAAGJ,QAAQ;AAEzB,SAASA,QAAQ,EAAEI,IAAI;AAEvB,OAAO,MAAMgC,QAAQ,GAAG;EACvBtC,UAAU;EACVC,IAAI;EACJmC,IAAI;EACJC;AACD,CAAC;AAED,OAAO,MAAME,IAAI,GAAGA,CAAA,KAAMxC,SAAS,CAAE;EAAEO,IAAI;EAAEJ,QAAQ;EAAEoC;AAAS,CAAE,CAAC"}
@@ -8,7 +8,8 @@ import removeAccents from 'remove-accents';
8
8
  /**
9
9
  * WordPress dependencies
10
10
  */
11
- import { RichText, __experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles, __experimentalGetColorClassesAndStyles as getColorClassesAndStyles } from '@wordpress/block-editor';
11
+ import { RichText, useBlockProps, __experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles, __experimentalGetColorClassesAndStyles as getColorClassesAndStyles } from '@wordpress/block-editor';
12
+ import { __unstableStripHTML as stripHTML } from '@wordpress/dom';
12
13
 
13
14
  /**
14
15
  * Get the name attribute from a content string.
@@ -18,10 +19,7 @@ import { RichText, __experimentalGetBorderClassesAndStyles as getBorderClassesAn
18
19
  * @return {string} Returns the slug.
19
20
  */
20
21
  const getNameFromLabel = content => {
21
- const dummyElement = document.createElement('div');
22
- dummyElement.innerHTML = content;
23
- // Get the slug.
24
- return removeAccents(dummyElement.innerText)
22
+ return removeAccents(stripHTML(content))
25
23
  // Convert anything that's not a letter or number to a hyphen.
26
24
  .replace(/[^\p{L}\p{N}]+/gu, '-')
27
25
  // Convert to lowercase
@@ -49,6 +47,7 @@ export default function save({
49
47
  };
50
48
  const inputClasses = classNames('wp-block-form-input__input', colorProps.className, borderProps.className);
51
49
  const TagName = type === 'textarea' ? 'textarea' : 'input';
50
+ const blockProps = useBlockProps.save();
52
51
  if ('hidden' === type) {
53
52
  return createElement("input", {
54
53
  type: type,
@@ -56,9 +55,9 @@ export default function save({
56
55
  value: value
57
56
  });
58
57
  }
59
-
60
- /* eslint-disable jsx-a11y/label-has-associated-control */
61
- return createElement("label", {
58
+ return createElement("div", {
59
+ ...blockProps
60
+ }, createElement("label", {
62
61
  className: classNames('wp-block-form-input__label', {
63
62
  'is-label-inline': inlineLabel
64
63
  })
@@ -74,7 +73,6 @@ export default function save({
74
73
  "aria-required": required,
75
74
  placeholder: placeholder || undefined,
76
75
  style: inputStyle
77
- }));
78
- /* eslint-enable jsx-a11y/label-has-associated-control */
76
+ })));
79
77
  }
80
78
  //# sourceMappingURL=save.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["classNames","removeAccents","RichText","__experimentalGetBorderClassesAndStyles","getBorderClassesAndStyles","__experimentalGetColorClassesAndStyles","getColorClassesAndStyles","getNameFromLabel","content","dummyElement","document","createElement","innerHTML","innerText","replace","toLowerCase","save","attributes","type","name","label","inlineLabel","required","placeholder","value","borderProps","colorProps","inputStyle","style","inputClasses","className","TagName","Content","undefined"],"sources":["@wordpress/block-library/src/form-input/save.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n} from '@wordpress/block-editor';\n\n/**\n * Get the name attribute from a content string.\n *\n * @param {string} content The block content.\n *\n * @return {string} Returns the slug.\n */\nconst getNameFromLabel = ( content ) => {\n\tconst dummyElement = document.createElement( 'div' );\n\tdummyElement.innerHTML = content;\n\t// Get the slug.\n\treturn (\n\t\tremoveAccents( dummyElement.innerText )\n\t\t\t// Convert anything that's not a letter or number to a hyphen.\n\t\t\t.replace( /[^\\p{L}\\p{N}]+/gu, '-' )\n\t\t\t// Convert to lowercase\n\t\t\t.toLowerCase()\n\t\t\t// Remove any remaining leading or trailing hyphens.\n\t\t\t.replace( /(^-+)|(-+$)/g, '' )\n\t);\n};\n\nexport default function save( { attributes } ) {\n\tconst { type, name, label, inlineLabel, required, placeholder, value } =\n\t\tattributes;\n\n\tconst borderProps = getBorderClassesAndStyles( attributes );\n\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\tconst inputStyle = {\n\t\t...borderProps.style,\n\t\t...colorProps.style,\n\t};\n\n\tconst inputClasses = classNames(\n\t\t'wp-block-form-input__input',\n\t\tcolorProps.className,\n\t\tborderProps.className\n\t);\n\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\n\tif ( 'hidden' === type ) {\n\t\treturn <input type={ type } name={ name } value={ value } />;\n\t}\n\n\t/* eslint-disable jsx-a11y/label-has-associated-control */\n\treturn (\n\t\t<label\n\t\t\tclassName={ classNames( 'wp-block-form-input__label', {\n\t\t\t\t'is-label-inline': inlineLabel,\n\t\t\t} ) }\n\t\t>\n\t\t\t<span className=\"wp-block-form-input__label-content\">\n\t\t\t\t<RichText.Content value={ label } />\n\t\t\t</span>\n\t\t\t<TagName\n\t\t\t\tclassName={ inputClasses }\n\t\t\t\ttype={ 'textarea' === type ? undefined : type }\n\t\t\t\tname={ name || getNameFromLabel( label ) }\n\t\t\t\trequired={ required }\n\t\t\t\taria-required={ required }\n\t\t\t\tplaceholder={ placeholder || undefined }\n\t\t\t\tstyle={ inputStyle }\n\t\t\t/>\n\t\t</label>\n\t);\n\t/* eslint-enable jsx-a11y/label-has-associated-control */\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;AACnC,OAAOC,aAAa,MAAM,gBAAgB;;AAE1C;AACA;AACA;AACA,SACCC,QAAQ,EACRC,uCAAuC,IAAIC,yBAAyB,EACpEC,sCAAsC,IAAIC,wBAAwB,QAC5D,yBAAyB;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,gBAAgB,GAAKC,OAAO,IAAM;EACvC,MAAMC,YAAY,GAAGC,QAAQ,CAACC,aAAa,CAAE,KAAM,CAAC;EACpDF,YAAY,CAACG,SAAS,GAAGJ,OAAO;EAChC;EACA,OACCP,aAAa,CAAEQ,YAAY,CAACI,SAAU;EACrC;EAAA,CACCC,OAAO,CAAE,kBAAkB,EAAE,GAAI;EAClC;EAAA,CACCC,WAAW,CAAC;EACb;EAAA,CACCD,OAAO,CAAE,cAAc,EAAE,EAAG,CAAC;AAEjC,CAAC;AAED,eAAe,SAASE,IAAIA,CAAE;EAAEC;AAAW,CAAC,EAAG;EAC9C,MAAM;IAAEC,IAAI;IAAEC,IAAI;IAAEC,KAAK;IAAEC,WAAW;IAAEC,QAAQ;IAAEC,WAAW;IAAEC;EAAM,CAAC,GACrEP,UAAU;EAEX,MAAMQ,WAAW,GAAGrB,yBAAyB,CAAEa,UAAW,CAAC;EAC3D,MAAMS,UAAU,GAAGpB,wBAAwB,CAAEW,UAAW,CAAC;EAEzD,MAAMU,UAAU,GAAG;IAClB,GAAGF,WAAW,CAACG,KAAK;IACpB,GAAGF,UAAU,CAACE;EACf,CAAC;EAED,MAAMC,YAAY,GAAG7B,UAAU,CAC9B,4BAA4B,EAC5B0B,UAAU,CAACI,SAAS,EACpBL,WAAW,CAACK,SACb,CAAC;EACD,MAAMC,OAAO,GAAGb,IAAI,KAAK,UAAU,GAAG,UAAU,GAAG,OAAO;EAE1D,IAAK,QAAQ,KAAKA,IAAI,EAAG;IACxB,OAAOP,aAAA;MAAOO,IAAI,EAAGA,IAAM;MAACC,IAAI,EAAGA,IAAM;MAACK,KAAK,EAAGA;IAAO,CAAE,CAAC;EAC7D;;EAEA;EACA,OACCb,aAAA;IACCmB,SAAS,EAAG9B,UAAU,CAAE,4BAA4B,EAAE;MACrD,iBAAiB,EAAEqB;IACpB,CAAE;EAAG,GAELV,aAAA;IAAMmB,SAAS,EAAC;EAAoC,GACnDnB,aAAA,CAACT,QAAQ,CAAC8B,OAAO;IAACR,KAAK,EAAGJ;EAAO,CAAE,CAC9B,CAAC,EACPT,aAAA,CAACoB,OAAO;IACPD,SAAS,EAAGD,YAAc;IAC1BX,IAAI,EAAG,UAAU,KAAKA,IAAI,GAAGe,SAAS,GAAGf,IAAM;IAC/CC,IAAI,EAAGA,IAAI,IAAIZ,gBAAgB,CAAEa,KAAM,CAAG;IAC1CE,QAAQ,EAAGA,QAAU;IACrB,iBAAgBA,QAAU;IAC1BC,WAAW,EAAGA,WAAW,IAAIU,SAAW;IACxCL,KAAK,EAAGD;EAAY,CACpB,CACK,CAAC;EAET;AACD"}
1
+ {"version":3,"names":["classNames","removeAccents","RichText","useBlockProps","__experimentalGetBorderClassesAndStyles","getBorderClassesAndStyles","__experimentalGetColorClassesAndStyles","getColorClassesAndStyles","__unstableStripHTML","stripHTML","getNameFromLabel","content","replace","toLowerCase","save","attributes","type","name","label","inlineLabel","required","placeholder","value","borderProps","colorProps","inputStyle","style","inputClasses","className","TagName","blockProps","createElement","Content","undefined"],"sources":["@wordpress/block-library/src/form-input/save.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n} from '@wordpress/block-editor';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\n/**\n * Get the name attribute from a content string.\n *\n * @param {string} content The block content.\n *\n * @return {string} Returns the slug.\n */\nconst getNameFromLabel = ( content ) => {\n\treturn (\n\t\tremoveAccents( stripHTML( content ) )\n\t\t\t// Convert anything that's not a letter or number to a hyphen.\n\t\t\t.replace( /[^\\p{L}\\p{N}]+/gu, '-' )\n\t\t\t// Convert to lowercase\n\t\t\t.toLowerCase()\n\t\t\t// Remove any remaining leading or trailing hyphens.\n\t\t\t.replace( /(^-+)|(-+$)/g, '' )\n\t);\n};\n\nexport default function save( { attributes } ) {\n\tconst { type, name, label, inlineLabel, required, placeholder, value } =\n\t\tattributes;\n\n\tconst borderProps = getBorderClassesAndStyles( attributes );\n\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\tconst inputStyle = {\n\t\t...borderProps.style,\n\t\t...colorProps.style,\n\t};\n\n\tconst inputClasses = classNames(\n\t\t'wp-block-form-input__input',\n\t\tcolorProps.className,\n\t\tborderProps.className\n\t);\n\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\n\tconst blockProps = useBlockProps.save();\n\n\tif ( 'hidden' === type ) {\n\t\treturn <input type={ type } name={ name } value={ value } />;\n\t}\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ /* eslint-disable jsx-a11y/label-has-associated-control */ }\n\t\t\t<label\n\t\t\t\tclassName={ classNames( 'wp-block-form-input__label', {\n\t\t\t\t\t'is-label-inline': inlineLabel,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<span className=\"wp-block-form-input__label-content\">\n\t\t\t\t\t<RichText.Content value={ label } />\n\t\t\t\t</span>\n\t\t\t\t<TagName\n\t\t\t\t\tclassName={ inputClasses }\n\t\t\t\t\ttype={ 'textarea' === type ? undefined : type }\n\t\t\t\t\tname={ name || getNameFromLabel( label ) }\n\t\t\t\t\trequired={ required }\n\t\t\t\t\taria-required={ required }\n\t\t\t\t\tplaceholder={ placeholder || undefined }\n\t\t\t\t\tstyle={ inputStyle }\n\t\t\t\t/>\n\t\t\t</label>\n\t\t\t{ /* eslint-enable jsx-a11y/label-has-associated-control */ }\n\t\t</div>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;AACnC,OAAOC,aAAa,MAAM,gBAAgB;;AAE1C;AACA;AACA;AACA,SACCC,QAAQ,EACRC,aAAa,EACbC,uCAAuC,IAAIC,yBAAyB,EACpEC,sCAAsC,IAAIC,wBAAwB,QAC5D,yBAAyB;AAChC,SAASC,mBAAmB,IAAIC,SAAS,QAAQ,gBAAgB;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,gBAAgB,GAAKC,OAAO,IAAM;EACvC,OACCV,aAAa,CAAEQ,SAAS,CAAEE,OAAQ,CAAE;EACnC;EAAA,CACCC,OAAO,CAAE,kBAAkB,EAAE,GAAI;EAClC;EAAA,CACCC,WAAW,CAAC;EACb;EAAA,CACCD,OAAO,CAAE,cAAc,EAAE,EAAG,CAAC;AAEjC,CAAC;AAED,eAAe,SAASE,IAAIA,CAAE;EAAEC;AAAW,CAAC,EAAG;EAC9C,MAAM;IAAEC,IAAI;IAAEC,IAAI;IAAEC,KAAK;IAAEC,WAAW;IAAEC,QAAQ;IAAEC,WAAW;IAAEC;EAAM,CAAC,GACrEP,UAAU;EAEX,MAAMQ,WAAW,GAAGlB,yBAAyB,CAAEU,UAAW,CAAC;EAC3D,MAAMS,UAAU,GAAGjB,wBAAwB,CAAEQ,UAAW,CAAC;EAEzD,MAAMU,UAAU,GAAG;IAClB,GAAGF,WAAW,CAACG,KAAK;IACpB,GAAGF,UAAU,CAACE;EACf,CAAC;EAED,MAAMC,YAAY,GAAG3B,UAAU,CAC9B,4BAA4B,EAC5BwB,UAAU,CAACI,SAAS,EACpBL,WAAW,CAACK,SACb,CAAC;EACD,MAAMC,OAAO,GAAGb,IAAI,KAAK,UAAU,GAAG,UAAU,GAAG,OAAO;EAE1D,MAAMc,UAAU,GAAG3B,aAAa,CAACW,IAAI,CAAC,CAAC;EAEvC,IAAK,QAAQ,KAAKE,IAAI,EAAG;IACxB,OAAOe,aAAA;MAAOf,IAAI,EAAGA,IAAM;MAACC,IAAI,EAAGA,IAAM;MAACK,KAAK,EAAGA;IAAO,CAAE,CAAC;EAC7D;EAEA,OACCS,aAAA;IAAA,GAAUD;EAAU,GAEnBC,aAAA;IACCH,SAAS,EAAG5B,UAAU,CAAE,4BAA4B,EAAE;MACrD,iBAAiB,EAAEmB;IACpB,CAAE;EAAG,GAELY,aAAA;IAAMH,SAAS,EAAC;EAAoC,GACnDG,aAAA,CAAC7B,QAAQ,CAAC8B,OAAO;IAACV,KAAK,EAAGJ;EAAO,CAAE,CAC9B,CAAC,EACPa,aAAA,CAACF,OAAO;IACPD,SAAS,EAAGD,YAAc;IAC1BX,IAAI,EAAG,UAAU,KAAKA,IAAI,GAAGiB,SAAS,GAAGjB,IAAM;IAC/CC,IAAI,EAAGA,IAAI,IAAIP,gBAAgB,CAAEQ,KAAM,CAAG;IAC1CE,QAAQ,EAAGA,QAAU;IACrB,iBAAgBA,QAAU;IAC1BC,WAAW,EAAGA,WAAW,IAAIY,SAAW;IACxCP,KAAK,EAAGD;EAAY,CACpB,CACK,CAEH,CAAC;AAER"}