@wordpress/block-library 9.44.0 → 9.45.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 (367) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/accordion/edit.cjs +0 -2
  3. package/build/accordion/edit.cjs.map +2 -2
  4. package/build/accordion-item/block.json +1 -0
  5. package/build/button/constants.cjs +1 -1
  6. package/build/button/constants.cjs.map +1 -1
  7. package/build/categories/edit.cjs +5 -1
  8. package/build/categories/edit.cjs.map +2 -2
  9. package/build/embed/edit.cjs +38 -34
  10. package/build/embed/edit.cjs.map +3 -3
  11. package/build/embed/transforms.cjs +3 -1
  12. package/build/embed/transforms.cjs.map +2 -2
  13. package/build/embed/util.cjs +13 -2
  14. package/build/embed/util.cjs.map +2 -2
  15. package/build/form/block.json +1 -1
  16. package/build/form-input/block.json +1 -1
  17. package/build/form-submission-notification/block.json +1 -1
  18. package/build/form-submit-button/block.json +1 -1
  19. package/build/group/block.json +2 -1
  20. package/build/image/constants.cjs +1 -1
  21. package/build/image/constants.cjs.map +2 -2
  22. package/build/image/edit.cjs +2 -4
  23. package/build/image/edit.cjs.map +2 -2
  24. package/build/image/image.cjs +49 -19
  25. package/build/image/image.cjs.map +3 -3
  26. package/build/index.cjs +4 -4
  27. package/build/index.cjs.map +2 -2
  28. package/build/latest-posts/edit.cjs +1 -1
  29. package/build/latest-posts/edit.cjs.map +1 -1
  30. package/build/math/edit.cjs +2 -2
  31. package/build/math/edit.cjs.map +2 -2
  32. package/build/navigation/edit/accessible-description.cjs +2 -2
  33. package/build/navigation/edit/accessible-description.cjs.map +2 -2
  34. package/build/navigation/edit/overlay-template-part-selector.cjs.map +2 -2
  35. package/build/navigation-link/edit.cjs +2 -1
  36. package/build/navigation-link/edit.cjs.map +2 -2
  37. package/build/navigation-link/link-ui/dialog-wrapper.cjs +2 -1
  38. package/build/navigation-link/link-ui/dialog-wrapper.cjs.map +2 -2
  39. package/build/navigation-link/link-ui/index.cjs +2 -1
  40. package/build/navigation-link/link-ui/index.cjs.map +2 -2
  41. package/build/paragraph/use-enter.cjs +12 -23
  42. package/build/paragraph/use-enter.cjs.map +2 -2
  43. package/build/post-author/edit.cjs.map +3 -3
  44. package/build/post-comments-form/edit.cjs +2 -2
  45. package/build/post-comments-form/edit.cjs.map +2 -2
  46. package/build/post-featured-image/edit.cjs +2 -5
  47. package/build/post-featured-image/edit.cjs.map +2 -2
  48. package/build/post-template/edit.cjs +8 -2
  49. package/build/post-template/edit.cjs.map +2 -2
  50. package/build/pullquote/block.json +1 -4
  51. package/build/query/edit/inspector-controls/author-control.cjs +1 -1
  52. package/build/query/edit/inspector-controls/author-control.cjs.map +2 -2
  53. package/build/query/edit/inspector-controls/format-controls.cjs +1 -1
  54. package/build/query/edit/inspector-controls/format-controls.cjs.map +2 -2
  55. package/build/query/edit/inspector-controls/parent-control.cjs +1 -1
  56. package/build/query/edit/inspector-controls/parent-control.cjs.map +2 -2
  57. package/build/query/edit/inspector-controls/taxonomy-controls.cjs +1 -1
  58. package/build/query/edit/inspector-controls/taxonomy-controls.cjs.map +2 -2
  59. package/build/site-logo/edit.cjs +34 -20
  60. package/build/site-logo/edit.cjs.map +2 -2
  61. package/build/tab/block.json +23 -23
  62. package/build/tab/controls.cjs +5 -48
  63. package/build/tab/controls.cjs.map +3 -3
  64. package/build/tab/edit.cjs +76 -92
  65. package/build/tab/edit.cjs.map +3 -3
  66. package/build/tab/save.cjs +3 -3
  67. package/build/tab/save.cjs.map +2 -2
  68. package/{src/tabs-menu → build/tab-list}/block.json +4 -4
  69. package/build/{tabs-menu → tab-list}/edit.cjs +9 -14
  70. package/build/tab-list/edit.cjs.map +7 -0
  71. package/build/{tabs-menu → tab-list}/index.cjs +5 -5
  72. package/build/tab-list/index.cjs.map +7 -0
  73. package/build/{tabs-menu → tab-list}/save.cjs +1 -1
  74. package/build/{tabs-menu → tab-list}/save.cjs.map +1 -1
  75. package/build/{tab → tab-panel}/add-tab-toolbar-control.cjs +16 -16
  76. package/build/tab-panel/add-tab-toolbar-control.cjs.map +7 -0
  77. package/build/tab-panel/block.json +27 -37
  78. package/build/tab-panel/controls.cjs +89 -0
  79. package/build/tab-panel/controls.cjs.map +7 -0
  80. package/build/tab-panel/edit.cjs +88 -18
  81. package/build/tab-panel/edit.cjs.map +3 -3
  82. package/build/tab-panel/index.cjs +1 -1
  83. package/build/tab-panel/index.cjs.map +1 -1
  84. package/build/{tab → tab-panel}/init.cjs +1 -1
  85. package/build/{tab → tab-panel}/init.cjs.map +1 -1
  86. package/build/{tab → tab-panel}/remove-tab-toolbar-control.cjs +16 -16
  87. package/build/tab-panel/remove-tab-toolbar-control.cjs.map +7 -0
  88. package/build/tab-panel/save.cjs +4 -2
  89. package/build/tab-panel/save.cjs.map +2 -2
  90. package/build/tab-panels/block.json +66 -0
  91. package/build/{tabs-menu-item/controls.cjs → tab-panels/edit.cjs} +25 -11
  92. package/build/tab-panels/edit.cjs.map +7 -0
  93. package/build/{tabs-menu-item → tab-panels}/index.cjs +5 -5
  94. package/build/{tabs-menu → tab-panels}/index.cjs.map +2 -2
  95. package/build/{tabs-menu-item → tab-panels}/save.cjs +4 -6
  96. package/build/tab-panels/save.cjs.map +7 -0
  97. package/build/tabs/block.json +1 -2
  98. package/build/tabs/controls.cjs +2 -2
  99. package/build/tabs/controls.cjs.map +1 -1
  100. package/build/tabs/edit.cjs +29 -100
  101. package/build/tabs/edit.cjs.map +3 -3
  102. package/build/tabs/index.cjs +5 -5
  103. package/build/tabs/index.cjs.map +1 -1
  104. package/build/tabs/use-tab-list-sync.cjs +190 -0
  105. package/build/tabs/use-tab-list-sync.cjs.map +7 -0
  106. package/build/terms-query/edit/inspector-controls/include-control.cjs +1 -1
  107. package/build/terms-query/edit/inspector-controls/include-control.cjs.map +2 -2
  108. package/build/video/tracks-editor.cjs +2 -2
  109. package/build/video/tracks-editor.cjs.map +2 -2
  110. package/build-module/accordion/edit.mjs +0 -2
  111. package/build-module/accordion/edit.mjs.map +2 -2
  112. package/build-module/accordion-item/block.json +1 -0
  113. package/build-module/button/constants.mjs +1 -1
  114. package/build-module/button/constants.mjs.map +1 -1
  115. package/build-module/categories/edit.mjs +5 -2
  116. package/build-module/categories/edit.mjs.map +2 -2
  117. package/build-module/embed/edit.mjs +45 -36
  118. package/build-module/embed/edit.mjs.map +2 -2
  119. package/build-module/embed/transforms.mjs +8 -2
  120. package/build-module/embed/transforms.mjs.map +2 -2
  121. package/build-module/embed/util.mjs +11 -1
  122. package/build-module/embed/util.mjs.map +2 -2
  123. package/build-module/form/block.json +1 -1
  124. package/build-module/form-input/block.json +1 -1
  125. package/build-module/form-submission-notification/block.json +1 -1
  126. package/build-module/form-submit-button/block.json +1 -1
  127. package/build-module/group/block.json +2 -1
  128. package/build-module/image/constants.mjs +1 -1
  129. package/build-module/image/constants.mjs.map +2 -2
  130. package/build-module/image/edit.mjs +2 -4
  131. package/build-module/image/edit.mjs.map +2 -2
  132. package/build-module/image/image.mjs +49 -19
  133. package/build-module/image/image.mjs.map +3 -3
  134. package/build-module/index.mjs +4 -4
  135. package/build-module/index.mjs.map +2 -2
  136. package/build-module/latest-posts/edit.mjs +1 -1
  137. package/build-module/latest-posts/edit.mjs.map +1 -1
  138. package/build-module/math/edit.mjs +2 -2
  139. package/build-module/math/edit.mjs.map +2 -2
  140. package/build-module/navigation/edit/accessible-description.mjs +1 -1
  141. package/build-module/navigation/edit/accessible-description.mjs.map +1 -1
  142. package/build-module/navigation/edit/overlay-template-part-selector.mjs +2 -2
  143. package/build-module/navigation/edit/overlay-template-part-selector.mjs.map +1 -1
  144. package/build-module/navigation-link/edit.mjs +2 -5
  145. package/build-module/navigation-link/edit.mjs.map +2 -2
  146. package/build-module/navigation-link/link-ui/dialog-wrapper.mjs +2 -1
  147. package/build-module/navigation-link/link-ui/dialog-wrapper.mjs.map +2 -2
  148. package/build-module/navigation-link/link-ui/index.mjs +1 -1
  149. package/build-module/navigation-link/link-ui/index.mjs.map +2 -2
  150. package/build-module/paragraph/use-enter.mjs +13 -23
  151. package/build-module/paragraph/use-enter.mjs.map +2 -2
  152. package/build-module/post-author/edit.mjs +2 -2
  153. package/build-module/post-author/edit.mjs.map +2 -2
  154. package/build-module/post-comments-form/edit.mjs +1 -1
  155. package/build-module/post-comments-form/edit.mjs.map +2 -2
  156. package/build-module/post-featured-image/edit.mjs +2 -5
  157. package/build-module/post-featured-image/edit.mjs.map +2 -2
  158. package/build-module/post-template/edit.mjs +8 -2
  159. package/build-module/post-template/edit.mjs.map +2 -2
  160. package/build-module/pullquote/block.json +1 -4
  161. package/build-module/query/edit/inspector-controls/author-control.mjs +1 -1
  162. package/build-module/query/edit/inspector-controls/author-control.mjs.map +2 -2
  163. package/build-module/query/edit/inspector-controls/format-controls.mjs +1 -1
  164. package/build-module/query/edit/inspector-controls/format-controls.mjs.map +2 -2
  165. package/build-module/query/edit/inspector-controls/parent-control.mjs +1 -1
  166. package/build-module/query/edit/inspector-controls/parent-control.mjs.map +2 -2
  167. package/build-module/query/edit/inspector-controls/taxonomy-controls.mjs +1 -1
  168. package/build-module/query/edit/inspector-controls/taxonomy-controls.mjs.map +2 -2
  169. package/build-module/site-logo/edit.mjs +34 -20
  170. package/build-module/site-logo/edit.mjs.map +2 -2
  171. package/build-module/tab/block.json +23 -23
  172. package/build-module/tab/controls.mjs +7 -57
  173. package/build-module/tab/controls.mjs.map +2 -2
  174. package/build-module/tab/edit.mjs +80 -96
  175. package/build-module/tab/edit.mjs.map +3 -3
  176. package/build-module/tab/save.mjs +4 -4
  177. package/build-module/tab/save.mjs.map +2 -2
  178. package/build-module/{tabs-menu → tab-list}/block.json +4 -4
  179. package/build-module/{tabs-menu → tab-list}/edit.mjs +9 -14
  180. package/build-module/tab-list/edit.mjs.map +7 -0
  181. package/build-module/{tabs-menu → tab-list}/index.mjs +2 -2
  182. package/build-module/tab-list/index.mjs.map +7 -0
  183. package/build-module/{tabs-menu → tab-list}/save.mjs +1 -1
  184. package/build-module/{tabs-menu → tab-list}/save.mjs.map +1 -1
  185. package/build-module/{tab → tab-panel}/add-tab-toolbar-control.mjs +16 -16
  186. package/build-module/tab-panel/add-tab-toolbar-control.mjs.map +7 -0
  187. package/build-module/tab-panel/block.json +27 -37
  188. package/build-module/tab-panel/controls.mjs +65 -0
  189. package/build-module/tab-panel/controls.mjs.map +7 -0
  190. package/build-module/tab-panel/edit.mjs +90 -20
  191. package/build-module/tab-panel/edit.mjs.map +2 -2
  192. package/build-module/tab-panel/index.mjs +1 -1
  193. package/build-module/tab-panel/index.mjs.map +1 -1
  194. package/build-module/{tab → tab-panel}/init.mjs +1 -1
  195. package/build-module/{tab → tab-panel}/init.mjs.map +1 -1
  196. package/build-module/{tab → tab-panel}/remove-tab-toolbar-control.mjs +16 -16
  197. package/build-module/tab-panel/remove-tab-toolbar-control.mjs.map +7 -0
  198. package/build-module/tab-panel/save.mjs +4 -2
  199. package/build-module/tab-panel/save.mjs.map +2 -2
  200. package/build-module/tab-panels/block.json +66 -0
  201. package/build-module/tab-panels/edit.mjs +33 -0
  202. package/build-module/tab-panels/edit.mjs.map +7 -0
  203. package/build-module/{tabs-menu-item → tab-panels}/index.mjs +2 -2
  204. package/build-module/{tabs-menu → tab-panels}/index.mjs.map +2 -2
  205. package/build-module/tab-panels/save.mjs +12 -0
  206. package/build-module/tab-panels/save.mjs.map +7 -0
  207. package/build-module/tabs/block.json +1 -2
  208. package/build-module/tabs/controls.mjs +2 -2
  209. package/build-module/tabs/controls.mjs.map +1 -1
  210. package/build-module/tabs/edit.mjs +31 -102
  211. package/build-module/tabs/edit.mjs.map +2 -2
  212. package/build-module/tabs/index.mjs +5 -5
  213. package/build-module/tabs/index.mjs.map +1 -1
  214. package/build-module/tabs/use-tab-list-sync.mjs +169 -0
  215. package/build-module/tabs/use-tab-list-sync.mjs.map +7 -0
  216. package/build-module/terms-query/edit/inspector-controls/include-control.mjs +1 -1
  217. package/build-module/terms-query/edit/inspector-controls/include-control.mjs.map +2 -2
  218. package/build-module/video/tracks-editor.mjs +2 -2
  219. package/build-module/video/tracks-editor.mjs.map +2 -2
  220. package/build-style/classic-rtl.css +14 -0
  221. package/build-style/classic.css +14 -0
  222. package/build-style/editor-rtl.css +9 -5
  223. package/build-style/editor.css +9 -5
  224. package/build-style/latest-comments/style-rtl.css +4 -4
  225. package/build-style/latest-comments/style.css +4 -4
  226. package/build-style/post-template/style-rtl.css +1 -1
  227. package/build-style/post-template/style.css +1 -1
  228. package/build-style/style-rtl.css +45 -48
  229. package/build-style/style.css +45 -48
  230. package/build-style/tab/editor-rtl.css +11 -0
  231. package/build-style/tab/editor.css +11 -0
  232. package/build-style/tab/style-rtl.css +29 -16
  233. package/build-style/tab/style.css +29 -16
  234. package/build-style/tab-list/editor-rtl.css +6 -0
  235. package/build-style/tab-list/editor.css +6 -0
  236. package/build-style/tab-panel/style-rtl.css +17 -1
  237. package/build-style/tab-panel/style.css +17 -1
  238. package/build-style/tab-panels/style-rtl.css +4 -0
  239. package/build-style/tab-panels/style.css +4 -0
  240. package/build-style/tabs/style-rtl.css +0 -3
  241. package/build-style/tabs/style.css +0 -3
  242. package/build-style/video/editor-rtl.css +4 -0
  243. package/build-style/video/editor.css +4 -0
  244. package/package.json +39 -38
  245. package/src/accordion/edit.js +0 -2
  246. package/src/accordion-item/block.json +1 -0
  247. package/src/block/test/edit.native.js +1 -1
  248. package/src/button/constants.js +1 -1
  249. package/src/button/test/get-updated-link-attributes.js +6 -10
  250. package/src/categories/edit.js +3 -2
  251. package/src/classic.scss +25 -0
  252. package/src/editor.scss +2 -2
  253. package/src/embed/edit.js +61 -52
  254. package/src/embed/edit.native.js +71 -57
  255. package/src/embed/transforms.js +8 -2
  256. package/src/embed/util.js +17 -0
  257. package/src/form/block.json +1 -1
  258. package/src/form-input/block.json +1 -1
  259. package/src/form-submission-notification/block.json +1 -1
  260. package/src/form-submit-button/block.json +1 -1
  261. package/src/group/block.json +2 -1
  262. package/src/image/constants.js +1 -1
  263. package/src/image/edit.js +5 -3
  264. package/src/image/edit.native.js +3 -3
  265. package/src/image/image.js +63 -27
  266. package/src/image/test/edit.native.js +2 -2
  267. package/src/index.js +4 -4
  268. package/src/latest-comments/style.scss +7 -7
  269. package/src/latest-posts/edit.js +1 -1
  270. package/src/latest-posts/index.php +1 -1
  271. package/src/math/edit.js +3 -3
  272. package/src/navigation/edit/accessible-description.js +1 -1
  273. package/src/navigation/edit/overlay-template-part-selector.js +3 -3
  274. package/src/navigation/edit/test/overlay-template-part-selector.js +1 -0
  275. package/src/navigation-link/edit.js +2 -5
  276. package/src/navigation-link/link-ui/dialog-wrapper.js +2 -1
  277. package/src/navigation-link/link-ui/index.js +1 -1
  278. package/src/paragraph/use-enter.js +18 -24
  279. package/src/post-author/edit.js +3 -5
  280. package/src/post-comments-form/edit.js +1 -1
  281. package/src/post-featured-image/edit.js +2 -9
  282. package/src/post-template/edit.js +7 -1
  283. package/src/post-template/index.php +3 -0
  284. package/src/post-template/style.scss +2 -2
  285. package/src/pullquote/block.json +1 -4
  286. package/src/query/edit/inspector-controls/author-control.js +1 -1
  287. package/src/query/edit/inspector-controls/format-controls.js +1 -1
  288. package/src/query/edit/inspector-controls/parent-control.js +1 -1
  289. package/src/query/edit/inspector-controls/taxonomy-controls.js +1 -1
  290. package/src/site-logo/edit.js +40 -20
  291. package/src/style.scss +1 -1
  292. package/src/tab/block.json +23 -23
  293. package/src/tab/controls.js +6 -52
  294. package/src/tab/edit.js +94 -123
  295. package/src/{tabs-menu-item → tab}/editor.scss +3 -3
  296. package/src/tab/index.php +32 -51
  297. package/src/tab/save.js +4 -4
  298. package/src/tab/style.scss +34 -17
  299. package/{build/tabs-menu → src/tab-list}/block.json +4 -4
  300. package/src/{tabs-menu → tab-list}/edit.js +9 -18
  301. package/src/{tabs-menu → tab-list}/editor.scss +2 -2
  302. package/src/{tabs-menu → tab-list}/index.js +1 -1
  303. package/src/tab-list/index.php +80 -0
  304. package/src/{tab → tab-panel}/add-tab-toolbar-control.js +19 -19
  305. package/src/tab-panel/block.json +27 -37
  306. package/src/tab-panel/controls.js +65 -0
  307. package/src/tab-panel/edit.js +121 -20
  308. package/src/tab-panel/index.js +1 -1
  309. package/src/tab-panel/index.php +88 -0
  310. package/src/{tab → tab-panel}/remove-tab-toolbar-control.js +20 -19
  311. package/src/tab-panel/save.js +4 -2
  312. package/src/tab-panel/style.scss +20 -1
  313. package/src/tab-panels/block.json +66 -0
  314. package/src/tab-panels/edit.js +42 -0
  315. package/src/{tabs-menu-item → tab-panels}/index.js +1 -1
  316. package/src/tab-panels/save.js +11 -0
  317. package/src/tab-panels/style.scss +4 -0
  318. package/src/tabs/block.json +1 -2
  319. package/src/tabs/controls.js +2 -2
  320. package/src/tabs/edit.js +32 -150
  321. package/src/tabs/index.js +5 -5
  322. package/src/tabs/index.php +5 -5
  323. package/src/tabs/style.scss +0 -3
  324. package/src/tabs/use-tab-list-sync.js +237 -0
  325. package/src/terms-query/edit/inspector-controls/include-control.js +1 -1
  326. package/src/video/editor.scss +5 -0
  327. package/src/video/tracks-editor.js +2 -2
  328. package/build/tab/add-tab-toolbar-control.cjs.map +0 -7
  329. package/build/tab/remove-tab-toolbar-control.cjs.map +0 -7
  330. package/build/tab/slug-from-label.cjs +0 -37
  331. package/build/tab/slug-from-label.cjs.map +0 -7
  332. package/build/tabs-menu/edit.cjs.map +0 -7
  333. package/build/tabs-menu-item/block.json +0 -59
  334. package/build/tabs-menu-item/controls.cjs.map +0 -7
  335. package/build/tabs-menu-item/edit.cjs +0 -144
  336. package/build/tabs-menu-item/edit.cjs.map +0 -7
  337. package/build/tabs-menu-item/index.cjs.map +0 -7
  338. package/build/tabs-menu-item/save.cjs.map +0 -7
  339. package/build-module/tab/add-tab-toolbar-control.mjs.map +0 -7
  340. package/build-module/tab/remove-tab-toolbar-control.mjs.map +0 -7
  341. package/build-module/tab/slug-from-label.mjs +0 -16
  342. package/build-module/tab/slug-from-label.mjs.map +0 -7
  343. package/build-module/tabs-menu/edit.mjs.map +0 -7
  344. package/build-module/tabs-menu-item/block.json +0 -59
  345. package/build-module/tabs-menu-item/controls.mjs +0 -15
  346. package/build-module/tabs-menu-item/controls.mjs.map +0 -7
  347. package/build-module/tabs-menu-item/edit.mjs +0 -117
  348. package/build-module/tabs-menu-item/edit.mjs.map +0 -7
  349. package/build-module/tabs-menu-item/index.mjs.map +0 -7
  350. package/build-module/tabs-menu-item/save.mjs +0 -14
  351. package/build-module/tabs-menu-item/save.mjs.map +0 -7
  352. package/build-style/tabs-menu/editor-rtl.css +0 -6
  353. package/build-style/tabs-menu/editor.css +0 -6
  354. package/build-style/tabs-menu-item/editor-rtl.css +0 -11
  355. package/build-style/tabs-menu-item/editor.css +0 -11
  356. package/build-style/tabs-menu-item/style-rtl.css +0 -33
  357. package/build-style/tabs-menu-item/style.css +0 -33
  358. package/src/tab/slug-from-label.js +0 -26
  359. package/src/tabs-menu/index.php +0 -80
  360. package/src/tabs-menu-item/block.json +0 -59
  361. package/src/tabs-menu-item/controls.js +0 -19
  362. package/src/tabs-menu-item/edit.js +0 -150
  363. package/src/tabs-menu-item/index.php +0 -70
  364. package/src/tabs-menu-item/save.js +0 -13
  365. package/src/tabs-menu-item/style.scss +0 -40
  366. /package/src/{tabs-menu → tab-list}/save.js +0 -0
  367. /package/src/{tab → tab-panel}/init.js +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/tab/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 { BlockControls } from '@wordpress/block-editor';\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\nexport default function Controls( { tabsClientId } ) {\n\treturn (\n\t\t<BlockControls>\n\t\t\t<AddTabToolbarControl tabsClientId={ tabsClientId } />\n\t\t\t<RemoveTabToolbarControl tabsClientId={ tabsClientId } />\n\t\t</BlockControls>\n\t);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAA8B;AAK9B,qCAAiC;AACjC,wCAAoC;AAIlC;AAFa,SAAR,SAA2B,EAAE,aAAa,GAAI;AACpD,SACC,6CAAC,qCACA;AAAA,gDAAC,+BAAAA,SAAA,EAAqB,cAA8B;AAAA,IACpD,4CAAC,kCAAAC,SAAA,EAAwB,cAA8B;AAAA,KACxD;AAEF;",
6
+ "names": ["AddTabToolbarControl", "RemoveTabToolbarControl"]
7
7
  }
@@ -30,7 +30,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // packages/block-library/src/tab/edit.js
31
31
  var edit_exports = {};
32
32
  __export(edit_exports, {
33
- default: () => Edit
33
+ default: () => edit_default
34
34
  });
35
35
  module.exports = __toCommonJS(edit_exports);
36
36
  var import_clsx = __toESM(require("clsx"));
@@ -39,113 +39,97 @@ 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
41
  var import_controls = __toESM(require("./controls.cjs"));
42
- var import_slug_from_label = __toESM(require("./slug-from-label.cjs"));
43
42
  var import_jsx_runtime = require("react/jsx-runtime");
44
- var TEMPLATE = [
45
- [
46
- "core/paragraph",
47
- {
48
- placeholder: (0, import_i18n.__)("Type / to choose a block")
49
- }
50
- ]
51
- ];
52
- var { cancelAnimationFrame } = window;
53
- function Edit({
54
- attributes,
55
- clientId,
56
- context,
57
- isSelected,
58
- __unstableLayoutClassNames: layoutClassNames
59
- }) {
60
- const focusRef = (0, import_element.useRef)();
61
- const { anchor, label } = attributes;
62
- const activeTabIndex = context["core/tabs-activeTabIndex"] ?? 0;
43
+ var EMPTY_ARRAY = [];
44
+ function Edit({ context, clientId }) {
45
+ const tabsList = context["core/tabs-list"] || EMPTY_ARRAY;
46
+ const activeTabIndex = context["core/tabs-activeTabIndex"];
63
47
  const editorActiveTabIndex = context["core/tabs-editorActiveTabIndex"];
64
- const effectiveActiveIndex = editorActiveTabIndex ?? activeTabIndex;
65
- (0, import_element.useEffect)(() => {
66
- return () => {
67
- if (focusRef.current) {
68
- cancelAnimationFrame(focusRef.current);
69
- }
70
- };
71
- }, []);
72
- const { blockIndex, hasInnerBlocksSelected, tabsClientId } = (0, import_data.useSelect)(
48
+ const effectiveActiveIndex = (0, import_element.useMemo)(() => {
49
+ return editorActiveTabIndex ?? activeTabIndex;
50
+ }, [editorActiveTabIndex, activeTabIndex]);
51
+ const { tabIndex, tabsClientId, selectedTabClientId } = (0, import_data.useSelect)(
73
52
  (select) => {
74
53
  const {
54
+ getBlockOrder,
75
55
  getBlockRootClientId,
76
- getBlockIndex,
56
+ getSelectedBlockClientIds,
77
57
  hasSelectedInnerBlock
78
58
  } = select(import_block_editor.store);
79
- const tabPanelClientId = getBlockRootClientId(clientId);
80
- const _tabsClientId = getBlockRootClientId(tabPanelClientId);
81
- const _blockIndex = getBlockIndex(clientId);
82
- const _hasInnerBlocksSelected = hasSelectedInnerBlock(
83
- clientId,
84
- true
85
- );
59
+ const _tabsListClientId = getBlockRootClientId(clientId);
60
+ const _tabsClientId = _tabsListClientId ? getBlockRootClientId(_tabsListClientId) : null;
61
+ const siblings = getBlockOrder(_tabsListClientId);
62
+ const _tabIndex = siblings.indexOf(clientId);
63
+ const selectedIds = getSelectedBlockClientIds();
64
+ let _selectedTabClientId = null;
65
+ for (const tab2 of tabsList) {
66
+ if (selectedIds.includes(tab2.clientId) || hasSelectedInnerBlock(tab2.clientId, true)) {
67
+ _selectedTabClientId = tab2.clientId;
68
+ break;
69
+ }
70
+ }
86
71
  return {
87
- blockIndex: _blockIndex,
88
- hasInnerBlocksSelected: _hasInnerBlocksSelected,
89
- tabsClientId: _tabsClientId
72
+ tabIndex: _tabIndex,
73
+ tabsClientId: _tabsClientId,
74
+ selectedTabClientId: _selectedTabClientId
90
75
  };
91
76
  },
92
- [clientId]
77
+ [clientId, tabsList]
78
+ );
79
+ const tab = tabsList[tabIndex] || {};
80
+ const tabListIndex = tab.index ?? tabIndex;
81
+ const tabClientId = tab.clientId || "";
82
+ const label = tab.label || "";
83
+ const isActive = tabListIndex === effectiveActiveIndex;
84
+ const isSelected = tabClientId === selectedTabClientId;
85
+ const { __unstableMarkNextChangeAsNotPersistent, updateBlockAttributes } = (0, import_data.useDispatch)(import_block_editor.store);
86
+ const handleTabClick = (0, import_element.useCallback)(
87
+ (event) => {
88
+ event.preventDefault();
89
+ if (tabsClientId && tabListIndex !== effectiveActiveIndex) {
90
+ __unstableMarkNextChangeAsNotPersistent();
91
+ updateBlockAttributes(tabsClientId, {
92
+ editorActiveTabIndex: tabListIndex
93
+ });
94
+ }
95
+ },
96
+ [
97
+ tabsClientId,
98
+ tabListIndex,
99
+ effectiveActiveIndex,
100
+ updateBlockAttributes,
101
+ __unstableMarkNextChangeAsNotPersistent
102
+ ]
93
103
  );
94
- const { updateBlockAttributes, __unstableMarkNextChangeAsNotPersistent } = (0, import_data.useDispatch)(import_block_editor.store);
95
- (0, import_element.useEffect)(() => {
96
- const isTabSelected = isSelected || hasInnerBlocksSelected;
97
- if (isTabSelected && tabsClientId && effectiveActiveIndex !== blockIndex) {
98
- __unstableMarkNextChangeAsNotPersistent();
99
- updateBlockAttributes(tabsClientId, {
100
- editorActiveTabIndex: blockIndex
101
- });
102
- }
103
- }, [
104
- isSelected,
105
- hasInnerBlocksSelected,
106
- tabsClientId,
107
- effectiveActiveIndex,
108
- blockIndex,
109
- updateBlockAttributes,
110
- __unstableMarkNextChangeAsNotPersistent
111
- ]);
112
- const isActiveTab = effectiveActiveIndex === blockIndex;
113
- const isDefaultTab = activeTabIndex === blockIndex;
114
- const isSelectedTab = (0, import_element.useMemo)(() => {
115
- if (isSelected || hasInnerBlocksSelected) {
116
- return true;
117
- }
118
- if (isActiveTab) {
119
- return true;
120
- }
121
- return false;
122
- }, [isSelected, hasInnerBlocksSelected, isActiveTab]);
123
- const tabPanelId = (0, import_element.useMemo)(
124
- () => anchor || (0, import_slug_from_label.default)(label, blockIndex),
125
- [anchor, label, blockIndex]
104
+ const handleLabelChange = (0, import_element.useCallback)(
105
+ (newLabel) => {
106
+ if (tabClientId) {
107
+ updateBlockAttributes(tabClientId, { label: newLabel });
108
+ }
109
+ },
110
+ [tabClientId, updateBlockAttributes]
126
111
  );
127
- const tabLabelId = (0, import_element.useMemo)(() => `${tabPanelId}--tab`, [tabPanelId]);
128
112
  const blockProps = (0, import_block_editor.useBlockProps)({
129
- hidden: !isSelectedTab,
130
- "aria-labelledby": tabLabelId,
131
- id: tabPanelId,
132
- role: "tabpanel",
133
- tabIndex: isSelectedTab ? 0 : -1,
134
- className: (0, import_clsx.default)("wp-block-tab__editor-content", layoutClassNames)
135
- });
136
- const innerBlocksProps = (0, import_block_editor.useInnerBlocksProps)(blockProps, {
137
- template: TEMPLATE
113
+ className: (0, import_clsx.default)({
114
+ "is-active": isActive,
115
+ "is-selected": isSelected
116
+ }),
117
+ tabIndex: -1,
118
+ onClick: handleTabClick
138
119
  });
139
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("section", { ...innerBlocksProps, children: [
140
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
141
- import_controls.default,
120
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
121
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_controls.default, { tabsClientId }),
122
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { ...blockProps, type: "button", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
123
+ import_block_editor.RichText,
142
124
  {
143
- tabsClientId,
144
- blockIndex,
145
- isDefaultTab
125
+ tagName: "span",
126
+ withoutInteractiveFormatting: true,
127
+ placeholder: (0, import_i18n.__)("Tab title"),
128
+ value: label,
129
+ onChange: handleLabelChange
146
130
  }
147
- ),
148
- isSelectedTab && innerBlocksProps.children
131
+ ) })
149
132
  ] });
150
133
  }
134
+ var edit_default = Edit;
151
135
  //# sourceMappingURL=edit.cjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/tab/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\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo, useRef, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Controls from './controls';\nimport slugFromLabel from './slug-from-label';\n\nconst TEMPLATE = [\n\t[\n\t\t'core/paragraph',\n\t\t{\n\t\t\tplaceholder: __( 'Type / to choose a block' ),\n\t\t},\n\t],\n];\n\nconst { cancelAnimationFrame } = window;\n\nexport default function Edit( {\n\tattributes,\n\tclientId,\n\tcontext,\n\tisSelected,\n\t__unstableLayoutClassNames: layoutClassNames,\n} ) {\n\tconst focusRef = useRef();\n\n\tconst { anchor, label } = attributes;\n\n\t// Consume tab indices from context\n\tconst activeTabIndex = context[ 'core/tabs-activeTabIndex' ] ?? 0;\n\tconst editorActiveTabIndex = context[ 'core/tabs-editorActiveTabIndex' ];\n\tconst effectiveActiveIndex = editorActiveTabIndex ?? activeTabIndex;\n\n\t// Clean up animation frames on unmount.\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tif ( focusRef.current ) {\n\t\t\t\tcancelAnimationFrame( focusRef.current );\n\t\t\t}\n\t\t};\n\t}, [] );\n\n\tconst { blockIndex, hasInnerBlocksSelected, tabsClientId } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockIndex,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\t// Get the tab-panel parent first\n\t\t\tconst tabPanelClientId = getBlockRootClientId( clientId );\n\t\t\t// Then get the tabs parent\n\t\t\tconst _tabsClientId = getBlockRootClientId( tabPanelClientId );\n\n\t\t\t// Get data about this instance of core/tab.\n\t\t\tconst _blockIndex = getBlockIndex( clientId );\n\t\t\tconst _hasInnerBlocksSelected = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\ttrue\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tblockIndex: _blockIndex,\n\t\t\t\thasInnerBlocksSelected: _hasInnerBlocksSelected,\n\t\t\t\ttabsClientId: _tabsClientId,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { updateBlockAttributes, __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\t// Sync editorActiveTabIndex when this tab is selected directly\n\tuseEffect( () => {\n\t\t// Only update if this tab is selected and not already the active index\n\t\tconst isTabSelected = isSelected || hasInnerBlocksSelected;\n\t\tif (\n\t\t\tisTabSelected &&\n\t\t\ttabsClientId &&\n\t\t\teffectiveActiveIndex !== blockIndex\n\t\t) {\n\t\t\t// Mark as non-persistent so it doesn't add to undo history\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes( tabsClientId, {\n\t\t\t\teditorActiveTabIndex: blockIndex,\n\t\t\t} );\n\t\t}\n\t}, [\n\t\tisSelected,\n\t\thasInnerBlocksSelected,\n\t\ttabsClientId,\n\t\teffectiveActiveIndex,\n\t\tblockIndex,\n\t\tupdateBlockAttributes,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t] );\n\n\t// Determine if this is the currently active tab (for editor visibility)\n\tconst isActiveTab = effectiveActiveIndex === blockIndex;\n\n\t// Determine if this is the default tab (for the \"Default Tab\" toggle in controls)\n\tconst isDefaultTab = activeTabIndex === blockIndex;\n\n\t/**\n\t * This hook determines if the current tab panel should be visible.\n\t * This is true if it is the editor active tab, or if it is selected directly.\n\t */\n\tconst isSelectedTab = useMemo( () => {\n\t\t// Show if this tab is directly selected or has selected inner blocks\n\t\tif ( isSelected || hasInnerBlocksSelected ) {\n\t\t\treturn true;\n\t\t}\n\t\t// Always show the active tab (at effectiveActiveIndex) regardless of other selection state.\n\t\t// This ensures the tab panel remains visible when editing labels in tabs-menu.\n\t\tif ( isActiveTab ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}, [ isSelected, hasInnerBlocksSelected, isActiveTab ] );\n\n\t// Use a custom anchor, if set. Otherwise fall back to the slug generated from the label text.\n\tconst tabPanelId = useMemo(\n\t\t() => anchor || slugFromLabel( label, blockIndex ),\n\t\t[ anchor, label, blockIndex ]\n\t);\n\tconst tabLabelId = useMemo( () => `${ tabPanelId }--tab`, [ tabPanelId ] );\n\n\tconst blockProps = useBlockProps( {\n\t\thidden: ! isSelectedTab,\n\t\t'aria-labelledby': tabLabelId,\n\t\tid: tabPanelId,\n\t\trole: 'tabpanel',\n\t\ttabIndex: isSelectedTab ? 0 : -1,\n\t\tclassName: clsx( 'wp-block-tab__editor-content', layoutClassNames ),\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TEMPLATE,\n\t} );\n\n\treturn (\n\t\t<section { ...innerBlocksProps }>\n\t\t\t<Controls\n\t\t\t\ttabsClientId={ tabsClientId }\n\t\t\t\tblockIndex={ blockIndex }\n\t\t\t\tisDefaultTab={ isDefaultTab }\n\t\t\t/>\n\t\t\t{ isSelectedTab && innerBlocksProps.children }\n\t\t</section>\n\t);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAiB;AAKjB,kBAAmB;AACnB,0BAIO;AACP,kBAAuC;AACvC,qBAA2C;AAK3C,sBAAqB;AACrB,6BAA0B;AA2IxB;AAzIF,IAAM,WAAW;AAAA,EAChB;AAAA,IACC;AAAA,IACA;AAAA,MACC,iBAAa,gBAAI,0BAA2B;AAAA,IAC7C;AAAA,EACD;AACD;AAEA,IAAM,EAAE,qBAAqB,IAAI;AAElB,SAAR,KAAuB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,4BAA4B;AAC7B,GAAI;AACH,QAAM,eAAW,uBAAO;AAExB,QAAM,EAAE,QAAQ,MAAM,IAAI;AAG1B,QAAM,iBAAiB,QAAS,0BAA2B,KAAK;AAChE,QAAM,uBAAuB,QAAS,gCAAiC;AACvE,QAAM,uBAAuB,wBAAwB;AAGrD,gCAAW,MAAM;AAChB,WAAO,MAAM;AACZ,UAAK,SAAS,SAAU;AACvB,6BAAsB,SAAS,OAAQ;AAAA,MACxC;AAAA,IACD;AAAA,EACD,GAAG,CAAC,CAAE;AAEN,QAAM,EAAE,YAAY,wBAAwB,aAAa,QAAI;AAAA,IAC5D,CAAE,WAAY;AACb,YAAM;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,MACD,IAAI,OAAQ,oBAAAA,KAAiB;AAG7B,YAAM,mBAAmB,qBAAsB,QAAS;AAExD,YAAM,gBAAgB,qBAAsB,gBAAiB;AAG7D,YAAM,cAAc,cAAe,QAAS;AAC5C,YAAM,0BAA0B;AAAA,QAC/B;AAAA,QACA;AAAA,MACD;AAEA,aAAO;AAAA,QACN,YAAY;AAAA,QACZ,wBAAwB;AAAA,QACxB,cAAc;AAAA,MACf;AAAA,IACD;AAAA,IACA,CAAE,QAAS;AAAA,EACZ;AAEA,QAAM,EAAE,uBAAuB,wCAAwC,QACtE,yBAAa,oBAAAA,KAAiB;AAG/B,gCAAW,MAAM;AAEhB,UAAM,gBAAgB,cAAc;AACpC,QACC,iBACA,gBACA,yBAAyB,YACxB;AAED,8CAAwC;AACxC,4BAAuB,cAAc;AAAA,QACpC,sBAAsB;AAAA,MACvB,CAAE;AAAA,IACH;AAAA,EACD,GAAG;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAE;AAGF,QAAM,cAAc,yBAAyB;AAG7C,QAAM,eAAe,mBAAmB;AAMxC,QAAM,oBAAgB,wBAAS,MAAM;AAEpC,QAAK,cAAc,wBAAyB;AAC3C,aAAO;AAAA,IACR;AAGA,QAAK,aAAc;AAClB,aAAO;AAAA,IACR;AACA,WAAO;AAAA,EACR,GAAG,CAAE,YAAY,wBAAwB,WAAY,CAAE;AAGvD,QAAM,iBAAa;AAAA,IAClB,MAAM,cAAU,uBAAAC,SAAe,OAAO,UAAW;AAAA,IACjD,CAAE,QAAQ,OAAO,UAAW;AAAA,EAC7B;AACA,QAAM,iBAAa,wBAAS,MAAM,GAAI,UAAW,SAAS,CAAE,UAAW,CAAE;AAEzE,QAAM,iBAAa,mCAAe;AAAA,IACjC,QAAQ,CAAE;AAAA,IACV,mBAAmB;AAAA,IACnB,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU,gBAAgB,IAAI;AAAA,IAC9B,eAAW,YAAAC,SAAM,gCAAgC,gBAAiB;AAAA,EACnE,CAAE;AAEF,QAAM,uBAAmB,yCAAqB,YAAY;AAAA,IACzD,UAAU;AAAA,EACX,CAAE;AAEF,SACC,6CAAC,aAAU,GAAG,kBACb;AAAA;AAAA,MAAC,gBAAAC;AAAA,MAAA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACD;AAAA,IACE,iBAAiB,iBAAiB;AAAA,KACrC;AAEF;",
6
- "names": ["blockEditorStore", "slugFromLabel", "clsx", "Controls"]
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} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Controls from './controls';\n\nconst EMPTY_ARRAY = [];\n\nfunction Edit( { context, clientId } ) {\n\tconst tabsList = context[ 'core/tabs-list' ] || EMPTY_ARRAY;\n\tconst activeTabIndex = context[ 'core/tabs-activeTabIndex' ];\n\tconst editorActiveTabIndex = context[ 'core/tabs-editorActiveTabIndex' ];\n\n\tconst effectiveActiveIndex = useMemo( () => {\n\t\treturn editorActiveTabIndex ?? activeTabIndex;\n\t}, [ editorActiveTabIndex, activeTabIndex ] );\n\n\tconst { tabIndex, tabsClientId, selectedTabClientId } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst _tabsListClientId = getBlockRootClientId( clientId );\n\t\t\tconst _tabsClientId = _tabsListClientId\n\t\t\t\t? getBlockRootClientId( _tabsListClientId )\n\t\t\t\t: null;\n\n\t\t\tconst siblings = getBlockOrder( _tabsListClientId );\n\t\t\tconst _tabIndex = siblings.indexOf( clientId );\n\n\t\t\t// Find which tab panel block is currently selected.\n\t\t\tconst selectedIds = getSelectedBlockClientIds();\n\t\t\tlet _selectedTabClientId = null;\n\t\t\tfor ( const tab of tabsList ) {\n\t\t\t\tif (\n\t\t\t\t\tselectedIds.includes( tab.clientId ) ||\n\t\t\t\t\thasSelectedInnerBlock( tab.clientId, true )\n\t\t\t\t) {\n\t\t\t\t\t_selectedTabClientId = tab.clientId;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttabIndex: _tabIndex,\n\t\t\t\ttabsClientId: _tabsClientId,\n\t\t\t\tselectedTabClientId: _selectedTabClientId,\n\t\t\t};\n\t\t},\n\t\t[ clientId, tabsList ]\n\t);\n\n\tconst tab = tabsList[ tabIndex ] || {};\n\n\t// tabListIndex is the tab's position in tabsList, used for active-state\n\t// checks and click handling.\n\tconst tabListIndex = tab.index ?? tabIndex;\n\n\tconst tabClientId = tab.clientId || '';\n\tconst label = tab.label || '';\n\n\tconst isActive = tabListIndex === effectiveActiveIndex;\n\tconst isSelected = tabClientId === selectedTabClientId;\n\n\tconst { __unstableMarkNextChangeAsNotPersistent, updateBlockAttributes } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst handleTabClick = useCallback(\n\t\t( event ) => {\n\t\t\tevent.preventDefault();\n\t\t\tif ( tabsClientId && tabListIndex !== effectiveActiveIndex ) {\n\t\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\t\tupdateBlockAttributes( tabsClientId, {\n\t\t\t\t\teditorActiveTabIndex: tabListIndex,\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\ttabsClientId,\n\t\t\ttabListIndex,\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( newLabel ) => {\n\t\t\tif ( tabClientId ) {\n\t\t\t\tupdateBlockAttributes( tabClientId, { label: newLabel } );\n\t\t\t}\n\t\t},\n\t\t[ tabClientId, updateBlockAttributes ]\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t'is-active': isActive,\n\t\t\t'is-selected': isSelected,\n\t\t} ),\n\t\ttabIndex: -1,\n\t\tonClick: handleTabClick,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<Controls tabsClientId={ tabsClientId } />\n\t\t\t<button { ...blockProps } type=\"button\">\n\t\t\t\t<RichText\n\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\tplaceholder={ __( 'Tab title' ) }\n\t\t\t\t\tvalue={ label }\n\t\t\t\t\tonChange={ handleLabelChange }\n\t\t\t\t/>\n\t\t\t</button>\n\t\t</>\n\t);\n}\n\nexport default Edit;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAiB;AAKjB,kBAAmB;AACnB,0BAIO;AACP,kBAAuC;AACvC,qBAAqC;AAKrC,sBAAqB;AAyGnB;AAvGF,IAAM,cAAc,CAAC;AAErB,SAAS,KAAM,EAAE,SAAS,SAAS,GAAI;AACtC,QAAM,WAAW,QAAS,gBAAiB,KAAK;AAChD,QAAM,iBAAiB,QAAS,0BAA2B;AAC3D,QAAM,uBAAuB,QAAS,gCAAiC;AAEvE,QAAM,2BAAuB,wBAAS,MAAM;AAC3C,WAAO,wBAAwB;AAAA,EAChC,GAAG,CAAE,sBAAsB,cAAe,CAAE;AAE5C,QAAM,EAAE,UAAU,cAAc,oBAAoB,QAAI;AAAA,IACvD,CAAE,WAAY;AACb,YAAM;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD,IAAI,OAAQ,oBAAAA,KAAiB;AAE7B,YAAM,oBAAoB,qBAAsB,QAAS;AACzD,YAAM,gBAAgB,oBACnB,qBAAsB,iBAAkB,IACxC;AAEH,YAAM,WAAW,cAAe,iBAAkB;AAClD,YAAM,YAAY,SAAS,QAAS,QAAS;AAG7C,YAAM,cAAc,0BAA0B;AAC9C,UAAI,uBAAuB;AAC3B,iBAAYC,QAAO,UAAW;AAC7B,YACC,YAAY,SAAUA,KAAI,QAAS,KACnC,sBAAuBA,KAAI,UAAU,IAAK,GACzC;AACD,iCAAuBA,KAAI;AAC3B;AAAA,QACD;AAAA,MACD;AAEA,aAAO;AAAA,QACN,UAAU;AAAA,QACV,cAAc;AAAA,QACd,qBAAqB;AAAA,MACtB;AAAA,IACD;AAAA,IACA,CAAE,UAAU,QAAS;AAAA,EACtB;AAEA,QAAM,MAAM,SAAU,QAAS,KAAK,CAAC;AAIrC,QAAM,eAAe,IAAI,SAAS;AAElC,QAAM,cAAc,IAAI,YAAY;AACpC,QAAM,QAAQ,IAAI,SAAS;AAE3B,QAAM,WAAW,iBAAiB;AAClC,QAAM,aAAa,gBAAgB;AAEnC,QAAM,EAAE,yCAAyC,sBAAsB,QACtE,yBAAa,oBAAAD,KAAiB;AAE/B,QAAM,qBAAiB;AAAA,IACtB,CAAE,UAAW;AACZ,YAAM,eAAe;AACrB,UAAK,gBAAgB,iBAAiB,sBAAuB;AAC5D,gDAAwC;AACxC,8BAAuB,cAAc;AAAA,UACpC,sBAAsB;AAAA,QACvB,CAAE;AAAA,MACH;AAAA,IACD;AAAA,IACA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAEA,QAAM,wBAAoB;AAAA,IACzB,CAAE,aAAc;AACf,UAAK,aAAc;AAClB,8BAAuB,aAAa,EAAE,OAAO,SAAS,CAAE;AAAA,MACzD;AAAA,IACD;AAAA,IACA,CAAE,aAAa,qBAAsB;AAAA,EACtC;AAEA,QAAM,iBAAa,mCAAe;AAAA,IACjC,eAAW,YAAAE,SAAM;AAAA,MAChB,aAAa;AAAA,MACb,eAAe;AAAA,IAChB,CAAE;AAAA,IACF,UAAU;AAAA,IACV,SAAS;AAAA,EACV,CAAE;AAEF,SACC,4EACC;AAAA,gDAAC,gBAAAC,SAAA,EAAS,cAA8B;AAAA,IACxC,4CAAC,YAAS,GAAG,YAAa,MAAK,UAC9B;AAAA,MAAC;AAAA;AAAA,QACA,SAAQ;AAAA,QACR,8BAA4B;AAAA,QAC5B,iBAAc,gBAAI,WAAY;AAAA,QAC9B,OAAQ;AAAA,QACR,UAAW;AAAA;AAAA,IACZ,GACD;AAAA,KACD;AAEF;AAEA,IAAO,eAAQ;",
6
+ "names": ["blockEditorStore", "tab", "clsx", "Controls"]
7
7
  }
@@ -27,9 +27,9 @@ var import_block_editor = require("@wordpress/block-editor");
27
27
  var import_jsx_runtime = require("react/jsx-runtime");
28
28
  function save() {
29
29
  const blockProps = import_block_editor.useBlockProps.save({
30
- role: "tabpanel"
30
+ type: "button",
31
+ role: "tab"
31
32
  });
32
- const innerBlocksProps = import_block_editor.useInnerBlocksProps.save(blockProps);
33
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("section", { ...innerBlocksProps });
33
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { ...blockProps });
34
34
  }
35
35
  //# sourceMappingURL=save.cjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/tab/save.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';\n\nexport default function save() {\n\tconst blockProps = useBlockProps.save( {\n\t\trole: 'tabpanel',\n\t} );\n\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\n\treturn <section { ...innerBlocksProps } />;\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAAmD;AAQ3C;AANO,SAAR,OAAwB;AAC9B,QAAM,aAAa,kCAAc,KAAM;AAAA,IACtC,MAAM;AAAA,EACP,CAAE;AACF,QAAM,mBAAmB,wCAAoB,KAAM,UAAW;AAE9D,SAAO,4CAAC,aAAU,GAAG,kBAAmB;AACzC;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useBlockProps } from '@wordpress/block-editor';\n\nexport default function save() {\n\tconst blockProps = useBlockProps.save( {\n\t\ttype: 'button',\n\t\trole: 'tab',\n\t} );\n\n\treturn <button { ...blockProps } />;\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAA8B;AAQtB;AANO,SAAR,OAAwB;AAC9B,QAAM,aAAa,kCAAc,KAAM;AAAA,IACtC,MAAM;AAAA,IACN,MAAM;AAAA,EACP,CAAE;AAEF,SAAO,4CAAC,YAAS,GAAG,YAAa;AAClC;",
6
6
  "names": []
7
7
  }
@@ -2,19 +2,19 @@
2
2
  "$schema": "https://schemas.wp.org/trunk/block.json",
3
3
  "__experimental": true,
4
4
  "apiVersion": 3,
5
- "name": "core/tabs-menu",
6
- "title": "Tabs Menu",
5
+ "name": "core/tab-list",
6
+ "title": "Tab List",
7
7
  "description": "Display the tab buttons for a tabbed interface.",
8
- "version": "1.0.0",
9
8
  "category": "design",
10
9
  "textdomain": "default",
11
10
  "parent": [ "core/tabs" ],
12
- "allowedBlocks": [ "core/tabs-menu-item" ],
11
+ "allowedBlocks": [ "core/tab" ],
13
12
  "usesContext": [ "core/tabs-list" ],
14
13
  "attributes": {},
15
14
  "supports": {
16
15
  "html": false,
17
16
  "reusable": false,
17
+ "visibility": false,
18
18
  "lock": false,
19
19
  "dimensions": {
20
20
  "aspectRatio": false,
@@ -27,32 +27,27 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
 
30
- // packages/block-library/src/tabs-menu/edit.js
30
+ // packages/block-library/src/tab-list/edit.js
31
31
  var edit_exports = {};
32
32
  __export(edit_exports, {
33
33
  default: () => edit_default
34
34
  });
35
35
  module.exports = __toCommonJS(edit_exports);
36
- var import_clsx = __toESM(require("clsx"));
37
36
  var import_block_editor = require("@wordpress/block-editor");
38
37
  var import_data = require("@wordpress/data");
39
- var import_add_tab_toolbar_control = __toESM(require("../tab/add-tab-toolbar-control.cjs"));
40
- var import_remove_tab_toolbar_control = __toESM(require("../tab/remove-tab-toolbar-control.cjs"));
38
+ var import_add_tab_toolbar_control = __toESM(require("../tab-panel/add-tab-toolbar-control.cjs"));
39
+ var import_remove_tab_toolbar_control = __toESM(require("../tab-panel/remove-tab-toolbar-control.cjs"));
41
40
  var import_jsx_runtime = require("react/jsx-runtime");
42
- function Edit({ clientId, __unstableLayoutClassNames: layoutClassNames }) {
43
- const { tabsClientId } = (0, import_data.useSelect)(
44
- (select) => ({
45
- tabsClientId: select(import_block_editor.store).getBlockRootClientId(clientId)
46
- }),
41
+ function Edit({ clientId }) {
42
+ const tabsClientId = (0, import_data.useSelect)(
43
+ (select) => select(import_block_editor.store).getBlockRootClientId(clientId),
47
44
  [clientId]
48
45
  );
49
- const blockProps = (0, import_block_editor.useBlockProps)({
50
- className: (0, import_clsx.default)(layoutClassNames),
51
- role: "tablist"
52
- });
46
+ const blockProps = (0, import_block_editor.useBlockProps)();
53
47
  const innerBlocksProps = (0, import_block_editor.useInnerBlocksProps)(blockProps, {
54
- allowedBlocks: ["core/tabs-menu-item"],
48
+ allowedBlocks: ["core/tab"],
55
49
  orientation: "horizontal",
50
+ templateLock: false,
56
51
  renderAppender: false
57
52
  });
58
53
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/tab-list/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';\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\nfunction Edit( { clientId } ) {\n\tconst tabsClientId = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlockRootClientId( clientId ),\n\t\t[ clientId ]\n\t);\n\n\tconst blockProps = useBlockProps();\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: [ 'core/tab' ],\n\t\torientation: 'horizontal',\n\t\ttemplateLock: false,\n\t\trenderAppender: false,\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\nexport default Edit;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAIO;AACP,kBAA0B;AAK1B,qCAAiC;AACjC,wCAAoC;AAmBlC;AAjBF,SAAS,KAAM,EAAE,SAAS,GAAI;AAC7B,QAAM,mBAAe;AAAA,IACpB,CAAE,WACD,OAAQ,oBAAAA,KAAiB,EAAE,qBAAsB,QAAS;AAAA,IAC3D,CAAE,QAAS;AAAA,EACZ;AAEA,QAAM,iBAAa,mCAAc;AAEjC,QAAM,uBAAmB,yCAAqB,YAAY;AAAA,IACzD,eAAe,CAAE,UAAW;AAAA,IAC5B,aAAa;AAAA,IACb,cAAc;AAAA,IACd,gBAAgB;AAAA,EACjB,CAAE;AAEF,SACC,4EACC;AAAA,gDAAC,+BAAAC,SAAA,EAAqB,cAA8B;AAAA,IACpD,4CAAC,kCAAAC,SAAA,EAAwB,cAA8B;AAAA,IACvD,4CAAC,SAAM,GAAG,kBAAmB;AAAA,KAC9B;AAEF;AAEA,IAAO,eAAQ;",
6
+ "names": ["blockEditorStore", "AddTabToolbarControl", "RemoveTabToolbarControl"]
7
+ }
@@ -27,15 +27,15 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
 
30
- // packages/block-library/src/tabs-menu/index.js
31
- var tabs_menu_exports = {};
32
- __export(tabs_menu_exports, {
30
+ // packages/block-library/src/tab-list/index.js
31
+ var tab_list_exports = {};
32
+ __export(tab_list_exports, {
33
33
  init: () => init,
34
34
  metadata: () => import_block.default,
35
35
  name: () => name,
36
36
  settings: () => settings
37
37
  });
38
- module.exports = __toCommonJS(tabs_menu_exports);
38
+ module.exports = __toCommonJS(tab_list_exports);
39
39
  var import_icons = require("@wordpress/icons");
40
40
  var import_init_block = __toESM(require("../utils/init-block.cjs"));
41
41
  var import_edit = __toESM(require("./edit.cjs"));
@@ -43,7 +43,7 @@ var import_save = __toESM(require("./save.cjs"));
43
43
  var import_block = __toESM(require("./block.json"));
44
44
  var { name } = import_block.default;
45
45
  var settings = {
46
- icon: import_icons.tabsMenu,
46
+ icon: import_icons.tabList,
47
47
  edit: import_edit.default,
48
48
  save: import_save.default
49
49
  };
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/tab-list/index.js"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { tabList as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport save from './save';\nimport metadata from './block.json';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA,+BAAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAGA,mBAAgC;AAKhC,wBAAsB;AACtB,kBAAiB;AACjB,kBAAiB;AACjB,mBAAqB;AAErB,IAAM,EAAE,KAAK,IAAI,aAAAA;AAIV,IAAM,WAAW;AAAA,EACvB,mBAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,kBAAAC;AACD;AAEO,IAAM,OAAO,UAAM,kBAAAC,SAAW,EAAE,MAAM,uBAAAC,SAAU,SAAS,CAAE;",
6
+ "names": ["metadata", "icon", "edit", "save", "initBlock", "metadata"]
7
+ }
@@ -17,7 +17,7 @@ var __copyProps = (to, from, except, desc) => {
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
 
20
- // packages/block-library/src/tabs-menu/save.js
20
+ // packages/block-library/src/tab-list/save.js
21
21
  var save_exports = {};
22
22
  __export(save_exports, {
23
23
  default: () => save
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/tabs-menu/save.js"],
3
+ "sources": ["../../src/tab-list/save.js"],
4
4
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';\n\nexport default function save() {\n\tconst blockProps = useBlockProps.save( {\n\t\trole: 'tablist',\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\n\treturn <div { ...innerBlocksProps } />;\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAAmD;AAS3C;AAPO,SAAR,OAAwB;AAC9B,QAAM,aAAa,kCAAc,KAAM;AAAA,IACtC,MAAM;AAAA,EACP,CAAE;AAEF,QAAM,mBAAmB,wCAAoB,KAAM,UAAW;AAE9D,SAAO,4CAAC,SAAM,GAAG,kBAAmB;AACrC;",
6
6
  "names": []
@@ -17,7 +17,7 @@ var __copyProps = (to, from, except, desc) => {
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
 
20
- // packages/block-library/src/tab/add-tab-toolbar-control.js
20
+ // packages/block-library/src/tab-panel/add-tab-toolbar-control.js
21
21
  var add_tab_toolbar_control_exports = {};
22
22
  __export(add_tab_toolbar_control_exports, {
23
23
  default: () => AddTabToolbarControl
@@ -31,40 +31,40 @@ var import_data = require("@wordpress/data");
31
31
  var import_jsx_runtime = require("react/jsx-runtime");
32
32
  function AddTabToolbarControl({ tabsClientId }) {
33
33
  const { insertBlock } = (0, import_data.useDispatch)(import_block_editor.store);
34
- const { tabPanelClientId, tabsMenuClientId } = (0, import_data.useSelect)(
34
+ const { tabPanelsClientId, tabsListClientId } = (0, import_data.useSelect)(
35
35
  (select) => {
36
36
  if (!tabsClientId) {
37
37
  return {
38
- tabPanelClientId: null,
39
- tabsMenuClientId: null
38
+ tabPanelsClientId: null,
39
+ tabsListClientId: null
40
40
  };
41
41
  }
42
42
  const { getBlocks } = select(import_block_editor.store);
43
43
  const innerBlocks = getBlocks(tabsClientId);
44
- const tabPanel = innerBlocks.find(
45
- (block) => block.name === "core/tab-panel"
44
+ const tabPanels = innerBlocks.find(
45
+ (block) => block.name === "core/tab-panels"
46
46
  );
47
- const tabsMenu = innerBlocks.find(
48
- (block) => block.name === "core/tabs-menu"
47
+ const tabList = innerBlocks.find(
48
+ (block) => block.name === "core/tab-list"
49
49
  );
50
50
  return {
51
- tabPanelClientId: tabPanel?.clientId || null,
52
- tabsMenuClientId: tabsMenu?.clientId || null
51
+ tabPanelsClientId: tabPanels?.clientId || null,
52
+ tabsListClientId: tabList?.clientId || null
53
53
  };
54
54
  },
55
55
  [tabsClientId]
56
56
  );
57
57
  const addTab = () => {
58
- if (!tabPanelClientId) {
58
+ if (!tabPanelsClientId) {
59
59
  return;
60
60
  }
61
- const newTabBlock = (0, import_blocks.createBlock)("core/tab", {
61
+ const newTabPanelBlock = (0, import_blocks.createBlock)("core/tab-panel", {
62
62
  label: (0, import_i18n.__)("Tab")
63
63
  });
64
- insertBlock(newTabBlock, void 0, tabPanelClientId);
65
- if (tabsMenuClientId) {
66
- const newMenuItemBlock = (0, import_blocks.createBlock)("core/tabs-menu-item", {});
67
- insertBlock(newMenuItemBlock, void 0, tabsMenuClientId);
64
+ insertBlock(newTabPanelBlock, void 0, tabPanelsClientId);
65
+ if (tabsListClientId) {
66
+ const newTabBlock = (0, import_blocks.createBlock)("core/tab", {});
67
+ insertBlock(newTabBlock, void 0, tabsListClientId);
68
68
  }
69
69
  };
70
70
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_block_editor.BlockControls, { group: "other", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.ToolbarGroup, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/tab-panel/add-tab-toolbar-control.js"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tBlockControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { ToolbarGroup, ToolbarButton } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * \"Add tab\" button in the block toolbar for the tabs block.\n * Inserts a new core/tab-panel into the tab-panels and a new core/tab\n * into the tab-list, keeping both in sync.\n *\n * @param {Object} props\n * @param {string} props.tabsClientId The client ID of the parent tabs block.\n * @return {React.JSX.Element} The toolbar control element.\n */\nexport default function AddTabToolbarControl( { tabsClientId } ) {\n\tconst { insertBlock } = useDispatch( blockEditorStore );\n\n\tconst { tabPanelsClientId, tabsListClientId } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! tabsClientId ) {\n\t\t\t\treturn {\n\t\t\t\t\ttabPanelsClientId: null,\n\t\t\t\t\ttabsListClientId: null,\n\t\t\t\t};\n\t\t\t}\n\t\t\tconst { getBlocks } = select( blockEditorStore );\n\t\t\tconst innerBlocks = getBlocks( tabsClientId );\n\t\t\tconst tabPanels = innerBlocks.find(\n\t\t\t\t( block ) => block.name === 'core/tab-panels'\n\t\t\t);\n\t\t\tconst tabList = innerBlocks.find(\n\t\t\t\t( block ) => block.name === 'core/tab-list'\n\t\t\t);\n\t\t\treturn {\n\t\t\t\ttabPanelsClientId: tabPanels?.clientId || null,\n\t\t\t\ttabsListClientId: tabList?.clientId || null,\n\t\t\t};\n\t\t},\n\t\t[ tabsClientId ]\n\t);\n\n\tconst addTab = () => {\n\t\tif ( ! tabPanelsClientId ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst newTabPanelBlock = createBlock( 'core/tab-panel', {\n\t\t\tlabel: __( 'Tab' ),\n\t\t} );\n\t\tinsertBlock( newTabPanelBlock, undefined, tabPanelsClientId );\n\n\t\t// Insert a corresponding tab into the tab-list.\n\t\tif ( tabsListClientId ) {\n\t\t\tconst newTabBlock = createBlock( 'core/tab', {} );\n\t\t\tinsertBlock( newTabBlock, undefined, tabsListClientId );\n\t\t}\n\t};\n\n\treturn (\n\t\t<BlockControls group=\"other\">\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\t\tonClick={ addTab }\n\t\t\t\t\ttext={ __( 'Add tab' ) }\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t</BlockControls>\n\t);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AACnB,oBAA4B;AAC5B,0BAGO;AACP,wBAA4C;AAC5C,kBAAuC;AA0DnC;AA/CW,SAAR,qBAAuC,EAAE,aAAa,GAAI;AAChE,QAAM,EAAE,YAAY,QAAI,yBAAa,oBAAAA,KAAiB;AAEtD,QAAM,EAAE,mBAAmB,iBAAiB,QAAI;AAAA,IAC/C,CAAE,WAAY;AACb,UAAK,CAAE,cAAe;AACrB,eAAO;AAAA,UACN,mBAAmB;AAAA,UACnB,kBAAkB;AAAA,QACnB;AAAA,MACD;AACA,YAAM,EAAE,UAAU,IAAI,OAAQ,oBAAAA,KAAiB;AAC/C,YAAM,cAAc,UAAW,YAAa;AAC5C,YAAM,YAAY,YAAY;AAAA,QAC7B,CAAE,UAAW,MAAM,SAAS;AAAA,MAC7B;AACA,YAAM,UAAU,YAAY;AAAA,QAC3B,CAAE,UAAW,MAAM,SAAS;AAAA,MAC7B;AACA,aAAO;AAAA,QACN,mBAAmB,WAAW,YAAY;AAAA,QAC1C,kBAAkB,SAAS,YAAY;AAAA,MACxC;AAAA,IACD;AAAA,IACA,CAAE,YAAa;AAAA,EAChB;AAEA,QAAM,SAAS,MAAM;AACpB,QAAK,CAAE,mBAAoB;AAC1B;AAAA,IACD;AAEA,UAAM,uBAAmB,2BAAa,kBAAkB;AAAA,MACvD,WAAO,gBAAI,KAAM;AAAA,IAClB,CAAE;AACF,gBAAa,kBAAkB,QAAW,iBAAkB;AAG5D,QAAK,kBAAmB;AACvB,YAAM,kBAAc,2BAAa,YAAY,CAAC,CAAE;AAChD,kBAAa,aAAa,QAAW,gBAAiB;AAAA,IACvD;AAAA,EACD;AAEA,SACC,4CAAC,qCAAc,OAAM,SACpB,sDAAC,kCACA;AAAA,IAAC;AAAA;AAAA,MACA,WAAU;AAAA,MACV,SAAU;AAAA,MACV,UAAO,gBAAI,SAAU;AAAA;AAAA,EACtB,GACD,GACD;AAEF;",
6
+ "names": ["blockEditorStore"]
7
+ }
@@ -4,62 +4,52 @@
4
4
  "apiVersion": 3,
5
5
  "name": "core/tab-panel",
6
6
  "title": "Tab Panel",
7
- "description": "Container for tab panel content in a tabbed interface.",
8
- "version": "1.0.0",
7
+ "description": "Content for a tab in a tabbed interface.",
9
8
  "category": "design",
10
9
  "textdomain": "default",
11
- "parent": [ "core/tabs" ],
12
- "allowedBlocks": [ "core/tab" ],
13
- "attributes": {},
10
+ "attributes": {
11
+ "label": {
12
+ "type": "string",
13
+ "default": ""
14
+ }
15
+ },
16
+ "parent": [ "core/tab-panels" ],
17
+ "usesContext": [
18
+ "core/tabs-activeTabIndex",
19
+ "core/tabs-editorActiveTabIndex",
20
+ "core/tabs-id"
21
+ ],
14
22
  "supports": {
15
- "anchor": false,
23
+ "anchor": true,
16
24
  "html": false,
17
25
  "reusable": false,
18
- "lock": false,
19
- "dimensions": {
20
- "aspectRatio": false,
21
- "height": false,
22
- "minHeight": false,
23
- "width": false
24
- },
25
26
  "color": {
26
27
  "background": true,
27
28
  "text": true,
28
- "heading": true,
29
- "link": true,
30
29
  "__experimentalDefaultControls": {
31
30
  "background": true,
32
31
  "text": true
33
32
  }
34
33
  },
34
+ "layout": true,
35
35
  "spacing": {
36
- "blockGap": false,
36
+ "blockGap": true,
37
37
  "padding": true,
38
- "margin": true
38
+ "margin": false
39
39
  },
40
40
  "typography": {
41
41
  "fontSize": true,
42
- "__experimentalFontFamily": true
43
- },
44
- "layout": {
45
- "default": {
46
- "type": "flex",
47
- "flexWrap": "nowrap",
48
- "justifyContent": "stretch",
49
- "orientation": "vertical"
50
- },
51
- "allowSwitching": false,
52
- "allowVerticalAlignment": false,
53
- "allowOrientation": false,
54
- "allowJustification": true,
55
- "allowSizingOnChildren": false
42
+ "__experimentalFontFamily": true,
43
+ "__experimentalDefaultControls": {
44
+ "fontSize": true,
45
+ "__experimentalFontFamily": true
46
+ }
56
47
  },
57
- "__experimentalBorder": {
58
- "radius": true,
59
- "color": true,
60
- "width": true,
61
- "style": true
62
- }
48
+ "renaming": true,
49
+ "visibility": false
50
+ },
51
+ "providesContext": {
52
+ "core/tab-label": "label"
63
53
  },
64
54
  "editorScript": "file:./index.js",
65
55
  "style": "file:./style-index.css"