@wordpress/block-library 8.18.1-next.5a1d1283.0 → 8.19.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 (381) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +1 -1
  3. package/build/block/edit.js +53 -2
  4. package/build/block/edit.js.map +1 -1
  5. package/build/button/edit.js +7 -4
  6. package/build/button/edit.js.map +1 -1
  7. package/build/button/index.js +11 -2
  8. package/build/button/index.js.map +1 -1
  9. package/build/button/save.js +10 -4
  10. package/build/button/save.js.map +1 -1
  11. package/build/buttons/edit.js +12 -3
  12. package/build/buttons/edit.js.map +1 -1
  13. package/build/code/edit.js +8 -2
  14. package/build/code/edit.js.map +1 -1
  15. package/build/code/index.js +7 -1
  16. package/build/code/index.js.map +1 -1
  17. package/build/column/index.js +1 -0
  18. package/build/column/index.js.map +1 -1
  19. package/build/columns/index.js +2 -0
  20. package/build/columns/index.js.map +1 -1
  21. package/build/file/edit.native.js +1 -1
  22. package/build/file/edit.native.js.map +1 -1
  23. package/build/file/index.js +2 -1
  24. package/build/file/index.js.map +1 -1
  25. package/build/file/utils/index.js +1 -15
  26. package/build/file/utils/index.js.map +1 -1
  27. package/build/file/view.js +14 -1
  28. package/build/file/view.js.map +1 -1
  29. package/build/footnotes/edit.js +12 -2
  30. package/build/footnotes/edit.js.map +1 -1
  31. package/build/gallery/edit.js +1 -1
  32. package/build/gallery/edit.js.map +1 -1
  33. package/build/group/edit.js +0 -1
  34. package/build/group/edit.js.map +1 -1
  35. package/build/group/index.js +4 -0
  36. package/build/group/index.js.map +1 -1
  37. package/build/heading/edit.js +0 -1
  38. package/build/heading/edit.js.map +1 -1
  39. package/build/heading/index.js +2 -0
  40. package/build/heading/index.js.map +1 -1
  41. package/build/heading/transforms.js +3 -6
  42. package/build/heading/transforms.js.map +1 -1
  43. package/build/image/deprecated.js +191 -7
  44. package/build/image/deprecated.js.map +1 -1
  45. package/build/image/edit.js +27 -12
  46. package/build/image/edit.js.map +1 -1
  47. package/build/image/image.js +75 -40
  48. package/build/image/image.js.map +1 -1
  49. package/build/image/index.js +7 -4
  50. package/build/image/index.js.map +1 -1
  51. package/build/image/{view-interactivity.js → view.js} +1 -1
  52. package/build/image/view.js.map +1 -0
  53. package/build/list/deprecated.js +93 -1
  54. package/build/list/deprecated.js.map +1 -1
  55. package/build/list/edit.js +10 -10
  56. package/build/list/edit.js.map +1 -1
  57. package/build/list/ordered-list-settings.js +10 -10
  58. package/build/list/ordered-list-settings.js.map +1 -1
  59. package/build/list/save.js +4 -2
  60. package/build/list/save.js.map +1 -1
  61. package/build/list/utils.js +21 -2
  62. package/build/list/utils.js.map +1 -1
  63. package/build/navigation/constants.js +1 -1
  64. package/build/navigation/constants.js.map +1 -1
  65. package/build/navigation/index.js +4 -2
  66. package/build/navigation/index.js.map +1 -1
  67. package/build/navigation/view.js +168 -82
  68. package/build/navigation/view.js.map +1 -1
  69. package/build/navigation-link/edit.js +3 -9
  70. package/build/navigation-link/edit.js.map +1 -1
  71. package/build/navigation-link/transforms.js +24 -0
  72. package/build/navigation-link/transforms.js.map +1 -1
  73. package/build/page-list/edit.js +2 -1
  74. package/build/page-list/edit.js.map +1 -1
  75. package/build/post-comments-form/edit.js +10 -2
  76. package/build/post-comments-form/edit.js.map +1 -1
  77. package/build/post-comments-form/form.js +5 -3
  78. package/build/post-comments-form/form.js.map +1 -1
  79. package/build/post-content/edit.js +8 -7
  80. package/build/post-content/edit.js.map +1 -1
  81. package/build/post-content/index.js +3 -0
  82. package/build/post-content/index.js.map +1 -1
  83. package/build/post-featured-image/overlay.js +2 -1
  84. package/build/post-featured-image/overlay.js.map +1 -1
  85. package/build/preformatted/edit.js +4 -1
  86. package/build/preformatted/edit.js.map +1 -1
  87. package/build/preformatted/index.js +1 -1
  88. package/build/preformatted/index.js.map +1 -1
  89. package/build/pullquote/deprecated.js +6 -7
  90. package/build/pullquote/deprecated.js.map +1 -1
  91. package/build/query/edit/enhanced-pagination-modal.js +56 -0
  92. package/build/query/edit/enhanced-pagination-modal.js.map +1 -0
  93. package/build/query/edit/inspector-controls/enhanced-pagination-control.js +42 -0
  94. package/build/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -0
  95. package/build/query/edit/inspector-controls/index.js +8 -25
  96. package/build/query/edit/inspector-controls/index.js.map +1 -1
  97. package/build/query/edit/query-content.js +8 -2
  98. package/build/query/edit/query-content.js.map +1 -1
  99. package/build/query/utils.js +19 -0
  100. package/build/query/utils.js.map +1 -1
  101. package/build/query/view.js +4 -5
  102. package/build/query/view.js.map +1 -1
  103. package/build/search/index.js +1 -0
  104. package/build/search/index.js.map +1 -1
  105. package/build/search/view.js +81 -150
  106. package/build/search/view.js.map +1 -1
  107. package/build/social-link/edit.native.js +3 -1
  108. package/build/social-link/edit.native.js.map +1 -1
  109. package/build/table/edit.js +7 -7
  110. package/build/table/edit.js.map +1 -1
  111. package/build/table-of-contents/edit.js +2 -130
  112. package/build/table-of-contents/edit.js.map +1 -1
  113. package/build/table-of-contents/hooks.js +145 -0
  114. package/build/table-of-contents/hooks.js.map +1 -0
  115. package/build/table-of-contents/index.js +2 -1
  116. package/build/table-of-contents/index.js.map +1 -1
  117. package/build/verse/edit.js +4 -1
  118. package/build/verse/edit.js.map +1 -1
  119. package/build/verse/index.js +1 -1
  120. package/build/verse/index.js.map +1 -1
  121. package/build-module/block/edit.js +54 -3
  122. package/build-module/block/edit.js.map +1 -1
  123. package/build-module/button/edit.js +7 -4
  124. package/build-module/button/edit.js.map +1 -1
  125. package/build-module/button/index.js +11 -2
  126. package/build-module/button/index.js.map +1 -1
  127. package/build-module/button/save.js +10 -4
  128. package/build-module/button/save.js.map +1 -1
  129. package/build-module/buttons/edit.js +12 -3
  130. package/build-module/buttons/edit.js.map +1 -1
  131. package/build-module/code/edit.js +8 -2
  132. package/build-module/code/edit.js.map +1 -1
  133. package/build-module/code/index.js +7 -1
  134. package/build-module/code/index.js.map +1 -1
  135. package/build-module/column/index.js +1 -0
  136. package/build-module/column/index.js.map +1 -1
  137. package/build-module/columns/index.js +2 -0
  138. package/build-module/columns/index.js.map +1 -1
  139. package/build-module/file/edit.native.js +1 -1
  140. package/build-module/file/edit.native.js.map +1 -1
  141. package/build-module/file/index.js +2 -1
  142. package/build-module/file/index.js.map +1 -1
  143. package/build-module/file/utils/index.js +0 -13
  144. package/build-module/file/utils/index.js.map +1 -1
  145. package/build-module/file/view.js +14 -2
  146. package/build-module/file/view.js.map +1 -1
  147. package/build-module/footnotes/edit.js +12 -2
  148. package/build-module/footnotes/edit.js.map +1 -1
  149. package/build-module/gallery/edit.js +1 -1
  150. package/build-module/gallery/edit.js.map +1 -1
  151. package/build-module/group/edit.js +0 -1
  152. package/build-module/group/edit.js.map +1 -1
  153. package/build-module/group/index.js +4 -0
  154. package/build-module/group/index.js.map +1 -1
  155. package/build-module/heading/edit.js +0 -1
  156. package/build-module/heading/edit.js.map +1 -1
  157. package/build-module/heading/index.js +2 -0
  158. package/build-module/heading/index.js.map +1 -1
  159. package/build-module/heading/transforms.js +3 -6
  160. package/build-module/heading/transforms.js.map +1 -1
  161. package/build-module/image/deprecated.js +191 -7
  162. package/build-module/image/deprecated.js.map +1 -1
  163. package/build-module/image/edit.js +27 -12
  164. package/build-module/image/edit.js.map +1 -1
  165. package/build-module/image/image.js +77 -42
  166. package/build-module/image/image.js.map +1 -1
  167. package/build-module/image/index.js +7 -4
  168. package/build-module/image/index.js.map +1 -1
  169. package/build-module/image/{view-interactivity.js → view.js} +1 -1
  170. package/build-module/image/view.js.map +1 -0
  171. package/build-module/list/deprecated.js +95 -3
  172. package/build-module/list/deprecated.js.map +1 -1
  173. package/build-module/list/edit.js +10 -10
  174. package/build-module/list/edit.js.map +1 -1
  175. package/build-module/list/ordered-list-settings.js +10 -10
  176. package/build-module/list/ordered-list-settings.js.map +1 -1
  177. package/build-module/list/save.js +4 -2
  178. package/build-module/list/save.js.map +1 -1
  179. package/build-module/list/utils.js +20 -2
  180. package/build-module/list/utils.js.map +1 -1
  181. package/build-module/navigation/constants.js +1 -1
  182. package/build-module/navigation/constants.js.map +1 -1
  183. package/build-module/navigation/index.js +4 -2
  184. package/build-module/navigation/index.js.map +1 -1
  185. package/build-module/navigation/view.js +168 -83
  186. package/build-module/navigation/view.js.map +1 -1
  187. package/build-module/navigation-link/edit.js +3 -9
  188. package/build-module/navigation-link/edit.js.map +1 -1
  189. package/build-module/navigation-link/transforms.js +24 -0
  190. package/build-module/navigation-link/transforms.js.map +1 -1
  191. package/build-module/page-list/edit.js +2 -1
  192. package/build-module/page-list/edit.js.map +1 -1
  193. package/build-module/post-comments-form/edit.js +10 -2
  194. package/build-module/post-comments-form/edit.js.map +1 -1
  195. package/build-module/post-comments-form/form.js +5 -3
  196. package/build-module/post-comments-form/form.js.map +1 -1
  197. package/build-module/post-content/edit.js +8 -7
  198. package/build-module/post-content/edit.js.map +1 -1
  199. package/build-module/post-content/index.js +3 -0
  200. package/build-module/post-content/index.js.map +1 -1
  201. package/build-module/post-featured-image/overlay.js +2 -1
  202. package/build-module/post-featured-image/overlay.js.map +1 -1
  203. package/build-module/preformatted/edit.js +4 -1
  204. package/build-module/preformatted/edit.js.map +1 -1
  205. package/build-module/preformatted/index.js +1 -1
  206. package/build-module/preformatted/index.js.map +1 -1
  207. package/build-module/pullquote/deprecated.js +6 -7
  208. package/build-module/pullquote/deprecated.js.map +1 -1
  209. package/build-module/query/edit/enhanced-pagination-modal.js +50 -0
  210. package/build-module/query/edit/enhanced-pagination-modal.js.map +1 -0
  211. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js +35 -0
  212. package/build-module/query/edit/inspector-controls/enhanced-pagination-control.js.map +1 -0
  213. package/build-module/query/edit/inspector-controls/index.js +9 -26
  214. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  215. package/build-module/query/edit/query-content.js +8 -2
  216. package/build-module/query/edit/query-content.js.map +1 -1
  217. package/build-module/query/utils.js +17 -0
  218. package/build-module/query/utils.js.map +1 -1
  219. package/build-module/query/view.js +4 -5
  220. package/build-module/query/view.js.map +1 -1
  221. package/build-module/search/index.js +1 -0
  222. package/build-module/search/index.js.map +1 -1
  223. package/build-module/search/view.js +81 -151
  224. package/build-module/search/view.js.map +1 -1
  225. package/build-module/social-link/edit.native.js +3 -1
  226. package/build-module/social-link/edit.native.js.map +1 -1
  227. package/build-module/table/edit.js +7 -7
  228. package/build-module/table/edit.js.map +1 -1
  229. package/build-module/table-of-contents/edit.js +3 -131
  230. package/build-module/table-of-contents/edit.js.map +1 -1
  231. package/build-module/table-of-contents/hooks.js +137 -0
  232. package/build-module/table-of-contents/hooks.js.map +1 -0
  233. package/build-module/table-of-contents/index.js +2 -1
  234. package/build-module/table-of-contents/index.js.map +1 -1
  235. package/build-module/verse/edit.js +4 -1
  236. package/build-module/verse/edit.js.map +1 -1
  237. package/build-module/verse/index.js +1 -1
  238. package/build-module/verse/index.js.map +1 -1
  239. package/build-style/cover/style-rtl.css +9 -0
  240. package/build-style/cover/style.css +9 -0
  241. package/build-style/editor-rtl.css +15 -9
  242. package/build-style/editor.css +15 -9
  243. package/build-style/file/style-rtl.css +5 -0
  244. package/build-style/file/style.css +5 -0
  245. package/build-style/heading/style-rtl.css +13 -0
  246. package/build-style/heading/style.css +13 -0
  247. package/build-style/navigation-link/editor-rtl.css +0 -9
  248. package/build-style/navigation-link/editor.css +0 -9
  249. package/build-style/paragraph/editor-rtl.css +5 -0
  250. package/build-style/paragraph/editor.css +5 -0
  251. package/build-style/paragraph/style-rtl.css +5 -0
  252. package/build-style/paragraph/style.css +5 -0
  253. package/build-style/post-navigation-link/style-rtl.css +3 -0
  254. package/build-style/post-navigation-link/style.css +3 -0
  255. package/build-style/query/editor-rtl.css +10 -0
  256. package/build-style/query/editor.css +10 -0
  257. package/build-style/query/style-rtl.css +1 -1
  258. package/build-style/query/style.css +1 -1
  259. package/build-style/reset-rtl.css +27 -27
  260. package/build-style/reset.css +27 -27
  261. package/build-style/style-rtl.css +35 -0
  262. package/build-style/style.css +35 -0
  263. package/package.json +32 -33
  264. package/src/audio/test/__snapshots__/edit.native.js.snap +78 -106
  265. package/src/avatar/index.php +2 -2
  266. package/src/block/edit.js +58 -2
  267. package/src/block/test/edit.native.js +2 -3
  268. package/src/button/block.json +11 -2
  269. package/src/button/edit.js +27 -11
  270. package/src/button/save.js +10 -4
  271. package/src/buttons/edit.js +13 -3
  272. package/src/buttons/test/edit.native.js +28 -24
  273. package/src/calendar/index.php +2 -2
  274. package/src/code/block.json +2 -1
  275. package/src/code/edit.js +13 -1
  276. package/src/code/index.js +5 -0
  277. package/src/column/block.json +1 -0
  278. package/src/columns/block.json +2 -0
  279. package/src/comment-template/index.php +1 -1
  280. package/src/comments-pagination-next/index.php +1 -1
  281. package/src/comments-pagination-previous/index.php +1 -1
  282. package/src/cover/style.scss +12 -1
  283. package/src/cover/test/edit.js +7 -7
  284. package/src/cover/test/edit.native.js +18 -27
  285. package/src/embed/test/index.native.js +30 -45
  286. package/src/file/block.json +2 -1
  287. package/src/file/edit.native.js +1 -1
  288. package/src/file/index.php +19 -21
  289. package/src/file/style.scss +6 -1
  290. package/src/file/test/__snapshots__/edit.native.js.snap +162 -218
  291. package/src/file/utils/index.js +0 -15
  292. package/src/file/view.js +14 -5
  293. package/src/footnotes/edit.js +13 -1
  294. package/src/gallery/edit.js +1 -1
  295. package/src/gallery/index.php +1 -1
  296. package/src/group/block.json +4 -0
  297. package/src/group/edit.js +0 -1
  298. package/src/heading/block.json +2 -0
  299. package/src/heading/edit.js +0 -1
  300. package/src/heading/style.scss +4 -0
  301. package/src/heading/transforms.js +1 -6
  302. package/src/image/block.json +7 -4
  303. package/src/image/deprecated.js +210 -7
  304. package/src/image/edit.js +43 -29
  305. package/src/image/image.js +86 -43
  306. package/src/image/index.php +251 -28
  307. package/src/latest-posts/index.php +1 -1
  308. package/src/list/deprecated.js +84 -3
  309. package/src/list/edit.js +6 -3
  310. package/src/list/ordered-list-settings.js +20 -5
  311. package/src/list/save.js +10 -1
  312. package/src/list/test/edit.native.js +2 -4
  313. package/src/list/utils.js +22 -1
  314. package/src/navigation/block.json +4 -2
  315. package/src/navigation/constants.js +1 -0
  316. package/src/navigation/index.php +85 -123
  317. package/src/navigation/view.js +192 -96
  318. package/src/navigation-link/edit.js +21 -36
  319. package/src/navigation-link/editor.scss +0 -8
  320. package/src/navigation-link/transforms.js +22 -0
  321. package/src/page-list/edit.js +2 -1
  322. package/src/paragraph/editor.scss +5 -0
  323. package/src/paragraph/style.scss +5 -0
  324. package/src/pattern/index.php +2 -2
  325. package/src/post-comments-form/edit.js +10 -0
  326. package/src/post-comments-form/form.js +7 -1
  327. package/src/post-content/block.json +3 -0
  328. package/src/post-content/edit.js +14 -6
  329. package/src/post-excerpt/index.php +2 -2
  330. package/src/post-featured-image/index.php +2 -2
  331. package/src/post-featured-image/overlay.js +1 -0
  332. package/src/post-navigation-link/index.php +0 -5
  333. package/src/post-navigation-link/style.scss +4 -0
  334. package/src/post-template/index.php +1 -1
  335. package/src/post-terms/index.php +5 -2
  336. package/src/preformatted/edit.js +5 -0
  337. package/src/preformatted/index.js +1 -1
  338. package/src/pullquote/deprecated.js +8 -13
  339. package/src/query/edit/enhanced-pagination-modal.js +65 -0
  340. package/src/query/edit/inspector-controls/enhanced-pagination-control.js +49 -0
  341. package/src/query/edit/inspector-controls/index.js +9 -45
  342. package/src/query/edit/query-content.js +8 -0
  343. package/src/query/editor.scss +10 -0
  344. package/src/query/index.php +29 -16
  345. package/src/query/style.scss +2 -2
  346. package/src/query/utils.js +22 -0
  347. package/src/query/view.js +5 -5
  348. package/src/query-pagination-next/index.php +1 -1
  349. package/src/query-pagination-previous/index.php +1 -1
  350. package/src/reset.scss +1 -1
  351. package/src/search/block.json +1 -0
  352. package/src/search/index.php +45 -4
  353. package/src/search/test/__snapshots__/edit.native.js.snap +265 -363
  354. package/src/search/view.js +70 -169
  355. package/src/social-link/edit.native.js +1 -1
  356. package/src/social-link/editor.native.scss +4 -0
  357. package/src/table/edit.js +21 -19
  358. package/src/table-of-contents/block.json +2 -1
  359. package/src/table-of-contents/edit.js +5 -162
  360. package/src/table-of-contents/hooks.js +156 -0
  361. package/src/verse/edit.js +5 -0
  362. package/src/verse/index.js +1 -1
  363. package/src/verse/test/edit.native.js +2 -3
  364. package/build/file/view-interactivity.js +0 -22
  365. package/build/file/view-interactivity.js.map +0 -1
  366. package/build/image/view-interactivity.js.map +0 -1
  367. package/build/navigation/view-interactivity.js +0 -172
  368. package/build/navigation/view-interactivity.js.map +0 -1
  369. package/build/navigation/view-modal.js +0 -115
  370. package/build/navigation/view-modal.js.map +0 -1
  371. package/build-module/file/view-interactivity.js +0 -18
  372. package/build-module/file/view-interactivity.js.map +0 -1
  373. package/build-module/image/view-interactivity.js.map +0 -1
  374. package/build-module/navigation/view-interactivity.js +0 -169
  375. package/build-module/navigation/view-interactivity.js.map +0 -1
  376. package/build-module/navigation/view-modal.js +0 -112
  377. package/build-module/navigation/view-modal.js.map +0 -1
  378. package/src/file/view-interactivity.js +0 -18
  379. package/src/navigation/view-interactivity.js +0 -196
  380. package/src/navigation/view-modal.js +0 -127
  381. /package/src/image/{view-interactivity.js → view.js} +0 -0
package/CHANGELOG.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 8.19.0 (2023-09-20)
6
+
5
7
  ## 8.18.0 (2023-08-31)
6
8
 
7
9
  ## 8.17.0 (2023-08-16)
package/README.md CHANGED
@@ -83,7 +83,7 @@ To find out more about contributing to this package or Gutenberg as a whole, ple
83
83
  }
84
84
  ```
85
85
 
86
- 2. Register the block in the `gutenberg_reregister_core_block_types()` function of the [`lib/blocks.php`](https://github.com/WordPress/gutenberg/blob/trunk/lib/blocks.php) file. Add it to the `block_folders` array if it's a [static block](https://developer.wordpress.org/block-editor/explanations/glossary/#static-block) or to the `block_names` array if it's a [dynamic block](https://developer.wordpress.org/block-editor/explanations/glossary/#dynamic-block).
86
+ 2. Register the block in the `gutenberg_reregister_core_block_types()` function of the [`lib/blocks.php`](https://github.com/WordPress/gutenberg/blob/trunk/lib/blocks.php) file. Add it to the `block_folders` array if it's a [static block](https://developer.wordpress.org/block-editor/getting-started/glossary/#static-block) or to the `block_names` array if it's a [dynamic block](https://developer.wordpress.org/block-editor/getting-started/glossary/#dynamic-block).
87
87
 
88
88
  3. Add `init.js` file to the directory of the new block:
89
89
 
@@ -1,23 +1,64 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.default = ReusableBlockEdit;
7
8
  var _element = require("@wordpress/element");
9
+ var _classnames = _interopRequireDefault(require("classnames"));
8
10
  var _coreData = require("@wordpress/core-data");
9
11
  var _components = require("@wordpress/components");
10
12
  var _i18n = require("@wordpress/i18n");
11
13
  var _blockEditor = require("@wordpress/block-editor");
14
+ var _lockUnlock = require("../lock-unlock");
15
+ /**
16
+ * External dependencies
17
+ */
18
+
12
19
  /**
13
20
  * WordPress dependencies
14
21
  */
15
22
 
23
+ /**
24
+ * Internal dependencies
25
+ */
26
+
27
+ const fullAlignments = ['full', 'wide', 'left', 'right'];
28
+ const useInferredLayout = (blocks, parentLayout) => {
29
+ const initialInferredAlignmentRef = (0, _element.useRef)();
30
+ return (0, _element.useMemo)(() => {
31
+ // Exit early if the pattern's blocks haven't loaded yet.
32
+ if (!blocks?.length) {
33
+ return {};
34
+ }
35
+ let alignment = initialInferredAlignmentRef.current;
36
+
37
+ // Only track the initial alignment so that temporarily removed
38
+ // alignments can be reapplied.
39
+ if (alignment === undefined) {
40
+ const isConstrained = parentLayout?.type === 'constrained';
41
+ const hasFullAlignment = blocks.some(block => fullAlignments.includes(block.attributes.align));
42
+ alignment = isConstrained && hasFullAlignment ? 'full' : null;
43
+ initialInferredAlignmentRef.current = alignment;
44
+ }
45
+ const layout = alignment ? parentLayout : undefined;
46
+ return {
47
+ alignment,
48
+ layout
49
+ };
50
+ }, [blocks, parentLayout]);
51
+ };
16
52
  function ReusableBlockEdit({
53
+ name,
17
54
  attributes: {
18
55
  ref
19
- }
56
+ },
57
+ __unstableParentLayout: parentLayout
20
58
  }) {
59
+ const {
60
+ useLayoutClasses
61
+ } = (0, _lockUnlock.unlock)(_blockEditor.privateApis);
21
62
  const hasAlreadyRendered = (0, _blockEditor.__experimentalUseHasRecursion)(ref);
22
63
  const {
23
64
  record,
@@ -28,11 +69,21 @@ function ReusableBlockEdit({
28
69
  id: ref
29
70
  });
30
71
  const [title, setTitle] = (0, _coreData.useEntityProp)('postType', 'wp_block', 'title', ref);
72
+ const {
73
+ alignment,
74
+ layout
75
+ } = useInferredLayout(blocks, parentLayout);
76
+ const layoutClasses = useLayoutClasses({
77
+ layout
78
+ }, name);
31
79
  const blockProps = (0, _blockEditor.useBlockProps)({
32
- className: 'block-library-block__reusable-block-container'
80
+ className: (0, _classnames.default)('block-library-block__reusable-block-container', layout && layoutClasses, {
81
+ [`align${alignment}`]: alignment
82
+ })
33
83
  });
34
84
  const innerBlocksProps = (0, _blockEditor.useInnerBlocksProps)(blockProps, {
35
85
  value: blocks,
86
+ layout,
36
87
  onInput,
37
88
  onChange,
38
89
  renderAppender: blocks?.length ? undefined : _blockEditor.InnerBlocks.ButtonBlockAppender
@@ -1 +1 @@
1
- {"version":3,"names":["_coreData","require","_components","_i18n","_blockEditor","ReusableBlockEdit","attributes","ref","hasAlreadyRendered","useHasRecursion","record","hasResolved","useEntityRecord","isMissing","blocks","onInput","onChange","useEntityBlockEditor","id","title","setTitle","useEntityProp","blockProps","useBlockProps","className","innerBlocksProps","useInnerBlocksProps","value","renderAppender","length","undefined","InnerBlocks","ButtonBlockAppender","_element","createElement","Warning","__","Placeholder","Spinner","__experimentalRecursionProvider","uniqueId","InspectorControls","PanelBody","TextControl","__nextHasNoMarginBottom","label"],"sources":["@wordpress/block-library/src/block/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseEntityBlockEditor,\n\tuseEntityProp,\n\tuseEntityRecord,\n} from '@wordpress/core-data';\nimport {\n\tPlaceholder,\n\tSpinner,\n\tTextControl,\n\tPanelBody,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseInnerBlocksProps,\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n\tInnerBlocks,\n\tInspectorControls,\n\tuseBlockProps,\n\tWarning,\n} from '@wordpress/block-editor';\n\nexport default function ReusableBlockEdit( { attributes: { ref } } ) {\n\tconst hasAlreadyRendered = useHasRecursion( ref );\n\tconst { record, hasResolved } = useEntityRecord(\n\t\t'postType',\n\t\t'wp_block',\n\t\tref\n\t);\n\tconst isMissing = hasResolved && ! record;\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\t'wp_block',\n\t\t{ id: ref }\n\t);\n\n\tconst [ title, setTitle ] = useEntityProp(\n\t\t'postType',\n\t\t'wp_block',\n\t\t'title',\n\t\tref\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: 'block-library-block__reusable-block-container',\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tvalue: blocks,\n\t\tonInput,\n\t\tonChange,\n\t\trenderAppender: blocks?.length\n\t\t\t? undefined\n\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t} );\n\n\tif ( hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( isMissing ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block has been deleted or is unavailable.' ) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( ! hasResolved ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Placeholder>\n\t\t\t\t\t<Spinner />\n\t\t\t\t</Placeholder>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ ref }>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</RecursionProvider>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,SAAA,GAAAC,OAAA;AAKA,IAAAC,WAAA,GAAAD,OAAA;AAMA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAfA;AACA;AACA;;AAuBe,SAASI,iBAAiBA,CAAE;EAAEC,UAAU,EAAE;IAAEC;EAAI;AAAE,CAAC,EAAG;EACpE,MAAMC,kBAAkB,GAAG,IAAAC,0CAAe,EAAEF,GAAI,CAAC;EACjD,MAAM;IAAEG,MAAM;IAAEC;EAAY,CAAC,GAAG,IAAAC,yBAAe,EAC9C,UAAU,EACV,UAAU,EACVL,GACD,CAAC;EACD,MAAMM,SAAS,GAAGF,WAAW,IAAI,CAAED,MAAM;EAEzC,MAAM,CAAEI,MAAM,EAAEC,OAAO,EAAEC,QAAQ,CAAE,GAAG,IAAAC,8BAAoB,EACzD,UAAU,EACV,UAAU,EACV;IAAEC,EAAE,EAAEX;EAAI,CACX,CAAC;EAED,MAAM,CAAEY,KAAK,EAAEC,QAAQ,CAAE,GAAG,IAAAC,uBAAa,EACxC,UAAU,EACV,UAAU,EACV,OAAO,EACPd,GACD,CAAC;EAED,MAAMe,UAAU,GAAG,IAAAC,0BAAa,EAAE;IACjCC,SAAS,EAAE;EACZ,CAAE,CAAC;EAEH,MAAMC,gBAAgB,GAAG,IAAAC,gCAAmB,EAAEJ,UAAU,EAAE;IACzDK,KAAK,EAAEb,MAAM;IACbC,OAAO;IACPC,QAAQ;IACRY,cAAc,EAAEd,MAAM,EAAEe,MAAM,GAC3BC,SAAS,GACTC,wBAAW,CAACC;EAChB,CAAE,CAAC;EAEH,IAAKxB,kBAAkB,EAAG;IACzB,OACC,IAAAyB,QAAA,CAAAC,aAAA;MAAA,GAAUZ;IAAU,GACnB,IAAAW,QAAA,CAAAC,aAAA,EAAC9B,YAAA,CAAA+B,OAAO,QACL,IAAAC,QAAE,EAAE,yCAA0C,CACxC,CACL,CAAC;EAER;EAEA,IAAKvB,SAAS,EAAG;IAChB,OACC,IAAAoB,QAAA,CAAAC,aAAA;MAAA,GAAUZ;IAAU,GACnB,IAAAW,QAAA,CAAAC,aAAA,EAAC9B,YAAA,CAAA+B,OAAO,QACL,IAAAC,QAAE,EAAE,2CAA4C,CAC1C,CACL,CAAC;EAER;EAEA,IAAK,CAAEzB,WAAW,EAAG;IACpB,OACC,IAAAsB,QAAA,CAAAC,aAAA;MAAA,GAAUZ;IAAU,GACnB,IAAAW,QAAA,CAAAC,aAAA,EAAChC,WAAA,CAAAmC,WAAW,QACX,IAAAJ,QAAA,CAAAC,aAAA,EAAChC,WAAA,CAAAoC,OAAO,MAAE,CACE,CACT,CAAC;EAER;EAEA,OACC,IAAAL,QAAA,CAAAC,aAAA,EAAC9B,YAAA,CAAAmC,+BAAiB;IAACC,QAAQ,EAAGjC;EAAK,GAClC,IAAA0B,QAAA,CAAAC,aAAA,EAAC9B,YAAA,CAAAqC,iBAAiB,QACjB,IAAAR,QAAA,CAAAC,aAAA,EAAChC,WAAA,CAAAwC,SAAS,QACT,IAAAT,QAAA,CAAAC,aAAA,EAAChC,WAAA,CAAAyC,WAAW;IACXC,uBAAuB;IACvBC,KAAK,EAAG,IAAAT,QAAE,EAAE,MAAO,CAAG;IACtBT,KAAK,EAAGR,KAAO;IACfH,QAAQ,EAAGI;EAAU,CACrB,CACS,CACO,CAAC,EACpB,IAAAa,QAAA,CAAAC,aAAA;IAAA,GAAUT;EAAgB,CAAI,CACZ,CAAC;AAEtB"}
1
+ {"version":3,"names":["_element","require","_classnames","_interopRequireDefault","_coreData","_components","_i18n","_blockEditor","_lockUnlock","fullAlignments","useInferredLayout","blocks","parentLayout","initialInferredAlignmentRef","useRef","useMemo","length","alignment","current","undefined","isConstrained","type","hasFullAlignment","some","block","includes","attributes","align","layout","ReusableBlockEdit","name","ref","__unstableParentLayout","useLayoutClasses","unlock","blockEditorPrivateApis","hasAlreadyRendered","useHasRecursion","record","hasResolved","useEntityRecord","isMissing","onInput","onChange","useEntityBlockEditor","id","title","setTitle","useEntityProp","layoutClasses","blockProps","useBlockProps","className","classnames","innerBlocksProps","useInnerBlocksProps","value","renderAppender","InnerBlocks","ButtonBlockAppender","createElement","Warning","__","Placeholder","Spinner","__experimentalRecursionProvider","uniqueId","InspectorControls","PanelBody","TextControl","__nextHasNoMarginBottom","label"],"sources":["@wordpress/block-library/src/block/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseEntityBlockEditor,\n\tuseEntityProp,\n\tuseEntityRecord,\n} from '@wordpress/core-data';\nimport {\n\tPlaceholder,\n\tSpinner,\n\tTextControl,\n\tPanelBody,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseInnerBlocksProps,\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n\tInnerBlocks,\n\tInspectorControls,\n\tuseBlockProps,\n\tWarning,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { useRef, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\n\nconst fullAlignments = [ 'full', 'wide', 'left', 'right' ];\n\nconst useInferredLayout = ( blocks, parentLayout ) => {\n\tconst initialInferredAlignmentRef = useRef();\n\n\treturn useMemo( () => {\n\t\t// Exit early if the pattern's blocks haven't loaded yet.\n\t\tif ( ! blocks?.length ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet alignment = initialInferredAlignmentRef.current;\n\n\t\t// Only track the initial alignment so that temporarily removed\n\t\t// alignments can be reapplied.\n\t\tif ( alignment === undefined ) {\n\t\t\tconst isConstrained = parentLayout?.type === 'constrained';\n\t\t\tconst hasFullAlignment = blocks.some( ( block ) =>\n\t\t\t\tfullAlignments.includes( block.attributes.align )\n\t\t\t);\n\n\t\t\talignment = isConstrained && hasFullAlignment ? 'full' : null;\n\t\t\tinitialInferredAlignmentRef.current = alignment;\n\t\t}\n\n\t\tconst layout = alignment ? parentLayout : undefined;\n\n\t\treturn { alignment, layout };\n\t}, [ blocks, parentLayout ] );\n};\n\nexport default function ReusableBlockEdit( {\n\tname,\n\tattributes: { ref },\n\t__unstableParentLayout: parentLayout,\n} ) {\n\tconst { useLayoutClasses } = unlock( blockEditorPrivateApis );\n\tconst hasAlreadyRendered = useHasRecursion( ref );\n\tconst { record, hasResolved } = useEntityRecord(\n\t\t'postType',\n\t\t'wp_block',\n\t\tref\n\t);\n\tconst isMissing = hasResolved && ! record;\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\t'wp_block',\n\t\t{ id: ref }\n\t);\n\n\tconst [ title, setTitle ] = useEntityProp(\n\t\t'postType',\n\t\t'wp_block',\n\t\t'title',\n\t\tref\n\t);\n\n\tconst { alignment, layout } = useInferredLayout( blocks, parentLayout );\n\tconst layoutClasses = useLayoutClasses( { layout }, name );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames(\n\t\t\t'block-library-block__reusable-block-container',\n\t\t\tlayout && layoutClasses,\n\t\t\t{ [ `align${ alignment }` ]: alignment }\n\t\t),\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tvalue: blocks,\n\t\tlayout,\n\t\tonInput,\n\t\tonChange,\n\t\trenderAppender: blocks?.length\n\t\t\t? undefined\n\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t} );\n\n\tif ( hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( isMissing ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>\n\t\t\t\t\t{ __( 'Block has been deleted or is unavailable.' ) }\n\t\t\t\t</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( ! hasResolved ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Placeholder>\n\t\t\t\t\t<Spinner />\n\t\t\t\t</Placeholder>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ ref }>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\tonChange={ setTitle }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</RecursionProvider>\n\t);\n}\n"],"mappings":"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"}
@@ -60,6 +60,7 @@ function ButtonEdit(props) {
60
60
  mergeBlocks
61
61
  } = props;
62
62
  const {
63
+ tagName,
63
64
  textAlign,
64
65
  linkTarget,
65
66
  placeholder,
@@ -69,6 +70,7 @@ function ButtonEdit(props) {
69
70
  url,
70
71
  width
71
72
  } = attributes;
73
+ const TagName = tagName || 'a';
72
74
  function onToggleOpenInNewTab(value) {
73
75
  const newLinkTarget = value ? '_blank' : undefined;
74
76
  let updatedRel = rel;
@@ -112,6 +114,7 @@ function ButtonEdit(props) {
112
114
  const [isEditingURL, setIsEditingURL] = (0, _element.useState)(false);
113
115
  const isURLSet = !!url;
114
116
  const opensInNewTab = linkTarget === '_blank';
117
+ const isLinkTag = 'a' === TagName;
115
118
  function startEditing(event) {
116
119
  event.preventDefault();
117
120
  setIsEditingURL(true);
@@ -176,20 +179,20 @@ function ButtonEdit(props) {
176
179
  textAlign: nextAlign
177
180
  });
178
181
  }
179
- }), !isURLSet && (0, _element.createElement)(_components.ToolbarButton, {
182
+ }), !isURLSet && isLinkTag && (0, _element.createElement)(_components.ToolbarButton, {
180
183
  name: "link",
181
184
  icon: _icons.link,
182
185
  title: (0, _i18n.__)('Link'),
183
186
  shortcut: _keycodes.displayShortcut.primary('k'),
184
187
  onClick: startEditing
185
- }), isURLSet && (0, _element.createElement)(_components.ToolbarButton, {
188
+ }), isURLSet && isLinkTag && (0, _element.createElement)(_components.ToolbarButton, {
186
189
  name: "link",
187
190
  icon: _icons.linkOff,
188
191
  title: (0, _i18n.__)('Unlink'),
189
192
  shortcut: _keycodes.displayShortcut.primaryShift('k'),
190
193
  onClick: unlink,
191
194
  isActive: true
192
- })), isSelected && (isEditingURL || isURLSet) && (0, _element.createElement)(_components.Popover, {
195
+ })), isLinkTag && isSelected && (isEditingURL || isURLSet) && (0, _element.createElement)(_components.Popover, {
193
196
  placement: "bottom",
194
197
  onClose: () => {
195
198
  setIsEditingURL(false);
@@ -222,7 +225,7 @@ function ButtonEdit(props) {
222
225
  setAttributes: setAttributes
223
226
  })), (0, _element.createElement)(_blockEditor.InspectorControls, {
224
227
  group: "advanced"
225
- }, (0, _element.createElement)(_components.TextControl, {
228
+ }, isLinkTag && (0, _element.createElement)(_components.TextControl, {
226
229
  __nextHasNoMarginBottom: true,
227
230
  label: (0, _i18n.__)('Link rel'),
228
231
  value: rel || '',
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_classnames","_interopRequireDefault","_i18n","_components","_blockEditor","_keycodes","_icons","_blocks","_compose","_url","NEW_TAB_REL","WidthPanel","selectedWidth","setAttributes","handleChange","newWidth","width","undefined","createElement","PanelBody","title","__","ButtonGroup","map","widthValue","Button","key","size","variant","onClick","ButtonEdit","props","attributes","className","isSelected","onReplace","mergeBlocks","textAlign","linkTarget","placeholder","rel","style","text","url","onToggleOpenInNewTab","value","newLinkTarget","updatedRel","setButtonText","newText","replace","onKeyDown","event","isKeyboardEvent","primary","startEditing","primaryShift","unlink","richTextRef","current","focus","popoverAnchor","setPopoverAnchor","useState","borderProps","useBorderProps","colorProps","useColorProps","spacingProps","useSpacingProps","ref","useRef","blockProps","useBlockProps","useMergeRefs","isEditingURL","setIsEditingURL","isURLSet","opensInNewTab","preventDefault","useEffect","linkValue","useMemo","Fragment","classnames","fontSize","RichText","onChange","withoutInteractiveFormatting","border","radius","__experimentalGetElementClassName","onSplit","createBlock","onMerge","identifier","BlockControls","group","AlignmentControl","nextAlign","ToolbarButton","name","icon","link","shortcut","displayShortcut","linkOff","isActive","Popover","placement","onClose","anchor","focusOnMount","__unstableSlotName","shift","__experimentalLinkControl","newURL","newOpensInNewTab","prependHTTP","onRemove","forceIsEditingLink","InspectorControls","TextControl","__nextHasNoMarginBottom","label","newRel","_default","exports","default"],"sources":["@wordpress/block-library/src/button/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useEffect, useState, useRef, useMemo } from '@wordpress/element';\nimport {\n\tButton,\n\tButtonGroup,\n\tPanelBody,\n\tTextControl,\n\tToolbarButton,\n\tPopover,\n} from '@wordpress/components';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n\t__experimentalGetSpacingClassesAndStyles as useSpacingProps,\n\t__experimentalLinkControl as LinkControl,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\nimport { displayShortcut, isKeyboardEvent } from '@wordpress/keycodes';\nimport { link, linkOff } from '@wordpress/icons';\nimport { createBlock } from '@wordpress/blocks';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { prependHTTP } from '@wordpress/url';\n\nconst NEW_TAB_REL = 'noreferrer noopener';\n\nfunction WidthPanel( { selectedWidth, setAttributes } ) {\n\tfunction handleChange( newWidth ) {\n\t\t// Check if we are toggling the width off\n\t\tconst width = selectedWidth === newWidth ? undefined : newWidth;\n\n\t\t// Update attributes.\n\t\tsetAttributes( { width } );\n\t}\n\n\treturn (\n\t\t<PanelBody title={ __( 'Width settings' ) }>\n\t\t\t<ButtonGroup aria-label={ __( 'Button width' ) }>\n\t\t\t\t{ [ 25, 50, 75, 100 ].map( ( widthValue ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tkey={ widthValue }\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\twidthValue === selectedWidth\n\t\t\t\t\t\t\t\t\t? 'primary'\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={ () => handleChange( widthValue ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ widthValue }%\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ButtonGroup>\n\t\t</PanelBody>\n\t);\n}\n\nfunction ButtonEdit( props ) {\n\tconst {\n\t\tattributes,\n\t\tsetAttributes,\n\t\tclassName,\n\t\tisSelected,\n\t\tonReplace,\n\t\tmergeBlocks,\n\t} = props;\n\tconst { textAlign, linkTarget, placeholder, rel, style, text, url, width } =\n\t\tattributes;\n\n\tfunction onToggleOpenInNewTab( value ) {\n\t\tconst newLinkTarget = value ? '_blank' : undefined;\n\n\t\tlet updatedRel = rel;\n\t\tif ( newLinkTarget && ! rel ) {\n\t\t\tupdatedRel = NEW_TAB_REL;\n\t\t} else if ( ! newLinkTarget && rel === NEW_TAB_REL ) {\n\t\t\tupdatedRel = undefined;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tlinkTarget: newLinkTarget,\n\t\t\trel: updatedRel,\n\t\t} );\n\t}\n\n\tfunction setButtonText( newText ) {\n\t\t// Remove anchor tags from button text content.\n\t\tsetAttributes( { text: newText.replace( /<\\/?a[^>]*>/g, '' ) } );\n\t}\n\n\tfunction onKeyDown( event ) {\n\t\tif ( isKeyboardEvent.primary( event, 'k' ) ) {\n\t\t\tstartEditing( event );\n\t\t} else if ( isKeyboardEvent.primaryShift( event, 'k' ) ) {\n\t\t\tunlink();\n\t\t\trichTextRef.current?.focus();\n\t\t}\n\t}\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst colorProps = useColorProps( attributes );\n\tconst spacingProps = useSpacingProps( attributes );\n\tconst ref = useRef();\n\tconst richTextRef = useRef();\n\tconst blockProps = useBlockProps( {\n\t\tref: useMergeRefs( [ setPopoverAnchor, ref ] ),\n\t\tonKeyDown,\n\t} );\n\n\tconst [ isEditingURL, setIsEditingURL ] = useState( false );\n\tconst isURLSet = !! url;\n\tconst opensInNewTab = linkTarget === '_blank';\n\n\tfunction startEditing( event ) {\n\t\tevent.preventDefault();\n\t\tsetIsEditingURL( true );\n\t}\n\n\tfunction unlink() {\n\t\tsetAttributes( {\n\t\t\turl: undefined,\n\t\t\tlinkTarget: undefined,\n\t\t\trel: undefined,\n\t\t} );\n\t\tsetIsEditingURL( false );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsEditingURL( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\t// Memoize link value to avoid overriding the LinkControl's internal state.\n\t// This is a temporary fix. See https://github.com/WordPress/gutenberg/issues/51256.\n\tconst linkValue = useMemo(\n\t\t() => ( { url, opensInNewTab } ),\n\t\t[ url, opensInNewTab ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\t{ ...blockProps }\n\t\t\t\tclassName={ classnames( blockProps.className, {\n\t\t\t\t\t[ `has-custom-width wp-block-button__width-${ width }` ]:\n\t\t\t\t\t\twidth,\n\t\t\t\t\t[ `has-custom-font-size` ]: blockProps.style.fontSize,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<RichText\n\t\t\t\t\tref={ richTextRef }\n\t\t\t\t\taria-label={ __( 'Button text' ) }\n\t\t\t\t\tplaceholder={ placeholder || __( 'Add text…' ) }\n\t\t\t\t\tvalue={ text }\n\t\t\t\t\tonChange={ ( value ) => setButtonText( value ) }\n\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-button__link',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t\t\t\t\t\t// For backwards compatibility add style that isn't\n\t\t\t\t\t\t\t// provided via block support.\n\t\t\t\t\t\t\t'no-border-radius': style?.border?.radius === 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t__experimentalGetElementClassName( 'button' )\n\t\t\t\t\t) }\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\t...spacingProps.style,\n\t\t\t\t\t} }\n\t\t\t\t\tonSplit={ ( value ) =>\n\t\t\t\t\t\tcreateBlock( 'core/button', {\n\t\t\t\t\t\t\t...attributes,\n\t\t\t\t\t\t\ttext: value,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\tidentifier=\"text\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t{ ! isURLSet && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\ticon={ link }\n\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t\tonClick={ startEditing }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ isURLSet && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\ticon={ linkOff }\n\t\t\t\t\t\ttitle={ __( 'Unlink' ) }\n\t\t\t\t\t\tshortcut={ displayShortcut.primaryShift( 'k' ) }\n\t\t\t\t\t\tonClick={ unlink }\n\t\t\t\t\t\tisActive={ true }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t{ isSelected && ( isEditingURL || isURLSet ) && (\n\t\t\t\t<Popover\n\t\t\t\t\tplacement=\"bottom\"\n\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\tsetIsEditingURL( false );\n\t\t\t\t\t\trichTextRef.current?.focus();\n\t\t\t\t\t} }\n\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\tfocusOnMount={ isEditingURL ? 'firstElement' : false }\n\t\t\t\t\t__unstableSlotName={ '__unstable-block-tools-after' }\n\t\t\t\t\tshift\n\t\t\t\t>\n\t\t\t\t\t<LinkControl\n\t\t\t\t\t\tvalue={ linkValue }\n\t\t\t\t\t\tonChange={ ( {\n\t\t\t\t\t\t\turl: newURL = '',\n\t\t\t\t\t\t\topensInNewTab: newOpensInNewTab,\n\t\t\t\t\t\t} ) => {\n\t\t\t\t\t\t\tsetAttributes( { url: prependHTTP( newURL ) } );\n\n\t\t\t\t\t\t\tif ( opensInNewTab !== newOpensInNewTab ) {\n\t\t\t\t\t\t\t\tonToggleOpenInNewTab( newOpensInNewTab );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\tunlink();\n\t\t\t\t\t\t\trichTextRef.current?.focus();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tforceIsEditingLink={ isEditingURL }\n\t\t\t\t\t/>\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<WidthPanel\n\t\t\t\t\tselectedWidth={ width }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\tonChange={ ( newRel ) => setAttributes( { rel: newRel } ) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n}\n\nexport default ButtonEdit;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_element","require","_classnames","_interopRequireDefault","_i18n","_components","_blockEditor","_keycodes","_icons","_blocks","_compose","_url","NEW_TAB_REL","WidthPanel","selectedWidth","setAttributes","handleChange","newWidth","width","undefined","createElement","PanelBody","title","__","ButtonGroup","map","widthValue","Button","key","size","variant","onClick","ButtonEdit","props","attributes","className","isSelected","onReplace","mergeBlocks","tagName","textAlign","linkTarget","placeholder","rel","style","text","url","TagName","onToggleOpenInNewTab","value","newLinkTarget","updatedRel","setButtonText","newText","replace","onKeyDown","event","isKeyboardEvent","primary","startEditing","primaryShift","unlink","richTextRef","current","focus","popoverAnchor","setPopoverAnchor","useState","borderProps","useBorderProps","colorProps","useColorProps","spacingProps","useSpacingProps","ref","useRef","blockProps","useBlockProps","useMergeRefs","isEditingURL","setIsEditingURL","isURLSet","opensInNewTab","isLinkTag","preventDefault","useEffect","linkValue","useMemo","Fragment","classnames","fontSize","RichText","onChange","withoutInteractiveFormatting","border","radius","__experimentalGetElementClassName","onSplit","createBlock","onMerge","identifier","BlockControls","group","AlignmentControl","nextAlign","ToolbarButton","name","icon","link","shortcut","displayShortcut","linkOff","isActive","Popover","placement","onClose","anchor","focusOnMount","__unstableSlotName","shift","__experimentalLinkControl","newURL","newOpensInNewTab","prependHTTP","onRemove","forceIsEditingLink","InspectorControls","TextControl","__nextHasNoMarginBottom","label","newRel","_default","exports","default"],"sources":["@wordpress/block-library/src/button/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useEffect, useState, useRef, useMemo } from '@wordpress/element';\nimport {\n\tButton,\n\tButtonGroup,\n\tPanelBody,\n\tTextControl,\n\tToolbarButton,\n\tPopover,\n} from '@wordpress/components';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n\t__experimentalGetSpacingClassesAndStyles as useSpacingProps,\n\t__experimentalLinkControl as LinkControl,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\nimport { displayShortcut, isKeyboardEvent } from '@wordpress/keycodes';\nimport { link, linkOff } from '@wordpress/icons';\nimport { createBlock } from '@wordpress/blocks';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { prependHTTP } from '@wordpress/url';\n\nconst NEW_TAB_REL = 'noreferrer noopener';\n\nfunction WidthPanel( { selectedWidth, setAttributes } ) {\n\tfunction handleChange( newWidth ) {\n\t\t// Check if we are toggling the width off\n\t\tconst width = selectedWidth === newWidth ? undefined : newWidth;\n\n\t\t// Update attributes.\n\t\tsetAttributes( { width } );\n\t}\n\n\treturn (\n\t\t<PanelBody title={ __( 'Width settings' ) }>\n\t\t\t<ButtonGroup aria-label={ __( 'Button width' ) }>\n\t\t\t\t{ [ 25, 50, 75, 100 ].map( ( widthValue ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tkey={ widthValue }\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\twidthValue === selectedWidth\n\t\t\t\t\t\t\t\t\t? 'primary'\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={ () => handleChange( widthValue ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ widthValue }%\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ButtonGroup>\n\t\t</PanelBody>\n\t);\n}\n\nfunction ButtonEdit( props ) {\n\tconst {\n\t\tattributes,\n\t\tsetAttributes,\n\t\tclassName,\n\t\tisSelected,\n\t\tonReplace,\n\t\tmergeBlocks,\n\t} = props;\n\tconst {\n\t\ttagName,\n\t\ttextAlign,\n\t\tlinkTarget,\n\t\tplaceholder,\n\t\trel,\n\t\tstyle,\n\t\ttext,\n\t\turl,\n\t\twidth,\n\t} = attributes;\n\n\tconst TagName = tagName || 'a';\n\n\tfunction onToggleOpenInNewTab( value ) {\n\t\tconst newLinkTarget = value ? '_blank' : undefined;\n\n\t\tlet updatedRel = rel;\n\t\tif ( newLinkTarget && ! rel ) {\n\t\t\tupdatedRel = NEW_TAB_REL;\n\t\t} else if ( ! newLinkTarget && rel === NEW_TAB_REL ) {\n\t\t\tupdatedRel = undefined;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\tlinkTarget: newLinkTarget,\n\t\t\trel: updatedRel,\n\t\t} );\n\t}\n\n\tfunction setButtonText( newText ) {\n\t\t// Remove anchor tags from button text content.\n\t\tsetAttributes( { text: newText.replace( /<\\/?a[^>]*>/g, '' ) } );\n\t}\n\n\tfunction onKeyDown( event ) {\n\t\tif ( isKeyboardEvent.primary( event, 'k' ) ) {\n\t\t\tstartEditing( event );\n\t\t} else if ( isKeyboardEvent.primaryShift( event, 'k' ) ) {\n\t\t\tunlink();\n\t\t\trichTextRef.current?.focus();\n\t\t}\n\t}\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst colorProps = useColorProps( attributes );\n\tconst spacingProps = useSpacingProps( attributes );\n\tconst ref = useRef();\n\tconst richTextRef = useRef();\n\tconst blockProps = useBlockProps( {\n\t\tref: useMergeRefs( [ setPopoverAnchor, ref ] ),\n\t\tonKeyDown,\n\t} );\n\n\tconst [ isEditingURL, setIsEditingURL ] = useState( false );\n\tconst isURLSet = !! url;\n\tconst opensInNewTab = linkTarget === '_blank';\n\tconst isLinkTag = 'a' === TagName;\n\n\tfunction startEditing( event ) {\n\t\tevent.preventDefault();\n\t\tsetIsEditingURL( true );\n\t}\n\n\tfunction unlink() {\n\t\tsetAttributes( {\n\t\t\turl: undefined,\n\t\t\tlinkTarget: undefined,\n\t\t\trel: undefined,\n\t\t} );\n\t\tsetIsEditingURL( false );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsEditingURL( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\t// Memoize link value to avoid overriding the LinkControl's internal state.\n\t// This is a temporary fix. See https://github.com/WordPress/gutenberg/issues/51256.\n\tconst linkValue = useMemo(\n\t\t() => ( { url, opensInNewTab } ),\n\t\t[ url, opensInNewTab ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\t{ ...blockProps }\n\t\t\t\tclassName={ classnames( blockProps.className, {\n\t\t\t\t\t[ `has-custom-width wp-block-button__width-${ width }` ]:\n\t\t\t\t\t\twidth,\n\t\t\t\t\t[ `has-custom-font-size` ]: blockProps.style.fontSize,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<RichText\n\t\t\t\t\tref={ richTextRef }\n\t\t\t\t\taria-label={ __( 'Button text' ) }\n\t\t\t\t\tplaceholder={ placeholder || __( 'Add text…' ) }\n\t\t\t\t\tvalue={ text }\n\t\t\t\t\tonChange={ ( value ) => setButtonText( value ) }\n\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-button__link',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t\t\t\t\t\t// For backwards compatibility add style that isn't\n\t\t\t\t\t\t\t// provided via block support.\n\t\t\t\t\t\t\t'no-border-radius': style?.border?.radius === 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t__experimentalGetElementClassName( 'button' )\n\t\t\t\t\t) }\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\t...spacingProps.style,\n\t\t\t\t\t} }\n\t\t\t\t\tonSplit={ ( value ) =>\n\t\t\t\t\t\tcreateBlock( 'core/button', {\n\t\t\t\t\t\t\t...attributes,\n\t\t\t\t\t\t\ttext: value,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\tidentifier=\"text\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t{ ! isURLSet && isLinkTag && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\ticon={ link }\n\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t\tonClick={ startEditing }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ isURLSet && isLinkTag && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\ticon={ linkOff }\n\t\t\t\t\t\ttitle={ __( 'Unlink' ) }\n\t\t\t\t\t\tshortcut={ displayShortcut.primaryShift( 'k' ) }\n\t\t\t\t\t\tonClick={ unlink }\n\t\t\t\t\t\tisActive={ true }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t{ isLinkTag && isSelected && ( isEditingURL || isURLSet ) && (\n\t\t\t\t<Popover\n\t\t\t\t\tplacement=\"bottom\"\n\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\tsetIsEditingURL( false );\n\t\t\t\t\t\trichTextRef.current?.focus();\n\t\t\t\t\t} }\n\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\tfocusOnMount={ isEditingURL ? 'firstElement' : false }\n\t\t\t\t\t__unstableSlotName={ '__unstable-block-tools-after' }\n\t\t\t\t\tshift\n\t\t\t\t>\n\t\t\t\t\t<LinkControl\n\t\t\t\t\t\tvalue={ linkValue }\n\t\t\t\t\t\tonChange={ ( {\n\t\t\t\t\t\t\turl: newURL = '',\n\t\t\t\t\t\t\topensInNewTab: newOpensInNewTab,\n\t\t\t\t\t\t} ) => {\n\t\t\t\t\t\t\tsetAttributes( { url: prependHTTP( newURL ) } );\n\n\t\t\t\t\t\t\tif ( opensInNewTab !== newOpensInNewTab ) {\n\t\t\t\t\t\t\t\tonToggleOpenInNewTab( newOpensInNewTab );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\tunlink();\n\t\t\t\t\t\t\trichTextRef.current?.focus();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tforceIsEditingLink={ isEditingURL }\n\t\t\t\t\t/>\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<WidthPanel\n\t\t\t\t\tselectedWidth={ width }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t{ isLinkTag && (\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\t\tonChange={ ( newRel ) =>\n\t\t\t\t\t\t\tsetAttributes( { rel: newRel } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n}\n\nexport default ButtonEdit;\n"],"mappings":"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"}
@@ -28,6 +28,15 @@ const metadata = {
28
28
  keywords: ["link"],
29
29
  textdomain: "default",
30
30
  attributes: {
31
+ tagName: {
32
+ type: "string",
33
+ "enum": ["a", "button"],
34
+ "default": "a"
35
+ },
36
+ type: {
37
+ type: "string",
38
+ "default": "button"
39
+ },
31
40
  textAlign: {
32
41
  type: "string"
33
42
  },
@@ -41,14 +50,14 @@ const metadata = {
41
50
  title: {
42
51
  type: "string",
43
52
  source: "attribute",
44
- selector: "a",
53
+ selector: "a,button",
45
54
  attribute: "title",
46
55
  __experimentalRole: "content"
47
56
  },
48
57
  text: {
49
58
  type: "string",
50
59
  source: "html",
51
- selector: "a",
60
+ selector: "a,button",
52
61
  __experimentalRole: "content"
53
62
  },
54
63
  linkTarget: {
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_icons","_initBlock","_interopRequireDefault","_deprecated","_edit","_save","metadata","$schema","apiVersion","name","title","category","parent","description","keywords","textdomain","attributes","textAlign","type","url","source","selector","attribute","__experimentalRole","text","linkTarget","rel","placeholder","backgroundColor","textColor","gradient","width","supports","anchor","align","alignWide","color","__experimentalSkipSerialization","gradients","__experimentalDefaultControls","background","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","reusable","shadow","spacing","padding","__experimentalBorder","radius","style","__experimentalSelector","styles","label","isDefault","editorStyle","exports","settings","icon","example","className","__","edit","save","deprecated","merge","a","init","initBlock"],"sources":["@wordpress/block-library/src/button/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { button as icon } from '@wordpress/icons';\n\n/**\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';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tclassName: 'is-style-fill',\n\t\t\ttext: __( 'Call to Action' ),\n\t\t},\n\t},\n\tedit,\n\tsave,\n\tdeprecated,\n\tmerge: ( a, { text = '' } ) => ( {\n\t\t...a,\n\t\ttext: ( a.text || '' ) + text,\n\t} ),\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"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"}
1
+ {"version":3,"names":["_i18n","require","_icons","_initBlock","_interopRequireDefault","_deprecated","_edit","_save","metadata","$schema","apiVersion","name","title","category","parent","description","keywords","textdomain","attributes","tagName","type","textAlign","url","source","selector","attribute","__experimentalRole","text","linkTarget","rel","placeholder","backgroundColor","textColor","gradient","width","supports","anchor","align","alignWide","color","__experimentalSkipSerialization","gradients","__experimentalDefaultControls","background","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","reusable","shadow","spacing","padding","__experimentalBorder","radius","style","__experimentalSelector","styles","label","isDefault","editorStyle","exports","settings","icon","example","className","__","edit","save","deprecated","merge","a","init","initBlock"],"sources":["@wordpress/block-library/src/button/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { button as icon } from '@wordpress/icons';\n\n/**\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';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\tclassName: 'is-style-fill',\n\t\t\ttext: __( 'Call to Action' ),\n\t\t},\n\t},\n\tedit,\n\tsave,\n\tdeprecated,\n\tmerge: ( a, { text = '' } ) => ( {\n\t\t...a,\n\t\ttext: ( a.text || '' ) + text,\n\t} ),\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"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"}
@@ -21,6 +21,8 @@ function save({
21
21
  className
22
22
  }) {
23
23
  const {
24
+ tagName,
25
+ type,
24
26
  textAlign,
25
27
  fontSize,
26
28
  linkTarget,
@@ -34,6 +36,9 @@ function save({
34
36
  if (!text) {
35
37
  return null;
36
38
  }
39
+ const TagName = tagName || 'a';
40
+ const isButtonTag = 'button' === TagName;
41
+ const buttonType = type || 'button';
37
42
  const borderProps = (0, _blockEditor.__experimentalGetBorderClassesAndStyles)(attributes);
38
43
  const colorProps = (0, _blockEditor.__experimentalGetColorClassesAndStyles)(attributes);
39
44
  const spacingProps = (0, _blockEditor.__experimentalGetSpacingClassesAndStyles)(attributes);
@@ -62,14 +67,15 @@ function save({
62
67
  className: wrapperClasses
63
68
  })
64
69
  }, (0, _element.createElement)(_blockEditor.RichText.Content, {
65
- tagName: "a",
70
+ tagName: TagName,
71
+ type: isButtonTag ? buttonType : null,
66
72
  className: buttonClasses,
67
- href: url,
73
+ href: isButtonTag ? null : url,
68
74
  title: title,
69
75
  style: buttonStyle,
70
76
  value: text,
71
- target: linkTarget,
72
- rel: rel
77
+ target: isButtonTag ? null : linkTarget,
78
+ rel: isButtonTag ? null : rel
73
79
  }));
74
80
  }
75
81
  //# sourceMappingURL=save.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_blockEditor","save","attributes","className","textAlign","fontSize","linkTarget","rel","style","text","title","url","width","borderProps","getBorderClassesAndStyles","colorProps","getColorClassesAndStyles","spacingProps","getSpacingClassesAndStyles","buttonClasses","classnames","border","radius","__experimentalGetElementClassName","buttonStyle","wrapperClasses","typography","_element","createElement","useBlockProps","RichText","Content","tagName","href","value","target"],"sources":["@wordpress/block-library/src/button/save.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n\t__experimentalGetSpacingClassesAndStyles as getSpacingClassesAndStyles,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\n\nexport default function save( { attributes, className } ) {\n\tconst {\n\t\ttextAlign,\n\t\tfontSize,\n\t\tlinkTarget,\n\t\trel,\n\t\tstyle,\n\t\ttext,\n\t\ttitle,\n\t\turl,\n\t\twidth,\n\t} = attributes;\n\n\tif ( ! text ) {\n\t\treturn null;\n\t}\n\n\tconst borderProps = getBorderClassesAndStyles( attributes );\n\tconst colorProps = getColorClassesAndStyles( attributes );\n\tconst spacingProps = getSpacingClassesAndStyles( attributes );\n\tconst buttonClasses = classnames(\n\t\t'wp-block-button__link',\n\t\tcolorProps.className,\n\t\tborderProps.className,\n\t\t{\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t\t// For backwards compatibility add style that isn't provided via\n\t\t\t// block support.\n\t\t\t'no-border-radius': style?.border?.radius === 0,\n\t\t},\n\t\t__experimentalGetElementClassName( 'button' )\n\t);\n\tconst buttonStyle = {\n\t\t...borderProps.style,\n\t\t...colorProps.style,\n\t\t...spacingProps.style,\n\t};\n\n\t// The use of a `title` attribute here is soft-deprecated, but still applied\n\t// if it had already been assigned, for the sake of backward-compatibility.\n\t// A title will no longer be assigned for new or updated button block links.\n\n\tconst wrapperClasses = classnames( className, {\n\t\t[ `has-custom-width wp-block-button__width-${ width }` ]: width,\n\t\t[ `has-custom-font-size` ]: fontSize || style?.typography?.fontSize,\n\t} );\n\n\treturn (\n\t\t<div { ...useBlockProps.save( { className: wrapperClasses } ) }>\n\t\t\t<RichText.Content\n\t\t\t\ttagName=\"a\"\n\t\t\t\tclassName={ buttonClasses }\n\t\t\t\thref={ url }\n\t\t\t\ttitle={ title }\n\t\t\t\tstyle={ buttonStyle }\n\t\t\t\tvalue={ text }\n\t\t\t\ttarget={ linkTarget }\n\t\t\t\trel={ rel }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,YAAA,GAAAD,OAAA;AARA;AACA;AACA;;AAGA;AACA;AACA;;AAUe,SAASE,IAAIA,CAAE;EAAEC,UAAU;EAAEC;AAAU,CAAC,EAAG;EACzD,MAAM;IACLC,SAAS;IACTC,QAAQ;IACRC,UAAU;IACVC,GAAG;IACHC,KAAK;IACLC,IAAI;IACJC,KAAK;IACLC,GAAG;IACHC;EACD,CAAC,GAAGV,UAAU;EAEd,IAAK,CAAEO,IAAI,EAAG;IACb,OAAO,IAAI;EACZ;EAEA,MAAMI,WAAW,GAAG,IAAAC,oDAAyB,EAAEZ,UAAW,CAAC;EAC3D,MAAMa,UAAU,GAAG,IAAAC,mDAAwB,EAAEd,UAAW,CAAC;EACzD,MAAMe,YAAY,GAAG,IAAAC,qDAA0B,EAAEhB,UAAW,CAAC;EAC7D,MAAMiB,aAAa,GAAG,IAAAC,mBAAU,EAC/B,uBAAuB,EACvBL,UAAU,CAACZ,SAAS,EACpBU,WAAW,CAACV,SAAS,EACrB;IACC,CAAG,kBAAkBC,SAAW,EAAC,GAAIA,SAAS;IAC9C;IACA;IACA,kBAAkB,EAAEI,KAAK,EAAEa,MAAM,EAAEC,MAAM,KAAK;EAC/C,CAAC,EACD,IAAAC,8CAAiC,EAAE,QAAS,CAC7C,CAAC;EACD,MAAMC,WAAW,GAAG;IACnB,GAAGX,WAAW,CAACL,KAAK;IACpB,GAAGO,UAAU,CAACP,KAAK;IACnB,GAAGS,YAAY,CAACT;EACjB,CAAC;;EAED;EACA;EACA;;EAEA,MAAMiB,cAAc,GAAG,IAAAL,mBAAU,EAAEjB,SAAS,EAAE;IAC7C,CAAG,2CAA2CS,KAAO,EAAC,GAAIA,KAAK;IAC/D,CAAG,sBAAqB,GAAIP,QAAQ,IAAIG,KAAK,EAAEkB,UAAU,EAAErB;EAC5D,CAAE,CAAC;EAEH,OACC,IAAAsB,QAAA,CAAAC,aAAA;IAAA,GAAUC,0BAAa,CAAC5B,IAAI,CAAE;MAAEE,SAAS,EAAEsB;IAAe,CAAE;EAAC,GAC5D,IAAAE,QAAA,CAAAC,aAAA,EAAC5B,YAAA,CAAA8B,QAAQ,CAACC,OAAO;IAChBC,OAAO,EAAC,GAAG;IACX7B,SAAS,EAAGgB,aAAe;IAC3Bc,IAAI,EAAGtB,GAAK;IACZD,KAAK,EAAGA,KAAO;IACfF,KAAK,EAAGgB,WAAa;IACrBU,KAAK,EAAGzB,IAAM;IACd0B,MAAM,EAAG7B,UAAY;IACrBC,GAAG,EAAGA;EAAK,CACX,CACG,CAAC;AAER"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_blockEditor","save","attributes","className","tagName","type","textAlign","fontSize","linkTarget","rel","style","text","title","url","width","TagName","isButtonTag","buttonType","borderProps","getBorderClassesAndStyles","colorProps","getColorClassesAndStyles","spacingProps","getSpacingClassesAndStyles","buttonClasses","classnames","border","radius","__experimentalGetElementClassName","buttonStyle","wrapperClasses","typography","_element","createElement","useBlockProps","RichText","Content","href","value","target"],"sources":["@wordpress/block-library/src/button/save.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n\t__experimentalGetSpacingClassesAndStyles as getSpacingClassesAndStyles,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\n\nexport default function save( { attributes, className } ) {\n\tconst {\n\t\ttagName,\n\t\ttype,\n\t\ttextAlign,\n\t\tfontSize,\n\t\tlinkTarget,\n\t\trel,\n\t\tstyle,\n\t\ttext,\n\t\ttitle,\n\t\turl,\n\t\twidth,\n\t} = attributes;\n\n\tif ( ! text ) {\n\t\treturn null;\n\t}\n\n\tconst TagName = tagName || 'a';\n\tconst isButtonTag = 'button' === TagName;\n\tconst buttonType = type || 'button';\n\tconst borderProps = getBorderClassesAndStyles( attributes );\n\tconst colorProps = getColorClassesAndStyles( attributes );\n\tconst spacingProps = getSpacingClassesAndStyles( attributes );\n\tconst buttonClasses = classnames(\n\t\t'wp-block-button__link',\n\t\tcolorProps.className,\n\t\tborderProps.className,\n\t\t{\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t\t// For backwards compatibility add style that isn't provided via\n\t\t\t// block support.\n\t\t\t'no-border-radius': style?.border?.radius === 0,\n\t\t},\n\t\t__experimentalGetElementClassName( 'button' )\n\t);\n\tconst buttonStyle = {\n\t\t...borderProps.style,\n\t\t...colorProps.style,\n\t\t...spacingProps.style,\n\t};\n\n\t// The use of a `title` attribute here is soft-deprecated, but still applied\n\t// if it had already been assigned, for the sake of backward-compatibility.\n\t// A title will no longer be assigned for new or updated button block links.\n\n\tconst wrapperClasses = classnames( className, {\n\t\t[ `has-custom-width wp-block-button__width-${ width }` ]: width,\n\t\t[ `has-custom-font-size` ]: fontSize || style?.typography?.fontSize,\n\t} );\n\n\treturn (\n\t\t<div { ...useBlockProps.save( { className: wrapperClasses } ) }>\n\t\t\t<RichText.Content\n\t\t\t\ttagName={ TagName }\n\t\t\t\ttype={ isButtonTag ? buttonType : null }\n\t\t\t\tclassName={ buttonClasses }\n\t\t\t\thref={ isButtonTag ? null : url }\n\t\t\t\ttitle={ title }\n\t\t\t\tstyle={ buttonStyle }\n\t\t\t\tvalue={ text }\n\t\t\t\ttarget={ isButtonTag ? null : linkTarget }\n\t\t\t\trel={ isButtonTag ? null : rel }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,YAAA,GAAAD,OAAA;AARA;AACA;AACA;;AAGA;AACA;AACA;;AAUe,SAASE,IAAIA,CAAE;EAAEC,UAAU;EAAEC;AAAU,CAAC,EAAG;EACzD,MAAM;IACLC,OAAO;IACPC,IAAI;IACJC,SAAS;IACTC,QAAQ;IACRC,UAAU;IACVC,GAAG;IACHC,KAAK;IACLC,IAAI;IACJC,KAAK;IACLC,GAAG;IACHC;EACD,CAAC,GAAGZ,UAAU;EAEd,IAAK,CAAES,IAAI,EAAG;IACb,OAAO,IAAI;EACZ;EAEA,MAAMI,OAAO,GAAGX,OAAO,IAAI,GAAG;EAC9B,MAAMY,WAAW,GAAG,QAAQ,KAAKD,OAAO;EACxC,MAAME,UAAU,GAAGZ,IAAI,IAAI,QAAQ;EACnC,MAAMa,WAAW,GAAG,IAAAC,oDAAyB,EAAEjB,UAAW,CAAC;EAC3D,MAAMkB,UAAU,GAAG,IAAAC,mDAAwB,EAAEnB,UAAW,CAAC;EACzD,MAAMoB,YAAY,GAAG,IAAAC,qDAA0B,EAAErB,UAAW,CAAC;EAC7D,MAAMsB,aAAa,GAAG,IAAAC,mBAAU,EAC/B,uBAAuB,EACvBL,UAAU,CAACjB,SAAS,EACpBe,WAAW,CAACf,SAAS,EACrB;IACC,CAAG,kBAAkBG,SAAW,EAAC,GAAIA,SAAS;IAC9C;IACA;IACA,kBAAkB,EAAEI,KAAK,EAAEgB,MAAM,EAAEC,MAAM,KAAK;EAC/C,CAAC,EACD,IAAAC,8CAAiC,EAAE,QAAS,CAC7C,CAAC;EACD,MAAMC,WAAW,GAAG;IACnB,GAAGX,WAAW,CAACR,KAAK;IACpB,GAAGU,UAAU,CAACV,KAAK;IACnB,GAAGY,YAAY,CAACZ;EACjB,CAAC;;EAED;EACA;EACA;;EAEA,MAAMoB,cAAc,GAAG,IAAAL,mBAAU,EAAEtB,SAAS,EAAE;IAC7C,CAAG,2CAA2CW,KAAO,EAAC,GAAIA,KAAK;IAC/D,CAAG,sBAAqB,GAAIP,QAAQ,IAAIG,KAAK,EAAEqB,UAAU,EAAExB;EAC5D,CAAE,CAAC;EAEH,OACC,IAAAyB,QAAA,CAAAC,aAAA;IAAA,GAAUC,0BAAa,CAACjC,IAAI,CAAE;MAAEE,SAAS,EAAE2B;IAAe,CAAE;EAAC,GAC5D,IAAAE,QAAA,CAAAC,aAAA,EAACjC,YAAA,CAAAmC,QAAQ,CAACC,OAAO;IAChBhC,OAAO,EAAGW,OAAS;IACnBV,IAAI,EAAGW,WAAW,GAAGC,UAAU,GAAG,IAAM;IACxCd,SAAS,EAAGqB,aAAe;IAC3Ba,IAAI,EAAGrB,WAAW,GAAG,IAAI,GAAGH,GAAK;IACjCD,KAAK,EAAGA,KAAO;IACfF,KAAK,EAAGmB,WAAa;IACrBS,KAAK,EAAG3B,IAAM;IACd4B,MAAM,EAAGvB,WAAW,GAAG,IAAI,GAAGR,UAAY;IAC1CC,GAAG,EAAGO,WAAW,GAAG,IAAI,GAAGP;EAAK,CAChC,CACG,CAAC;AAER"}
@@ -9,6 +9,7 @@ var _element = require("@wordpress/element");
9
9
  var _classnames = _interopRequireDefault(require("classnames"));
10
10
  var _blockEditor = require("@wordpress/block-editor");
11
11
  var _data = require("@wordpress/data");
12
+ var _blocks = require("@wordpress/blocks");
12
13
  var _button = require("../button");
13
14
  /**
14
15
  * External dependencies
@@ -42,14 +43,22 @@ function ButtonsEdit({
42
43
  'has-custom-font-size': fontSize || style?.typography?.fontSize
43
44
  })
44
45
  });
45
- const preferredStyle = (0, _data.useSelect)(select => {
46
+ const {
47
+ preferredStyle,
48
+ hasButtonVariations
49
+ } = (0, _data.useSelect)(select => {
46
50
  const preferredStyleVariations = select(_blockEditor.store).getSettings().__experimentalPreferredStyleVariations;
47
- return preferredStyleVariations?.value?.[_button.name];
51
+ const buttonVariations = select(_blocks.store).getBlockVariations(_button.name, 'inserter');
52
+ return {
53
+ preferredStyle: preferredStyleVariations?.value?.[_button.name],
54
+ hasButtonVariations: buttonVariations.length > 0
55
+ };
48
56
  }, []);
49
57
  const innerBlocksProps = (0, _blockEditor.useInnerBlocksProps)(blockProps, {
50
58
  allowedBlocks: ALLOWED_BLOCKS,
51
59
  defaultBlock: DEFAULT_BLOCK,
52
- directInsert: true,
60
+ // This check should be handled by the `Inserter` internally to be consistent across all blocks that use it.
61
+ directInsert: !hasButtonVariations,
53
62
  template: [[_button.name, {
54
63
  className: preferredStyle && `is-style-${preferredStyle}`
55
64
  }]],
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_blockEditor","_data","_button","ALLOWED_BLOCKS","buttonBlockName","DEFAULT_BLOCK","name","attributesToCopy","ButtonsEdit","attributes","className","_layout$orientation","fontSize","layout","style","blockProps","useBlockProps","classnames","typography","preferredStyle","useSelect","select","preferredStyleVariations","blockEditorStore","getSettings","__experimentalPreferredStyleVariations","value","innerBlocksProps","useInnerBlocksProps","allowedBlocks","defaultBlock","directInsert","template","templateInsertUpdatesSelection","orientation","_element","createElement","_default","exports","default"],"sources":["@wordpress/block-library/src/buttons/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { name as buttonBlockName } from '../button';\n\nconst ALLOWED_BLOCKS = [ buttonBlockName ];\n\nconst DEFAULT_BLOCK = {\n\tname: buttonBlockName,\n\tattributesToCopy: [\n\t\t'backgroundColor',\n\t\t'border',\n\t\t'className',\n\t\t'fontFamily',\n\t\t'fontSize',\n\t\t'gradient',\n\t\t'style',\n\t\t'textColor',\n\t\t'width',\n\t],\n};\n\nfunction ButtonsEdit( { attributes, className } ) {\n\tconst { fontSize, layout, style } = attributes;\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( className, {\n\t\t\t'has-custom-font-size': fontSize || style?.typography?.fontSize,\n\t\t} ),\n\t} );\n\tconst preferredStyle = useSelect( ( select ) => {\n\t\tconst preferredStyleVariations =\n\t\t\tselect( blockEditorStore ).getSettings()\n\t\t\t\t.__experimentalPreferredStyleVariations;\n\t\treturn preferredStyleVariations?.value?.[ buttonBlockName ];\n\t}, [] );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: ALLOWED_BLOCKS,\n\t\tdefaultBlock: DEFAULT_BLOCK,\n\t\tdirectInsert: true,\n\t\ttemplate: [\n\t\t\t[\n\t\t\t\tbuttonBlockName,\n\t\t\t\t{ className: preferredStyle && `is-style-${ preferredStyle }` },\n\t\t\t],\n\t\t],\n\t\ttemplateInsertUpdatesSelection: true,\n\t\torientation: layout?.orientation ?? 'horizontal',\n\t} );\n\n\treturn <div { ...innerBlocksProps } />;\n}\n\nexport default ButtonsEdit;\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,YAAA,GAAAD,OAAA;AAKA,IAAAE,KAAA,GAAAF,OAAA;AAKA,IAAAG,OAAA,GAAAH,OAAA;AAlBA;AACA;AACA;;AAGA;AACA;AACA;;AAQA;AACA;AACA;;AAGA,MAAMI,cAAc,GAAG,CAAEC,YAAe,CAAE;AAE1C,MAAMC,aAAa,GAAG;EACrBC,IAAI,EAAEF,YAAe;EACrBG,gBAAgB,EAAE,CACjB,iBAAiB,EACjB,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,UAAU,EACV,UAAU,EACV,OAAO,EACP,WAAW,EACX,OAAO;AAET,CAAC;AAED,SAASC,WAAWA,CAAE;EAAEC,UAAU;EAAEC;AAAU,CAAC,EAAG;EAAA,IAAAC,mBAAA;EACjD,MAAM;IAAEC,QAAQ;IAAEC,MAAM;IAAEC;EAAM,CAAC,GAAGL,UAAU;EAC9C,MAAMM,UAAU,GAAG,IAAAC,0BAAa,EAAE;IACjCN,SAAS,EAAE,IAAAO,mBAAU,EAAEP,SAAS,EAAE;MACjC,sBAAsB,EAAEE,QAAQ,IAAIE,KAAK,EAAEI,UAAU,EAAEN;IACxD,CAAE;EACH,CAAE,CAAC;EACH,MAAMO,cAAc,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IAC/C,MAAMC,wBAAwB,GAC7BD,MAAM,CAAEE,kBAAiB,CAAC,CAACC,WAAW,CAAC,CAAC,CACtCC,sCAAsC;IACzC,OAAOH,wBAAwB,EAAEI,KAAK,GAAItB,YAAe,CAAE;EAC5D,CAAC,EAAE,EAAG,CAAC;EAEP,MAAMuB,gBAAgB,GAAG,IAAAC,gCAAmB,EAAEb,UAAU,EAAE;IACzDc,aAAa,EAAE1B,cAAc;IAC7B2B,YAAY,EAAEzB,aAAa;IAC3B0B,YAAY,EAAE,IAAI;IAClBC,QAAQ,EAAE,CACT,CACC5B,YAAe,EACf;MAAEM,SAAS,EAAES,cAAc,IAAK,YAAYA,cAAgB;IAAE,CAAC,CAC/D,CACD;IACDc,8BAA8B,EAAE,IAAI;IACpCC,WAAW,GAAAvB,mBAAA,GAAEE,MAAM,EAAEqB,WAAW,cAAAvB,mBAAA,cAAAA,mBAAA,GAAI;EACrC,CAAE,CAAC;EAEH,OAAO,IAAAwB,QAAA,CAAAC,aAAA;IAAA,GAAUT;EAAgB,CAAI,CAAC;AACvC;AAAC,IAAAU,QAAA,GAEc7B,WAAW;AAAA8B,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_blockEditor","_data","_blocks","_button","ALLOWED_BLOCKS","buttonBlockName","DEFAULT_BLOCK","name","attributesToCopy","ButtonsEdit","attributes","className","_layout$orientation","fontSize","layout","style","blockProps","useBlockProps","classnames","typography","preferredStyle","hasButtonVariations","useSelect","select","preferredStyleVariations","blockEditorStore","getSettings","__experimentalPreferredStyleVariations","buttonVariations","blocksStore","getBlockVariations","value","length","innerBlocksProps","useInnerBlocksProps","allowedBlocks","defaultBlock","directInsert","template","templateInsertUpdatesSelection","orientation","_element","createElement","_default","exports","default"],"sources":["@wordpress/block-library/src/buttons/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { store as blocksStore } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { name as buttonBlockName } from '../button';\n\nconst ALLOWED_BLOCKS = [ buttonBlockName ];\n\nconst DEFAULT_BLOCK = {\n\tname: buttonBlockName,\n\tattributesToCopy: [\n\t\t'backgroundColor',\n\t\t'border',\n\t\t'className',\n\t\t'fontFamily',\n\t\t'fontSize',\n\t\t'gradient',\n\t\t'style',\n\t\t'textColor',\n\t\t'width',\n\t],\n};\n\nfunction ButtonsEdit( { attributes, className } ) {\n\tconst { fontSize, layout, style } = attributes;\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( className, {\n\t\t\t'has-custom-font-size': fontSize || style?.typography?.fontSize,\n\t\t} ),\n\t} );\n\tconst { preferredStyle, hasButtonVariations } = useSelect( ( select ) => {\n\t\tconst preferredStyleVariations =\n\t\t\tselect( blockEditorStore ).getSettings()\n\t\t\t\t.__experimentalPreferredStyleVariations;\n\t\tconst buttonVariations = select( blocksStore ).getBlockVariations(\n\t\t\tbuttonBlockName,\n\t\t\t'inserter'\n\t\t);\n\t\treturn {\n\t\t\tpreferredStyle:\n\t\t\t\tpreferredStyleVariations?.value?.[ buttonBlockName ],\n\t\t\thasButtonVariations: buttonVariations.length > 0,\n\t\t};\n\t}, [] );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: ALLOWED_BLOCKS,\n\t\tdefaultBlock: DEFAULT_BLOCK,\n\t\t// This check should be handled by the `Inserter` internally to be consistent across all blocks that use it.\n\t\tdirectInsert: ! hasButtonVariations,\n\t\ttemplate: [\n\t\t\t[\n\t\t\t\tbuttonBlockName,\n\t\t\t\t{ className: preferredStyle && `is-style-${ preferredStyle }` },\n\t\t\t],\n\t\t],\n\t\ttemplateInsertUpdatesSelection: true,\n\t\torientation: layout?.orientation ?? 'horizontal',\n\t} );\n\n\treturn <div { ...innerBlocksProps } />;\n}\n\nexport default ButtonsEdit;\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,YAAA,GAAAD,OAAA;AAKA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAKA,IAAAI,OAAA,GAAAJ,OAAA;AAnBA;AACA;AACA;;AAGA;AACA;AACA;;AASA;AACA;AACA;;AAGA,MAAMK,cAAc,GAAG,CAAEC,YAAe,CAAE;AAE1C,MAAMC,aAAa,GAAG;EACrBC,IAAI,EAAEF,YAAe;EACrBG,gBAAgB,EAAE,CACjB,iBAAiB,EACjB,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,UAAU,EACV,UAAU,EACV,OAAO,EACP,WAAW,EACX,OAAO;AAET,CAAC;AAED,SAASC,WAAWA,CAAE;EAAEC,UAAU;EAAEC;AAAU,CAAC,EAAG;EAAA,IAAAC,mBAAA;EACjD,MAAM;IAAEC,QAAQ;IAAEC,MAAM;IAAEC;EAAM,CAAC,GAAGL,UAAU;EAC9C,MAAMM,UAAU,GAAG,IAAAC,0BAAa,EAAE;IACjCN,SAAS,EAAE,IAAAO,mBAAU,EAAEP,SAAS,EAAE;MACjC,sBAAsB,EAAEE,QAAQ,IAAIE,KAAK,EAAEI,UAAU,EAAEN;IACxD,CAAE;EACH,CAAE,CAAC;EACH,MAAM;IAAEO,cAAc;IAAEC;EAAoB,CAAC,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IACxE,MAAMC,wBAAwB,GAC7BD,MAAM,CAAEE,kBAAiB,CAAC,CAACC,WAAW,CAAC,CAAC,CACtCC,sCAAsC;IACzC,MAAMC,gBAAgB,GAAGL,MAAM,CAAEM,aAAY,CAAC,CAACC,kBAAkB,CAChEzB,YAAe,EACf,UACD,CAAC;IACD,OAAO;MACNe,cAAc,EACbI,wBAAwB,EAAEO,KAAK,GAAI1B,YAAe,CAAE;MACrDgB,mBAAmB,EAAEO,gBAAgB,CAACI,MAAM,GAAG;IAChD,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,MAAMC,gBAAgB,GAAG,IAAAC,gCAAmB,EAAElB,UAAU,EAAE;IACzDmB,aAAa,EAAE/B,cAAc;IAC7BgC,YAAY,EAAE9B,aAAa;IAC3B;IACA+B,YAAY,EAAE,CAAEhB,mBAAmB;IACnCiB,QAAQ,EAAE,CACT,CACCjC,YAAe,EACf;MAAEM,SAAS,EAAES,cAAc,IAAK,YAAYA,cAAgB;IAAE,CAAC,CAC/D,CACD;IACDmB,8BAA8B,EAAE,IAAI;IACpCC,WAAW,GAAA5B,mBAAA,GAAEE,MAAM,EAAE0B,WAAW,cAAA5B,mBAAA,cAAAA,mBAAA,GAAI;EACrC,CAAE,CAAC;EAEH,OAAO,IAAA6B,QAAA,CAAAC,aAAA;IAAA,GAAUT;EAAgB,CAAI,CAAC;AACvC;AAAC,IAAAU,QAAA,GAEclC,WAAW;AAAAmC,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
@@ -7,6 +7,7 @@ exports.default = CodeEdit;
7
7
  var _element = require("@wordpress/element");
8
8
  var _i18n = require("@wordpress/i18n");
9
9
  var _blockEditor = require("@wordpress/block-editor");
10
+ var _blocks = require("@wordpress/blocks");
10
11
  /**
11
12
  * WordPress dependencies
12
13
  */
@@ -14,22 +15,27 @@ var _blockEditor = require("@wordpress/block-editor");
14
15
  function CodeEdit({
15
16
  attributes,
16
17
  setAttributes,
17
- onRemove
18
+ onRemove,
19
+ insertBlocksAfter,
20
+ mergeBlocks
18
21
  }) {
19
22
  const blockProps = (0, _blockEditor.useBlockProps)();
20
23
  return (0, _element.createElement)("pre", {
21
24
  ...blockProps
22
25
  }, (0, _element.createElement)(_blockEditor.RichText, {
23
26
  tagName: "code",
27
+ identifier: "content",
24
28
  value: attributes.content,
25
29
  onChange: content => setAttributes({
26
30
  content
27
31
  }),
28
32
  onRemove: onRemove,
33
+ onMerge: mergeBlocks,
29
34
  placeholder: (0, _i18n.__)('Write code…'),
30
35
  "aria-label": (0, _i18n.__)('Code'),
31
36
  preserveWhiteSpace: true,
32
- __unstablePastePlainText: true
37
+ __unstablePastePlainText: true,
38
+ __unstableOnSplitAtDoubleLineEnd: () => insertBlocksAfter((0, _blocks.createBlock)((0, _blocks.getDefaultBlockName)()))
33
39
  }));
34
40
  }
35
41
  //# sourceMappingURL=edit.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_blockEditor","CodeEdit","attributes","setAttributes","onRemove","blockProps","useBlockProps","_element","createElement","RichText","tagName","value","content","onChange","placeholder","__","preserveWhiteSpace","__unstablePastePlainText"],"sources":["@wordpress/block-library/src/code/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { RichText, useBlockProps } from '@wordpress/block-editor';\n\nexport default function CodeEdit( { attributes, setAttributes, onRemove } ) {\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<pre { ...blockProps }>\n\t\t\t<RichText\n\t\t\t\ttagName=\"code\"\n\t\t\t\tvalue={ attributes.content }\n\t\t\t\tonChange={ ( content ) => setAttributes( { content } ) }\n\t\t\t\tonRemove={ onRemove }\n\t\t\t\tplaceholder={ __( 'Write code…' ) }\n\t\t\t\taria-label={ __( 'Code' ) }\n\t\t\t\tpreserveWhiteSpace\n\t\t\t\t__unstablePastePlainText\n\t\t\t/>\n\t\t</pre>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAJA;AACA;AACA;;AAIe,SAASE,QAAQA,CAAE;EAAEC,UAAU;EAAEC,aAAa;EAAEC;AAAS,CAAC,EAAG;EAC3E,MAAMC,UAAU,GAAG,IAAAC,0BAAa,EAAC,CAAC;EAClC,OACC,IAAAC,QAAA,CAAAC,aAAA;IAAA,GAAUH;EAAU,GACnB,IAAAE,QAAA,CAAAC,aAAA,EAACR,YAAA,CAAAS,QAAQ;IACRC,OAAO,EAAC,MAAM;IACdC,KAAK,EAAGT,UAAU,CAACU,OAAS;IAC5BC,QAAQ,EAAKD,OAAO,IAAMT,aAAa,CAAE;MAAES;IAAQ,CAAE,CAAG;IACxDR,QAAQ,EAAGA,QAAU;IACrBU,WAAW,EAAG,IAAAC,QAAE,EAAE,aAAc,CAAG;IACnC,cAAa,IAAAA,QAAE,EAAE,MAAO,CAAG;IAC3BC,kBAAkB;IAClBC,wBAAwB;EAAA,CACxB,CACG,CAAC;AAER"}
1
+ {"version":3,"names":["_i18n","require","_blockEditor","_blocks","CodeEdit","attributes","setAttributes","onRemove","insertBlocksAfter","mergeBlocks","blockProps","useBlockProps","_element","createElement","RichText","tagName","identifier","value","content","onChange","onMerge","placeholder","__","preserveWhiteSpace","__unstablePastePlainText","__unstableOnSplitAtDoubleLineEnd","createBlock","getDefaultBlockName"],"sources":["@wordpress/block-library/src/code/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { RichText, useBlockProps } from '@wordpress/block-editor';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\n\nexport default function CodeEdit( {\n\tattributes,\n\tsetAttributes,\n\tonRemove,\n\tinsertBlocksAfter,\n\tmergeBlocks,\n} ) {\n\tconst blockProps = useBlockProps();\n\treturn (\n\t\t<pre { ...blockProps }>\n\t\t\t<RichText\n\t\t\t\ttagName=\"code\"\n\t\t\t\tidentifier=\"content\"\n\t\t\t\tvalue={ attributes.content }\n\t\t\t\tonChange={ ( content ) => setAttributes( { content } ) }\n\t\t\t\tonRemove={ onRemove }\n\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\tplaceholder={ __( 'Write code…' ) }\n\t\t\t\taria-label={ __( 'Code' ) }\n\t\t\t\tpreserveWhiteSpace\n\t\t\t\t__unstablePastePlainText\n\t\t\t\t__unstableOnSplitAtDoubleLineEnd={ () =>\n\t\t\t\t\tinsertBlocksAfter( createBlock( getDefaultBlockName() ) )\n\t\t\t\t}\n\t\t\t/>\n\t\t</pre>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AALA;AACA;AACA;;AAKe,SAASG,QAAQA,CAAE;EACjCC,UAAU;EACVC,aAAa;EACbC,QAAQ;EACRC,iBAAiB;EACjBC;AACD,CAAC,EAAG;EACH,MAAMC,UAAU,GAAG,IAAAC,0BAAa,EAAC,CAAC;EAClC,OACC,IAAAC,QAAA,CAAAC,aAAA;IAAA,GAAUH;EAAU,GACnB,IAAAE,QAAA,CAAAC,aAAA,EAACX,YAAA,CAAAY,QAAQ;IACRC,OAAO,EAAC,MAAM;IACdC,UAAU,EAAC,SAAS;IACpBC,KAAK,EAAGZ,UAAU,CAACa,OAAS;IAC5BC,QAAQ,EAAKD,OAAO,IAAMZ,aAAa,CAAE;MAAEY;IAAQ,CAAE,CAAG;IACxDX,QAAQ,EAAGA,QAAU;IACrBa,OAAO,EAAGX,WAAa;IACvBY,WAAW,EAAG,IAAAC,QAAE,EAAE,aAAc,CAAG;IACnC,cAAa,IAAAA,QAAE,EAAE,MAAO,CAAG;IAC3BC,kBAAkB;IAClBC,wBAAwB;IACxBC,gCAAgC,EAAGA,CAAA,KAClCjB,iBAAiB,CAAE,IAAAkB,mBAAW,EAAE,IAAAC,2BAAmB,EAAC,CAAE,CAAE;EACxD,CACD,CACG,CAAC;AAER"}
@@ -29,7 +29,8 @@ const metadata = {
29
29
  content: {
30
30
  type: "string",
31
31
  source: "html",
32
- selector: "code"
32
+ selector: "code",
33
+ __unstablePreserveWhiteSpace: true
33
34
  }
34
35
  },
35
36
  supports: {
@@ -94,6 +95,11 @@ const settings = {
94
95
  }
95
96
  },
96
97
 
98
+ merge(attributes, attributesToMerge) {
99
+ return {
100
+ content: attributes.content + '\n\n' + attributesToMerge.content
101
+ };
102
+ },
97
103
  transforms: _transforms.default,
98
104
  edit: _edit.default,
99
105
  save: _save.default
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_icons","_initBlock","_interopRequireDefault","_edit","_save","_transforms","metadata","$schema","apiVersion","name","title","category","description","textdomain","attributes","content","type","source","selector","supports","align","anchor","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","__experimentalDefaultControls","spacing","margin","padding","__experimentalBorder","radius","color","width","style","text","background","gradients","exports","settings","icon","example","__","transforms","edit","save","init","initBlock"],"sources":["@wordpress/block-library/src/code/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { code as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\t/* eslint-disable @wordpress/i18n-no-collapsible-whitespace */\n\t\t\t// translators: Preserve \\n markers for line breaks\n\t\t\tcontent: __(\n\t\t\t\t'// A “block” is the abstract term used\\n// to describe units of markup that\\n// when composed together, form the\\n// content or layout of a page.\\nregisterBlockType( name, settings );'\n\t\t\t),\n\t\t\t/* eslint-enable @wordpress/i18n-no-collapsible-whitespace */\n\t\t},\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAKA,IAAAE,UAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,KAAA,GAAAD,sBAAA,CAAAH,OAAA;AAEA,IAAAK,KAAA,GAAAF,sBAAA,CAAAH,OAAA;AACA,IAAAM,WAAA,GAAAH,sBAAA,CAAAH,OAAA;AAbA;AACA;AACA;AAIA;AACA;AACA;AAFA,MAAAO,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,OAAA;MAAAC,IAAA;MAAAC,MAAA;MAAAC,QAAA;IAAA;EAAA;EAAAC,QAAA;IAAAC,KAAA;IAAAC,MAAA;IAAAC,UAAA;MAAAC,QAAA;MAAAC,UAAA;MAAAC,wBAAA;MAAAC,wBAAA;MAAAC,uBAAA;MAAAC,2BAAA;MAAAC,4BAAA;MAAAC,2BAAA;MAAAC,6BAAA;QAAAR,QAAA;MAAA;IAAA;IAAAS,OAAA;MAAAC,MAAA;MAAAC,OAAA;MAAAH,6BAAA;QAAAE,MAAA;QAAAC,OAAA;MAAA;IAAA;IAAAC,oBAAA;MAAAC,MAAA;MAAAC,KAAA;MAAAC,KAAA;MAAAC,KAAA;MAAAR,6BAAA;QAAAO,KAAA;QAAAD,KAAA;MAAA;IAAA;IAAAA,KAAA;MAAAG,IAAA;MAAAC,UAAA;MAAAC,SAAA;MAAAX,6BAAA;QAAAU,UAAA;QAAAD,IAAA;MAAA;IAAA;EAAA;EAAAD,KAAA;AAAA;AAAAI,OAAA,CAAArC,QAAA,GAAAA,QAAA;AASA,MAAM;EAAEG;AAAK,CAAC,GAAGH,QAAQ;AAACqC,OAAA,CAAAlC,IAAA,GAAAA,IAAA;AAInB,MAAMmC,QAAQ,GAAG;EACvBC,IAAI,EAAJA,WAAI;EACJC,OAAO,EAAE;IACRhC,UAAU,EAAE;MACX;MACA;MACAC,OAAO,EAAE,IAAAgC,QAAE,EACV,yLACD;MACA;IACD;EACD,CAAC;;EACDC,UAAU,EAAVA,mBAAU;EACVC,IAAI,EAAJA,aAAI;EACJC,IAAI,EAAJA;AACD,CAAC;AAACP,OAAA,CAAAC,QAAA,GAAAA,QAAA;AAEK,MAAMO,IAAI,GAAGA,CAAA,KAAM,IAAAC,kBAAS,EAAE;EAAE3C,IAAI;EAAEH,QAAQ;EAAEsC;AAAS,CAAE,CAAC;AAACD,OAAA,CAAAQ,IAAA,GAAAA,IAAA"}
1
+ {"version":3,"names":["_i18n","require","_icons","_initBlock","_interopRequireDefault","_edit","_save","_transforms","metadata","$schema","apiVersion","name","title","category","description","textdomain","attributes","content","type","source","selector","__unstablePreserveWhiteSpace","supports","align","anchor","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","__experimentalDefaultControls","spacing","margin","padding","__experimentalBorder","radius","color","width","style","text","background","gradients","exports","settings","icon","example","__","merge","attributesToMerge","transforms","edit","save","init","initBlock"],"sources":["@wordpress/block-library/src/code/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { code as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\t/* eslint-disable @wordpress/i18n-no-collapsible-whitespace */\n\t\t\t// translators: Preserve \\n markers for line breaks\n\t\t\tcontent: __(\n\t\t\t\t'// A “block” is the abstract term used\\n// to describe units of markup that\\n// when composed together, form the\\n// content or layout of a page.\\nregisterBlockType( name, settings );'\n\t\t\t),\n\t\t\t/* eslint-enable @wordpress/i18n-no-collapsible-whitespace */\n\t\t},\n\t},\n\tmerge( attributes, attributesToMerge ) {\n\t\treturn {\n\t\t\tcontent: attributes.content + '\\n\\n' + attributesToMerge.content,\n\t\t};\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAKA,IAAAE,UAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,KAAA,GAAAD,sBAAA,CAAAH,OAAA;AAEA,IAAAK,KAAA,GAAAF,sBAAA,CAAAH,OAAA;AACA,IAAAM,WAAA,GAAAH,sBAAA,CAAAH,OAAA;AAbA;AACA;AACA;AAIA;AACA;AACA;AAFA,MAAAO,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,OAAA;MAAAC,IAAA;MAAAC,MAAA;MAAAC,QAAA;MAAAC,4BAAA;IAAA;EAAA;EAAAC,QAAA;IAAAC,KAAA;IAAAC,MAAA;IAAAC,UAAA;MAAAC,QAAA;MAAAC,UAAA;MAAAC,wBAAA;MAAAC,wBAAA;MAAAC,uBAAA;MAAAC,2BAAA;MAAAC,4BAAA;MAAAC,2BAAA;MAAAC,6BAAA;QAAAR,QAAA;MAAA;IAAA;IAAAS,OAAA;MAAAC,MAAA;MAAAC,OAAA;MAAAH,6BAAA;QAAAE,MAAA;QAAAC,OAAA;MAAA;IAAA;IAAAC,oBAAA;MAAAC,MAAA;MAAAC,KAAA;MAAAC,KAAA;MAAAC,KAAA;MAAAR,6BAAA;QAAAO,KAAA;QAAAD,KAAA;MAAA;IAAA;IAAAA,KAAA;MAAAG,IAAA;MAAAC,UAAA;MAAAC,SAAA;MAAAX,6BAAA;QAAAU,UAAA;QAAAD,IAAA;MAAA;IAAA;EAAA;EAAAD,KAAA;AAAA;AAAAI,OAAA,CAAAtC,QAAA,GAAAA,QAAA;AASA,MAAM;EAAEG;AAAK,CAAC,GAAGH,QAAQ;AAACsC,OAAA,CAAAnC,IAAA,GAAAA,IAAA;AAInB,MAAMoC,QAAQ,GAAG;EACvBC,IAAI,EAAJA,WAAI;EACJC,OAAO,EAAE;IACRjC,UAAU,EAAE;MACX;MACA;MACAC,OAAO,EAAE,IAAAiC,QAAE,EACV,yLACD;MACA;IACD;EACD,CAAC;;EACDC,KAAKA,CAAEnC,UAAU,EAAEoC,iBAAiB,EAAG;IACtC,OAAO;MACNnC,OAAO,EAAED,UAAU,CAACC,OAAO,GAAG,MAAM,GAAGmC,iBAAiB,CAACnC;IAC1D,CAAC;EACF,CAAC;EACDoC,UAAU,EAAVA,mBAAU;EACVC,IAAI,EAAJA,aAAI;EACJC,IAAI,EAAJA;AACD,CAAC;AAACT,OAAA,CAAAC,QAAA,GAAAA,QAAA;AAEK,MAAMS,IAAI,GAAGA,CAAA,KAAM,IAAAC,kBAAS,EAAE;EAAE9C,IAAI;EAAEH,QAAQ;EAAEuC;AAAS,CAAE,CAAC;AAACD,OAAA,CAAAU,IAAA,GAAAA,IAAA"}
@@ -48,6 +48,7 @@ const metadata = {
48
48
  color: {
49
49
  gradients: true,
50
50
  heading: true,
51
+ button: true,
51
52
  link: true,
52
53
  __experimentalDefaultControls: {
53
54
  background: true,
@@ -1 +1 @@
1
- {"version":3,"names":["_icons","require","_initBlock","_interopRequireDefault","_deprecated","_edit","_save","metadata","$schema","apiVersion","name","title","category","parent","description","textdomain","attributes","verticalAlignment","type","width","allowedBlocks","templateLock","supports","__experimentalOnEnter","anchor","reusable","html","color","gradients","heading","link","__experimentalDefaultControls","background","text","spacing","blockGap","padding","__experimentalBorder","style","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","layout","exports","settings","icon","edit","save","deprecated","init","initBlock"],"sources":["@wordpress/block-library/src/column/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { column as icon } from '@wordpress/icons';\n\n/**\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';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":";;;;;;;AAGA,IAAAA,MAAA,GAAAC,OAAA;AAKA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,WAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,KAAA,GAAAF,sBAAA,CAAAF,OAAA;AAEA,IAAAK,KAAA,GAAAH,sBAAA,CAAAF,OAAA;AAZA;AACA;AACA;AAGA;AACA;AACA;AAFA,MAAAM,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,MAAA;EAAAC,WAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,iBAAA;MAAAC,IAAA;IAAA;IAAAC,KAAA;MAAAD,IAAA;IAAA;IAAAE,aAAA;MAAAF,IAAA;IAAA;IAAAG,YAAA;MAAAH,IAAA;MAAA;IAAA;EAAA;EAAAI,QAAA;IAAAC,qBAAA;IAAAC,MAAA;IAAAC,QAAA;IAAAC,IAAA;IAAAC,KAAA;MAAAC,SAAA;MAAAC,OAAA;MAAAC,IAAA;MAAAC,6BAAA;QAAAC,UAAA;QAAAC,IAAA;MAAA;IAAA;IAAAC,OAAA;MAAAC,QAAA;MAAAC,OAAA;MAAAL,6BAAA;QAAAK,OAAA;QAAAD,QAAA;MAAA;IAAA;IAAAE,oBAAA;MAAAV,KAAA;MAAAW,KAAA;MAAAnB,KAAA;MAAAY,6BAAA;QAAAJ,KAAA;QAAAW,KAAA;QAAAnB,KAAA;MAAA;IAAA;IAAAoB,UAAA;MAAAC,QAAA;MAAAC,UAAA;MAAAC,wBAAA;MAAAC,wBAAA;MAAAC,uBAAA;MAAAC,2BAAA;MAAAC,4BAAA;MAAAC,2BAAA;MAAAhB,6BAAA;QAAAS,QAAA;MAAA;IAAA;IAAAQ,MAAA;EAAA;AAAA;AAAAC,OAAA,CAAA1C,QAAA,GAAAA,QAAA;AASA,MAAM;EAAEG;AAAK,CAAC,GAAGH,QAAQ;AAAC0C,OAAA,CAAAvC,IAAA,GAAAA,IAAA;AAInB,MAAMwC,QAAQ,GAAG;EACvBC,IAAI,EAAJA,aAAI;EACJC,IAAI,EAAJA,aAAI;EACJC,IAAI,EAAJA,aAAI;EACJC,UAAU,EAAVA;AACD,CAAC;AAACL,OAAA,CAAAC,QAAA,GAAAA,QAAA;AAEK,MAAMK,IAAI,GAAGA,CAAA,KAAM,IAAAC,kBAAS,EAAE;EAAE9C,IAAI;EAAEH,QAAQ;EAAE2C;AAAS,CAAE,CAAC;AAACD,OAAA,CAAAM,IAAA,GAAAA,IAAA"}
1
+ {"version":3,"names":["_icons","require","_initBlock","_interopRequireDefault","_deprecated","_edit","_save","metadata","$schema","apiVersion","name","title","category","parent","description","textdomain","attributes","verticalAlignment","type","width","allowedBlocks","templateLock","supports","__experimentalOnEnter","anchor","reusable","html","color","gradients","heading","button","link","__experimentalDefaultControls","background","text","spacing","blockGap","padding","__experimentalBorder","style","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","layout","exports","settings","icon","edit","save","deprecated","init","initBlock"],"sources":["@wordpress/block-library/src/column/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { column as icon } from '@wordpress/icons';\n\n/**\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';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":";;;;;;;AAGA,IAAAA,MAAA,GAAAC,OAAA;AAKA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,WAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,KAAA,GAAAF,sBAAA,CAAAF,OAAA;AAEA,IAAAK,KAAA,GAAAH,sBAAA,CAAAF,OAAA;AAZA;AACA;AACA;AAGA;AACA;AACA;AAFA,MAAAM,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,MAAA;EAAAC,WAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,iBAAA;MAAAC,IAAA;IAAA;IAAAC,KAAA;MAAAD,IAAA;IAAA;IAAAE,aAAA;MAAAF,IAAA;IAAA;IAAAG,YAAA;MAAAH,IAAA;MAAA;IAAA;EAAA;EAAAI,QAAA;IAAAC,qBAAA;IAAAC,MAAA;IAAAC,QAAA;IAAAC,IAAA;IAAAC,KAAA;MAAAC,SAAA;MAAAC,OAAA;MAAAC,MAAA;MAAAC,IAAA;MAAAC,6BAAA;QAAAC,UAAA;QAAAC,IAAA;MAAA;IAAA;IAAAC,OAAA;MAAAC,QAAA;MAAAC,OAAA;MAAAL,6BAAA;QAAAK,OAAA;QAAAD,QAAA;MAAA;IAAA;IAAAE,oBAAA;MAAAX,KAAA;MAAAY,KAAA;MAAApB,KAAA;MAAAa,6BAAA;QAAAL,KAAA;QAAAY,KAAA;QAAApB,KAAA;MAAA;IAAA;IAAAqB,UAAA;MAAAC,QAAA;MAAAC,UAAA;MAAAC,wBAAA;MAAAC,wBAAA;MAAAC,uBAAA;MAAAC,2BAAA;MAAAC,4BAAA;MAAAC,2BAAA;MAAAhB,6BAAA;QAAAS,QAAA;MAAA;IAAA;IAAAQ,MAAA;EAAA;AAAA;AAAAC,OAAA,CAAA3C,QAAA,GAAAA,QAAA;AASA,MAAM;EAAEG;AAAK,CAAC,GAAGH,QAAQ;AAAC2C,OAAA,CAAAxC,IAAA,GAAAA,IAAA;AAInB,MAAMyC,QAAQ,GAAG;EACvBC,IAAI,EAAJA,aAAI;EACJC,IAAI,EAAJA,aAAI;EACJC,IAAI,EAAJA,aAAI;EACJC,UAAU,EAAVA;AACD,CAAC;AAACL,OAAA,CAAAC,QAAA,GAAAA,QAAA;AAEK,MAAMK,IAAI,GAAGA,CAAA,KAAM,IAAAC,kBAAS,EAAE;EAAE/C,IAAI;EAAEH,QAAQ;EAAE4C;AAAS,CAAE,CAAC;AAACD,OAAA,CAAAM,IAAA,GAAAA,IAAA"}
@@ -47,6 +47,8 @@ const metadata = {
47
47
  color: {
48
48
  gradients: true,
49
49
  link: true,
50
+ heading: true,
51
+ button: true,
50
52
  __experimentalDefaultControls: {
51
53
  background: true,
52
54
  text: true