@wordpress/block-library 8.3.6 → 8.5.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 (738) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/archives/edit.js +3 -0
  3. package/build/archives/edit.js.map +1 -1
  4. package/build/archives/index.js +1 -0
  5. package/build/archives/index.js.map +1 -1
  6. package/build/audio/edit.js +2 -0
  7. package/build/audio/edit.js.map +1 -1
  8. package/build/avatar/edit.js +5 -9
  9. package/build/avatar/edit.js.map +1 -1
  10. package/build/avatar/index.js +1 -0
  11. package/build/avatar/index.js.map +1 -1
  12. package/build/button/edit.js +3 -1
  13. package/build/button/edit.js.map +1 -1
  14. package/build/button/index.js +17 -6
  15. package/build/button/index.js.map +1 -1
  16. package/build/calendar/index.js +1 -0
  17. package/build/calendar/index.js.map +1 -1
  18. package/build/categories/edit.js +5 -0
  19. package/build/categories/edit.js.map +1 -1
  20. package/build/categories/index.js +1 -0
  21. package/build/categories/index.js.map +1 -1
  22. package/build/columns/edit.js +1 -0
  23. package/build/columns/edit.js.map +1 -1
  24. package/build/columns/utils.js +2 -2
  25. package/build/columns/utils.js.map +1 -1
  26. package/build/comment-author-avatar/index.js +1 -0
  27. package/build/comment-author-avatar/index.js.map +1 -1
  28. package/build/comment-author-name/edit.js +2 -0
  29. package/build/comment-author-name/edit.js.map +1 -1
  30. package/build/comment-author-name/index.js +1 -0
  31. package/build/comment-author-name/index.js.map +1 -1
  32. package/build/comment-content/index.js +1 -0
  33. package/build/comment-content/index.js.map +1 -1
  34. package/build/comment-date/edit.js +1 -0
  35. package/build/comment-date/edit.js.map +1 -1
  36. package/build/comment-date/index.js +1 -0
  37. package/build/comment-date/index.js.map +1 -1
  38. package/build/comment-edit-link/edit.js +1 -0
  39. package/build/comment-edit-link/edit.js.map +1 -1
  40. package/build/comment-edit-link/index.js +1 -0
  41. package/build/comment-edit-link/index.js.map +1 -1
  42. package/build/comment-reply-link/index.js +1 -0
  43. package/build/comment-reply-link/index.js.map +1 -1
  44. package/build/comment-template/index.js +1 -0
  45. package/build/comment-template/index.js.map +1 -1
  46. package/build/comments/index.js +2 -1
  47. package/build/comments/index.js.map +1 -1
  48. package/build/comments-pagination/index.js +1 -0
  49. package/build/comments-pagination/index.js.map +1 -1
  50. package/build/comments-pagination-next/index.js +1 -0
  51. package/build/comments-pagination-next/index.js.map +1 -1
  52. package/build/comments-pagination-numbers/index.js +1 -0
  53. package/build/comments-pagination-numbers/index.js.map +1 -1
  54. package/build/comments-pagination-previous/index.js +1 -0
  55. package/build/comments-pagination-previous/index.js.map +1 -1
  56. package/build/comments-title/edit.js +2 -0
  57. package/build/comments-title/edit.js.map +1 -1
  58. package/build/cover/edit/inspector-controls.js +2 -0
  59. package/build/cover/edit/inspector-controls.js.map +1 -1
  60. package/build/embed/embed-controls.js +1 -0
  61. package/build/embed/embed-controls.js.map +1 -1
  62. package/build/file/index.js +10 -1
  63. package/build/file/index.js.map +1 -1
  64. package/build/file/inspector.js +3 -0
  65. package/build/file/inspector.js.map +1 -1
  66. package/build/freeform/modal.js +1 -1
  67. package/build/freeform/modal.js.map +1 -1
  68. package/build/gallery/edit.js +2 -0
  69. package/build/gallery/edit.js.map +1 -1
  70. package/build/gallery/shared.js +4 -8
  71. package/build/gallery/shared.js.map +1 -1
  72. package/build/gallery/use-image-sizes.js +4 -8
  73. package/build/gallery/use-image-sizes.js.map +1 -1
  74. package/build/gallery/v1/edit.js +8 -3
  75. package/build/gallery/v1/edit.js.map +1 -1
  76. package/build/gallery/v1/gallery-image.js +1 -3
  77. package/build/gallery/v1/gallery-image.js.map +1 -1
  78. package/build/gallery/v1/shared.js +4 -7
  79. package/build/gallery/v1/shared.js.map +1 -1
  80. package/build/home-link/index.js +1 -0
  81. package/build/home-link/index.js.map +1 -1
  82. package/build/image/edit.js +6 -4
  83. package/build/image/edit.js.map +1 -1
  84. package/build/image/image.js +18 -13
  85. package/build/image/image.js.map +1 -1
  86. package/build/image/utils.js +3 -1
  87. package/build/image/utils.js.map +1 -1
  88. package/build/index.js +3 -1
  89. package/build/index.js.map +1 -1
  90. package/build/latest-comments/edit.js +9 -2
  91. package/build/latest-comments/edit.js.map +1 -1
  92. package/build/latest-comments/index.js +14 -0
  93. package/build/latest-comments/index.js.map +1 -1
  94. package/build/latest-posts/deprecated.js +1 -0
  95. package/build/latest-posts/deprecated.js.map +1 -1
  96. package/build/latest-posts/edit.js +4 -0
  97. package/build/latest-posts/edit.js.map +1 -1
  98. package/build/latest-posts/index.js +1 -0
  99. package/build/latest-posts/index.js.map +1 -1
  100. package/build/list/ordered-list-settings.js +1 -0
  101. package/build/list/ordered-list-settings.js.map +1 -1
  102. package/build/list-item/edit.js +2 -2
  103. package/build/list-item/edit.js.map +1 -1
  104. package/build/list-item/hooks/use-outdent-list-item.js +2 -1
  105. package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
  106. package/build/loginout/edit.js +2 -0
  107. package/build/loginout/edit.js.map +1 -1
  108. package/build/loginout/index.js +1 -0
  109. package/build/loginout/index.js.map +1 -1
  110. package/build/media-text/edit.js +2 -0
  111. package/build/media-text/edit.js.map +1 -1
  112. package/build/more/edit.js +1 -0
  113. package/build/more/edit.js.map +1 -1
  114. package/build/navigation/edit/index.js +80 -54
  115. package/build/navigation/edit/index.js.map +1 -1
  116. package/build/navigation/edit/navigation-menu-selector.js +14 -11
  117. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  118. package/build/navigation/edit/overlay-menu-preview.js +1 -0
  119. package/build/navigation/edit/overlay-menu-preview.js.map +1 -1
  120. package/build/navigation/edit/placeholder/index.js +1 -1
  121. package/build/navigation/edit/placeholder/index.js.map +1 -1
  122. package/build/navigation/edit/unsaved-inner-blocks.js +1 -1
  123. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  124. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +1 -1
  125. package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  126. package/build/navigation/edit/use-create-navigation-menu.js +1 -1
  127. package/build/navigation/edit/use-create-navigation-menu.js.map +1 -1
  128. package/build/navigation/edit/use-generate-default-navigation-title.js +1 -1
  129. package/build/navigation/edit/use-generate-default-navigation-title.js.map +1 -1
  130. package/build/navigation/edit/use-navigation-notice.js +4 -7
  131. package/build/navigation/edit/use-navigation-notice.js.map +1 -1
  132. package/build/navigation/index.js +1 -0
  133. package/build/navigation/index.js.map +1 -1
  134. package/build/navigation/use-navigation-menu.js +1 -1
  135. package/build/navigation/use-navigation-menu.js.map +1 -1
  136. package/build/navigation-link/edit.js +10 -5
  137. package/build/navigation-link/edit.js.map +1 -1
  138. package/build/navigation-link/link-ui.js +2 -0
  139. package/build/navigation-link/link-ui.js.map +1 -1
  140. package/build/page-list/convert-to-links-modal.js +47 -0
  141. package/build/page-list/convert-to-links-modal.js.map +1 -0
  142. package/build/page-list/edit.js +15 -28
  143. package/build/page-list/edit.js.map +1 -1
  144. package/build/page-list/index.js +1 -0
  145. package/build/page-list/index.js.map +1 -1
  146. package/build/page-list/use-convert-to-navigation-links.js +61 -5
  147. package/build/page-list/use-convert-to-navigation-links.js.map +1 -1
  148. package/build/paragraph/edit.js +1 -0
  149. package/build/paragraph/edit.js.map +1 -1
  150. package/build/post-author/edit.js +4 -0
  151. package/build/post-author/edit.js.map +1 -1
  152. package/build/post-author/index.js +1 -0
  153. package/build/post-author/index.js.map +1 -1
  154. package/build/post-author-biography/index.js +1 -0
  155. package/build/post-author-biography/index.js.map +1 -1
  156. package/build/post-author-name/edit.js +2 -0
  157. package/build/post-author-name/edit.js.map +1 -1
  158. package/build/post-author-name/index.js +1 -0
  159. package/build/post-author-name/index.js.map +1 -1
  160. package/build/post-comments-count/index.js +1 -0
  161. package/build/post-comments-count/index.js.map +1 -1
  162. package/build/post-comments-form/index.js +1 -0
  163. package/build/post-comments-form/index.js.map +1 -1
  164. package/build/post-comments-link/index.js +1 -0
  165. package/build/post-comments-link/index.js.map +1 -1
  166. package/build/post-content/index.js +1 -0
  167. package/build/post-content/index.js.map +1 -1
  168. package/build/post-date/edit.js +2 -0
  169. package/build/post-date/edit.js.map +1 -1
  170. package/build/post-date/index.js +1 -0
  171. package/build/post-date/index.js.map +1 -1
  172. package/build/post-excerpt/edit.js +50 -3
  173. package/build/post-excerpt/edit.js.map +1 -1
  174. package/build/post-excerpt/index.js +5 -0
  175. package/build/post-excerpt/index.js.map +1 -1
  176. package/build/post-featured-image/dimension-controls.js +52 -1
  177. package/build/post-featured-image/dimension-controls.js.map +1 -1
  178. package/build/post-featured-image/edit.js +11 -4
  179. package/build/post-featured-image/edit.js.map +1 -1
  180. package/build/post-featured-image/index.js +4 -0
  181. package/build/post-featured-image/index.js.map +1 -1
  182. package/build/post-navigation-link/edit.js +2 -0
  183. package/build/post-navigation-link/edit.js.map +1 -1
  184. package/build/post-navigation-link/index.js +1 -0
  185. package/build/post-navigation-link/index.js.map +1 -1
  186. package/build/post-template/index.js +1 -0
  187. package/build/post-template/index.js.map +1 -1
  188. package/build/post-terms/index.js +1 -0
  189. package/build/post-terms/index.js.map +1 -1
  190. package/build/post-terms/use-post-terms.js +1 -1
  191. package/build/post-terms/use-post-terms.js.map +1 -1
  192. package/build/post-time-to-read/edit.js +104 -0
  193. package/build/post-time-to-read/edit.js.map +1 -0
  194. package/build/post-time-to-read/icon.js +25 -0
  195. package/build/post-time-to-read/icon.js.map +1 -0
  196. package/build/post-time-to-read/index.js +57 -0
  197. package/build/post-time-to-read/index.js.map +1 -0
  198. package/build/post-title/edit.js +2 -0
  199. package/build/post-title/edit.js.map +1 -1
  200. package/build/post-title/index.js +1 -0
  201. package/build/post-title/index.js.map +1 -1
  202. package/build/query/edit/inspector-controls/index.js +1 -0
  203. package/build/query/edit/inspector-controls/index.js.map +1 -1
  204. package/build/query/index.js +1 -0
  205. package/build/query/index.js.map +1 -1
  206. package/build/query/utils.js +1 -0
  207. package/build/query/utils.js.map +1 -1
  208. package/build/query-no-results/index.js +1 -0
  209. package/build/query-no-results/index.js.map +1 -1
  210. package/build/query-pagination/index.js +1 -0
  211. package/build/query-pagination/index.js.map +1 -1
  212. package/build/query-pagination-next/index.js +1 -0
  213. package/build/query-pagination-next/index.js.map +1 -1
  214. package/build/query-pagination-numbers/index.js +1 -0
  215. package/build/query-pagination-numbers/index.js.map +1 -1
  216. package/build/query-pagination-previous/index.js +1 -0
  217. package/build/query-pagination-previous/index.js.map +1 -1
  218. package/build/query-title/edit.js +2 -0
  219. package/build/query-title/edit.js.map +1 -1
  220. package/build/query-title/index.js +1 -0
  221. package/build/query-title/index.js.map +1 -1
  222. package/build/read-more/edit.js +1 -0
  223. package/build/read-more/edit.js.map +1 -1
  224. package/build/read-more/index.js +1 -0
  225. package/build/read-more/index.js.map +1 -1
  226. package/build/rss/edit.js +3 -0
  227. package/build/rss/edit.js.map +1 -1
  228. package/build/rss/index.js +1 -0
  229. package/build/rss/index.js.map +1 -1
  230. package/build/search/index.js +1 -0
  231. package/build/search/index.js.map +1 -1
  232. package/build/site-logo/edit.js +10 -11
  233. package/build/site-logo/edit.js.map +1 -1
  234. package/build/site-logo/index.js +1 -0
  235. package/build/site-logo/index.js.map +1 -1
  236. package/build/site-tagline/index.js +1 -0
  237. package/build/site-tagline/index.js.map +1 -1
  238. package/build/site-title/edit/index.js +2 -0
  239. package/build/site-title/edit/index.js.map +1 -1
  240. package/build/site-title/index.js +1 -0
  241. package/build/site-title/index.js.map +1 -1
  242. package/build/social-link/index.js +1 -0
  243. package/build/social-link/index.js.map +1 -1
  244. package/build/social-links/edit.js +2 -0
  245. package/build/social-links/edit.js.map +1 -1
  246. package/build/spacer/controls.native.js +10 -8
  247. package/build/spacer/controls.native.js.map +1 -1
  248. package/build/spacer/edit.native.js +43 -5
  249. package/build/spacer/edit.native.js.map +1 -1
  250. package/build/spacer/save.native.js +30 -0
  251. package/build/spacer/save.native.js.map +1 -0
  252. package/build/table/edit.js +6 -3
  253. package/build/table/edit.js.map +1 -1
  254. package/build/table-of-contents/edit.js +1 -0
  255. package/build/table-of-contents/edit.js.map +1 -1
  256. package/build/table-of-contents/utils.js +1 -1
  257. package/build/table-of-contents/utils.js.map +1 -1
  258. package/build/tag-cloud/edit.js +1 -0
  259. package/build/tag-cloud/edit.js.map +1 -1
  260. package/build/tag-cloud/index.js +1 -0
  261. package/build/tag-cloud/index.js.map +1 -1
  262. package/build/template-part/index.js +1 -0
  263. package/build/template-part/index.js.map +1 -1
  264. package/build/term-description/index.js +1 -0
  265. package/build/term-description/index.js.map +1 -1
  266. package/build/verse/index.js +6 -0
  267. package/build/verse/index.js.map +1 -1
  268. package/build/video/edit-common-settings.js +5 -0
  269. package/build/video/edit-common-settings.js.map +1 -1
  270. package/build-module/archives/edit.js +3 -0
  271. package/build-module/archives/edit.js.map +1 -1
  272. package/build-module/archives/index.js +1 -0
  273. package/build-module/archives/index.js.map +1 -1
  274. package/build-module/audio/edit.js +2 -0
  275. package/build-module/audio/edit.js.map +1 -1
  276. package/build-module/avatar/edit.js +5 -8
  277. package/build-module/avatar/edit.js.map +1 -1
  278. package/build-module/avatar/index.js +1 -0
  279. package/build-module/avatar/index.js.map +1 -1
  280. package/build-module/button/edit.js +2 -1
  281. package/build-module/button/edit.js.map +1 -1
  282. package/build-module/button/index.js +17 -6
  283. package/build-module/button/index.js.map +1 -1
  284. package/build-module/calendar/index.js +1 -0
  285. package/build-module/calendar/index.js.map +1 -1
  286. package/build-module/categories/edit.js +5 -0
  287. package/build-module/categories/edit.js.map +1 -1
  288. package/build-module/categories/index.js +1 -0
  289. package/build-module/categories/index.js.map +1 -1
  290. package/build-module/columns/edit.js +1 -0
  291. package/build-module/columns/edit.js.map +1 -1
  292. package/build-module/columns/utils.js +3 -3
  293. package/build-module/columns/utils.js.map +1 -1
  294. package/build-module/comment-author-avatar/index.js +1 -0
  295. package/build-module/comment-author-avatar/index.js.map +1 -1
  296. package/build-module/comment-author-name/edit.js +2 -0
  297. package/build-module/comment-author-name/edit.js.map +1 -1
  298. package/build-module/comment-author-name/index.js +1 -0
  299. package/build-module/comment-author-name/index.js.map +1 -1
  300. package/build-module/comment-content/index.js +1 -0
  301. package/build-module/comment-content/index.js.map +1 -1
  302. package/build-module/comment-date/edit.js +1 -0
  303. package/build-module/comment-date/edit.js.map +1 -1
  304. package/build-module/comment-date/index.js +1 -0
  305. package/build-module/comment-date/index.js.map +1 -1
  306. package/build-module/comment-edit-link/edit.js +1 -0
  307. package/build-module/comment-edit-link/edit.js.map +1 -1
  308. package/build-module/comment-edit-link/index.js +1 -0
  309. package/build-module/comment-edit-link/index.js.map +1 -1
  310. package/build-module/comment-reply-link/index.js +1 -0
  311. package/build-module/comment-reply-link/index.js.map +1 -1
  312. package/build-module/comment-template/index.js +1 -0
  313. package/build-module/comment-template/index.js.map +1 -1
  314. package/build-module/comments/index.js +2 -1
  315. package/build-module/comments/index.js.map +1 -1
  316. package/build-module/comments-pagination/index.js +1 -0
  317. package/build-module/comments-pagination/index.js.map +1 -1
  318. package/build-module/comments-pagination-next/index.js +1 -0
  319. package/build-module/comments-pagination-next/index.js.map +1 -1
  320. package/build-module/comments-pagination-numbers/index.js +1 -0
  321. package/build-module/comments-pagination-numbers/index.js.map +1 -1
  322. package/build-module/comments-pagination-previous/index.js +1 -0
  323. package/build-module/comments-pagination-previous/index.js.map +1 -1
  324. package/build-module/comments-title/edit.js +2 -0
  325. package/build-module/comments-title/edit.js.map +1 -1
  326. package/build-module/cover/edit/inspector-controls.js +2 -0
  327. package/build-module/cover/edit/inspector-controls.js.map +1 -1
  328. package/build-module/embed/embed-controls.js +1 -0
  329. package/build-module/embed/embed-controls.js.map +1 -1
  330. package/build-module/file/index.js +10 -1
  331. package/build-module/file/index.js.map +1 -1
  332. package/build-module/file/inspector.js +3 -0
  333. package/build-module/file/inspector.js.map +1 -1
  334. package/build-module/freeform/modal.js +1 -1
  335. package/build-module/freeform/modal.js.map +1 -1
  336. package/build-module/gallery/edit.js +2 -0
  337. package/build-module/gallery/edit.js.map +1 -1
  338. package/build-module/gallery/shared.js +4 -7
  339. package/build-module/gallery/shared.js.map +1 -1
  340. package/build-module/gallery/use-image-sizes.js +4 -7
  341. package/build-module/gallery/use-image-sizes.js.map +1 -1
  342. package/build-module/gallery/v1/edit.js +9 -4
  343. package/build-module/gallery/v1/edit.js.map +1 -1
  344. package/build-module/gallery/v1/gallery-image.js +1 -2
  345. package/build-module/gallery/v1/gallery-image.js.map +1 -1
  346. package/build-module/gallery/v1/shared.js +4 -6
  347. package/build-module/gallery/v1/shared.js.map +1 -1
  348. package/build-module/home-link/index.js +1 -0
  349. package/build-module/home-link/index.js.map +1 -1
  350. package/build-module/image/edit.js +7 -5
  351. package/build-module/image/edit.js.map +1 -1
  352. package/build-module/image/image.js +19 -14
  353. package/build-module/image/image.js.map +1 -1
  354. package/build-module/image/utils.js +4 -2
  355. package/build-module/image/utils.js.map +1 -1
  356. package/build-module/index.js +2 -1
  357. package/build-module/index.js.map +1 -1
  358. package/build-module/latest-comments/edit.js +9 -2
  359. package/build-module/latest-comments/edit.js.map +1 -1
  360. package/build-module/latest-comments/index.js +14 -0
  361. package/build-module/latest-comments/index.js.map +1 -1
  362. package/build-module/latest-posts/deprecated.js +1 -0
  363. package/build-module/latest-posts/deprecated.js.map +1 -1
  364. package/build-module/latest-posts/edit.js +4 -0
  365. package/build-module/latest-posts/edit.js.map +1 -1
  366. package/build-module/latest-posts/index.js +1 -0
  367. package/build-module/latest-posts/index.js.map +1 -1
  368. package/build-module/list/ordered-list-settings.js +1 -0
  369. package/build-module/list/ordered-list-settings.js.map +1 -1
  370. package/build-module/list-item/edit.js +2 -2
  371. package/build-module/list-item/edit.js.map +1 -1
  372. package/build-module/list-item/hooks/use-outdent-list-item.js +2 -1
  373. package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
  374. package/build-module/loginout/edit.js +2 -0
  375. package/build-module/loginout/edit.js.map +1 -1
  376. package/build-module/loginout/index.js +1 -0
  377. package/build-module/loginout/index.js.map +1 -1
  378. package/build-module/media-text/edit.js +2 -0
  379. package/build-module/media-text/edit.js.map +1 -1
  380. package/build-module/more/edit.js +1 -0
  381. package/build-module/more/edit.js.map +1 -1
  382. package/build-module/navigation/edit/index.js +82 -56
  383. package/build-module/navigation/edit/index.js.map +1 -1
  384. package/build-module/navigation/edit/navigation-menu-selector.js +14 -10
  385. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  386. package/build-module/navigation/edit/overlay-menu-preview.js +1 -0
  387. package/build-module/navigation/edit/overlay-menu-preview.js.map +1 -1
  388. package/build-module/navigation/edit/placeholder/index.js +1 -1
  389. package/build-module/navigation/edit/placeholder/index.js.map +1 -1
  390. package/build-module/navigation/edit/unsaved-inner-blocks.js +1 -1
  391. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  392. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +1 -1
  393. package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
  394. package/build-module/navigation/edit/use-create-navigation-menu.js +1 -1
  395. package/build-module/navigation/edit/use-create-navigation-menu.js.map +1 -1
  396. package/build-module/navigation/edit/use-generate-default-navigation-title.js +1 -1
  397. package/build-module/navigation/edit/use-generate-default-navigation-title.js.map +1 -1
  398. package/build-module/navigation/edit/use-navigation-notice.js +5 -8
  399. package/build-module/navigation/edit/use-navigation-notice.js.map +1 -1
  400. package/build-module/navigation/index.js +1 -0
  401. package/build-module/navigation/index.js.map +1 -1
  402. package/build-module/navigation/use-navigation-menu.js +1 -1
  403. package/build-module/navigation/use-navigation-menu.js.map +1 -1
  404. package/build-module/navigation-link/edit.js +10 -5
  405. package/build-module/navigation-link/edit.js.map +1 -1
  406. package/build-module/navigation-link/link-ui.js +2 -0
  407. package/build-module/navigation-link/link-ui.js.map +1 -1
  408. package/build-module/page-list/convert-to-links-modal.js +35 -0
  409. package/build-module/page-list/convert-to-links-modal.js.map +1 -0
  410. package/build-module/page-list/edit.js +15 -29
  411. package/build-module/page-list/edit.js.map +1 -1
  412. package/build-module/page-list/index.js +1 -0
  413. package/build-module/page-list/index.js.map +1 -1
  414. package/build-module/page-list/use-convert-to-navigation-links.js +61 -5
  415. package/build-module/page-list/use-convert-to-navigation-links.js.map +1 -1
  416. package/build-module/paragraph/edit.js +1 -0
  417. package/build-module/paragraph/edit.js.map +1 -1
  418. package/build-module/post-author/edit.js +4 -0
  419. package/build-module/post-author/edit.js.map +1 -1
  420. package/build-module/post-author/index.js +1 -0
  421. package/build-module/post-author/index.js.map +1 -1
  422. package/build-module/post-author-biography/index.js +1 -0
  423. package/build-module/post-author-biography/index.js.map +1 -1
  424. package/build-module/post-author-name/edit.js +2 -0
  425. package/build-module/post-author-name/edit.js.map +1 -1
  426. package/build-module/post-author-name/index.js +1 -0
  427. package/build-module/post-author-name/index.js.map +1 -1
  428. package/build-module/post-comments-count/index.js +1 -0
  429. package/build-module/post-comments-count/index.js.map +1 -1
  430. package/build-module/post-comments-form/index.js +1 -0
  431. package/build-module/post-comments-form/index.js.map +1 -1
  432. package/build-module/post-comments-link/index.js +1 -0
  433. package/build-module/post-comments-link/index.js.map +1 -1
  434. package/build-module/post-content/index.js +1 -0
  435. package/build-module/post-content/index.js.map +1 -1
  436. package/build-module/post-date/edit.js +2 -0
  437. package/build-module/post-date/edit.js.map +1 -1
  438. package/build-module/post-date/index.js +1 -0
  439. package/build-module/post-date/index.js.map +1 -1
  440. package/build-module/post-excerpt/edit.js +53 -5
  441. package/build-module/post-excerpt/edit.js.map +1 -1
  442. package/build-module/post-excerpt/index.js +5 -0
  443. package/build-module/post-excerpt/index.js.map +1 -1
  444. package/build-module/post-featured-image/dimension-controls.js +52 -1
  445. package/build-module/post-featured-image/dimension-controls.js.map +1 -1
  446. package/build-module/post-featured-image/edit.js +11 -4
  447. package/build-module/post-featured-image/edit.js.map +1 -1
  448. package/build-module/post-featured-image/index.js +4 -0
  449. package/build-module/post-featured-image/index.js.map +1 -1
  450. package/build-module/post-navigation-link/edit.js +2 -0
  451. package/build-module/post-navigation-link/edit.js.map +1 -1
  452. package/build-module/post-navigation-link/index.js +1 -0
  453. package/build-module/post-navigation-link/index.js.map +1 -1
  454. package/build-module/post-template/index.js +1 -0
  455. package/build-module/post-template/index.js.map +1 -1
  456. package/build-module/post-terms/index.js +1 -0
  457. package/build-module/post-terms/index.js.map +1 -1
  458. package/build-module/post-terms/use-post-terms.js +1 -1
  459. package/build-module/post-terms/use-post-terms.js.map +1 -1
  460. package/build-module/post-time-to-read/edit.js +90 -0
  461. package/build-module/post-time-to-read/edit.js.map +1 -0
  462. package/build-module/post-time-to-read/icon.js +15 -0
  463. package/build-module/post-time-to-read/icon.js.map +1 -0
  464. package/build-module/post-time-to-read/index.js +40 -0
  465. package/build-module/post-time-to-read/index.js.map +1 -0
  466. package/build-module/post-title/edit.js +2 -0
  467. package/build-module/post-title/edit.js.map +1 -1
  468. package/build-module/post-title/index.js +1 -0
  469. package/build-module/post-title/index.js.map +1 -1
  470. package/build-module/query/edit/inspector-controls/index.js +1 -0
  471. package/build-module/query/edit/inspector-controls/index.js.map +1 -1
  472. package/build-module/query/index.js +1 -0
  473. package/build-module/query/index.js.map +1 -1
  474. package/build-module/query/utils.js +1 -0
  475. package/build-module/query/utils.js.map +1 -1
  476. package/build-module/query-no-results/index.js +1 -0
  477. package/build-module/query-no-results/index.js.map +1 -1
  478. package/build-module/query-pagination/index.js +1 -0
  479. package/build-module/query-pagination/index.js.map +1 -1
  480. package/build-module/query-pagination-next/index.js +1 -0
  481. package/build-module/query-pagination-next/index.js.map +1 -1
  482. package/build-module/query-pagination-numbers/index.js +1 -0
  483. package/build-module/query-pagination-numbers/index.js.map +1 -1
  484. package/build-module/query-pagination-previous/index.js +1 -0
  485. package/build-module/query-pagination-previous/index.js.map +1 -1
  486. package/build-module/query-title/edit.js +2 -0
  487. package/build-module/query-title/edit.js.map +1 -1
  488. package/build-module/query-title/index.js +1 -0
  489. package/build-module/query-title/index.js.map +1 -1
  490. package/build-module/read-more/edit.js +1 -0
  491. package/build-module/read-more/edit.js.map +1 -1
  492. package/build-module/read-more/index.js +1 -0
  493. package/build-module/read-more/index.js.map +1 -1
  494. package/build-module/rss/edit.js +3 -0
  495. package/build-module/rss/edit.js.map +1 -1
  496. package/build-module/rss/index.js +1 -0
  497. package/build-module/rss/index.js.map +1 -1
  498. package/build-module/search/index.js +1 -0
  499. package/build-module/search/index.js.map +1 -1
  500. package/build-module/site-logo/edit.js +10 -11
  501. package/build-module/site-logo/edit.js.map +1 -1
  502. package/build-module/site-logo/index.js +1 -0
  503. package/build-module/site-logo/index.js.map +1 -1
  504. package/build-module/site-tagline/index.js +1 -0
  505. package/build-module/site-tagline/index.js.map +1 -1
  506. package/build-module/site-title/edit/index.js +2 -0
  507. package/build-module/site-title/edit/index.js.map +1 -1
  508. package/build-module/site-title/index.js +1 -0
  509. package/build-module/site-title/index.js.map +1 -1
  510. package/build-module/social-link/index.js +1 -0
  511. package/build-module/social-link/index.js.map +1 -1
  512. package/build-module/social-links/edit.js +2 -0
  513. package/build-module/social-links/edit.js.map +1 -1
  514. package/build-module/spacer/controls.native.js +9 -8
  515. package/build-module/spacer/controls.native.js.map +1 -1
  516. package/build-module/spacer/edit.native.js +39 -7
  517. package/build-module/spacer/edit.native.js.map +1 -1
  518. package/build-module/spacer/save.native.js +22 -0
  519. package/build-module/spacer/save.native.js.map +1 -0
  520. package/build-module/table/edit.js +6 -3
  521. package/build-module/table/edit.js.map +1 -1
  522. package/build-module/table-of-contents/edit.js +1 -0
  523. package/build-module/table-of-contents/edit.js.map +1 -1
  524. package/build-module/table-of-contents/utils.js +1 -1
  525. package/build-module/table-of-contents/utils.js.map +1 -1
  526. package/build-module/tag-cloud/edit.js +1 -0
  527. package/build-module/tag-cloud/edit.js.map +1 -1
  528. package/build-module/tag-cloud/index.js +1 -0
  529. package/build-module/tag-cloud/index.js.map +1 -1
  530. package/build-module/template-part/index.js +1 -0
  531. package/build-module/template-part/index.js.map +1 -1
  532. package/build-module/term-description/index.js +1 -0
  533. package/build-module/term-description/index.js.map +1 -1
  534. package/build-module/verse/index.js +6 -0
  535. package/build-module/verse/index.js.map +1 -1
  536. package/build-module/video/edit-common-settings.js +5 -0
  537. package/build-module/video/edit-common-settings.js.map +1 -1
  538. package/build-style/avatar/style-rtl.css +3 -0
  539. package/build-style/avatar/style.css +3 -0
  540. package/build-style/button/editor-rtl.css +31 -0
  541. package/build-style/button/editor.css +31 -0
  542. package/build-style/button/style-rtl.css +31 -0
  543. package/build-style/button/style.css +31 -0
  544. package/build-style/editor-rtl.css +33 -1
  545. package/build-style/editor.css +33 -1
  546. package/build-style/file/style-rtl.css +1 -0
  547. package/build-style/file/style.css +1 -0
  548. package/build-style/image/editor-rtl.css +1 -0
  549. package/build-style/image/editor.css +1 -0
  550. package/build-style/image/style-rtl.css +6 -2
  551. package/build-style/image/style.css +6 -0
  552. package/build-style/latest-comments/style-rtl.css +18 -5
  553. package/build-style/latest-comments/style.css +18 -5
  554. package/build-style/post-excerpt/editor-rtl.css +1 -1
  555. package/build-style/post-excerpt/editor.css +1 -1
  556. package/build-style/style-rtl.css +59 -7
  557. package/build-style/style.css +59 -5
  558. package/build-types/table-of-contents/utils.d.ts +1 -1
  559. package/package.json +31 -30
  560. package/src/archives/block.json +1 -0
  561. package/src/archives/edit.js +3 -0
  562. package/src/audio/edit.js +2 -0
  563. package/src/audio/test/__snapshots__/edit.native.js.snap +38 -38
  564. package/src/avatar/block.json +1 -0
  565. package/src/avatar/edit.js +2 -4
  566. package/src/avatar/index.php +67 -63
  567. package/src/avatar/style.scss +3 -0
  568. package/src/button/block.json +17 -6
  569. package/src/button/edit.js +2 -1
  570. package/src/button/editor.scss +36 -0
  571. package/src/button/style.scss +37 -1
  572. package/src/buttons/test/__snapshots__/edit.native.js.snap +11 -11
  573. package/src/calendar/block.json +1 -0
  574. package/src/categories/block.json +1 -0
  575. package/src/categories/edit.js +5 -0
  576. package/src/code/test/__snapshots__/edit.native.js.snap +2 -2
  577. package/src/columns/edit.js +1 -0
  578. package/src/columns/test/__snapshots__/edit.native.js.snap +66 -66
  579. package/src/columns/test/utils.js +54 -0
  580. package/src/columns/utils.js +8 -8
  581. package/src/comment-author-avatar/block.json +1 -0
  582. package/src/comment-author-name/block.json +1 -0
  583. package/src/comment-author-name/edit.js +2 -0
  584. package/src/comment-content/block.json +1 -0
  585. package/src/comment-date/block.json +1 -0
  586. package/src/comment-date/edit.js +1 -0
  587. package/src/comment-edit-link/block.json +1 -0
  588. package/src/comment-edit-link/edit.js +1 -0
  589. package/src/comment-reply-link/block.json +1 -0
  590. package/src/comment-template/block.json +1 -0
  591. package/src/comments/block.json +2 -1
  592. package/src/comments-pagination/block.json +1 -0
  593. package/src/comments-pagination-next/block.json +1 -0
  594. package/src/comments-pagination-numbers/block.json +1 -0
  595. package/src/comments-pagination-previous/block.json +1 -0
  596. package/src/comments-title/edit.js +2 -0
  597. package/src/cover/edit/inspector-controls.js +2 -0
  598. package/src/cover/index.php +4 -6
  599. package/src/cover/test/__snapshots__/edit.native.js.snap +36 -36
  600. package/src/embed/embed-controls.js +1 -0
  601. package/src/embed/test/__snapshots__/index.native.js.snap +52 -52
  602. package/src/file/block.json +10 -1
  603. package/src/file/inspector.js +3 -0
  604. package/src/file/style.scss +1 -0
  605. package/src/file/test/__snapshots__/edit.native.js.snap +49 -49
  606. package/src/freeform/modal.js +1 -1
  607. package/src/gallery/edit.js +2 -0
  608. package/src/gallery/shared.js +6 -11
  609. package/src/gallery/test/__snapshots__/index.native.js.snap +71 -71
  610. package/src/gallery/use-image-sizes.js +3 -16
  611. package/src/gallery/v1/edit.js +8 -16
  612. package/src/gallery/v1/gallery-image.js +1 -2
  613. package/src/gallery/v1/shared.js +5 -10
  614. package/src/group/test/__snapshots__/edit.native.js.snap +5 -5
  615. package/src/heading/test/__snapshots__/index.native.js.snap +1 -1
  616. package/src/home-link/block.json +1 -0
  617. package/src/image/edit.js +4 -4
  618. package/src/image/editor.scss +1 -0
  619. package/src/image/image.js +9 -20
  620. package/src/image/index.php +4 -4
  621. package/src/image/style.scss +13 -0
  622. package/src/image/utils.js +2 -2
  623. package/src/index.js +2 -0
  624. package/src/latest-comments/block.json +14 -0
  625. package/src/latest-comments/edit.js +12 -2
  626. package/src/latest-comments/style.scss +25 -7
  627. package/src/latest-posts/block.json +1 -0
  628. package/src/latest-posts/edit.js +4 -0
  629. package/src/list/ordered-list-settings.js +1 -0
  630. package/src/list/test/__snapshots__/edit.native.js.snap +4 -4
  631. package/src/list-item/edit.js +10 -3
  632. package/src/list-item/hooks/use-outdent-list-item.js +2 -1
  633. package/src/loginout/block.json +1 -0
  634. package/src/loginout/edit.js +2 -0
  635. package/src/media-text/edit.js +2 -0
  636. package/src/missing/test/__snapshots__/edit.native.js.snap +1 -1
  637. package/src/more/edit.js +1 -0
  638. package/src/navigation/block.json +1 -0
  639. package/src/navigation/edit/index.js +130 -82
  640. package/src/navigation/edit/navigation-menu-selector.js +12 -26
  641. package/src/navigation/edit/overlay-menu-preview.js +1 -0
  642. package/src/navigation/edit/placeholder/index.js +1 -1
  643. package/src/navigation/edit/test/navigation-menu-selector.js +638 -0
  644. package/src/navigation/edit/unsaved-inner-blocks.js +1 -0
  645. package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +51 -48
  646. package/src/navigation/edit/use-create-navigation-menu.js +1 -1
  647. package/src/navigation/edit/use-generate-default-navigation-title.js +1 -1
  648. package/src/navigation/edit/use-navigation-notice.js +16 -13
  649. package/src/navigation/index.php +50 -25
  650. package/src/navigation/use-navigation-menu.js +1 -1
  651. package/src/navigation-link/edit.js +10 -5
  652. package/src/navigation-link/link-ui.js +2 -0
  653. package/src/navigation-link/test/__snapshots__/hooks.js.snap +12 -12
  654. package/src/page-list/block.json +1 -0
  655. package/src/page-list/convert-to-links-modal.js +38 -0
  656. package/src/page-list/edit.js +17 -37
  657. package/src/page-list/index.php +4 -4
  658. package/src/page-list/test/convert-to-links-modal.js +134 -0
  659. package/src/page-list/use-convert-to-navigation-links.js +64 -4
  660. package/src/paragraph/edit.js +1 -0
  661. package/src/post-author/block.json +1 -0
  662. package/src/post-author/edit.js +4 -0
  663. package/src/post-author-biography/block.json +1 -0
  664. package/src/post-author-name/block.json +1 -0
  665. package/src/post-author-name/edit.js +2 -0
  666. package/src/post-comments-count/block.json +1 -0
  667. package/src/post-comments-form/block.json +1 -0
  668. package/src/post-comments-link/block.json +1 -0
  669. package/src/post-content/block.json +1 -0
  670. package/src/post-date/block.json +1 -0
  671. package/src/post-date/edit.js +2 -0
  672. package/src/post-excerpt/block.json +5 -0
  673. package/src/post-excerpt/edit.js +73 -7
  674. package/src/post-excerpt/editor.scss +1 -1
  675. package/src/post-excerpt/index.php +29 -5
  676. package/src/post-featured-image/block.json +4 -0
  677. package/src/post-featured-image/dimension-controls.js +64 -2
  678. package/src/post-featured-image/edit.js +20 -6
  679. package/src/post-featured-image/index.php +25 -9
  680. package/src/post-navigation-link/block.json +1 -0
  681. package/src/post-navigation-link/edit.js +2 -0
  682. package/src/post-template/block.json +1 -0
  683. package/src/post-terms/block.json +1 -0
  684. package/src/post-terms/index.php +1 -0
  685. package/src/post-terms/use-post-terms.js +1 -1
  686. package/src/post-time-to-read/block.json +20 -0
  687. package/src/post-time-to-read/edit.js +101 -0
  688. package/src/post-time-to-read/icon.js +15 -0
  689. package/src/post-time-to-read/index.js +17 -0
  690. package/src/post-time-to-read/index.php +62 -0
  691. package/src/post-title/block.json +1 -0
  692. package/src/post-title/edit.js +2 -0
  693. package/src/post-title/index.php +3 -3
  694. package/src/preformatted/test/__snapshots__/edit.native.js.snap +10 -10
  695. package/src/query/block.json +1 -0
  696. package/src/query/edit/inspector-controls/index.js +1 -0
  697. package/src/query-no-results/block.json +1 -0
  698. package/src/query-pagination/block.json +1 -0
  699. package/src/query-pagination-next/block.json +1 -0
  700. package/src/query-pagination-numbers/block.json +1 -0
  701. package/src/query-pagination-previous/block.json +1 -0
  702. package/src/query-title/block.json +1 -0
  703. package/src/query-title/edit.js +2 -0
  704. package/src/read-more/block.json +1 -0
  705. package/src/read-more/edit.js +1 -0
  706. package/src/rss/block.json +1 -0
  707. package/src/rss/edit.js +3 -0
  708. package/src/search/block.json +1 -0
  709. package/src/search/test/__snapshots__/edit.native.js.snap +60 -60
  710. package/src/separator/test/__snapshots__/edit.native.js.snap +1 -1
  711. package/src/site-logo/block.json +1 -0
  712. package/src/site-logo/edit.js +6 -6
  713. package/src/site-logo/index.php +7 -2
  714. package/src/site-tagline/block.json +1 -0
  715. package/src/site-title/block.json +1 -0
  716. package/src/site-title/edit/index.js +2 -0
  717. package/src/social-link/block.json +1 -0
  718. package/src/social-link/index.php +6 -6
  719. package/src/social-links/edit.js +2 -0
  720. package/src/social-links/test/__snapshots__/edit.native.js.snap +16 -16
  721. package/src/spacer/controls.native.js +13 -5
  722. package/src/spacer/edit.native.js +45 -6
  723. package/src/spacer/save.native.js +18 -0
  724. package/src/spacer/test/__snapshots__/index.native.js.snap +21 -9
  725. package/src/spacer/test/index.native.js +81 -0
  726. package/src/table/edit.js +6 -3
  727. package/src/table-of-contents/edit.js +1 -0
  728. package/src/table-of-contents/utils.ts +1 -1
  729. package/src/tag-cloud/block.json +1 -0
  730. package/src/tag-cloud/edit.js +1 -0
  731. package/src/template-part/block.json +1 -0
  732. package/src/template-part/index.php +7 -6
  733. package/src/term-description/block.json +1 -0
  734. package/src/verse/block.json +6 -0
  735. package/src/verse/test/__snapshots__/edit.native.js.snap +2 -2
  736. package/src/video/edit-common-settings.js +5 -0
  737. package/tsconfig.json +2 -1
  738. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/social-links/edit.js"],"names":["classNames","useEffect","useRef","BlockControls","useInnerBlocksProps","useBlockProps","InspectorControls","ContrastChecker","withColors","__experimentalColorGradientSettingsDropdown","ColorGradientSettingsDropdown","__experimentalUseMultipleOriginColorsAndGradients","useMultipleOriginColorsAndGradients","MenuGroup","MenuItem","PanelBody","ToggleControl","ToolbarDropdownMenu","__","check","ALLOWED_BLOCKS","sizeOptions","name","value","SocialLinksEdit","props","clientId","attributes","iconBackgroundColor","iconColor","isSelected","setAttributes","setIconBackgroundColor","setIconColor","iconBackgroundColorValue","customIconBackgroundColor","iconColorValue","openInNewTab","showLabels","size","logosOnly","className","includes","backgroundBackup","current","undefined","SocialPlaceholder","SelectedSocialPlaceholder","color","blockProps","innerBlocksProps","allowedBlocks","placeholder","templateLock","orientation","layout","__experimentalAppenderTagName","POPOVER_PROPS","position","colorSettings","onChange","colorValue","label","resetAllFilter","push","colorGradientSettings","onClose","map","entry","onColorChange","isShownByDefault","enableAlpha","textColor","backgroundColor","iconColorAttributes"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useRef } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tuseInnerBlocksProps,\n\tuseBlockProps,\n\tInspectorControls,\n\tContrastChecker,\n\twithColors,\n\t__experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\nimport {\n\tMenuGroup,\n\tMenuItem,\n\tPanelBody,\n\tToggleControl,\n\tToolbarDropdownMenu,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { check } from '@wordpress/icons';\n\nconst ALLOWED_BLOCKS = [ 'core/social-link' ];\n\nconst sizeOptions = [\n\t{ name: __( 'Small' ), value: 'has-small-icon-size' },\n\t{ name: __( 'Normal' ), value: 'has-normal-icon-size' },\n\t{ name: __( 'Large' ), value: 'has-large-icon-size' },\n\t{ name: __( 'Huge' ), value: 'has-huge-icon-size' },\n];\n\nexport function SocialLinksEdit( props ) {\n\tconst {\n\t\tclientId,\n\t\tattributes,\n\t\ticonBackgroundColor,\n\t\ticonColor,\n\t\tisSelected,\n\t\tsetAttributes,\n\t\tsetIconBackgroundColor,\n\t\tsetIconColor,\n\t} = props;\n\n\tconst {\n\t\ticonBackgroundColorValue,\n\t\tcustomIconBackgroundColor,\n\t\ticonColorValue,\n\t\topenInNewTab,\n\t\tshowLabels,\n\t\tsize,\n\t} = attributes;\n\n\tconst logosOnly = attributes.className?.includes( 'is-style-logos-only' );\n\n\t// Remove icon background color when logos only style is selected or\n\t// restore it when any other style is selected.\n\tconst backgroundBackup = useRef( {} );\n\tuseEffect( () => {\n\t\tif ( logosOnly ) {\n\t\t\tbackgroundBackup.current = {\n\t\t\t\ticonBackgroundColor,\n\t\t\t\ticonBackgroundColorValue,\n\t\t\t\tcustomIconBackgroundColor,\n\t\t\t};\n\t\t\tsetAttributes( {\n\t\t\t\ticonBackgroundColor: undefined,\n\t\t\t\tcustomIconBackgroundColor: undefined,\n\t\t\t\ticonBackgroundColorValue: undefined,\n\t\t\t} );\n\t\t} else {\n\t\t\tsetAttributes( { ...backgroundBackup.current } );\n\t\t}\n\t}, [ logosOnly ] );\n\n\tconst SocialPlaceholder = (\n\t\t<li className=\"wp-block-social-links__social-placeholder\">\n\t\t\t<div className=\"wp-block-social-links__social-placeholder-icons\">\n\t\t\t\t<div className=\"wp-social-link wp-social-link-twitter\"></div>\n\t\t\t\t<div className=\"wp-social-link wp-social-link-facebook\"></div>\n\t\t\t\t<div className=\"wp-social-link wp-social-link-instagram\"></div>\n\t\t\t</div>\n\t\t</li>\n\t);\n\n\tconst SelectedSocialPlaceholder = (\n\t\t<li className=\"wp-block-social-links__social-prompt\">\n\t\t\t{ __( 'Click plus to add' ) }\n\t\t</li>\n\t);\n\n\t// Fallback color values are used maintain selections in case switching\n\t// themes and named colors in palette do not match.\n\tconst className = classNames( size, {\n\t\t'has-visible-labels': showLabels,\n\t\t'has-icon-color': iconColor.color || iconColorValue,\n\t\t'has-icon-background-color':\n\t\t\ticonBackgroundColor.color || iconBackgroundColorValue,\n\t} );\n\n\tconst blockProps = useBlockProps( { className } );\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: ALLOWED_BLOCKS,\n\t\tplaceholder: isSelected ? SelectedSocialPlaceholder : SocialPlaceholder,\n\t\ttemplateLock: false,\n\t\torientation: attributes.layout?.orientation ?? 'horizontal',\n\t\t__experimentalAppenderTagName: 'li',\n\t} );\n\n\tconst POPOVER_PROPS = {\n\t\tposition: 'bottom right',\n\t};\n\n\tconst colorSettings = [\n\t\t{\n\t\t\t// Use custom attribute as fallback to prevent loss of named color selection when\n\t\t\t// switching themes to a new theme that does not have a matching named color.\n\t\t\tvalue: iconColor.color || iconColorValue,\n\t\t\tonChange: ( colorValue ) => {\n\t\t\t\tsetIconColor( colorValue );\n\t\t\t\tsetAttributes( { iconColorValue: colorValue } );\n\t\t\t},\n\t\t\tlabel: __( 'Icon color' ),\n\t\t\tresetAllFilter: () => {\n\t\t\t\tsetIconColor( undefined );\n\t\t\t\tsetAttributes( { iconColorValue: undefined } );\n\t\t\t},\n\t\t},\n\t];\n\n\tif ( ! logosOnly ) {\n\t\tcolorSettings.push( {\n\t\t\t// Use custom attribute as fallback to prevent loss of named color selection when\n\t\t\t// switching themes to a new theme that does not have a matching named color.\n\t\t\tvalue: iconBackgroundColor.color || iconBackgroundColorValue,\n\t\t\tonChange: ( colorValue ) => {\n\t\t\t\tsetIconBackgroundColor( colorValue );\n\t\t\t\tsetAttributes( {\n\t\t\t\t\ticonBackgroundColorValue: colorValue,\n\t\t\t\t} );\n\t\t\t},\n\t\t\tlabel: __( 'Icon background' ),\n\t\t\tresetAllFilter: () => {\n\t\t\t\tsetIconBackgroundColor( undefined );\n\t\t\t\tsetAttributes( { iconBackgroundColorValue: undefined } );\n\t\t\t},\n\t\t} );\n\t}\n\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\tlabel={ __( 'Size' ) }\n\t\t\t\t\ttext={ __( 'Size' ) }\n\t\t\t\t\ticon={ null }\n\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t{ sizeOptions.map( ( entry ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t( size === entry.value ||\n\t\t\t\t\t\t\t\t\t\t\t\t( ! size &&\n\t\t\t\t\t\t\t\t\t\t\t\t\tentry.value ===\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'has-normal-icon-size' ) ) &&\n\t\t\t\t\t\t\t\t\t\t\tcheck\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tisSelected={ size === entry.value }\n\t\t\t\t\t\t\t\t\t\tkey={ entry.value }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\tsize: entry.value,\n\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ entry.name }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarDropdownMenu>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Link settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Open links in new tab' ) }\n\t\t\t\t\t\tchecked={ openInNewTab }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( { openInNewTab: ! openInNewTab } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Show labels' ) }\n\t\t\t\t\t\tchecked={ showLabels }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showLabels: ! showLabels } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"color\">\n\t\t\t\t{ colorSettings.map(\n\t\t\t\t\t( { onChange, label, value, resetAllFilter } ) => (\n\t\t\t\t\t\t<ColorGradientSettingsDropdown\n\t\t\t\t\t\t\tkey={ `social-links-color-${ label }` }\n\t\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\t\tsettings={ [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcolorValue: value,\n\t\t\t\t\t\t\t\t\tlabel,\n\t\t\t\t\t\t\t\t\tonColorChange: onChange,\n\t\t\t\t\t\t\t\t\tisShownByDefault: true,\n\t\t\t\t\t\t\t\t\tresetAllFilter,\n\t\t\t\t\t\t\t\t\tenableAlpha: true,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t\t\t{ ...colorGradientSettings }\n\t\t\t\t\t\t/>\n\t\t\t\t\t)\n\t\t\t\t) }\n\t\t\t\t{ ! logosOnly && (\n\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t{ ...{\n\t\t\t\t\t\t\ttextColor: iconColorValue,\n\t\t\t\t\t\t\tbackgroundColor: iconBackgroundColorValue,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisLargeText={ false }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t\t<ul { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n\nconst iconColorAttributes = {\n\ticonColor: 'icon-color',\n\ticonBackgroundColor: 'icon-background-color',\n};\n\nexport default withColors( iconColorAttributes )( SocialLinksEdit );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/social-links/edit.js"],"names":["classNames","useEffect","useRef","BlockControls","useInnerBlocksProps","useBlockProps","InspectorControls","ContrastChecker","withColors","__experimentalColorGradientSettingsDropdown","ColorGradientSettingsDropdown","__experimentalUseMultipleOriginColorsAndGradients","useMultipleOriginColorsAndGradients","MenuGroup","MenuItem","PanelBody","ToggleControl","ToolbarDropdownMenu","__","check","ALLOWED_BLOCKS","sizeOptions","name","value","SocialLinksEdit","props","clientId","attributes","iconBackgroundColor","iconColor","isSelected","setAttributes","setIconBackgroundColor","setIconColor","iconBackgroundColorValue","customIconBackgroundColor","iconColorValue","openInNewTab","showLabels","size","logosOnly","className","includes","backgroundBackup","current","undefined","SocialPlaceholder","SelectedSocialPlaceholder","color","blockProps","innerBlocksProps","allowedBlocks","placeholder","templateLock","orientation","layout","__experimentalAppenderTagName","POPOVER_PROPS","position","colorSettings","onChange","colorValue","label","resetAllFilter","push","colorGradientSettings","onClose","map","entry","onColorChange","isShownByDefault","enableAlpha","textColor","backgroundColor","iconColorAttributes"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useRef } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tuseInnerBlocksProps,\n\tuseBlockProps,\n\tInspectorControls,\n\tContrastChecker,\n\twithColors,\n\t__experimentalColorGradientSettingsDropdown as ColorGradientSettingsDropdown,\n\t__experimentalUseMultipleOriginColorsAndGradients as useMultipleOriginColorsAndGradients,\n} from '@wordpress/block-editor';\nimport {\n\tMenuGroup,\n\tMenuItem,\n\tPanelBody,\n\tToggleControl,\n\tToolbarDropdownMenu,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { check } from '@wordpress/icons';\n\nconst ALLOWED_BLOCKS = [ 'core/social-link' ];\n\nconst sizeOptions = [\n\t{ name: __( 'Small' ), value: 'has-small-icon-size' },\n\t{ name: __( 'Normal' ), value: 'has-normal-icon-size' },\n\t{ name: __( 'Large' ), value: 'has-large-icon-size' },\n\t{ name: __( 'Huge' ), value: 'has-huge-icon-size' },\n];\n\nexport function SocialLinksEdit( props ) {\n\tconst {\n\t\tclientId,\n\t\tattributes,\n\t\ticonBackgroundColor,\n\t\ticonColor,\n\t\tisSelected,\n\t\tsetAttributes,\n\t\tsetIconBackgroundColor,\n\t\tsetIconColor,\n\t} = props;\n\n\tconst {\n\t\ticonBackgroundColorValue,\n\t\tcustomIconBackgroundColor,\n\t\ticonColorValue,\n\t\topenInNewTab,\n\t\tshowLabels,\n\t\tsize,\n\t} = attributes;\n\n\tconst logosOnly = attributes.className?.includes( 'is-style-logos-only' );\n\n\t// Remove icon background color when logos only style is selected or\n\t// restore it when any other style is selected.\n\tconst backgroundBackup = useRef( {} );\n\tuseEffect( () => {\n\t\tif ( logosOnly ) {\n\t\t\tbackgroundBackup.current = {\n\t\t\t\ticonBackgroundColor,\n\t\t\t\ticonBackgroundColorValue,\n\t\t\t\tcustomIconBackgroundColor,\n\t\t\t};\n\t\t\tsetAttributes( {\n\t\t\t\ticonBackgroundColor: undefined,\n\t\t\t\tcustomIconBackgroundColor: undefined,\n\t\t\t\ticonBackgroundColorValue: undefined,\n\t\t\t} );\n\t\t} else {\n\t\t\tsetAttributes( { ...backgroundBackup.current } );\n\t\t}\n\t}, [ logosOnly ] );\n\n\tconst SocialPlaceholder = (\n\t\t<li className=\"wp-block-social-links__social-placeholder\">\n\t\t\t<div className=\"wp-block-social-links__social-placeholder-icons\">\n\t\t\t\t<div className=\"wp-social-link wp-social-link-twitter\"></div>\n\t\t\t\t<div className=\"wp-social-link wp-social-link-facebook\"></div>\n\t\t\t\t<div className=\"wp-social-link wp-social-link-instagram\"></div>\n\t\t\t</div>\n\t\t</li>\n\t);\n\n\tconst SelectedSocialPlaceholder = (\n\t\t<li className=\"wp-block-social-links__social-prompt\">\n\t\t\t{ __( 'Click plus to add' ) }\n\t\t</li>\n\t);\n\n\t// Fallback color values are used maintain selections in case switching\n\t// themes and named colors in palette do not match.\n\tconst className = classNames( size, {\n\t\t'has-visible-labels': showLabels,\n\t\t'has-icon-color': iconColor.color || iconColorValue,\n\t\t'has-icon-background-color':\n\t\t\ticonBackgroundColor.color || iconBackgroundColorValue,\n\t} );\n\n\tconst blockProps = useBlockProps( { className } );\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: ALLOWED_BLOCKS,\n\t\tplaceholder: isSelected ? SelectedSocialPlaceholder : SocialPlaceholder,\n\t\ttemplateLock: false,\n\t\torientation: attributes.layout?.orientation ?? 'horizontal',\n\t\t__experimentalAppenderTagName: 'li',\n\t} );\n\n\tconst POPOVER_PROPS = {\n\t\tposition: 'bottom right',\n\t};\n\n\tconst colorSettings = [\n\t\t{\n\t\t\t// Use custom attribute as fallback to prevent loss of named color selection when\n\t\t\t// switching themes to a new theme that does not have a matching named color.\n\t\t\tvalue: iconColor.color || iconColorValue,\n\t\t\tonChange: ( colorValue ) => {\n\t\t\t\tsetIconColor( colorValue );\n\t\t\t\tsetAttributes( { iconColorValue: colorValue } );\n\t\t\t},\n\t\t\tlabel: __( 'Icon color' ),\n\t\t\tresetAllFilter: () => {\n\t\t\t\tsetIconColor( undefined );\n\t\t\t\tsetAttributes( { iconColorValue: undefined } );\n\t\t\t},\n\t\t},\n\t];\n\n\tif ( ! logosOnly ) {\n\t\tcolorSettings.push( {\n\t\t\t// Use custom attribute as fallback to prevent loss of named color selection when\n\t\t\t// switching themes to a new theme that does not have a matching named color.\n\t\t\tvalue: iconBackgroundColor.color || iconBackgroundColorValue,\n\t\t\tonChange: ( colorValue ) => {\n\t\t\t\tsetIconBackgroundColor( colorValue );\n\t\t\t\tsetAttributes( {\n\t\t\t\t\ticonBackgroundColorValue: colorValue,\n\t\t\t\t} );\n\t\t\t},\n\t\t\tlabel: __( 'Icon background' ),\n\t\t\tresetAllFilter: () => {\n\t\t\t\tsetIconBackgroundColor( undefined );\n\t\t\t\tsetAttributes( { iconBackgroundColorValue: undefined } );\n\t\t\t},\n\t\t} );\n\t}\n\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\tlabel={ __( 'Size' ) }\n\t\t\t\t\ttext={ __( 'Size' ) }\n\t\t\t\t\ticon={ null }\n\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t{ sizeOptions.map( ( entry ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t( size === entry.value ||\n\t\t\t\t\t\t\t\t\t\t\t\t( ! size &&\n\t\t\t\t\t\t\t\t\t\t\t\t\tentry.value ===\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'has-normal-icon-size' ) ) &&\n\t\t\t\t\t\t\t\t\t\t\tcheck\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tisSelected={ size === entry.value }\n\t\t\t\t\t\t\t\t\t\tkey={ entry.value }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\tsize: entry.value,\n\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ entry.name }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarDropdownMenu>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Link settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Open links in new tab' ) }\n\t\t\t\t\t\tchecked={ openInNewTab }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( { openInNewTab: ! openInNewTab } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Show labels' ) }\n\t\t\t\t\t\tchecked={ showLabels }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showLabels: ! showLabels } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"color\">\n\t\t\t\t{ colorSettings.map(\n\t\t\t\t\t( { onChange, label, value, resetAllFilter } ) => (\n\t\t\t\t\t\t<ColorGradientSettingsDropdown\n\t\t\t\t\t\t\tkey={ `social-links-color-${ label }` }\n\t\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\t\tsettings={ [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcolorValue: value,\n\t\t\t\t\t\t\t\t\tlabel,\n\t\t\t\t\t\t\t\t\tonColorChange: onChange,\n\t\t\t\t\t\t\t\t\tisShownByDefault: true,\n\t\t\t\t\t\t\t\t\tresetAllFilter,\n\t\t\t\t\t\t\t\t\tenableAlpha: true,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\tpanelId={ clientId }\n\t\t\t\t\t\t\t{ ...colorGradientSettings }\n\t\t\t\t\t\t/>\n\t\t\t\t\t)\n\t\t\t\t) }\n\t\t\t\t{ ! logosOnly && (\n\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t{ ...{\n\t\t\t\t\t\t\ttextColor: iconColorValue,\n\t\t\t\t\t\t\tbackgroundColor: iconBackgroundColorValue,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisLargeText={ false }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t\t<ul { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n\nconst iconColorAttributes = {\n\ticonColor: 'icon-color',\n\ticonBackgroundColor: 'icon-background-color',\n};\n\nexport default withColors( iconColorAttributes )( SocialLinksEdit );\n"]}
@@ -13,7 +13,7 @@ import { __ } from '@wordpress/i18n';
13
13
 
14
14
  import { MIN_SPACER_SIZE } from './constants';
15
15
  import styles from './style.scss';
16
- const DEFAULT_VALUES = {
16
+ export const DEFAULT_VALUES = {
17
17
  px: 100,
18
18
  em: 10,
19
19
  rem: 10,
@@ -25,21 +25,22 @@ function Controls(_ref) {
25
25
  let {
26
26
  attributes,
27
27
  context,
28
- setAttributes
28
+ setAttributes,
29
+ presetWidth,
30
+ presetHeight
29
31
  } = _ref;
30
32
  const {
31
33
  orientation
32
34
  } = context;
33
35
  const label = orientation !== 'horizontal' ? __('Height') : __('Width');
34
- const {
35
- height,
36
- width
37
- } = attributes;
36
+ const width = presetWidth || attributes.width;
37
+ const height = presetHeight || attributes.height;
38
38
  const {
39
39
  valueToConvert,
40
40
  valueUnit: unit
41
41
  } = getValueAndUnit(orientation !== 'horizontal' ? height : width) || {};
42
42
  const value = Number(valueToConvert);
43
+ const currentUnit = unit || 'px';
43
44
 
44
45
  const setNewDimensions = (nextValue, nextUnit) => {
45
46
  const valueWithUnit = `${nextValue}${nextUnit}`;
@@ -56,7 +57,7 @@ function Controls(_ref) {
56
57
  };
57
58
 
58
59
  const handleChange = useCallback(nextValue => {
59
- setNewDimensions(nextValue, unit);
60
+ setNewDimensions(nextValue, currentUnit);
60
61
  }, [height, width]);
61
62
  const handleUnitChange = useCallback(nextUnit => {
62
63
  setNewDimensions(value, nextUnit);
@@ -74,7 +75,7 @@ function Controls(_ref) {
74
75
  onChange: handleChange,
75
76
  onUnitChange: handleUnitChange,
76
77
  units: units,
77
- unit: unit,
78
+ unit: currentUnit,
78
79
  style: styles.rangeCellContainer
79
80
  })));
80
81
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/spacer/controls.native.js"],"names":["PanelBody","UnitControl","getValueAndUnit","__experimentalUseCustomUnits","useCustomUnits","useCallback","useSetting","__","MIN_SPACER_SIZE","styles","DEFAULT_VALUES","px","em","rem","vw","vh","Controls","attributes","context","setAttributes","orientation","label","height","width","valueToConvert","valueUnit","unit","value","Number","setNewDimensions","nextValue","nextUnit","valueWithUnit","handleChange","handleUnitChange","units","availableUnits","defaultValues","rangeCellContainer"],"mappings":";;AAAA;AACA;AACA;AACA,SACCA,SADD,EAECC,WAFD,EAGCC,eAHD,EAICC,4BAA4B,IAAIC,cAJjC,QAKO,uBALP;AAMA,SAASC,WAAT,QAA4B,oBAA5B;AACA,SAASC,UAAT,QAA2B,yBAA3B;AACA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;;AACA,SAASC,eAAT,QAAgC,aAAhC;AACA,OAAOC,MAAP,MAAmB,cAAnB;AAEA,MAAMC,cAAc,GAAG;AAAEC,EAAAA,EAAE,EAAE,GAAN;AAAWC,EAAAA,EAAE,EAAE,EAAf;AAAmBC,EAAAA,GAAG,EAAE,EAAxB;AAA4BC,EAAAA,EAAE,EAAE,EAAhC;AAAoCC,EAAAA,EAAE,EAAE;AAAxC,CAAvB;;AAEA,SAASC,QAAT,OAA4D;AAAA,MAAzC;AAAEC,IAAAA,UAAF;AAAcC,IAAAA,OAAd;AAAuBC,IAAAA;AAAvB,GAAyC;AAC3D,QAAM;AAAEC,IAAAA;AAAF,MAAkBF,OAAxB;AACA,QAAMG,KAAK,GAAGD,WAAW,KAAK,YAAhB,GAA+Bb,EAAE,CAAE,QAAF,CAAjC,GAAgDA,EAAE,CAAE,OAAF,CAAhE;AAEA,QAAM;AAAEe,IAAAA,MAAF;AAAUC,IAAAA;AAAV,MAAoBN,UAA1B;AACA,QAAM;AAAEO,IAAAA,cAAF;AAAkBC,IAAAA,SAAS,EAAEC;AAA7B,MACLxB,eAAe,CAAEkB,WAAW,KAAK,YAAhB,GAA+BE,MAA/B,GAAwCC,KAA1C,CAAf,IAAoE,EADrE;AAEA,QAAMI,KAAK,GAAGC,MAAM,CAAEJ,cAAF,CAApB;;AAEA,QAAMK,gBAAgB,GAAG,CAAEC,SAAF,EAAaC,QAAb,KAA2B;AACnD,UAAMC,aAAa,GAAI,GAAGF,SAAW,GAAGC,QAAU,EAAlD;;AACA,QAAKX,WAAW,KAAK,YAArB,EAAoC;AACnCD,MAAAA,aAAa,CAAE;AAAEI,QAAAA,KAAK,EAAES;AAAT,OAAF,CAAb;AACA,KAFD,MAEO;AACNb,MAAAA,aAAa,CAAE;AAAEG,QAAAA,MAAM,EAAEU;AAAV,OAAF,CAAb;AACA;AACD,GAPD;;AASA,QAAMC,YAAY,GAAG5B,WAAW,CAC7ByB,SAAF,IAAiB;AAChBD,IAAAA,gBAAgB,CAAEC,SAAF,EAAaJ,IAAb,CAAhB;AACA,GAH8B,EAI/B,CAAEJ,MAAF,EAAUC,KAAV,CAJ+B,CAAhC;AAOA,QAAMW,gBAAgB,GAAG7B,WAAW,CACjC0B,QAAF,IAAgB;AACfF,IAAAA,gBAAgB,CAAEF,KAAF,EAASI,QAAT,CAAhB;AACA,GAHkC,EAInC,CAAET,MAAF,EAAUC,KAAV,CAJmC,CAApC;AAOA,QAAMY,KAAK,GAAG/B,cAAc,CAAE;AAC7BgC,IAAAA,cAAc,EAAE9B,UAAU,CAAE,eAAF,CAAV,IAAiC,CAChD,IADgD,EAEhD,IAFgD,EAGhD,KAHgD,EAIhD,IAJgD,EAKhD,IALgD,CADpB;AAQ7B+B,IAAAA,aAAa,EAAE3B;AARc,GAAF,CAA5B;AAWA,SACC,8BACC,cAAC,SAAD;AAAW,IAAA,KAAK,EAAGH,EAAE,CAAE,YAAF;AAArB,KACC,cAAC,WAAD;AACC,IAAA,KAAK,EAAGc,KADT;AAEC,IAAA,GAAG,EAAGb,eAFP;AAGC,IAAA,KAAK,EAAGmB,KAHT;AAIC,IAAA,QAAQ,EAAGM,YAJZ;AAKC,IAAA,YAAY,EAAGC,gBALhB;AAMC,IAAA,KAAK,EAAGC,KANT;AAOC,IAAA,IAAI,EAAGT,IAPR;AAQC,IAAA,KAAK,EAAGjB,MAAM,CAAC6B;AARhB,IADD,CADD,CADD;AAgBA;;AAED,eAAetB,QAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tPanelBody,\n\tUnitControl,\n\tgetValueAndUnit,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { useCallback } from '@wordpress/element';\nimport { useSetting } from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { MIN_SPACER_SIZE } from './constants';\nimport styles from './style.scss';\n\nconst DEFAULT_VALUES = { px: 100, em: 10, rem: 10, vw: 10, vh: 25 };\n\nfunction Controls( { attributes, context, setAttributes } ) {\n\tconst { orientation } = context;\n\tconst label = orientation !== 'horizontal' ? __( 'Height' ) : __( 'Width' );\n\n\tconst { height, width } = attributes;\n\tconst { valueToConvert, valueUnit: unit } =\n\t\tgetValueAndUnit( orientation !== 'horizontal' ? height : width ) || {};\n\tconst value = Number( valueToConvert );\n\n\tconst setNewDimensions = ( nextValue, nextUnit ) => {\n\t\tconst valueWithUnit = `${ nextValue }${ nextUnit }`;\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\tsetAttributes( { width: valueWithUnit } );\n\t\t} else {\n\t\t\tsetAttributes( { height: valueWithUnit } );\n\t\t}\n\t};\n\n\tconst handleChange = useCallback(\n\t\t( nextValue ) => {\n\t\t\tsetNewDimensions( nextValue, unit );\n\t\t},\n\t\t[ height, width ]\n\t);\n\n\tconst handleUnitChange = useCallback(\n\t\t( nextUnit ) => {\n\t\t\tsetNewDimensions( value, nextUnit );\n\t\t},\n\t\t[ height, width ]\n\t);\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t\t'vw',\n\t\t\t'vh',\n\t\t],\n\t\tdefaultValues: DEFAULT_VALUES,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<PanelBody title={ __( 'Dimensions' ) }>\n\t\t\t\t<UnitControl\n\t\t\t\t\tlabel={ label }\n\t\t\t\t\tmin={ MIN_SPACER_SIZE }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ handleChange }\n\t\t\t\t\tonUnitChange={ handleUnitChange }\n\t\t\t\t\tunits={ units }\n\t\t\t\t\tunit={ unit }\n\t\t\t\t\tstyle={ styles.rangeCellContainer }\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\t\t</>\n\t);\n}\n\nexport default Controls;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/spacer/controls.native.js"],"names":["PanelBody","UnitControl","getValueAndUnit","__experimentalUseCustomUnits","useCustomUnits","useCallback","useSetting","__","MIN_SPACER_SIZE","styles","DEFAULT_VALUES","px","em","rem","vw","vh","Controls","attributes","context","setAttributes","presetWidth","presetHeight","orientation","label","width","height","valueToConvert","valueUnit","unit","value","Number","currentUnit","setNewDimensions","nextValue","nextUnit","valueWithUnit","handleChange","handleUnitChange","units","availableUnits","defaultValues","rangeCellContainer"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tPanelBody,\n\tUnitControl,\n\tgetValueAndUnit,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { useCallback } from '@wordpress/element';\nimport { useSetting } from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { MIN_SPACER_SIZE } from './constants';\nimport styles from './style.scss';\n\nexport const DEFAULT_VALUES = { px: 100, em: 10, rem: 10, vw: 10, vh: 25 };\n\nfunction Controls( {\n\tattributes,\n\tcontext,\n\tsetAttributes,\n\tpresetWidth,\n\tpresetHeight,\n} ) {\n\tconst { orientation } = context;\n\tconst label = orientation !== 'horizontal' ? __( 'Height' ) : __( 'Width' );\n\n\tconst width = presetWidth || attributes.width;\n\tconst height = presetHeight || attributes.height;\n\tconst { valueToConvert, valueUnit: unit } =\n\t\tgetValueAndUnit( orientation !== 'horizontal' ? height : width ) || {};\n\tconst value = Number( valueToConvert );\n\tconst currentUnit = unit || 'px';\n\n\tconst setNewDimensions = ( nextValue, nextUnit ) => {\n\t\tconst valueWithUnit = `${ nextValue }${ nextUnit }`;\n\t\tif ( orientation === 'horizontal' ) {\n\t\t\tsetAttributes( { width: valueWithUnit } );\n\t\t} else {\n\t\t\tsetAttributes( { height: valueWithUnit } );\n\t\t}\n\t};\n\n\tconst handleChange = useCallback(\n\t\t( nextValue ) => {\n\t\t\tsetNewDimensions( nextValue, currentUnit );\n\t\t},\n\t\t[ height, width ]\n\t);\n\n\tconst handleUnitChange = useCallback(\n\t\t( nextUnit ) => {\n\t\t\tsetNewDimensions( value, nextUnit );\n\t\t},\n\t\t[ height, width ]\n\t);\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t\t'vw',\n\t\t\t'vh',\n\t\t],\n\t\tdefaultValues: DEFAULT_VALUES,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<PanelBody title={ __( 'Dimensions' ) }>\n\t\t\t\t<UnitControl\n\t\t\t\t\tlabel={ label }\n\t\t\t\t\tmin={ MIN_SPACER_SIZE }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ handleChange }\n\t\t\t\t\tonUnitChange={ handleUnitChange }\n\t\t\t\t\tunits={ units }\n\t\t\t\t\tunit={ currentUnit }\n\t\t\t\t\tstyle={ styles.rangeCellContainer }\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\t\t</>\n\t);\n}\n\nexport default Controls;\n"]}
@@ -1,23 +1,25 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
1
2
  import { createElement } from "@wordpress/element";
2
3
 
3
4
  /**
4
5
  * External dependencies
5
6
  */
6
- import { View } from 'react-native';
7
+ import { View, useWindowDimensions } from 'react-native';
7
8
  /**
8
9
  * WordPress dependencies
9
10
  */
10
11
 
11
12
  import { useConvertUnitToMobile } from '@wordpress/components';
12
13
  import { withPreferredColorScheme } from '@wordpress/compose';
13
- import { InspectorControls } from '@wordpress/block-editor';
14
+ import { InspectorControls, isValueSpacingPreset, useSetting, getCustomValueFromPreset, getPxFromCssUnit } from '@wordpress/block-editor';
14
15
  import { useEffect } from '@wordpress/element';
15
16
  /**
16
17
  * Internal dependencies
17
18
  */
18
19
 
19
- import Controls from './controls';
20
+ import Controls, { DEFAULT_VALUES } from './controls';
20
21
  import styles from './editor.native.scss';
22
+ const DEFAULT_FONT_SIZE = 16;
21
23
 
22
24
  const Spacer = _ref => {
23
25
  let {
@@ -27,10 +29,24 @@ const Spacer = _ref => {
27
29
  isSelected,
28
30
  getStylesFromColorScheme
29
31
  } = _ref;
32
+ const {
33
+ height: screenHeight,
34
+ width: screenWidth
35
+ } = useWindowDimensions();
36
+ const cssUnitOptions = {
37
+ height: screenHeight,
38
+ width: screenWidth,
39
+ fontSize: DEFAULT_FONT_SIZE
40
+ };
30
41
  const {
31
42
  height,
32
43
  width
33
44
  } = attributes;
45
+ const spacingSizes = [{
46
+ name: 0,
47
+ slug: '0',
48
+ size: 0
49
+ }, ...(useSetting('spacing.spacingSizes') || [])];
34
50
  const {
35
51
  orientation
36
52
  } = context;
@@ -43,18 +59,34 @@ const Spacer = _ref => {
43
59
  });
44
60
  }
45
61
  }, []);
46
- const convertedHeight = useConvertUnitToMobile(height);
47
- const convertedWidth = useConvertUnitToMobile(width);
62
+ let convertedHeight = useConvertUnitToMobile(height);
63
+ let convertedWidth = useConvertUnitToMobile(width);
64
+ const presetValues = {};
65
+
66
+ if (isValueSpacingPreset(height)) {
67
+ const heightValue = getCustomValueFromPreset(height, spacingSizes);
68
+ const parsedPresetHeightValue = parseFloat(getPxFromCssUnit(heightValue, cssUnitOptions));
69
+ convertedHeight = parsedPresetHeightValue || DEFAULT_VALUES.px;
70
+ presetValues.presetHeight = convertedHeight;
71
+ }
72
+
73
+ if (isValueSpacingPreset(width)) {
74
+ const widthValue = getCustomValueFromPreset(width, spacingSizes);
75
+ const parsedPresetWidthValue = parseFloat(getPxFromCssUnit(widthValue, cssUnitOptions));
76
+ convertedWidth = parsedPresetWidthValue || DEFAULT_VALUES.px;
77
+ presetValues.presetWidth = convertedWidth;
78
+ }
79
+
48
80
  return createElement(View, {
49
81
  style: [defaultStyle, isSelected && styles.selectedSpacer, {
50
82
  height: convertedHeight,
51
83
  width: convertedWidth
52
84
  }]
53
- }, isSelected && createElement(InspectorControls, null, createElement(Controls, {
85
+ }, isSelected && createElement(InspectorControls, null, createElement(Controls, _extends({
54
86
  attributes: attributes,
55
87
  context: context,
56
88
  setAttributes: setAttributes
57
- })));
89
+ }, presetValues))));
58
90
  };
59
91
 
60
92
  export default withPreferredColorScheme(Spacer);
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/spacer/edit.native.js"],"names":["View","useConvertUnitToMobile","withPreferredColorScheme","InspectorControls","useEffect","Controls","styles","Spacer","attributes","context","setAttributes","isSelected","getStylesFromColorScheme","height","width","orientation","defaultStyle","staticSpacer","staticDarkSpacer","convertedHeight","convertedWidth","selectedSpacer"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,IAAT,QAAqB,cAArB;AAEA;AACA;AACA;;AACA,SAASC,sBAAT,QAAuC,uBAAvC;AACA,SAASC,wBAAT,QAAyC,oBAAzC;AACA,SAASC,iBAAT,QAAkC,yBAAlC;AACA,SAASC,SAAT,QAA0B,oBAA1B;AAEA;AACA;AACA;;AACA,OAAOC,QAAP,MAAqB,YAArB;AACA,OAAOC,MAAP,MAAmB,sBAAnB;;AAEA,MAAMC,MAAM,GAAG,QAMR;AAAA,MANU;AAChBC,IAAAA,UADgB;AAEhBC,IAAAA,OAFgB;AAGhBC,IAAAA,aAHgB;AAIhBC,IAAAA,UAJgB;AAKhBC,IAAAA;AALgB,GAMV;AACN,QAAM;AAAEC,IAAAA,MAAF;AAAUC,IAAAA;AAAV,MAAoBN,UAA1B;AAEA,QAAM;AAAEO,IAAAA;AAAF,MAAkBN,OAAxB;AACA,QAAMO,YAAY,GAAGJ,wBAAwB,CAC5CN,MAAM,CAACW,YADqC,EAE5CX,MAAM,CAACY,gBAFqC,CAA7C;AAKAd,EAAAA,SAAS,CAAE,MAAM;AAChB,QAAKW,WAAW,KAAK,YAAhB,IAAgC,CAAED,KAAvC,EAA+C;AAC9CJ,MAAAA,aAAa,CAAE;AACdG,QAAAA,MAAM,EAAE,KADM;AAEdC,QAAAA,KAAK,EAAE;AAFO,OAAF,CAAb;AAIA;AACD,GAPQ,EAON,EAPM,CAAT;AASA,QAAMK,eAAe,GAAGlB,sBAAsB,CAAEY,MAAF,CAA9C;AACA,QAAMO,cAAc,GAAGnB,sBAAsB,CAAEa,KAAF,CAA7C;AAEA,SACC,cAAC,IAAD;AACC,IAAA,KAAK,EAAG,CACPE,YADO,EAEPL,UAAU,IAAIL,MAAM,CAACe,cAFd,EAGP;AAAER,MAAAA,MAAM,EAAEM,eAAV;AAA2BL,MAAAA,KAAK,EAAEM;AAAlC,KAHO;AADT,KAOGT,UAAU,IACX,cAAC,iBAAD,QACC,cAAC,QAAD;AACC,IAAA,UAAU,EAAGH,UADd;AAEC,IAAA,OAAO,EAAGC,OAFX;AAGC,IAAA,aAAa,EAAGC;AAHjB,IADD,CARF,CADD;AAmBA,CA9CD;;AAgDA,eAAeR,wBAAwB,CAAEK,MAAF,CAAvC","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useConvertUnitToMobile } from '@wordpress/components';\nimport { withPreferredColorScheme } from '@wordpress/compose';\nimport { InspectorControls } from '@wordpress/block-editor';\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Controls from './controls';\nimport styles from './editor.native.scss';\n\nconst Spacer = ( {\n\tattributes,\n\tcontext,\n\tsetAttributes,\n\tisSelected,\n\tgetStylesFromColorScheme,\n} ) => {\n\tconst { height, width } = attributes;\n\n\tconst { orientation } = context;\n\tconst defaultStyle = getStylesFromColorScheme(\n\t\tstyles.staticSpacer,\n\t\tstyles.staticDarkSpacer\n\t);\n\n\tuseEffect( () => {\n\t\tif ( orientation === 'horizontal' && ! width ) {\n\t\t\tsetAttributes( {\n\t\t\t\theight: '0px',\n\t\t\t\twidth: '72px',\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\tconst convertedHeight = useConvertUnitToMobile( height );\n\tconst convertedWidth = useConvertUnitToMobile( width );\n\n\treturn (\n\t\t<View\n\t\t\tstyle={ [\n\t\t\t\tdefaultStyle,\n\t\t\t\tisSelected && styles.selectedSpacer,\n\t\t\t\t{ height: convertedHeight, width: convertedWidth },\n\t\t\t] }\n\t\t>\n\t\t\t{ isSelected && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<Controls\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tcontext={ context }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t/>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t</View>\n\t);\n};\n\nexport default withPreferredColorScheme( Spacer );\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/spacer/edit.native.js"],"names":["View","useWindowDimensions","useConvertUnitToMobile","withPreferredColorScheme","InspectorControls","isValueSpacingPreset","useSetting","getCustomValueFromPreset","getPxFromCssUnit","useEffect","Controls","DEFAULT_VALUES","styles","DEFAULT_FONT_SIZE","Spacer","attributes","context","setAttributes","isSelected","getStylesFromColorScheme","height","screenHeight","width","screenWidth","cssUnitOptions","fontSize","spacingSizes","name","slug","size","orientation","defaultStyle","staticSpacer","staticDarkSpacer","convertedHeight","convertedWidth","presetValues","heightValue","parsedPresetHeightValue","parseFloat","px","presetHeight","widthValue","parsedPresetWidthValue","presetWidth","selectedSpacer"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, useWindowDimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useConvertUnitToMobile } from '@wordpress/components';\nimport { withPreferredColorScheme } from '@wordpress/compose';\nimport {\n\tInspectorControls,\n\tisValueSpacingPreset,\n\tuseSetting,\n\tgetCustomValueFromPreset,\n\tgetPxFromCssUnit,\n} from '@wordpress/block-editor';\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Controls, { DEFAULT_VALUES } from './controls';\nimport styles from './editor.native.scss';\n\nconst DEFAULT_FONT_SIZE = 16;\n\nconst Spacer = ( {\n\tattributes,\n\tcontext,\n\tsetAttributes,\n\tisSelected,\n\tgetStylesFromColorScheme,\n} ) => {\n\tconst { height: screenHeight, width: screenWidth } = useWindowDimensions();\n\tconst cssUnitOptions = {\n\t\theight: screenHeight,\n\t\twidth: screenWidth,\n\t\tfontSize: DEFAULT_FONT_SIZE,\n\t};\n\tconst { height, width } = attributes;\n\tconst spacingSizes = [\n\t\t{ name: 0, slug: '0', size: 0 },\n\t\t...( useSetting( 'spacing.spacingSizes' ) || [] ),\n\t];\n\tconst { orientation } = context;\n\tconst defaultStyle = getStylesFromColorScheme(\n\t\tstyles.staticSpacer,\n\t\tstyles.staticDarkSpacer\n\t);\n\n\tuseEffect( () => {\n\t\tif ( orientation === 'horizontal' && ! width ) {\n\t\t\tsetAttributes( {\n\t\t\t\theight: '0px',\n\t\t\t\twidth: '72px',\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\tlet convertedHeight = useConvertUnitToMobile( height );\n\tlet convertedWidth = useConvertUnitToMobile( width );\n\tconst presetValues = {};\n\n\tif ( isValueSpacingPreset( height ) ) {\n\t\tconst heightValue = getCustomValueFromPreset( height, spacingSizes );\n\t\tconst parsedPresetHeightValue = parseFloat(\n\t\t\tgetPxFromCssUnit( heightValue, cssUnitOptions )\n\t\t);\n\n\t\tconvertedHeight = parsedPresetHeightValue || DEFAULT_VALUES.px;\n\t\tpresetValues.presetHeight = convertedHeight;\n\t}\n\n\tif ( isValueSpacingPreset( width ) ) {\n\t\tconst widthValue = getCustomValueFromPreset( width, spacingSizes );\n\t\tconst parsedPresetWidthValue = parseFloat(\n\t\t\tgetPxFromCssUnit( widthValue, cssUnitOptions )\n\t\t);\n\n\t\tconvertedWidth = parsedPresetWidthValue || DEFAULT_VALUES.px;\n\t\tpresetValues.presetWidth = convertedWidth;\n\t}\n\n\treturn (\n\t\t<View\n\t\t\tstyle={ [\n\t\t\t\tdefaultStyle,\n\t\t\t\tisSelected && styles.selectedSpacer,\n\t\t\t\t{ height: convertedHeight, width: convertedWidth },\n\t\t\t] }\n\t\t>\n\t\t\t{ isSelected && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<Controls\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tcontext={ context }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t{ ...presetValues }\n\t\t\t\t\t/>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t</View>\n\t);\n};\n\nexport default withPreferredColorScheme( Spacer );\n"]}
@@ -0,0 +1,22 @@
1
+ import { createElement } from "@wordpress/element";
2
+
3
+ /**
4
+ * WordPress dependencies
5
+ */
6
+ import { useBlockProps, getSpacingPresetCssVar } from '@wordpress/block-editor';
7
+ export default function save(_ref) {
8
+ let {
9
+ attributes: {
10
+ height,
11
+ width
12
+ }
13
+ } = _ref;
14
+ return createElement("div", useBlockProps.save({
15
+ style: {
16
+ height: getSpacingPresetCssVar(height),
17
+ width: getSpacingPresetCssVar(width)
18
+ },
19
+ 'aria-hidden': true
20
+ }));
21
+ }
22
+ //# sourceMappingURL=save.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/block-library/src/spacer/save.native.js"],"names":["useBlockProps","getSpacingPresetCssVar","save","attributes","height","width","style"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,aAAT,EAAwBC,sBAAxB,QAAsD,yBAAtD;AAEA,eAAe,SAASC,IAAT,OAAmD;AAAA,MAApC;AAAEC,IAAAA,UAAU,EAAE;AAAEC,MAAAA,MAAF;AAAUC,MAAAA;AAAV;AAAd,GAAoC;AACjE,SACC,qBACML,aAAa,CAACE,IAAd,CAAoB;AACxBI,IAAAA,KAAK,EAAE;AACNF,MAAAA,MAAM,EAAEH,sBAAsB,CAAEG,MAAF,CADxB;AAENC,MAAAA,KAAK,EAAEJ,sBAAsB,CAAEI,KAAF;AAFvB,KADiB;AAKxB,mBAAe;AALS,GAApB,CADN,CADD;AAWA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useBlockProps, getSpacingPresetCssVar } from '@wordpress/block-editor';\n\nexport default function save( { attributes: { height, width } } ) {\n\treturn (\n\t\t<div\n\t\t\t{ ...useBlockProps.save( {\n\t\t\t\tstyle: {\n\t\t\t\t\theight: getSpacingPresetCssVar( height ),\n\t\t\t\t\twidth: getSpacingPresetCssVar( width ),\n\t\t\t\t},\n\t\t\t\t'aria-hidden': true,\n\t\t\t} ) }\n\t\t/>\n\t);\n}\n"]}
@@ -361,7 +361,7 @@ function TableEdit(_ref2) {
361
361
  isDisabled: !selectedCell,
362
362
  onClick: onDeleteColumn
363
363
  }];
364
- const renderedSections = ['head', 'body', 'foot'].map(name => createElement(TSection, {
364
+ const renderedSections = sections.map(name => createElement(TSection, {
365
365
  name: name,
366
366
  key: name
367
367
  }, attributes[name].map((_ref3, rowIndex) => {
@@ -390,7 +390,7 @@ function TableEdit(_ref2) {
390
390
  rowSpan: rowspan,
391
391
  value: content,
392
392
  onChange: onChange,
393
- unstableOnFocus: () => {
393
+ onFocus: () => {
394
394
  setSelectedCell({
395
395
  sectionName: name,
396
396
  rowIndex,
@@ -424,14 +424,17 @@ function TableEdit(_ref2) {
424
424
  title: __('Settings'),
425
425
  className: "blocks-table-settings"
426
426
  }, createElement(ToggleControl, {
427
+ __nextHasNoMarginBottom: true,
427
428
  label: __('Fixed width table cells'),
428
429
  checked: !!hasFixedLayout,
429
430
  onChange: onChangeFixedLayout
430
431
  }), !isEmpty && createElement(Fragment, null, createElement(ToggleControl, {
432
+ __nextHasNoMarginBottom: true,
431
433
  label: __('Header section'),
432
434
  checked: !!(head && head.length),
433
435
  onChange: onToggleHeaderSection
434
436
  }), createElement(ToggleControl, {
437
+ __nextHasNoMarginBottom: true,
435
438
  label: __('Footer section'),
436
439
  checked: !!(foot && foot.length),
437
440
  onChange: onToggleFooterSection
@@ -457,7 +460,7 @@ function TableEdit(_ref2) {
457
460
  caption: value
458
461
  }) // Deselect the selected table cell when the caption is focused.
459
462
  ,
460
- unstableOnFocus: () => setSelectedCell(),
463
+ onFocus: () => setSelectedCell(),
461
464
  __unstableOnSplitAtEnd: () => insertBlocksAfter(createBlock(getDefaultBlockName()))
462
465
  }), isEmpty && createElement(Placeholder, {
463
466
  label: __('Table'),
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/table/edit.js"],"names":["classnames","useEffect","useRef","useState","InspectorControls","BlockControls","RichText","BlockIcon","AlignmentControl","useBlockProps","__experimentalUseColorProps","useColorProps","__experimentalUseBorderProps","useBorderProps","__experimentalGetElementClassName","__","Button","PanelBody","Placeholder","TextControl","ToggleControl","ToolbarDropdownMenu","__experimentalHasSplitBorders","hasSplitBorders","alignLeft","alignRight","alignCenter","blockTable","icon","tableColumnAfter","tableColumnBefore","tableColumnDelete","tableRowAfter","tableRowBefore","tableRowDelete","table","createBlock","getDefaultBlockName","createTable","updateSelectedCell","getCellAttribute","insertRow","deleteRow","insertColumn","deleteColumn","toggleSection","isEmptyTableSection","ALIGNMENT_CONTROLS","title","align","cellAriaLabel","head","body","foot","placeholder","TSection","name","props","TagName","TableEdit","attributes","setAttributes","insertBlocksAfter","isSelected","hasFixedLayout","caption","initialRowCount","setInitialRowCount","initialColumnCount","setInitialColumnCount","selectedCell","setSelectedCell","colorProps","borderProps","tableRef","hasTableCreated","setHasTableCreated","onChangeInitialColumnCount","count","onChangeInitialRowCount","onCreateTable","event","preventDefault","rowCount","parseInt","columnCount","onChangeFixedLayout","onChange","content","cellAttributes","onChangeColumnAlignment","columnSelection","type","columnIndex","newAttributes","getCellAlignment","onToggleHeaderSection","onToggleFooterSection","onInsertRow","delta","sectionName","rowIndex","newRowIndex","onInsertRowBefore","onInsertRowAfter","onDeleteRow","onInsertColumn","newColumnIndex","onInsertColumnBefore","onInsertColumnAfter","onDeleteColumn","current","querySelector","focus","sections","filter","tableControls","isDisabled","onClick","renderedSections","map","cells","tag","CellTag","scope","colspan","rowspan","undefined","isEmpty","length","ref","nextAlign","className","style","border","value"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tRichText,\n\tBlockIcon,\n\tAlignmentControl,\n\tuseBlockProps,\n\t__experimentalUseColorProps as useColorProps,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tPanelBody,\n\tPlaceholder,\n\tTextControl,\n\tToggleControl,\n\tToolbarDropdownMenu,\n\t__experimentalHasSplitBorders as hasSplitBorders,\n} from '@wordpress/components';\nimport {\n\talignLeft,\n\talignRight,\n\talignCenter,\n\tblockTable as icon,\n\ttableColumnAfter,\n\ttableColumnBefore,\n\ttableColumnDelete,\n\ttableRowAfter,\n\ttableRowBefore,\n\ttableRowDelete,\n\ttable,\n} from '@wordpress/icons';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport {\n\tcreateTable,\n\tupdateSelectedCell,\n\tgetCellAttribute,\n\tinsertRow,\n\tdeleteRow,\n\tinsertColumn,\n\tdeleteColumn,\n\ttoggleSection,\n\tisEmptyTableSection,\n} from './state';\n\nconst ALIGNMENT_CONTROLS = [\n\t{\n\t\ticon: alignLeft,\n\t\ttitle: __( 'Align column left' ),\n\t\talign: 'left',\n\t},\n\t{\n\t\ticon: alignCenter,\n\t\ttitle: __( 'Align column center' ),\n\t\talign: 'center',\n\t},\n\t{\n\t\ticon: alignRight,\n\t\ttitle: __( 'Align column right' ),\n\t\talign: 'right',\n\t},\n];\n\nconst cellAriaLabel = {\n\thead: __( 'Header cell text' ),\n\tbody: __( 'Body cell text' ),\n\tfoot: __( 'Footer cell text' ),\n};\n\nconst placeholder = {\n\thead: __( 'Header label' ),\n\tfoot: __( 'Footer label' ),\n};\n\nfunction TSection( { name, ...props } ) {\n\tconst TagName = `t${ name }`;\n\treturn <TagName { ...props } />;\n}\n\nfunction TableEdit( {\n\tattributes,\n\tsetAttributes,\n\tinsertBlocksAfter,\n\tisSelected,\n} ) {\n\tconst { hasFixedLayout, caption, head, foot } = attributes;\n\tconst [ initialRowCount, setInitialRowCount ] = useState( 2 );\n\tconst [ initialColumnCount, setInitialColumnCount ] = useState( 2 );\n\tconst [ selectedCell, setSelectedCell ] = useState();\n\n\tconst colorProps = useColorProps( attributes );\n\tconst borderProps = useBorderProps( attributes );\n\n\tconst tableRef = useRef();\n\tconst [ hasTableCreated, setHasTableCreated ] = useState( false );\n\n\t/**\n\t * Updates the initial column count used for table creation.\n\t *\n\t * @param {number} count New initial column count.\n\t */\n\tfunction onChangeInitialColumnCount( count ) {\n\t\tsetInitialColumnCount( count );\n\t}\n\n\t/**\n\t * Updates the initial row count used for table creation.\n\t *\n\t * @param {number} count New initial row count.\n\t */\n\tfunction onChangeInitialRowCount( count ) {\n\t\tsetInitialRowCount( count );\n\t}\n\n\t/**\n\t * Creates a table based on dimensions in local state.\n\t *\n\t * @param {Object} event Form submit event.\n\t */\n\tfunction onCreateTable( event ) {\n\t\tevent.preventDefault();\n\n\t\tsetAttributes(\n\t\t\tcreateTable( {\n\t\t\t\trowCount: parseInt( initialRowCount, 10 ) || 2,\n\t\t\t\tcolumnCount: parseInt( initialColumnCount, 10 ) || 2,\n\t\t\t} )\n\t\t);\n\t\tsetHasTableCreated( true );\n\t}\n\n\t/**\n\t * Toggles whether the table has a fixed layout or not.\n\t */\n\tfunction onChangeFixedLayout() {\n\t\tsetAttributes( { hasFixedLayout: ! hasFixedLayout } );\n\t}\n\n\t/**\n\t * Changes the content of the currently selected cell.\n\t *\n\t * @param {Array} content A RichText content value.\n\t */\n\tfunction onChange( content ) {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes(\n\t\t\tupdateSelectedCell(\n\t\t\t\tattributes,\n\t\t\t\tselectedCell,\n\t\t\t\t( cellAttributes ) => ( {\n\t\t\t\t\t...cellAttributes,\n\t\t\t\t\tcontent,\n\t\t\t\t} )\n\t\t\t)\n\t\t);\n\t}\n\n\t/**\n\t * Align text within the a column.\n\t *\n\t * @param {string} align The new alignment to apply to the column.\n\t */\n\tfunction onChangeColumnAlignment( align ) {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Convert the cell selection to a column selection so that alignment\n\t\t// is applied to the entire column.\n\t\tconst columnSelection = {\n\t\t\ttype: 'column',\n\t\t\tcolumnIndex: selectedCell.columnIndex,\n\t\t};\n\n\t\tconst newAttributes = updateSelectedCell(\n\t\t\tattributes,\n\t\t\tcolumnSelection,\n\t\t\t( cellAttributes ) => ( {\n\t\t\t\t...cellAttributes,\n\t\t\t\talign,\n\t\t\t} )\n\t\t);\n\t\tsetAttributes( newAttributes );\n\t}\n\n\t/**\n\t * Get the alignment of the currently selected cell.\n\t *\n\t * @return {string | undefined} The new alignment to apply to the column.\n\t */\n\tfunction getCellAlignment() {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn getCellAttribute( attributes, selectedCell, 'align' );\n\t}\n\n\t/**\n\t * Add or remove a `head` table section.\n\t */\n\tfunction onToggleHeaderSection() {\n\t\tsetAttributes( toggleSection( attributes, 'head' ) );\n\t}\n\n\t/**\n\t * Add or remove a `foot` table section.\n\t */\n\tfunction onToggleFooterSection() {\n\t\tsetAttributes( toggleSection( attributes, 'foot' ) );\n\t}\n\n\t/**\n\t * Inserts a row at the currently selected row index, plus `delta`.\n\t *\n\t * @param {number} delta Offset for selected row index at which to insert.\n\t */\n\tfunction onInsertRow( delta ) {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { sectionName, rowIndex } = selectedCell;\n\t\tconst newRowIndex = rowIndex + delta;\n\n\t\tsetAttributes(\n\t\t\tinsertRow( attributes, {\n\t\t\t\tsectionName,\n\t\t\t\trowIndex: newRowIndex,\n\t\t\t} )\n\t\t);\n\t\t// Select the first cell of the new row.\n\t\tsetSelectedCell( {\n\t\t\tsectionName,\n\t\t\trowIndex: newRowIndex,\n\t\t\tcolumnIndex: 0,\n\t\t\ttype: 'cell',\n\t\t} );\n\t}\n\n\t/**\n\t * Inserts a row before the currently selected row.\n\t */\n\tfunction onInsertRowBefore() {\n\t\tonInsertRow( 0 );\n\t}\n\n\t/**\n\t * Inserts a row after the currently selected row.\n\t */\n\tfunction onInsertRowAfter() {\n\t\tonInsertRow( 1 );\n\t}\n\n\t/**\n\t * Deletes the currently selected row.\n\t */\n\tfunction onDeleteRow() {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { sectionName, rowIndex } = selectedCell;\n\n\t\tsetSelectedCell();\n\t\tsetAttributes( deleteRow( attributes, { sectionName, rowIndex } ) );\n\t}\n\n\t/**\n\t * Inserts a column at the currently selected column index, plus `delta`.\n\t *\n\t * @param {number} delta Offset for selected column index at which to insert.\n\t */\n\tfunction onInsertColumn( delta = 0 ) {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { columnIndex } = selectedCell;\n\t\tconst newColumnIndex = columnIndex + delta;\n\n\t\tsetAttributes(\n\t\t\tinsertColumn( attributes, {\n\t\t\t\tcolumnIndex: newColumnIndex,\n\t\t\t} )\n\t\t);\n\t\t// Select the first cell of the new column.\n\t\tsetSelectedCell( {\n\t\t\trowIndex: 0,\n\t\t\tcolumnIndex: newColumnIndex,\n\t\t\ttype: 'cell',\n\t\t} );\n\t}\n\n\t/**\n\t * Inserts a column before the currently selected column.\n\t */\n\tfunction onInsertColumnBefore() {\n\t\tonInsertColumn( 0 );\n\t}\n\n\t/**\n\t * Inserts a column after the currently selected column.\n\t */\n\tfunction onInsertColumnAfter() {\n\t\tonInsertColumn( 1 );\n\t}\n\n\t/**\n\t * Deletes the currently selected column.\n\t */\n\tfunction onDeleteColumn() {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { sectionName, columnIndex } = selectedCell;\n\n\t\tsetSelectedCell();\n\t\tsetAttributes(\n\t\t\tdeleteColumn( attributes, { sectionName, columnIndex } )\n\t\t);\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetSelectedCell();\n\t\t}\n\t}, [ isSelected ] );\n\n\tuseEffect( () => {\n\t\tif ( hasTableCreated ) {\n\t\t\ttableRef?.current\n\t\t\t\t?.querySelector( 'td[contentEditable=\"true\"]' )\n\t\t\t\t?.focus();\n\t\t\tsetHasTableCreated( false );\n\t\t}\n\t}, [ hasTableCreated ] );\n\n\tconst sections = [ 'head', 'body', 'foot' ].filter(\n\t\t( name ) => ! isEmptyTableSection( attributes[ name ] )\n\t);\n\n\tconst tableControls = [\n\t\t{\n\t\t\ticon: tableRowBefore,\n\t\t\ttitle: __( 'Insert row before' ),\n\t\t\tisDisabled: ! selectedCell,\n\t\t\tonClick: onInsertRowBefore,\n\t\t},\n\t\t{\n\t\t\ticon: tableRowAfter,\n\t\t\ttitle: __( 'Insert row after' ),\n\t\t\tisDisabled: ! selectedCell,\n\t\t\tonClick: onInsertRowAfter,\n\t\t},\n\t\t{\n\t\t\ticon: tableRowDelete,\n\t\t\ttitle: __( 'Delete row' ),\n\t\t\tisDisabled: ! selectedCell,\n\t\t\tonClick: onDeleteRow,\n\t\t},\n\t\t{\n\t\t\ticon: tableColumnBefore,\n\t\t\ttitle: __( 'Insert column before' ),\n\t\t\tisDisabled: ! selectedCell,\n\t\t\tonClick: onInsertColumnBefore,\n\t\t},\n\t\t{\n\t\t\ticon: tableColumnAfter,\n\t\t\ttitle: __( 'Insert column after' ),\n\t\t\tisDisabled: ! selectedCell,\n\t\t\tonClick: onInsertColumnAfter,\n\t\t},\n\t\t{\n\t\t\ticon: tableColumnDelete,\n\t\t\ttitle: __( 'Delete column' ),\n\t\t\tisDisabled: ! selectedCell,\n\t\t\tonClick: onDeleteColumn,\n\t\t},\n\t];\n\n\tconst renderedSections = [ 'head', 'body', 'foot' ].map( ( name ) => (\n\t\t<TSection name={ name } key={ name }>\n\t\t\t{ attributes[ name ].map( ( { cells }, rowIndex ) => (\n\t\t\t\t<tr key={ rowIndex }>\n\t\t\t\t\t{ cells.map(\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcontent,\n\t\t\t\t\t\t\t\ttag: CellTag,\n\t\t\t\t\t\t\t\tscope,\n\t\t\t\t\t\t\t\talign,\n\t\t\t\t\t\t\t\tcolspan,\n\t\t\t\t\t\t\t\trowspan,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tcolumnIndex\n\t\t\t\t\t\t) => (\n\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\ttagName={ CellTag }\n\t\t\t\t\t\t\t\tkey={ columnIndex }\n\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t[ `has-text-align-${ align }` ]: align,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t'wp-block-table__cell-content'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tscope={ CellTag === 'th' ? scope : undefined }\n\t\t\t\t\t\t\t\tcolSpan={ colspan }\n\t\t\t\t\t\t\t\trowSpan={ rowspan }\n\t\t\t\t\t\t\t\tvalue={ content }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\tunstableOnFocus={ () => {\n\t\t\t\t\t\t\t\t\tsetSelectedCell( {\n\t\t\t\t\t\t\t\t\t\tsectionName: name,\n\t\t\t\t\t\t\t\t\t\trowIndex,\n\t\t\t\t\t\t\t\t\t\tcolumnIndex,\n\t\t\t\t\t\t\t\t\t\ttype: 'cell',\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\taria-label={ cellAriaLabel[ name ] }\n\t\t\t\t\t\t\t\tplaceholder={ placeholder[ name ] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)\n\t\t\t\t\t) }\n\t\t\t\t</tr>\n\t\t\t) ) }\n\t\t</TSection>\n\t) );\n\n\tconst isEmpty = ! sections.length;\n\n\treturn (\n\t\t<figure { ...useBlockProps( { ref: tableRef } ) }>\n\t\t\t{ ! isEmpty && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t\t<AlignmentControl\n\t\t\t\t\t\t\tlabel={ __( 'Change column alignment' ) }\n\t\t\t\t\t\t\talignmentControls={ ALIGNMENT_CONTROLS }\n\t\t\t\t\t\t\tvalue={ getCellAlignment() }\n\t\t\t\t\t\t\tonChange={ ( nextAlign ) =>\n\t\t\t\t\t\t\t\tonChangeColumnAlignment( nextAlign )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\t\t\thasArrowIndicator\n\t\t\t\t\t\t\ticon={ table }\n\t\t\t\t\t\t\tlabel={ __( 'Edit table' ) }\n\t\t\t\t\t\t\tcontrols={ tableControls }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody\n\t\t\t\t\ttitle={ __( 'Settings' ) }\n\t\t\t\t\tclassName=\"blocks-table-settings\"\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Fixed width table cells' ) }\n\t\t\t\t\t\tchecked={ !! hasFixedLayout }\n\t\t\t\t\t\tonChange={ onChangeFixedLayout }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! isEmpty && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Header section' ) }\n\t\t\t\t\t\t\t\tchecked={ !! ( head && head.length ) }\n\t\t\t\t\t\t\t\tonChange={ onToggleHeaderSection }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Footer section' ) }\n\t\t\t\t\t\t\t\tchecked={ !! ( foot && foot.length ) }\n\t\t\t\t\t\t\t\tonChange={ onToggleFooterSection }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ ! isEmpty && (\n\t\t\t\t<table\n\t\t\t\t\tclassName={ classnames(\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-fixed-layout': hasFixedLayout,\n\t\t\t\t\t\t\t// This is required in the editor only to overcome\n\t\t\t\t\t\t\t// the fact the editor rewrites individual border\n\t\t\t\t\t\t\t// widths into a shorthand format.\n\t\t\t\t\t\t\t'has-individual-borders': hasSplitBorders(\n\t\t\t\t\t\t\t\tattributes?.style?.border\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ { ...colorProps.style, ...borderProps.style } }\n\t\t\t\t>\n\t\t\t\t\t{ renderedSections }\n\t\t\t\t</table>\n\t\t\t) }\n\t\t\t{ ! isEmpty && (\n\t\t\t\t<RichText\n\t\t\t\t\tidentifier=\"caption\"\n\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\tclassName={ __experimentalGetElementClassName( 'caption' ) }\n\t\t\t\t\taria-label={ __( 'Table caption text' ) }\n\t\t\t\t\tplaceholder={ __( 'Add caption' ) }\n\t\t\t\t\tvalue={ caption }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { caption: value } )\n\t\t\t\t\t}\n\t\t\t\t\t// Deselect the selected table cell when the caption is focused.\n\t\t\t\t\tunstableOnFocus={ () => setSelectedCell() }\n\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\tinsertBlocksAfter(\n\t\t\t\t\t\t\tcreateBlock( getDefaultBlockName() )\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isEmpty && (\n\t\t\t\t<Placeholder\n\t\t\t\t\tlabel={ __( 'Table' ) }\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } showColors /> }\n\t\t\t\t\tinstructions={ __( 'Insert a table for sharing data.' ) }\n\t\t\t\t>\n\t\t\t\t\t<form\n\t\t\t\t\t\tclassName=\"blocks-table__placeholder-form\"\n\t\t\t\t\t\tonSubmit={ onCreateTable }\n\t\t\t\t\t>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tlabel={ __( 'Column count' ) }\n\t\t\t\t\t\t\tvalue={ initialColumnCount }\n\t\t\t\t\t\t\tonChange={ onChangeInitialColumnCount }\n\t\t\t\t\t\t\tmin=\"1\"\n\t\t\t\t\t\t\tclassName=\"blocks-table__placeholder-input\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tlabel={ __( 'Row count' ) }\n\t\t\t\t\t\t\tvalue={ initialRowCount }\n\t\t\t\t\t\t\tonChange={ onChangeInitialRowCount }\n\t\t\t\t\t\t\tmin=\"1\"\n\t\t\t\t\t\t\tclassName=\"blocks-table__placeholder-input\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"blocks-table__placeholder-button\"\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Create Table' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</form>\n\t\t\t\t</Placeholder>\n\t\t\t) }\n\t\t</figure>\n\t);\n}\n\nexport default TableEdit;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/table/edit.js"],"names":["classnames","useEffect","useRef","useState","InspectorControls","BlockControls","RichText","BlockIcon","AlignmentControl","useBlockProps","__experimentalUseColorProps","useColorProps","__experimentalUseBorderProps","useBorderProps","__experimentalGetElementClassName","__","Button","PanelBody","Placeholder","TextControl","ToggleControl","ToolbarDropdownMenu","__experimentalHasSplitBorders","hasSplitBorders","alignLeft","alignRight","alignCenter","blockTable","icon","tableColumnAfter","tableColumnBefore","tableColumnDelete","tableRowAfter","tableRowBefore","tableRowDelete","table","createBlock","getDefaultBlockName","createTable","updateSelectedCell","getCellAttribute","insertRow","deleteRow","insertColumn","deleteColumn","toggleSection","isEmptyTableSection","ALIGNMENT_CONTROLS","title","align","cellAriaLabel","head","body","foot","placeholder","TSection","name","props","TagName","TableEdit","attributes","setAttributes","insertBlocksAfter","isSelected","hasFixedLayout","caption","initialRowCount","setInitialRowCount","initialColumnCount","setInitialColumnCount","selectedCell","setSelectedCell","colorProps","borderProps","tableRef","hasTableCreated","setHasTableCreated","onChangeInitialColumnCount","count","onChangeInitialRowCount","onCreateTable","event","preventDefault","rowCount","parseInt","columnCount","onChangeFixedLayout","onChange","content","cellAttributes","onChangeColumnAlignment","columnSelection","type","columnIndex","newAttributes","getCellAlignment","onToggleHeaderSection","onToggleFooterSection","onInsertRow","delta","sectionName","rowIndex","newRowIndex","onInsertRowBefore","onInsertRowAfter","onDeleteRow","onInsertColumn","newColumnIndex","onInsertColumnBefore","onInsertColumnAfter","onDeleteColumn","current","querySelector","focus","sections","filter","tableControls","isDisabled","onClick","renderedSections","map","cells","tag","CellTag","scope","colspan","rowspan","undefined","isEmpty","length","ref","nextAlign","className","style","border","value"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useRef, useState } from '@wordpress/element';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tRichText,\n\tBlockIcon,\n\tAlignmentControl,\n\tuseBlockProps,\n\t__experimentalUseColorProps as useColorProps,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tButton,\n\tPanelBody,\n\tPlaceholder,\n\tTextControl,\n\tToggleControl,\n\tToolbarDropdownMenu,\n\t__experimentalHasSplitBorders as hasSplitBorders,\n} from '@wordpress/components';\nimport {\n\talignLeft,\n\talignRight,\n\talignCenter,\n\tblockTable as icon,\n\ttableColumnAfter,\n\ttableColumnBefore,\n\ttableColumnDelete,\n\ttableRowAfter,\n\ttableRowBefore,\n\ttableRowDelete,\n\ttable,\n} from '@wordpress/icons';\nimport { createBlock, getDefaultBlockName } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport {\n\tcreateTable,\n\tupdateSelectedCell,\n\tgetCellAttribute,\n\tinsertRow,\n\tdeleteRow,\n\tinsertColumn,\n\tdeleteColumn,\n\ttoggleSection,\n\tisEmptyTableSection,\n} from './state';\n\nconst ALIGNMENT_CONTROLS = [\n\t{\n\t\ticon: alignLeft,\n\t\ttitle: __( 'Align column left' ),\n\t\talign: 'left',\n\t},\n\t{\n\t\ticon: alignCenter,\n\t\ttitle: __( 'Align column center' ),\n\t\talign: 'center',\n\t},\n\t{\n\t\ticon: alignRight,\n\t\ttitle: __( 'Align column right' ),\n\t\talign: 'right',\n\t},\n];\n\nconst cellAriaLabel = {\n\thead: __( 'Header cell text' ),\n\tbody: __( 'Body cell text' ),\n\tfoot: __( 'Footer cell text' ),\n};\n\nconst placeholder = {\n\thead: __( 'Header label' ),\n\tfoot: __( 'Footer label' ),\n};\n\nfunction TSection( { name, ...props } ) {\n\tconst TagName = `t${ name }`;\n\treturn <TagName { ...props } />;\n}\n\nfunction TableEdit( {\n\tattributes,\n\tsetAttributes,\n\tinsertBlocksAfter,\n\tisSelected,\n} ) {\n\tconst { hasFixedLayout, caption, head, foot } = attributes;\n\tconst [ initialRowCount, setInitialRowCount ] = useState( 2 );\n\tconst [ initialColumnCount, setInitialColumnCount ] = useState( 2 );\n\tconst [ selectedCell, setSelectedCell ] = useState();\n\n\tconst colorProps = useColorProps( attributes );\n\tconst borderProps = useBorderProps( attributes );\n\n\tconst tableRef = useRef();\n\tconst [ hasTableCreated, setHasTableCreated ] = useState( false );\n\n\t/**\n\t * Updates the initial column count used for table creation.\n\t *\n\t * @param {number} count New initial column count.\n\t */\n\tfunction onChangeInitialColumnCount( count ) {\n\t\tsetInitialColumnCount( count );\n\t}\n\n\t/**\n\t * Updates the initial row count used for table creation.\n\t *\n\t * @param {number} count New initial row count.\n\t */\n\tfunction onChangeInitialRowCount( count ) {\n\t\tsetInitialRowCount( count );\n\t}\n\n\t/**\n\t * Creates a table based on dimensions in local state.\n\t *\n\t * @param {Object} event Form submit event.\n\t */\n\tfunction onCreateTable( event ) {\n\t\tevent.preventDefault();\n\n\t\tsetAttributes(\n\t\t\tcreateTable( {\n\t\t\t\trowCount: parseInt( initialRowCount, 10 ) || 2,\n\t\t\t\tcolumnCount: parseInt( initialColumnCount, 10 ) || 2,\n\t\t\t} )\n\t\t);\n\t\tsetHasTableCreated( true );\n\t}\n\n\t/**\n\t * Toggles whether the table has a fixed layout or not.\n\t */\n\tfunction onChangeFixedLayout() {\n\t\tsetAttributes( { hasFixedLayout: ! hasFixedLayout } );\n\t}\n\n\t/**\n\t * Changes the content of the currently selected cell.\n\t *\n\t * @param {Array} content A RichText content value.\n\t */\n\tfunction onChange( content ) {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes(\n\t\t\tupdateSelectedCell(\n\t\t\t\tattributes,\n\t\t\t\tselectedCell,\n\t\t\t\t( cellAttributes ) => ( {\n\t\t\t\t\t...cellAttributes,\n\t\t\t\t\tcontent,\n\t\t\t\t} )\n\t\t\t)\n\t\t);\n\t}\n\n\t/**\n\t * Align text within the a column.\n\t *\n\t * @param {string} align The new alignment to apply to the column.\n\t */\n\tfunction onChangeColumnAlignment( align ) {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Convert the cell selection to a column selection so that alignment\n\t\t// is applied to the entire column.\n\t\tconst columnSelection = {\n\t\t\ttype: 'column',\n\t\t\tcolumnIndex: selectedCell.columnIndex,\n\t\t};\n\n\t\tconst newAttributes = updateSelectedCell(\n\t\t\tattributes,\n\t\t\tcolumnSelection,\n\t\t\t( cellAttributes ) => ( {\n\t\t\t\t...cellAttributes,\n\t\t\t\talign,\n\t\t\t} )\n\t\t);\n\t\tsetAttributes( newAttributes );\n\t}\n\n\t/**\n\t * Get the alignment of the currently selected cell.\n\t *\n\t * @return {string | undefined} The new alignment to apply to the column.\n\t */\n\tfunction getCellAlignment() {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn getCellAttribute( attributes, selectedCell, 'align' );\n\t}\n\n\t/**\n\t * Add or remove a `head` table section.\n\t */\n\tfunction onToggleHeaderSection() {\n\t\tsetAttributes( toggleSection( attributes, 'head' ) );\n\t}\n\n\t/**\n\t * Add or remove a `foot` table section.\n\t */\n\tfunction onToggleFooterSection() {\n\t\tsetAttributes( toggleSection( attributes, 'foot' ) );\n\t}\n\n\t/**\n\t * Inserts a row at the currently selected row index, plus `delta`.\n\t *\n\t * @param {number} delta Offset for selected row index at which to insert.\n\t */\n\tfunction onInsertRow( delta ) {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { sectionName, rowIndex } = selectedCell;\n\t\tconst newRowIndex = rowIndex + delta;\n\n\t\tsetAttributes(\n\t\t\tinsertRow( attributes, {\n\t\t\t\tsectionName,\n\t\t\t\trowIndex: newRowIndex,\n\t\t\t} )\n\t\t);\n\t\t// Select the first cell of the new row.\n\t\tsetSelectedCell( {\n\t\t\tsectionName,\n\t\t\trowIndex: newRowIndex,\n\t\t\tcolumnIndex: 0,\n\t\t\ttype: 'cell',\n\t\t} );\n\t}\n\n\t/**\n\t * Inserts a row before the currently selected row.\n\t */\n\tfunction onInsertRowBefore() {\n\t\tonInsertRow( 0 );\n\t}\n\n\t/**\n\t * Inserts a row after the currently selected row.\n\t */\n\tfunction onInsertRowAfter() {\n\t\tonInsertRow( 1 );\n\t}\n\n\t/**\n\t * Deletes the currently selected row.\n\t */\n\tfunction onDeleteRow() {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { sectionName, rowIndex } = selectedCell;\n\n\t\tsetSelectedCell();\n\t\tsetAttributes( deleteRow( attributes, { sectionName, rowIndex } ) );\n\t}\n\n\t/**\n\t * Inserts a column at the currently selected column index, plus `delta`.\n\t *\n\t * @param {number} delta Offset for selected column index at which to insert.\n\t */\n\tfunction onInsertColumn( delta = 0 ) {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { columnIndex } = selectedCell;\n\t\tconst newColumnIndex = columnIndex + delta;\n\n\t\tsetAttributes(\n\t\t\tinsertColumn( attributes, {\n\t\t\t\tcolumnIndex: newColumnIndex,\n\t\t\t} )\n\t\t);\n\t\t// Select the first cell of the new column.\n\t\tsetSelectedCell( {\n\t\t\trowIndex: 0,\n\t\t\tcolumnIndex: newColumnIndex,\n\t\t\ttype: 'cell',\n\t\t} );\n\t}\n\n\t/**\n\t * Inserts a column before the currently selected column.\n\t */\n\tfunction onInsertColumnBefore() {\n\t\tonInsertColumn( 0 );\n\t}\n\n\t/**\n\t * Inserts a column after the currently selected column.\n\t */\n\tfunction onInsertColumnAfter() {\n\t\tonInsertColumn( 1 );\n\t}\n\n\t/**\n\t * Deletes the currently selected column.\n\t */\n\tfunction onDeleteColumn() {\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { sectionName, columnIndex } = selectedCell;\n\n\t\tsetSelectedCell();\n\t\tsetAttributes(\n\t\t\tdeleteColumn( attributes, { sectionName, columnIndex } )\n\t\t);\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetSelectedCell();\n\t\t}\n\t}, [ isSelected ] );\n\n\tuseEffect( () => {\n\t\tif ( hasTableCreated ) {\n\t\t\ttableRef?.current\n\t\t\t\t?.querySelector( 'td[contentEditable=\"true\"]' )\n\t\t\t\t?.focus();\n\t\t\tsetHasTableCreated( false );\n\t\t}\n\t}, [ hasTableCreated ] );\n\n\tconst sections = [ 'head', 'body', 'foot' ].filter(\n\t\t( name ) => ! isEmptyTableSection( attributes[ name ] )\n\t);\n\n\tconst tableControls = [\n\t\t{\n\t\t\ticon: tableRowBefore,\n\t\t\ttitle: __( 'Insert row before' ),\n\t\t\tisDisabled: ! selectedCell,\n\t\t\tonClick: onInsertRowBefore,\n\t\t},\n\t\t{\n\t\t\ticon: tableRowAfter,\n\t\t\ttitle: __( 'Insert row after' ),\n\t\t\tisDisabled: ! selectedCell,\n\t\t\tonClick: onInsertRowAfter,\n\t\t},\n\t\t{\n\t\t\ticon: tableRowDelete,\n\t\t\ttitle: __( 'Delete row' ),\n\t\t\tisDisabled: ! selectedCell,\n\t\t\tonClick: onDeleteRow,\n\t\t},\n\t\t{\n\t\t\ticon: tableColumnBefore,\n\t\t\ttitle: __( 'Insert column before' ),\n\t\t\tisDisabled: ! selectedCell,\n\t\t\tonClick: onInsertColumnBefore,\n\t\t},\n\t\t{\n\t\t\ticon: tableColumnAfter,\n\t\t\ttitle: __( 'Insert column after' ),\n\t\t\tisDisabled: ! selectedCell,\n\t\t\tonClick: onInsertColumnAfter,\n\t\t},\n\t\t{\n\t\t\ticon: tableColumnDelete,\n\t\t\ttitle: __( 'Delete column' ),\n\t\t\tisDisabled: ! selectedCell,\n\t\t\tonClick: onDeleteColumn,\n\t\t},\n\t];\n\n\tconst renderedSections = sections.map( ( name ) => (\n\t\t<TSection name={ name } key={ name }>\n\t\t\t{ attributes[ name ].map( ( { cells }, rowIndex ) => (\n\t\t\t\t<tr key={ rowIndex }>\n\t\t\t\t\t{ cells.map(\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcontent,\n\t\t\t\t\t\t\t\ttag: CellTag,\n\t\t\t\t\t\t\t\tscope,\n\t\t\t\t\t\t\t\talign,\n\t\t\t\t\t\t\t\tcolspan,\n\t\t\t\t\t\t\t\trowspan,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tcolumnIndex\n\t\t\t\t\t\t) => (\n\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\ttagName={ CellTag }\n\t\t\t\t\t\t\t\tkey={ columnIndex }\n\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t[ `has-text-align-${ align }` ]: align,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t'wp-block-table__cell-content'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tscope={ CellTag === 'th' ? scope : undefined }\n\t\t\t\t\t\t\t\tcolSpan={ colspan }\n\t\t\t\t\t\t\t\trowSpan={ rowspan }\n\t\t\t\t\t\t\t\tvalue={ content }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\tonFocus={ () => {\n\t\t\t\t\t\t\t\t\tsetSelectedCell( {\n\t\t\t\t\t\t\t\t\t\tsectionName: name,\n\t\t\t\t\t\t\t\t\t\trowIndex,\n\t\t\t\t\t\t\t\t\t\tcolumnIndex,\n\t\t\t\t\t\t\t\t\t\ttype: 'cell',\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\taria-label={ cellAriaLabel[ name ] }\n\t\t\t\t\t\t\t\tplaceholder={ placeholder[ name ] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)\n\t\t\t\t\t) }\n\t\t\t\t</tr>\n\t\t\t) ) }\n\t\t</TSection>\n\t) );\n\n\tconst isEmpty = ! sections.length;\n\n\treturn (\n\t\t<figure { ...useBlockProps( { ref: tableRef } ) }>\n\t\t\t{ ! isEmpty && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t\t<AlignmentControl\n\t\t\t\t\t\t\tlabel={ __( 'Change column alignment' ) }\n\t\t\t\t\t\t\talignmentControls={ ALIGNMENT_CONTROLS }\n\t\t\t\t\t\t\tvalue={ getCellAlignment() }\n\t\t\t\t\t\t\tonChange={ ( nextAlign ) =>\n\t\t\t\t\t\t\t\tonChangeColumnAlignment( nextAlign )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\t\t\thasArrowIndicator\n\t\t\t\t\t\t\ticon={ table }\n\t\t\t\t\t\t\tlabel={ __( 'Edit table' ) }\n\t\t\t\t\t\t\tcontrols={ tableControls }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody\n\t\t\t\t\ttitle={ __( 'Settings' ) }\n\t\t\t\t\tclassName=\"blocks-table-settings\"\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Fixed width table cells' ) }\n\t\t\t\t\t\tchecked={ !! hasFixedLayout }\n\t\t\t\t\t\tonChange={ onChangeFixedLayout }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! isEmpty && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Header section' ) }\n\t\t\t\t\t\t\t\tchecked={ !! ( head && head.length ) }\n\t\t\t\t\t\t\t\tonChange={ onToggleHeaderSection }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Footer section' ) }\n\t\t\t\t\t\t\t\tchecked={ !! ( foot && foot.length ) }\n\t\t\t\t\t\t\t\tonChange={ onToggleFooterSection }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ ! isEmpty && (\n\t\t\t\t<table\n\t\t\t\t\tclassName={ classnames(\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-fixed-layout': hasFixedLayout,\n\t\t\t\t\t\t\t// This is required in the editor only to overcome\n\t\t\t\t\t\t\t// the fact the editor rewrites individual border\n\t\t\t\t\t\t\t// widths into a shorthand format.\n\t\t\t\t\t\t\t'has-individual-borders': hasSplitBorders(\n\t\t\t\t\t\t\t\tattributes?.style?.border\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ { ...colorProps.style, ...borderProps.style } }\n\t\t\t\t>\n\t\t\t\t\t{ renderedSections }\n\t\t\t\t</table>\n\t\t\t) }\n\t\t\t{ ! isEmpty && (\n\t\t\t\t<RichText\n\t\t\t\t\tidentifier=\"caption\"\n\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\tclassName={ __experimentalGetElementClassName( 'caption' ) }\n\t\t\t\t\taria-label={ __( 'Table caption text' ) }\n\t\t\t\t\tplaceholder={ __( 'Add caption' ) }\n\t\t\t\t\tvalue={ caption }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { caption: value } )\n\t\t\t\t\t}\n\t\t\t\t\t// Deselect the selected table cell when the caption is focused.\n\t\t\t\t\tonFocus={ () => setSelectedCell() }\n\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\tinsertBlocksAfter(\n\t\t\t\t\t\t\tcreateBlock( getDefaultBlockName() )\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isEmpty && (\n\t\t\t\t<Placeholder\n\t\t\t\t\tlabel={ __( 'Table' ) }\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } showColors /> }\n\t\t\t\t\tinstructions={ __( 'Insert a table for sharing data.' ) }\n\t\t\t\t>\n\t\t\t\t\t<form\n\t\t\t\t\t\tclassName=\"blocks-table__placeholder-form\"\n\t\t\t\t\t\tonSubmit={ onCreateTable }\n\t\t\t\t\t>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tlabel={ __( 'Column count' ) }\n\t\t\t\t\t\t\tvalue={ initialColumnCount }\n\t\t\t\t\t\t\tonChange={ onChangeInitialColumnCount }\n\t\t\t\t\t\t\tmin=\"1\"\n\t\t\t\t\t\t\tclassName=\"blocks-table__placeholder-input\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\tlabel={ __( 'Row count' ) }\n\t\t\t\t\t\t\tvalue={ initialRowCount }\n\t\t\t\t\t\t\tonChange={ onChangeInitialRowCount }\n\t\t\t\t\t\t\tmin=\"1\"\n\t\t\t\t\t\t\tclassName=\"blocks-table__placeholder-input\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"blocks-table__placeholder-button\"\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Create Table' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</form>\n\t\t\t\t</Placeholder>\n\t\t\t) }\n\t\t</figure>\n\t);\n}\n\nexport default TableEdit;\n"]}
@@ -200,6 +200,7 @@ export default function TableOfContentsEdit(_ref) {
200
200
  const inspectorControls = createElement(InspectorControls, null, createElement(PanelBody, {
201
201
  title: __('Settings')
202
202
  }, createElement(ToggleControl, {
203
+ __nextHasNoMarginBottom: true,
203
204
  label: __('Only include current page'),
204
205
  checked: onlyIncludeCurrentPage,
205
206
  onChange: value => setAttributes({
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-library/src/table-of-contents/edit.js"],"names":["fastDeepEqual","BlockControls","BlockIcon","InspectorControls","store","blockEditorStore","useBlockProps","createBlock","PanelBody","Placeholder","ToggleControl","ToolbarButton","ToolbarGroup","useDispatch","useSelect","__unstableStripHTML","stripHTML","renderToString","useEffect","__","addQueryArgs","removeQueryArgs","icon","TableOfContentsList","linearToNestedHeadingList","TableOfContentsEdit","attributes","headings","onlyIncludeCurrentPage","clientId","setAttributes","blockProps","canInsertList","select","getBlockRootClientId","canInsertBlockType","rootClientId","__unstableMarkNextChangeAsNotPersistent","replaceBlocks","latestHeadings","getBlockAttributes","getBlockName","getClientIdsWithDescendants","__experimentalGetGlobalBlocksByName","getGlobalBlocksByName","editorSelectors","pageBreakClientIds","isPaginated","length","allBlockClientIds","tocPage","tocIndex","indexOf","blockIndex","blockClientId","entries","_latestHeadings","headingPage","permalink","getPermalink","headingPageLink","page","blockName","headingAttributes","canBeLinked","anchor","push","content","replace","level","link","headingTree","toolbarControls","ordered","values","inspectorControls","value"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tstore as blockEditorStore,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tPanelBody,\n\tPlaceholder,\n\tToggleControl,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport { renderToString, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { addQueryArgs, removeQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport icon from './icon';\nimport TableOfContentsList from './list';\nimport { linearToNestedHeadingList } from './utils';\n\n/** @typedef {import('./utils').HeadingData} HeadingData */\n\n/**\n * Table of Contents block edit component.\n *\n * @param {Object} props The props.\n * @param {Object} props.attributes The block attributes.\n * @param {HeadingData[]} props.attributes.headings A list of data for each heading in the post.\n * @param {boolean} props.attributes.onlyIncludeCurrentPage Whether to only include headings from the current page (if the post is paginated).\n * @param {string} props.clientId\n * @param {(attributes: Object) => void} props.setAttributes\n *\n * @return {WPComponent} The component.\n */\nexport default function TableOfContentsEdit( {\n\tattributes: { headings = [], onlyIncludeCurrentPage },\n\tclientId,\n\tsetAttributes,\n} ) {\n\tconst blockProps = useBlockProps();\n\n\tconst canInsertList = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, canInsertBlockType } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\n\t\t\treturn canInsertBlockType( 'core/list', rootClientId );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { __unstableMarkNextChangeAsNotPersistent, replaceBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\n\t/**\n\t * The latest heading data, or null if the new data deeply equals the saved\n\t * headings attribute.\n\t *\n\t * Since useSelect forces a re-render when its return value is shallowly\n\t * inequal to its prior call, we would be re-rendering this block every time\n\t * the stores change, even if the latest headings were deeply equal to the\n\t * ones saved in the block attributes.\n\t *\n\t * By returning null when they're equal, we reduce that to 2 renders: one\n\t * when there are new latest headings (and so it returns them), and one when\n\t * they haven't changed (so it returns null). As long as the latest heading\n\t * data remains the same, further calls of the useSelect callback will\n\t * continue to return null, thus preventing any forced re-renders.\n\t */\n\tconst latestHeadings = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetClientIdsWithDescendants,\n\t\t\t\t__experimentalGetGlobalBlocksByName: getGlobalBlocksByName,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\t// FIXME: @wordpress/block-library should not depend on @wordpress/editor.\n\t\t\t// Blocks can be loaded into a *non-post* block editor, so to avoid\n\t\t\t// declaring @wordpress/editor as a dependency, we must access its\n\t\t\t// store by string. When the store is not available, editorSelectors\n\t\t\t// will be null, and the block's saved markup will lack permalinks.\n\t\t\t// eslint-disable-next-line @wordpress/data-no-store-string-literals\n\t\t\tconst editorSelectors = select( 'core/editor' );\n\n\t\t\tconst pageBreakClientIds = getGlobalBlocksByName( 'core/nextpage' );\n\n\t\t\tconst isPaginated = pageBreakClientIds.length !== 0;\n\n\t\t\t// Get the client ids of all blocks in the editor.\n\t\t\tconst allBlockClientIds = getClientIdsWithDescendants();\n\n\t\t\t// If onlyIncludeCurrentPage is true, calculate the page (of a paginated post) this block is part of, so we know which headings to include; otherwise, skip the calculation.\n\t\t\tlet tocPage = 1;\n\n\t\t\tif ( isPaginated && onlyIncludeCurrentPage ) {\n\t\t\t\t// We can't use getBlockIndex because it only returns the index\n\t\t\t\t// relative to sibling blocks.\n\t\t\t\tconst tocIndex = allBlockClientIds.indexOf( clientId );\n\n\t\t\t\tfor ( const [\n\t\t\t\t\tblockIndex,\n\t\t\t\t\tblockClientId,\n\t\t\t\t] of allBlockClientIds.entries() ) {\n\t\t\t\t\t// If we've reached blocks after the Table of Contents, we've\n\t\t\t\t\t// finished calculating which page the block is on.\n\t\t\t\t\tif ( blockIndex >= tocIndex ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif ( getBlockName( blockClientId ) === 'core/nextpage' ) {\n\t\t\t\t\t\ttocPage++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst _latestHeadings = [];\n\n\t\t\t/** The page (of a paginated post) a heading will be part of. */\n\t\t\tlet headingPage = 1;\n\n\t\t\t/**\n\t\t\t * A permalink to the current post. If the core/editor store is\n\t\t\t * unavailable, this variable will be null.\n\t\t\t */\n\t\t\tconst permalink = editorSelectors?.getPermalink() ?? null;\n\n\t\t\tlet headingPageLink = null;\n\n\t\t\t// If the core/editor store is available, we can add permalinks to the\n\t\t\t// generated table of contents.\n\t\t\tif ( typeof permalink === 'string' ) {\n\t\t\t\theadingPageLink = isPaginated\n\t\t\t\t\t? addQueryArgs( permalink, { page: headingPage } )\n\t\t\t\t\t: permalink;\n\t\t\t}\n\n\t\t\tfor ( const blockClientId of allBlockClientIds ) {\n\t\t\t\tconst blockName = getBlockName( blockClientId );\n\t\t\t\tif ( blockName === 'core/nextpage' ) {\n\t\t\t\t\theadingPage++;\n\n\t\t\t\t\t// If we're only including headings from the current page (of\n\t\t\t\t\t// a paginated post), then exit the loop if we've reached the\n\t\t\t\t\t// pages after the one with the Table of Contents block.\n\t\t\t\t\tif ( onlyIncludeCurrentPage && headingPage > tocPage ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( typeof permalink === 'string' ) {\n\t\t\t\t\t\theadingPageLink = addQueryArgs(\n\t\t\t\t\t\t\tremoveQueryArgs( permalink, [ 'page' ] ),\n\t\t\t\t\t\t\t{ page: headingPage }\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If we're including all headings or we've reached headings on\n\t\t\t\t// the same page as the Table of Contents block, add them to the\n\t\t\t\t// list.\n\t\t\t\telse if (\n\t\t\t\t\t! onlyIncludeCurrentPage ||\n\t\t\t\t\theadingPage === tocPage\n\t\t\t\t) {\n\t\t\t\t\tif ( blockName === 'core/heading' ) {\n\t\t\t\t\t\tconst headingAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( blockClientId );\n\n\t\t\t\t\t\tconst canBeLinked =\n\t\t\t\t\t\t\ttypeof headingPageLink === 'string' &&\n\t\t\t\t\t\t\ttypeof headingAttributes.anchor === 'string' &&\n\t\t\t\t\t\t\theadingAttributes.anchor !== '';\n\n\t\t\t\t\t\t_latestHeadings.push( {\n\t\t\t\t\t\t\t// Convert line breaks to spaces, and get rid of HTML tags in the headings.\n\t\t\t\t\t\t\tcontent: stripHTML(\n\t\t\t\t\t\t\t\theadingAttributes.content.replace(\n\t\t\t\t\t\t\t\t\t/(<br *\\/?>)+/g,\n\t\t\t\t\t\t\t\t\t' '\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tlevel: headingAttributes.level,\n\t\t\t\t\t\t\tlink: canBeLinked\n\t\t\t\t\t\t\t\t? `${ headingPageLink }#${ headingAttributes.anchor }`\n\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( fastDeepEqual( headings, _latestHeadings ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn _latestHeadings;\n\t\t},\n\t\t[ clientId, onlyIncludeCurrentPage, headings ]\n\t);\n\n\tuseEffect( () => {\n\t\tif ( latestHeadings !== null ) {\n\t\t\t// This is required to keep undo working and not create 2 undo steps\n\t\t\t// for each heading change.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { headings: latestHeadings } );\n\t\t}\n\t}, [ latestHeadings ] );\n\n\tconst headingTree = linearToNestedHeadingList( headings );\n\n\tconst toolbarControls = canInsertList && (\n\t\t<BlockControls>\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\treplaceBlocks(\n\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\tcreateBlock( 'core/list', {\n\t\t\t\t\t\t\t\tordered: true,\n\t\t\t\t\t\t\t\tvalues: renderToString(\n\t\t\t\t\t\t\t\t\t<TableOfContentsList\n\t\t\t\t\t\t\t\t\t\tnestedHeadingList={ headingTree }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Convert to static list' ) }\n\t\t\t\t</ToolbarButton>\n\t\t\t</ToolbarGroup>\n\t\t</BlockControls>\n\t);\n\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Only include current page' ) }\n\t\t\t\t\tchecked={ onlyIncludeCurrentPage }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { onlyIncludeCurrentPage: value } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={\n\t\t\t\t\t\tonlyIncludeCurrentPage\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'Only including headings from the current page (if the post is paginated).'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'Toggle to only include headings from the current page (if the post is paginated).'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n\n\t// If there are no headings or the only heading is empty.\n\t// Note that the toolbar controls are intentionally omitted since the\n\t// \"Convert to static list\" option is useless to the placeholder state.\n\tif ( headings.length === 0 ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Placeholder\n\t\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\t\tlabel={ __( 'Table of Contents' ) }\n\t\t\t\t\t\tinstructions={ __(\n\t\t\t\t\t\t\t'Start adding Heading blocks to create a table of contents. Headings with HTML anchors will be linked here.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t{ inspectorControls }\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<nav { ...blockProps }>\n\t\t\t\t<ol inert=\"true\">\n\t\t\t\t\t<TableOfContentsList nestedHeadingList={ headingTree } />\n\t\t\t\t</ol>\n\t\t\t</nav>\n\t\t\t{ toolbarControls }\n\t\t\t{ inspectorControls }\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-library/src/table-of-contents/edit.js"],"names":["fastDeepEqual","BlockControls","BlockIcon","InspectorControls","store","blockEditorStore","useBlockProps","createBlock","PanelBody","Placeholder","ToggleControl","ToolbarButton","ToolbarGroup","useDispatch","useSelect","__unstableStripHTML","stripHTML","renderToString","useEffect","__","addQueryArgs","removeQueryArgs","icon","TableOfContentsList","linearToNestedHeadingList","TableOfContentsEdit","attributes","headings","onlyIncludeCurrentPage","clientId","setAttributes","blockProps","canInsertList","select","getBlockRootClientId","canInsertBlockType","rootClientId","__unstableMarkNextChangeAsNotPersistent","replaceBlocks","latestHeadings","getBlockAttributes","getBlockName","getClientIdsWithDescendants","__experimentalGetGlobalBlocksByName","getGlobalBlocksByName","editorSelectors","pageBreakClientIds","isPaginated","length","allBlockClientIds","tocPage","tocIndex","indexOf","blockIndex","blockClientId","entries","_latestHeadings","headingPage","permalink","getPermalink","headingPageLink","page","blockName","headingAttributes","canBeLinked","anchor","push","content","replace","level","link","headingTree","toolbarControls","ordered","values","inspectorControls","value"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport fastDeepEqual from 'fast-deep-equal/es6';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tstore as blockEditorStore,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tPanelBody,\n\tPlaceholder,\n\tToggleControl,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport { renderToString, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { addQueryArgs, removeQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport icon from './icon';\nimport TableOfContentsList from './list';\nimport { linearToNestedHeadingList } from './utils';\n\n/** @typedef {import('./utils').HeadingData} HeadingData */\n\n/**\n * Table of Contents block edit component.\n *\n * @param {Object} props The props.\n * @param {Object} props.attributes The block attributes.\n * @param {HeadingData[]} props.attributes.headings A list of data for each heading in the post.\n * @param {boolean} props.attributes.onlyIncludeCurrentPage Whether to only include headings from the current page (if the post is paginated).\n * @param {string} props.clientId\n * @param {(attributes: Object) => void} props.setAttributes\n *\n * @return {WPComponent} The component.\n */\nexport default function TableOfContentsEdit( {\n\tattributes: { headings = [], onlyIncludeCurrentPage },\n\tclientId,\n\tsetAttributes,\n} ) {\n\tconst blockProps = useBlockProps();\n\n\tconst canInsertList = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, canInsertBlockType } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\n\t\t\treturn canInsertBlockType( 'core/list', rootClientId );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { __unstableMarkNextChangeAsNotPersistent, replaceBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\n\t/**\n\t * The latest heading data, or null if the new data deeply equals the saved\n\t * headings attribute.\n\t *\n\t * Since useSelect forces a re-render when its return value is shallowly\n\t * inequal to its prior call, we would be re-rendering this block every time\n\t * the stores change, even if the latest headings were deeply equal to the\n\t * ones saved in the block attributes.\n\t *\n\t * By returning null when they're equal, we reduce that to 2 renders: one\n\t * when there are new latest headings (and so it returns them), and one when\n\t * they haven't changed (so it returns null). As long as the latest heading\n\t * data remains the same, further calls of the useSelect callback will\n\t * continue to return null, thus preventing any forced re-renders.\n\t */\n\tconst latestHeadings = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetClientIdsWithDescendants,\n\t\t\t\t__experimentalGetGlobalBlocksByName: getGlobalBlocksByName,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\t// FIXME: @wordpress/block-library should not depend on @wordpress/editor.\n\t\t\t// Blocks can be loaded into a *non-post* block editor, so to avoid\n\t\t\t// declaring @wordpress/editor as a dependency, we must access its\n\t\t\t// store by string. When the store is not available, editorSelectors\n\t\t\t// will be null, and the block's saved markup will lack permalinks.\n\t\t\t// eslint-disable-next-line @wordpress/data-no-store-string-literals\n\t\t\tconst editorSelectors = select( 'core/editor' );\n\n\t\t\tconst pageBreakClientIds = getGlobalBlocksByName( 'core/nextpage' );\n\n\t\t\tconst isPaginated = pageBreakClientIds.length !== 0;\n\n\t\t\t// Get the client ids of all blocks in the editor.\n\t\t\tconst allBlockClientIds = getClientIdsWithDescendants();\n\n\t\t\t// If onlyIncludeCurrentPage is true, calculate the page (of a paginated post) this block is part of, so we know which headings to include; otherwise, skip the calculation.\n\t\t\tlet tocPage = 1;\n\n\t\t\tif ( isPaginated && onlyIncludeCurrentPage ) {\n\t\t\t\t// We can't use getBlockIndex because it only returns the index\n\t\t\t\t// relative to sibling blocks.\n\t\t\t\tconst tocIndex = allBlockClientIds.indexOf( clientId );\n\n\t\t\t\tfor ( const [\n\t\t\t\t\tblockIndex,\n\t\t\t\t\tblockClientId,\n\t\t\t\t] of allBlockClientIds.entries() ) {\n\t\t\t\t\t// If we've reached blocks after the Table of Contents, we've\n\t\t\t\t\t// finished calculating which page the block is on.\n\t\t\t\t\tif ( blockIndex >= tocIndex ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif ( getBlockName( blockClientId ) === 'core/nextpage' ) {\n\t\t\t\t\t\ttocPage++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst _latestHeadings = [];\n\n\t\t\t/** The page (of a paginated post) a heading will be part of. */\n\t\t\tlet headingPage = 1;\n\n\t\t\t/**\n\t\t\t * A permalink to the current post. If the core/editor store is\n\t\t\t * unavailable, this variable will be null.\n\t\t\t */\n\t\t\tconst permalink = editorSelectors?.getPermalink() ?? null;\n\n\t\t\tlet headingPageLink = null;\n\n\t\t\t// If the core/editor store is available, we can add permalinks to the\n\t\t\t// generated table of contents.\n\t\t\tif ( typeof permalink === 'string' ) {\n\t\t\t\theadingPageLink = isPaginated\n\t\t\t\t\t? addQueryArgs( permalink, { page: headingPage } )\n\t\t\t\t\t: permalink;\n\t\t\t}\n\n\t\t\tfor ( const blockClientId of allBlockClientIds ) {\n\t\t\t\tconst blockName = getBlockName( blockClientId );\n\t\t\t\tif ( blockName === 'core/nextpage' ) {\n\t\t\t\t\theadingPage++;\n\n\t\t\t\t\t// If we're only including headings from the current page (of\n\t\t\t\t\t// a paginated post), then exit the loop if we've reached the\n\t\t\t\t\t// pages after the one with the Table of Contents block.\n\t\t\t\t\tif ( onlyIncludeCurrentPage && headingPage > tocPage ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( typeof permalink === 'string' ) {\n\t\t\t\t\t\theadingPageLink = addQueryArgs(\n\t\t\t\t\t\t\tremoveQueryArgs( permalink, [ 'page' ] ),\n\t\t\t\t\t\t\t{ page: headingPage }\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If we're including all headings or we've reached headings on\n\t\t\t\t// the same page as the Table of Contents block, add them to the\n\t\t\t\t// list.\n\t\t\t\telse if (\n\t\t\t\t\t! onlyIncludeCurrentPage ||\n\t\t\t\t\theadingPage === tocPage\n\t\t\t\t) {\n\t\t\t\t\tif ( blockName === 'core/heading' ) {\n\t\t\t\t\t\tconst headingAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( blockClientId );\n\n\t\t\t\t\t\tconst canBeLinked =\n\t\t\t\t\t\t\ttypeof headingPageLink === 'string' &&\n\t\t\t\t\t\t\ttypeof headingAttributes.anchor === 'string' &&\n\t\t\t\t\t\t\theadingAttributes.anchor !== '';\n\n\t\t\t\t\t\t_latestHeadings.push( {\n\t\t\t\t\t\t\t// Convert line breaks to spaces, and get rid of HTML tags in the headings.\n\t\t\t\t\t\t\tcontent: stripHTML(\n\t\t\t\t\t\t\t\theadingAttributes.content.replace(\n\t\t\t\t\t\t\t\t\t/(<br *\\/?>)+/g,\n\t\t\t\t\t\t\t\t\t' '\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tlevel: headingAttributes.level,\n\t\t\t\t\t\t\tlink: canBeLinked\n\t\t\t\t\t\t\t\t? `${ headingPageLink }#${ headingAttributes.anchor }`\n\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( fastDeepEqual( headings, _latestHeadings ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn _latestHeadings;\n\t\t},\n\t\t[ clientId, onlyIncludeCurrentPage, headings ]\n\t);\n\n\tuseEffect( () => {\n\t\tif ( latestHeadings !== null ) {\n\t\t\t// This is required to keep undo working and not create 2 undo steps\n\t\t\t// for each heading change.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { headings: latestHeadings } );\n\t\t}\n\t}, [ latestHeadings ] );\n\n\tconst headingTree = linearToNestedHeadingList( headings );\n\n\tconst toolbarControls = canInsertList && (\n\t\t<BlockControls>\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\treplaceBlocks(\n\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\tcreateBlock( 'core/list', {\n\t\t\t\t\t\t\t\tordered: true,\n\t\t\t\t\t\t\t\tvalues: renderToString(\n\t\t\t\t\t\t\t\t\t<TableOfContentsList\n\t\t\t\t\t\t\t\t\t\tnestedHeadingList={ headingTree }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Convert to static list' ) }\n\t\t\t\t</ToolbarButton>\n\t\t\t</ToolbarGroup>\n\t\t</BlockControls>\n\t);\n\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Only include current page' ) }\n\t\t\t\t\tchecked={ onlyIncludeCurrentPage }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { onlyIncludeCurrentPage: value } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={\n\t\t\t\t\t\tonlyIncludeCurrentPage\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'Only including headings from the current page (if the post is paginated).'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'Toggle to only include headings from the current page (if the post is paginated).'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n\n\t// If there are no headings or the only heading is empty.\n\t// Note that the toolbar controls are intentionally omitted since the\n\t// \"Convert to static list\" option is useless to the placeholder state.\n\tif ( headings.length === 0 ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Placeholder\n\t\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\t\tlabel={ __( 'Table of Contents' ) }\n\t\t\t\t\t\tinstructions={ __(\n\t\t\t\t\t\t\t'Start adding Heading blocks to create a table of contents. Headings with HTML anchors will be linked here.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t{ inspectorControls }\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<nav { ...blockProps }>\n\t\t\t\t<ol inert=\"true\">\n\t\t\t\t\t<TableOfContentsList nestedHeadingList={ headingTree } />\n\t\t\t\t</ol>\n\t\t\t</nav>\n\t\t\t{ toolbarControls }\n\t\t\t{ inspectorControls }\n\t\t</>\n\t);\n}\n"]}
@@ -2,7 +2,7 @@
2
2
  * Takes a flat list of heading parameters and nests them based on each header's
3
3
  * immediate parent's level.
4
4
  *
5
- * @param headingList The flat list of headings to nest.
5
+ * @param headingList The flat list of headings to nest.
6
6
  *
7
7
  * @return The nested list of headings.
8
8
  */