@wordpress/block-library 9.38.1-next.v.0 → 9.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/button/index.cjs +3 -0
  3. package/build/button/index.cjs.map +2 -2
  4. package/build/comments-title/block.json +1 -3
  5. package/build/comments-title/deprecated.cjs +148 -24
  6. package/build/comments-title/deprecated.cjs.map +3 -3
  7. package/build/comments-title/edit.cjs +17 -31
  8. package/build/comments-title/edit.cjs.map +3 -3
  9. package/build/cover/edit/block-controls.cjs +10 -2
  10. package/build/cover/edit/block-controls.cjs.map +2 -2
  11. package/build/cover/edit/embed-video-url-input.cjs +6 -2
  12. package/build/cover/edit/embed-video-url-input.cjs.map +2 -2
  13. package/build/details/index.cjs +3 -0
  14. package/build/details/index.cjs.map +2 -2
  15. package/build/heading/index.cjs +3 -0
  16. package/build/heading/index.cjs.map +2 -2
  17. package/build/image/index.cjs +1 -1
  18. package/build/image/index.cjs.map +2 -2
  19. package/build/index.cjs +6 -0
  20. package/build/index.cjs.map +2 -2
  21. package/build/list-item/index.cjs +3 -0
  22. package/build/list-item/index.cjs.map +2 -2
  23. package/build/more/index.cjs +1 -1
  24. package/build/more/index.cjs.map +2 -2
  25. package/build/navigation/edit/index.cjs +23 -2
  26. package/build/navigation/edit/index.cjs.map +2 -2
  27. package/build/navigation-submenu/index.cjs +2 -2
  28. package/build/navigation-submenu/index.cjs.map +2 -2
  29. package/build/paragraph/index.cjs +1 -1
  30. package/build/paragraph/index.cjs.map +2 -2
  31. package/build/post-excerpt/edit.cjs +1 -1
  32. package/build/post-excerpt/edit.cjs.map +2 -2
  33. package/build/tab/add-tab-toolbar-control.cjs +31 -9
  34. package/build/tab/add-tab-toolbar-control.cjs.map +2 -2
  35. package/build/tab/block.json +18 -4
  36. package/build/tab/controls.cjs +4 -8
  37. package/build/tab/controls.cjs.map +3 -3
  38. package/build/tab/edit.cjs +46 -118
  39. package/build/tab/edit.cjs.map +3 -3
  40. package/build/tab/remove-tab-toolbar-control.cjs +91 -0
  41. package/build/tab/remove-tab-toolbar-control.cjs.map +7 -0
  42. package/build/tab/save.cjs +2 -2
  43. package/build/tab/save.cjs.map +2 -2
  44. package/build/tab-panels/block.json +70 -0
  45. package/build/tab-panels/edit.cjs +63 -0
  46. package/build/tab-panels/edit.cjs.map +7 -0
  47. package/build/tab-panels/icon.cjs +29 -0
  48. package/build/tab-panels/icon.cjs.map +7 -0
  49. package/build/tab-panels/index.cjs +58 -0
  50. package/build/tab-panels/index.cjs.map +7 -0
  51. package/build/tab-panels/save.cjs +33 -0
  52. package/build/tab-panels/save.cjs.map +7 -0
  53. package/build/tabs/block.json +61 -90
  54. package/build/tabs/controls.cjs +19 -221
  55. package/build/tabs/controls.cjs.map +3 -3
  56. package/build/tabs/deprecated.cjs +179 -0
  57. package/build/tabs/deprecated.cjs.map +7 -0
  58. package/build/tabs/edit.cjs +84 -62
  59. package/build/tabs/edit.cjs.map +3 -3
  60. package/build/tabs/index.cjs +3 -1
  61. package/build/tabs/index.cjs.map +3 -3
  62. package/build/tabs/save.cjs +6 -9
  63. package/build/tabs/save.cjs.map +2 -2
  64. package/build/tabs-menu/block.json +77 -0
  65. package/build/tabs-menu/edit.cjs +204 -0
  66. package/build/tabs-menu/edit.cjs.map +7 -0
  67. package/build/tabs-menu/icon.cjs +29 -0
  68. package/build/tabs-menu/icon.cjs.map +7 -0
  69. package/build/tabs-menu/index.cjs +58 -0
  70. package/build/tabs-menu/index.cjs.map +7 -0
  71. package/build/tabs-menu/save.cjs +35 -0
  72. package/build/tabs-menu/save.cjs.map +7 -0
  73. package/build/tabs-menu-item/block.json +98 -0
  74. package/build/tabs-menu-item/controls.cjs +247 -0
  75. package/build/tabs-menu-item/controls.cjs.map +7 -0
  76. package/build/tabs-menu-item/edit.cjs +272 -0
  77. package/build/tabs-menu-item/edit.cjs.map +7 -0
  78. package/build/tabs-menu-item/icon.cjs +29 -0
  79. package/build/tabs-menu-item/icon.cjs.map +7 -0
  80. package/build/tabs-menu-item/index.cjs +58 -0
  81. package/build/tabs-menu-item/index.cjs.map +7 -0
  82. package/build/tabs-menu-item/save.cjs +50 -0
  83. package/build/tabs-menu-item/save.cjs.map +7 -0
  84. package/build/template-part/edit/index.cjs +1 -1
  85. package/build/template-part/edit/index.cjs.map +2 -2
  86. package/build/utils/caption.cjs +4 -6
  87. package/build/utils/caption.cjs.map +3 -3
  88. package/build/video/edit.cjs +4 -2
  89. package/build/video/edit.cjs.map +2 -2
  90. package/build-module/button/index.mjs +3 -0
  91. package/build-module/button/index.mjs.map +2 -2
  92. package/build-module/comments-title/block.json +1 -3
  93. package/build-module/comments-title/deprecated.mjs +148 -24
  94. package/build-module/comments-title/deprecated.mjs.map +2 -2
  95. package/build-module/comments-title/edit.mjs +17 -32
  96. package/build-module/comments-title/edit.mjs.map +2 -2
  97. package/build-module/cover/edit/block-controls.mjs +11 -3
  98. package/build-module/cover/edit/block-controls.mjs.map +2 -2
  99. package/build-module/cover/edit/embed-video-url-input.mjs +6 -2
  100. package/build-module/cover/edit/embed-video-url-input.mjs.map +2 -2
  101. package/build-module/details/index.mjs +3 -0
  102. package/build-module/details/index.mjs.map +2 -2
  103. package/build-module/heading/index.mjs +3 -0
  104. package/build-module/heading/index.mjs.map +2 -2
  105. package/build-module/image/index.mjs +1 -1
  106. package/build-module/image/index.mjs.map +2 -2
  107. package/build-module/index.mjs +6 -0
  108. package/build-module/index.mjs.map +2 -2
  109. package/build-module/list-item/index.mjs +3 -0
  110. package/build-module/list-item/index.mjs.map +2 -2
  111. package/build-module/more/index.mjs +1 -1
  112. package/build-module/more/index.mjs.map +2 -2
  113. package/build-module/navigation/edit/index.mjs +23 -2
  114. package/build-module/navigation/edit/index.mjs.map +2 -2
  115. package/build-module/navigation-submenu/index.mjs +2 -2
  116. package/build-module/navigation-submenu/index.mjs.map +2 -2
  117. package/build-module/paragraph/index.mjs +1 -1
  118. package/build-module/paragraph/index.mjs.map +2 -2
  119. package/build-module/post-excerpt/edit.mjs +1 -1
  120. package/build-module/post-excerpt/edit.mjs.map +2 -2
  121. package/build-module/tab/add-tab-toolbar-control.mjs +32 -10
  122. package/build-module/tab/add-tab-toolbar-control.mjs.map +2 -2
  123. package/build-module/tab/block.json +18 -4
  124. package/build-module/tab/controls.mjs +4 -8
  125. package/build-module/tab/controls.mjs.map +2 -2
  126. package/build-module/tab/edit.mjs +48 -128
  127. package/build-module/tab/edit.mjs.map +2 -2
  128. package/build-module/tab/remove-tab-toolbar-control.mjs +73 -0
  129. package/build-module/tab/remove-tab-toolbar-control.mjs.map +7 -0
  130. package/build-module/tab/save.mjs +2 -2
  131. package/build-module/tab/save.mjs.map +2 -2
  132. package/build-module/tab-panels/block.json +70 -0
  133. package/build-module/tab-panels/edit.mjs +36 -0
  134. package/build-module/tab-panels/edit.mjs.map +7 -0
  135. package/build-module/tab-panels/icon.mjs +8 -0
  136. package/build-module/tab-panels/icon.mjs.map +7 -0
  137. package/build-module/tab-panels/index.mjs +20 -0
  138. package/build-module/tab-panels/index.mjs.map +7 -0
  139. package/build-module/tab-panels/save.mjs +12 -0
  140. package/build-module/tab-panels/save.mjs.map +7 -0
  141. package/build-module/tabs/block.json +61 -90
  142. package/build-module/tabs/controls.mjs +21 -228
  143. package/build-module/tabs/controls.mjs.map +2 -2
  144. package/build-module/tabs/deprecated.mjs +158 -0
  145. package/build-module/tabs/deprecated.mjs.map +7 -0
  146. package/build-module/tabs/edit.mjs +87 -64
  147. package/build-module/tabs/edit.mjs.map +2 -2
  148. package/build-module/tabs/index.mjs +3 -1
  149. package/build-module/tabs/index.mjs.map +2 -2
  150. package/build-module/tabs/save.mjs +7 -10
  151. package/build-module/tabs/save.mjs.map +2 -2
  152. package/build-module/tabs-menu/block.json +77 -0
  153. package/build-module/tabs-menu/edit.mjs +186 -0
  154. package/build-module/tabs-menu/edit.mjs.map +7 -0
  155. package/build-module/tabs-menu/icon.mjs +8 -0
  156. package/build-module/tabs-menu/icon.mjs.map +7 -0
  157. package/build-module/tabs-menu/index.mjs +20 -0
  158. package/build-module/tabs-menu/index.mjs.map +7 -0
  159. package/build-module/tabs-menu/save.mjs +14 -0
  160. package/build-module/tabs-menu/save.mjs.map +7 -0
  161. package/build-module/tabs-menu-item/block.json +98 -0
  162. package/build-module/tabs-menu-item/controls.mjs +227 -0
  163. package/build-module/tabs-menu-item/controls.mjs.map +7 -0
  164. package/build-module/tabs-menu-item/edit.mjs +253 -0
  165. package/build-module/tabs-menu-item/edit.mjs.map +7 -0
  166. package/build-module/tabs-menu-item/icon.mjs +8 -0
  167. package/build-module/tabs-menu-item/icon.mjs.map +7 -0
  168. package/build-module/tabs-menu-item/index.mjs +20 -0
  169. package/build-module/tabs-menu-item/index.mjs.map +7 -0
  170. package/build-module/tabs-menu-item/save.mjs +29 -0
  171. package/build-module/tabs-menu-item/save.mjs.map +7 -0
  172. package/build-module/template-part/edit/index.mjs +1 -1
  173. package/build-module/template-part/edit/index.mjs.map +2 -2
  174. package/build-module/utils/caption.mjs +1 -3
  175. package/build-module/utils/caption.mjs.map +2 -2
  176. package/build-module/video/edit.mjs +4 -2
  177. package/build-module/video/edit.mjs.map +2 -2
  178. package/build-style/editor-rtl.css +16 -21
  179. package/build-style/editor.css +16 -21
  180. package/build-style/gallery/style-rtl.css +1 -1
  181. package/build-style/gallery/style.css +1 -1
  182. package/build-style/style-rtl.css +42 -153
  183. package/build-style/style.css +42 -153
  184. package/build-style/tab/style-rtl.css +7 -1
  185. package/build-style/tab/style.css +7 -1
  186. package/build-style/tab-panels/style-rtl.css +4 -0
  187. package/build-style/tab-panels/style.css +4 -0
  188. package/build-style/tabs/style-rtl.css +1 -167
  189. package/build-style/tabs/style.css +1 -167
  190. package/build-style/tabs-menu/editor-rtl.css +4 -0
  191. package/build-style/tabs-menu/editor.css +4 -0
  192. package/build-style/tabs-menu/style-rtl.css +8 -0
  193. package/build-style/tabs-menu/style.css +8 -0
  194. package/build-style/tabs-menu-item/editor-rtl.css +16 -0
  195. package/build-style/tabs-menu-item/editor.css +16 -0
  196. package/build-style/tabs-menu-item/style-rtl.css +34 -0
  197. package/build-style/tabs-menu-item/style.css +34 -0
  198. package/package.json +37 -37
  199. package/src/button/index.js +4 -0
  200. package/src/comments-title/block.json +1 -3
  201. package/src/comments-title/deprecated.js +153 -23
  202. package/src/comments-title/edit.js +9 -25
  203. package/src/cover/edit/block-controls.js +14 -3
  204. package/src/cover/edit/embed-video-url-input.js +6 -2
  205. package/src/details/index.js +4 -0
  206. package/src/editor.scss +2 -1
  207. package/src/gallery/style.scss +1 -1
  208. package/src/heading/index.js +4 -0
  209. package/src/image/index.js +4 -1
  210. package/src/index.js +6 -0
  211. package/src/list-item/index.js +4 -0
  212. package/src/more/index.js +4 -1
  213. package/src/navigation/edit/index.js +28 -4
  214. package/src/navigation-submenu/index.js +6 -3
  215. package/src/paragraph/index.js +4 -1
  216. package/src/post-excerpt/edit.js +1 -1
  217. package/src/post-excerpt/index.php +39 -16
  218. package/src/style.scss +3 -0
  219. package/src/tab/add-tab-toolbar-control.js +36 -11
  220. package/src/tab/block.json +18 -4
  221. package/src/tab/controls.js +4 -5
  222. package/src/tab/edit.js +75 -150
  223. package/src/tab/index.php +5 -63
  224. package/src/tab/remove-tab-toolbar-control.js +103 -0
  225. package/src/tab/save.js +1 -3
  226. package/src/tab/style.scss +8 -1
  227. package/src/tab-panels/block.json +70 -0
  228. package/src/tab-panels/edit.js +44 -0
  229. package/src/tab-panels/icon.js +10 -0
  230. package/src/tab-panels/index.js +21 -0
  231. package/src/tab-panels/save.js +11 -0
  232. package/src/tab-panels/style.scss +4 -0
  233. package/src/tabs/block.json +61 -90
  234. package/src/tabs/controls.js +7 -221
  235. package/src/tabs/deprecated.js +214 -0
  236. package/src/tabs/edit.js +108 -68
  237. package/src/tabs/index.js +2 -0
  238. package/src/tabs/index.php +86 -191
  239. package/src/tabs/save.js +6 -13
  240. package/src/tabs/style.scss +1 -187
  241. package/src/tabs-menu/block.json +77 -0
  242. package/src/tabs-menu/edit.js +251 -0
  243. package/src/tabs-menu/editor.scss +6 -0
  244. package/src/tabs-menu/icon.js +10 -0
  245. package/src/tabs-menu/index.js +21 -0
  246. package/src/tabs-menu/index.php +74 -0
  247. package/src/tabs-menu/save.js +18 -0
  248. package/src/tabs-menu/style.scss +8 -0
  249. package/src/tabs-menu-item/block.json +98 -0
  250. package/src/tabs-menu-item/controls.js +262 -0
  251. package/src/tabs-menu-item/edit.js +322 -0
  252. package/src/tabs-menu-item/editor.scss +20 -0
  253. package/src/tabs-menu-item/icon.js +10 -0
  254. package/src/tabs-menu-item/index.js +21 -0
  255. package/src/tabs-menu-item/index.php +82 -0
  256. package/src/tabs-menu-item/save.js +44 -0
  257. package/src/tabs-menu-item/style.scss +42 -0
  258. package/src/template-part/edit/index.js +1 -3
  259. package/src/utils/caption.js +1 -7
  260. package/src/video/edit.js +4 -2
  261. package/build/tab/tabs-list.cjs +0 -132
  262. package/build/tab/tabs-list.cjs.map +0 -7
  263. package/build/tabs/style-engine.cjs +0 -119
  264. package/build/tabs/style-engine.cjs.map +0 -7
  265. package/build-module/tab/tabs-list.mjs +0 -101
  266. package/build-module/tab/tabs-list.mjs.map +0 -7
  267. package/build-module/tabs/style-engine.mjs +0 -101
  268. package/build-module/tabs/style-engine.mjs.map +0 -7
  269. package/build-style/tabs/editor-rtl.css +0 -26
  270. package/build-style/tabs/editor.css +0 -26
  271. package/src/tab/tabs-list.js +0 -122
  272. package/src/tabs/editor.scss +0 -30
  273. package/src/tabs/style-engine.js +0 -164
@@ -0,0 +1,16 @@
1
+ .wp-block-tabs-menu-item.is-selected {
2
+ outline: 2px solid var(--wp-admin-theme-color, #007cba);
3
+ outline-offset: 2px;
4
+ }
5
+
6
+ .block-editor-block-preview__live-content:has(.wp-block-tabs-menu-item) {
7
+ flex-basis: inherit !important;
8
+ flex-grow: inherit !important;
9
+ }
10
+ .block-editor-block-preview__live-content:has(.wp-block-tabs-menu-item) .wp-block-tabs-menu-item {
11
+ flex-basis: 100% !important;
12
+ }
13
+ .block-editor-block-preview__live-content:has(.wp-block-tabs-menu-item):hover > .wp-block-tabs-menu-item {
14
+ background-color: var(--custom-tab-hover-color, #eaeaea) !important;
15
+ color: var(--custom-tab-hover-text-color, #000) !important;
16
+ }
@@ -0,0 +1,34 @@
1
+ .wp-block-tabs-menu-item {
2
+ box-sizing: border-box;
3
+ display: block;
4
+ width: max-content;
5
+ text-decoration: none;
6
+ cursor: pointer;
7
+ flex-basis: inherit !important;
8
+ flex-grow: inherit !important;
9
+ margin: 0;
10
+ padding-block: var(--tab-padding-block, var(--wp--preset--spacing--20, 0.5em));
11
+ padding-inline: var(--tab-padding-inline, var(--wp--preset--spacing--30, 1em));
12
+ font-size: inherit;
13
+ font-family: inherit;
14
+ font-weight: inherit;
15
+ line-height: inherit;
16
+ letter-spacing: inherit;
17
+ text-transform: inherit;
18
+ text-align: inherit;
19
+ }
20
+ .wp-block-tabs-menu-item:focus {
21
+ outline: none;
22
+ }
23
+ .wp-block-tabs-menu-item:focus-visible {
24
+ outline: 2px solid var(--tab-border-color-active, #000);
25
+ outline-offset: 2px;
26
+ }
27
+ .wp-block-tabs-menu-item:hover {
28
+ background-color: var(--custom-tab-hover-color, #eaeaea) !important;
29
+ color: var(--custom-tab-hover-text-color, #000) !important;
30
+ }
31
+ .wp-block-tabs-menu-item[aria-selected=true], .wp-block-tabs-menu-item.is-active {
32
+ background-color: var(--custom-tab-active-color, #000) !important;
33
+ color: var(--custom-tab-active-text-color, #fff) !important;
34
+ }
@@ -0,0 +1,34 @@
1
+ .wp-block-tabs-menu-item {
2
+ box-sizing: border-box;
3
+ display: block;
4
+ width: max-content;
5
+ text-decoration: none;
6
+ cursor: pointer;
7
+ flex-basis: inherit !important;
8
+ flex-grow: inherit !important;
9
+ margin: 0;
10
+ padding-block: var(--tab-padding-block, var(--wp--preset--spacing--20, 0.5em));
11
+ padding-inline: var(--tab-padding-inline, var(--wp--preset--spacing--30, 1em));
12
+ font-size: inherit;
13
+ font-family: inherit;
14
+ font-weight: inherit;
15
+ line-height: inherit;
16
+ letter-spacing: inherit;
17
+ text-transform: inherit;
18
+ text-align: inherit;
19
+ }
20
+ .wp-block-tabs-menu-item:focus {
21
+ outline: none;
22
+ }
23
+ .wp-block-tabs-menu-item:focus-visible {
24
+ outline: 2px solid var(--tab-border-color-active, #000);
25
+ outline-offset: 2px;
26
+ }
27
+ .wp-block-tabs-menu-item:hover {
28
+ background-color: var(--custom-tab-hover-color, #eaeaea) !important;
29
+ color: var(--custom-tab-hover-text-color, #000) !important;
30
+ }
31
+ .wp-block-tabs-menu-item[aria-selected=true], .wp-block-tabs-menu-item.is-active {
32
+ background-color: var(--custom-tab-active-color, #000) !important;
33
+ color: var(--custom-tab-active-text-color, #fff) !important;
34
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/block-library",
3
- "version": "9.38.1-next.v.0+b8934fcf9",
3
+ "version": "9.39.0",
4
4
  "description": "Block library for the WordPress editor.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -93,41 +93,41 @@
93
93
  "build-module/*/init.mjs"
94
94
  ],
95
95
  "dependencies": {
96
- "@wordpress/a11y": "^4.38.1-next.v.0+b8934fcf9",
97
- "@wordpress/api-fetch": "^7.38.1-next.v.0+b8934fcf9",
98
- "@wordpress/autop": "^4.38.1-next.v.0+b8934fcf9",
99
- "@wordpress/base-styles": "^6.14.1-next.v.0+b8934fcf9",
100
- "@wordpress/blob": "^4.38.1-next.v.0+b8934fcf9",
101
- "@wordpress/block-editor": "^15.11.1-next.v.0+b8934fcf9",
102
- "@wordpress/blocks": "^15.11.1-next.v.0+b8934fcf9",
103
- "@wordpress/components": "^32.0.2-next.v.0+b8934fcf9",
104
- "@wordpress/compose": "^7.38.1-next.v.0+b8934fcf9",
105
- "@wordpress/core-data": "^7.38.1-next.v.0+b8934fcf9",
106
- "@wordpress/data": "^10.38.1-next.v.0+b8934fcf9",
107
- "@wordpress/date": "^5.38.1-next.v.0+b8934fcf9",
108
- "@wordpress/deprecated": "^4.38.1-next.v.0+b8934fcf9",
109
- "@wordpress/dom": "^4.38.1-next.v.0+b8934fcf9",
110
- "@wordpress/element": "^6.38.1-next.v.0+b8934fcf9",
111
- "@wordpress/escape-html": "^3.38.1-next.v.0+b8934fcf9",
112
- "@wordpress/hooks": "^4.38.1-next.v.0+b8934fcf9",
113
- "@wordpress/html-entities": "^4.38.1-next.v.0+b8934fcf9",
114
- "@wordpress/i18n": "^6.11.1-next.v.0+b8934fcf9",
115
- "@wordpress/icons": "^11.5.1-next.v.0+b8934fcf9",
116
- "@wordpress/interactivity": "^6.38.1-next.v.0+b8934fcf9",
117
- "@wordpress/interactivity-router": "^2.38.2-next.v.0+b8934fcf9",
118
- "@wordpress/keyboard-shortcuts": "^5.38.1-next.v.0+b8934fcf9",
119
- "@wordpress/keycodes": "^4.38.1-next.v.0+b8934fcf9",
120
- "@wordpress/latex-to-mathml": "^1.6.1-next.v.0+b8934fcf9",
121
- "@wordpress/notices": "^5.38.1-next.v.0+b8934fcf9",
122
- "@wordpress/patterns": "^2.38.1-next.v.0+b8934fcf9",
123
- "@wordpress/primitives": "^4.38.1-next.v.0+b8934fcf9",
124
- "@wordpress/private-apis": "^1.38.1-next.v.0+b8934fcf9",
125
- "@wordpress/reusable-blocks": "^5.38.1-next.v.0+b8934fcf9",
126
- "@wordpress/rich-text": "^7.38.1-next.v.0+b8934fcf9",
127
- "@wordpress/server-side-render": "^6.14.1-next.v.0+b8934fcf9",
128
- "@wordpress/url": "^4.38.1-next.v.0+b8934fcf9",
129
- "@wordpress/viewport": "^6.38.1-next.v.0+b8934fcf9",
130
- "@wordpress/wordcount": "^4.38.1-next.v.0+b8934fcf9",
96
+ "@wordpress/a11y": "^4.39.0",
97
+ "@wordpress/api-fetch": "^7.39.0",
98
+ "@wordpress/autop": "^4.39.0",
99
+ "@wordpress/base-styles": "^6.15.0",
100
+ "@wordpress/blob": "^4.39.0",
101
+ "@wordpress/block-editor": "^15.12.0",
102
+ "@wordpress/blocks": "^15.12.0",
103
+ "@wordpress/components": "^32.1.0",
104
+ "@wordpress/compose": "^7.39.0",
105
+ "@wordpress/core-data": "^7.39.0",
106
+ "@wordpress/data": "^10.39.0",
107
+ "@wordpress/date": "^5.39.0",
108
+ "@wordpress/deprecated": "^4.39.0",
109
+ "@wordpress/dom": "^4.39.0",
110
+ "@wordpress/element": "^6.39.0",
111
+ "@wordpress/escape-html": "^3.39.0",
112
+ "@wordpress/hooks": "^4.39.0",
113
+ "@wordpress/html-entities": "^4.39.0",
114
+ "@wordpress/i18n": "^6.12.0",
115
+ "@wordpress/icons": "^11.6.0",
116
+ "@wordpress/interactivity": "^6.39.0",
117
+ "@wordpress/interactivity-router": "^2.39.0",
118
+ "@wordpress/keyboard-shortcuts": "^5.39.0",
119
+ "@wordpress/keycodes": "^4.39.0",
120
+ "@wordpress/latex-to-mathml": "^1.7.0",
121
+ "@wordpress/notices": "^5.39.0",
122
+ "@wordpress/patterns": "^2.39.0",
123
+ "@wordpress/primitives": "^4.39.0",
124
+ "@wordpress/private-apis": "^1.39.0",
125
+ "@wordpress/reusable-blocks": "^5.39.0",
126
+ "@wordpress/rich-text": "^7.39.0",
127
+ "@wordpress/server-side-render": "^6.15.0",
128
+ "@wordpress/url": "^4.39.0",
129
+ "@wordpress/viewport": "^6.39.0",
130
+ "@wordpress/wordcount": "^4.39.0",
131
131
  "change-case": "^4.1.2",
132
132
  "clsx": "^2.1.1",
133
133
  "colord": "^2.7.0",
@@ -148,5 +148,5 @@
148
148
  "publishConfig": {
149
149
  "access": "public"
150
150
  },
151
- "gitHead": "17529010285784fd2e735348a28391c79de87c88"
151
+ "gitHead": "eee1cfb1472f11183e40fb77465a5f13145df7ad"
152
152
  }
@@ -47,6 +47,10 @@ export const settings = {
47
47
  if ( context === 'list-view' && ( customName || hasContent ) ) {
48
48
  return customName || text;
49
49
  }
50
+
51
+ if ( context === 'breadcrumb' && customName ) {
52
+ return customName;
53
+ }
50
54
  },
51
55
  };
52
56
 
@@ -9,9 +9,6 @@
9
9
  "textdomain": "default",
10
10
  "usesContext": [ "postId", "postType" ],
11
11
  "attributes": {
12
- "textAlign": {
13
- "type": "string"
14
- },
15
12
  "showPostTitle": {
16
13
  "type": "boolean",
17
14
  "default": true
@@ -52,6 +49,7 @@
52
49
  "typography": {
53
50
  "fontSize": true,
54
51
  "lineHeight": true,
52
+ "textAlign": true,
55
53
  "__experimentalFontFamily": true,
56
54
  "__experimentalFontWeight": true,
57
55
  "__experimentalFontStyle": true,
@@ -1,32 +1,162 @@
1
1
  /**
2
2
  * Internal dependencies
3
3
  */
4
- import metadata from './block.json';
4
+ import migrateTextAlign from '../utils/migrate-text-align';
5
5
 
6
- const { attributes, supports } = metadata;
6
+ const v2 = {
7
+ attributes: {
8
+ textAlign: {
9
+ type: 'string',
10
+ },
11
+ showPostTitle: {
12
+ type: 'boolean',
13
+ default: true,
14
+ },
15
+ showCommentsCount: {
16
+ type: 'boolean',
17
+ default: true,
18
+ },
19
+ level: {
20
+ type: 'number',
21
+ default: 2,
22
+ },
23
+ levelOptions: {
24
+ type: 'array',
25
+ },
26
+ },
27
+ supports: {
28
+ anchor: true,
29
+ align: true,
30
+ html: false,
31
+ __experimentalBorder: {
32
+ radius: true,
33
+ color: true,
34
+ width: true,
35
+ style: true,
36
+ },
37
+ color: {
38
+ gradients: true,
39
+ __experimentalDefaultControls: {
40
+ background: true,
41
+ text: true,
42
+ },
43
+ },
44
+ spacing: {
45
+ margin: true,
46
+ padding: true,
47
+ },
48
+ typography: {
49
+ fontSize: true,
50
+ lineHeight: true,
51
+ __experimentalFontFamily: true,
52
+ __experimentalFontWeight: true,
53
+ __experimentalFontStyle: true,
54
+ __experimentalTextTransform: true,
55
+ __experimentalTextDecoration: true,
56
+ __experimentalLetterSpacing: true,
57
+ __experimentalDefaultControls: {
58
+ fontSize: true,
59
+ __experimentalFontFamily: true,
60
+ __experimentalFontStyle: true,
61
+ __experimentalFontWeight: true,
62
+ },
63
+ },
64
+ interactivity: {
65
+ clientNavigation: true,
66
+ },
67
+ },
68
+ migrate: ( oldAttributes ) => {
69
+ const { singleCommentLabel, multipleCommentsLabel, ...newAttributes } =
70
+ oldAttributes;
71
+ return migrateTextAlign( newAttributes );
72
+ },
73
+ isEligible( attributes ) {
74
+ return (
75
+ !! attributes.textAlign ||
76
+ !! attributes.className?.match(
77
+ /\bhas-text-align-(left|center|right)\b/
78
+ )
79
+ );
80
+ },
81
+ save: () => null,
82
+ };
7
83
 
8
- export default [
9
- {
10
- attributes: {
11
- ...attributes,
12
- singleCommentLabel: {
13
- type: 'string',
84
+ const v1 = {
85
+ attributes: {
86
+ textAlign: {
87
+ type: 'string',
88
+ },
89
+ showPostTitle: {
90
+ type: 'boolean',
91
+ default: true,
92
+ },
93
+ showCommentsCount: {
94
+ type: 'boolean',
95
+ default: true,
96
+ },
97
+ level: {
98
+ type: 'number',
99
+ default: 2,
100
+ },
101
+ levelOptions: {
102
+ type: 'array',
103
+ },
104
+ singleCommentLabel: {
105
+ type: 'string',
106
+ },
107
+ multipleCommentsLabel: {
108
+ type: 'string',
109
+ },
110
+ },
111
+ supports: {
112
+ anchor: true,
113
+ align: true,
114
+ html: false,
115
+ __experimentalBorder: {
116
+ radius: true,
117
+ color: true,
118
+ width: true,
119
+ style: true,
120
+ },
121
+ color: {
122
+ gradients: true,
123
+ __experimentalDefaultControls: {
124
+ background: true,
125
+ text: true,
14
126
  },
15
- multipleCommentsLabel: {
16
- type: 'string',
127
+ },
128
+ spacing: {
129
+ margin: true,
130
+ padding: true,
131
+ },
132
+ typography: {
133
+ fontSize: true,
134
+ lineHeight: true,
135
+ __experimentalFontFamily: true,
136
+ __experimentalFontWeight: true,
137
+ __experimentalFontStyle: true,
138
+ __experimentalTextTransform: true,
139
+ __experimentalTextDecoration: true,
140
+ __experimentalLetterSpacing: true,
141
+ __experimentalDefaultControls: {
142
+ fontSize: true,
143
+ __experimentalFontFamily: true,
144
+ __experimentalFontStyle: true,
145
+ __experimentalFontWeight: true,
17
146
  },
18
147
  },
19
- supports,
20
- migrate: ( oldAttributes ) => {
21
- const {
22
- singleCommentLabel,
23
- multipleCommentsLabel,
24
- ...newAttributes
25
- } = oldAttributes;
26
- return newAttributes;
27
- },
28
- isEligible: ( { multipleCommentsLabel, singleCommentLabel } ) =>
29
- multipleCommentsLabel || singleCommentLabel,
30
- save: () => null,
148
+ interactivity: {
149
+ clientNavigation: true,
150
+ },
151
+ },
152
+ migrate: ( oldAttributes ) => {
153
+ const { singleCommentLabel, multipleCommentsLabel, ...newAttributes } =
154
+ oldAttributes;
155
+ return migrateTextAlign( newAttributes );
31
156
  },
32
- ];
157
+ isEligible: ( { multipleCommentsLabel, singleCommentLabel } ) =>
158
+ multipleCommentsLabel || singleCommentLabel,
159
+ save: () => null,
160
+ };
161
+
162
+ export default [ v2, v1 ];
@@ -1,13 +1,7 @@
1
- /**
2
- * External dependencies
3
- */
4
- import clsx from 'clsx';
5
-
6
1
  /**
7
2
  * WordPress dependencies
8
3
  */
9
4
  import {
10
- AlignmentControl,
11
5
  BlockControls,
12
6
  useBlockProps,
13
7
  InspectorControls,
@@ -30,27 +24,23 @@ import { addQueryArgs } from '@wordpress/url';
30
24
  * Internal dependencies
31
25
  */
32
26
  import { useToolsPanelDropdownMenuProps } from '../utils/hooks';
27
+ import useDeprecatedTextAlign from '../utils/deprecated-text-align-attributes';
33
28
 
34
- export default function Edit( {
35
- attributes: {
36
- textAlign,
29
+ export default function Edit( props ) {
30
+ useDeprecatedTextAlign( props );
31
+ const { attributes, setAttributes, context } = props;
32
+ const {
37
33
  showPostTitle,
38
34
  showCommentsCount,
39
- level,
35
+ level = 2,
40
36
  levelOptions,
41
- },
42
- setAttributes,
43
- context: { postType, postId },
44
- } ) {
37
+ } = attributes;
38
+ const { postId, postType } = context;
45
39
  const TagName = 'h' + level;
46
40
  const [ commentsCount, setCommentsCount ] = useState();
47
41
  const [ rawTitle ] = useEntityProp( 'postType', postType, 'title', postId );
48
42
  const isSiteEditor = typeof postId === 'undefined';
49
- const blockProps = useBlockProps( {
50
- className: clsx( {
51
- [ `has-text-align-${ textAlign }` ]: textAlign,
52
- } ),
53
- } );
43
+ const blockProps = useBlockProps();
54
44
 
55
45
  const {
56
46
  threadCommentsDepth,
@@ -104,12 +94,6 @@ export default function Edit( {
104
94
 
105
95
  const blockControls = (
106
96
  <BlockControls group="block">
107
- <AlignmentControl
108
- value={ textAlign }
109
- onChange={ ( newAlign ) =>
110
- setAttributes( { textAlign: newAlign } )
111
- }
112
- />
113
97
  <HeadingLevelDropdown
114
98
  value={ level }
115
99
  options={ levelOptions }
@@ -17,7 +17,7 @@ import { link } from '@wordpress/icons';
17
17
  /**
18
18
  * Internal dependencies
19
19
  */
20
- import { ALLOWED_MEDIA_TYPES } from '../shared';
20
+ import { ALLOWED_MEDIA_TYPES, EMBED_VIDEO_BACKGROUND_TYPE } from '../shared';
21
21
  import { unlock } from '../../lock-unlock';
22
22
  import EmbedVideoUrlInput from './embed-video-url-input';
23
23
 
@@ -33,8 +33,14 @@ export default function CoverBlockControls( {
33
33
  onSelectEmbedUrl,
34
34
  blockEditingMode,
35
35
  } ) {
36
- const { contentPosition, id, useFeaturedImage, minHeight, minHeightUnit } =
37
- attributes;
36
+ const {
37
+ contentPosition,
38
+ id,
39
+ useFeaturedImage,
40
+ minHeight,
41
+ minHeightUnit,
42
+ backgroundType,
43
+ } = attributes;
38
44
  const { hasInnerBlocks, url } = currentSettings;
39
45
 
40
46
  const [ prevMinHeightValue, setPrevMinHeightValue ] = useState( minHeight );
@@ -133,6 +139,11 @@ export default function CoverBlockControls( {
133
139
  onSelectEmbedUrl( embedUrl );
134
140
  } }
135
141
  onClose={ () => setIsEmbedUrlInputOpen( false ) }
142
+ initialUrl={
143
+ backgroundType === EMBED_VIDEO_BACKGROUND_TYPE
144
+ ? url
145
+ : ''
146
+ }
136
147
  />
137
148
  ) }
138
149
  </>
@@ -15,8 +15,12 @@ import { __ } from '@wordpress/i18n';
15
15
  */
16
16
  import { isValidVideoEmbedUrl } from '../embed-video-utils';
17
17
 
18
- export default function EmbedVideoUrlInput( { onSubmit, onClose } ) {
19
- const [ url, setUrl ] = useState( '' );
18
+ export default function EmbedVideoUrlInput( {
19
+ onSubmit,
20
+ onClose,
21
+ initialUrl = '',
22
+ } ) {
23
+ const [ url, setUrl ] = useState( initialUrl );
20
24
  const [ error, setError ] = useState( '' );
21
25
 
22
26
  const handleConfirm = () => {
@@ -50,6 +50,10 @@ export const settings = {
50
50
  return customName || summary;
51
51
  }
52
52
 
53
+ if ( context === 'breadcrumb' && customName ) {
54
+ return customName;
55
+ }
56
+
53
57
  if ( context === 'accessibility' ) {
54
58
  return ! hasSummary
55
59
  ? __( 'Details. Empty.' )
package/src/editor.scss CHANGED
@@ -46,7 +46,8 @@
46
46
  @use "./social-links/editor.scss" as *;
47
47
  @use "./spacer/editor.scss" as *;
48
48
  @use "./table/editor.scss" as *;
49
- @use "./tabs/editor.scss" as *;
49
+ @use "./tabs-menu/editor.scss" as *;
50
+ @use "./tabs-menu-item/editor.scss" as *;
50
51
  @use "./template-part/editor.scss" as *;
51
52
  @use "./term-template/editor.scss" as *;
52
53
  @use "./text-columns/editor.scss" as *;
@@ -62,7 +62,7 @@ figure.wp-block-gallery.has-nested-images {
62
62
  &:has(figcaption)::before {
63
63
  content: "";
64
64
  height: 100%;
65
- max-height: 40%;
65
+ max-height: 3em;
66
66
  pointer-events: none;
67
67
 
68
68
  // Blur the background under the gradient scrim.
@@ -48,6 +48,10 @@ export const settings = {
48
48
  return customName || content;
49
49
  }
50
50
 
51
+ if ( context === 'breadcrumb' && customName ) {
52
+ return customName;
53
+ }
54
+
51
55
  if ( context === 'accessibility' ) {
52
56
  return ! hasContent
53
57
  ? sprintf(
@@ -35,7 +35,10 @@ export const settings = {
35
35
  __experimentalLabel( attributes, { context } ) {
36
36
  const customName = attributes?.metadata?.name;
37
37
 
38
- if ( context === 'list-view' && customName ) {
38
+ if (
39
+ ( context === 'list-view' || context === 'breadcrumb' ) &&
40
+ customName
41
+ ) {
39
42
  return customName;
40
43
  }
41
44
 
package/src/index.js CHANGED
@@ -133,9 +133,12 @@ import * as socialLink from './social-link';
133
133
  import * as socialLinks from './social-links';
134
134
  import * as spacer from './spacer';
135
135
  import * as tab from './tab';
136
+ import * as tabPanels from './tab-panels';
136
137
  import * as table from './table';
137
138
  import * as tableOfContents from './table-of-contents';
138
139
  import * as tabs from './tabs';
140
+ import * as tabsMenu from './tabs-menu';
141
+ import * as tabsMenuItem from './tabs-menu-item';
139
142
  import * as tagCloud from './tag-cloud';
140
143
  import * as templatePart from './template-part';
141
144
  import * as termCount from './term-count';
@@ -274,6 +277,9 @@ const getAllBlocks = () => {
274
277
  if ( window?.__experimentalEnableBlockExperiments ) {
275
278
  blocks.push( tab );
276
279
  blocks.push( tabs );
280
+ blocks.push( tabsMenu );
281
+ blocks.push( tabsMenuItem );
282
+ blocks.push( tabPanels );
277
283
  }
278
284
 
279
285
  if ( window?.__experimentalEnableFormBlocks ) {
@@ -45,6 +45,10 @@ export const settings = {
45
45
  if ( context === 'list-view' && ( customName || hasContent ) ) {
46
46
  return customName || content;
47
47
  }
48
+
49
+ if ( context === 'breadcrumb' && customName ) {
50
+ return customName;
51
+ }
48
52
  },
49
53
  };
50
54
 
package/src/more/index.js CHANGED
@@ -27,7 +27,10 @@ export const settings = {
27
27
  __experimentalLabel( attributes, { context } ) {
28
28
  const customName = attributes?.metadata?.name;
29
29
 
30
- if ( context === 'list-view' && customName ) {
30
+ if (
31
+ ( context === 'list-view' || context === 'breadcrumb' ) &&
32
+ customName
33
+ ) {
31
34
  return customName;
32
35
  }
33
36
 
@@ -516,13 +516,37 @@ function Navigation( {
516
516
  [ clientId ]
517
517
  );
518
518
 
519
- // Force overlayMenu to 'never' if within an overlay template part
520
- // to prevent overlays within overlays.
519
+ // Configure navigation blocks in overlay templates.
520
+ const hasSetOverlayDefault = useRef( false );
521
521
  useEffect( () => {
522
- if ( isWithinOverlay && overlayMenu !== 'never' ) {
522
+ if ( ! isWithinOverlay ) {
523
+ return;
524
+ }
525
+
526
+ // Prevent nested overlays.
527
+ if ( overlayMenu !== 'never' ) {
523
528
  setAttributes( { overlayMenu: 'never' } );
524
529
  }
525
- }, [ isWithinOverlay, overlayMenu, setAttributes ] );
530
+
531
+ // Set vertical orientation and always-open submenus for new blocks.
532
+ if ( ! hasSetOverlayDefault.current && ! ref ) {
533
+ hasSetOverlayDefault.current = true;
534
+ setAttributes( {
535
+ submenuVisibility: 'always',
536
+ layout: {
537
+ ...attributes.layout,
538
+ orientation: 'vertical',
539
+ },
540
+ showSubmenuIcon: false,
541
+ } );
542
+ }
543
+ }, [
544
+ attributes.layout,
545
+ isWithinOverlay,
546
+ overlayMenu,
547
+ ref,
548
+ setAttributes,
549
+ ] );
526
550
 
527
551
  const isResponsive = 'never' !== overlayMenu;
528
552
  const blockProps = useBlockProps( {