@wordpress/block-library 9.41.0 → 9.41.1-next.v.202603161435.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 (199) hide show
  1. package/build/cover/edit/cover-placeholder.cjs +7 -0
  2. package/build/cover/edit/cover-placeholder.cjs.map +2 -2
  3. package/build/html/block.json +2 -1
  4. package/build/html/modal.cjs +142 -147
  5. package/build/html/modal.cjs.map +3 -3
  6. package/build/icon/block.json +3 -12
  7. package/build/image/edit.cjs +7 -0
  8. package/build/image/edit.cjs.map +2 -2
  9. package/build/image/image.cjs +5 -9
  10. package/build/image/image.cjs.map +2 -2
  11. package/build/media-text/media-container.cjs +6 -0
  12. package/build/media-text/media-container.cjs.map +2 -2
  13. package/build/navigation/edit/index.cjs +21 -14
  14. package/build/navigation/edit/index.cjs.map +3 -3
  15. package/build/navigation/view.cjs +9 -2
  16. package/build/navigation/view.cjs.map +2 -2
  17. package/build/navigation-link/block.json +5 -0
  18. package/build/navigation-link/shared/use-link-preview.cjs +29 -0
  19. package/build/navigation-link/shared/use-link-preview.cjs.map +2 -2
  20. package/build/nextpage/block.json +0 -1
  21. package/build/paragraph/edit.cjs +1 -1
  22. package/build/paragraph/edit.cjs.map +1 -1
  23. package/build/playlist/edit.cjs +3 -23
  24. package/build/playlist/edit.cjs.map +3 -3
  25. package/build/playlist/utils.cjs +48 -0
  26. package/build/playlist/utils.cjs.map +7 -0
  27. package/build/playlist-track/block.json +0 -0
  28. package/build/post-excerpt/block.json +1 -3
  29. package/build/post-excerpt/deprecated.cjs +112 -0
  30. package/build/post-excerpt/deprecated.cjs.map +7 -0
  31. package/build/post-excerpt/edit.cjs +11 -30
  32. package/build/post-excerpt/edit.cjs.map +3 -3
  33. package/build/post-excerpt/index.cjs +3 -1
  34. package/build/post-excerpt/index.cjs.map +3 -3
  35. package/build/private-apis.cjs +3 -1
  36. package/build/private-apis.cjs.map +2 -2
  37. package/build/shortcode/block.json +2 -1
  38. package/build/site-logo/edit.cjs +1 -3
  39. package/build/site-logo/edit.cjs.map +2 -2
  40. package/build/tab/add-tab-toolbar-control.cjs +22 -5
  41. package/build/tab/add-tab-toolbar-control.cjs.map +2 -2
  42. package/build/tab/remove-tab-toolbar-control.cjs +19 -1
  43. package/build/tab/remove-tab-toolbar-control.cjs.map +2 -2
  44. package/build/tabs/edit.cjs +85 -7
  45. package/build/tabs/edit.cjs.map +2 -2
  46. package/build/tabs/index.cjs +12 -2
  47. package/build/tabs/index.cjs.map +2 -2
  48. package/build/tabs-menu/block.json +1 -6
  49. package/build/tabs-menu/edit.cjs +11 -151
  50. package/build/tabs-menu/edit.cjs.map +3 -3
  51. package/build/tabs-menu/save.cjs.map +2 -2
  52. package/build/tabs-menu-item/block.json +14 -11
  53. package/build/tabs-menu-item/controls.cjs +2 -133
  54. package/build/tabs-menu-item/controls.cjs.map +3 -3
  55. package/build/tabs-menu-item/edit.cjs +44 -56
  56. package/build/tabs-menu-item/edit.cjs.map +3 -3
  57. package/build/tabs-menu-item/save.cjs +0 -1
  58. package/build/tabs-menu-item/save.cjs.map +2 -2
  59. package/build/template-part/edit/index.cjs +6 -4
  60. package/build/template-part/edit/index.cjs.map +2 -2
  61. package/build/utils/media-control.cjs +72 -29
  62. package/build/utils/media-control.cjs.map +3 -3
  63. package/build-module/cover/edit/cover-placeholder.mjs +7 -0
  64. package/build-module/cover/edit/cover-placeholder.mjs.map +2 -2
  65. package/build-module/html/block.json +2 -1
  66. package/build-module/html/modal.mjs +144 -149
  67. package/build-module/html/modal.mjs.map +2 -2
  68. package/build-module/icon/block.json +3 -12
  69. package/build-module/image/edit.mjs +7 -0
  70. package/build-module/image/edit.mjs.map +2 -2
  71. package/build-module/image/image.mjs +5 -9
  72. package/build-module/image/image.mjs.map +2 -2
  73. package/build-module/media-text/media-container.mjs +7 -1
  74. package/build-module/media-text/media-container.mjs.map +2 -2
  75. package/build-module/navigation/edit/index.mjs +22 -14
  76. package/build-module/navigation/edit/index.mjs.map +2 -2
  77. package/build-module/navigation/view.mjs +9 -2
  78. package/build-module/navigation/view.mjs.map +2 -2
  79. package/build-module/navigation-link/block.json +5 -0
  80. package/build-module/navigation-link/shared/use-link-preview.mjs +28 -0
  81. package/build-module/navigation-link/shared/use-link-preview.mjs.map +2 -2
  82. package/build-module/nextpage/block.json +0 -1
  83. package/build-module/paragraph/edit.mjs +2 -2
  84. package/build-module/paragraph/edit.mjs.map +1 -1
  85. package/build-module/playlist/edit.mjs +2 -18
  86. package/build-module/playlist/edit.mjs.map +2 -2
  87. package/build-module/playlist/utils.mjs +23 -0
  88. package/build-module/playlist/utils.mjs.map +7 -0
  89. package/build-module/playlist-track/block.json +0 -0
  90. package/build-module/post-excerpt/block.json +1 -3
  91. package/build-module/post-excerpt/deprecated.mjs +81 -0
  92. package/build-module/post-excerpt/deprecated.mjs.map +7 -0
  93. package/build-module/post-excerpt/edit.mjs +12 -34
  94. package/build-module/post-excerpt/edit.mjs.map +2 -2
  95. package/build-module/post-excerpt/index.mjs +3 -1
  96. package/build-module/post-excerpt/index.mjs.map +2 -2
  97. package/build-module/private-apis.mjs +3 -1
  98. package/build-module/private-apis.mjs.map +2 -2
  99. package/build-module/shortcode/block.json +2 -1
  100. package/build-module/site-logo/edit.mjs +1 -3
  101. package/build-module/site-logo/edit.mjs.map +2 -2
  102. package/build-module/tab/add-tab-toolbar-control.mjs +22 -5
  103. package/build-module/tab/add-tab-toolbar-control.mjs.map +2 -2
  104. package/build-module/tab/remove-tab-toolbar-control.mjs +19 -1
  105. package/build-module/tab/remove-tab-toolbar-control.mjs.map +2 -2
  106. package/build-module/tabs/edit.mjs +87 -9
  107. package/build-module/tabs/edit.mjs.map +2 -2
  108. package/build-module/tabs/index.mjs +12 -2
  109. package/build-module/tabs/index.mjs.map +2 -2
  110. package/build-module/tabs-menu/block.json +1 -6
  111. package/build-module/tabs-menu/edit.mjs +13 -162
  112. package/build-module/tabs-menu/edit.mjs.map +2 -2
  113. package/build-module/tabs-menu/save.mjs.map +2 -2
  114. package/build-module/tabs-menu-item/block.json +14 -11
  115. package/build-module/tabs-menu-item/controls.mjs +4 -143
  116. package/build-module/tabs-menu-item/controls.mjs.map +2 -2
  117. package/build-module/tabs-menu-item/edit.mjs +45 -57
  118. package/build-module/tabs-menu-item/edit.mjs.map +3 -3
  119. package/build-module/tabs-menu-item/save.mjs +0 -1
  120. package/build-module/tabs-menu-item/save.mjs.map +2 -2
  121. package/build-module/template-part/edit/index.mjs +6 -4
  122. package/build-module/template-part/edit/index.mjs.map +2 -2
  123. package/build-module/utils/media-control.mjs +73 -30
  124. package/build-module/utils/media-control.mjs.map +2 -2
  125. package/build-style/common-rtl.css +1 -0
  126. package/build-style/common.css +1 -0
  127. package/build-style/editor-rtl.css +55 -17
  128. package/build-style/editor.css +55 -17
  129. package/build-style/html/editor-rtl.css +10 -6
  130. package/build-style/html/editor.css +10 -6
  131. package/build-style/navigation/style-rtl.css +15 -1
  132. package/build-style/navigation/style.css +15 -1
  133. package/build-style/navigation-overlay-close/style-rtl.css +3 -3
  134. package/build-style/navigation-overlay-close/style.css +3 -3
  135. package/build-style/playlist/style-rtl.css +4 -0
  136. package/build-style/playlist/style.css +4 -0
  137. package/build-style/style-rtl.css +23 -4
  138. package/build-style/style.css +23 -4
  139. package/build-style/tabs-menu/editor-rtl.css +5 -3
  140. package/build-style/tabs-menu/editor.css +5 -3
  141. package/package.json +38 -38
  142. package/src/accordion-item/index.php +17 -5
  143. package/src/common.scss +1 -0
  144. package/src/cover/edit/cover-placeholder.js +8 -0
  145. package/src/cover/index.php +8 -0
  146. package/src/details/index.php +47 -0
  147. package/src/html/block.json +2 -1
  148. package/src/html/editor.scss +15 -5
  149. package/src/html/modal.js +26 -22
  150. package/src/icon/block.json +3 -12
  151. package/src/image/edit.js +8 -0
  152. package/src/image/image.js +8 -13
  153. package/src/media-text/media-container.js +8 -1
  154. package/src/navigation/edit/index.js +26 -14
  155. package/src/navigation/index.php +27 -13
  156. package/src/navigation/style.scss +17 -1
  157. package/src/navigation/view.js +14 -2
  158. package/src/navigation-link/block.json +5 -0
  159. package/src/navigation-link/index.php +10 -10
  160. package/src/navigation-link/shared/test/use-link-preview.test.js +149 -0
  161. package/src/navigation-link/shared/use-link-preview.js +43 -1
  162. package/src/navigation-overlay-close/style.scss +3 -3
  163. package/src/navigation-submenu/index.php +17 -11
  164. package/src/nextpage/block.json +0 -1
  165. package/src/paragraph/edit.js +2 -2
  166. package/src/playlist/edit.js +1 -34
  167. package/src/playlist/style.scss +5 -0
  168. package/src/playlist/test/edit.js +1 -1
  169. package/src/playlist/utils.js +42 -0
  170. package/src/playlist-track/block.json +0 -0
  171. package/src/playlist-track/edit.js +0 -0
  172. package/src/playlist-track/index.js +0 -0
  173. package/src/playlist-track/index.php +0 -0
  174. package/src/playlist-track/init.js +0 -0
  175. package/src/playlist-track/style.scss +0 -0
  176. package/src/post-excerpt/block.json +1 -3
  177. package/src/post-excerpt/deprecated.js +84 -0
  178. package/src/post-excerpt/edit.js +14 -39
  179. package/src/post-excerpt/index.js +2 -0
  180. package/src/private-apis.js +2 -0
  181. package/src/shortcode/block.json +2 -1
  182. package/src/site-logo/edit.js +1 -3
  183. package/src/tab/add-tab-toolbar-control.js +48 -23
  184. package/src/tab/remove-tab-toolbar-control.js +30 -10
  185. package/src/tabs/edit.js +133 -10
  186. package/src/tabs/index.js +12 -2
  187. package/src/tabs-menu/block.json +1 -6
  188. package/src/tabs-menu/edit.js +13 -214
  189. package/src/tabs-menu/editor.scss +7 -3
  190. package/src/tabs-menu/index.php +42 -27
  191. package/src/tabs-menu/save.js +0 -4
  192. package/src/tabs-menu-item/block.json +14 -11
  193. package/src/tabs-menu-item/controls.js +4 -167
  194. package/src/tabs-menu-item/edit.js +60 -69
  195. package/src/tabs-menu-item/index.php +11 -23
  196. package/src/tabs-menu-item/save.js +0 -1
  197. package/src/template-part/edit/index.js +5 -1
  198. package/src/utils/media-control.js +61 -21
  199. package/src/utils/media-control.scss +54 -18
@@ -95,20 +95,21 @@
95
95
  right: 0;
96
96
  }
97
97
 
98
- .block-library-html__modal {
99
- height: 100%;
98
+ @media (min-width: 600px) {
99
+ .block-library-html__modal:not(.is-full-screen) {
100
+ height: 9999rem;
101
+ }
100
102
  }
101
103
  .block-library-html__modal .components-modal__children-container {
102
104
  height: 100%;
103
105
  }
104
106
 
105
107
  .block-library-html__modal-tabs {
106
- overflow-y: auto;
108
+ flex: 1;
107
109
  }
108
110
 
109
111
  .block-library-html__modal-content {
110
112
  flex: 1;
111
- min-height: 0;
112
113
  }
113
114
 
114
115
  .block-library-html__modal-tab {
@@ -148,7 +149,10 @@
148
149
  display: flex;
149
150
  align-items: center;
150
151
  justify-content: center;
151
- padding: 16px;
152
- flex: 1;
153
152
  min-height: 0;
153
+ overflow-y: auto;
154
+ flex: 1;
155
+ }
156
+ .block-library-html__preview iframe {
157
+ height: 100%;
154
158
  }
@@ -95,20 +95,21 @@
95
95
  left: 0;
96
96
  }
97
97
 
98
- .block-library-html__modal {
99
- height: 100%;
98
+ @media (min-width: 600px) {
99
+ .block-library-html__modal:not(.is-full-screen) {
100
+ height: 9999rem;
101
+ }
100
102
  }
101
103
  .block-library-html__modal .components-modal__children-container {
102
104
  height: 100%;
103
105
  }
104
106
 
105
107
  .block-library-html__modal-tabs {
106
- overflow-y: auto;
108
+ flex: 1;
107
109
  }
108
110
 
109
111
  .block-library-html__modal-content {
110
112
  flex: 1;
111
- min-height: 0;
112
113
  }
113
114
 
114
115
  .block-library-html__modal-tab {
@@ -149,7 +150,10 @@
149
150
  display: flex;
150
151
  align-items: center;
151
152
  justify-content: center;
152
- padding: 16px;
153
- flex: 1;
154
153
  min-height: 0;
154
+ overflow-y: auto;
155
+ flex: 1;
156
+ }
157
+ .block-library-html__preview iframe {
158
+ height: 100%;
155
159
  }
@@ -244,7 +244,17 @@
244
244
  transform: rotate(90deg);
245
245
  }
246
246
  }
247
- .wp-block-navigation .has-child:not(.open-on-click):hover > .wp-block-navigation__submenu-container, .wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within > .wp-block-navigation__submenu-container,
247
+ @media (hover: hover) {
248
+ .wp-block-navigation .has-child:not(.open-on-click):hover > .wp-block-navigation__submenu-container {
249
+ visibility: visible;
250
+ overflow: visible;
251
+ opacity: 1;
252
+ width: auto;
253
+ height: auto;
254
+ min-width: 200px;
255
+ }
256
+ }
257
+ .wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within > .wp-block-navigation__submenu-container,
248
258
  .wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded=true] ~ .wp-block-navigation__submenu-container {
249
259
  visibility: visible;
250
260
  overflow: visible;
@@ -564,6 +574,10 @@ button.wp-block-navigation-item__content {
564
574
  .wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container {
565
575
  display: block;
566
576
  }
577
+ .wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container .wp-block-navigation__submenu-container {
578
+ left: auto;
579
+ right: 0;
580
+ }
567
581
  @media (min-width: 600px) {
568
582
  .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
569
583
  display: block;
@@ -244,7 +244,17 @@
244
244
  transform: rotate(-90deg);
245
245
  }
246
246
  }
247
- .wp-block-navigation .has-child:not(.open-on-click):hover > .wp-block-navigation__submenu-container, .wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within > .wp-block-navigation__submenu-container,
247
+ @media (hover: hover) {
248
+ .wp-block-navigation .has-child:not(.open-on-click):hover > .wp-block-navigation__submenu-container {
249
+ visibility: visible;
250
+ overflow: visible;
251
+ opacity: 1;
252
+ width: auto;
253
+ height: auto;
254
+ min-width: 200px;
255
+ }
256
+ }
257
+ .wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within > .wp-block-navigation__submenu-container,
248
258
  .wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded=true] ~ .wp-block-navigation__submenu-container {
249
259
  visibility: visible;
250
260
  overflow: visible;
@@ -564,6 +574,10 @@ button.wp-block-navigation-item__content {
564
574
  .wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container {
565
575
  display: block;
566
576
  }
577
+ .wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container .wp-block-navigation__submenu-container {
578
+ right: auto;
579
+ left: 0;
580
+ }
567
581
  @media (min-width: 600px) {
568
582
  .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
569
583
  display: block;
@@ -3,7 +3,7 @@
3
3
  align-items: center;
4
4
  justify-content: center;
5
5
  gap: 0.5em;
6
- padding: 0.5em;
6
+ padding: 0;
7
7
  border: none;
8
8
  background: transparent;
9
9
  cursor: pointer;
@@ -13,8 +13,8 @@
13
13
  outline-offset: 2px;
14
14
  }
15
15
  .wp-block-navigation-overlay-close svg {
16
- width: 1.5em;
17
- height: 1.5em;
16
+ width: 24px;
17
+ height: 24px;
18
18
  fill: currentColor;
19
19
  display: block;
20
20
  flex-shrink: 0;
@@ -3,7 +3,7 @@
3
3
  align-items: center;
4
4
  justify-content: center;
5
5
  gap: 0.5em;
6
- padding: 0.5em;
6
+ padding: 0;
7
7
  border: none;
8
8
  background: transparent;
9
9
  cursor: pointer;
@@ -13,8 +13,8 @@
13
13
  outline-offset: 2px;
14
14
  }
15
15
  .wp-block-navigation-overlay-close svg {
16
- width: 1.5em;
17
- height: 1.5em;
16
+ width: 24px;
17
+ height: 24px;
18
18
  fill: currentColor;
19
19
  display: block;
20
20
  flex-shrink: 0;
@@ -332,6 +332,10 @@
332
332
  font-size: 10px;
333
333
  }
334
334
  }
335
+ .wp-block-playlist {
336
+ overflow: hidden;
337
+ overflow: clip;
338
+ }
335
339
  .wp-block-playlist .wp-block-playlist__waveform-player {
336
340
  width: 100%;
337
341
  margin: var(--wp--preset--spacing--20, 0.625em) 0;
@@ -332,6 +332,10 @@
332
332
  font-size: 10px;
333
333
  }
334
334
  }
335
+ .wp-block-playlist {
336
+ overflow: hidden;
337
+ overflow: clip;
338
+ }
335
339
  .wp-block-playlist .wp-block-playlist__waveform-player {
336
340
  width: 100%;
337
341
  margin: var(--wp--preset--spacing--20, 0.625em) 0;
@@ -2611,7 +2611,17 @@ ul {
2611
2611
  transform: rotate(90deg);
2612
2612
  }
2613
2613
  }
2614
- .wp-block-navigation .has-child:not(.open-on-click):hover > .wp-block-navigation__submenu-container, .wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within > .wp-block-navigation__submenu-container,
2614
+ @media (hover: hover) {
2615
+ .wp-block-navigation .has-child:not(.open-on-click):hover > .wp-block-navigation__submenu-container {
2616
+ visibility: visible;
2617
+ overflow: visible;
2618
+ opacity: 1;
2619
+ width: auto;
2620
+ height: auto;
2621
+ min-width: 200px;
2622
+ }
2623
+ }
2624
+ .wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within > .wp-block-navigation__submenu-container,
2615
2625
  .wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded=true] ~ .wp-block-navigation__submenu-container {
2616
2626
  visibility: visible;
2617
2627
  overflow: visible;
@@ -2931,6 +2941,10 @@ button.wp-block-navigation-item__content {
2931
2941
  .wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container {
2932
2942
  display: block;
2933
2943
  }
2944
+ .wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container .wp-block-navigation__submenu-container {
2945
+ left: auto;
2946
+ right: 0;
2947
+ }
2934
2948
  @media (min-width: 600px) {
2935
2949
  .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
2936
2950
  display: block;
@@ -3072,7 +3086,7 @@ html.has-modal-open {
3072
3086
  align-items: center;
3073
3087
  justify-content: center;
3074
3088
  gap: 0.5em;
3075
- padding: 0.5em;
3089
+ padding: 0;
3076
3090
  border: none;
3077
3091
  background: transparent;
3078
3092
  cursor: pointer;
@@ -3082,8 +3096,8 @@ html.has-modal-open {
3082
3096
  outline-offset: 2px;
3083
3097
  }
3084
3098
  .wp-block-navigation-overlay-close svg {
3085
- width: 1.5em;
3086
- height: 1.5em;
3099
+ width: 24px;
3100
+ height: 24px;
3087
3101
  fill: currentColor;
3088
3102
  display: block;
3089
3103
  flex-shrink: 0;
@@ -3491,6 +3505,10 @@ p.has-text-align-left[style*="writing-mode:vertical-lr"] {
3491
3505
  font-size: 10px;
3492
3506
  }
3493
3507
  }
3508
+ .wp-block-playlist {
3509
+ overflow: hidden;
3510
+ overflow: clip;
3511
+ }
3494
3512
  .wp-block-playlist .wp-block-playlist__waveform-player {
3495
3513
  width: 100%;
3496
3514
  margin: var(--wp--preset--spacing--20, 0.625em) 0;
@@ -5178,6 +5196,7 @@ a[data-fn].fn::after {
5178
5196
  position: absolute;
5179
5197
  width: 1px;
5180
5198
  word-wrap: normal !important;
5199
+ word-break: normal !important;
5181
5200
  }
5182
5201
 
5183
5202
  .screen-reader-text:focus {
@@ -2641,7 +2641,17 @@ ul {
2641
2641
  transform: rotate(-90deg);
2642
2642
  }
2643
2643
  }
2644
- .wp-block-navigation .has-child:not(.open-on-click):hover > .wp-block-navigation__submenu-container, .wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within > .wp-block-navigation__submenu-container,
2644
+ @media (hover: hover) {
2645
+ .wp-block-navigation .has-child:not(.open-on-click):hover > .wp-block-navigation__submenu-container {
2646
+ visibility: visible;
2647
+ overflow: visible;
2648
+ opacity: 1;
2649
+ width: auto;
2650
+ height: auto;
2651
+ min-width: 200px;
2652
+ }
2653
+ }
2654
+ .wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within > .wp-block-navigation__submenu-container,
2645
2655
  .wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded=true] ~ .wp-block-navigation__submenu-container {
2646
2656
  visibility: visible;
2647
2657
  overflow: visible;
@@ -2961,6 +2971,10 @@ button.wp-block-navigation-item__content {
2961
2971
  .wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container {
2962
2972
  display: block;
2963
2973
  }
2974
+ .wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container .wp-block-navigation__submenu-container {
2975
+ right: auto;
2976
+ left: 0;
2977
+ }
2964
2978
  @media (min-width: 600px) {
2965
2979
  .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
2966
2980
  display: block;
@@ -3102,7 +3116,7 @@ html.has-modal-open {
3102
3116
  align-items: center;
3103
3117
  justify-content: center;
3104
3118
  gap: 0.5em;
3105
- padding: 0.5em;
3119
+ padding: 0;
3106
3120
  border: none;
3107
3121
  background: transparent;
3108
3122
  cursor: pointer;
@@ -3112,8 +3126,8 @@ html.has-modal-open {
3112
3126
  outline-offset: 2px;
3113
3127
  }
3114
3128
  .wp-block-navigation-overlay-close svg {
3115
- width: 1.5em;
3116
- height: 1.5em;
3129
+ width: 24px;
3130
+ height: 24px;
3117
3131
  fill: currentColor;
3118
3132
  display: block;
3119
3133
  flex-shrink: 0;
@@ -3521,6 +3535,10 @@ p.has-text-align-left[style*="writing-mode:vertical-lr"] {
3521
3535
  font-size: 10px;
3522
3536
  }
3523
3537
  }
3538
+ .wp-block-playlist {
3539
+ overflow: hidden;
3540
+ overflow: clip;
3541
+ }
3524
3542
  .wp-block-playlist .wp-block-playlist__waveform-player {
3525
3543
  width: 100%;
3526
3544
  margin: var(--wp--preset--spacing--20, 0.625em) 0;
@@ -5213,6 +5231,7 @@ a[data-fn].fn::after {
5213
5231
  position: absolute;
5214
5232
  width: 1px;
5215
5233
  word-wrap: normal !important;
5234
+ word-break: normal !important;
5216
5235
  }
5217
5236
 
5218
5237
  .screen-reader-text:focus {
@@ -1,4 +1,6 @@
1
- .wp-block-tabs-menu .tabs__tab-label--placeholder {
2
- opacity: 0.5;
3
- font-style: italic;
1
+ .wp-block-tabs-menu > .block-editor-block-list__layout {
2
+ display: contents;
3
+ }
4
+ .wp-block-tabs-menu .block-editor-block-list__block:has(> .wp-block-tabs-menu-item) {
5
+ display: contents;
4
6
  }
@@ -1,4 +1,6 @@
1
- .wp-block-tabs-menu .tabs__tab-label--placeholder {
2
- opacity: 0.5;
3
- font-style: italic;
1
+ .wp-block-tabs-menu > .block-editor-block-list__layout {
2
+ display: contents;
3
+ }
4
+ .wp-block-tabs-menu .block-editor-block-list__block:has(> .wp-block-tabs-menu-item) {
5
+ display: contents;
4
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/block-library",
3
- "version": "9.41.0",
3
+ "version": "9.41.1-next.v.202603161435.0+ab4981c4f",
4
4
  "description": "Block library for the WordPress editor.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -95,42 +95,42 @@
95
95
  ],
96
96
  "dependencies": {
97
97
  "@arraypress/waveform-player": "1.2.1",
98
- "@wordpress/a11y": "^4.41.0",
99
- "@wordpress/api-fetch": "^7.41.0",
100
- "@wordpress/autop": "^4.41.0",
101
- "@wordpress/base-styles": "^6.17.0",
102
- "@wordpress/blob": "^4.41.0",
103
- "@wordpress/block-editor": "^15.14.0",
104
- "@wordpress/blocks": "^15.14.0",
105
- "@wordpress/components": "^32.3.0",
106
- "@wordpress/compose": "^7.41.0",
107
- "@wordpress/core-data": "^7.41.0",
108
- "@wordpress/data": "^10.41.0",
109
- "@wordpress/date": "^5.41.0",
110
- "@wordpress/deprecated": "^4.41.0",
111
- "@wordpress/dom": "^4.41.0",
112
- "@wordpress/element": "^6.41.0",
113
- "@wordpress/escape-html": "^3.41.0",
114
- "@wordpress/hooks": "^4.41.0",
115
- "@wordpress/html-entities": "^4.41.0",
116
- "@wordpress/i18n": "^6.14.0",
117
- "@wordpress/icons": "^11.8.0",
118
- "@wordpress/interactivity": "^6.41.0",
119
- "@wordpress/interactivity-router": "^2.41.0",
120
- "@wordpress/keyboard-shortcuts": "^5.41.0",
121
- "@wordpress/keycodes": "^4.41.0",
122
- "@wordpress/latex-to-mathml": "^1.9.0",
123
- "@wordpress/notices": "^5.41.0",
124
- "@wordpress/patterns": "^2.41.0",
125
- "@wordpress/primitives": "^4.41.0",
126
- "@wordpress/private-apis": "^1.41.0",
127
- "@wordpress/reusable-blocks": "^5.41.0",
128
- "@wordpress/rich-text": "^7.41.0",
129
- "@wordpress/server-side-render": "^6.17.0",
130
- "@wordpress/upload-media": "^0.26.0",
131
- "@wordpress/url": "^4.41.0",
132
- "@wordpress/viewport": "^6.41.0",
133
- "@wordpress/wordcount": "^4.41.0",
98
+ "@wordpress/a11y": "^4.41.1-next.v.202603161435.0+ab4981c4f",
99
+ "@wordpress/api-fetch": "^7.41.1-next.v.202603161435.0+ab4981c4f",
100
+ "@wordpress/autop": "^4.41.1-next.v.202603161435.0+ab4981c4f",
101
+ "@wordpress/base-styles": "^6.17.1-next.v.202603161435.0+ab4981c4f",
102
+ "@wordpress/blob": "^4.41.1-next.v.202603161435.0+ab4981c4f",
103
+ "@wordpress/block-editor": "^15.14.1-next.v.202603161435.0+ab4981c4f",
104
+ "@wordpress/blocks": "^15.14.1-next.v.202603161435.0+ab4981c4f",
105
+ "@wordpress/components": "^32.4.1-next.v.202603161435.0+ab4981c4f",
106
+ "@wordpress/compose": "^7.41.1-next.v.202603161435.0+ab4981c4f",
107
+ "@wordpress/core-data": "^7.41.2-next.v.202603161435.0+ab4981c4f",
108
+ "@wordpress/data": "^10.41.1-next.v.202603161435.0+ab4981c4f",
109
+ "@wordpress/date": "^5.41.1-next.v.202603161435.0+ab4981c4f",
110
+ "@wordpress/deprecated": "^4.41.1-next.v.202603161435.0+ab4981c4f",
111
+ "@wordpress/dom": "^4.41.1-next.v.202603161435.0+ab4981c4f",
112
+ "@wordpress/element": "^6.41.1-next.v.202603161435.0+ab4981c4f",
113
+ "@wordpress/escape-html": "^3.41.1-next.v.202603161435.0+ab4981c4f",
114
+ "@wordpress/hooks": "^4.41.1-next.v.202603161435.0+ab4981c4f",
115
+ "@wordpress/html-entities": "^4.41.1-next.v.202603161435.0+ab4981c4f",
116
+ "@wordpress/i18n": "^6.14.1-next.v.202603161435.0+ab4981c4f",
117
+ "@wordpress/icons": "^12.0.1-next.v.202603161435.0+ab4981c4f",
118
+ "@wordpress/interactivity": "^6.41.2-next.v.202603161435.0+ab4981c4f",
119
+ "@wordpress/interactivity-router": "^2.41.2-next.v.202603161435.0+ab4981c4f",
120
+ "@wordpress/keyboard-shortcuts": "^5.41.1-next.v.202603161435.0+ab4981c4f",
121
+ "@wordpress/keycodes": "^4.41.1-next.v.202603161435.0+ab4981c4f",
122
+ "@wordpress/latex-to-mathml": "^1.9.1-next.v.202603161435.0+ab4981c4f",
123
+ "@wordpress/notices": "^5.41.1-next.v.202603161435.0+ab4981c4f",
124
+ "@wordpress/patterns": "^2.41.1-next.v.202603161435.0+ab4981c4f",
125
+ "@wordpress/primitives": "^4.41.1-next.v.202603161435.0+ab4981c4f",
126
+ "@wordpress/private-apis": "^1.41.1-next.v.202603161435.0+ab4981c4f",
127
+ "@wordpress/reusable-blocks": "^5.41.1-next.v.202603161435.0+ab4981c4f",
128
+ "@wordpress/rich-text": "^7.41.1-next.v.202603161435.0+ab4981c4f",
129
+ "@wordpress/server-side-render": "^6.17.1-next.v.202603161435.0+ab4981c4f",
130
+ "@wordpress/upload-media": "^0.26.1-next.v.202603161435.0+ab4981c4f",
131
+ "@wordpress/url": "^4.41.1-next.v.202603161435.0+ab4981c4f",
132
+ "@wordpress/viewport": "^6.41.1-next.v.202603161435.0+ab4981c4f",
133
+ "@wordpress/wordcount": "^4.41.1-next.v.202603161435.0+ab4981c4f",
134
134
  "change-case": "^4.1.2",
135
135
  "clsx": "^2.1.1",
136
136
  "colord": "^2.7.0",
@@ -151,5 +151,5 @@
151
151
  "publishConfig": {
152
152
  "access": "public"
153
153
  },
154
- "gitHead": "8bfc179b9aed74c0a6dd6e8edf7a49e40e4f87cc"
154
+ "gitHead": "748f4e4564fcc0e6ae90200d90bb993a3cef5828"
155
155
  }
@@ -6,13 +6,12 @@
6
6
  * @package WordPress
7
7
  * @since 6.9.0
8
8
  *
9
- * @param array $attributes The block attributes.
10
- * @param string $content The block content.
11
- *
9
+ * @param array{ openByDefault: bool } $attributes The block attributes.
10
+ * @param string $content The block content.
12
11
  * @return string Returns the updated markup.
13
12
  */
14
- function block_core_accordion_item_render( $attributes, $content ) {
15
- if ( ! $content ) {
13
+ function block_core_accordion_item_render( array $attributes, string $content ): string {
14
+ if ( '' === $content ) {
16
15
  return $content;
17
16
  }
18
17
 
@@ -55,6 +54,19 @@ function block_core_accordion_item_render( $attributes, $content ) {
55
54
  }
56
55
  }
57
56
 
57
+ /*
58
+ * If an Accordion Item is collapsed by default, ensure any contained IMG has fetchpriority=low to deprioritize it
59
+ * from contending with resources in the critical rendering path. In contrast, remove the loading attribute to
60
+ * prevent the image from not being available when the item is expanded.
61
+ */
62
+ if ( ! $attributes['openByDefault'] ) {
63
+ $processor = new WP_HTML_Tag_Processor( $content );
64
+ while ( $processor->next_tag( 'IMG' ) ) {
65
+ $processor->set_attribute( 'fetchpriority', 'low' );
66
+ }
67
+ $content = $processor->get_updated_html();
68
+ }
69
+
58
70
  return $content;
59
71
  }
60
72
 
package/src/common.scss CHANGED
@@ -92,6 +92,7 @@
92
92
  position: absolute;
93
93
  width: 1px;
94
94
  word-wrap: normal !important;
95
+ word-break: normal !important;
95
96
  }
96
97
 
97
98
  .screen-reader-text:focus {
@@ -4,6 +4,7 @@
4
4
  import { BlockIcon, MediaPlaceholder } from '@wordpress/block-editor';
5
5
  import { __ } from '@wordpress/i18n';
6
6
  import { cover as icon } from '@wordpress/icons';
7
+ import { createBlobURL } from '@wordpress/blob';
7
8
 
8
9
  /**
9
10
  * Internal dependencies
@@ -18,6 +19,12 @@ export default function CoverPlaceholder( {
18
19
  style,
19
20
  toggleUseFeaturedImage,
20
21
  } ) {
22
+ const onFilesPreUpload = ( files ) => {
23
+ if ( files.length === 1 ) {
24
+ onSelectMedia( { url: createBlobURL( files[ 0 ] ) } );
25
+ }
26
+ };
27
+
21
28
  return (
22
29
  <MediaPlaceholder
23
30
  icon={ <BlockIcon icon={ icon } /> }
@@ -28,6 +35,7 @@ export default function CoverPlaceholder( {
28
35
  allowedTypes={ ALLOWED_MEDIA_TYPES }
29
36
  disableMediaButtons={ disableMediaButtons }
30
37
  onToggleFeaturedImage={ toggleUseFeaturedImage }
38
+ onFilesPreUpload={ onFilesPreUpload }
31
39
  onError={ onError }
32
40
  style={ style }
33
41
  >
@@ -66,6 +66,14 @@ function render_block_core_cover( $attributes, $content ) {
66
66
  $query_params['controls'] = '0';
67
67
  $query_params['modestbranding'] = '1';
68
68
  $query_params['playsinline'] = '1';
69
+
70
+ // For loop to work, we need the playlist parameter.
71
+ $path = $parsed_url['path'] ?? '';
72
+ $path_segments = explode( '/', $path );
73
+ $video_id = end( $path_segments );
74
+ if ( $video_id ) {
75
+ $query_params['playlist'] = $video_id;
76
+ }
69
77
  } elseif ( 'vimeo' === $provider ) {
70
78
  $query_params['autoplay'] = '1';
71
79
  $query_params['muted'] = '1';
@@ -0,0 +1,47 @@
1
+ <?php
2
+ /**
3
+ * Server-side rendering of the `core/details` block.
4
+ *
5
+ * @package WordPress
6
+ */
7
+
8
+ /**
9
+ * Sets fetchpriority="low" on all IMG tags within the collapsed Details block.
10
+ *
11
+ * Images in a collapsed Details block are hidden until the block is expanded, so they should
12
+ * not compete with any resources in the critical rendering path, such as the LCP element image.
13
+ *
14
+ * @since 7.0.0
15
+ *
16
+ * @param string $block_content The block content.
17
+ * @param array $block The full block, including name and attributes.
18
+ * @return string Modified HTML with fetchpriority="low" on all IMG tags when the showContent attribute is false.
19
+ */
20
+ function block_core_details_set_img_fetchpriority_low( $block_content, array $block ): string {
21
+ if ( ! is_string( $block_content ) ) {
22
+ return '';
23
+ }
24
+
25
+ // If the Details block is open by default, short-circuit to let core add fetchpriority=high if appropriate.
26
+ if ( $block['attrs']['showContent'] ?? false ) {
27
+ return $block_content;
28
+ }
29
+
30
+ $tags = new WP_HTML_Tag_Processor( $block_content );
31
+ while ( $tags->next_tag( 'IMG' ) ) {
32
+ $tags->set_attribute( 'fetchpriority', 'low' );
33
+ }
34
+ return $tags->get_updated_html();
35
+ }
36
+
37
+ add_filter( 'render_block_core/details', 'block_core_details_set_img_fetchpriority_low', 10, 2 );
38
+
39
+ /**
40
+ * Registers the `core/details` block on server.
41
+ *
42
+ * @since 7.0.0
43
+ */
44
+ function register_block_core_details() {
45
+ register_block_type_from_metadata( __DIR__ . '/details' );
46
+ }
47
+ add_action( 'init', 'register_block_core_details' );
@@ -21,7 +21,8 @@
21
21
  "interactivity": {
22
22
  "clientNavigation": true
23
23
  },
24
- "customCSS": false
24
+ "customCSS": false,
25
+ "visibility": false
25
26
  },
26
27
  "editorStyle": "wp-block-html-editor"
27
28
  }
@@ -14,7 +14,14 @@
14
14
 
15
15
  // Modal styles
16
16
  .block-library-html__modal {
17
- height: 100%;
17
+
18
+ // On medium and large screens, the modal component sets a max-height.
19
+ // We want the modal to be as tall as possible also when the content is short.
20
+ @include break-small() {
21
+ &:not(.is-full-screen) {
22
+ height: 9999rem;
23
+ }
24
+ }
18
25
 
19
26
  .components-modal__children-container {
20
27
  height: 100%;
@@ -22,12 +29,11 @@
22
29
  }
23
30
 
24
31
  .block-library-html__modal-tabs {
25
- overflow-y: auto;
32
+ flex: 1;
26
33
  }
27
34
 
28
35
  .block-library-html__modal-content {
29
36
  flex: 1;
30
- min-height: 0;
31
37
  }
32
38
 
33
39
  .block-library-html__modal-tab {
@@ -71,7 +77,11 @@
71
77
  display: flex;
72
78
  align-items: center;
73
79
  justify-content: center;
74
- padding: $grid-unit-20;
75
- flex: 1;
76
80
  min-height: 0;
81
+ overflow-y: auto;
82
+ flex: 1;
83
+
84
+ iframe {
85
+ height: 100%;
86
+ }
77
87
  }