@wordpress/block-library 9.44.1-next.v.202604201441.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 (315) 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/categories/edit.cjs +5 -1
  6. package/build/categories/edit.cjs.map +2 -2
  7. package/build/embed/edit.cjs +38 -34
  8. package/build/embed/edit.cjs.map +3 -3
  9. package/build/embed/transforms.cjs +3 -1
  10. package/build/embed/transforms.cjs.map +2 -2
  11. package/build/embed/util.cjs +13 -2
  12. package/build/embed/util.cjs.map +2 -2
  13. package/build/form/block.json +1 -1
  14. package/build/form-input/block.json +1 -1
  15. package/build/form-submission-notification/block.json +1 -1
  16. package/build/form-submit-button/block.json +1 -1
  17. package/build/image/edit.cjs +1 -1
  18. package/build/image/edit.cjs.map +2 -2
  19. package/build/image/image.cjs +29 -10
  20. package/build/image/image.cjs.map +3 -3
  21. package/build/index.cjs +4 -4
  22. package/build/index.cjs.map +2 -2
  23. package/build/math/edit.cjs +2 -2
  24. package/build/math/edit.cjs.map +2 -2
  25. package/build/navigation/edit/accessible-description.cjs +2 -2
  26. package/build/navigation/edit/accessible-description.cjs.map +2 -2
  27. package/build/navigation/edit/overlay-template-part-selector.cjs.map +2 -2
  28. package/build/navigation-link/edit.cjs +2 -1
  29. package/build/navigation-link/edit.cjs.map +2 -2
  30. package/build/navigation-link/link-ui/dialog-wrapper.cjs +2 -1
  31. package/build/navigation-link/link-ui/dialog-wrapper.cjs.map +2 -2
  32. package/build/navigation-link/link-ui/index.cjs +2 -1
  33. package/build/navigation-link/link-ui/index.cjs.map +2 -2
  34. package/build/post-author/edit.cjs.map +3 -3
  35. package/build/post-comments-form/edit.cjs +2 -2
  36. package/build/post-comments-form/edit.cjs.map +2 -2
  37. package/build/query/edit/inspector-controls/author-control.cjs +1 -1
  38. package/build/query/edit/inspector-controls/author-control.cjs.map +2 -2
  39. package/build/query/edit/inspector-controls/format-controls.cjs +1 -1
  40. package/build/query/edit/inspector-controls/format-controls.cjs.map +2 -2
  41. package/build/query/edit/inspector-controls/parent-control.cjs +1 -1
  42. package/build/query/edit/inspector-controls/parent-control.cjs.map +2 -2
  43. package/build/query/edit/inspector-controls/taxonomy-controls.cjs +1 -1
  44. package/build/query/edit/inspector-controls/taxonomy-controls.cjs.map +2 -2
  45. package/build/site-logo/edit.cjs +32 -18
  46. package/build/site-logo/edit.cjs.map +2 -2
  47. package/build/tab/block.json +23 -23
  48. package/build/tab/controls.cjs +5 -48
  49. package/build/tab/controls.cjs.map +3 -3
  50. package/build/tab/edit.cjs +77 -75
  51. package/build/tab/edit.cjs.map +3 -3
  52. package/build/tab/save.cjs +3 -3
  53. package/build/tab/save.cjs.map +2 -2
  54. package/{src/tabs-menu → build/tab-list}/block.json +3 -3
  55. package/build/{tabs-menu → tab-list}/edit.cjs +4 -4
  56. package/build/tab-list/edit.cjs.map +7 -0
  57. package/build/{tabs-menu → tab-list}/index.cjs +5 -5
  58. package/build/tab-list/index.cjs.map +7 -0
  59. package/build/{tabs-menu → tab-list}/save.cjs +1 -1
  60. package/build/{tabs-menu → tab-list}/save.cjs.map +1 -1
  61. package/build/{tab → tab-panel}/add-tab-toolbar-control.cjs +16 -16
  62. package/build/tab-panel/add-tab-toolbar-control.cjs.map +7 -0
  63. package/build/tab-panel/block.json +27 -37
  64. package/build/tab-panel/controls.cjs +89 -0
  65. package/build/tab-panel/controls.cjs.map +7 -0
  66. package/build/tab-panel/edit.cjs +90 -17
  67. package/build/tab-panel/edit.cjs.map +3 -3
  68. package/build/tab-panel/index.cjs +1 -1
  69. package/build/tab-panel/index.cjs.map +1 -1
  70. package/build/{tab → tab-panel}/init.cjs +1 -1
  71. package/build/{tab → tab-panel}/init.cjs.map +1 -1
  72. package/build/{tab → tab-panel}/remove-tab-toolbar-control.cjs +16 -16
  73. package/build/tab-panel/remove-tab-toolbar-control.cjs.map +7 -0
  74. package/build/tab-panel/save.cjs +4 -2
  75. package/build/tab-panel/save.cjs.map +2 -2
  76. package/build/tab-panels/block.json +66 -0
  77. package/build/{tabs-menu-item/controls.cjs → tab-panels/edit.cjs} +25 -11
  78. package/build/tab-panels/edit.cjs.map +7 -0
  79. package/build/{tabs-menu-item → tab-panels}/index.cjs +5 -5
  80. package/build/{tabs-menu → tab-panels}/index.cjs.map +2 -2
  81. package/build/{tabs-menu-item → tab-panels}/save.cjs +4 -6
  82. package/build/tab-panels/save.cjs.map +7 -0
  83. package/build/tabs/block.json +1 -1
  84. package/build/tabs/controls.cjs +2 -2
  85. package/build/tabs/controls.cjs.map +1 -1
  86. package/build/tabs/edit.cjs +24 -19
  87. package/build/tabs/edit.cjs.map +3 -3
  88. package/build/tabs/index.cjs +5 -5
  89. package/build/tabs/index.cjs.map +1 -1
  90. package/build/tabs/{use-tab-menu-sync.cjs → use-tab-list-sync.cjs} +78 -80
  91. package/build/tabs/use-tab-list-sync.cjs.map +7 -0
  92. package/build/terms-query/edit/inspector-controls/include-control.cjs +1 -1
  93. package/build/terms-query/edit/inspector-controls/include-control.cjs.map +2 -2
  94. package/build/video/tracks-editor.cjs +2 -2
  95. package/build/video/tracks-editor.cjs.map +2 -2
  96. package/build-module/accordion/edit.mjs +0 -2
  97. package/build-module/accordion/edit.mjs.map +2 -2
  98. package/build-module/accordion-item/block.json +1 -0
  99. package/build-module/categories/edit.mjs +5 -2
  100. package/build-module/categories/edit.mjs.map +2 -2
  101. package/build-module/embed/edit.mjs +45 -36
  102. package/build-module/embed/edit.mjs.map +2 -2
  103. package/build-module/embed/transforms.mjs +8 -2
  104. package/build-module/embed/transforms.mjs.map +2 -2
  105. package/build-module/embed/util.mjs +11 -1
  106. package/build-module/embed/util.mjs.map +2 -2
  107. package/build-module/form/block.json +1 -1
  108. package/build-module/form-input/block.json +1 -1
  109. package/build-module/form-submission-notification/block.json +1 -1
  110. package/build-module/form-submit-button/block.json +1 -1
  111. package/build-module/image/edit.mjs +1 -1
  112. package/build-module/image/edit.mjs.map +2 -2
  113. package/build-module/image/image.mjs +29 -10
  114. package/build-module/image/image.mjs.map +3 -3
  115. package/build-module/index.mjs +4 -4
  116. package/build-module/index.mjs.map +2 -2
  117. package/build-module/math/edit.mjs +2 -2
  118. package/build-module/math/edit.mjs.map +2 -2
  119. package/build-module/navigation/edit/accessible-description.mjs +1 -1
  120. package/build-module/navigation/edit/accessible-description.mjs.map +1 -1
  121. package/build-module/navigation/edit/overlay-template-part-selector.mjs +2 -2
  122. package/build-module/navigation/edit/overlay-template-part-selector.mjs.map +1 -1
  123. package/build-module/navigation-link/edit.mjs +2 -5
  124. package/build-module/navigation-link/edit.mjs.map +2 -2
  125. package/build-module/navigation-link/link-ui/dialog-wrapper.mjs +2 -1
  126. package/build-module/navigation-link/link-ui/dialog-wrapper.mjs.map +2 -2
  127. package/build-module/navigation-link/link-ui/index.mjs +1 -1
  128. package/build-module/navigation-link/link-ui/index.mjs.map +2 -2
  129. package/build-module/post-author/edit.mjs +2 -2
  130. package/build-module/post-author/edit.mjs.map +2 -2
  131. package/build-module/post-comments-form/edit.mjs +1 -1
  132. package/build-module/post-comments-form/edit.mjs.map +2 -2
  133. package/build-module/query/edit/inspector-controls/author-control.mjs +1 -1
  134. package/build-module/query/edit/inspector-controls/author-control.mjs.map +2 -2
  135. package/build-module/query/edit/inspector-controls/format-controls.mjs +1 -1
  136. package/build-module/query/edit/inspector-controls/format-controls.mjs.map +2 -2
  137. package/build-module/query/edit/inspector-controls/parent-control.mjs +1 -1
  138. package/build-module/query/edit/inspector-controls/parent-control.mjs.map +2 -2
  139. package/build-module/query/edit/inspector-controls/taxonomy-controls.mjs +1 -1
  140. package/build-module/query/edit/inspector-controls/taxonomy-controls.mjs.map +2 -2
  141. package/build-module/site-logo/edit.mjs +32 -18
  142. package/build-module/site-logo/edit.mjs.map +2 -2
  143. package/build-module/tab/block.json +23 -23
  144. package/build-module/tab/controls.mjs +7 -57
  145. package/build-module/tab/controls.mjs.map +2 -2
  146. package/build-module/tab/edit.mjs +81 -79
  147. package/build-module/tab/edit.mjs.map +3 -3
  148. package/build-module/tab/save.mjs +4 -4
  149. package/build-module/tab/save.mjs.map +2 -2
  150. package/build-module/{tabs-menu → tab-list}/block.json +3 -3
  151. package/build-module/{tabs-menu → tab-list}/edit.mjs +4 -4
  152. package/build-module/tab-list/edit.mjs.map +7 -0
  153. package/build-module/{tabs-menu → tab-list}/index.mjs +2 -2
  154. package/build-module/tab-list/index.mjs.map +7 -0
  155. package/build-module/{tabs-menu → tab-list}/save.mjs +1 -1
  156. package/build-module/{tabs-menu → tab-list}/save.mjs.map +1 -1
  157. package/build-module/{tab → tab-panel}/add-tab-toolbar-control.mjs +16 -16
  158. package/build-module/tab-panel/add-tab-toolbar-control.mjs.map +7 -0
  159. package/build-module/tab-panel/block.json +27 -37
  160. package/build-module/tab-panel/controls.mjs +65 -0
  161. package/build-module/tab-panel/controls.mjs.map +7 -0
  162. package/build-module/tab-panel/edit.mjs +92 -19
  163. package/build-module/tab-panel/edit.mjs.map +2 -2
  164. package/build-module/tab-panel/index.mjs +1 -1
  165. package/build-module/tab-panel/index.mjs.map +1 -1
  166. package/build-module/{tab → tab-panel}/init.mjs +1 -1
  167. package/build-module/{tab → tab-panel}/init.mjs.map +1 -1
  168. package/build-module/{tab → tab-panel}/remove-tab-toolbar-control.mjs +16 -16
  169. package/build-module/tab-panel/remove-tab-toolbar-control.mjs.map +7 -0
  170. package/build-module/tab-panel/save.mjs +4 -2
  171. package/build-module/tab-panel/save.mjs.map +2 -2
  172. package/build-module/tab-panels/block.json +66 -0
  173. package/build-module/tab-panels/edit.mjs +33 -0
  174. package/build-module/tab-panels/edit.mjs.map +7 -0
  175. package/build-module/{tabs-menu-item → tab-panels}/index.mjs +2 -2
  176. package/build-module/{tabs-menu → tab-panels}/index.mjs.map +2 -2
  177. package/build-module/tab-panels/save.mjs +12 -0
  178. package/build-module/tab-panels/save.mjs.map +7 -0
  179. package/build-module/tabs/block.json +1 -1
  180. package/build-module/tabs/controls.mjs +2 -2
  181. package/build-module/tabs/controls.mjs.map +1 -1
  182. package/build-module/tabs/edit.mjs +24 -19
  183. package/build-module/tabs/edit.mjs.map +2 -2
  184. package/build-module/tabs/index.mjs +5 -5
  185. package/build-module/tabs/index.mjs.map +1 -1
  186. package/build-module/tabs/use-tab-list-sync.mjs +169 -0
  187. package/build-module/tabs/use-tab-list-sync.mjs.map +7 -0
  188. package/build-module/terms-query/edit/inspector-controls/include-control.mjs +1 -1
  189. package/build-module/terms-query/edit/inspector-controls/include-control.mjs.map +2 -2
  190. package/build-module/video/tracks-editor.mjs +2 -2
  191. package/build-module/video/tracks-editor.mjs.map +2 -2
  192. package/build-style/classic-rtl.css +14 -0
  193. package/build-style/classic.css +14 -0
  194. package/build-style/editor-rtl.css +9 -5
  195. package/build-style/editor.css +9 -5
  196. package/build-style/style-rtl.css +40 -40
  197. package/build-style/style.css +40 -40
  198. package/build-style/tab/editor-rtl.css +11 -0
  199. package/build-style/tab/editor.css +11 -0
  200. package/build-style/tab/style-rtl.css +29 -16
  201. package/build-style/tab/style.css +29 -16
  202. package/build-style/tab-list/editor-rtl.css +6 -0
  203. package/build-style/tab-list/editor.css +6 -0
  204. package/build-style/tab-panel/style-rtl.css +17 -1
  205. package/build-style/tab-panel/style.css +17 -1
  206. package/build-style/tab-panels/style-rtl.css +4 -0
  207. package/build-style/tab-panels/style.css +4 -0
  208. package/build-style/video/editor-rtl.css +4 -0
  209. package/build-style/video/editor.css +4 -0
  210. package/package.json +39 -38
  211. package/src/accordion/edit.js +0 -2
  212. package/src/accordion-item/block.json +1 -0
  213. package/src/categories/edit.js +3 -2
  214. package/src/classic.scss +25 -0
  215. package/src/editor.scss +2 -2
  216. package/src/embed/edit.js +61 -52
  217. package/src/embed/edit.native.js +71 -57
  218. package/src/embed/transforms.js +8 -2
  219. package/src/embed/util.js +17 -0
  220. package/src/form/block.json +1 -1
  221. package/src/form-input/block.json +1 -1
  222. package/src/form-submission-notification/block.json +1 -1
  223. package/src/form-submit-button/block.json +1 -1
  224. package/src/image/edit.js +5 -1
  225. package/src/image/edit.native.js +3 -3
  226. package/src/image/image.js +30 -5
  227. package/src/index.js +4 -4
  228. package/src/math/edit.js +3 -3
  229. package/src/navigation/edit/accessible-description.js +1 -1
  230. package/src/navigation/edit/overlay-template-part-selector.js +3 -3
  231. package/src/navigation-link/edit.js +2 -5
  232. package/src/navigation-link/link-ui/dialog-wrapper.js +2 -1
  233. package/src/navigation-link/link-ui/index.js +1 -1
  234. package/src/post-author/edit.js +3 -5
  235. package/src/post-comments-form/edit.js +1 -1
  236. package/src/query/edit/inspector-controls/author-control.js +1 -1
  237. package/src/query/edit/inspector-controls/format-controls.js +1 -1
  238. package/src/query/edit/inspector-controls/parent-control.js +1 -1
  239. package/src/query/edit/inspector-controls/taxonomy-controls.js +1 -1
  240. package/src/site-logo/edit.js +38 -18
  241. package/src/style.scss +1 -1
  242. package/src/tab/block.json +23 -23
  243. package/src/tab/controls.js +6 -52
  244. package/src/tab/edit.js +99 -103
  245. package/src/{tabs-menu-item → tab}/editor.scss +3 -3
  246. package/src/tab/index.php +32 -51
  247. package/src/tab/save.js +4 -4
  248. package/src/tab/style.scss +34 -17
  249. package/{build/tabs-menu → src/tab-list}/block.json +3 -3
  250. package/src/{tabs-menu → tab-list}/edit.js +3 -3
  251. package/src/{tabs-menu → tab-list}/editor.scss +2 -2
  252. package/src/{tabs-menu → tab-list}/index.js +1 -1
  253. package/src/tab-list/index.php +80 -0
  254. package/src/{tab → tab-panel}/add-tab-toolbar-control.js +19 -19
  255. package/src/tab-panel/block.json +27 -37
  256. package/src/tab-panel/controls.js +65 -0
  257. package/src/tab-panel/edit.js +123 -20
  258. package/src/tab-panel/index.js +1 -1
  259. package/src/tab-panel/index.php +88 -0
  260. package/src/{tab → tab-panel}/remove-tab-toolbar-control.js +20 -19
  261. package/src/tab-panel/save.js +4 -2
  262. package/src/tab-panel/style.scss +20 -1
  263. package/src/tab-panels/block.json +66 -0
  264. package/src/tab-panels/edit.js +42 -0
  265. package/src/{tabs-menu-item → tab-panels}/index.js +1 -1
  266. package/src/tab-panels/save.js +11 -0
  267. package/src/tab-panels/style.scss +4 -0
  268. package/src/tabs/block.json +1 -1
  269. package/src/tabs/controls.js +2 -2
  270. package/src/tabs/edit.js +25 -20
  271. package/src/tabs/index.js +5 -5
  272. package/src/tabs/index.php +5 -5
  273. package/src/tabs/use-tab-list-sync.js +237 -0
  274. package/src/terms-query/edit/inspector-controls/include-control.js +1 -1
  275. package/src/video/editor.scss +5 -0
  276. package/src/video/tracks-editor.js +2 -2
  277. package/build/tab/add-tab-toolbar-control.cjs.map +0 -7
  278. package/build/tab/remove-tab-toolbar-control.cjs.map +0 -7
  279. package/build/tabs/use-tab-menu-sync.cjs.map +0 -7
  280. package/build/tabs-menu/edit.cjs.map +0 -7
  281. package/build/tabs-menu-item/block.json +0 -56
  282. package/build/tabs-menu-item/controls.cjs.map +0 -7
  283. package/build/tabs-menu-item/edit.cjs +0 -135
  284. package/build/tabs-menu-item/edit.cjs.map +0 -7
  285. package/build/tabs-menu-item/index.cjs.map +0 -7
  286. package/build/tabs-menu-item/save.cjs.map +0 -7
  287. package/build-module/tab/add-tab-toolbar-control.mjs.map +0 -7
  288. package/build-module/tab/remove-tab-toolbar-control.mjs.map +0 -7
  289. package/build-module/tabs/use-tab-menu-sync.mjs +0 -171
  290. package/build-module/tabs/use-tab-menu-sync.mjs.map +0 -7
  291. package/build-module/tabs-menu/edit.mjs.map +0 -7
  292. package/build-module/tabs-menu-item/block.json +0 -56
  293. package/build-module/tabs-menu-item/controls.mjs +0 -15
  294. package/build-module/tabs-menu-item/controls.mjs.map +0 -7
  295. package/build-module/tabs-menu-item/edit.mjs +0 -108
  296. package/build-module/tabs-menu-item/edit.mjs.map +0 -7
  297. package/build-module/tabs-menu-item/index.mjs.map +0 -7
  298. package/build-module/tabs-menu-item/save.mjs +0 -14
  299. package/build-module/tabs-menu-item/save.mjs.map +0 -7
  300. package/build-style/tabs-menu/editor-rtl.css +0 -6
  301. package/build-style/tabs-menu/editor.css +0 -6
  302. package/build-style/tabs-menu-item/editor-rtl.css +0 -11
  303. package/build-style/tabs-menu-item/editor.css +0 -11
  304. package/build-style/tabs-menu-item/style-rtl.css +0 -33
  305. package/build-style/tabs-menu-item/style.css +0 -33
  306. package/src/tabs/use-tab-menu-sync.js +0 -239
  307. package/src/tabs-menu/index.php +0 -80
  308. package/src/tabs-menu-item/block.json +0 -56
  309. package/src/tabs-menu-item/controls.js +0 -19
  310. package/src/tabs-menu-item/edit.js +0 -141
  311. package/src/tabs-menu-item/index.php +0 -70
  312. package/src/tabs-menu-item/save.js +0 -13
  313. package/src/tabs-menu-item/style.scss +0 -40
  314. /package/src/{tabs-menu → tab-list}/save.js +0 -0
  315. /package/src/{tab → tab-panel}/init.js +0 -0
@@ -4,25 +4,23 @@
4
4
  "apiVersion": 3,
5
5
  "name": "core/tab",
6
6
  "title": "Tab",
7
- "description": "Content for a tab in a tabbed interface.",
7
+ "description": "A single tab button in the tab list.",
8
8
  "category": "design",
9
9
  "textdomain": "default",
10
- "attributes": {
11
- "label": {
12
- "type": "string",
13
- "default": ""
14
- }
15
- },
16
- "parent": [ "core/tab-panel" ],
10
+ "parent": [ "core/tab-list" ],
17
11
  "usesContext": [
12
+ "core/tabs-list",
18
13
  "core/tabs-activeTabIndex",
19
14
  "core/tabs-editorActiveTabIndex",
20
- "core/tabs-id"
15
+ "core/tab-index",
16
+ "core/tab-id",
17
+ "core/tab-label"
21
18
  ],
22
19
  "supports": {
23
- "anchor": true,
24
20
  "html": false,
25
21
  "reusable": false,
22
+ "visibility": false,
23
+ "lock": false,
26
24
  "color": {
27
25
  "background": true,
28
26
  "text": true,
@@ -31,26 +29,28 @@
31
29
  "text": true
32
30
  }
33
31
  },
34
- "layout": true,
35
- "spacing": {
36
- "blockGap": true,
37
- "padding": true,
38
- "margin": false
39
- },
40
32
  "typography": {
41
33
  "fontSize": true,
42
34
  "__experimentalFontFamily": true,
35
+ "textAlign": true,
43
36
  "__experimentalDefaultControls": {
44
- "fontSize": true,
45
- "__experimentalFontFamily": true
37
+ "fontSize": true
46
38
  }
47
39
  },
48
- "renaming": true,
49
- "visibility": false
50
- },
51
- "providesContext": {
52
- "core/tab-label": "label"
40
+ "spacing": {
41
+ "padding": true,
42
+ "__experimentalDefaultControls": {
43
+ "padding": true
44
+ }
45
+ },
46
+ "__experimentalBorder": {
47
+ "radius": true,
48
+ "color": true,
49
+ "width": true,
50
+ "style": true
51
+ }
53
52
  },
54
53
  "editorScript": "file:./index.js",
54
+ "editorStyle": "file:./editor.css",
55
55
  "style": "file:./style-index.css"
56
56
  }
@@ -34,56 +34,13 @@ __export(controls_exports, {
34
34
  });
35
35
  module.exports = __toCommonJS(controls_exports);
36
36
  var import_block_editor = require("@wordpress/block-editor");
37
- var import_components = require("@wordpress/components");
38
- var import_i18n = require("@wordpress/i18n");
39
- var import_data = require("@wordpress/data");
40
- var import_add_tab_toolbar_control = __toESM(require("./add-tab-toolbar-control.cjs"));
41
- var import_remove_tab_toolbar_control = __toESM(require("./remove-tab-toolbar-control.cjs"));
42
- var import_hooks = require("../utils/hooks.cjs");
37
+ var import_add_tab_toolbar_control = __toESM(require("../tab-panel/add-tab-toolbar-control.cjs"));
38
+ var import_remove_tab_toolbar_control = __toESM(require("../tab-panel/remove-tab-toolbar-control.cjs"));
43
39
  var import_jsx_runtime = require("react/jsx-runtime");
44
- function Controls({ tabsClientId, blockIndex, isDefaultTab }) {
45
- const { updateBlockAttributes } = (0, import_data.useDispatch)(import_block_editor.store);
46
- const dropdownMenuProps = (0, import_hooks.useToolsPanelDropdownMenuProps)();
47
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
40
+ function Controls({ tabsClientId }) {
41
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_block_editor.BlockControls, { children: [
48
42
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_add_tab_toolbar_control.default, { tabsClientId }),
49
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_remove_tab_toolbar_control.default, { tabsClientId }),
50
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_block_editor.InspectorControls, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
51
- import_components.__experimentalToolsPanel,
52
- {
53
- label: (0, import_i18n.__)("Settings"),
54
- resetAll: () => {
55
- updateBlockAttributes(tabsClientId, {
56
- activeTabIndex: 0
57
- });
58
- },
59
- dropdownMenuProps,
60
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
61
- import_components.__experimentalToolsPanelItem,
62
- {
63
- label: (0, import_i18n.__)("Default tab"),
64
- hasValue: () => isDefaultTab && blockIndex !== 0,
65
- onDeselect: () => {
66
- updateBlockAttributes(tabsClientId, {
67
- activeTabIndex: 0
68
- });
69
- },
70
- isShownByDefault: true,
71
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
72
- import_components.CheckboxControl,
73
- {
74
- label: (0, import_i18n.__)("Default tab"),
75
- checked: isDefaultTab,
76
- onChange: (value) => {
77
- updateBlockAttributes(tabsClientId, {
78
- activeTabIndex: value ? blockIndex : 0
79
- });
80
- }
81
- }
82
- )
83
- }
84
- )
85
- }
86
- ) })
43
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_remove_tab_toolbar_control.default, { tabsClientId })
87
44
  ] });
88
45
  }
89
46
  //# sourceMappingURL=controls.cjs.map
@@ -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,104 +30,106 @@ 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
+ var import_clsx = __toESM(require("clsx"));
36
37
  var import_i18n = require("@wordpress/i18n");
37
38
  var import_block_editor = require("@wordpress/block-editor");
38
39
  var import_data = require("@wordpress/data");
39
40
  var import_element = require("@wordpress/element");
40
41
  var import_controls = __toESM(require("./controls.cjs"));
41
42
  var import_jsx_runtime = require("react/jsx-runtime");
42
- var TEMPLATE = [
43
- [
44
- "core/paragraph",
45
- {
46
- placeholder: (0, import_i18n.__)("Type / to choose a block")
47
- }
48
- ]
49
- ];
50
- var { cancelAnimationFrame } = window;
51
- function Edit({ clientId, context, isSelected }) {
52
- const focusRef = (0, import_element.useRef)();
43
+ var EMPTY_ARRAY = [];
44
+ function Edit({ context, clientId }) {
45
+ const tabsList = context["core/tabs-list"] || EMPTY_ARRAY;
53
46
  const activeTabIndex = context["core/tabs-activeTabIndex"];
54
47
  const editorActiveTabIndex = context["core/tabs-editorActiveTabIndex"];
55
- const effectiveActiveIndex = editorActiveTabIndex ?? activeTabIndex;
56
- (0, import_element.useEffect)(() => {
57
- return () => {
58
- if (focusRef.current) {
59
- cancelAnimationFrame(focusRef.current);
60
- }
61
- };
62
- }, []);
63
- 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)(
64
52
  (select) => {
65
53
  const {
54
+ getBlockOrder,
66
55
  getBlockRootClientId,
67
- getBlockIndex,
56
+ getSelectedBlockClientIds,
68
57
  hasSelectedInnerBlock
69
58
  } = select(import_block_editor.store);
70
- const tabPanelClientId = getBlockRootClientId(clientId);
71
- const _tabsClientId = getBlockRootClientId(tabPanelClientId);
72
- const _blockIndex = getBlockIndex(clientId);
73
- const _hasInnerBlocksSelected = hasSelectedInnerBlock(
74
- clientId,
75
- true
76
- );
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
+ }
77
71
  return {
78
- blockIndex: _blockIndex,
79
- hasInnerBlocksSelected: _hasInnerBlocksSelected,
80
- tabsClientId: _tabsClientId
72
+ tabIndex: _tabIndex,
73
+ tabsClientId: _tabsClientId,
74
+ selectedTabClientId: _selectedTabClientId
81
75
  };
82
76
  },
83
- [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
+ ]
103
+ );
104
+ const handleLabelChange = (0, import_element.useCallback)(
105
+ (newLabel) => {
106
+ if (tabClientId) {
107
+ updateBlockAttributes(tabClientId, { label: newLabel });
108
+ }
109
+ },
110
+ [tabClientId, updateBlockAttributes]
84
111
  );
85
- const { updateBlockAttributes, __unstableMarkNextChangeAsNotPersistent } = (0, import_data.useDispatch)(import_block_editor.store);
86
- (0, import_element.useEffect)(() => {
87
- const isTabSelected = isSelected || hasInnerBlocksSelected;
88
- if (isTabSelected && tabsClientId && effectiveActiveIndex !== blockIndex) {
89
- __unstableMarkNextChangeAsNotPersistent();
90
- updateBlockAttributes(tabsClientId, {
91
- editorActiveTabIndex: blockIndex
92
- });
93
- }
94
- }, [
95
- isSelected,
96
- hasInnerBlocksSelected,
97
- tabsClientId,
98
- effectiveActiveIndex,
99
- blockIndex,
100
- updateBlockAttributes,
101
- __unstableMarkNextChangeAsNotPersistent
102
- ]);
103
- const isActiveTab = effectiveActiveIndex === blockIndex;
104
- const isDefaultTab = activeTabIndex === blockIndex;
105
- const isSelectedTab = (0, import_element.useMemo)(() => {
106
- if (isSelected || hasInnerBlocksSelected) {
107
- return true;
108
- }
109
- if (isActiveTab) {
110
- return true;
111
- }
112
- return false;
113
- }, [isSelected, hasInnerBlocksSelected, isActiveTab]);
114
112
  const blockProps = (0, import_block_editor.useBlockProps)({
115
- hidden: !isSelectedTab,
116
- tabIndex: isSelectedTab ? 0 : -1
117
- });
118
- const innerBlocksProps = (0, import_block_editor.useInnerBlocksProps)(blockProps, {
119
- template: TEMPLATE
113
+ className: (0, import_clsx.default)({
114
+ "is-active": isActive,
115
+ "is-selected": isSelected
116
+ }),
117
+ tabIndex: -1,
118
+ onClick: handleTabClick
120
119
  });
121
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("section", { ...innerBlocksProps, children: [
122
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
123
- 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,
124
124
  {
125
- tabsClientId,
126
- blockIndex,
127
- isDefaultTab
125
+ tagName: "span",
126
+ withoutInteractiveFormatting: true,
127
+ placeholder: (0, import_i18n.__)("Tab title"),
128
+ value: label,
129
+ onChange: handleLabelChange
128
130
  }
129
- ),
130
- isSelectedTab && innerBlocksProps.children
131
+ ) })
131
132
  ] });
132
133
  }
134
+ var edit_default = Edit;
133
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 * 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';\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( { clientId, context, isSelected } ) {\n\tconst focusRef = useRef();\n\n\t// Consume tab indices from context\n\tconst activeTabIndex = context[ 'core/tabs-activeTabIndex' ];\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\tconst blockProps = useBlockProps( {\n\t\thidden: ! isSelectedTab,\n\t\ttabIndex: isSelectedTab ? 0 : -1,\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,kBAAmB;AACnB,0BAIO;AACP,kBAAuC;AACvC,qBAA2C;AAK3C,sBAAqB;AAwHnB;AAtHF,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,EAAE,UAAU,SAAS,WAAW,GAAI;AACjE,QAAM,eAAW,uBAAO;AAGxB,QAAM,iBAAiB,QAAS,0BAA2B;AAC3D,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;AAEvD,QAAM,iBAAa,mCAAe;AAAA,IACjC,QAAQ,CAAE;AAAA,IACV,UAAU,gBAAgB,IAAI;AAAA,EAC/B,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", "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,13 +2,13 @@
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
8
  "category": "design",
9
9
  "textdomain": "default",
10
10
  "parent": [ "core/tabs" ],
11
- "allowedBlocks": [ "core/tabs-menu-item" ],
11
+ "allowedBlocks": [ "core/tab" ],
12
12
  "usesContext": [ "core/tabs-list" ],
13
13
  "attributes": {},
14
14
  "supports": {
@@ -27,7 +27,7 @@ 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
@@ -35,8 +35,8 @@ __export(edit_exports, {
35
35
  module.exports = __toCommonJS(edit_exports);
36
36
  var import_block_editor = require("@wordpress/block-editor");
37
37
  var import_data = require("@wordpress/data");
38
- var import_add_tab_toolbar_control = __toESM(require("../tab/add-tab-toolbar-control.cjs"));
39
- 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"));
40
40
  var import_jsx_runtime = require("react/jsx-runtime");
41
41
  function Edit({ clientId }) {
42
42
  const tabsClientId = (0, import_data.useSelect)(
@@ -45,7 +45,7 @@ function Edit({ clientId }) {
45
45
  );
46
46
  const blockProps = (0, import_block_editor.useBlockProps)();
47
47
  const innerBlocksProps = (0, import_block_editor.useInnerBlocksProps)(blockProps, {
48
- allowedBlocks: ["core/tabs-menu-item"],
48
+ allowedBlocks: ["core/tab"],
49
49
  orientation: "horizontal",
50
50
  templateLock: false,
51
51
  renderAppender: false
@@ -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
+ }