@wordpress/block-library 9.38.0 → 9.39.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 (470) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/block/block.json +2 -1
  3. package/build/breadcrumbs/edit.cjs +15 -5
  4. package/build/breadcrumbs/edit.cjs.map +2 -2
  5. package/build/breadcrumbs/index.cjs +1 -0
  6. package/build/breadcrumbs/index.cjs.map +2 -2
  7. package/build/button/index.cjs +3 -0
  8. package/build/button/index.cjs.map +2 -2
  9. package/build/comment-date/block.json +1 -0
  10. package/build/comment-edit-link/block.json +1 -3
  11. package/build/comment-edit-link/deprecated.cjs +91 -0
  12. package/build/comment-edit-link/deprecated.cjs.map +7 -0
  13. package/build/comment-edit-link/edit.cjs +6 -18
  14. package/build/comment-edit-link/edit.cjs.map +3 -3
  15. package/build/comment-edit-link/index.cjs +2 -0
  16. package/build/comment-edit-link/index.cjs.map +3 -3
  17. package/build/comment-reply-link/block.json +1 -5
  18. package/build/comment-reply-link/deprecated.cjs +84 -0
  19. package/build/comment-reply-link/deprecated.cjs.map +7 -0
  20. package/build/comment-reply-link/edit.cjs +10 -23
  21. package/build/comment-reply-link/edit.cjs.map +3 -3
  22. package/build/comment-reply-link/index.cjs +2 -0
  23. package/build/comment-reply-link/index.cjs.map +3 -3
  24. package/build/comments-title/block.json +1 -3
  25. package/build/comments-title/deprecated.cjs +148 -24
  26. package/build/comments-title/deprecated.cjs.map +3 -3
  27. package/build/comments-title/edit.cjs +17 -31
  28. package/build/comments-title/edit.cjs.map +3 -3
  29. package/build/cover/edit/block-controls.cjs +10 -2
  30. package/build/cover/edit/block-controls.cjs.map +2 -2
  31. package/build/cover/edit/embed-video-url-input.cjs +6 -2
  32. package/build/cover/edit/embed-video-url-input.cjs.map +2 -2
  33. package/build/cover/edit/inspector-controls.cjs +1 -1
  34. package/build/cover/edit/inspector-controls.cjs.map +2 -2
  35. package/build/details/index.cjs +3 -0
  36. package/build/details/index.cjs.map +2 -2
  37. package/build/embed/util.cjs +9 -0
  38. package/build/embed/util.cjs.map +2 -2
  39. package/build/freeform/block.json +2 -1
  40. package/build/heading/index.cjs +3 -0
  41. package/build/heading/index.cjs.map +2 -2
  42. package/build/html/block.json +2 -1
  43. package/build/image/image.cjs +43 -9
  44. package/build/image/image.cjs.map +2 -2
  45. package/build/image/index.cjs +1 -1
  46. package/build/image/index.cjs.map +2 -2
  47. package/build/index.cjs +6 -0
  48. package/build/index.cjs.map +2 -2
  49. package/build/list-item/index.cjs +12 -1
  50. package/build/list-item/index.cjs.map +2 -2
  51. package/build/missing/block.json +2 -1
  52. package/build/more/block.json +2 -1
  53. package/build/more/index.cjs +1 -1
  54. package/build/more/index.cjs.map +2 -2
  55. package/build/navigation/block.json +5 -4
  56. package/build/navigation/deprecated.cjs +133 -5
  57. package/build/navigation/deprecated.cjs.map +2 -2
  58. package/build/navigation/edit/deleted-overlay-warning.cjs +70 -0
  59. package/build/navigation/edit/deleted-overlay-warning.cjs.map +7 -0
  60. package/build/navigation/edit/index.cjs +143 -65
  61. package/build/navigation/edit/index.cjs.map +3 -3
  62. package/build/navigation/edit/overlay-panel.cjs +10 -1
  63. package/build/navigation/edit/overlay-panel.cjs.map +3 -3
  64. package/build/navigation/edit/overlay-preview.cjs +120 -0
  65. package/build/navigation/edit/overlay-preview.cjs.map +7 -0
  66. package/build/navigation/edit/overlay-template-part-selector.cjs +59 -24
  67. package/build/navigation/edit/overlay-template-part-selector.cjs.map +3 -3
  68. package/build/navigation/edit/responsive-wrapper.cjs +12 -1
  69. package/build/navigation/edit/responsive-wrapper.cjs.map +3 -3
  70. package/build/navigation/edit/use-create-overlay.cjs +19 -2
  71. package/build/navigation/edit/use-create-overlay.cjs.map +3 -3
  72. package/build/navigation/utils/get-submenu-visibility.cjs +37 -0
  73. package/build/navigation/utils/get-submenu-visibility.cjs.map +7 -0
  74. package/build/navigation-link/edit.cjs +2 -40
  75. package/build/navigation-link/edit.cjs.map +2 -2
  76. package/build/navigation-link/shared/index.cjs +6 -0
  77. package/build/navigation-link/shared/index.cjs.map +2 -2
  78. package/build/navigation-link/shared/select-label-text.cjs +40 -0
  79. package/build/navigation-link/shared/select-label-text.cjs.map +7 -0
  80. package/build/navigation-link/shared/use-is-dragging-within.cjs +59 -0
  81. package/build/navigation-link/shared/use-is-dragging-within.cjs.map +7 -0
  82. package/build/navigation-submenu/block.json +1 -1
  83. package/build/navigation-submenu/edit.cjs +8 -47
  84. package/build/navigation-submenu/edit.cjs.map +2 -2
  85. package/build/navigation-submenu/index.cjs +2 -2
  86. package/build/navigation-submenu/index.cjs.map +2 -2
  87. package/build/nextpage/block.json +2 -1
  88. package/build/paragraph/block.json +1 -0
  89. package/build/paragraph/index.cjs +1 -1
  90. package/build/paragraph/index.cjs.map +2 -2
  91. package/build/post-excerpt/edit.cjs +1 -1
  92. package/build/post-excerpt/edit.cjs.map +2 -2
  93. package/build/shortcode/block.json +2 -1
  94. package/build/tab/add-tab-toolbar-control.cjs +31 -9
  95. package/build/tab/add-tab-toolbar-control.cjs.map +2 -2
  96. package/build/tab/block.json +18 -4
  97. package/build/tab/controls.cjs +4 -8
  98. package/build/tab/controls.cjs.map +3 -3
  99. package/build/tab/edit.cjs +46 -118
  100. package/build/tab/edit.cjs.map +3 -3
  101. package/build/tab/remove-tab-toolbar-control.cjs +91 -0
  102. package/build/tab/remove-tab-toolbar-control.cjs.map +7 -0
  103. package/build/tab/save.cjs +2 -2
  104. package/build/tab/save.cjs.map +2 -2
  105. package/build/tab-panels/block.json +70 -0
  106. package/build/tab-panels/edit.cjs +63 -0
  107. package/build/tab-panels/edit.cjs.map +7 -0
  108. package/build/tab-panels/icon.cjs +29 -0
  109. package/build/tab-panels/icon.cjs.map +7 -0
  110. package/build/tab-panels/index.cjs +58 -0
  111. package/build/tab-panels/index.cjs.map +7 -0
  112. package/build/tab-panels/save.cjs +33 -0
  113. package/build/tab-panels/save.cjs.map +7 -0
  114. package/build/tabs/block.json +61 -90
  115. package/build/tabs/controls.cjs +19 -221
  116. package/build/tabs/controls.cjs.map +3 -3
  117. package/build/tabs/deprecated.cjs +179 -0
  118. package/build/tabs/deprecated.cjs.map +7 -0
  119. package/build/tabs/edit.cjs +84 -62
  120. package/build/tabs/edit.cjs.map +3 -3
  121. package/build/tabs/index.cjs +3 -1
  122. package/build/tabs/index.cjs.map +3 -3
  123. package/build/tabs/save.cjs +6 -9
  124. package/build/tabs/save.cjs.map +2 -2
  125. package/build/tabs-menu/block.json +77 -0
  126. package/build/tabs-menu/edit.cjs +204 -0
  127. package/build/tabs-menu/edit.cjs.map +7 -0
  128. package/build/tabs-menu/icon.cjs +29 -0
  129. package/build/tabs-menu/icon.cjs.map +7 -0
  130. package/build/tabs-menu/index.cjs +58 -0
  131. package/build/tabs-menu/index.cjs.map +7 -0
  132. package/build/tabs-menu/save.cjs +35 -0
  133. package/build/tabs-menu/save.cjs.map +7 -0
  134. package/build/tabs-menu-item/block.json +98 -0
  135. package/build/tabs-menu-item/controls.cjs +247 -0
  136. package/build/tabs-menu-item/controls.cjs.map +7 -0
  137. package/build/tabs-menu-item/edit.cjs +272 -0
  138. package/build/tabs-menu-item/edit.cjs.map +7 -0
  139. package/build/tabs-menu-item/icon.cjs +29 -0
  140. package/build/tabs-menu-item/icon.cjs.map +7 -0
  141. package/build/tabs-menu-item/index.cjs +58 -0
  142. package/build/tabs-menu-item/index.cjs.map +7 -0
  143. package/build/tabs-menu-item/save.cjs +50 -0
  144. package/build/tabs-menu-item/save.cjs.map +7 -0
  145. package/build/template-part/edit/index.cjs +2 -2
  146. package/build/template-part/edit/index.cjs.map +2 -2
  147. package/build/utils/caption.cjs +4 -6
  148. package/build/utils/caption.cjs.map +3 -3
  149. package/build/verse/block.json +1 -3
  150. package/build/verse/deprecated.cjs +74 -5
  151. package/build/verse/deprecated.cjs.map +3 -3
  152. package/build/verse/edit.cjs +33 -48
  153. package/build/verse/edit.cjs.map +3 -3
  154. package/build/verse/save.cjs +2 -16
  155. package/build/verse/save.cjs.map +3 -3
  156. package/build/video/edit.cjs +4 -2
  157. package/build/video/edit.cjs.map +2 -2
  158. package/build-module/block/block.json +2 -1
  159. package/build-module/breadcrumbs/edit.mjs +15 -5
  160. package/build-module/breadcrumbs/edit.mjs.map +2 -2
  161. package/build-module/breadcrumbs/index.mjs +1 -0
  162. package/build-module/breadcrumbs/index.mjs.map +2 -2
  163. package/build-module/button/index.mjs +3 -0
  164. package/build-module/button/index.mjs.map +2 -2
  165. package/build-module/comment-date/block.json +1 -0
  166. package/build-module/comment-edit-link/block.json +1 -3
  167. package/build-module/comment-edit-link/deprecated.mjs +60 -0
  168. package/build-module/comment-edit-link/deprecated.mjs.map +7 -0
  169. package/build-module/comment-edit-link/edit.mjs +7 -24
  170. package/build-module/comment-edit-link/edit.mjs.map +2 -2
  171. package/build-module/comment-edit-link/index.mjs +2 -0
  172. package/build-module/comment-edit-link/index.mjs.map +2 -2
  173. package/build-module/comment-reply-link/block.json +1 -5
  174. package/build-module/comment-reply-link/deprecated.mjs +53 -0
  175. package/build-module/comment-reply-link/deprecated.mjs.map +7 -0
  176. package/build-module/comment-reply-link/edit.mjs +12 -29
  177. package/build-module/comment-reply-link/edit.mjs.map +2 -2
  178. package/build-module/comment-reply-link/index.mjs +2 -0
  179. package/build-module/comment-reply-link/index.mjs.map +2 -2
  180. package/build-module/comments-title/block.json +1 -3
  181. package/build-module/comments-title/deprecated.mjs +148 -24
  182. package/build-module/comments-title/deprecated.mjs.map +2 -2
  183. package/build-module/comments-title/edit.mjs +17 -32
  184. package/build-module/comments-title/edit.mjs.map +2 -2
  185. package/build-module/cover/edit/block-controls.mjs +11 -3
  186. package/build-module/cover/edit/block-controls.mjs.map +2 -2
  187. package/build-module/cover/edit/embed-video-url-input.mjs +6 -2
  188. package/build-module/cover/edit/embed-video-url-input.mjs.map +2 -2
  189. package/build-module/cover/edit/inspector-controls.mjs +1 -1
  190. package/build-module/cover/edit/inspector-controls.mjs.map +2 -2
  191. package/build-module/details/index.mjs +3 -0
  192. package/build-module/details/index.mjs.map +2 -2
  193. package/build-module/embed/util.mjs +8 -0
  194. package/build-module/embed/util.mjs.map +2 -2
  195. package/build-module/freeform/block.json +2 -1
  196. package/build-module/heading/index.mjs +3 -0
  197. package/build-module/heading/index.mjs.map +2 -2
  198. package/build-module/html/block.json +2 -1
  199. package/build-module/image/image.mjs +43 -9
  200. package/build-module/image/image.mjs.map +2 -2
  201. package/build-module/image/index.mjs +1 -1
  202. package/build-module/image/index.mjs.map +2 -2
  203. package/build-module/index.mjs +6 -0
  204. package/build-module/index.mjs.map +2 -2
  205. package/build-module/list-item/index.mjs +12 -1
  206. package/build-module/list-item/index.mjs.map +2 -2
  207. package/build-module/missing/block.json +2 -1
  208. package/build-module/more/block.json +2 -1
  209. package/build-module/more/index.mjs +1 -1
  210. package/build-module/more/index.mjs.map +2 -2
  211. package/build-module/navigation/block.json +5 -4
  212. package/build-module/navigation/deprecated.mjs +133 -5
  213. package/build-module/navigation/deprecated.mjs.map +2 -2
  214. package/build-module/navigation/edit/deleted-overlay-warning.mjs +49 -0
  215. package/build-module/navigation/edit/deleted-overlay-warning.mjs.map +7 -0
  216. package/build-module/navigation/edit/index.mjs +145 -65
  217. package/build-module/navigation/edit/index.mjs.map +2 -2
  218. package/build-module/navigation/edit/overlay-panel.mjs +10 -1
  219. package/build-module/navigation/edit/overlay-panel.mjs.map +2 -2
  220. package/build-module/navigation/edit/overlay-preview.mjs +99 -0
  221. package/build-module/navigation/edit/overlay-preview.mjs.map +7 -0
  222. package/build-module/navigation/edit/overlay-template-part-selector.mjs +61 -26
  223. package/build-module/navigation/edit/overlay-template-part-selector.mjs.map +2 -2
  224. package/build-module/navigation/edit/responsive-wrapper.mjs +12 -1
  225. package/build-module/navigation/edit/responsive-wrapper.mjs.map +2 -2
  226. package/build-module/navigation/edit/use-create-overlay.mjs +21 -4
  227. package/build-module/navigation/edit/use-create-overlay.mjs.map +2 -2
  228. package/build-module/navigation/utils/get-submenu-visibility.mjs +12 -0
  229. package/build-module/navigation/utils/get-submenu-visibility.mjs.map +7 -0
  230. package/build-module/navigation-link/edit.mjs +4 -40
  231. package/build-module/navigation-link/edit.mjs.map +2 -2
  232. package/build-module/navigation-link/shared/index.mjs +4 -0
  233. package/build-module/navigation-link/shared/index.mjs.map +2 -2
  234. package/build-module/navigation-link/shared/select-label-text.mjs +15 -0
  235. package/build-module/navigation-link/shared/select-label-text.mjs.map +7 -0
  236. package/build-module/navigation-link/shared/use-is-dragging-within.mjs +34 -0
  237. package/build-module/navigation-link/shared/use-is-dragging-within.mjs.map +7 -0
  238. package/build-module/navigation-submenu/block.json +1 -1
  239. package/build-module/navigation-submenu/edit.mjs +10 -47
  240. package/build-module/navigation-submenu/edit.mjs.map +2 -2
  241. package/build-module/navigation-submenu/index.mjs +2 -2
  242. package/build-module/navigation-submenu/index.mjs.map +2 -2
  243. package/build-module/nextpage/block.json +2 -1
  244. package/build-module/paragraph/block.json +1 -0
  245. package/build-module/paragraph/index.mjs +1 -1
  246. package/build-module/paragraph/index.mjs.map +2 -2
  247. package/build-module/post-excerpt/edit.mjs +1 -1
  248. package/build-module/post-excerpt/edit.mjs.map +2 -2
  249. package/build-module/shortcode/block.json +2 -1
  250. package/build-module/tab/add-tab-toolbar-control.mjs +32 -10
  251. package/build-module/tab/add-tab-toolbar-control.mjs.map +2 -2
  252. package/build-module/tab/block.json +18 -4
  253. package/build-module/tab/controls.mjs +4 -8
  254. package/build-module/tab/controls.mjs.map +2 -2
  255. package/build-module/tab/edit.mjs +48 -128
  256. package/build-module/tab/edit.mjs.map +2 -2
  257. package/build-module/tab/remove-tab-toolbar-control.mjs +73 -0
  258. package/build-module/tab/remove-tab-toolbar-control.mjs.map +7 -0
  259. package/build-module/tab/save.mjs +2 -2
  260. package/build-module/tab/save.mjs.map +2 -2
  261. package/build-module/tab-panels/block.json +70 -0
  262. package/build-module/tab-panels/edit.mjs +36 -0
  263. package/build-module/tab-panels/edit.mjs.map +7 -0
  264. package/build-module/tab-panels/icon.mjs +8 -0
  265. package/build-module/tab-panels/icon.mjs.map +7 -0
  266. package/build-module/tab-panels/index.mjs +20 -0
  267. package/build-module/tab-panels/index.mjs.map +7 -0
  268. package/build-module/tab-panels/save.mjs +12 -0
  269. package/build-module/tab-panels/save.mjs.map +7 -0
  270. package/build-module/tabs/block.json +61 -90
  271. package/build-module/tabs/controls.mjs +21 -228
  272. package/build-module/tabs/controls.mjs.map +2 -2
  273. package/build-module/tabs/deprecated.mjs +158 -0
  274. package/build-module/tabs/deprecated.mjs.map +7 -0
  275. package/build-module/tabs/edit.mjs +87 -64
  276. package/build-module/tabs/edit.mjs.map +2 -2
  277. package/build-module/tabs/index.mjs +3 -1
  278. package/build-module/tabs/index.mjs.map +2 -2
  279. package/build-module/tabs/save.mjs +7 -10
  280. package/build-module/tabs/save.mjs.map +2 -2
  281. package/build-module/tabs-menu/block.json +77 -0
  282. package/build-module/tabs-menu/edit.mjs +186 -0
  283. package/build-module/tabs-menu/edit.mjs.map +7 -0
  284. package/build-module/tabs-menu/icon.mjs +8 -0
  285. package/build-module/tabs-menu/icon.mjs.map +7 -0
  286. package/build-module/tabs-menu/index.mjs +20 -0
  287. package/build-module/tabs-menu/index.mjs.map +7 -0
  288. package/build-module/tabs-menu/save.mjs +14 -0
  289. package/build-module/tabs-menu/save.mjs.map +7 -0
  290. package/build-module/tabs-menu-item/block.json +98 -0
  291. package/build-module/tabs-menu-item/controls.mjs +227 -0
  292. package/build-module/tabs-menu-item/controls.mjs.map +7 -0
  293. package/build-module/tabs-menu-item/edit.mjs +253 -0
  294. package/build-module/tabs-menu-item/edit.mjs.map +7 -0
  295. package/build-module/tabs-menu-item/icon.mjs +8 -0
  296. package/build-module/tabs-menu-item/icon.mjs.map +7 -0
  297. package/build-module/tabs-menu-item/index.mjs +20 -0
  298. package/build-module/tabs-menu-item/index.mjs.map +7 -0
  299. package/build-module/tabs-menu-item/save.mjs +29 -0
  300. package/build-module/tabs-menu-item/save.mjs.map +7 -0
  301. package/build-module/template-part/edit/index.mjs +2 -2
  302. package/build-module/template-part/edit/index.mjs.map +2 -2
  303. package/build-module/utils/caption.mjs +1 -3
  304. package/build-module/utils/caption.mjs.map +2 -2
  305. package/build-module/verse/block.json +1 -3
  306. package/build-module/verse/deprecated.mjs +74 -5
  307. package/build-module/verse/deprecated.mjs.map +2 -2
  308. package/build-module/verse/edit.mjs +35 -55
  309. package/build-module/verse/edit.mjs.map +2 -2
  310. package/build-module/verse/save.mjs +2 -6
  311. package/build-module/verse/save.mjs.map +2 -2
  312. package/build-module/video/edit.mjs +4 -2
  313. package/build-module/video/edit.mjs.map +2 -2
  314. package/build-style/editor-rtl.css +64 -21
  315. package/build-style/editor.css +64 -21
  316. package/build-style/gallery/style-rtl.css +1 -1
  317. package/build-style/gallery/style.css +1 -1
  318. package/build-style/media-text/style-rtl.css +2 -0
  319. package/build-style/media-text/style.css +2 -0
  320. package/build-style/navigation/editor-rtl.css +48 -0
  321. package/build-style/navigation/editor.css +48 -0
  322. package/build-style/navigation/style-rtl.css +64 -18
  323. package/build-style/navigation/style.css +64 -18
  324. package/build-style/style-rtl.css +109 -171
  325. package/build-style/style.css +109 -171
  326. package/build-style/tab/style-rtl.css +7 -1
  327. package/build-style/tab/style.css +7 -1
  328. package/build-style/tab-panels/style-rtl.css +4 -0
  329. package/build-style/tab-panels/style.css +4 -0
  330. package/build-style/tabs/style-rtl.css +1 -167
  331. package/build-style/tabs/style.css +1 -167
  332. package/build-style/tabs-menu/editor-rtl.css +4 -0
  333. package/build-style/tabs-menu/editor.css +4 -0
  334. package/build-style/tabs-menu/style-rtl.css +8 -0
  335. package/build-style/tabs-menu/style.css +8 -0
  336. package/build-style/tabs-menu-item/editor-rtl.css +16 -0
  337. package/build-style/tabs-menu-item/editor.css +16 -0
  338. package/build-style/tabs-menu-item/style-rtl.css +34 -0
  339. package/build-style/tabs-menu-item/style.css +34 -0
  340. package/build-style/verse/style-rtl.css +1 -0
  341. package/build-style/verse/style.css +1 -0
  342. package/package.json +37 -37
  343. package/src/block/block.json +2 -1
  344. package/src/breadcrumbs/edit.js +10 -2
  345. package/src/breadcrumbs/index.js +1 -0
  346. package/src/button/index.js +4 -0
  347. package/src/categories/index.php +5 -1
  348. package/src/comment-date/block.json +1 -0
  349. package/src/comment-edit-link/block.json +1 -3
  350. package/src/comment-edit-link/deprecated.js +63 -0
  351. package/src/comment-edit-link/edit.js +7 -31
  352. package/src/comment-edit-link/index.js +2 -0
  353. package/src/comment-reply-link/block.json +1 -5
  354. package/src/comment-reply-link/deprecated.js +56 -0
  355. package/src/comment-reply-link/edit.js +6 -35
  356. package/src/comment-reply-link/index.js +2 -0
  357. package/src/comments-title/block.json +1 -3
  358. package/src/comments-title/deprecated.js +153 -23
  359. package/src/comments-title/edit.js +9 -25
  360. package/src/cover/edit/block-controls.js +14 -3
  361. package/src/cover/edit/embed-video-url-input.js +6 -2
  362. package/src/cover/edit/inspector-controls.js +1 -3
  363. package/src/details/index.js +4 -0
  364. package/src/editor.scss +2 -1
  365. package/src/embed/test/index.js +49 -0
  366. package/src/embed/util.js +21 -0
  367. package/src/freeform/block.json +2 -1
  368. package/src/gallery/style.scss +1 -1
  369. package/src/heading/index.js +4 -0
  370. package/src/html/block.json +2 -1
  371. package/src/image/image.js +63 -11
  372. package/src/image/index.js +4 -1
  373. package/src/index.js +6 -0
  374. package/src/list-item/index.js +16 -0
  375. package/src/media-text/style.scss +2 -0
  376. package/src/missing/block.json +2 -1
  377. package/src/more/block.json +2 -1
  378. package/src/more/index.js +4 -1
  379. package/src/navigation/block.json +5 -4
  380. package/src/navigation/deprecated.js +144 -5
  381. package/src/navigation/edit/deleted-overlay-warning.js +56 -0
  382. package/src/navigation/edit/index.js +181 -70
  383. package/src/navigation/edit/overlay-panel.js +10 -0
  384. package/src/navigation/edit/overlay-preview.js +133 -0
  385. package/src/navigation/edit/overlay-template-part-selector.js +76 -26
  386. package/src/navigation/edit/responsive-wrapper.js +14 -1
  387. package/src/navigation/edit/test/overlay-template-part-selector.js +24 -16
  388. package/src/navigation/edit/test/responsive-wrapper.js +179 -0
  389. package/src/navigation/edit/test/use-create-overlay.js +129 -2
  390. package/src/navigation/edit/use-create-overlay.js +26 -4
  391. package/src/navigation/editor.scss +51 -0
  392. package/src/navigation/index.php +59 -11
  393. package/src/navigation/style.scss +140 -76
  394. package/src/navigation/utils/get-submenu-visibility.js +27 -0
  395. package/src/navigation/utils/test/get-submenu-visibility.js +47 -0
  396. package/src/navigation-link/edit.js +3 -67
  397. package/src/navigation-link/shared/index.js +2 -0
  398. package/src/navigation-link/shared/select-label-text.js +16 -0
  399. package/src/navigation-link/shared/use-is-dragging-within.js +55 -0
  400. package/src/navigation-submenu/block.json +1 -1
  401. package/src/navigation-submenu/edit.js +10 -73
  402. package/src/navigation-submenu/index.js +6 -3
  403. package/src/navigation-submenu/index.php +36 -5
  404. package/src/nextpage/block.json +2 -1
  405. package/src/paragraph/block.json +1 -0
  406. package/src/paragraph/index.js +4 -1
  407. package/src/post-excerpt/edit.js +1 -1
  408. package/src/post-excerpt/index.php +39 -16
  409. package/src/shortcode/block.json +2 -1
  410. package/src/style.scss +3 -0
  411. package/src/tab/add-tab-toolbar-control.js +36 -11
  412. package/src/tab/block.json +18 -4
  413. package/src/tab/controls.js +4 -5
  414. package/src/tab/edit.js +75 -150
  415. package/src/tab/index.php +5 -63
  416. package/src/tab/remove-tab-toolbar-control.js +103 -0
  417. package/src/tab/save.js +1 -3
  418. package/src/tab/style.scss +8 -1
  419. package/src/tab-panels/block.json +70 -0
  420. package/src/tab-panels/edit.js +44 -0
  421. package/src/tab-panels/icon.js +10 -0
  422. package/src/tab-panels/index.js +21 -0
  423. package/src/tab-panels/save.js +11 -0
  424. package/src/tab-panels/style.scss +4 -0
  425. package/src/tabs/block.json +61 -90
  426. package/src/tabs/controls.js +7 -221
  427. package/src/tabs/deprecated.js +214 -0
  428. package/src/tabs/edit.js +108 -68
  429. package/src/tabs/index.js +2 -0
  430. package/src/tabs/index.php +86 -191
  431. package/src/tabs/save.js +6 -13
  432. package/src/tabs/style.scss +1 -187
  433. package/src/tabs-menu/block.json +77 -0
  434. package/src/tabs-menu/edit.js +251 -0
  435. package/src/tabs-menu/editor.scss +6 -0
  436. package/src/tabs-menu/icon.js +10 -0
  437. package/src/tabs-menu/index.js +21 -0
  438. package/src/tabs-menu/index.php +74 -0
  439. package/src/tabs-menu/save.js +18 -0
  440. package/src/tabs-menu/style.scss +8 -0
  441. package/src/tabs-menu-item/block.json +98 -0
  442. package/src/tabs-menu-item/controls.js +262 -0
  443. package/src/tabs-menu-item/edit.js +322 -0
  444. package/src/tabs-menu-item/editor.scss +20 -0
  445. package/src/tabs-menu-item/icon.js +10 -0
  446. package/src/tabs-menu-item/index.js +21 -0
  447. package/src/tabs-menu-item/index.php +82 -0
  448. package/src/tabs-menu-item/save.js +44 -0
  449. package/src/tabs-menu-item/style.scss +42 -0
  450. package/src/template-part/edit/index.js +2 -4
  451. package/src/utils/caption.js +1 -7
  452. package/src/verse/block.json +1 -3
  453. package/src/verse/deprecated.js +83 -4
  454. package/src/verse/edit.js +37 -56
  455. package/src/verse/save.js +2 -11
  456. package/src/verse/style.scss +1 -0
  457. package/src/video/edit.js +4 -2
  458. package/build/tab/tabs-list.cjs +0 -132
  459. package/build/tab/tabs-list.cjs.map +0 -7
  460. package/build/tabs/style-engine.cjs +0 -119
  461. package/build/tabs/style-engine.cjs.map +0 -7
  462. package/build-module/tab/tabs-list.mjs +0 -101
  463. package/build-module/tab/tabs-list.mjs.map +0 -7
  464. package/build-module/tabs/style-engine.mjs +0 -101
  465. package/build-module/tabs/style-engine.mjs.map +0 -7
  466. package/build-style/tabs/editor-rtl.css +0 -26
  467. package/build-style/tabs/editor.css +0 -26
  468. package/src/tab/tabs-list.js +0 -122
  469. package/src/tabs/editor.scss +0 -30
  470. package/src/tabs/style-engine.js +0 -164
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // packages/block-library/src/tabs/deprecated.js
21
+ var deprecated_exports = {};
22
+ __export(deprecated_exports, {
23
+ default: () => deprecated_default
24
+ });
25
+ module.exports = __toCommonJS(deprecated_exports);
26
+ var import_block_editor = require("@wordpress/block-editor");
27
+ var import_blocks = require("@wordpress/blocks");
28
+ var import_jsx_runtime = require("react/jsx-runtime");
29
+ var v1Attributes = {
30
+ tabsId: {
31
+ type: "string",
32
+ default: ""
33
+ },
34
+ orientation: {
35
+ type: "string",
36
+ default: "horizontal",
37
+ enum: ["horizontal", "vertical"]
38
+ },
39
+ activeTabIndex: {
40
+ type: "number",
41
+ default: 0
42
+ },
43
+ tabInactiveColor: {
44
+ type: "string"
45
+ },
46
+ customTabInactiveColor: {
47
+ type: "string"
48
+ },
49
+ tabHoverColor: {
50
+ type: "string"
51
+ },
52
+ customTabHoverColor: {
53
+ type: "string"
54
+ },
55
+ tabActiveColor: {
56
+ type: "string"
57
+ },
58
+ customTabActiveColor: {
59
+ type: "string"
60
+ },
61
+ tabTextColor: {
62
+ type: "string"
63
+ },
64
+ customTabTextColor: {
65
+ type: "string"
66
+ },
67
+ tabActiveTextColor: {
68
+ type: "string"
69
+ },
70
+ customTabActiveTextColor: {
71
+ type: "string"
72
+ },
73
+ tabHoverTextColor: {
74
+ type: "string"
75
+ },
76
+ customTabHoverTextColor: {
77
+ type: "string"
78
+ }
79
+ };
80
+ function v1Save({ attributes }) {
81
+ const blockProps = import_block_editor.useBlockProps.save();
82
+ const innerBlocksProps = import_block_editor.useInnerBlocksProps.save({});
83
+ const title = attributes?.metadata?.name || "Tab Contents";
84
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { ...blockProps, children: [
85
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h3", { className: "tabs__title", children: title }),
86
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("ul", { className: "tabs__list" }),
87
+ innerBlocksProps.children
88
+ ] });
89
+ }
90
+ function v1Migrate(attributes, innerBlocks) {
91
+ const tabsMenuAttributes = {
92
+ // Map inactive colors to core background/text supports
93
+ backgroundColor: attributes.tabInactiveColor,
94
+ textColor: attributes.tabTextColor,
95
+ // Map custom inactive colors
96
+ style: {
97
+ color: {
98
+ background: attributes.customTabInactiveColor,
99
+ text: attributes.customTabTextColor
100
+ }
101
+ },
102
+ // Active colors
103
+ activeBackgroundColor: attributes.tabActiveColor,
104
+ customActiveBackgroundColor: attributes.customTabActiveColor,
105
+ activeTextColor: attributes.tabActiveTextColor,
106
+ customActiveTextColor: attributes.customTabActiveTextColor,
107
+ // Hover colors
108
+ hoverBackgroundColor: attributes.tabHoverColor,
109
+ customHoverBackgroundColor: attributes.customTabHoverColor,
110
+ hoverTextColor: attributes.tabHoverTextColor,
111
+ customHoverTextColor: attributes.customTabHoverTextColor
112
+ };
113
+ if (tabsMenuAttributes.style?.color) {
114
+ if (!tabsMenuAttributes.style.color.background) {
115
+ delete tabsMenuAttributes.style.color.background;
116
+ }
117
+ if (!tabsMenuAttributes.style.color.text) {
118
+ delete tabsMenuAttributes.style.color.text;
119
+ }
120
+ if (Object.keys(tabsMenuAttributes.style.color).length === 0) {
121
+ delete tabsMenuAttributes.style.color;
122
+ }
123
+ if (Object.keys(tabsMenuAttributes.style).length === 0) {
124
+ delete tabsMenuAttributes.style;
125
+ }
126
+ }
127
+ Object.keys(tabsMenuAttributes).forEach((key) => {
128
+ if (tabsMenuAttributes[key] === void 0) {
129
+ delete tabsMenuAttributes[key];
130
+ }
131
+ });
132
+ const tabsMenuBlock = (0, import_blocks.createBlock)("core/tabs-menu", tabsMenuAttributes);
133
+ const tabPanelsBlock = (0, import_blocks.createBlock)("core/tab-panels", {}, innerBlocks);
134
+ const newAttributes = {
135
+ tabsId: attributes.tabsId,
136
+ orientation: attributes.orientation,
137
+ activeTabIndex: attributes.activeTabIndex,
138
+ metadata: attributes.metadata
139
+ };
140
+ return [newAttributes, [tabsMenuBlock, tabPanelsBlock]];
141
+ }
142
+ function v1IsEligible(attributes, innerBlocks) {
143
+ return innerBlocks.some((block) => block.name === "core/tab");
144
+ }
145
+ var deprecated = [
146
+ {
147
+ attributes: v1Attributes,
148
+ supports: {
149
+ align: true,
150
+ color: {
151
+ text: false,
152
+ background: false
153
+ },
154
+ html: false,
155
+ interactivity: true,
156
+ spacing: {
157
+ blockGap: ["horizontal", "vertical"],
158
+ margin: true,
159
+ padding: false
160
+ },
161
+ typography: {
162
+ fontSize: true,
163
+ __experimentalFontFamily: true
164
+ },
165
+ __experimentalBorder: {
166
+ radius: true,
167
+ __experimentalSkipSerialization: true,
168
+ __experimentalDefaultControls: {
169
+ radius: true
170
+ }
171
+ }
172
+ },
173
+ isEligible: v1IsEligible,
174
+ migrate: v1Migrate,
175
+ save: v1Save
176
+ }
177
+ ];
178
+ var deprecated_default = deprecated;
179
+ //# sourceMappingURL=deprecated.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/tabs/deprecated.js"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * The old attributes before restructuring.\n * Maintain during experimental phase to allow for migration.\n *\n * TODO: Should be removed after the experimental phase before release into main block library.\n */\nconst v1Attributes = {\n\ttabsId: {\n\t\ttype: 'string',\n\t\tdefault: '',\n\t},\n\torientation: {\n\t\ttype: 'string',\n\t\tdefault: 'horizontal',\n\t\tenum: [ 'horizontal', 'vertical' ],\n\t},\n\tactiveTabIndex: {\n\t\ttype: 'number',\n\t\tdefault: 0,\n\t},\n\ttabInactiveColor: {\n\t\ttype: 'string',\n\t},\n\tcustomTabInactiveColor: {\n\t\ttype: 'string',\n\t},\n\ttabHoverColor: {\n\t\ttype: 'string',\n\t},\n\tcustomTabHoverColor: {\n\t\ttype: 'string',\n\t},\n\ttabActiveColor: {\n\t\ttype: 'string',\n\t},\n\tcustomTabActiveColor: {\n\t\ttype: 'string',\n\t},\n\ttabTextColor: {\n\t\ttype: 'string',\n\t},\n\tcustomTabTextColor: {\n\t\ttype: 'string',\n\t},\n\ttabActiveTextColor: {\n\t\ttype: 'string',\n\t},\n\tcustomTabActiveTextColor: {\n\t\ttype: 'string',\n\t},\n\ttabHoverTextColor: {\n\t\ttype: 'string',\n\t},\n\tcustomTabHoverTextColor: {\n\t\ttype: 'string',\n\t},\n};\n\n/**\n * The old save function before restructuring.\n * This renders the tab blocks directly as children with a tabs list placeholder.\n *\n * @param {Object} root0 Component props.\n * @param {Object} root0.attributes Block attributes.\n */\nfunction v1Save( { attributes } ) {\n\tconst blockProps = useBlockProps.save();\n\tconst innerBlocksProps = useInnerBlocksProps.save( {} );\n\tconst title = attributes?.metadata?.name || 'Tab Contents';\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<h3 className=\"tabs__title\">{ title }</h3>\n\t\t\t<ul className=\"tabs__list\"></ul>\n\t\t\t{ innerBlocksProps.children }\n\t\t</div>\n\t);\n}\n\n/**\n * Migration function to convert old tabs structure to new structure.\n *\n * Old structure:\n * - core/tabs (with color attributes and tab innerblocks)\n * - core/tab\n * - core/tab\n *\n * New structure:\n * - core/tabs (orientation only)\n * - core/tabs-menu (with color attributes)\n * - core/tab-panels\n * - core/tab\n * - core/tab\n *\n * @param {Object} attributes Block attributes.\n * @param {Array} innerBlocks Inner blocks array.\n */\nfunction v1Migrate( attributes, innerBlocks ) {\n\t// Extract color attributes for tabs-menu\n\tconst tabsMenuAttributes = {\n\t\t// Map inactive colors to core background/text supports\n\t\tbackgroundColor: attributes.tabInactiveColor,\n\t\ttextColor: attributes.tabTextColor,\n\t\t// Map custom inactive colors\n\t\tstyle: {\n\t\t\tcolor: {\n\t\t\t\tbackground: attributes.customTabInactiveColor,\n\t\t\t\ttext: attributes.customTabTextColor,\n\t\t\t},\n\t\t},\n\t\t// Active colors\n\t\tactiveBackgroundColor: attributes.tabActiveColor,\n\t\tcustomActiveBackgroundColor: attributes.customTabActiveColor,\n\t\tactiveTextColor: attributes.tabActiveTextColor,\n\t\tcustomActiveTextColor: attributes.customTabActiveTextColor,\n\t\t// Hover colors\n\t\thoverBackgroundColor: attributes.tabHoverColor,\n\t\tcustomHoverBackgroundColor: attributes.customTabHoverColor,\n\t\thoverTextColor: attributes.tabHoverTextColor,\n\t\tcustomHoverTextColor: attributes.customTabHoverTextColor,\n\t};\n\n\t// Clean up undefined values from style object\n\tif ( tabsMenuAttributes.style?.color ) {\n\t\tif ( ! tabsMenuAttributes.style.color.background ) {\n\t\t\tdelete tabsMenuAttributes.style.color.background;\n\t\t}\n\t\tif ( ! tabsMenuAttributes.style.color.text ) {\n\t\t\tdelete tabsMenuAttributes.style.color.text;\n\t\t}\n\t\tif ( Object.keys( tabsMenuAttributes.style.color ).length === 0 ) {\n\t\t\tdelete tabsMenuAttributes.style.color;\n\t\t}\n\t\tif ( Object.keys( tabsMenuAttributes.style ).length === 0 ) {\n\t\t\tdelete tabsMenuAttributes.style;\n\t\t}\n\t}\n\n\t// Clean up undefined top-level attributes\n\tObject.keys( tabsMenuAttributes ).forEach( ( key ) => {\n\t\tif ( tabsMenuAttributes[ key ] === undefined ) {\n\t\t\tdelete tabsMenuAttributes[ key ];\n\t\t}\n\t} );\n\n\t// Create tabs-menu block\n\tconst tabsMenuBlock = createBlock( 'core/tabs-menu', tabsMenuAttributes );\n\n\t// Create tab-panels block with existing tab innerblocks\n\tconst tabPanelsBlock = createBlock( 'core/tab-panels', {}, innerBlocks );\n\n\t// Return new attributes (stripped of color attrs) and new innerblocks structure\n\tconst newAttributes = {\n\t\ttabsId: attributes.tabsId,\n\t\torientation: attributes.orientation,\n\t\tactiveTabIndex: attributes.activeTabIndex,\n\t\tmetadata: attributes.metadata,\n\t};\n\n\treturn [ newAttributes, [ tabsMenuBlock, tabPanelsBlock ] ];\n}\n\n/**\n * Check if block is using old structure (tab blocks directly as children).\n *\n * @param {Object} attributes Block attributes.\n * @param {Array} innerBlocks Inner blocks array.\n */\nfunction v1IsEligible( attributes, innerBlocks ) {\n\t// If there are any direct tab children (not wrapped in tab-panels), this is old structure\n\treturn innerBlocks.some( ( block ) => block.name === 'core/tab' );\n}\n\nconst deprecated = [\n\t{\n\t\tattributes: v1Attributes,\n\t\tsupports: {\n\t\t\talign: true,\n\t\t\tcolor: {\n\t\t\t\ttext: false,\n\t\t\t\tbackground: false,\n\t\t\t},\n\t\t\thtml: false,\n\t\t\tinteractivity: true,\n\t\t\tspacing: {\n\t\t\t\tblockGap: [ 'horizontal', 'vertical' ],\n\t\t\t\tmargin: true,\n\t\t\t\tpadding: false,\n\t\t\t},\n\t\t\ttypography: {\n\t\t\t\tfontSize: true,\n\t\t\t\t__experimentalFontFamily: true,\n\t\t\t},\n\t\t\t__experimentalBorder: {\n\t\t\t\tradius: true,\n\t\t\t\t__experimentalSkipSerialization: true,\n\t\t\t\t__experimentalDefaultControls: {\n\t\t\t\t\tradius: true,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tisEligible: v1IsEligible,\n\t\tmigrate: v1Migrate,\n\t\tsave: v1Save,\n\t},\n];\n\nexport default deprecated;\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -33,85 +33,107 @@ __export(edit_exports, {
33
33
  default: () => edit_default
34
34
  });
35
35
  module.exports = __toCommonJS(edit_exports);
36
- var import_clsx = __toESM(require("clsx"));
36
+ var import_i18n = require("@wordpress/i18n");
37
37
  var import_block_editor = require("@wordpress/block-editor");
38
- var import_style_engine = __toESM(require("./style-engine.cjs"));
38
+ var import_data = require("@wordpress/data");
39
+ var import_element = require("@wordpress/element");
39
40
  var import_controls = __toESM(require("./controls.cjs"));
40
41
  var import_jsx_runtime = require("react/jsx-runtime");
41
- var TABS_TEMPLATE = [["core/tab", {}]];
42
- var DEFAULT_BLOCK = {
43
- name: "core/tab",
44
- attributesToCopy: ["className", "fontFamily", "fontSize"]
45
- };
42
+ var TABS_TEMPLATE = [
43
+ [
44
+ "core/tabs-menu",
45
+ {
46
+ lock: {
47
+ remove: true
48
+ }
49
+ }
50
+ ],
51
+ [
52
+ "core/tab-panels",
53
+ {
54
+ lock: {
55
+ remove: true
56
+ }
57
+ },
58
+ [
59
+ [
60
+ "core/tab",
61
+ {
62
+ anchor: "tab-1",
63
+ label: "Tab 1"
64
+ },
65
+ [
66
+ [
67
+ "core/paragraph",
68
+ {
69
+ placeholder: (0, import_i18n.__)("Type / to add a block to tab")
70
+ }
71
+ ]
72
+ ]
73
+ ]
74
+ ]
75
+ ]
76
+ ];
46
77
  function Edit({
47
78
  clientId,
48
79
  attributes,
49
80
  setAttributes,
50
- tabInactiveColor,
51
- setTabInactiveColor,
52
- tabHoverColor,
53
- setTabHoverColor,
54
- tabActiveColor,
55
- setTabActiveColor,
56
- tabTextColor,
57
- setTabTextColor,
58
- tabActiveTextColor,
59
- setTabActiveTextColor,
60
- tabHoverTextColor,
61
- setTabHoverTextColor
81
+ __unstableLayoutClassNames: layoutClassNames
62
82
  }) {
63
- const { style, orientation } = attributes;
64
- const blockProps = (0, import_block_editor.useBlockProps)({
65
- className: (0, import_clsx.default)(
66
- "vertical" === orientation ? "is-vertical" : "is-horizontal"
67
- ),
68
- style: {
69
- ...style
83
+ const { anchor, activeTabIndex, editorActiveTabIndex } = attributes;
84
+ (0, import_element.useEffect)(() => {
85
+ if (editorActiveTabIndex === void 0) {
86
+ setAttributes({ editorActiveTabIndex: activeTabIndex });
70
87
  }
88
+ }, []);
89
+ const tabsList = (0, import_data.useSelect)(
90
+ (select) => {
91
+ const { getBlocks } = select(import_block_editor.store);
92
+ const innerBlocks = getBlocks(clientId);
93
+ const tabPanels = innerBlocks.find(
94
+ (block) => block.name === "core/tab-panels"
95
+ );
96
+ if (!tabPanels) {
97
+ return [];
98
+ }
99
+ return tabPanels.innerBlocks.filter((block) => block.name === "core/tab").map((tab, index) => ({
100
+ id: tab.attributes.anchor || `tab-${index}`,
101
+ label: tab.attributes.label || "",
102
+ clientId: tab.clientId,
103
+ index
104
+ }));
105
+ },
106
+ [clientId]
107
+ );
108
+ const contextValue = (0, import_element.useMemo)(
109
+ () => ({
110
+ "core/tabs-list": tabsList,
111
+ "core/tabs-id": anchor,
112
+ "core/tabs-activeTabIndex": activeTabIndex,
113
+ "core/tabs-editorActiveTabIndex": editorActiveTabIndex
114
+ }),
115
+ [tabsList, anchor, activeTabIndex, editorActiveTabIndex]
116
+ );
117
+ const blockProps = (0, import_block_editor.useBlockProps)({
118
+ className: layoutClassNames
71
119
  });
72
120
  const innerBlockProps = (0, import_block_editor.useInnerBlocksProps)(blockProps, {
73
- defaultBlock: DEFAULT_BLOCK,
74
- directInsert: true,
75
- __experimentalCaptureToolbars: true,
76
- clientId,
77
- orientation,
78
121
  template: TABS_TEMPLATE,
79
- renderAppender: false
80
- // Appender is rendered by individual tab blocks.
122
+ templateLock: false,
123
+ renderAppender: false,
124
+ __experimentalCaptureToolbars: true
81
125
  });
82
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { ...innerBlockProps, children: [
83
- innerBlockProps.children,
84
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_style_engine.default, { attributes, clientId }),
126
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_block_editor.BlockContextProvider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { ...innerBlockProps, children: [
85
127
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
86
128
  import_controls.default,
87
129
  {
88
- ...{
89
- clientId,
90
- attributes,
91
- setAttributes,
92
- tabInactiveColor,
93
- setTabInactiveColor,
94
- tabHoverColor,
95
- setTabHoverColor,
96
- tabActiveColor,
97
- setTabActiveColor,
98
- tabTextColor,
99
- setTabTextColor,
100
- tabActiveTextColor,
101
- setTabActiveTextColor,
102
- tabHoverTextColor,
103
- setTabHoverTextColor
104
- }
130
+ clientId,
131
+ attributes,
132
+ setAttributes
105
133
  }
106
- )
134
+ ),
135
+ innerBlockProps.children
107
136
  ] }) });
108
137
  }
109
- var edit_default = (0, import_block_editor.withColors)(
110
- "tabInactiveColor",
111
- "tabHoverColor",
112
- "tabActiveColor",
113
- "tabTextColor",
114
- "tabActiveTextColor",
115
- "tabHoverTextColor"
116
- )(Edit);
138
+ var edit_default = Edit;
117
139
  //# sourceMappingURL=edit.cjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/tabs/edit.js"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\twithColors,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport StyleEngine from './style-engine';\nimport Controls from './controls';\n\nconst TABS_TEMPLATE = [ [ 'core/tab', {} ] ];\n\nconst DEFAULT_BLOCK = {\n\tname: 'core/tab',\n\tattributesToCopy: [ 'className', 'fontFamily', 'fontSize' ],\n};\n\nfunction Edit( {\n\tclientId,\n\tattributes,\n\tsetAttributes,\n\ttabInactiveColor,\n\tsetTabInactiveColor,\n\ttabHoverColor,\n\tsetTabHoverColor,\n\ttabActiveColor,\n\tsetTabActiveColor,\n\ttabTextColor,\n\tsetTabTextColor,\n\ttabActiveTextColor,\n\tsetTabActiveTextColor,\n\ttabHoverTextColor,\n\tsetTabHoverTextColor,\n} ) {\n\tconst { style, orientation } = attributes;\n\n\t/**\n\t * Block props for the tabs container.\n\t */\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx(\n\t\t\t'vertical' === orientation ? 'is-vertical' : 'is-horizontal'\n\t\t),\n\t\tstyle: {\n\t\t\t...style,\n\t\t},\n\t} );\n\n\t/**\n\t * Innerblocks props for the tabs list.\n\t */\n\tconst innerBlockProps = useInnerBlocksProps( blockProps, {\n\t\tdefaultBlock: DEFAULT_BLOCK,\n\t\tdirectInsert: true,\n\t\t__experimentalCaptureToolbars: true,\n\t\tclientId,\n\t\torientation,\n\t\ttemplate: TABS_TEMPLATE,\n\t\trenderAppender: false, // Appender is rendered by individual tab blocks.\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<div { ...innerBlockProps }>\n\t\t\t\t{ innerBlockProps.children }\n\t\t\t\t<StyleEngine attributes={ attributes } clientId={ clientId } />\n\t\t\t\t<Controls\n\t\t\t\t\t{ ...{\n\t\t\t\t\t\tclientId,\n\t\t\t\t\t\tattributes,\n\t\t\t\t\t\tsetAttributes,\n\t\t\t\t\t\ttabInactiveColor,\n\t\t\t\t\t\tsetTabInactiveColor,\n\t\t\t\t\t\ttabHoverColor,\n\t\t\t\t\t\tsetTabHoverColor,\n\t\t\t\t\t\ttabActiveColor,\n\t\t\t\t\t\tsetTabActiveColor,\n\t\t\t\t\t\ttabTextColor,\n\t\t\t\t\t\tsetTabTextColor,\n\t\t\t\t\t\ttabActiveTextColor,\n\t\t\t\t\t\tsetTabActiveTextColor,\n\t\t\t\t\t\ttabHoverTextColor,\n\t\t\t\t\t\tsetTabHoverTextColor,\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 withColors(\n\t'tabInactiveColor',\n\t'tabHoverColor',\n\t'tabActiveColor',\n\t'tabTextColor',\n\t'tabActiveTextColor',\n\t'tabHoverTextColor'\n)( Edit );\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAiB;AAKjB,0BAIO;AAKP,0BAAwB;AACxB,sBAAqB;AAsDnB;AApDF,IAAM,gBAAgB,CAAE,CAAE,YAAY,CAAC,CAAE,CAAE;AAE3C,IAAM,gBAAgB;AAAA,EACrB,MAAM;AAAA,EACN,kBAAkB,CAAE,aAAa,cAAc,UAAW;AAC3D;AAEA,SAAS,KAAM;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM,EAAE,OAAO,YAAY,IAAI;AAK/B,QAAM,iBAAa,mCAAe;AAAA,IACjC,eAAW,YAAAA;AAAA,MACV,eAAe,cAAc,gBAAgB;AAAA,IAC9C;AAAA,IACA,OAAO;AAAA,MACN,GAAG;AAAA,IACJ;AAAA,EACD,CAAE;AAKF,QAAM,sBAAkB,yCAAqB,YAAY;AAAA,IACxD,cAAc;AAAA,IACd,cAAc;AAAA,IACd,+BAA+B;AAAA,IAC/B;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV,gBAAgB;AAAA;AAAA,EACjB,CAAE;AAEF,SACC,2EACC,uDAAC,SAAM,GAAG,iBACP;AAAA,oBAAgB;AAAA,IAClB,4CAAC,oBAAAC,SAAA,EAAY,YAA0B,UAAsB;AAAA,IAC7D;AAAA,MAAC,gBAAAC;AAAA,MAAA;AAAA,QACE,GAAG;AAAA,UACJ;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACD;AAAA;AAAA,IACD;AAAA,KACD,GACD;AAEF;AAEA,IAAO,mBAAQ;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,EAAG,IAAK;",
6
- "names": ["clsx", "StyleEngine", "Controls"]
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockContextProvider,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Controls from './controls';\n\nconst TABS_TEMPLATE = [\n\t[\n\t\t'core/tabs-menu',\n\t\t{\n\t\t\tlock: {\n\t\t\t\tremove: true,\n\t\t\t},\n\t\t},\n\t],\n\t[\n\t\t'core/tab-panels',\n\t\t{\n\t\t\tlock: {\n\t\t\t\tremove: true,\n\t\t\t},\n\t\t},\n\t\t[\n\t\t\t[\n\t\t\t\t'core/tab',\n\t\t\t\t{\n\t\t\t\t\tanchor: 'tab-1',\n\t\t\t\t\tlabel: 'Tab 1',\n\t\t\t\t},\n\t\t\t\t[\n\t\t\t\t\t[\n\t\t\t\t\t\t'core/paragraph',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tplaceholder: __( 'Type / to add a block to tab' ),\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],\n\t],\n];\n\nfunction Edit( {\n\tclientId,\n\tattributes,\n\tsetAttributes,\n\t__unstableLayoutClassNames: layoutClassNames,\n} ) {\n\tconst { anchor, activeTabIndex, editorActiveTabIndex } = attributes;\n\n\t/**\n\t * Initialize editorActiveTabIndex to activeTabIndex on mount.\n\t * This ensures the ephemeral editor state starts at the persisted default.\n\t */\n\tuseEffect( () => {\n\t\tif ( editorActiveTabIndex === undefined ) {\n\t\t\tsetAttributes( { editorActiveTabIndex: activeTabIndex } );\n\t\t}\n\t}, [] ); // eslint-disable-line react-hooks/exhaustive-deps\n\n\t/**\n\t * Compute tabs list from innerblocks to provide via context.\n\t * This traverses the tab-panels block to find all tab blocks\n\t * and extracts their label and anchor for the tabs-menu to consume.\n\t */\n\tconst tabsList = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlocks } = select( blockEditorStore );\n\t\t\tconst innerBlocks = getBlocks( clientId );\n\n\t\t\t// Find tab-panels block and extract tab data\n\t\t\tconst tabPanels = innerBlocks.find(\n\t\t\t\t( block ) => block.name === 'core/tab-panels'\n\t\t\t);\n\n\t\t\tif ( ! tabPanels ) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\treturn tabPanels.innerBlocks\n\t\t\t\t.filter( ( block ) => block.name === 'core/tab' )\n\t\t\t\t.map( ( tab, index ) => ( {\n\t\t\t\t\tid: tab.attributes.anchor || `tab-${ index }`,\n\t\t\t\t\tlabel: tab.attributes.label || '',\n\t\t\t\t\tclientId: tab.clientId,\n\t\t\t\t\tindex,\n\t\t\t\t} ) );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\t/**\n\t * Memoize context value to prevent unnecessary re-renders.\n\t */\n\tconst contextValue = useMemo(\n\t\t() => ( {\n\t\t\t'core/tabs-list': tabsList,\n\t\t\t'core/tabs-id': anchor,\n\t\t\t'core/tabs-activeTabIndex': activeTabIndex,\n\t\t\t'core/tabs-editorActiveTabIndex': editorActiveTabIndex,\n\t\t} ),\n\t\t[ tabsList, anchor, activeTabIndex, editorActiveTabIndex ]\n\t);\n\n\t/**\n\t * Block props for the tabs container.\n\t */\n\tconst blockProps = useBlockProps( {\n\t\tclassName: layoutClassNames,\n\t} );\n\n\t/**\n\t * Innerblocks props for the tabs container.\n\t */\n\tconst innerBlockProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TABS_TEMPLATE,\n\t\ttemplateLock: false,\n\t\trenderAppender: false,\n\t\t__experimentalCaptureToolbars: true,\n\t} );\n\n\treturn (\n\t\t<BlockContextProvider value={ contextValue }>\n\t\t\t<div { ...innerBlockProps }>\n\t\t\t\t<Controls\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t\t{ innerBlockProps.children }\n\t\t\t</div>\n\t\t</BlockContextProvider>\n\t);\n}\n\nexport default Edit;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AACnB,0BAKO;AACP,kBAA0B;AAC1B,qBAAmC;AAKnC,sBAAqB;AAuHlB;AArHH,IAAM,gBAAgB;AAAA,EACrB;AAAA,IACC;AAAA,IACA;AAAA,MACC,MAAM;AAAA,QACL,QAAQ;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAAA,EACA;AAAA,IACC;AAAA,IACA;AAAA,MACC,MAAM;AAAA,QACL,QAAQ;AAAA,MACT;AAAA,IACD;AAAA,IACA;AAAA,MACC;AAAA,QACC;AAAA,QACA;AAAA,UACC,QAAQ;AAAA,UACR,OAAO;AAAA,QACR;AAAA,QACA;AAAA,UACC;AAAA,YACC;AAAA,YACA;AAAA,cACC,iBAAa,gBAAI,8BAA+B;AAAA,YACjD;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD;AAEA,SAAS,KAAM;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA,4BAA4B;AAC7B,GAAI;AACH,QAAM,EAAE,QAAQ,gBAAgB,qBAAqB,IAAI;AAMzD,gCAAW,MAAM;AAChB,QAAK,yBAAyB,QAAY;AACzC,oBAAe,EAAE,sBAAsB,eAAe,CAAE;AAAA,IACzD;AAAA,EACD,GAAG,CAAC,CAAE;AAON,QAAM,eAAW;AAAA,IAChB,CAAE,WAAY;AACb,YAAM,EAAE,UAAU,IAAI,OAAQ,oBAAAA,KAAiB;AAC/C,YAAM,cAAc,UAAW,QAAS;AAGxC,YAAM,YAAY,YAAY;AAAA,QAC7B,CAAE,UAAW,MAAM,SAAS;AAAA,MAC7B;AAEA,UAAK,CAAE,WAAY;AAClB,eAAO,CAAC;AAAA,MACT;AAEA,aAAO,UAAU,YACf,OAAQ,CAAE,UAAW,MAAM,SAAS,UAAW,EAC/C,IAAK,CAAE,KAAK,WAAa;AAAA,QACzB,IAAI,IAAI,WAAW,UAAU,OAAQ,KAAM;AAAA,QAC3C,OAAO,IAAI,WAAW,SAAS;AAAA,QAC/B,UAAU,IAAI;AAAA,QACd;AAAA,MACD,EAAI;AAAA,IACN;AAAA,IACA,CAAE,QAAS;AAAA,EACZ;AAKA,QAAM,mBAAe;AAAA,IACpB,OAAQ;AAAA,MACP,kBAAkB;AAAA,MAClB,gBAAgB;AAAA,MAChB,4BAA4B;AAAA,MAC5B,kCAAkC;AAAA,IACnC;AAAA,IACA,CAAE,UAAU,QAAQ,gBAAgB,oBAAqB;AAAA,EAC1D;AAKA,QAAM,iBAAa,mCAAe;AAAA,IACjC,WAAW;AAAA,EACZ,CAAE;AAKF,QAAM,sBAAkB,yCAAqB,YAAY;AAAA,IACxD,UAAU;AAAA,IACV,cAAc;AAAA,IACd,gBAAgB;AAAA,IAChB,+BAA+B;AAAA,EAChC,CAAE;AAEF,SACC,4CAAC,4CAAqB,OAAQ,cAC7B,uDAAC,SAAM,GAAG,iBACT;AAAA;AAAA,MAAC,gBAAAC;AAAA,MAAA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACD;AAAA,IACE,gBAAgB;AAAA,KACnB,GACD;AAEF;AAEA,IAAO,eAAQ;",
6
+ "names": ["blockEditorStore", "Controls"]
7
7
  }
@@ -40,12 +40,14 @@ var import_init_block = __toESM(require("../utils/init-block.cjs"));
40
40
  var import_edit = __toESM(require("./edit.cjs"));
41
41
  var import_save = __toESM(require("./save.cjs"));
42
42
  var import_icon = __toESM(require("./icon.cjs"));
43
+ var import_deprecated = __toESM(require("./deprecated.cjs"));
43
44
  var import_block = __toESM(require("./block.json"));
44
45
  var { name } = import_block.default;
45
46
  var settings = {
46
47
  icon: import_icon.default,
47
48
  edit: import_edit.default,
48
- save: import_save.default
49
+ save: import_save.default,
50
+ deprecated: import_deprecated.default
49
51
  };
50
52
  var init = () => (0, import_init_block.default)({ name, metadata: import_block.default, settings });
51
53
  // Annotate the CommonJS export names for ESM import in node:
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/tabs/index.js"],
4
- "sourcesContent": ["/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport save from './save';\nimport icon from './icon';\n\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,wBAAsB;AACtB,kBAAiB;AACjB,kBAAiB;AACjB,kBAAiB;AAEjB,mBAAqB;AAErB,IAAM,EAAE,KAAK,IAAI,aAAAA;AAIV,IAAM,WAAW;AAAA,EACvB,kBAAAC;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"]
4
+ "sourcesContent": ["/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport save from './save';\nimport icon from './icon';\nimport deprecated from './deprecated';\n\nimport metadata from './block.json';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n\tdeprecated,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA,+BAAAA;AAAA,EAAA;AAAA;AAAA;AAAA;AAGA,wBAAsB;AACtB,kBAAiB;AACjB,kBAAiB;AACjB,kBAAiB;AACjB,wBAAuB;AAEvB,mBAAqB;AAErB,IAAM,EAAE,KAAK,IAAI,aAAAA;AAIV,IAAM,WAAW;AAAA,EACvB,kBAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,8BAAAC;AACD;AAEO,IAAM,OAAO,UAAM,kBAAAC,SAAW,EAAE,MAAM,uBAAAC,SAAU,SAAS,CAAE;",
6
+ "names": ["metadata", "icon", "edit", "save", "deprecated", "initBlock", "metadata"]
7
7
  }
@@ -20,19 +20,16 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // packages/block-library/src/tabs/save.js
21
21
  var save_exports = {};
22
22
  __export(save_exports, {
23
- default: () => Save
23
+ default: () => save
24
24
  });
25
25
  module.exports = __toCommonJS(save_exports);
26
26
  var import_block_editor = require("@wordpress/block-editor");
27
27
  var import_jsx_runtime = require("react/jsx-runtime");
28
- function Save({ attributes }) {
28
+ function save({ attributes }) {
29
+ const { anchor } = attributes;
30
+ const tabsId = anchor;
29
31
  const blockProps = import_block_editor.useBlockProps.save();
30
- const innerBlocksProps = import_block_editor.useInnerBlocksProps.save({});
31
- const title = attributes?.metadata?.name || "Tab Contents";
32
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { ...blockProps, children: [
33
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h3", { className: "tabs__title", children: title }),
34
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("ul", { className: "tabs__list" }),
35
- innerBlocksProps.children
36
- ] });
32
+ const innerBlocksProps = import_block_editor.useInnerBlocksProps.save(blockProps);
33
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { ...innerBlocksProps, id: tabsId });
37
34
  }
38
35
  //# sourceMappingURL=save.cjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/tabs/save.js"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';\n\nexport default function Save( { attributes } ) {\n\t// eslint-disable-next-line react-compiler/react-compiler\n\tconst blockProps = useBlockProps.save();\n\n\t// eslint-disable-next-line react-compiler/react-compiler\n\tconst innerBlocksProps = useInnerBlocksProps.save( {} );\n\n\tconst title = attributes?.metadata?.name || 'Tab Contents';\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<h3 className=\"tabs__title\">{ title }</h3>\n\t\t\t<ul className=\"tabs__list\"></ul>\n\t\t\t{ innerBlocksProps.children }\n\t\t</div>\n\t);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAAmD;AAYjD;AAVa,SAAR,KAAuB,EAAE,WAAW,GAAI;AAE9C,QAAM,aAAa,kCAAc,KAAK;AAGtC,QAAM,mBAAmB,wCAAoB,KAAM,CAAC,CAAE;AAEtD,QAAM,QAAQ,YAAY,UAAU,QAAQ;AAE5C,SACC,6CAAC,SAAM,GAAG,YACT;AAAA,gDAAC,QAAG,WAAU,eAAgB,iBAAO;AAAA,IACrC,4CAAC,QAAG,WAAU,cAAa;AAAA,IACzB,iBAAiB;AAAA,KACpB;AAEF;",
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst { anchor } = attributes;\n\n\tconst tabsId = anchor;\n\n\tconst blockProps = useBlockProps.save();\n\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\n\treturn <div { ...innerBlocksProps } id={ tabsId } />;\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAAmD;AAU3C;AARO,SAAR,KAAuB,EAAE,WAAW,GAAI;AAC9C,QAAM,EAAE,OAAO,IAAI;AAEnB,QAAM,SAAS;AAEf,QAAM,aAAa,kCAAc,KAAK;AACtC,QAAM,mBAAmB,wCAAoB,KAAM,UAAW;AAE9D,SAAO,4CAAC,SAAM,GAAG,kBAAmB,IAAK,QAAS;AACnD;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,77 @@
1
+ {
2
+ "$schema": "https://schemas.wp.org/trunk/block.json",
3
+ "__experimental": true,
4
+ "apiVersion": 3,
5
+ "name": "core/tabs-menu",
6
+ "title": "Tabs Menu",
7
+ "description": "Display the tab buttons for a tabbed interface.",
8
+ "version": "1.0.0",
9
+ "category": "design",
10
+ "textdomain": "default",
11
+ "parent": [
12
+ "core/tabs"
13
+ ],
14
+ "allowedBlocks": [
15
+ "core/tabs-menu-item"
16
+ ],
17
+ "usesContext": [
18
+ "core/tabs-list",
19
+ "core/tabs-id",
20
+ "core/tabs-activeTabIndex",
21
+ "core/tabs-editorActiveTabIndex"
22
+ ],
23
+ "attributes": {},
24
+ "supports": {
25
+ "html": false,
26
+ "reusable": false,
27
+ "lock": false,
28
+ "dimensions": {
29
+ "aspectRatio": false,
30
+ "height": false,
31
+ "minHeight": false,
32
+ "width": false
33
+ },
34
+ "color": {
35
+ "background": true,
36
+ "text": true,
37
+ "__experimentalDefaultControls": {
38
+ "background": true,
39
+ "text": true
40
+ }
41
+ },
42
+ "typography": {
43
+ "fontSize": true,
44
+ "__experimentalFontFamily": true
45
+ },
46
+ "__experimentalBorder": {
47
+ "color": true,
48
+ "radius": true,
49
+ "style": true,
50
+ "width": true
51
+ },
52
+ "layout": {
53
+ "default": {
54
+ "type": "flex",
55
+ "flexWrap": "nowrap",
56
+ "orientation": "horizontal"
57
+ },
58
+ "allowSwitching": false,
59
+ "allowVerticalAlignment": true,
60
+ "allowJustification": true,
61
+ "allowOrientation": true
62
+ },
63
+ "spacing": {
64
+ "padding": true,
65
+ "margin": true,
66
+ "blockGap": true,
67
+ "__experimentalDefaultControls": {
68
+ "padding": true,
69
+ "margin": true,
70
+ "blockGap": true
71
+ }
72
+ }
73
+ },
74
+ "editorScript": "file:./index.js",
75
+ "editorStyle": "file:./editor.css",
76
+ "style": "file:./style-index.css"
77
+ }