@wordpress/block-library 10.0.1 → 10.1.1-next.v.202607070741.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 (722) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/build/accordion/edit.cjs +0 -1
  3. package/build/accordion/edit.cjs.map +2 -2
  4. package/build/accordion/view.cjs +23 -0
  5. package/build/accordion/view.cjs.map +2 -2
  6. package/build/accordion-heading/deprecated.cjs +121 -1
  7. package/build/accordion-heading/deprecated.cjs.map +2 -2
  8. package/build/accordion-heading/edit.cjs +18 -1
  9. package/build/accordion-heading/edit.cjs.map +3 -3
  10. package/build/accordion-heading/save.cjs +18 -1
  11. package/build/accordion-heading/save.cjs.map +3 -3
  12. package/build/accordion-panel/edit.cjs +1 -1
  13. package/build/accordion-panel/edit.cjs.map +2 -2
  14. package/build/archives/edit.cjs +0 -1
  15. package/build/archives/edit.cjs.map +2 -2
  16. package/build/audio/edit.cjs +0 -1
  17. package/build/audio/edit.cjs.map +2 -2
  18. package/build/avatar/edit.cjs +0 -1
  19. package/build/avatar/edit.cjs.map +2 -2
  20. package/build/avatar/user-control.cjs +0 -1
  21. package/build/avatar/user-control.cjs.map +2 -2
  22. package/build/categories/edit.cjs +0 -1
  23. package/build/categories/edit.cjs.map +2 -2
  24. package/build/code/transforms.cjs +5 -3
  25. package/build/code/transforms.cjs.map +2 -2
  26. package/build/column/edit.cjs +0 -1
  27. package/build/column/edit.cjs.map +2 -2
  28. package/build/columns/edit.cjs +0 -1
  29. package/build/columns/edit.cjs.map +2 -2
  30. package/build/columns/transforms.cjs +9 -2
  31. package/build/columns/transforms.cjs.map +2 -2
  32. package/build/comment-author-avatar/edit.cjs +0 -1
  33. package/build/comment-author-avatar/edit.cjs.map +2 -2
  34. package/build/comments-pagination/comments-pagination-arrow-controls.cjs +0 -1
  35. package/build/comments-pagination/comments-pagination-arrow-controls.cjs.map +2 -2
  36. package/build/cover/edit/inspector-controls.cjs +1 -3
  37. package/build/cover/edit/inspector-controls.cjs.map +2 -2
  38. package/build/details/transforms.cjs +3 -1
  39. package/build/details/transforms.cjs.map +2 -2
  40. package/build/embed/edit.cjs +2 -3
  41. package/build/embed/edit.cjs.map +2 -2
  42. package/build/embed/embed-placeholder.cjs +20 -20
  43. package/build/embed/embed-placeholder.cjs.map +3 -3
  44. package/build/file/inspector.cjs +0 -2
  45. package/build/file/inspector.cjs.map +2 -2
  46. package/build/form/edit.cjs +0 -2
  47. package/build/form/edit.cjs.map +2 -2
  48. package/build/freeform/convert-to-blocks-button.cjs +52 -0
  49. package/build/freeform/convert-to-blocks-button.cjs.map +7 -0
  50. package/build/freeform/edit.cjs +14 -33
  51. package/build/freeform/edit.cjs.map +3 -3
  52. package/build/freeform/index.cjs +1 -7
  53. package/build/freeform/index.cjs.map +3 -3
  54. package/build/gallery/block.json +4 -1
  55. package/build/gallery/dynamic-gallery.cjs +263 -0
  56. package/build/gallery/dynamic-gallery.cjs.map +7 -0
  57. package/build/gallery/dynamic-source.cjs +85 -0
  58. package/build/gallery/dynamic-source.cjs.map +7 -0
  59. package/build/gallery/edit.cjs +285 -205
  60. package/build/gallery/edit.cjs.map +3 -3
  61. package/build/gallery/gallery.cjs +0 -3
  62. package/build/gallery/gallery.cjs.map +2 -2
  63. package/build/gallery/index.cjs +2 -0
  64. package/build/gallery/index.cjs.map +3 -3
  65. package/build/gallery/save.cjs +16 -12
  66. package/build/gallery/save.cjs.map +2 -2
  67. package/build/gallery/use-dynamic-gallery.cjs +181 -0
  68. package/build/gallery/use-dynamic-gallery.cjs.map +7 -0
  69. package/build/gallery/variations.cjs +54 -0
  70. package/build/gallery/variations.cjs.map +7 -0
  71. package/build/group/edit.cjs +1 -2
  72. package/build/group/edit.cjs.map +2 -2
  73. package/build/group/transforms.cjs +3 -7
  74. package/build/group/transforms.cjs.map +2 -2
  75. package/build/heading/edit.cjs +10 -3
  76. package/build/heading/edit.cjs.map +2 -2
  77. package/build/html/block.json +2 -2
  78. package/build/html/edit.cjs +65 -23
  79. package/build/html/edit.cjs.map +3 -3
  80. package/build/html/index.cjs +3 -3
  81. package/build/html/index.cjs.map +2 -2
  82. package/build/html/modal.cjs +4 -8
  83. package/build/html/modal.cjs.map +2 -2
  84. package/build/html/save.cjs +2 -4
  85. package/build/html/save.cjs.map +2 -2
  86. package/build/html/transforms.cjs +7 -5
  87. package/build/html/transforms.cjs.map +2 -2
  88. package/build/image/animated-gif-convert-control.cjs +105 -0
  89. package/build/image/animated-gif-convert-control.cjs.map +7 -0
  90. package/build/image/edit.cjs +34 -0
  91. package/build/image/edit.cjs.map +2 -2
  92. package/build/image/image.cjs +38 -66
  93. package/build/image/image.cjs.map +3 -3
  94. package/build/index.cjs.map +2 -2
  95. package/build/latest-comments/edit.cjs +0 -2
  96. package/build/latest-comments/edit.cjs.map +2 -2
  97. package/build/latest-posts/block.json +8 -9
  98. package/build/latest-posts/constants.cjs +0 -3
  99. package/build/latest-posts/constants.cjs.map +2 -2
  100. package/build/latest-posts/deprecated.cjs +100 -8
  101. package/build/latest-posts/deprecated.cjs.map +2 -2
  102. package/build/latest-posts/edit.cjs +62 -76
  103. package/build/latest-posts/edit.cjs.map +2 -2
  104. package/build/list/ordered-list-settings.cjs +0 -1
  105. package/build/list/ordered-list-settings.cjs.map +2 -2
  106. package/build/media-text/edit.cjs +0 -1
  107. package/build/media-text/edit.cjs.map +2 -2
  108. package/build/missing/edit.cjs +1 -3
  109. package/build/missing/edit.cjs.map +2 -2
  110. package/build/navigation/edit/index.cjs +0 -1
  111. package/build/navigation/edit/index.cjs.map +2 -2
  112. package/build/navigation/edit/overlay-menu-preview-controls.cjs +0 -1
  113. package/build/navigation/edit/overlay-menu-preview-controls.cjs.map +2 -2
  114. package/build/navigation/edit/overlay-menu-preview.cjs +0 -1
  115. package/build/navigation/edit/overlay-menu-preview.cjs.map +2 -2
  116. package/build/navigation/edit/overlay-template-part-selector.cjs +0 -1
  117. package/build/navigation/edit/overlay-template-part-selector.cjs.map +2 -2
  118. package/build/navigation/edit/overlay-visibility-control.cjs +0 -1
  119. package/build/navigation/edit/overlay-visibility-control.cjs.map +2 -2
  120. package/build/navigation-link/shared/use-link-preview.cjs +11 -1
  121. package/build/navigation-link/shared/use-link-preview.cjs.map +2 -2
  122. package/build/navigation-overlay-close/edit.cjs +0 -1
  123. package/build/navigation-overlay-close/edit.cjs.map +2 -2
  124. package/build/page-list/edit.cjs +0 -1
  125. package/build/page-list/edit.cjs.map +2 -2
  126. package/build/playlist/block.json +1 -7
  127. package/build/playlist/context.cjs +36 -0
  128. package/build/playlist/context.cjs.map +7 -0
  129. package/build/playlist/edit.cjs +43 -69
  130. package/build/playlist/edit.cjs.map +3 -3
  131. package/build/playlist/utils.cjs +0 -3
  132. package/build/playlist/utils.cjs.map +3 -3
  133. package/build/playlist/view.cjs +4 -4
  134. package/build/playlist/view.cjs.map +2 -2
  135. package/build/playlist-track/block.json +1 -4
  136. package/build/playlist-track/edit.cjs +22 -8
  137. package/build/playlist-track/edit.cjs.map +3 -3
  138. package/build/post-author/edit.cjs +0 -2
  139. package/build/post-author/edit.cjs.map +2 -2
  140. package/build/post-excerpt/edit.cjs +0 -1
  141. package/build/post-excerpt/edit.cjs.map +2 -2
  142. package/build/post-featured-image/overlay-controls.cjs +1 -2
  143. package/build/post-featured-image/overlay-controls.cjs.map +2 -2
  144. package/build/post-navigation-link/edit.cjs +0 -2
  145. package/build/post-navigation-link/edit.cjs.map +2 -2
  146. package/build/query/edit/inspector-controls/author-control.cjs +1 -2
  147. package/build/query/edit/inspector-controls/author-control.cjs.map +2 -2
  148. package/build/query/edit/inspector-controls/format-controls.cjs +1 -2
  149. package/build/query/edit/inspector-controls/format-controls.cjs.map +2 -2
  150. package/build/query/edit/inspector-controls/index.cjs +0 -3
  151. package/build/query/edit/inspector-controls/index.cjs.map +2 -2
  152. package/build/query/edit/inspector-controls/order-control.cjs +0 -1
  153. package/build/query/edit/inspector-controls/order-control.cjs.map +2 -2
  154. package/build/query/edit/inspector-controls/parent-control.cjs +0 -1
  155. package/build/query/edit/inspector-controls/parent-control.cjs.map +2 -2
  156. package/build/query/edit/inspector-controls/per-page-control.cjs +0 -1
  157. package/build/query/edit/inspector-controls/per-page-control.cjs.map +2 -2
  158. package/build/query/edit/inspector-controls/sticky-control.cjs +0 -1
  159. package/build/query/edit/inspector-controls/sticky-control.cjs.map +2 -2
  160. package/build/query/edit/inspector-controls/taxonomy-controls.cjs +1 -2
  161. package/build/query/edit/inspector-controls/taxonomy-controls.cjs.map +2 -2
  162. package/build/query-pagination/query-pagination-arrow-controls.cjs +0 -1
  163. package/build/query-pagination/query-pagination-arrow-controls.cjs.map +2 -2
  164. package/build/query-pagination-numbers/edit.cjs +0 -1
  165. package/build/query-pagination-numbers/edit.cjs.map +2 -2
  166. package/build/quote/transforms.cjs +1 -5
  167. package/build/quote/transforms.cjs.map +2 -2
  168. package/build/rss/edit.cjs +0 -3
  169. package/build/rss/edit.cjs.map +2 -2
  170. package/build/search/edit.cjs +0 -4
  171. package/build/search/edit.cjs.map +2 -2
  172. package/build/separator/edit.cjs +1 -2
  173. package/build/separator/edit.cjs.map +2 -2
  174. package/build/site-logo/edit.cjs +34 -63
  175. package/build/site-logo/edit.cjs.map +3 -3
  176. package/build/social-links/edit.cjs +0 -1
  177. package/build/social-links/edit.cjs.map +2 -2
  178. package/build/spacer/controls.cjs +2 -4
  179. package/build/spacer/controls.cjs.map +2 -2
  180. package/build/spacer/edit.cjs +1 -2
  181. package/build/spacer/edit.cjs.map +2 -2
  182. package/build/tab-list/block.json +3 -2
  183. package/build/tab-list/edit.cjs +38 -51
  184. package/build/tab-list/edit.cjs.map +3 -3
  185. package/build/tab-list/save.cjs +4 -3
  186. package/build/tab-list/save.cjs.map +2 -2
  187. package/build/tab-panel/controls.cjs +2 -4
  188. package/build/tab-panel/controls.cjs.map +3 -3
  189. package/build/tab-panels/edit.cjs +2 -4
  190. package/build/tab-panels/edit.cjs.map +3 -3
  191. package/build/table-of-contents/edit.cjs +0 -1
  192. package/build/table-of-contents/edit.cjs.map +2 -2
  193. package/build/tabs/edit.cjs +2 -2
  194. package/build/tabs/edit.cjs.map +3 -3
  195. package/build/tabs/tab-toolbar-controls.cjs +74 -0
  196. package/build/tabs/tab-toolbar-controls.cjs.map +7 -0
  197. package/build/tabs/use-tab-actions.cjs +87 -0
  198. package/build/tabs/use-tab-actions.cjs.map +7 -0
  199. package/build/tabs/use-tab-list-items-sync.cjs +4 -4
  200. package/build/tabs/use-tab-list-items-sync.cjs.map +2 -2
  201. package/build/tag-cloud/edit.cjs +2 -6
  202. package/build/tag-cloud/edit.cjs.map +2 -2
  203. package/build/template-part/edit/advanced-controls.cjs +0 -1
  204. package/build/template-part/edit/advanced-controls.cjs.map +2 -2
  205. package/build/template-part/edit/import-controls.cjs +1 -2
  206. package/build/template-part/edit/import-controls.cjs.map +2 -2
  207. package/build/terms-query/edit/inspector-controls/include-control.cjs +0 -1
  208. package/build/terms-query/edit/inspector-controls/include-control.cjs.map +2 -2
  209. package/build/terms-query/edit/inspector-controls/inherit-control.cjs +0 -1
  210. package/build/terms-query/edit/inspector-controls/inherit-control.cjs.map +2 -2
  211. package/build/terms-query/edit/inspector-controls/max-terms-control.cjs +0 -1
  212. package/build/terms-query/edit/inspector-controls/max-terms-control.cjs.map +2 -2
  213. package/build/terms-query/edit/inspector-controls/order-control.cjs +0 -1
  214. package/build/terms-query/edit/inspector-controls/order-control.cjs.map +2 -2
  215. package/build/terms-query/edit/inspector-controls/taxonomy-control.cjs +0 -1
  216. package/build/terms-query/edit/inspector-controls/taxonomy-control.cjs.map +2 -2
  217. package/build/text-columns/edit.cjs +0 -1
  218. package/build/text-columns/edit.cjs.map +2 -2
  219. package/build/utils/gif-conversion-attributes.cjs +40 -0
  220. package/build/utils/gif-conversion-attributes.cjs.map +7 -0
  221. package/build/verse/block.json +3 -1
  222. package/build/video/block.json +6 -0
  223. package/build/video/edit-common-settings.cjs +0 -1
  224. package/build/video/edit-common-settings.cjs.map +2 -2
  225. package/build/video/edit.cjs +28 -3
  226. package/build/video/edit.cjs.map +3 -3
  227. package/build/video/gif-restore-control.cjs +73 -0
  228. package/build/video/gif-restore-control.cjs.map +7 -0
  229. package/build/video/index.cjs +2 -0
  230. package/build/video/index.cjs.map +3 -3
  231. package/build/video/save.cjs +7 -1
  232. package/build/video/save.cjs.map +2 -2
  233. package/build/video/tracks-editor.cjs +0 -1
  234. package/build/video/tracks-editor.cjs.map +2 -2
  235. package/build/video/variations.cjs +75 -0
  236. package/build/video/variations.cjs.map +7 -0
  237. package/build-module/accordion/edit.mjs +0 -1
  238. package/build-module/accordion/edit.mjs.map +2 -2
  239. package/build-module/accordion/view.mjs +23 -0
  240. package/build-module/accordion/view.mjs.map +2 -2
  241. package/build-module/accordion-heading/deprecated.mjs +121 -1
  242. package/build-module/accordion-heading/deprecated.mjs.map +2 -2
  243. package/build-module/accordion-heading/edit.mjs +8 -1
  244. package/build-module/accordion-heading/edit.mjs.map +2 -2
  245. package/build-module/accordion-heading/save.mjs +8 -1
  246. package/build-module/accordion-heading/save.mjs.map +2 -2
  247. package/build-module/accordion-panel/edit.mjs +1 -1
  248. package/build-module/accordion-panel/edit.mjs.map +2 -2
  249. package/build-module/archives/edit.mjs +0 -1
  250. package/build-module/archives/edit.mjs.map +2 -2
  251. package/build-module/audio/edit.mjs +0 -1
  252. package/build-module/audio/edit.mjs.map +2 -2
  253. package/build-module/avatar/edit.mjs +0 -1
  254. package/build-module/avatar/edit.mjs.map +2 -2
  255. package/build-module/avatar/user-control.mjs +0 -1
  256. package/build-module/avatar/user-control.mjs.map +2 -2
  257. package/build-module/categories/edit.mjs +0 -1
  258. package/build-module/categories/edit.mjs.map +2 -2
  259. package/build-module/code/transforms.mjs +6 -4
  260. package/build-module/code/transforms.mjs.map +2 -2
  261. package/build-module/column/edit.mjs +0 -1
  262. package/build-module/column/edit.mjs.map +2 -2
  263. package/build-module/columns/edit.mjs +0 -1
  264. package/build-module/columns/edit.mjs.map +2 -2
  265. package/build-module/columns/transforms.mjs +9 -2
  266. package/build-module/columns/transforms.mjs.map +2 -2
  267. package/build-module/comment-author-avatar/edit.mjs +0 -1
  268. package/build-module/comment-author-avatar/edit.mjs.map +2 -2
  269. package/build-module/comments-pagination/comments-pagination-arrow-controls.mjs +0 -1
  270. package/build-module/comments-pagination/comments-pagination-arrow-controls.mjs.map +2 -2
  271. package/build-module/cover/edit/inspector-controls.mjs +1 -3
  272. package/build-module/cover/edit/inspector-controls.mjs.map +2 -2
  273. package/build-module/details/transforms.mjs +7 -2
  274. package/build-module/details/transforms.mjs.map +2 -2
  275. package/build-module/embed/edit.mjs +2 -3
  276. package/build-module/embed/edit.mjs.map +2 -2
  277. package/build-module/embed/embed-placeholder.mjs +20 -23
  278. package/build-module/embed/embed-placeholder.mjs.map +2 -2
  279. package/build-module/file/inspector.mjs +0 -2
  280. package/build-module/file/inspector.mjs.map +2 -2
  281. package/build-module/form/edit.mjs +0 -2
  282. package/build-module/form/edit.mjs.map +2 -2
  283. package/build-module/freeform/convert-to-blocks-button.mjs +31 -0
  284. package/build-module/freeform/convert-to-blocks-button.mjs.map +7 -0
  285. package/build-module/freeform/edit.mjs +15 -34
  286. package/build-module/freeform/edit.mjs.map +2 -2
  287. package/build-module/freeform/index.mjs +1 -7
  288. package/build-module/freeform/index.mjs.map +2 -2
  289. package/build-module/gallery/block.json +4 -1
  290. package/build-module/gallery/dynamic-gallery.mjs +253 -0
  291. package/build-module/gallery/dynamic-gallery.mjs.map +7 -0
  292. package/build-module/gallery/dynamic-source.mjs +55 -0
  293. package/build-module/gallery/dynamic-source.mjs.map +7 -0
  294. package/build-module/gallery/edit.mjs +288 -206
  295. package/build-module/gallery/edit.mjs.map +2 -2
  296. package/build-module/gallery/gallery.mjs +0 -3
  297. package/build-module/gallery/gallery.mjs.map +2 -2
  298. package/build-module/gallery/index.mjs +2 -0
  299. package/build-module/gallery/index.mjs.map +2 -2
  300. package/build-module/gallery/save.mjs +16 -12
  301. package/build-module/gallery/save.mjs.map +2 -2
  302. package/build-module/gallery/use-dynamic-gallery.mjs +167 -0
  303. package/build-module/gallery/use-dynamic-gallery.mjs.map +7 -0
  304. package/build-module/gallery/variations.mjs +33 -0
  305. package/build-module/gallery/variations.mjs.map +7 -0
  306. package/build-module/group/edit.mjs +1 -2
  307. package/build-module/group/edit.mjs.map +2 -2
  308. package/build-module/group/transforms.mjs +7 -8
  309. package/build-module/group/transforms.mjs.map +2 -2
  310. package/build-module/heading/edit.mjs +11 -4
  311. package/build-module/heading/edit.mjs.map +2 -2
  312. package/build-module/html/block.json +2 -2
  313. package/build-module/html/edit.mjs +69 -25
  314. package/build-module/html/edit.mjs.map +2 -2
  315. package/build-module/html/index.mjs +3 -3
  316. package/build-module/html/index.mjs.map +2 -2
  317. package/build-module/html/modal.mjs +4 -8
  318. package/build-module/html/modal.mjs.map +2 -2
  319. package/build-module/html/save.mjs +2 -4
  320. package/build-module/html/save.mjs.map +2 -2
  321. package/build-module/html/transforms.mjs +8 -6
  322. package/build-module/html/transforms.mjs.map +2 -2
  323. package/build-module/image/animated-gif-convert-control.mjs +87 -0
  324. package/build-module/image/animated-gif-convert-control.mjs.map +7 -0
  325. package/build-module/image/edit.mjs +34 -0
  326. package/build-module/image/edit.mjs.map +2 -2
  327. package/build-module/image/image.mjs +28 -67
  328. package/build-module/image/image.mjs.map +2 -2
  329. package/build-module/index.mjs.map +2 -2
  330. package/build-module/latest-comments/edit.mjs +0 -2
  331. package/build-module/latest-comments/edit.mjs.map +2 -2
  332. package/build-module/latest-posts/block.json +8 -9
  333. package/build-module/latest-posts/constants.mjs +0 -2
  334. package/build-module/latest-posts/constants.mjs.map +2 -2
  335. package/build-module/latest-posts/deprecated.mjs +100 -8
  336. package/build-module/latest-posts/deprecated.mjs.map +2 -2
  337. package/build-module/latest-posts/edit.mjs +62 -77
  338. package/build-module/latest-posts/edit.mjs.map +2 -2
  339. package/build-module/list/ordered-list-settings.mjs +0 -1
  340. package/build-module/list/ordered-list-settings.mjs.map +2 -2
  341. package/build-module/media-text/edit.mjs +0 -1
  342. package/build-module/media-text/edit.mjs.map +2 -2
  343. package/build-module/missing/edit.mjs +1 -3
  344. package/build-module/missing/edit.mjs.map +2 -2
  345. package/build-module/navigation/edit/index.mjs +0 -1
  346. package/build-module/navigation/edit/index.mjs.map +2 -2
  347. package/build-module/navigation/edit/overlay-menu-preview-controls.mjs +0 -1
  348. package/build-module/navigation/edit/overlay-menu-preview-controls.mjs.map +2 -2
  349. package/build-module/navigation/edit/overlay-menu-preview.mjs +0 -1
  350. package/build-module/navigation/edit/overlay-menu-preview.mjs.map +2 -2
  351. package/build-module/navigation/edit/overlay-template-part-selector.mjs +0 -1
  352. package/build-module/navigation/edit/overlay-template-part-selector.mjs.map +2 -2
  353. package/build-module/navigation/edit/overlay-visibility-control.mjs +0 -1
  354. package/build-module/navigation/edit/overlay-visibility-control.mjs.map +2 -2
  355. package/build-module/navigation-link/shared/use-link-preview.mjs +11 -1
  356. package/build-module/navigation-link/shared/use-link-preview.mjs.map +2 -2
  357. package/build-module/navigation-overlay-close/edit.mjs +0 -1
  358. package/build-module/navigation-overlay-close/edit.mjs.map +2 -2
  359. package/build-module/page-list/edit.mjs +0 -1
  360. package/build-module/page-list/edit.mjs.map +2 -2
  361. package/build-module/playlist/block.json +1 -7
  362. package/build-module/playlist/context.mjs +11 -0
  363. package/build-module/playlist/context.mjs.map +7 -0
  364. package/build-module/playlist/edit.mjs +44 -70
  365. package/build-module/playlist/edit.mjs.map +2 -2
  366. package/build-module/playlist/utils.mjs +0 -3
  367. package/build-module/playlist/utils.mjs.map +2 -2
  368. package/build-module/playlist/view.mjs +4 -4
  369. package/build-module/playlist/view.mjs.map +2 -2
  370. package/build-module/playlist-track/block.json +1 -4
  371. package/build-module/playlist-track/edit.mjs +23 -9
  372. package/build-module/playlist-track/edit.mjs.map +2 -2
  373. package/build-module/post-author/edit.mjs +0 -2
  374. package/build-module/post-author/edit.mjs.map +2 -2
  375. package/build-module/post-excerpt/edit.mjs +0 -1
  376. package/build-module/post-excerpt/edit.mjs.map +2 -2
  377. package/build-module/post-featured-image/overlay-controls.mjs +1 -2
  378. package/build-module/post-featured-image/overlay-controls.mjs.map +2 -2
  379. package/build-module/post-navigation-link/edit.mjs +0 -2
  380. package/build-module/post-navigation-link/edit.mjs.map +2 -2
  381. package/build-module/query/edit/inspector-controls/author-control.mjs +1 -2
  382. package/build-module/query/edit/inspector-controls/author-control.mjs.map +2 -2
  383. package/build-module/query/edit/inspector-controls/format-controls.mjs +1 -2
  384. package/build-module/query/edit/inspector-controls/format-controls.mjs.map +2 -2
  385. package/build-module/query/edit/inspector-controls/index.mjs +0 -3
  386. package/build-module/query/edit/inspector-controls/index.mjs.map +2 -2
  387. package/build-module/query/edit/inspector-controls/order-control.mjs +0 -1
  388. package/build-module/query/edit/inspector-controls/order-control.mjs.map +2 -2
  389. package/build-module/query/edit/inspector-controls/parent-control.mjs +0 -1
  390. package/build-module/query/edit/inspector-controls/parent-control.mjs.map +2 -2
  391. package/build-module/query/edit/inspector-controls/per-page-control.mjs +0 -1
  392. package/build-module/query/edit/inspector-controls/per-page-control.mjs.map +2 -2
  393. package/build-module/query/edit/inspector-controls/sticky-control.mjs +0 -1
  394. package/build-module/query/edit/inspector-controls/sticky-control.mjs.map +2 -2
  395. package/build-module/query/edit/inspector-controls/taxonomy-controls.mjs +1 -2
  396. package/build-module/query/edit/inspector-controls/taxonomy-controls.mjs.map +2 -2
  397. package/build-module/query-pagination/query-pagination-arrow-controls.mjs +0 -1
  398. package/build-module/query-pagination/query-pagination-arrow-controls.mjs.map +2 -2
  399. package/build-module/query-pagination-numbers/edit.mjs +0 -1
  400. package/build-module/query-pagination-numbers/edit.mjs.map +2 -2
  401. package/build-module/quote/transforms.mjs +6 -6
  402. package/build-module/quote/transforms.mjs.map +2 -2
  403. package/build-module/rss/edit.mjs +0 -3
  404. package/build-module/rss/edit.mjs.map +2 -2
  405. package/build-module/search/edit.mjs +0 -4
  406. package/build-module/search/edit.mjs.map +2 -2
  407. package/build-module/separator/edit.mjs +1 -2
  408. package/build-module/separator/edit.mjs.map +2 -2
  409. package/build-module/site-logo/edit.mjs +34 -64
  410. package/build-module/site-logo/edit.mjs.map +2 -2
  411. package/build-module/social-links/edit.mjs +0 -1
  412. package/build-module/social-links/edit.mjs.map +2 -2
  413. package/build-module/spacer/controls.mjs +2 -4
  414. package/build-module/spacer/controls.mjs.map +2 -2
  415. package/build-module/spacer/edit.mjs +1 -2
  416. package/build-module/spacer/edit.mjs.map +2 -2
  417. package/build-module/tab-list/block.json +3 -2
  418. package/build-module/tab-list/edit.mjs +39 -52
  419. package/build-module/tab-list/edit.mjs.map +2 -2
  420. package/build-module/tab-list/save.mjs +5 -3
  421. package/build-module/tab-list/save.mjs.map +2 -2
  422. package/build-module/tab-panel/controls.mjs +2 -4
  423. package/build-module/tab-panel/controls.mjs.map +2 -2
  424. package/build-module/tab-panels/edit.mjs +2 -4
  425. package/build-module/tab-panels/edit.mjs.map +2 -2
  426. package/build-module/table-of-contents/edit.mjs +0 -1
  427. package/build-module/table-of-contents/edit.mjs.map +2 -2
  428. package/build-module/tabs/edit.mjs +2 -2
  429. package/build-module/tabs/edit.mjs.map +2 -2
  430. package/build-module/tabs/tab-toolbar-controls.mjs +46 -0
  431. package/build-module/tabs/tab-toolbar-controls.mjs.map +7 -0
  432. package/build-module/tabs/use-tab-actions.mjs +66 -0
  433. package/build-module/tabs/use-tab-actions.mjs.map +7 -0
  434. package/build-module/tabs/use-tab-list-items-sync.mjs +6 -6
  435. package/build-module/tabs/use-tab-list-items-sync.mjs.map +2 -2
  436. package/build-module/tag-cloud/edit.mjs +2 -6
  437. package/build-module/tag-cloud/edit.mjs.map +2 -2
  438. package/build-module/template-part/edit/advanced-controls.mjs +0 -1
  439. package/build-module/template-part/edit/advanced-controls.mjs.map +2 -2
  440. package/build-module/template-part/edit/import-controls.mjs +1 -2
  441. package/build-module/template-part/edit/import-controls.mjs.map +2 -2
  442. package/build-module/terms-query/edit/inspector-controls/include-control.mjs +0 -1
  443. package/build-module/terms-query/edit/inspector-controls/include-control.mjs.map +2 -2
  444. package/build-module/terms-query/edit/inspector-controls/inherit-control.mjs +0 -1
  445. package/build-module/terms-query/edit/inspector-controls/inherit-control.mjs.map +2 -2
  446. package/build-module/terms-query/edit/inspector-controls/max-terms-control.mjs +0 -1
  447. package/build-module/terms-query/edit/inspector-controls/max-terms-control.mjs.map +2 -2
  448. package/build-module/terms-query/edit/inspector-controls/order-control.mjs +0 -1
  449. package/build-module/terms-query/edit/inspector-controls/order-control.mjs.map +2 -2
  450. package/build-module/terms-query/edit/inspector-controls/taxonomy-control.mjs +0 -1
  451. package/build-module/terms-query/edit/inspector-controls/taxonomy-control.mjs.map +2 -2
  452. package/build-module/text-columns/edit.mjs +0 -1
  453. package/build-module/text-columns/edit.mjs.map +2 -2
  454. package/build-module/utils/gif-conversion-attributes.mjs +15 -0
  455. package/build-module/utils/gif-conversion-attributes.mjs.map +7 -0
  456. package/build-module/verse/block.json +3 -1
  457. package/build-module/video/block.json +6 -0
  458. package/build-module/video/edit-common-settings.mjs +0 -1
  459. package/build-module/video/edit-common-settings.mjs.map +2 -2
  460. package/build-module/video/edit.mjs +28 -3
  461. package/build-module/video/edit.mjs.map +2 -2
  462. package/build-module/video/gif-restore-control.mjs +55 -0
  463. package/build-module/video/gif-restore-control.mjs.map +7 -0
  464. package/build-module/video/index.mjs +2 -0
  465. package/build-module/video/index.mjs.map +2 -2
  466. package/build-module/video/save.mjs +7 -1
  467. package/build-module/video/save.mjs.map +2 -2
  468. package/build-module/video/tracks-editor.mjs +0 -1
  469. package/build-module/video/tracks-editor.mjs.map +2 -2
  470. package/build-module/video/variations.mjs +50 -0
  471. package/build-module/video/variations.mjs.map +7 -0
  472. package/build-style/accordion-panel/style-rtl.css +1 -2
  473. package/build-style/accordion-panel/style.css +1 -2
  474. package/build-style/audio/style-rtl.css +6 -0
  475. package/build-style/audio/style.css +6 -0
  476. package/build-style/audio/theme-rtl.css +6 -0
  477. package/build-style/audio/theme.css +6 -0
  478. package/build-style/columns/style-rtl.css +6 -0
  479. package/build-style/columns/style.css +6 -0
  480. package/build-style/common-rtl.css +6 -4
  481. package/build-style/common.css +6 -4
  482. package/build-style/editor-rtl.css +38 -3
  483. package/build-style/editor.css +38 -3
  484. package/build-style/embed/style-rtl.css +6 -0
  485. package/build-style/embed/style.css +6 -0
  486. package/build-style/embed/theme-rtl.css +6 -0
  487. package/build-style/embed/theme.css +6 -0
  488. package/build-style/freeform/editor-rtl.css +6 -0
  489. package/build-style/freeform/editor.css +6 -0
  490. package/build-style/gallery/editor-rtl.css +27 -3
  491. package/build-style/gallery/editor.css +27 -3
  492. package/build-style/gallery/style-rtl.css +6 -0
  493. package/build-style/gallery/style.css +6 -0
  494. package/build-style/gallery/theme-rtl.css +6 -0
  495. package/build-style/gallery/theme.css +6 -0
  496. package/build-style/html/editor-rtl.css +13 -0
  497. package/build-style/html/editor.css +13 -0
  498. package/build-style/image/editor-rtl.css +10 -0
  499. package/build-style/image/editor.css +10 -0
  500. package/build-style/image/style-rtl.css +6 -1
  501. package/build-style/image/style.css +6 -1
  502. package/build-style/image/theme-rtl.css +6 -0
  503. package/build-style/image/theme.css +6 -0
  504. package/build-style/latest-posts/style-rtl.css +26 -15
  505. package/build-style/latest-posts/style.css +26 -15
  506. package/build-style/navigation/editor-rtl.css +6 -0
  507. package/build-style/navigation/editor.css +6 -0
  508. package/build-style/navigation/style-rtl.css +6 -0
  509. package/build-style/navigation/style.css +6 -0
  510. package/build-style/navigation-submenu/editor-rtl.css +6 -0
  511. package/build-style/navigation-submenu/editor.css +6 -0
  512. package/build-style/page-list/editor-rtl.css +6 -0
  513. package/build-style/page-list/editor.css +6 -0
  514. package/build-style/playlist/style-rtl.css +121 -19
  515. package/build-style/playlist/style.css +121 -19
  516. package/build-style/post-template/style-rtl.css +6 -0
  517. package/build-style/post-template/style.css +6 -0
  518. package/build-style/query/editor-rtl.css +6 -0
  519. package/build-style/query/editor.css +6 -0
  520. package/build-style/rss/style-rtl.css +6 -0
  521. package/build-style/rss/style.css +6 -0
  522. package/build-style/shortcode/editor-rtl.css +6 -0
  523. package/build-style/shortcode/editor.css +6 -0
  524. package/build-style/style-rtl.css +145 -38
  525. package/build-style/style.css +145 -38
  526. package/build-style/table/editor-rtl.css +6 -0
  527. package/build-style/table/editor.css +6 -0
  528. package/build-style/table/theme-rtl.css +6 -0
  529. package/build-style/table/theme.css +6 -0
  530. package/build-style/template-part/editor-rtl.css +6 -0
  531. package/build-style/template-part/editor.css +6 -0
  532. package/build-style/theme-rtl.css +6 -0
  533. package/build-style/theme.css +6 -0
  534. package/build-style/video/style-rtl.css +6 -0
  535. package/build-style/video/style.css +6 -0
  536. package/build-style/video/theme-rtl.css +6 -0
  537. package/build-style/video/theme.css +6 -0
  538. package/package.json +43 -41
  539. package/src/accordion/README.md +1 -1
  540. package/src/accordion/edit.js +0 -1
  541. package/src/accordion/view.js +24 -0
  542. package/src/accordion-heading/README.md +1 -1
  543. package/src/accordion-heading/deprecated.js +122 -1
  544. package/src/accordion-heading/edit.js +12 -1
  545. package/src/accordion-heading/save.js +12 -1
  546. package/src/accordion-item/README.md +1 -1
  547. package/src/accordion-item/index.php +2 -1
  548. package/src/accordion-panel/edit.js +1 -1
  549. package/src/accordion-panel/style.scss +1 -4
  550. package/src/archives/edit.js +0 -1
  551. package/src/audio/edit.js +0 -1
  552. package/src/avatar/edit.js +0 -1
  553. package/src/avatar/user-control.js +0 -1
  554. package/src/categories/edit.js +0 -1
  555. package/src/code/transforms.js +6 -4
  556. package/src/column/edit.js +0 -1
  557. package/src/columns/edit.js +0 -1
  558. package/src/columns/transforms.js +9 -2
  559. package/src/comment-author-avatar/edit.js +0 -1
  560. package/src/comments-pagination/comments-pagination-arrow-controls.js +0 -1
  561. package/src/common.scss +0 -4
  562. package/src/cover/edit/inspector-controls.js +0 -2
  563. package/src/cover/test/edit.js +4 -42
  564. package/src/details/transforms.js +7 -2
  565. package/src/embed/edit.js +4 -5
  566. package/src/embed/embed-placeholder.js +16 -19
  567. package/src/file/inspector.js +0 -2
  568. package/src/form/edit.js +0 -2
  569. package/src/freeform/convert-to-blocks-button.js +33 -0
  570. package/src/freeform/edit.js +11 -21
  571. package/src/freeform/index.js +1 -9
  572. package/src/gallery/README.md +3 -0
  573. package/src/gallery/block.json +4 -1
  574. package/src/gallery/dynamic-gallery.js +384 -0
  575. package/src/gallery/dynamic-source.js +117 -0
  576. package/src/gallery/edit.js +152 -46
  577. package/src/gallery/editor.scss +32 -4
  578. package/src/gallery/gallery.js +0 -7
  579. package/src/gallery/index.js +2 -0
  580. package/src/gallery/index.php +277 -0
  581. package/src/gallery/save.js +22 -11
  582. package/src/gallery/test/dynamic-source.js +90 -0
  583. package/src/gallery/use-dynamic-gallery.js +275 -0
  584. package/src/gallery/variations.js +37 -0
  585. package/src/group/edit.js +2 -3
  586. package/src/group/transforms.js +7 -8
  587. package/src/heading/edit.js +19 -14
  588. package/src/home-link/index.php +1 -1
  589. package/src/html/README.md +2 -1
  590. package/src/html/block.json +2 -2
  591. package/src/html/edit.js +86 -14
  592. package/src/html/editor.scss +10 -0
  593. package/src/html/index.js +3 -4
  594. package/src/html/modal.js +5 -9
  595. package/src/html/save.js +4 -7
  596. package/src/html/test/index.js +143 -0
  597. package/src/html/transforms.js +11 -6
  598. package/src/icon/index.php +38 -45
  599. package/src/image/animated-gif-convert-control.js +135 -0
  600. package/src/image/edit.js +52 -0
  601. package/src/image/editor.scss +9 -0
  602. package/src/image/image.js +121 -180
  603. package/src/image/style.scss +0 -1
  604. package/src/image/test/animated-gif-convert-control.js +276 -0
  605. package/src/image/test/use-open-image-media-editor-modal.js +19 -4
  606. package/src/index.js +0 -2
  607. package/src/latest-comments/edit.js +0 -2
  608. package/src/latest-posts/README.md +2 -2
  609. package/src/latest-posts/block.json +8 -9
  610. package/src/latest-posts/constants.js +0 -1
  611. package/src/latest-posts/deprecated.js +112 -9
  612. package/src/latest-posts/edit.js +33 -45
  613. package/src/latest-posts/index.php +14 -3
  614. package/src/latest-posts/style.scss +12 -2
  615. package/src/latest-posts/test/deprecated.js +153 -0
  616. package/src/list/ordered-list-settings.js +0 -1
  617. package/src/media-text/edit.js +0 -1
  618. package/src/missing/edit.js +1 -3
  619. package/src/navigation/edit/index.js +0 -1
  620. package/src/navigation/edit/overlay-menu-preview-controls.js +0 -1
  621. package/src/navigation/edit/overlay-menu-preview.js +0 -1
  622. package/src/navigation/edit/overlay-template-part-selector.js +0 -1
  623. package/src/navigation/edit/overlay-visibility-control.js +0 -1
  624. package/src/navigation-link/shared/test/controls.js +0 -4
  625. package/src/navigation-link/shared/test/use-entity-binding.js +8 -12
  626. package/src/navigation-link/shared/test/use-handle-link-change.test.js +0 -4
  627. package/src/navigation-link/shared/test/use-link-preview.test.js +17 -4
  628. package/src/navigation-link/shared/use-link-preview.js +24 -4
  629. package/src/navigation-overlay-close/edit.js +0 -1
  630. package/src/page-list/edit.js +0 -1
  631. package/src/page-list/index.php +1 -1
  632. package/src/playlist/README.md +0 -2
  633. package/src/playlist/block.json +1 -7
  634. package/src/playlist/context.js +9 -0
  635. package/src/playlist/edit.js +51 -82
  636. package/src/playlist/index.php +37 -26
  637. package/src/playlist/style.scss +0 -5
  638. package/src/playlist/test/edit.js +0 -10
  639. package/src/playlist/utils.js +0 -6
  640. package/src/playlist/view.js +4 -4
  641. package/src/playlist-track/README.md +0 -2
  642. package/src/playlist-track/block.json +1 -4
  643. package/src/playlist-track/edit.js +25 -16
  644. package/src/playlist-track/index.php +4 -11
  645. package/src/post-author/edit.js +0 -2
  646. package/src/post-excerpt/edit.js +0 -1
  647. package/src/post-featured-image/overlay-controls.js +0 -1
  648. package/src/post-navigation-link/edit.js +0 -2
  649. package/src/query/edit/inspector-controls/author-control.js +0 -1
  650. package/src/query/edit/inspector-controls/format-controls.js +0 -1
  651. package/src/query/edit/inspector-controls/index.js +0 -3
  652. package/src/query/edit/inspector-controls/order-control.js +0 -1
  653. package/src/query/edit/inspector-controls/parent-control.js +0 -1
  654. package/src/query/edit/inspector-controls/per-page-control.js +0 -1
  655. package/src/query/edit/inspector-controls/sticky-control.js +0 -1
  656. package/src/query/edit/inspector-controls/taxonomy-controls.js +0 -1
  657. package/src/query-pagination/query-pagination-arrow-controls.js +0 -1
  658. package/src/query-pagination-numbers/edit.js +0 -1
  659. package/src/quote/transforms.js +6 -6
  660. package/src/rss/edit.js +0 -3
  661. package/src/search/edit.js +0 -4
  662. package/src/separator/edit.js +0 -1
  663. package/src/site-logo/edit.js +38 -78
  664. package/src/social-links/edit.js +0 -1
  665. package/src/spacer/controls.js +2 -4
  666. package/src/spacer/edit.js +2 -3
  667. package/src/tab-list/block.json +3 -2
  668. package/src/tab-list/edit.js +53 -55
  669. package/src/tab-list/save.js +5 -4
  670. package/src/tab-panel/controls.js +2 -4
  671. package/src/tab-panels/edit.js +2 -4
  672. package/src/table-of-contents/edit.js +0 -1
  673. package/src/tabs/edit.js +2 -2
  674. package/src/tabs/tab-toolbar-controls.js +58 -0
  675. package/src/tabs/use-tab-actions.js +102 -0
  676. package/src/tabs/use-tab-list-items-sync.js +7 -8
  677. package/src/tag-cloud/edit.js +0 -4
  678. package/src/tag-cloud/index.php +1 -1
  679. package/src/template-part/edit/advanced-controls.js +0 -1
  680. package/src/template-part/edit/import-controls.js +0 -1
  681. package/src/terms-query/edit/inspector-controls/include-control.js +0 -1
  682. package/src/terms-query/edit/inspector-controls/inherit-control.js +0 -1
  683. package/src/terms-query/edit/inspector-controls/max-terms-control.js +0 -1
  684. package/src/terms-query/edit/inspector-controls/order-control.js +0 -1
  685. package/src/terms-query/edit/inspector-controls/taxonomy-control.js +0 -1
  686. package/src/text-columns/edit.js +0 -1
  687. package/src/utils/gif-conversion-attributes.js +30 -0
  688. package/src/utils/test/gif-conversion-attributes.js +60 -0
  689. package/src/utils/test/waveform-player.js +0 -4
  690. package/src/utils/test/waveform-utils.js +0 -4
  691. package/src/verse/README.md +1 -0
  692. package/src/verse/block.json +3 -1
  693. package/src/video/README.md +2 -0
  694. package/src/video/block.json +6 -0
  695. package/src/video/edit-common-settings.js +0 -1
  696. package/src/video/edit.js +38 -1
  697. package/src/video/gif-restore-control.js +92 -0
  698. package/src/video/index.js +2 -0
  699. package/src/video/save.js +12 -0
  700. package/src/video/test/variations.js +65 -0
  701. package/src/video/tracks-editor.js +0 -1
  702. package/src/video/variations.js +65 -0
  703. package/build/freeform/migration-notice.cjs +0 -58
  704. package/build/freeform/migration-notice.cjs.map +0 -7
  705. package/build/tab-panel/add-tab-toolbar-control.cjs +0 -90
  706. package/build/tab-panel/add-tab-toolbar-control.cjs.map +0 -7
  707. package/build/tab-panel/remove-tab-toolbar-control.cjs +0 -99
  708. package/build/tab-panel/remove-tab-toolbar-control.cjs.map +0 -7
  709. package/build/tabs/controls.cjs +0 -45
  710. package/build/tabs/controls.cjs.map +0 -7
  711. package/build-module/freeform/migration-notice.mjs +0 -37
  712. package/build-module/freeform/migration-notice.mjs.map +0 -7
  713. package/build-module/tab-panel/add-tab-toolbar-control.mjs +0 -72
  714. package/build-module/tab-panel/add-tab-toolbar-control.mjs.map +0 -7
  715. package/build-module/tab-panel/remove-tab-toolbar-control.mjs +0 -81
  716. package/build-module/tab-panel/remove-tab-toolbar-control.mjs.map +0 -7
  717. package/build-module/tabs/controls.mjs +0 -14
  718. package/build-module/tabs/controls.mjs.map +0 -7
  719. package/src/freeform/migration-notice.js +0 -49
  720. package/src/tab-panel/add-tab-toolbar-control.js +0 -90
  721. package/src/tab-panel/remove-tab-toolbar-control.js +0 -110
  722. package/src/tabs/controls.js +0 -14
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/spacer/controls.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tuseSettings,\n\t__experimentalSpacingSizesControl as SpacingSizesControl,\n\tisValueSpacingPreset,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { View } from '@wordpress/primitives';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport { MIN_SPACER_SIZE } from './constants';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst { useSpacingSizes } = unlock( blockEditorPrivateApis );\n\nfunction DimensionInput( { label, onChange, isResizing, value = '' } ) {\n\tconst inputId = useInstanceId( UnitControl, 'block-spacer-height-input' );\n\tconst spacingSizes = useSpacingSizes();\n\tconst [ spacingUnits ] = useSettings( 'spacing.units' );\n\t// In most contexts the spacer size cannot meaningfully be set to a\n\t// percentage, since this is relative to the parent container. This\n\t// unit is disabled from the UI.\n\tconst availableUnits = spacingUnits\n\t\t? spacingUnits.filter( ( unit ) => unit !== '%' )\n\t\t: [ 'px', 'em', 'rem', 'vw', 'vh' ];\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits,\n\t\tdefaultValues: { px: 100, em: 10, rem: 10, vw: 10, vh: 25 },\n\t} );\n\n\t// Force the unit to update to `px` when the Spacer is being resized.\n\tconst [ parsedQuantity, parsedUnit ] =\n\t\tparseQuantityAndUnitFromRawValue( value );\n\tconst computedValue = isValueSpacingPreset( value )\n\t\t? value\n\t\t: [ parsedQuantity, isResizing ? 'px' : parsedUnit ].join( '' );\n\n\treturn (\n\t\t<>\n\t\t\t{ spacingSizes?.length < 2 ? (\n\t\t\t\t<UnitControl\n\t\t\t\t\tid={ inputId }\n\t\t\t\t\tisResetValueOnUnitChange\n\t\t\t\t\tmin={ MIN_SPACER_SIZE }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tvalue={ computedValue }\n\t\t\t\t\tunits={ units }\n\t\t\t\t\tlabel={ label }\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<View className=\"tools-panel-item-spacing\">\n\t\t\t\t\t<SpacingSizesControl\n\t\t\t\t\t\tvalues={ { all: computedValue } }\n\t\t\t\t\t\tonChange={ ( { all } ) => {\n\t\t\t\t\t\t\tonChange( all );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\tsides={ [ 'all' ] }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\tsplitOnAxis={ false }\n\t\t\t\t\t\tshowSideInLabel={ false }\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default function SpacerControls( {\n\tsetAttributes,\n\torientation,\n\theight,\n\twidth,\n\tisResizing,\n} ) {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\tresetAll={ () => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: undefined,\n\t\t\t\t\t\theight: '100px',\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t>\n\t\t\t\t{ orientation === 'horizontal' && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => width !== undefined }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { width: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<DimensionInput\n\t\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\t\tvalue={ width }\n\t\t\t\t\t\t\tonChange={ ( nextWidth ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { width: nextWidth } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisResizing={ isResizing }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t\t{ orientation !== 'horizontal' && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Height' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => height !== '100px' }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { height: '100px' } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<DimensionInput\n\t\t\t\t\t\t\tlabel={ __( 'Height' ) }\n\t\t\t\t\t\t\tvalue={ height }\n\t\t\t\t\t\t\tonChange={ ( nextHeight ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { height: nextHeight } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisResizing={ isResizing }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tuseSettings,\n\t__experimentalSpacingSizesControl as SpacingSizesControl,\n\tisValueSpacingPreset,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport { MIN_SPACER_SIZE } from './constants';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst { useSpacingSizes } = unlock( blockEditorPrivateApis );\n\nfunction DimensionInput( { label, onChange, isResizing, value = '' } ) {\n\tconst inputId = useInstanceId( UnitControl, 'block-spacer-height-input' );\n\tconst spacingSizes = useSpacingSizes();\n\tconst [ spacingUnits ] = useSettings( 'spacing.units' );\n\t// In most contexts the spacer size cannot meaningfully be set to a\n\t// percentage, since this is relative to the parent container. This\n\t// unit is disabled from the UI.\n\tconst availableUnits = spacingUnits\n\t\t? spacingUnits.filter( ( unit ) => unit !== '%' )\n\t\t: [ 'px', 'em', 'rem', 'vw', 'vh' ];\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits,\n\t\tdefaultValues: { px: 100, em: 10, rem: 10, vw: 10, vh: 25 },\n\t} );\n\n\t// Force the unit to update to `px` when the Spacer is being resized.\n\tconst [ parsedQuantity, parsedUnit ] =\n\t\tparseQuantityAndUnitFromRawValue( value );\n\tconst computedValue = isValueSpacingPreset( value )\n\t\t? value\n\t\t: [ parsedQuantity, isResizing ? 'px' : parsedUnit ].join( '' );\n\n\treturn (\n\t\t<>\n\t\t\t{ spacingSizes?.length < 2 ? (\n\t\t\t\t<UnitControl\n\t\t\t\t\tid={ inputId }\n\t\t\t\t\tisResetValueOnUnitChange\n\t\t\t\t\tmin={ MIN_SPACER_SIZE }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tvalue={ computedValue }\n\t\t\t\t\tunits={ units }\n\t\t\t\t\tlabel={ label }\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<div className=\"tools-panel-item-spacing\">\n\t\t\t\t\t<SpacingSizesControl\n\t\t\t\t\t\tvalues={ { all: computedValue } }\n\t\t\t\t\t\tonChange={ ( { all } ) => {\n\t\t\t\t\t\t\tonChange( all );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\tsides={ [ 'all' ] }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\tsplitOnAxis={ false }\n\t\t\t\t\t\tshowSideInLabel={ false }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default function SpacerControls( {\n\tsetAttributes,\n\torientation,\n\theight,\n\twidth,\n\tisResizing,\n} ) {\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\tresetAll={ () => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: undefined,\n\t\t\t\t\t\theight: '100px',\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t>\n\t\t\t\t{ orientation === 'horizontal' && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => width !== undefined }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { width: undefined } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<DimensionInput\n\t\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\t\tvalue={ width }\n\t\t\t\t\t\t\tonChange={ ( nextWidth ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { width: nextWidth } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisResizing={ isResizing }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t\t{ orientation !== 'horizontal' && (\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Height' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => height !== '100px' }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { height: '100px' } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<DimensionInput\n\t\t\t\t\t\t\tlabel={ __( 'Height' ) }\n\t\t\t\t\t\t\tvalue={ height }\n\t\t\t\t\t\t\tonChange={ ( nextHeight ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { height: nextHeight } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisResizing={ isResizing }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t) }\n\t\t\t</ToolsPanel>\n\t\t</InspectorControls>\n\t);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["blockEditorPrivateApis", "UnitControl", "useCustomUnits", "parseQuantityAndUnitFromRawValue", "SpacingSizesControl", "ToolsPanel", "ToolsPanelItem"]
7
7
  }
@@ -37,7 +37,6 @@ var import_clsx = __toESM(require("clsx"));
37
37
  var import_block_editor = require("@wordpress/block-editor");
38
38
  var import_components = require("@wordpress/components");
39
39
  var import_element = require("@wordpress/element");
40
- var import_primitives = require("@wordpress/primitives");
41
40
  var import_data = require("@wordpress/data");
42
41
  var import_lock_unlock = require("../lock-unlock.cjs");
43
42
  var import_controls = __toESM(require("./controls.cjs"));
@@ -299,7 +298,7 @@ var SpacerEdit = ({
299
298
  const blockEditingMode = (0, import_block_editor.useBlockEditingMode)();
300
299
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
301
300
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
302
- import_primitives.View,
301
+ "div",
303
302
  {
304
303
  ...(0, import_block_editor.useBlockProps)({
305
304
  style,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/spacer/edit.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\tgetCustomValueFromPreset,\n\tgetSpacingPresetCssVar,\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { ResizableBox } from '@wordpress/components';\nimport { useState, useEffect } from '@wordpress/element';\nimport { View } from '@wordpress/primitives';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport SpacerControls from './controls';\nimport { MIN_SPACER_SIZE } from './constants';\n\nconst { useSpacingSizes } = unlock( blockEditorPrivateApis );\n\nconst ResizableSpacer = ( {\n\torientation,\n\tonResizeStart,\n\tonResize,\n\tonResizeStop,\n\tisSelected,\n\tisResizing,\n\tsetIsResizing,\n\t...props\n} ) => {\n\tconst getCurrentSize = ( elt ) => {\n\t\treturn orientation === 'horizontal'\n\t\t\t? elt.clientWidth\n\t\t\t: elt.clientHeight;\n\t};\n\n\tconst getNextVal = ( elt ) => {\n\t\treturn `${ getCurrentSize( elt ) }px`;\n\t};\n\n\treturn (\n\t\t<ResizableBox\n\t\t\tclassName={ clsx( 'block-library-spacer__resize-container', {\n\t\t\t\t'resize-horizontal': orientation === 'horizontal',\n\t\t\t\t'is-resizing': isResizing,\n\t\t\t\t'is-selected': isSelected,\n\t\t\t} ) }\n\t\t\tonResizeStart={ ( _event, _direction, elt ) => {\n\t\t\t\tconst nextVal = getNextVal( elt );\n\t\t\t\tonResizeStart( nextVal );\n\t\t\t\tonResize( nextVal );\n\t\t\t} }\n\t\t\tonResize={ ( _event, _direction, elt ) => {\n\t\t\t\tonResize( getNextVal( elt ) );\n\t\t\t\tif ( ! isResizing ) {\n\t\t\t\t\tsetIsResizing( true );\n\t\t\t\t}\n\t\t\t} }\n\t\t\tonResizeStop={ ( _event, _direction, elt ) => {\n\t\t\t\tconst nextVal = getCurrentSize( elt );\n\t\t\t\tonResizeStop( `${ nextVal }px` );\n\t\t\t\tsetIsResizing( false );\n\t\t\t} }\n\t\t\t__experimentalShowTooltip\n\t\t\t__experimentalTooltipProps={ {\n\t\t\t\taxis: orientation === 'horizontal' ? 'x' : 'y',\n\t\t\t\tposition: 'corner',\n\t\t\t\tisVisible: isResizing,\n\t\t\t} }\n\t\t\tshowHandle={ isSelected }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n};\n\nconst SpacerEdit = ( {\n\tattributes,\n\tisSelected,\n\tsetAttributes,\n\ttoggleSelection,\n\tcontext,\n\t__unstableParentLayout: parentLayout,\n\tclassName,\n} ) => {\n\tconst disableCustomSpacingSizes = useSelect( ( select ) => {\n\t\tconst editorSettings = select( blockEditorStore ).getSettings();\n\t\treturn editorSettings?.disableCustomSpacingSizes;\n\t} );\n\tconst { orientation } = context;\n\tconst {\n\t\torientation: parentOrientation,\n\t\ttype,\n\t\tdefault: { type: defaultType } = {},\n\t} = parentLayout || {};\n\t// Check if the spacer is inside a flex container.\n\tconst isFlexLayout =\n\t\ttype === 'flex' || ( ! type && defaultType === 'flex' );\n\t// If the spacer is inside a flex container, it should either inherit the orientation\n\t// of the parent or use the flex default orientation.\n\tconst inheritedOrientation =\n\t\t! parentOrientation && isFlexLayout\n\t\t\t? 'horizontal'\n\t\t\t: parentOrientation || orientation;\n\tconst { height, width, style: blockStyle = {} } = attributes;\n\n\tconst { layout = {} } = blockStyle;\n\tconst { selfStretch, flexSize } = layout;\n\n\tconst spacingSizes = useSpacingSizes();\n\n\tconst [ isResizing, setIsResizing ] = useState( false );\n\tconst [ temporaryHeight, setTemporaryHeight ] = useState( null );\n\tconst [ temporaryWidth, setTemporaryWidth ] = useState( null );\n\n\tconst onResizeStart = () => toggleSelection( false );\n\tconst onResizeStop = () => toggleSelection( true );\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst handleOnVerticalResizeStop = ( newHeight ) => {\n\t\tonResizeStop();\n\n\t\tif ( isFlexLayout ) {\n\t\t\tsetAttributes( {\n\t\t\t\tstyle: {\n\t\t\t\t\t...blockStyle,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...layout,\n\t\t\t\t\t\tflexSize: newHeight,\n\t\t\t\t\t\tselfStretch: 'fixed',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\n\t\tsetAttributes( { height: newHeight } );\n\t\tsetTemporaryHeight( null );\n\t};\n\n\tconst handleOnHorizontalResizeStop = ( newWidth ) => {\n\t\tonResizeStop();\n\n\t\tif ( isFlexLayout ) {\n\t\t\tsetAttributes( {\n\t\t\t\tstyle: {\n\t\t\t\t\t...blockStyle,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...layout,\n\t\t\t\t\t\tflexSize: newWidth,\n\t\t\t\t\t\tselfStretch: 'fixed',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\n\t\tsetAttributes( { width: newWidth } );\n\t\tsetTemporaryWidth( null );\n\t};\n\n\tconst getHeightForVerticalBlocks = () => {\n\t\tif ( isFlexLayout ) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn temporaryHeight || getSpacingPresetCssVar( height ) || undefined;\n\t};\n\n\tconst getWidthForHorizontalBlocks = () => {\n\t\tif ( isFlexLayout ) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn temporaryWidth || getSpacingPresetCssVar( width ) || undefined;\n\t};\n\n\tconst sizeConditionalOnOrientation =\n\t\tinheritedOrientation === 'horizontal'\n\t\t\t? temporaryWidth || flexSize\n\t\t\t: temporaryHeight || flexSize;\n\n\tconst style = {\n\t\theight:\n\t\t\tinheritedOrientation === 'horizontal'\n\t\t\t\t? 24\n\t\t\t\t: getHeightForVerticalBlocks(),\n\t\twidth:\n\t\t\tinheritedOrientation === 'horizontal'\n\t\t\t\t? getWidthForHorizontalBlocks()\n\t\t\t\t: undefined,\n\t\t// In vertical flex containers, the spacer shrinks to nothing without a minimum width.\n\t\tminWidth:\n\t\t\tinheritedOrientation === 'vertical' && isFlexLayout\n\t\t\t\t? 48\n\t\t\t\t: undefined,\n\t\t// Add flex-basis so temporary sizes are respected.\n\t\tflexBasis: isFlexLayout ? sizeConditionalOnOrientation : undefined,\n\t\t// Remove flex-grow when resizing.\n\t\tflexGrow: isFlexLayout && isResizing ? 0 : undefined,\n\t};\n\n\tconst resizableBoxWithOrientation = ( blockOrientation ) => {\n\t\tif ( blockOrientation === 'horizontal' ) {\n\t\t\treturn (\n\t\t\t\t<ResizableSpacer\n\t\t\t\t\tminWidth={ MIN_SPACER_SIZE }\n\t\t\t\t\tenable={ {\n\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\tright: true,\n\t\t\t\t\t\tbottom: false,\n\t\t\t\t\t\tleft: false,\n\t\t\t\t\t\ttopRight: false,\n\t\t\t\t\t\tbottomRight: false,\n\t\t\t\t\t\tbottomLeft: false,\n\t\t\t\t\t\ttopLeft: false,\n\t\t\t\t\t} }\n\t\t\t\t\torientation={ blockOrientation }\n\t\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\t\tonResize={ setTemporaryWidth }\n\t\t\t\t\tonResizeStop={ handleOnHorizontalResizeStop }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tisResizing={ isResizing }\n\t\t\t\t\tsetIsResizing={ setIsResizing }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<ResizableSpacer\n\t\t\t\t\tminHeight={ MIN_SPACER_SIZE }\n\t\t\t\t\tenable={ {\n\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\tright: false,\n\t\t\t\t\t\tbottom: true,\n\t\t\t\t\t\tleft: false,\n\t\t\t\t\t\ttopRight: false,\n\t\t\t\t\t\tbottomRight: false,\n\t\t\t\t\t\tbottomLeft: false,\n\t\t\t\t\t\ttopLeft: false,\n\t\t\t\t\t} }\n\t\t\t\t\torientation={ blockOrientation }\n\t\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\t\tonResize={ setTemporaryHeight }\n\t\t\t\t\tonResizeStop={ handleOnVerticalResizeStop }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tisResizing={ isResizing }\n\t\t\t\t\tsetIsResizing={ setIsResizing }\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t};\n\n\tuseEffect( () => {\n\t\t// To avoid interfering with undo/redo operations any changes in this\n\t\t// effect must not make history and should be preceded by\n\t\t// `__unstableMarkNextChangeAsNotPersistent()`.\n\t\tconst setAttributesCovertly = ( nextAttributes ) => {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( nextAttributes );\n\t\t};\n\n\t\tif (\n\t\t\tisFlexLayout &&\n\t\t\tselfStretch !== 'fill' &&\n\t\t\tselfStretch !== 'fit' &&\n\t\t\tflexSize === undefined\n\t\t) {\n\t\t\tif ( inheritedOrientation === 'horizontal' ) {\n\t\t\t\t// If spacer is moving from a vertical container to a horizontal container,\n\t\t\t\t// it might not have width but have height instead.\n\t\t\t\tconst newSize =\n\t\t\t\t\tgetCustomValueFromPreset( width, spacingSizes ) ||\n\t\t\t\t\tgetCustomValueFromPreset( height, spacingSizes ) ||\n\t\t\t\t\t'100px';\n\t\t\t\tsetAttributesCovertly( {\n\t\t\t\t\twidth: '0px',\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\t...blockStyle,\n\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\tflexSize: newSize,\n\t\t\t\t\t\t\tselfStretch: 'fixed',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tconst newSize =\n\t\t\t\t\tgetCustomValueFromPreset( height, spacingSizes ) ||\n\t\t\t\t\tgetCustomValueFromPreset( width, spacingSizes ) ||\n\t\t\t\t\t'100px';\n\t\t\t\tsetAttributesCovertly( {\n\t\t\t\t\theight: '0px',\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\t...blockStyle,\n\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\tflexSize: newSize,\n\t\t\t\t\t\t\tselfStretch: 'fixed',\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} else if (\n\t\t\tisFlexLayout &&\n\t\t\t( selfStretch === 'fill' || selfStretch === 'fit' )\n\t\t) {\n\t\t\tsetAttributesCovertly(\n\t\t\t\tinheritedOrientation === 'horizontal'\n\t\t\t\t\t? { width: undefined }\n\t\t\t\t\t: { height: undefined }\n\t\t\t);\n\t\t} else if ( ! isFlexLayout && ( selfStretch || flexSize ) ) {\n\t\t\tsetAttributesCovertly( {\n\t\t\t\t...( inheritedOrientation === 'horizontal'\n\t\t\t\t\t? { width: flexSize }\n\t\t\t\t\t: { height: flexSize } ),\n\t\t\t\tstyle: {\n\t\t\t\t\t...blockStyle,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...layout,\n\t\t\t\t\t\tflexSize: undefined,\n\t\t\t\t\t\tselfStretch: undefined,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\t}, [\n\t\tblockStyle,\n\t\tflexSize,\n\t\theight,\n\t\tinheritedOrientation,\n\t\tisFlexLayout,\n\t\tlayout,\n\t\tselfStretch,\n\t\tsetAttributes,\n\t\tspacingSizes,\n\t\twidth,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t] );\n\n\tconst blockEditingMode = useBlockEditingMode();\n\n\treturn (\n\t\t<>\n\t\t\t<View\n\t\t\t\t{ ...useBlockProps( {\n\t\t\t\t\tstyle,\n\t\t\t\t\tclassName: clsx( className, {\n\t\t\t\t\t\t'custom-sizes-disabled': disableCustomSpacingSizes,\n\t\t\t\t\t} ),\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ blockEditingMode === 'default' &&\n\t\t\t\t\tresizableBoxWithOrientation( inheritedOrientation ) }\n\t\t\t</View>\n\t\t\t{ ! isFlexLayout && (\n\t\t\t\t<SpacerControls\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\theight={ temporaryHeight || height }\n\t\t\t\t\twidth={ temporaryWidth || width }\n\t\t\t\t\torientation={ inheritedOrientation }\n\t\t\t\t\tisResizing={ isResizing }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nexport default SpacerEdit;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\tgetCustomValueFromPreset,\n\tgetSpacingPresetCssVar,\n\tstore as blockEditorStore,\n\tprivateApis as blockEditorPrivateApis,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { ResizableBox } from '@wordpress/components';\nimport { useState, useEffect } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../lock-unlock';\nimport SpacerControls from './controls';\nimport { MIN_SPACER_SIZE } from './constants';\n\nconst { useSpacingSizes } = unlock( blockEditorPrivateApis );\n\nconst ResizableSpacer = ( {\n\torientation,\n\tonResizeStart,\n\tonResize,\n\tonResizeStop,\n\tisSelected,\n\tisResizing,\n\tsetIsResizing,\n\t...props\n} ) => {\n\tconst getCurrentSize = ( elt ) => {\n\t\treturn orientation === 'horizontal'\n\t\t\t? elt.clientWidth\n\t\t\t: elt.clientHeight;\n\t};\n\n\tconst getNextVal = ( elt ) => {\n\t\treturn `${ getCurrentSize( elt ) }px`;\n\t};\n\n\treturn (\n\t\t<ResizableBox\n\t\t\tclassName={ clsx( 'block-library-spacer__resize-container', {\n\t\t\t\t'resize-horizontal': orientation === 'horizontal',\n\t\t\t\t'is-resizing': isResizing,\n\t\t\t\t'is-selected': isSelected,\n\t\t\t} ) }\n\t\t\tonResizeStart={ ( _event, _direction, elt ) => {\n\t\t\t\tconst nextVal = getNextVal( elt );\n\t\t\t\tonResizeStart( nextVal );\n\t\t\t\tonResize( nextVal );\n\t\t\t} }\n\t\t\tonResize={ ( _event, _direction, elt ) => {\n\t\t\t\tonResize( getNextVal( elt ) );\n\t\t\t\tif ( ! isResizing ) {\n\t\t\t\t\tsetIsResizing( true );\n\t\t\t\t}\n\t\t\t} }\n\t\t\tonResizeStop={ ( _event, _direction, elt ) => {\n\t\t\t\tconst nextVal = getCurrentSize( elt );\n\t\t\t\tonResizeStop( `${ nextVal }px` );\n\t\t\t\tsetIsResizing( false );\n\t\t\t} }\n\t\t\t__experimentalShowTooltip\n\t\t\t__experimentalTooltipProps={ {\n\t\t\t\taxis: orientation === 'horizontal' ? 'x' : 'y',\n\t\t\t\tposition: 'corner',\n\t\t\t\tisVisible: isResizing,\n\t\t\t} }\n\t\t\tshowHandle={ isSelected }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n};\n\nconst SpacerEdit = ( {\n\tattributes,\n\tisSelected,\n\tsetAttributes,\n\ttoggleSelection,\n\tcontext,\n\t__unstableParentLayout: parentLayout,\n\tclassName,\n} ) => {\n\tconst disableCustomSpacingSizes = useSelect( ( select ) => {\n\t\tconst editorSettings = select( blockEditorStore ).getSettings();\n\t\treturn editorSettings?.disableCustomSpacingSizes;\n\t} );\n\tconst { orientation } = context;\n\tconst {\n\t\torientation: parentOrientation,\n\t\ttype,\n\t\tdefault: { type: defaultType } = {},\n\t} = parentLayout || {};\n\t// Check if the spacer is inside a flex container.\n\tconst isFlexLayout =\n\t\ttype === 'flex' || ( ! type && defaultType === 'flex' );\n\t// If the spacer is inside a flex container, it should either inherit the orientation\n\t// of the parent or use the flex default orientation.\n\tconst inheritedOrientation =\n\t\t! parentOrientation && isFlexLayout\n\t\t\t? 'horizontal'\n\t\t\t: parentOrientation || orientation;\n\tconst { height, width, style: blockStyle = {} } = attributes;\n\n\tconst { layout = {} } = blockStyle;\n\tconst { selfStretch, flexSize } = layout;\n\n\tconst spacingSizes = useSpacingSizes();\n\n\tconst [ isResizing, setIsResizing ] = useState( false );\n\tconst [ temporaryHeight, setTemporaryHeight ] = useState( null );\n\tconst [ temporaryWidth, setTemporaryWidth ] = useState( null );\n\n\tconst onResizeStart = () => toggleSelection( false );\n\tconst onResizeStop = () => toggleSelection( true );\n\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst handleOnVerticalResizeStop = ( newHeight ) => {\n\t\tonResizeStop();\n\n\t\tif ( isFlexLayout ) {\n\t\t\tsetAttributes( {\n\t\t\t\tstyle: {\n\t\t\t\t\t...blockStyle,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...layout,\n\t\t\t\t\t\tflexSize: newHeight,\n\t\t\t\t\t\tselfStretch: 'fixed',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\n\t\tsetAttributes( { height: newHeight } );\n\t\tsetTemporaryHeight( null );\n\t};\n\n\tconst handleOnHorizontalResizeStop = ( newWidth ) => {\n\t\tonResizeStop();\n\n\t\tif ( isFlexLayout ) {\n\t\t\tsetAttributes( {\n\t\t\t\tstyle: {\n\t\t\t\t\t...blockStyle,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...layout,\n\t\t\t\t\t\tflexSize: newWidth,\n\t\t\t\t\t\tselfStretch: 'fixed',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\n\t\tsetAttributes( { width: newWidth } );\n\t\tsetTemporaryWidth( null );\n\t};\n\n\tconst getHeightForVerticalBlocks = () => {\n\t\tif ( isFlexLayout ) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn temporaryHeight || getSpacingPresetCssVar( height ) || undefined;\n\t};\n\n\tconst getWidthForHorizontalBlocks = () => {\n\t\tif ( isFlexLayout ) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn temporaryWidth || getSpacingPresetCssVar( width ) || undefined;\n\t};\n\n\tconst sizeConditionalOnOrientation =\n\t\tinheritedOrientation === 'horizontal'\n\t\t\t? temporaryWidth || flexSize\n\t\t\t: temporaryHeight || flexSize;\n\n\tconst style = {\n\t\theight:\n\t\t\tinheritedOrientation === 'horizontal'\n\t\t\t\t? 24\n\t\t\t\t: getHeightForVerticalBlocks(),\n\t\twidth:\n\t\t\tinheritedOrientation === 'horizontal'\n\t\t\t\t? getWidthForHorizontalBlocks()\n\t\t\t\t: undefined,\n\t\t// In vertical flex containers, the spacer shrinks to nothing without a minimum width.\n\t\tminWidth:\n\t\t\tinheritedOrientation === 'vertical' && isFlexLayout\n\t\t\t\t? 48\n\t\t\t\t: undefined,\n\t\t// Add flex-basis so temporary sizes are respected.\n\t\tflexBasis: isFlexLayout ? sizeConditionalOnOrientation : undefined,\n\t\t// Remove flex-grow when resizing.\n\t\tflexGrow: isFlexLayout && isResizing ? 0 : undefined,\n\t};\n\n\tconst resizableBoxWithOrientation = ( blockOrientation ) => {\n\t\tif ( blockOrientation === 'horizontal' ) {\n\t\t\treturn (\n\t\t\t\t<ResizableSpacer\n\t\t\t\t\tminWidth={ MIN_SPACER_SIZE }\n\t\t\t\t\tenable={ {\n\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\tright: true,\n\t\t\t\t\t\tbottom: false,\n\t\t\t\t\t\tleft: false,\n\t\t\t\t\t\ttopRight: false,\n\t\t\t\t\t\tbottomRight: false,\n\t\t\t\t\t\tbottomLeft: false,\n\t\t\t\t\t\ttopLeft: false,\n\t\t\t\t\t} }\n\t\t\t\t\torientation={ blockOrientation }\n\t\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\t\tonResize={ setTemporaryWidth }\n\t\t\t\t\tonResizeStop={ handleOnHorizontalResizeStop }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tisResizing={ isResizing }\n\t\t\t\t\tsetIsResizing={ setIsResizing }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<ResizableSpacer\n\t\t\t\t\tminHeight={ MIN_SPACER_SIZE }\n\t\t\t\t\tenable={ {\n\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\tright: false,\n\t\t\t\t\t\tbottom: true,\n\t\t\t\t\t\tleft: false,\n\t\t\t\t\t\ttopRight: false,\n\t\t\t\t\t\tbottomRight: false,\n\t\t\t\t\t\tbottomLeft: false,\n\t\t\t\t\t\ttopLeft: false,\n\t\t\t\t\t} }\n\t\t\t\t\torientation={ blockOrientation }\n\t\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\t\tonResize={ setTemporaryHeight }\n\t\t\t\t\tonResizeStop={ handleOnVerticalResizeStop }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tisResizing={ isResizing }\n\t\t\t\t\tsetIsResizing={ setIsResizing }\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t};\n\n\tuseEffect( () => {\n\t\t// To avoid interfering with undo/redo operations any changes in this\n\t\t// effect must not make history and should be preceded by\n\t\t// `__unstableMarkNextChangeAsNotPersistent()`.\n\t\tconst setAttributesCovertly = ( nextAttributes ) => {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( nextAttributes );\n\t\t};\n\n\t\tif (\n\t\t\tisFlexLayout &&\n\t\t\tselfStretch !== 'fill' &&\n\t\t\tselfStretch !== 'fit' &&\n\t\t\tflexSize === undefined\n\t\t) {\n\t\t\tif ( inheritedOrientation === 'horizontal' ) {\n\t\t\t\t// If spacer is moving from a vertical container to a horizontal container,\n\t\t\t\t// it might not have width but have height instead.\n\t\t\t\tconst newSize =\n\t\t\t\t\tgetCustomValueFromPreset( width, spacingSizes ) ||\n\t\t\t\t\tgetCustomValueFromPreset( height, spacingSizes ) ||\n\t\t\t\t\t'100px';\n\t\t\t\tsetAttributesCovertly( {\n\t\t\t\t\twidth: '0px',\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\t...blockStyle,\n\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\tflexSize: newSize,\n\t\t\t\t\t\t\tselfStretch: 'fixed',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tconst newSize =\n\t\t\t\t\tgetCustomValueFromPreset( height, spacingSizes ) ||\n\t\t\t\t\tgetCustomValueFromPreset( width, spacingSizes ) ||\n\t\t\t\t\t'100px';\n\t\t\t\tsetAttributesCovertly( {\n\t\t\t\t\theight: '0px',\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\t...blockStyle,\n\t\t\t\t\t\tlayout: {\n\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\tflexSize: newSize,\n\t\t\t\t\t\t\tselfStretch: 'fixed',\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} else if (\n\t\t\tisFlexLayout &&\n\t\t\t( selfStretch === 'fill' || selfStretch === 'fit' )\n\t\t) {\n\t\t\tsetAttributesCovertly(\n\t\t\t\tinheritedOrientation === 'horizontal'\n\t\t\t\t\t? { width: undefined }\n\t\t\t\t\t: { height: undefined }\n\t\t\t);\n\t\t} else if ( ! isFlexLayout && ( selfStretch || flexSize ) ) {\n\t\t\tsetAttributesCovertly( {\n\t\t\t\t...( inheritedOrientation === 'horizontal'\n\t\t\t\t\t? { width: flexSize }\n\t\t\t\t\t: { height: flexSize } ),\n\t\t\t\tstyle: {\n\t\t\t\t\t...blockStyle,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...layout,\n\t\t\t\t\t\tflexSize: undefined,\n\t\t\t\t\t\tselfStretch: undefined,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} );\n\t\t}\n\t}, [\n\t\tblockStyle,\n\t\tflexSize,\n\t\theight,\n\t\tinheritedOrientation,\n\t\tisFlexLayout,\n\t\tlayout,\n\t\tselfStretch,\n\t\tsetAttributes,\n\t\tspacingSizes,\n\t\twidth,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t] );\n\n\tconst blockEditingMode = useBlockEditingMode();\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\t{ ...useBlockProps( {\n\t\t\t\t\tstyle,\n\t\t\t\t\tclassName: clsx( className, {\n\t\t\t\t\t\t'custom-sizes-disabled': disableCustomSpacingSizes,\n\t\t\t\t\t} ),\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ blockEditingMode === 'default' &&\n\t\t\t\t\tresizableBoxWithOrientation( inheritedOrientation ) }\n\t\t\t</div>\n\t\t\t{ ! isFlexLayout && (\n\t\t\t\t<SpacerControls\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\theight={ temporaryHeight || height }\n\t\t\t\t\twidth={ temporaryWidth || width }\n\t\t\t\t\torientation={ inheritedOrientation }\n\t\t\t\t\tisResizing={ isResizing }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nexport default SpacerEdit;\n"],
5
+ "mappings": "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",
6
6
  "names": ["blockEditorPrivateApis", "clsx", "blockEditorStore", "SpacerControls"]
7
7
  }
@@ -16,8 +16,9 @@
16
16
  "selector": "button",
17
17
  "query": {
18
18
  "label": {
19
- "type": "string",
20
- "source": "html"
19
+ "type": "rich-text",
20
+ "source": "rich-text",
21
+ "role": "content"
21
22
  }
22
23
  },
23
24
  "default": []
@@ -38,8 +38,8 @@ var import_i18n = require("@wordpress/i18n");
38
38
  var import_block_editor = require("@wordpress/block-editor");
39
39
  var import_data = require("@wordpress/data");
40
40
  var import_element = require("@wordpress/element");
41
- var import_add_tab_toolbar_control = __toESM(require("../tab-panel/add-tab-toolbar-control.cjs"));
42
- var import_remove_tab_toolbar_control = __toESM(require("../tab-panel/remove-tab-toolbar-control.cjs"));
41
+ var import_tab_toolbar_controls = __toESM(require("../tabs/tab-toolbar-controls.cjs"));
42
+ var import_use_tab_actions = __toESM(require("../tabs/use-tab-actions.cjs"));
43
43
  var import_jsx_runtime = require("react/jsx-runtime");
44
44
  var EMPTY_ARRAY = [];
45
45
  function Edit({
@@ -65,33 +65,24 @@ function Edit({
65
65
  },
66
66
  [clientId]
67
67
  );
68
+ const { isBlockSelected, hasSelectedInnerBlock } = (0, import_data.useSelect)(import_block_editor.store);
69
+ const { updateBlockAttributes, __unstableMarkNextChangeAsNotPersistent } = (0, import_data.useDispatch)(import_block_editor.store);
70
+ const { insertTab, removeTab } = (0, import_use_tab_actions.default)(tabsClientId);
68
71
  const effectiveActiveIndex = editorActiveTabIndex ?? activeTabIndex;
69
- const { __unstableMarkNextChangeAsNotPersistent, updateBlockAttributes } = (0, import_data.useDispatch)(import_block_editor.store);
70
- const handleTabClick = (0, import_element.useCallback)(
71
- (tabIndex) => {
72
- if (tabsClientId && tabIndex !== effectiveActiveIndex) {
73
- __unstableMarkNextChangeAsNotPersistent();
74
- updateBlockAttributes(tabsClientId, {
75
- editorActiveTabIndex: tabIndex
76
- });
77
- }
78
- },
79
- [
80
- tabsClientId,
81
- effectiveActiveIndex,
82
- updateBlockAttributes,
83
- __unstableMarkNextChangeAsNotPersistent
84
- ]
85
- );
86
- const handleLabelChange = (0, import_element.useCallback)(
87
- (tabIndex, newLabel) => {
88
- const tab = tabsList[tabIndex];
89
- if (tab?.clientId) {
90
- updateBlockAttributes(tab.clientId, { label: newLabel });
91
- }
92
- },
93
- [tabsList, updateBlockAttributes]
94
- );
72
+ function selectTabPanel(tabIndex) {
73
+ if (tabsClientId && tabIndex !== effectiveActiveIndex) {
74
+ __unstableMarkNextChangeAsNotPersistent();
75
+ updateBlockAttributes(tabsClientId, {
76
+ editorActiveTabIndex: tabIndex
77
+ });
78
+ }
79
+ }
80
+ function handleLabelChange(tabIndex, newLabel) {
81
+ const tab = tabsList[tabIndex];
82
+ if (tab?.clientId) {
83
+ updateBlockAttributes(tab.clientId, { label: newLabel });
84
+ }
85
+ }
95
86
  const menuRef = (0, import_element.useRef)();
96
87
  const prevTabCountRef = (0, import_element.useRef)(tabsList.length);
97
88
  (0, import_element.useEffect)(() => {
@@ -100,27 +91,23 @@ function Edit({
100
91
  if (!menuRef.current || tabsList.length === prevCount) {
101
92
  return;
102
93
  }
94
+ if (!isBlockSelected(tabsClientId) && !hasSelectedInnerBlock(tabsClientId, true)) {
95
+ return;
96
+ }
103
97
  const focusButtonAt = (index) => {
104
98
  window.requestAnimationFrame(() => {
105
- const buttons = menuRef.current?.querySelectorAll("button");
106
- const target = buttons?.[index];
107
- if (!target) {
108
- return;
109
- }
110
- const richText = target.querySelector("[contenteditable]");
111
- if (richText) {
112
- richText.focus();
113
- } else {
114
- target.focus();
115
- }
99
+ const button = menuRef.current?.querySelectorAll("button")?.[index];
100
+ (button?.querySelector("[contenteditable]") ?? button)?.focus();
116
101
  });
117
102
  };
118
- if (tabsList.length > prevCount) {
119
- focusButtonAt(tabsList.length - 1);
120
- } else {
121
- focusButtonAt(effectiveActiveIndex);
122
- }
123
- }, [tabsList.length, effectiveActiveIndex]);
103
+ focusButtonAt(effectiveActiveIndex);
104
+ }, [
105
+ effectiveActiveIndex,
106
+ hasSelectedInnerBlock,
107
+ isBlockSelected,
108
+ tabsClientId,
109
+ tabsList.length
110
+ ]);
124
111
  const blockProps = (0, import_block_editor.useBlockProps)({
125
112
  role: "tablist",
126
113
  ref: menuRef,
@@ -135,8 +122,7 @@ function Edit({
135
122
  ...spacingProps.style
136
123
  };
137
124
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
138
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_add_tab_toolbar_control.default, { tabsClientId }),
139
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_remove_tab_toolbar_control.default, { tabsClientId }),
125
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tab_toolbar_controls.default, { tabsClientId }),
140
126
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { ...blockProps, children: tabsList.map((tab, index) => {
141
127
  const isActive = index === effectiveActiveIndex;
142
128
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
@@ -148,9 +134,8 @@ function Edit({
148
134
  className: buttonClassName || void 0,
149
135
  style: buttonStyle,
150
136
  tabIndex: -1,
151
- onClick: (event) => {
152
- event.preventDefault();
153
- handleTabClick(index);
137
+ onFocus: () => {
138
+ selectTabPanel(index);
154
139
  },
155
140
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
156
141
  import_block_editor.RichText,
@@ -159,7 +144,9 @@ function Edit({
159
144
  withoutInteractiveFormatting: true,
160
145
  placeholder: (0, import_i18n.__)("Tab title"),
161
146
  value: tab.label,
162
- onChange: (newLabel) => handleLabelChange(index, newLabel)
147
+ onChange: (newLabel) => handleLabelChange(index, newLabel),
148
+ __unstableOnSplitAtEnd: () => insertTab(index + 1),
149
+ onRemove: () => removeTab(index)
163
150
  }
164
151
  )
165
152
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/tab-list/edit.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tRichText,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n\t__experimentalGetSpacingClassesAndStyles as getSpacingClassesAndStyles,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useCallback, useEffect, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport AddTabToolbarControl from '../tab-panel/add-tab-toolbar-control';\nimport RemoveTabToolbarControl from '../tab-panel/remove-tab-toolbar-control';\n\nconst EMPTY_ARRAY = [];\n\nfunction Edit( {\n\tattributes,\n\tclientId,\n\tcontext,\n\t__unstableLayoutClassNames: layoutClassNames,\n} ) {\n\tconst tabsList = context[ 'core/tabs-list' ] || EMPTY_ARRAY;\n\n\tconst colorProps = useColorProps( attributes );\n\tconst borderProps = useBorderProps( attributes );\n\tconst spacingProps = getSpacingClassesAndStyles( attributes );\n\n\tconst { tabsClientId, editorActiveTabIndex, activeTabIndex } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, getBlockAttributes } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst _tabsClientId = getBlockRootClientId( clientId );\n\t\t\tconst tabsAttributes = _tabsClientId\n\t\t\t\t? getBlockAttributes( _tabsClientId )\n\t\t\t\t: {};\n\n\t\t\treturn {\n\t\t\t\ttabsClientId: _tabsClientId,\n\t\t\t\teditorActiveTabIndex: tabsAttributes?.editorActiveTabIndex,\n\t\t\t\tactiveTabIndex: tabsAttributes?.activeTabIndex ?? 0,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst effectiveActiveIndex = editorActiveTabIndex ?? activeTabIndex;\n\n\tconst { __unstableMarkNextChangeAsNotPersistent, updateBlockAttributes } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst handleTabClick = useCallback(\n\t\t( tabIndex ) => {\n\t\t\tif ( tabsClientId && tabIndex !== effectiveActiveIndex ) {\n\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\tupdateBlockAttributes( tabsClientId, {\n\t\t\t\t\teditorActiveTabIndex: tabIndex,\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\ttabsClientId,\n\t\t\teffectiveActiveIndex,\n\t\t\tupdateBlockAttributes,\n\t\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\t]\n\t);\n\n\tconst handleLabelChange = useCallback(\n\t\t( tabIndex, newLabel ) => {\n\t\t\tconst tab = tabsList[ tabIndex ];\n\t\t\tif ( tab?.clientId ) {\n\t\t\t\tupdateBlockAttributes( tab.clientId, { label: newLabel } );\n\t\t\t}\n\t\t},\n\t\t[ tabsList, updateBlockAttributes ]\n\t);\n\n\tconst menuRef = useRef();\n\tconst prevTabCountRef = useRef( tabsList.length );\n\n\t// When tabs are added or removed, focus the appropriate button.\n\tuseEffect( () => {\n\t\tconst prevCount = prevTabCountRef.current;\n\t\tprevTabCountRef.current = tabsList.length;\n\n\t\tif ( ! menuRef.current || tabsList.length === prevCount ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst focusButtonAt = ( index ) => {\n\t\t\twindow.requestAnimationFrame( () => {\n\t\t\t\tconst buttons = menuRef.current?.querySelectorAll( 'button' );\n\t\t\t\tconst target = buttons?.[ index ];\n\t\t\t\tif ( ! target ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst richText = target.querySelector( '[contenteditable]' );\n\t\t\t\tif ( richText ) {\n\t\t\t\t\trichText.focus();\n\t\t\t\t} else {\n\t\t\t\t\ttarget.focus();\n\t\t\t\t}\n\t\t\t} );\n\t\t};\n\n\t\tif ( tabsList.length > prevCount ) {\n\t\t\t// Tab added — focus the last (newly added) button.\n\t\t\tfocusButtonAt( tabsList.length - 1 );\n\t\t} else {\n\t\t\t// Tab removed — focus the new active button.\n\t\t\tfocusButtonAt( effectiveActiveIndex );\n\t\t}\n\t}, [ tabsList.length, effectiveActiveIndex ] );\n\n\tconst blockProps = useBlockProps( {\n\t\trole: 'tablist',\n\t\tref: menuRef,\n\t\t// Applied manually since this block has no inner blocks for the layout\n\t\t// support to add its container classes to.\n\t\tclassName: layoutClassNames,\n\t} );\n\n\tconst buttonClassName = clsx( colorProps.className, borderProps.className );\n\n\tconst buttonStyle = {\n\t\t...colorProps.style,\n\t\t...borderProps.style,\n\t\t...spacingProps.style,\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<AddTabToolbarControl tabsClientId={ tabsClientId } />\n\t\t\t<RemoveTabToolbarControl tabsClientId={ tabsClientId } />\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ tabsList.map( ( tab, index ) => {\n\t\t\t\t\tconst isActive = index === effectiveActiveIndex;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tkey={ tab.clientId || index }\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\trole=\"tab\"\n\t\t\t\t\t\t\taria-selected={ isActive }\n\t\t\t\t\t\t\tclassName={ buttonClassName || undefined }\n\t\t\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\thandleTabClick( index );\n\t\t\t\t\t\t\t} }\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=\"span\"\n\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t\tplaceholder={ __( 'Tab title' ) }\n\t\t\t\t\t\t\t\tvalue={ tab.label }\n\t\t\t\t\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\t\t\t\t\thandleLabelChange( index, newLabel )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default Edit;\n"],
5
- "mappings": "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",
6
- "names": ["useColorProps", "useBorderProps", "getSpacingClassesAndStyles", "blockEditorStore", "clsx", "AddTabToolbarControl", "RemoveTabToolbarControl"]
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tRichText,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n\t__experimentalGetSpacingClassesAndStyles as getSpacingClassesAndStyles,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport TabToolbarControls from '../tabs/tab-toolbar-controls';\nimport useTabActions from '../tabs/use-tab-actions';\n\nconst EMPTY_ARRAY = [];\n\nfunction Edit( {\n\tattributes,\n\tclientId,\n\tcontext,\n\t__unstableLayoutClassNames: layoutClassNames,\n} ) {\n\tconst tabsList = context[ 'core/tabs-list' ] || EMPTY_ARRAY;\n\n\tconst colorProps = useColorProps( attributes );\n\tconst borderProps = useBorderProps( attributes );\n\tconst spacingProps = getSpacingClassesAndStyles( attributes );\n\n\tconst { tabsClientId, editorActiveTabIndex, activeTabIndex } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, getBlockAttributes } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\tconst _tabsClientId = getBlockRootClientId( clientId );\n\t\t\tconst tabsAttributes = _tabsClientId\n\t\t\t\t? getBlockAttributes( _tabsClientId )\n\t\t\t\t: {};\n\n\t\t\treturn {\n\t\t\t\ttabsClientId: _tabsClientId,\n\t\t\t\teditorActiveTabIndex: tabsAttributes?.editorActiveTabIndex,\n\t\t\t\tactiveTabIndex: tabsAttributes?.activeTabIndex ?? 0,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { isBlockSelected, hasSelectedInnerBlock } =\n\t\tuseSelect( blockEditorStore );\n\tconst { updateBlockAttributes, __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\tconst { insertTab, removeTab } = useTabActions( tabsClientId );\n\n\tconst effectiveActiveIndex = editorActiveTabIndex ?? activeTabIndex;\n\n\tfunction selectTabPanel( tabIndex ) {\n\t\tif ( tabsClientId && tabIndex !== effectiveActiveIndex ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes( tabsClientId, {\n\t\t\t\teditorActiveTabIndex: tabIndex,\n\t\t\t} );\n\t\t}\n\t}\n\n\tfunction handleLabelChange( tabIndex, newLabel ) {\n\t\tconst tab = tabsList[ tabIndex ];\n\t\tif ( tab?.clientId ) {\n\t\t\tupdateBlockAttributes( tab.clientId, { label: newLabel } );\n\t\t}\n\t}\n\n\tconst menuRef = useRef();\n\tconst prevTabCountRef = useRef( tabsList.length );\n\n\t// When tabs are added or removed, focus the appropriate button.\n\tuseEffect( () => {\n\t\tconst prevCount = prevTabCountRef.current;\n\t\tprevTabCountRef.current = tabsList.length;\n\n\t\tif ( ! menuRef.current || tabsList.length === prevCount ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Only move focus during active editing, not external data changes.\n\t\tif (\n\t\t\t! isBlockSelected( tabsClientId ) &&\n\t\t\t! hasSelectedInnerBlock( tabsClientId, true )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst focusButtonAt = ( index ) => {\n\t\t\twindow.requestAnimationFrame( () => {\n\t\t\t\tconst button =\n\t\t\t\t\tmenuRef.current?.querySelectorAll( 'button' )?.[ index ];\n\t\t\t\t(\n\t\t\t\t\tbutton?.querySelector( '[contenteditable]' ) ?? button\n\t\t\t\t)?.focus();\n\t\t\t} );\n\t\t};\n\n\t\tfocusButtonAt( effectiveActiveIndex );\n\t}, [\n\t\teffectiveActiveIndex,\n\t\thasSelectedInnerBlock,\n\t\tisBlockSelected,\n\t\ttabsClientId,\n\t\ttabsList.length,\n\t] );\n\n\tconst blockProps = useBlockProps( {\n\t\trole: 'tablist',\n\t\tref: menuRef,\n\t\t// Applied manually since this block has no inner blocks for the layout\n\t\t// support to add its container classes to.\n\t\tclassName: layoutClassNames,\n\t} );\n\n\tconst buttonClassName = clsx( colorProps.className, borderProps.className );\n\n\tconst buttonStyle = {\n\t\t...colorProps.style,\n\t\t...borderProps.style,\n\t\t...spacingProps.style,\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<TabToolbarControls tabsClientId={ tabsClientId } />\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ tabsList.map( ( tab, index ) => {\n\t\t\t\t\tconst isActive = index === effectiveActiveIndex;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tkey={ tab.clientId || index }\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\trole=\"tab\"\n\t\t\t\t\t\t\taria-selected={ isActive }\n\t\t\t\t\t\t\tclassName={ buttonClassName || undefined }\n\t\t\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\t\t\ttabIndex={ -1 }\n\t\t\t\t\t\t\t// Activate the matching panel whenever this tab\n\t\t\t\t\t\t\t// receives focus — whether from a click or the caret\n\t\t\t\t\t\t\t// moving into the label via the keyboard.\n\t\t\t\t\t\t\tonFocus={ () => {\n\t\t\t\t\t\t\t\tselectTabPanel( index );\n\t\t\t\t\t\t\t} }\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=\"span\"\n\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t\tplaceholder={ __( 'Tab title' ) }\n\t\t\t\t\t\t\t\tvalue={ tab.label }\n\t\t\t\t\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\t\t\t\t\thandleLabelChange( index, newLabel )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\t\t\t\tinsertTab( index + 1 )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonRemove={ () => removeTab( index ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default Edit;\n"],
5
+ "mappings": "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",
6
+ "names": ["useColorProps", "useBorderProps", "getSpacingClassesAndStyles", "blockEditorStore", "useTabActions", "clsx", "TabToolbarControls"]
7
7
  }
@@ -51,13 +51,14 @@ function save({ attributes }) {
51
51
  ...spacingProps.style
52
52
  };
53
53
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { ...blockProps, children: tabs.map((tab, index) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
54
- "button",
54
+ import_block_editor.RichText.Content,
55
55
  {
56
56
  className: buttonClassName || void 0,
57
57
  style: buttonStyle,
58
+ tagName: "button",
59
+ value: tab.label,
58
60
  type: "button",
59
- role: "tab",
60
- children: tab.label
61
+ role: "tab"
61
62
  },
62
63
  index
63
64
  )) });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/tab-list/save.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n\t__experimentalGetSpacingClassesAndStyles as getSpacingClassesAndStyles,\n} from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst { tabs } = attributes;\n\tconst blockProps = useBlockProps.save( {\n\t\trole: 'tablist',\n\t} );\n\n\tconst colorProps = getColorClassesAndStyles( attributes );\n\tconst borderProps = getBorderClassesAndStyles( attributes );\n\tconst spacingProps = getSpacingClassesAndStyles( attributes );\n\n\tconst buttonClassName = clsx( colorProps.className, borderProps.className );\n\n\tconst buttonStyle = {\n\t\t...colorProps.style,\n\t\t...borderProps.style,\n\t\t...spacingProps.style,\n\t};\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ tabs.map( ( tab, index ) => (\n\t\t\t\t<button\n\t\t\t\t\tkey={ index }\n\t\t\t\t\tclassName={ buttonClassName || undefined }\n\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\trole=\"tab\"\n\t\t\t\t>\n\t\t\t\t\t{ tab.label }\n\t\t\t\t</button>\n\t\t\t) ) }\n\t\t</div>\n\t);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAiB;AAKjB,0BAKO;AAuBH;AArBW,SAAR,KAAuB,EAAE,WAAW,GAAI;AAC9C,QAAM,EAAE,KAAK,IAAI;AACjB,QAAM,aAAa,kCAAc,KAAM;AAAA,IACtC,MAAM;AAAA,EACP,CAAE;AAEF,QAAM,iBAAa,oBAAAA,wCAA0B,UAAW;AACxD,QAAM,kBAAc,oBAAAC,yCAA2B,UAAW;AAC1D,QAAM,mBAAe,oBAAAC,0CAA4B,UAAW;AAE5D,QAAM,sBAAkB,YAAAC,SAAM,WAAW,WAAW,YAAY,SAAU;AAE1E,QAAM,cAAc;AAAA,IACnB,GAAG,WAAW;AAAA,IACd,GAAG,YAAY;AAAA,IACf,GAAG,aAAa;AAAA,EACjB;AAEA,SACC,4CAAC,SAAM,GAAG,YACP,eAAK,IAAK,CAAE,KAAK,UAClB;AAAA,IAAC;AAAA;AAAA,MAEA,WAAY,mBAAmB;AAAA,MAC/B,OAAQ;AAAA,MACR,MAAK;AAAA,MACL,MAAK;AAAA,MAEH,cAAI;AAAA;AAAA,IANA;AAAA,EAOP,CACC,GACH;AAEF;",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n\t__experimentalGetSpacingClassesAndStyles as getSpacingClassesAndStyles,\n} from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst { tabs } = attributes;\n\tconst blockProps = useBlockProps.save( {\n\t\trole: 'tablist',\n\t} );\n\n\tconst colorProps = getColorClassesAndStyles( attributes );\n\tconst borderProps = getBorderClassesAndStyles( attributes );\n\tconst spacingProps = getSpacingClassesAndStyles( attributes );\n\n\tconst buttonClassName = clsx( colorProps.className, borderProps.className );\n\n\tconst buttonStyle = {\n\t\t...colorProps.style,\n\t\t...borderProps.style,\n\t\t...spacingProps.style,\n\t};\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ tabs.map( ( tab, index ) => (\n\t\t\t\t<RichText.Content\n\t\t\t\t\tkey={ index }\n\t\t\t\t\tclassName={ buttonClassName || undefined }\n\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\ttagName=\"button\"\n\t\t\t\t\tvalue={ tab.label }\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\trole=\"tab\"\n\t\t\t\t/>\n\t\t\t) ) }\n\t\t</div>\n\t);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAiB;AAKjB,0BAMO;AAuBH;AArBW,SAAR,KAAuB,EAAE,WAAW,GAAI;AAC9C,QAAM,EAAE,KAAK,IAAI;AACjB,QAAM,aAAa,kCAAc,KAAM;AAAA,IACtC,MAAM;AAAA,EACP,CAAE;AAEF,QAAM,iBAAa,oBAAAA,wCAA0B,UAAW;AACxD,QAAM,kBAAc,oBAAAC,yCAA2B,UAAW;AAC1D,QAAM,mBAAe,oBAAAC,0CAA4B,UAAW;AAE5D,QAAM,sBAAkB,YAAAC,SAAM,WAAW,WAAW,YAAY,SAAU;AAE1E,QAAM,cAAc;AAAA,IACnB,GAAG,WAAW;AAAA,IACd,GAAG,YAAY;AAAA,IACf,GAAG,aAAa;AAAA,EACjB;AAEA,SACC,4CAAC,SAAM,GAAG,YACP,eAAK,IAAK,CAAE,KAAK,UAClB;AAAA,IAAC,6BAAS;AAAA,IAAT;AAAA,MAEA,WAAY,mBAAmB;AAAA,MAC/B,OAAQ;AAAA,MACR,SAAQ;AAAA,MACR,OAAQ,IAAI;AAAA,MACZ,MAAK;AAAA,MACL,MAAK;AAAA;AAAA,IANC;AAAA,EAOP,CACC,GACH;AAEF;",
6
6
  "names": ["getColorClassesAndStyles", "getBorderClassesAndStyles", "getSpacingClassesAndStyles", "clsx"]
7
7
  }
@@ -37,16 +37,14 @@ var import_block_editor = require("@wordpress/block-editor");
37
37
  var import_components = require("@wordpress/components");
38
38
  var import_i18n = require("@wordpress/i18n");
39
39
  var import_data = require("@wordpress/data");
40
- var import_add_tab_toolbar_control = __toESM(require("./add-tab-toolbar-control.cjs"));
41
- var import_remove_tab_toolbar_control = __toESM(require("./remove-tab-toolbar-control.cjs"));
40
+ var import_tab_toolbar_controls = __toESM(require("../tabs/tab-toolbar-controls.cjs"));
42
41
  var import_hooks = require("../utils/hooks.cjs");
43
42
  var import_jsx_runtime = require("react/jsx-runtime");
44
43
  function Controls({ tabsClientId, blockIndex, isDefaultTab }) {
45
44
  const { updateBlockAttributes } = (0, import_data.useDispatch)(import_block_editor.store);
46
45
  const dropdownMenuProps = (0, import_hooks.useToolsPanelDropdownMenuProps)();
47
46
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
48
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_add_tab_toolbar_control.default, { tabsClientId }),
49
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_remove_tab_toolbar_control.default, { tabsClientId }),
47
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tab_toolbar_controls.default, { tabsClientId }),
50
48
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_block_editor.InspectorControls, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
51
49
  import_components.__experimentalToolsPanel,
52
50
  {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/tab-panel/controls.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tInspectorControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tCheckboxControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport AddTabToolbarControl from './add-tab-toolbar-control';\nimport RemoveTabToolbarControl from './remove-tab-toolbar-control';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nexport default function Controls( { tabsClientId, blockIndex, isDefaultTab } ) {\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<>\n\t\t\t<AddTabToolbarControl tabsClientId={ tabsClientId } />\n\t\t\t<RemoveTabToolbarControl tabsClientId={ tabsClientId } />\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tupdateBlockAttributes( tabsClientId, {\n\t\t\t\t\t\t\tactiveTabIndex: 0,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Default tab' ) }\n\t\t\t\t\t\thasValue={ () => isDefaultTab && blockIndex !== 0 }\n\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\tupdateBlockAttributes( tabsClientId, {\n\t\t\t\t\t\t\t\tactiveTabIndex: 0,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\tlabel={ __( 'Default tab' ) }\n\t\t\t\t\t\t\tchecked={ isDefaultTab }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tupdateBlockAttributes( tabsClientId, {\n\t\t\t\t\t\t\t\t\tactiveTabIndex: value ? blockIndex : 0,\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</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAGO;AACP,wBAIO;AACP,kBAAmB;AACnB,kBAA4B;AAK5B,qCAAiC;AACjC,wCAAoC;AACpC,mBAA+C;AAO7C;AALa,SAAR,SAA2B,EAAE,cAAc,YAAY,aAAa,GAAI;AAC9E,QAAM,EAAE,sBAAsB,QAAI,yBAAa,oBAAAA,KAAiB;AAChE,QAAM,wBAAoB,6CAA+B;AAEzD,SACC,4EACC;AAAA,gDAAC,+BAAAC,SAAA,EAAqB,cAA8B;AAAA,IACpD,4CAAC,kCAAAC,SAAA,EAAwB,cAA8B;AAAA,IACvD,4CAAC,yCACA;AAAA,MAAC,kBAAAC;AAAA,MAAA;AAAA,QACA,WAAQ,gBAAI,UAAW;AAAA,QACvB,UAAW,MAAM;AAChB,gCAAuB,cAAc;AAAA,YACpC,gBAAgB;AAAA,UACjB,CAAE;AAAA,QACH;AAAA,QACA;AAAA,QAEA;AAAA,UAAC,kBAAAC;AAAA,UAAA;AAAA,YACA,WAAQ,gBAAI,aAAc;AAAA,YAC1B,UAAW,MAAM,gBAAgB,eAAe;AAAA,YAChD,YAAa,MAAM;AAClB,oCAAuB,cAAc;AAAA,gBACpC,gBAAgB;AAAA,cACjB,CAAE;AAAA,YACH;AAAA,YACA,kBAAgB;AAAA,YAEhB;AAAA,cAAC;AAAA;AAAA,gBACA,WAAQ,gBAAI,aAAc;AAAA,gBAC1B,SAAU;AAAA,gBACV,UAAW,CAAE,UAAW;AACvB,wCAAuB,cAAc;AAAA,oBACpC,gBAAgB,QAAQ,aAAa;AAAA,kBACtC,CAAE;AAAA,gBACH;AAAA;AAAA,YACD;AAAA;AAAA,QACD;AAAA;AAAA,IACD,GACD;AAAA,KACD;AAEF;",
6
- "names": ["blockEditorStore", "AddTabToolbarControl", "RemoveTabToolbarControl", "ToolsPanel", "ToolsPanelItem"]
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tInspectorControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tCheckboxControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport TabToolbarControls from '../tabs/tab-toolbar-controls';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nexport default function Controls( { tabsClientId, blockIndex, isDefaultTab } ) {\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\treturn (\n\t\t<>\n\t\t\t<TabToolbarControls tabsClientId={ tabsClientId } />\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tupdateBlockAttributes( tabsClientId, {\n\t\t\t\t\t\t\tactiveTabIndex: 0,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Default tab' ) }\n\t\t\t\t\t\thasValue={ () => isDefaultTab && blockIndex !== 0 }\n\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\tupdateBlockAttributes( tabsClientId, {\n\t\t\t\t\t\t\t\tactiveTabIndex: 0,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\tlabel={ __( 'Default tab' ) }\n\t\t\t\t\t\t\tchecked={ isDefaultTab }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tupdateBlockAttributes( tabsClientId, {\n\t\t\t\t\t\t\t\t\tactiveTabIndex: value ? blockIndex : 0,\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</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAGO;AACP,wBAIO;AACP,kBAAmB;AACnB,kBAA4B;AAK5B,kCAA+B;AAC/B,mBAA+C;AAO7C;AALa,SAAR,SAA2B,EAAE,cAAc,YAAY,aAAa,GAAI;AAC9E,QAAM,EAAE,sBAAsB,QAAI,yBAAa,oBAAAA,KAAiB;AAChE,QAAM,wBAAoB,6CAA+B;AAEzD,SACC,4EACC;AAAA,gDAAC,4BAAAC,SAAA,EAAmB,cAA8B;AAAA,IAClD,4CAAC,yCACA;AAAA,MAAC,kBAAAC;AAAA,MAAA;AAAA,QACA,WAAQ,gBAAI,UAAW;AAAA,QACvB,UAAW,MAAM;AAChB,gCAAuB,cAAc;AAAA,YACpC,gBAAgB;AAAA,UACjB,CAAE;AAAA,QACH;AAAA,QACA;AAAA,QAEA;AAAA,UAAC,kBAAAC;AAAA,UAAA;AAAA,YACA,WAAQ,gBAAI,aAAc;AAAA,YAC1B,UAAW,MAAM,gBAAgB,eAAe;AAAA,YAChD,YAAa,MAAM;AAClB,oCAAuB,cAAc;AAAA,gBACpC,gBAAgB;AAAA,cACjB,CAAE;AAAA,YACH;AAAA,YACA,kBAAgB;AAAA,YAEhB;AAAA,cAAC;AAAA;AAAA,gBACA,WAAQ,gBAAI,aAAc;AAAA,gBAC1B,SAAU;AAAA,gBACV,UAAW,CAAE,UAAW;AACvB,wCAAuB,cAAc;AAAA,oBACpC,gBAAgB,QAAQ,aAAa;AAAA,kBACtC,CAAE;AAAA,gBACH;AAAA;AAAA,YACD;AAAA;AAAA,QACD;AAAA;AAAA,IACD,GACD;AAAA,KACD;AAEF;",
6
+ "names": ["blockEditorStore", "TabToolbarControls", "ToolsPanel", "ToolsPanelItem"]
7
7
  }
@@ -36,8 +36,7 @@ module.exports = __toCommonJS(edit_exports);
36
36
  var import_block_editor = require("@wordpress/block-editor");
37
37
  var import_data = require("@wordpress/data");
38
38
  var import_i18n = require("@wordpress/i18n");
39
- var import_add_tab_toolbar_control = __toESM(require("../tab-panel/add-tab-toolbar-control.cjs"));
40
- var import_remove_tab_toolbar_control = __toESM(require("../tab-panel/remove-tab-toolbar-control.cjs"));
39
+ var import_tab_toolbar_controls = __toESM(require("../tabs/tab-toolbar-controls.cjs"));
41
40
  var import_jsx_runtime = require("react/jsx-runtime");
42
41
  var TAB_PANELS_TEMPLATE = [
43
42
  ["core/tab-panel", { label: (0, import_i18n.__)("Tab") }],
@@ -56,8 +55,7 @@ function Edit({ clientId }) {
56
55
  [clientId]
57
56
  );
58
57
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
59
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_add_tab_toolbar_control.default, { tabsClientId }),
60
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_remove_tab_toolbar_control.default, { tabsClientId }),
58
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tab_toolbar_controls.default, { tabsClientId }),
61
59
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { ...innerBlocksProps })
62
60
  ] });
63
61
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/tab-panels/edit.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport AddTabToolbarControl from '../tab-panel/add-tab-toolbar-control';\nimport RemoveTabToolbarControl from '../tab-panel/remove-tab-toolbar-control';\n\n/**\n * Initial template applied only when the block is first inserted (i.e. when\n * inner blocks are empty). templateLock is false, so this is never applied to\n * existing blocks that already have tab panels saved.\n */\nconst TAB_PANELS_TEMPLATE = [\n\t[ 'core/tab-panel', { label: __( 'Tab' ) } ],\n\t[ 'core/tab-panel', { label: __( 'Tab' ) } ],\n];\n\nexport default function Edit( { clientId } ) {\n\tconst blockProps = useBlockProps();\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TAB_PANELS_TEMPLATE,\n\t\ttemplateLock: false,\n\t\trenderAppender: false, // Appender handled by individual tab blocks\n\t} );\n\n\t// Get the parent tabs block clientId\n\tconst tabsClientId = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlockRootClientId( clientId ),\n\t\t[ clientId ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<AddTabToolbarControl tabsClientId={ tabsClientId } />\n\t\t\t<RemoveTabToolbarControl tabsClientId={ tabsClientId } />\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAIO;AACP,kBAA0B;AAC1B,kBAAmB;AAKnB,qCAAiC;AACjC,wCAAoC;AA6BlC;AAtBF,IAAM,sBAAsB;AAAA,EAC3B,CAAE,kBAAkB,EAAE,WAAO,gBAAI,KAAM,EAAE,CAAE;AAAA,EAC3C,CAAE,kBAAkB,EAAE,WAAO,gBAAI,KAAM,EAAE,CAAE;AAC5C;AAEe,SAAR,KAAuB,EAAE,SAAS,GAAI;AAC5C,QAAM,iBAAa,mCAAc;AAEjC,QAAM,uBAAmB,yCAAqB,YAAY;AAAA,IACzD,UAAU;AAAA,IACV,cAAc;AAAA,IACd,gBAAgB;AAAA;AAAA,EACjB,CAAE;AAGF,QAAM,mBAAe;AAAA,IACpB,CAAE,WACD,OAAQ,oBAAAA,KAAiB,EAAE,qBAAsB,QAAS;AAAA,IAC3D,CAAE,QAAS;AAAA,EACZ;AAEA,SACC,4EACC;AAAA,gDAAC,+BAAAC,SAAA,EAAqB,cAA8B;AAAA,IACpD,4CAAC,kCAAAC,SAAA,EAAwB,cAA8B;AAAA,IACvD,4CAAC,SAAM,GAAG,kBAAmB;AAAA,KAC9B;AAEF;",
6
- "names": ["blockEditorStore", "AddTabToolbarControl", "RemoveTabToolbarControl"]
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport TabToolbarControls from '../tabs/tab-toolbar-controls';\n\n/**\n * Initial template applied only when the block is first inserted (i.e. when\n * inner blocks are empty). templateLock is false, so this is never applied to\n * existing blocks that already have tab panels saved.\n */\nconst TAB_PANELS_TEMPLATE = [\n\t[ 'core/tab-panel', { label: __( 'Tab' ) } ],\n\t[ 'core/tab-panel', { label: __( 'Tab' ) } ],\n];\n\nexport default function Edit( { clientId } ) {\n\tconst blockProps = useBlockProps();\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TAB_PANELS_TEMPLATE,\n\t\ttemplateLock: false,\n\t\trenderAppender: false, // Appender handled by individual tab blocks\n\t} );\n\n\t// Get the parent tabs block clientId\n\tconst tabsClientId = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlockRootClientId( clientId ),\n\t\t[ clientId ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<TabToolbarControls tabsClientId={ tabsClientId } />\n\t\t\t<div { ...innerBlocksProps } />\n\t\t</>\n\t);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAIO;AACP,kBAA0B;AAC1B,kBAAmB;AAKnB,kCAA+B;AA6B7B;AAtBF,IAAM,sBAAsB;AAAA,EAC3B,CAAE,kBAAkB,EAAE,WAAO,gBAAI,KAAM,EAAE,CAAE;AAAA,EAC3C,CAAE,kBAAkB,EAAE,WAAO,gBAAI,KAAM,EAAE,CAAE;AAC5C;AAEe,SAAR,KAAuB,EAAE,SAAS,GAAI;AAC5C,QAAM,iBAAa,mCAAc;AAEjC,QAAM,uBAAmB,yCAAqB,YAAY;AAAA,IACzD,UAAU;AAAA,IACV,cAAc;AAAA,IACd,gBAAgB;AAAA;AAAA,EACjB,CAAE;AAGF,QAAM,mBAAe;AAAA,IACpB,CAAE,WACD,OAAQ,oBAAAA,KAAiB,EAAE,qBAAsB,QAAS;AAAA,IAC3D,CAAE,QAAS;AAAA,EACZ;AAEA,SACC,4EACC;AAAA,gDAAC,4BAAAC,SAAA,EAAmB,cAA8B;AAAA,IAClD,4CAAC,SAAM,GAAG,kBAAmB;AAAA,KAC9B;AAEF;",
6
+ "names": ["blockEditorStore", "TabToolbarControls"]
7
7
  }
@@ -172,7 +172,6 @@ function TableOfContentsEdit({
172
172
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
173
173
  import_components.SelectControl,
174
174
  {
175
- __next40pxDefaultSize: true,
176
175
  label: (0, import_i18n.__)("Include headings down to level"),
177
176
  value: maxLevel || "",
178
177
  options: [
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/table-of-contents/edit.js"],
4
- "sourcesContent": ["/**\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\tPlaceholder,\n\tToggleControl,\n\tSelectControl,\n\tToolbarButton,\n\tToolbarGroup,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { renderToString } from '@wordpress/element';\nimport { __, isRTL } from '@wordpress/i18n';\nimport { useInstanceId } from '@wordpress/compose';\nimport { store as noticeStore } from '@wordpress/notices';\nimport {\n\ttableOfContents as icon,\n\tformatListBullets,\n\tformatListBulletsRTL,\n\tformatListNumbered,\n\tformatListNumberedRTL,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport TableOfContentsList from './list';\nimport { linearToNestedHeadingList } from './utils';\nimport { useObserveHeadings } from './hooks';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\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 The 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 {number|undefined} props.attributes.maxLevel The maximum heading level to include, or null to include all levels.\n * @param {boolean} props.attributes.ordered Whether to display as an ordered list (true) or unordered list (false).\n * @param {string} props.clientId The client id.\n * @param {(attributes: Object) => void} props.setAttributes The set attributes function.\n *\n * @return {Component} The component.\n */\nexport default function TableOfContentsEdit( {\n\tattributes: {\n\t\theadings = [],\n\t\tonlyIncludeCurrentPage,\n\t\tmaxLevel,\n\t\tordered = true,\n\t},\n\tclientId,\n\tsetAttributes,\n} ) {\n\tuseObserveHeadings( clientId );\n\n\tconst blockProps = useBlockProps();\n\tconst instanceId = useInstanceId(\n\t\tTableOfContentsEdit,\n\t\t'table-of-contents'\n\t);\n\n\t// If a user clicks to a link prevent redirection and show a warning.\n\tconst { createWarningNotice } = useDispatch( noticeStore );\n\tconst showRedirectionPreventedNotice = ( event ) => {\n\t\tevent.preventDefault();\n\t\tcreateWarningNotice( __( 'Links are disabled in the editor.' ), {\n\t\t\tid: `block-library/core/table-of-contents/redirection-prevented/${ instanceId }`,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t};\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 { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst headingTree = linearToNestedHeadingList( headings );\n\n\tconst toolbarControls = (\n\t\t<BlockControls>\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\ticon={ isRTL() ? formatListBulletsRTL : formatListBullets }\n\t\t\t\t\ttitle={ __( 'Unordered' ) }\n\t\t\t\t\tdescription={ __( 'Convert to unordered list' ) }\n\t\t\t\t\tonClick={ () => setAttributes( { ordered: false } ) }\n\t\t\t\t\tisActive={ ordered === false }\n\t\t\t\t/>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\ticon={\n\t\t\t\t\t\tisRTL() ? formatListNumberedRTL : formatListNumbered\n\t\t\t\t\t}\n\t\t\t\t\ttitle={ __( 'Ordered' ) }\n\t\t\t\t\tdescription={ __( 'Convert to ordered list' ) }\n\t\t\t\t\tonClick={ () => setAttributes( { ordered: true } ) }\n\t\t\t\t\tisActive={ ordered === true }\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t\t{ canInsertList && (\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\treplaceBlocks(\n\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\tcreateBlock( 'core/list', {\n\t\t\t\t\t\t\t\t\tordered,\n\t\t\t\t\t\t\t\t\tvalues: renderToString(\n\t\t\t\t\t\t\t\t\t\t<TableOfContentsList\n\t\t\t\t\t\t\t\t\t\t\tnestedHeadingList={ headingTree }\n\t\t\t\t\t\t\t\t\t\t\tordered={ ordered }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Convert to static list' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</ToolbarGroup>\n\t\t\t) }\n\t\t</BlockControls>\n\t);\n\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\tresetAll={ () => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tonlyIncludeCurrentPage: false,\n\t\t\t\t\t\tmaxLevel: undefined,\n\t\t\t\t\t\tordered: true,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => !! onlyIncludeCurrentPage }\n\t\t\t\t\tlabel={ __( 'Only include current page' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { onlyIncludeCurrentPage: false } )\n\t\t\t\t\t}\n\t\t\t\t\tisShownByDefault\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Only include current page' ) }\n\t\t\t\t\t\tchecked={ onlyIncludeCurrentPage }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { onlyIncludeCurrentPage: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\tonlyIncludeCurrentPage\n\t\t\t\t\t\t\t\t? __(\n\t\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\t )\n\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t'Include headings from all pages (if the post is paginated).'\n\t\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</ToolsPanelItem>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => !! maxLevel }\n\t\t\t\t\tlabel={ __( 'Limit heading levels' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { maxLevel: undefined } )\n\t\t\t\t\t}\n\t\t\t\t\tisShownByDefault\n\t\t\t\t>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Include headings down to level' ) }\n\t\t\t\t\t\tvalue={ maxLevel || '' }\n\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t{ value: '', label: __( 'All levels' ) },\n\t\t\t\t\t\t\t{ value: '1', label: __( 'Heading 1' ) },\n\t\t\t\t\t\t\t{ value: '2', label: __( 'Heading 2' ) },\n\t\t\t\t\t\t\t{ value: '3', label: __( 'Heading 3' ) },\n\t\t\t\t\t\t\t{ value: '4', label: __( 'Heading 4' ) },\n\t\t\t\t\t\t\t{ value: '5', label: __( 'Heading 5' ) },\n\t\t\t\t\t\t\t{ value: '6', label: __( 'Heading 6' ) },\n\t\t\t\t\t\t] }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tmaxLevel: value ? parseInt( value ) : undefined,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t! maxLevel\n\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t'Including all heading levels in the table of contents.'\n\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\t\t\t'Only include headings up to and including this level.'\n\t\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</ToolsPanelItem>\n\t\t\t</ToolsPanel>\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\tconst ListTag = ordered ? 'ol' : 'ul';\n\n\treturn (\n\t\t<>\n\t\t\t<nav { ...blockProps }>\n\t\t\t\t<ListTag>\n\t\t\t\t\t<TableOfContentsList\n\t\t\t\t\t\tnestedHeadingList={ headingTree }\n\t\t\t\t\t\tdisableLinkActivation\n\t\t\t\t\t\tonClick={ showRedirectionPreventedNotice }\n\t\t\t\t\t\tordered={ ordered }\n\t\t\t\t\t/>\n\t\t\t\t</ListTag>\n\t\t\t</nav>\n\t\t\t{ toolbarControls }\n\t\t\t{ inspectorControls }\n\t\t</>\n\t);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\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\tPlaceholder,\n\tToggleControl,\n\tSelectControl,\n\tToolbarButton,\n\tToolbarGroup,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { renderToString } from '@wordpress/element';\nimport { __, isRTL } from '@wordpress/i18n';\nimport { useInstanceId } from '@wordpress/compose';\nimport { store as noticeStore } from '@wordpress/notices';\nimport {\n\ttableOfContents as icon,\n\tformatListBullets,\n\tformatListBulletsRTL,\n\tformatListNumbered,\n\tformatListNumberedRTL,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport TableOfContentsList from './list';\nimport { linearToNestedHeadingList } from './utils';\nimport { useObserveHeadings } from './hooks';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\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 The 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 {number|undefined} props.attributes.maxLevel The maximum heading level to include, or null to include all levels.\n * @param {boolean} props.attributes.ordered Whether to display as an ordered list (true) or unordered list (false).\n * @param {string} props.clientId The client id.\n * @param {(attributes: Object) => void} props.setAttributes The set attributes function.\n *\n * @return {Component} The component.\n */\nexport default function TableOfContentsEdit( {\n\tattributes: {\n\t\theadings = [],\n\t\tonlyIncludeCurrentPage,\n\t\tmaxLevel,\n\t\tordered = true,\n\t},\n\tclientId,\n\tsetAttributes,\n} ) {\n\tuseObserveHeadings( clientId );\n\n\tconst blockProps = useBlockProps();\n\tconst instanceId = useInstanceId(\n\t\tTableOfContentsEdit,\n\t\t'table-of-contents'\n\t);\n\n\t// If a user clicks to a link prevent redirection and show a warning.\n\tconst { createWarningNotice } = useDispatch( noticeStore );\n\tconst showRedirectionPreventedNotice = ( event ) => {\n\t\tevent.preventDefault();\n\t\tcreateWarningNotice( __( 'Links are disabled in the editor.' ), {\n\t\t\tid: `block-library/core/table-of-contents/redirection-prevented/${ instanceId }`,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t};\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 { replaceBlocks } = useDispatch( blockEditorStore );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst headingTree = linearToNestedHeadingList( headings );\n\n\tconst toolbarControls = (\n\t\t<BlockControls>\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\ticon={ isRTL() ? formatListBulletsRTL : formatListBullets }\n\t\t\t\t\ttitle={ __( 'Unordered' ) }\n\t\t\t\t\tdescription={ __( 'Convert to unordered list' ) }\n\t\t\t\t\tonClick={ () => setAttributes( { ordered: false } ) }\n\t\t\t\t\tisActive={ ordered === false }\n\t\t\t\t/>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\ticon={\n\t\t\t\t\t\tisRTL() ? formatListNumberedRTL : formatListNumbered\n\t\t\t\t\t}\n\t\t\t\t\ttitle={ __( 'Ordered' ) }\n\t\t\t\t\tdescription={ __( 'Convert to ordered list' ) }\n\t\t\t\t\tonClick={ () => setAttributes( { ordered: true } ) }\n\t\t\t\t\tisActive={ ordered === true }\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t\t{ canInsertList && (\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\treplaceBlocks(\n\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\tcreateBlock( 'core/list', {\n\t\t\t\t\t\t\t\t\tordered,\n\t\t\t\t\t\t\t\t\tvalues: renderToString(\n\t\t\t\t\t\t\t\t\t\t<TableOfContentsList\n\t\t\t\t\t\t\t\t\t\t\tnestedHeadingList={ headingTree }\n\t\t\t\t\t\t\t\t\t\t\tordered={ ordered }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Convert to static list' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</ToolbarGroup>\n\t\t\t) }\n\t\t</BlockControls>\n\t);\n\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<ToolsPanel\n\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\tresetAll={ () => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tonlyIncludeCurrentPage: false,\n\t\t\t\t\t\tmaxLevel: undefined,\n\t\t\t\t\t\tordered: true,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => !! onlyIncludeCurrentPage }\n\t\t\t\t\tlabel={ __( 'Only include current page' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { onlyIncludeCurrentPage: false } )\n\t\t\t\t\t}\n\t\t\t\t\tisShownByDefault\n\t\t\t\t>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Only include current page' ) }\n\t\t\t\t\t\tchecked={ onlyIncludeCurrentPage }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { onlyIncludeCurrentPage: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\tonlyIncludeCurrentPage\n\t\t\t\t\t\t\t\t? __(\n\t\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\t )\n\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t'Include headings from all pages (if the post is paginated).'\n\t\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</ToolsPanelItem>\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ () => !! maxLevel }\n\t\t\t\t\tlabel={ __( 'Limit heading levels' ) }\n\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\tsetAttributes( { maxLevel: undefined } )\n\t\t\t\t\t}\n\t\t\t\t\tisShownByDefault\n\t\t\t\t>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={ __( 'Include headings down to level' ) }\n\t\t\t\t\t\tvalue={ maxLevel || '' }\n\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t{ value: '', label: __( 'All levels' ) },\n\t\t\t\t\t\t\t{ value: '1', label: __( 'Heading 1' ) },\n\t\t\t\t\t\t\t{ value: '2', label: __( 'Heading 2' ) },\n\t\t\t\t\t\t\t{ value: '3', label: __( 'Heading 3' ) },\n\t\t\t\t\t\t\t{ value: '4', label: __( 'Heading 4' ) },\n\t\t\t\t\t\t\t{ value: '5', label: __( 'Heading 5' ) },\n\t\t\t\t\t\t\t{ value: '6', label: __( 'Heading 6' ) },\n\t\t\t\t\t\t] }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tmaxLevel: value ? parseInt( value ) : undefined,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t! maxLevel\n\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t'Including all heading levels in the table of contents.'\n\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\t\t\t'Only include headings up to and including this level.'\n\t\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</ToolsPanelItem>\n\t\t\t</ToolsPanel>\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\tconst ListTag = ordered ? 'ol' : 'ul';\n\n\treturn (\n\t\t<>\n\t\t\t<nav { ...blockProps }>\n\t\t\t\t<ListTag>\n\t\t\t\t\t<TableOfContentsList\n\t\t\t\t\t\tnestedHeadingList={ headingTree }\n\t\t\t\t\t\tdisableLinkActivation\n\t\t\t\t\t\tonClick={ showRedirectionPreventedNotice }\n\t\t\t\t\t\tordered={ ordered }\n\t\t\t\t\t/>\n\t\t\t\t</ListTag>\n\t\t\t</nav>\n\t\t\t{ toolbarControls }\n\t\t\t{ inspectorControls }\n\t\t</>\n\t);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_hooks", "noticeStore", "blockEditorStore", "TableOfContentsList", "ToolsPanel", "ToolsPanelItem", "icon"]
7
7
  }
@@ -36,7 +36,7 @@ module.exports = __toCommonJS(edit_exports);
36
36
  var import_block_editor = require("@wordpress/block-editor");
37
37
  var import_data = require("@wordpress/data");
38
38
  var import_element = require("@wordpress/element");
39
- var import_controls = __toESM(require("./controls.cjs"));
39
+ var import_tab_toolbar_controls = __toESM(require("./tab-toolbar-controls.cjs"));
40
40
  var import_use_tab_list_items_sync = __toESM(require("./use-tab-list-items-sync.cjs"));
41
41
  var import_jsx_runtime = require("react/jsx-runtime");
42
42
  var EMPTY_ARRAY = [];
@@ -83,7 +83,7 @@ function Edit({ clientId, attributes }) {
83
83
  renderAppender: false
84
84
  });
85
85
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_block_editor.BlockContextProvider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { ...innerBlockProps, children: [
86
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_controls.default, { clientId }),
86
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_tab_toolbar_controls.default, { tabsClientId: clientId }),
87
87
  innerBlockProps.children
88
88
  ] }) });
89
89
  }