@wordpress/block-library 10.1.1-next.v.202607070741.0 → 10.2.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 (371) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/build/accordion/block.json +1 -0
  3. package/build/button/edit.cjs +18 -8
  4. package/build/button/edit.cjs.map +2 -2
  5. package/build/cover/block.json +11 -0
  6. package/build/cover/edit/block-controls.cjs +11 -4
  7. package/build/cover/edit/block-controls.cjs.map +2 -2
  8. package/build/cover/edit/embed-video-url-input.cjs +5 -3
  9. package/build/cover/edit/embed-video-url-input.cjs.map +3 -3
  10. package/build/cover/edit/index.cjs +1 -1
  11. package/build/cover/edit/index.cjs.map +2 -2
  12. package/build/cover/embed-video-utils.cjs +17 -7
  13. package/build/cover/embed-video-utils.cjs.map +2 -2
  14. package/build/details/transforms.cjs +1 -3
  15. package/build/details/transforms.cjs.map +2 -2
  16. package/build/embed/embed-placeholder.cjs +0 -1
  17. package/build/embed/embed-placeholder.cjs.map +2 -2
  18. package/build/file/edit.cjs +4 -3
  19. package/build/file/edit.cjs.map +2 -2
  20. package/build/file/transforms.cjs +25 -60
  21. package/build/file/transforms.cjs.map +2 -2
  22. package/build/gallery/block.json +4 -2
  23. package/build/gallery/edit.cjs +1 -1
  24. package/build/gallery/edit.cjs.map +3 -3
  25. package/build/gallery/gap-styles.cjs +49 -13
  26. package/build/gallery/gap-styles.cjs.map +3 -3
  27. package/build/group/transforms.cjs +1 -1
  28. package/build/group/transforms.cjs.map +2 -2
  29. package/build/icon/components/custom-inserter/icon-grid.cjs +25 -12
  30. package/build/icon/components/custom-inserter/icon-grid.cjs.map +2 -2
  31. package/build/icon/components/custom-inserter/index.cjs +100 -31
  32. package/build/icon/components/custom-inserter/index.cjs.map +3 -3
  33. package/build/icon/edit.cjs +11 -12
  34. package/build/icon/edit.cjs.map +2 -2
  35. package/build/image/block.json +1 -1
  36. package/build/image/edit.cjs +0 -34
  37. package/build/image/edit.cjs.map +2 -2
  38. package/build/image/image.cjs +4 -23
  39. package/build/image/image.cjs.map +3 -3
  40. package/build/image/transforms.cjs +78 -0
  41. package/build/image/transforms.cjs.map +3 -3
  42. package/build/index.cjs +18 -8
  43. package/build/index.cjs.map +2 -2
  44. package/build/latest-posts/edit.cjs +5 -8
  45. package/build/latest-posts/edit.cjs.map +2 -2
  46. package/build/list-item/edit.cjs +1 -1
  47. package/build/list-item/edit.cjs.map +2 -2
  48. package/build/list-item/hooks/use-enter.cjs +14 -17
  49. package/build/list-item/hooks/use-enter.cjs.map +3 -3
  50. package/build/list-item/hooks/use-space.cjs +3 -2
  51. package/build/list-item/hooks/use-space.cjs.map +3 -3
  52. package/build/paragraph/block.json +1 -0
  53. package/build/paragraph/use-enter.cjs +3 -7
  54. package/build/paragraph/use-enter.cjs.map +3 -3
  55. package/build/playlist/block.json +29 -10
  56. package/build/playlist/edit.cjs +216 -14
  57. package/build/playlist/edit.cjs.map +3 -3
  58. package/build/playlist/index.cjs +1 -1
  59. package/build/playlist/index.cjs.map +2 -2
  60. package/build/playlist/utils.cjs +19 -5
  61. package/build/playlist/utils.cjs.map +2 -2
  62. package/build/playlist/view.cjs +83 -13
  63. package/build/playlist/view.cjs.map +2 -2
  64. package/build/playlist-track/block.json +4 -2
  65. package/build/playlist-track/edit.cjs +94 -64
  66. package/build/playlist-track/edit.cjs.map +2 -2
  67. package/build/post-content/block.json +1 -0
  68. package/build/post-template/block.json +2 -1
  69. package/build/post-template/edit.cjs +10 -1
  70. package/build/post-template/edit.cjs.map +2 -2
  71. package/build/pullquote/block.json +3 -1
  72. package/build/query/block.json +3 -2
  73. package/build/query/edit/inspector-controls/index.cjs +38 -4
  74. package/build/query/edit/inspector-controls/index.cjs.map +2 -2
  75. package/build/query/edit/inspector-controls/offset-controls.cjs +0 -1
  76. package/build/query/edit/inspector-controls/offset-controls.cjs.map +2 -2
  77. package/build/query/edit/inspector-controls/pages-control.cjs +0 -1
  78. package/build/query/edit/inspector-controls/pages-control.cjs.map +2 -2
  79. package/build/query/edit/query-content.cjs +10 -3
  80. package/build/query/edit/query-content.cjs.map +2 -2
  81. package/build/query/index.cjs +2 -1
  82. package/build/query/index.cjs.map +2 -2
  83. package/build/quote/block.json +3 -1
  84. package/build/quote/transforms.cjs +1 -3
  85. package/build/quote/transforms.cjs.map +2 -2
  86. package/build/rss/edit.cjs +0 -1
  87. package/build/rss/edit.cjs.map +2 -2
  88. package/build/tab-list/block.json +2 -2
  89. package/build/tab-list/edit.cjs +65 -11
  90. package/build/tab-list/edit.cjs.map +3 -3
  91. package/build/tab-panel/block.json +1 -6
  92. package/build/tab-panel/edit.cjs +15 -15
  93. package/build/tab-panel/edit.cjs.map +2 -2
  94. package/build/tab-panels/block.json +0 -1
  95. package/build/tabs/block.json +0 -5
  96. package/build/tabs/edit.cjs +4 -39
  97. package/build/tabs/edit.cjs.map +3 -3
  98. package/build/tabs/use-tab-list-items-sync.cjs +19 -1
  99. package/build/tabs/use-tab-list-items-sync.cjs.map +2 -2
  100. package/build/term-name/block.json +1 -3
  101. package/build/term-name/deprecated.cjs +105 -0
  102. package/build/term-name/deprecated.cjs.map +7 -0
  103. package/build/term-name/edit.cjs +11 -37
  104. package/build/term-name/edit.cjs.map +3 -3
  105. package/build/term-name/index.cjs +3 -1
  106. package/build/term-name/index.cjs.map +3 -3
  107. package/build/utils/waveform-player.cjs +138 -22
  108. package/build/utils/waveform-player.cjs.map +2 -2
  109. package/build/utils/waveform-utils.cjs +315 -17
  110. package/build/utils/waveform-utils.cjs.map +2 -2
  111. package/build/video/edit.cjs +2 -11
  112. package/build/video/edit.cjs.map +3 -3
  113. package/build-module/accordion/block.json +1 -0
  114. package/build-module/button/edit.mjs +19 -14
  115. package/build-module/button/edit.mjs.map +2 -2
  116. package/build-module/cover/block.json +11 -0
  117. package/build-module/cover/edit/block-controls.mjs +11 -4
  118. package/build-module/cover/edit/block-controls.mjs.map +2 -2
  119. package/build-module/cover/edit/embed-video-url-input.mjs +5 -4
  120. package/build-module/cover/edit/embed-video-url-input.mjs.map +2 -2
  121. package/build-module/cover/edit/index.mjs +1 -1
  122. package/build-module/cover/edit/index.mjs.map +2 -2
  123. package/build-module/cover/embed-video-utils.mjs +16 -7
  124. package/build-module/cover/embed-video-utils.mjs.map +2 -2
  125. package/build-module/details/transforms.mjs +2 -7
  126. package/build-module/details/transforms.mjs.map +2 -2
  127. package/build-module/embed/embed-placeholder.mjs +0 -1
  128. package/build-module/embed/embed-placeholder.mjs.map +2 -2
  129. package/build-module/file/edit.mjs +4 -3
  130. package/build-module/file/edit.mjs.map +2 -2
  131. package/build-module/file/transforms.mjs +25 -60
  132. package/build-module/file/transforms.mjs.map +2 -2
  133. package/build-module/gallery/block.json +4 -2
  134. package/build-module/gallery/edit.mjs +3 -3
  135. package/build-module/gallery/edit.mjs.map +2 -2
  136. package/build-module/gallery/gap-styles.mjs +53 -14
  137. package/build-module/gallery/gap-styles.mjs.map +2 -2
  138. package/build-module/group/transforms.mjs +2 -5
  139. package/build-module/group/transforms.mjs.map +2 -2
  140. package/build-module/icon/components/custom-inserter/icon-grid.mjs +25 -12
  141. package/build-module/icon/components/custom-inserter/icon-grid.mjs.map +2 -2
  142. package/build-module/icon/components/custom-inserter/index.mjs +102 -33
  143. package/build-module/icon/components/custom-inserter/index.mjs.map +2 -2
  144. package/build-module/icon/edit.mjs +11 -12
  145. package/build-module/icon/edit.mjs.map +2 -2
  146. package/build-module/image/block.json +1 -1
  147. package/build-module/image/edit.mjs +0 -34
  148. package/build-module/image/edit.mjs.map +2 -2
  149. package/build-module/image/image.mjs +4 -13
  150. package/build-module/image/image.mjs.map +2 -2
  151. package/build-module/image/transforms.mjs +78 -0
  152. package/build-module/image/transforms.mjs.map +2 -2
  153. package/build-module/index.mjs +18 -8
  154. package/build-module/index.mjs.map +2 -2
  155. package/build-module/latest-posts/edit.mjs +5 -8
  156. package/build-module/latest-posts/edit.mjs.map +2 -2
  157. package/build-module/list-item/edit.mjs +1 -1
  158. package/build-module/list-item/edit.mjs.map +2 -2
  159. package/build-module/list-item/hooks/use-enter.mjs +15 -21
  160. package/build-module/list-item/hooks/use-enter.mjs.map +2 -2
  161. package/build-module/list-item/hooks/use-space.mjs +4 -6
  162. package/build-module/list-item/hooks/use-space.mjs.map +2 -2
  163. package/build-module/paragraph/block.json +1 -0
  164. package/build-module/paragraph/use-enter.mjs +4 -11
  165. package/build-module/paragraph/use-enter.mjs.map +2 -2
  166. package/build-module/playlist/block.json +29 -10
  167. package/build-module/playlist/edit.mjs +220 -16
  168. package/build-module/playlist/edit.mjs.map +2 -2
  169. package/build-module/playlist/index.mjs +1 -1
  170. package/build-module/playlist/index.mjs.map +2 -2
  171. package/build-module/playlist/utils.mjs +17 -4
  172. package/build-module/playlist/utils.mjs.map +2 -2
  173. package/build-module/playlist/view.mjs +89 -14
  174. package/build-module/playlist/view.mjs.map +2 -2
  175. package/build-module/playlist-track/block.json +4 -2
  176. package/build-module/playlist-track/edit.mjs +96 -65
  177. package/build-module/playlist-track/edit.mjs.map +2 -2
  178. package/build-module/post-content/block.json +1 -0
  179. package/build-module/post-template/block.json +2 -1
  180. package/build-module/post-template/edit.mjs +10 -1
  181. package/build-module/post-template/edit.mjs.map +2 -2
  182. package/build-module/pullquote/block.json +3 -1
  183. package/build-module/query/block.json +3 -2
  184. package/build-module/query/edit/inspector-controls/index.mjs +40 -5
  185. package/build-module/query/edit/inspector-controls/index.mjs.map +2 -2
  186. package/build-module/query/edit/inspector-controls/offset-controls.mjs +0 -1
  187. package/build-module/query/edit/inspector-controls/offset-controls.mjs.map +2 -2
  188. package/build-module/query/edit/inspector-controls/pages-control.mjs +0 -1
  189. package/build-module/query/edit/inspector-controls/pages-control.mjs.map +2 -2
  190. package/build-module/query/edit/query-content.mjs +10 -3
  191. package/build-module/query/edit/query-content.mjs.map +2 -2
  192. package/build-module/query/index.mjs +2 -1
  193. package/build-module/query/index.mjs.map +2 -2
  194. package/build-module/quote/block.json +3 -1
  195. package/build-module/quote/transforms.mjs +2 -4
  196. package/build-module/quote/transforms.mjs.map +2 -2
  197. package/build-module/rss/edit.mjs +0 -1
  198. package/build-module/rss/edit.mjs.map +2 -2
  199. package/build-module/tab-list/block.json +2 -2
  200. package/build-module/tab-list/edit.mjs +72 -13
  201. package/build-module/tab-list/edit.mjs.map +2 -2
  202. package/build-module/tab-panel/block.json +1 -6
  203. package/build-module/tab-panel/edit.mjs +16 -16
  204. package/build-module/tab-panel/edit.mjs.map +2 -2
  205. package/build-module/tab-panels/block.json +0 -1
  206. package/build-module/tabs/block.json +0 -5
  207. package/build-module/tabs/edit.mjs +5 -45
  208. package/build-module/tabs/edit.mjs.map +2 -2
  209. package/build-module/tabs/use-tab-list-items-sync.mjs +19 -1
  210. package/build-module/tabs/use-tab-list-items-sync.mjs.map +2 -2
  211. package/build-module/term-name/block.json +1 -3
  212. package/build-module/term-name/deprecated.mjs +74 -0
  213. package/build-module/term-name/deprecated.mjs.map +7 -0
  214. package/build-module/term-name/edit.mjs +11 -28
  215. package/build-module/term-name/edit.mjs.map +2 -2
  216. package/build-module/term-name/index.mjs +3 -1
  217. package/build-module/term-name/index.mjs.map +2 -2
  218. package/build-module/utils/waveform-player.mjs +144 -23
  219. package/build-module/utils/waveform-player.mjs.map +2 -2
  220. package/build-module/utils/waveform-utils.mjs +310 -16
  221. package/build-module/utils/waveform-utils.mjs.map +2 -2
  222. package/build-module/video/edit.mjs +2 -11
  223. package/build-module/video/edit.mjs.map +2 -2
  224. package/build-style/editor-rtl.css +46 -21
  225. package/build-style/editor.css +46 -21
  226. package/build-style/icon/editor-rtl.css +80 -7
  227. package/build-style/icon/editor.css +80 -7
  228. package/build-style/more/editor-rtl.css +2 -2
  229. package/build-style/more/editor.css +2 -2
  230. package/build-style/navigation/editor-rtl.css +3 -4
  231. package/build-style/navigation/editor.css +3 -4
  232. package/build-style/navigation-link/editor-rtl.css +1 -1
  233. package/build-style/navigation-link/editor.css +1 -1
  234. package/build-style/nextpage/editor-rtl.css +2 -2
  235. package/build-style/nextpage/editor.css +2 -2
  236. package/build-style/playlist/editor-rtl.css +6 -0
  237. package/build-style/playlist/editor.css +6 -0
  238. package/build-style/playlist/style-rtl.css +37 -1
  239. package/build-style/playlist/style.css +37 -1
  240. package/build-style/playlist-track/style-rtl.css +10 -0
  241. package/build-style/playlist-track/style.css +10 -0
  242. package/build-style/style-rtl.css +47 -1
  243. package/build-style/style.css +47 -1
  244. package/build-style/video/editor-rtl.css +1 -1
  245. package/build-style/video/editor.css +1 -1
  246. package/build-types/table-of-contents/list.d.ts +1 -1
  247. package/build-types/table-of-contents/list.d.ts.map +1 -1
  248. package/package.json +46 -44
  249. package/src/accordion/README.md +1 -0
  250. package/src/accordion/block.json +1 -0
  251. package/src/button/edit.js +21 -15
  252. package/src/cover/README.md +60 -0
  253. package/src/cover/block.json +11 -0
  254. package/src/cover/edit/block-controls.js +21 -11
  255. package/src/cover/edit/embed-video-url-input.js +5 -4
  256. package/src/cover/edit/index.js +9 -11
  257. package/src/cover/embed-video-utils.js +38 -13
  258. package/src/details/transforms.js +2 -7
  259. package/src/embed/embed-placeholder.js +0 -1
  260. package/src/file/edit.js +8 -8
  261. package/src/file/transforms.js +28 -60
  262. package/src/gallery/README.md +1 -1
  263. package/src/gallery/block.json +4 -2
  264. package/src/gallery/edit.js +3 -3
  265. package/src/gallery/gap-styles.js +79 -20
  266. package/src/gallery/index.php +103 -43
  267. package/src/group/transforms.js +2 -5
  268. package/src/icon/components/custom-inserter/icon-grid.js +40 -11
  269. package/src/icon/components/custom-inserter/index.js +98 -25
  270. package/src/icon/edit.js +11 -17
  271. package/src/icon/editor.scss +33 -8
  272. package/src/image/README.md +1 -1
  273. package/src/image/block.json +1 -1
  274. package/src/image/edit.js +0 -52
  275. package/src/image/editor.scss +2 -0
  276. package/src/image/image.js +19 -24
  277. package/src/image/transforms.js +128 -0
  278. package/src/index.js +19 -7
  279. package/src/latest-posts/edit.js +5 -8
  280. package/src/latest-posts/index.php +46 -16
  281. package/src/list-item/edit.js +1 -1
  282. package/src/list-item/hooks/use-enter.js +15 -22
  283. package/src/list-item/hooks/use-space.js +4 -6
  284. package/src/media-text/editor.scss +1 -0
  285. package/src/more/editor.scss +1 -1
  286. package/src/navigation/editor.scss +1 -2
  287. package/src/navigation-link/editor.scss +1 -1
  288. package/src/navigation-link/index.php +6 -3
  289. package/src/navigation-submenu/index.php +6 -3
  290. package/src/nextpage/editor.scss +1 -1
  291. package/src/paragraph/README.md +1 -0
  292. package/src/paragraph/block.json +1 -0
  293. package/src/paragraph/use-enter.js +4 -11
  294. package/src/playlist/README.md +17 -18
  295. package/src/playlist/block.json +29 -10
  296. package/src/playlist/edit.js +247 -15
  297. package/src/playlist/editor.scss +6 -0
  298. package/src/playlist/index.js +1 -1
  299. package/src/playlist/index.php +58 -14
  300. package/src/playlist/style.scss +51 -1
  301. package/src/playlist/test/edit.js +13 -2
  302. package/src/playlist/utils.js +25 -7
  303. package/src/playlist/view.js +97 -16
  304. package/src/playlist-track/README.md +3 -3
  305. package/src/playlist-track/block.json +4 -2
  306. package/src/playlist-track/edit.js +94 -70
  307. package/src/playlist-track/index.php +20 -6
  308. package/src/playlist-track/style.scss +10 -0
  309. package/src/playlist-track/test/edit.js +169 -0
  310. package/src/post-content/README.md +1 -0
  311. package/src/post-content/block.json +1 -0
  312. package/src/post-template/README.md +1 -0
  313. package/src/post-template/block.json +2 -1
  314. package/src/post-template/edit.js +9 -0
  315. package/src/pullquote/README.md +1 -0
  316. package/src/pullquote/block.json +3 -1
  317. package/src/query/README.md +2 -1
  318. package/src/query/block.json +3 -2
  319. package/src/query/edit/inspector-controls/index.js +43 -3
  320. package/src/query/edit/inspector-controls/offset-controls.js +0 -1
  321. package/src/query/edit/inspector-controls/pages-control.js +0 -1
  322. package/src/query/edit/query-content.js +19 -3
  323. package/src/query/index.js +1 -0
  324. package/src/quote/README.md +1 -0
  325. package/src/quote/block.json +3 -1
  326. package/src/quote/transforms.js +2 -4
  327. package/src/rss/edit.js +0 -1
  328. package/src/rss/index.php +1 -1
  329. package/src/tab-list/README.md +4 -5
  330. package/src/tab-list/block.json +2 -2
  331. package/src/tab-list/edit.js +90 -28
  332. package/src/tab-list/index.php +9 -4
  333. package/src/tab-panel/README.md +4 -6
  334. package/src/tab-panel/block.json +1 -6
  335. package/src/tab-panel/edit.js +19 -24
  336. package/src/tab-panels/README.md +5 -3
  337. package/src/tab-panels/block.json +0 -1
  338. package/src/tabs/README.md +18 -9
  339. package/src/tabs/block.json +0 -5
  340. package/src/tabs/edit.js +7 -64
  341. package/src/tabs/use-tab-list-items-sync.js +24 -4
  342. package/src/template-part/index.php +1 -16
  343. package/src/term-name/README.md +1 -1
  344. package/src/term-name/block.json +1 -3
  345. package/src/term-name/deprecated.js +74 -0
  346. package/src/term-name/edit.js +2 -18
  347. package/src/term-name/index.js +2 -0
  348. package/src/utils/media-control.scss +1 -5
  349. package/src/utils/test/waveform-player.js +297 -34
  350. package/src/utils/test/waveform-utils.js +410 -5
  351. package/src/utils/waveform-player.js +189 -59
  352. package/src/utils/waveform-utils.js +443 -40
  353. package/src/video/edit.js +0 -8
  354. package/src/video/editor.scss +1 -1
  355. package/build/image/animated-gif-convert-control.cjs +0 -105
  356. package/build/image/animated-gif-convert-control.cjs.map +0 -7
  357. package/build/utils/gif-conversion-attributes.cjs +0 -40
  358. package/build/utils/gif-conversion-attributes.cjs.map +0 -7
  359. package/build/video/gif-restore-control.cjs +0 -73
  360. package/build/video/gif-restore-control.cjs.map +0 -7
  361. package/build-module/image/animated-gif-convert-control.mjs +0 -87
  362. package/build-module/image/animated-gif-convert-control.mjs.map +0 -7
  363. package/build-module/utils/gif-conversion-attributes.mjs +0 -15
  364. package/build-module/utils/gif-conversion-attributes.mjs.map +0 -7
  365. package/build-module/video/gif-restore-control.mjs +0 -55
  366. package/build-module/video/gif-restore-control.mjs.map +0 -7
  367. package/src/image/animated-gif-convert-control.js +0 -135
  368. package/src/image/test/animated-gif-convert-control.js +0 -276
  369. package/src/utils/gif-conversion-attributes.js +0 -30
  370. package/src/utils/test/gif-conversion-attributes.js +0 -60
  371. package/src/video/gif-restore-control.js +0 -92
@@ -1,8 +1,6 @@
1
1
  # Tabs
2
2
 
3
3
  <!-- START TOKEN(Autogenerated block API docs) -->
4
- <div class="callout callout-warning">This block is <strong>experimental</strong> and may change or be removed without notice.</div>
5
-
6
4
  Display content in a tabbed interface to help users navigate detailed content with ease.
7
5
 
8
6
  - **Name:** `core/tabs`
@@ -54,18 +52,29 @@ _Defined via the [`usesContext` and `providesContext`](https://developer.wordpre
54
52
  - `core/tabs-list`
55
53
  - `core/tabs-id`
56
54
 
57
- **Provides context:**
58
-
59
- - `core/tabs-activeTabIndex` → attribute `activeTabIndex`
60
- - `core/tabs-editorActiveTabIndex` → attribute `editorActiveTabIndex`
61
-
62
55
  ## Block Markup
63
56
 
64
57
  This is a [**hybrid block**](https://developer.wordpress.org/block-editor/getting-started/fundamentals/static-dynamic-rendering/). It saves static markup that the server may enhance during rendering.
65
58
 
66
59
  ```html
67
- <!-- wp:tabs {"activeTabIndex":0} -->
68
- <!-- Content... -->
60
+ <!-- wp:tabs -->
61
+ <div class="wp-block-tabs"><!-- wp:tab-list -->
62
+ <div role="tablist" class="wp-block-tab-list"><button type="button" role="tab">Tab 1</button><button type="button" role="tab">Tab 2</button></div>
63
+ <!-- /wp:tab-list -->
64
+
65
+ <!-- wp:tab-panels -->
66
+ <div class="wp-block-tab-panels"><!-- wp:tab-panel {"label":"Tab 1"} -->
67
+ <section role="tabpanel" tabindex="0" class="wp-block-tab-panel"><!-- wp:paragraph -->
68
+ <p>Panel 1</p>
69
+ <!-- /wp:paragraph --></section>
70
+ <!-- /wp:tab-panel -->
71
+
72
+ <!-- wp:tab-panel {"label":"Tab 2"} -->
73
+ <section role="tabpanel" tabindex="0" class="wp-block-tab-panel"><!-- wp:paragraph -->
74
+ <p>Panel 2</p>
75
+ <!-- /wp:paragraph --></section>
76
+ <!-- /wp:tab-panel --></div>
77
+ <!-- /wp:tab-panels --></div>
69
78
  <!-- /wp:tabs -->
70
79
  ```
71
80
 
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "$schema": "https://schemas.wp.org/trunk/block.json",
3
- "__experimental": true,
4
3
  "apiVersion": 3,
5
4
  "name": "core/tabs",
6
5
  "title": "Tabs",
@@ -44,10 +43,6 @@
44
43
  "__experimentalFontFamily": true
45
44
  }
46
45
  },
47
- "providesContext": {
48
- "core/tabs-activeTabIndex": "activeTabIndex",
49
- "core/tabs-editorActiveTabIndex": "editorActiveTabIndex"
50
- },
51
46
  "usesContext": [ "core/tabs-list", "core/tabs-id" ],
52
47
  "style": "wp-block-tabs",
53
48
  "viewScriptModule": "@wordpress/block-library/tabs/view"
package/src/tabs/edit.js CHANGED
@@ -1,14 +1,7 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import {
5
- useBlockProps,
6
- useInnerBlocksProps,
7
- BlockContextProvider,
8
- store as blockEditorStore,
9
- } from '@wordpress/block-editor';
10
- import { useSelect } from '@wordpress/data';
11
- import { useMemo } from '@wordpress/element';
4
+ import { useBlockProps, useInnerBlocksProps } from '@wordpress/block-editor';
12
5
 
13
6
  /**
14
7
  * Internal dependencies
@@ -16,8 +9,6 @@ import { useMemo } from '@wordpress/element';
16
9
  import TabToolbarControls from './tab-toolbar-controls';
17
10
  import useTabListItemsSync from './use-tab-list-items-sync';
18
11
 
19
- const EMPTY_ARRAY = [];
20
-
21
12
  /**
22
13
  * Only the two structural child blocks are specified here — without inner
23
14
  * block entries for core/tab-list or core/tab-panels.
@@ -32,54 +23,8 @@ const EMPTY_ARRAY = [];
32
23
  */
33
24
  const TABS_TEMPLATE = [ [ 'core/tab-list' ], [ 'core/tab-panels' ] ];
34
25
 
35
- function Edit( { clientId, attributes } ) {
36
- const { anchor, activeTabIndex, editorActiveTabIndex } = attributes;
37
-
38
- const { tabPanels, tabListClientId } = useSelect(
39
- ( select ) => {
40
- const { getBlocks } = select( blockEditorStore );
41
- const innerBlocks = getBlocks( clientId );
42
-
43
- const tabPanelsBlock = innerBlocks.find(
44
- ( block ) => block.name === 'core/tab-panels'
45
- );
46
- const tabList = innerBlocks.find(
47
- ( block ) => block.name === 'core/tab-list'
48
- );
49
-
50
- return {
51
- tabPanels: tabPanelsBlock?.innerBlocks ?? EMPTY_ARRAY,
52
- tabListClientId: tabList?.clientId ?? null,
53
- };
54
- },
55
- [ clientId ]
56
- );
57
-
58
- useTabListItemsSync( { tabPanels, tabListClientId } );
59
-
60
- /**
61
- * Memoize context value to prevent unnecessary re-renders.
62
- */
63
- const contextValue = useMemo( () => {
64
- /**
65
- * Compute tabs list from innerblocks to provide via context.
66
- * This traverses the tab-panels block to find all tab-panel blocks
67
- * and extracts their label and anchor for the tab-list to consume.
68
- */
69
- const tabList = tabPanels.map( ( tab, index ) => ( {
70
- id: tab.attributes.anchor || `tab-${ index }`,
71
- label: tab.attributes.label || '',
72
- clientId: tab.clientId,
73
- index,
74
- } ) );
75
-
76
- return {
77
- 'core/tabs-list': tabList,
78
- 'core/tabs-id': anchor,
79
- 'core/tabs-activeTabIndex': activeTabIndex,
80
- 'core/tabs-editorActiveTabIndex': editorActiveTabIndex,
81
- };
82
- }, [ tabPanels, anchor, activeTabIndex, editorActiveTabIndex ] );
26
+ function Edit( { clientId } ) {
27
+ useTabListItemsSync( clientId );
83
28
 
84
29
  const blockProps = useBlockProps();
85
30
 
@@ -91,12 +36,10 @@ function Edit( { clientId, attributes } ) {
91
36
  } );
92
37
 
93
38
  return (
94
- <BlockContextProvider value={ contextValue }>
95
- <div { ...innerBlockProps }>
96
- <TabToolbarControls tabsClientId={ clientId } />
97
- { innerBlockProps.children }
98
- </div>
99
- </BlockContextProvider>
39
+ <div { ...innerBlockProps }>
40
+ <TabToolbarControls tabsClientId={ clientId } />
41
+ { innerBlockProps.children }
42
+ </div>
100
43
  );
101
44
  }
102
45
 
@@ -5,6 +5,8 @@ import { store as blockEditorStore } from '@wordpress/block-editor';
5
5
  import { useDispatch, useSelect } from '@wordpress/data';
6
6
  import { useEffect } from '@wordpress/element';
7
7
 
8
+ const EMPTY_ARRAY = [];
9
+
8
10
  /**
9
11
  * Keep the tab-list block's `tabs` attribute in sync with the tab-panel blocks.
10
12
  *
@@ -12,11 +14,29 @@ import { useEffect } from '@wordpress/element';
12
14
  * label edit), this hook updates the `tabs` attribute on the core/tab-list
13
15
  * block so that save.js can render the correct buttons.
14
16
  *
15
- * @param {Object} props
16
- * @param {Array} props.tabPanels Raw core/tab-panel block objects.
17
- * @param {string|null} props.tabListClientId Client ID of the core/tab-list block.
17
+ * @param {string} tabsClientId Client ID of the core/tabs block.
18
18
  */
19
- export default function useTabListItemsSync( { tabPanels, tabListClientId } ) {
19
+ export default function useTabListItemsSync( tabsClientId ) {
20
+ const { tabPanels, tabListClientId } = useSelect(
21
+ ( select ) => {
22
+ const { getBlocks } = select( blockEditorStore );
23
+ const innerBlocks = getBlocks( tabsClientId );
24
+
25
+ const tabPanelsBlock = innerBlocks.find(
26
+ ( block ) => block.name === 'core/tab-panels'
27
+ );
28
+ const tabList = innerBlocks.find(
29
+ ( block ) => block.name === 'core/tab-list'
30
+ );
31
+
32
+ return {
33
+ tabPanels: tabPanelsBlock?.innerBlocks ?? EMPTY_ARRAY,
34
+ tabListClientId: tabList?.clientId ?? null,
35
+ };
36
+ },
37
+ [ tabsClientId ]
38
+ );
39
+
20
40
  const { updateBlockAttributes, __unstableMarkNextChangeAsNotPersistent } =
21
41
  useDispatch( blockEditorStore );
22
42
  const { getBlockAttributes } = useSelect( blockEditorStore );
@@ -150,22 +150,7 @@ function render_block_core_template_part( $attributes ) {
150
150
  }
151
151
 
152
152
  // Run through the actions that are typically taken on the_content.
153
- $content = shortcode_unautop( $content );
154
- $content = do_shortcode( $content );
155
- $seen_ids[ $template_part_id ] = true;
156
- $content = do_blocks( $content );
157
- unset( $seen_ids[ $template_part_id ] );
158
- $content = wptexturize( $content );
159
- $content = convert_smilies( $content );
160
- $content = wp_filter_content_tags( $content, "template_part_{$area}" );
161
-
162
- /**
163
- * Handle embeds for block template parts.
164
- *
165
- * @global WP_Embed $wp_embed WordPress Embed object.
166
- */
167
- global $wp_embed;
168
- $content = $wp_embed->autoembed( $content );
153
+ $content = _wp_apply_block_content_filters( $content, "template_part_{$area}", $seen_ids, $template_part_id );
169
154
 
170
155
  if ( empty( $attributes['tagName'] ) || tag_escape( $attributes['tagName'] ) !== $attributes['tagName'] ) {
171
156
  $area_tag = 'div';
@@ -15,7 +15,6 @@ _Defined via the [`attributes`](https://developer.wordpress.org/block-editor/ref
15
15
 
16
16
  | Attribute | [Type](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-attributes/#type-validation) | [Default](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-attributes/#default-value) | Description |
17
17
  |-----------|------|---------|-------------|
18
- | `textAlign` | `string` | — | — |
19
18
  | `level` | `number` | `0` | — |
20
19
  | `isLink` | `boolean` | `false` | — |
21
20
  | `levelOptions` | `array` | — | — |
@@ -35,6 +34,7 @@ _Defined via the [`supports`](https://developer.wordpress.org/block-editor/refer
35
34
  - [`typography`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#typography):
36
35
  - [`fontSize`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#typography-fontsize): `true`
37
36
  - [`lineHeight`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#typography-lineheight): `true`
37
+ - [`textAlign`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#typography-textalign): `true`
38
38
  - [`interactivity`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#interactivity):
39
39
  - `clientNavigation`: `true`
40
40
 
@@ -9,9 +9,6 @@
9
9
  "textdomain": "default",
10
10
  "usesContext": [ "termId", "taxonomy" ],
11
11
  "attributes": {
12
- "textAlign": {
13
- "type": "string"
14
- },
15
12
  "level": {
16
13
  "type": "number",
17
14
  "default": 0
@@ -43,6 +40,7 @@
43
40
  "typography": {
44
41
  "fontSize": true,
45
42
  "lineHeight": true,
43
+ "textAlign": true,
46
44
  "__experimentalFontFamily": true,
47
45
  "__experimentalFontWeight": true,
48
46
  "__experimentalFontStyle": true,
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import migrateTextAlign from '../utils/migrate-text-align';
5
+
6
+ const v1 = {
7
+ attributes: {
8
+ textAlign: {
9
+ type: 'string',
10
+ },
11
+ level: {
12
+ type: 'number',
13
+ default: 0,
14
+ },
15
+ isLink: {
16
+ type: 'boolean',
17
+ default: false,
18
+ },
19
+ levelOptions: {
20
+ type: 'array',
21
+ },
22
+ },
23
+ supports: {
24
+ anchor: true,
25
+ align: [ 'wide', 'full' ],
26
+ html: false,
27
+ color: {
28
+ gradients: true,
29
+ link: true,
30
+ __experimentalDefaultControls: {
31
+ background: true,
32
+ text: true,
33
+ link: true,
34
+ },
35
+ },
36
+ spacing: {
37
+ padding: true,
38
+ },
39
+ typography: {
40
+ fontSize: true,
41
+ lineHeight: true,
42
+ __experimentalFontFamily: true,
43
+ __experimentalFontWeight: true,
44
+ __experimentalFontStyle: true,
45
+ __experimentalTextTransform: true,
46
+ __experimentalTextDecoration: true,
47
+ __experimentalLetterSpacing: true,
48
+ __experimentalDefaultControls: {
49
+ fontSize: true,
50
+ },
51
+ },
52
+ interactivity: {
53
+ clientNavigation: true,
54
+ },
55
+ __experimentalBorder: {
56
+ radius: true,
57
+ color: true,
58
+ width: true,
59
+ style: true,
60
+ __experimentalDefaultControls: {
61
+ color: true,
62
+ width: true,
63
+ style: true,
64
+ },
65
+ },
66
+ },
67
+ migrate: migrateTextAlign,
68
+ isEligible( attributes ) {
69
+ return !! attributes.textAlign;
70
+ },
71
+ save: () => null,
72
+ };
73
+
74
+ export default [ v1 ];
@@ -1,8 +1,3 @@
1
- /**
2
- * External dependencies
3
- */
4
- import clsx from 'clsx';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
@@ -10,7 +5,6 @@ import { __ } from '@wordpress/i18n';
10
5
  import {
11
6
  useBlockProps,
12
7
  BlockControls,
13
- AlignmentControl,
14
8
  InspectorControls,
15
9
  HeadingLevelDropdown,
16
10
  } from '@wordpress/block-editor';
@@ -32,18 +26,14 @@ export default function TermNameEdit( {
32
26
  setAttributes,
33
27
  context: { termId, taxonomy },
34
28
  } ) {
35
- const { textAlign, level = 0, isLink, levelOptions } = attributes;
29
+ const { level = 0, isLink, levelOptions } = attributes;
36
30
  const { term } = useTermName( termId, taxonomy );
37
31
 
38
32
  const termName = term?.name
39
33
  ? decodeEntities( term.name )
40
34
  : __( 'Term Name' );
41
35
 
42
- const blockProps = useBlockProps( {
43
- className: clsx( {
44
- [ `has-text-align-${ textAlign }` ]: textAlign,
45
- } ),
46
- } );
36
+ const blockProps = useBlockProps();
47
37
 
48
38
  const dropdownMenuProps = useToolsPanelDropdownMenuProps();
49
39
 
@@ -71,12 +61,6 @@ export default function TermNameEdit( {
71
61
  setAttributes( { level: newLevel } );
72
62
  } }
73
63
  />
74
- <AlignmentControl
75
- value={ textAlign }
76
- onChange={ ( nextAlign ) => {
77
- setAttributes( { textAlign: nextAlign } );
78
- } }
79
- />
80
64
  </BlockControls>
81
65
  <InspectorControls>
82
66
  <ToolsPanel
@@ -9,6 +9,7 @@ import { termName as icon } from '@wordpress/icons';
9
9
  import initBlock from '../utils/init-block';
10
10
  import metadata from './block.json';
11
11
  import edit from './edit';
12
+ import deprecated from './deprecated';
12
13
 
13
14
  const { name } = metadata;
14
15
  export { metadata, name };
@@ -17,6 +18,7 @@ export const settings = {
17
18
  icon,
18
19
  example: {},
19
20
  edit,
21
+ deprecated,
20
22
  };
21
23
 
22
24
  export const init = () => initBlock( { name, metadata, settings } );
@@ -16,7 +16,7 @@
16
16
 
17
17
  button.components-button {
18
18
  color: $gray-900;
19
- box-shadow: inset 0 0 0 1px $gray-400;
19
+ border-color: $gray-400;
20
20
  width: 100%;
21
21
  display: block;
22
22
  height: $grid-unit-50;
@@ -25,10 +25,6 @@
25
25
  &:hover {
26
26
  color: var(--wp-admin-theme-color);
27
27
  }
28
-
29
- &:focus {
30
- box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
31
- }
32
28
  }
33
29
  }
34
30
  }