@wordpress/block-library 9.40.1 → 9.40.2-next.v.202602271551.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 (208) hide show
  1. package/build/accordion/view.cjs +0 -34
  2. package/build/accordion/view.cjs.map +2 -2
  3. package/build/icon/block.json +9 -1
  4. package/build/icon/components/custom-inserter/icon-grid.cjs +1 -1
  5. package/build/icon/components/custom-inserter/icon-grid.cjs.map +2 -2
  6. package/build/icon/components/custom-inserter/index.cjs +1 -1
  7. package/build/icon/components/custom-inserter/index.cjs.map +2 -2
  8. package/build/icon/edit.cjs +15 -7
  9. package/build/icon/edit.cjs.map +2 -2
  10. package/build/image/edit.cjs +1 -1
  11. package/build/image/edit.cjs.map +2 -2
  12. package/build/navigation/edit/index.cjs +4 -2
  13. package/build/navigation/edit/index.cjs.map +3 -3
  14. package/build/navigation/edit/leaf-more-menu.cjs +68 -6
  15. package/build/navigation/edit/leaf-more-menu.cjs.map +3 -3
  16. package/build/navigation/edit/menu-inspector-controls.cjs +20 -91
  17. package/build/navigation/edit/menu-inspector-controls.cjs.map +3 -3
  18. package/build/navigation/edit/navigation-link-ui.cjs +97 -0
  19. package/build/navigation/edit/navigation-link-ui.cjs.map +7 -0
  20. package/build/navigation/edit/navigation-list-view-header.cjs +86 -0
  21. package/build/navigation/edit/navigation-list-view-header.cjs.map +7 -0
  22. package/build/navigation/edit/navigation-menu-selector.cjs +4 -2
  23. package/build/navigation/edit/navigation-menu-selector.cjs.map +3 -3
  24. package/build/navigation/edit/placeholder/index.cjs +2 -2
  25. package/build/navigation/edit/placeholder/index.cjs.map +3 -3
  26. package/build/navigation-link/shared/controls.cjs +29 -52
  27. package/build/navigation-link/shared/controls.cjs.map +3 -3
  28. package/build/navigation-link/shared/use-link-preview.cjs +7 -8
  29. package/build/navigation-link/shared/use-link-preview.cjs.map +2 -2
  30. package/build/navigation-overlay-close/edit.cjs +2 -3
  31. package/build/navigation-overlay-close/edit.cjs.map +2 -2
  32. package/build/page-list-item/edit.cjs +6 -3
  33. package/build/page-list-item/edit.cjs.map +2 -2
  34. package/build/post-navigation-link/block.json +1 -3
  35. package/build/post-navigation-link/deprecated.cjs +100 -0
  36. package/build/post-navigation-link/deprecated.cjs.map +7 -0
  37. package/build/post-navigation-link/edit.cjs +2 -36
  38. package/build/post-navigation-link/edit.cjs.map +3 -3
  39. package/build/post-navigation-link/index.cjs +2 -0
  40. package/build/post-navigation-link/index.cjs.map +3 -3
  41. package/build/post-title/block.json +1 -3
  42. package/build/post-title/deprecated.cjs +82 -1
  43. package/build/post-title/deprecated.cjs.map +3 -3
  44. package/build/post-title/edit.cjs +10 -36
  45. package/build/post-title/edit.cjs.map +3 -3
  46. package/build/pullquote/deprecated.cjs +6 -6
  47. package/build/pullquote/deprecated.cjs.map +2 -2
  48. package/build/query/block.json +1 -2
  49. package/build/query-title/block.json +1 -3
  50. package/build/query-title/deprecated.cjs +70 -1
  51. package/build/query-title/deprecated.cjs.map +3 -3
  52. package/build/query-title/edit.cjs +17 -35
  53. package/build/query-title/edit.cjs.map +3 -3
  54. package/build/site-tagline/block.json +6 -4
  55. package/build/site-tagline/deprecated.cjs +66 -1
  56. package/build/site-tagline/deprecated.cjs.map +3 -3
  57. package/build/site-tagline/edit.cjs +14 -28
  58. package/build/site-tagline/edit.cjs.map +3 -3
  59. package/build/site-title/block.json +1 -3
  60. package/build/site-title/deprecated.cjs +79 -1
  61. package/build/site-title/deprecated.cjs.map +3 -3
  62. package/build/site-title/edit.cjs +14 -30
  63. package/build/site-title/edit.cjs.map +3 -3
  64. package/build/tabs-menu-item/block.json +1 -26
  65. package/build/tabs-menu-item/controls.cjs +2 -100
  66. package/build/tabs-menu-item/controls.cjs.map +3 -3
  67. package/build/tabs-menu-item/edit.cjs +6 -65
  68. package/build/tabs-menu-item/edit.cjs.map +2 -2
  69. package/build/tabs-menu-item/save.cjs +1 -15
  70. package/build/tabs-menu-item/save.cjs.map +2 -2
  71. package/build-module/accordion/view.mjs +1 -35
  72. package/build-module/accordion/view.mjs.map +2 -2
  73. package/build-module/icon/block.json +9 -1
  74. package/build-module/icon/components/custom-inserter/icon-grid.mjs +1 -1
  75. package/build-module/icon/components/custom-inserter/icon-grid.mjs.map +2 -2
  76. package/build-module/icon/components/custom-inserter/index.mjs +1 -1
  77. package/build-module/icon/components/custom-inserter/index.mjs.map +2 -2
  78. package/build-module/icon/edit.mjs +15 -7
  79. package/build-module/icon/edit.mjs.map +2 -2
  80. package/build-module/image/edit.mjs +1 -1
  81. package/build-module/image/edit.mjs.map +2 -2
  82. package/build-module/navigation/edit/index.mjs +4 -2
  83. package/build-module/navigation/edit/index.mjs.map +2 -2
  84. package/build-module/navigation/edit/leaf-more-menu.mjs +73 -7
  85. package/build-module/navigation/edit/leaf-more-menu.mjs.map +2 -2
  86. package/build-module/navigation/edit/menu-inspector-controls.mjs +21 -101
  87. package/build-module/navigation/edit/menu-inspector-controls.mjs.map +2 -2
  88. package/build-module/navigation/edit/navigation-link-ui.mjs +76 -0
  89. package/build-module/navigation/edit/navigation-link-ui.mjs.map +7 -0
  90. package/build-module/navigation/edit/navigation-list-view-header.mjs +58 -0
  91. package/build-module/navigation/edit/navigation-list-view-header.mjs.map +7 -0
  92. package/build-module/navigation/edit/navigation-menu-selector.mjs +5 -3
  93. package/build-module/navigation/edit/navigation-menu-selector.mjs.map +2 -2
  94. package/build-module/navigation/edit/placeholder/index.mjs +2 -2
  95. package/build-module/navigation/edit/placeholder/index.mjs.map +2 -2
  96. package/build-module/navigation-link/shared/controls.mjs +29 -53
  97. package/build-module/navigation-link/shared/controls.mjs.map +2 -2
  98. package/build-module/navigation-link/shared/use-link-preview.mjs +7 -8
  99. package/build-module/navigation-link/shared/use-link-preview.mjs.map +2 -2
  100. package/build-module/navigation-overlay-close/edit.mjs +2 -3
  101. package/build-module/navigation-overlay-close/edit.mjs.map +2 -2
  102. package/build-module/page-list-item/edit.mjs +6 -3
  103. package/build-module/page-list-item/edit.mjs.map +2 -2
  104. package/build-module/post-navigation-link/block.json +1 -3
  105. package/build-module/post-navigation-link/deprecated.mjs +69 -0
  106. package/build-module/post-navigation-link/deprecated.mjs.map +7 -0
  107. package/build-module/post-navigation-link/edit.mjs +3 -30
  108. package/build-module/post-navigation-link/edit.mjs.map +2 -2
  109. package/build-module/post-navigation-link/index.mjs +2 -0
  110. package/build-module/post-navigation-link/index.mjs.map +2 -2
  111. package/build-module/post-title/block.json +1 -3
  112. package/build-module/post-title/deprecated.mjs +82 -1
  113. package/build-module/post-title/deprecated.mjs.map +2 -2
  114. package/build-module/post-title/edit.mjs +10 -27
  115. package/build-module/post-title/edit.mjs.map +2 -2
  116. package/build-module/pullquote/deprecated.mjs +6 -6
  117. package/build-module/pullquote/deprecated.mjs.map +2 -2
  118. package/build-module/query/block.json +1 -2
  119. package/build-module/query-title/block.json +1 -3
  120. package/build-module/query-title/deprecated.mjs +70 -1
  121. package/build-module/query-title/deprecated.mjs.map +2 -2
  122. package/build-module/query-title/edit.mjs +17 -36
  123. package/build-module/query-title/edit.mjs.map +2 -2
  124. package/build-module/site-tagline/block.json +6 -4
  125. package/build-module/site-tagline/deprecated.mjs +66 -1
  126. package/build-module/site-tagline/deprecated.mjs.map +2 -2
  127. package/build-module/site-tagline/edit.mjs +14 -29
  128. package/build-module/site-tagline/edit.mjs.map +2 -2
  129. package/build-module/site-title/block.json +1 -3
  130. package/build-module/site-title/deprecated.mjs +79 -1
  131. package/build-module/site-title/deprecated.mjs.map +2 -2
  132. package/build-module/site-title/edit.mjs +14 -31
  133. package/build-module/site-title/edit.mjs.map +2 -2
  134. package/build-module/tabs-menu-item/block.json +1 -26
  135. package/build-module/tabs-menu-item/controls.mjs +3 -104
  136. package/build-module/tabs-menu-item/controls.mjs.map +2 -2
  137. package/build-module/tabs-menu-item/edit.mjs +6 -66
  138. package/build-module/tabs-menu-item/edit.mjs.map +2 -2
  139. package/build-module/tabs-menu-item/save.mjs +1 -15
  140. package/build-module/tabs-menu-item/save.mjs.map +2 -2
  141. package/build-style/editor-rtl.css +10 -5
  142. package/build-style/editor.css +10 -5
  143. package/build-style/navigation-link/editor-rtl.css +10 -0
  144. package/build-style/navigation-link/editor.css +10 -0
  145. package/build-style/style-rtl.css +3 -12
  146. package/build-style/style.css +3 -12
  147. package/build-style/tabs-menu-item/editor-rtl.css +0 -5
  148. package/build-style/tabs-menu-item/editor.css +0 -5
  149. package/build-style/tabs-menu-item/style-rtl.css +3 -12
  150. package/build-style/tabs-menu-item/style.css +3 -12
  151. package/package.json +38 -38
  152. package/src/accordion/view.js +1 -44
  153. package/src/accordion-item/index.php +0 -1
  154. package/src/cover/index.php +4 -4
  155. package/src/icon/block.json +9 -1
  156. package/src/icon/components/custom-inserter/icon-grid.js +1 -1
  157. package/src/icon/components/custom-inserter/index.js +1 -1
  158. package/src/icon/edit.js +20 -10
  159. package/src/icon/index.php +1 -3
  160. package/src/image/edit.js +1 -1
  161. package/src/image/index.php +1 -4
  162. package/src/navigation/edit/index.js +4 -2
  163. package/src/navigation/edit/leaf-more-menu.js +86 -11
  164. package/src/navigation/edit/menu-inspector-controls.js +23 -142
  165. package/src/navigation/edit/navigation-link-ui.js +115 -0
  166. package/src/navigation/edit/navigation-list-view-header.js +62 -0
  167. package/src/navigation/edit/navigation-menu-selector.js +5 -3
  168. package/src/navigation/edit/placeholder/index.js +3 -2
  169. package/src/navigation/edit/test/navigation-menu-selector.js +23 -20
  170. package/src/navigation-link/editor.scss +18 -0
  171. package/src/navigation-link/shared/controls.js +35 -62
  172. package/src/navigation-link/shared/test/controls.js +5 -5
  173. package/src/navigation-link/shared/test/use-link-preview.test.js +10 -1
  174. package/src/navigation-link/shared/use-link-preview.js +13 -11
  175. package/src/navigation-overlay-close/edit.js +4 -3
  176. package/src/page-list/index.php +1 -1
  177. package/src/page-list-item/edit.js +8 -7
  178. package/src/post-featured-image/index.php +2 -4
  179. package/src/post-navigation-link/block.json +1 -3
  180. package/src/post-navigation-link/deprecated.js +72 -0
  181. package/src/post-navigation-link/edit.js +2 -35
  182. package/src/post-navigation-link/index.js +2 -0
  183. package/src/post-title/block.json +1 -3
  184. package/src/post-title/deprecated.js +86 -1
  185. package/src/post-title/edit.js +2 -18
  186. package/src/pullquote/deprecated.js +3 -3
  187. package/src/query/block.json +1 -2
  188. package/src/query-title/block.json +1 -3
  189. package/src/query-title/deprecated.js +74 -1
  190. package/src/query-title/edit.js +11 -27
  191. package/src/query-title/index.php +1 -1
  192. package/src/site-tagline/block.json +6 -4
  193. package/src/site-tagline/deprecated.js +70 -1
  194. package/src/site-tagline/edit.js +9 -22
  195. package/src/site-title/block.json +1 -3
  196. package/src/site-title/deprecated.js +83 -1
  197. package/src/site-title/edit.js +9 -22
  198. package/src/tabs-menu-item/block.json +1 -26
  199. package/src/tabs-menu-item/controls.js +0 -108
  200. package/src/tabs-menu-item/edit.js +6 -79
  201. package/src/tabs-menu-item/editor.scss +0 -6
  202. package/src/tabs-menu-item/save.js +1 -26
  203. package/src/tabs-menu-item/style.scss +3 -14
  204. package/build/navigation/use-navigation-entities.cjs +0 -67
  205. package/build/navigation/use-navigation-entities.cjs.map +0 -7
  206. package/build-module/navigation/use-navigation-entities.mjs +0 -46
  207. package/build-module/navigation/use-navigation-entities.mjs.map +0 -7
  208. package/src/navigation/use-navigation-entities.js +0 -72
@@ -158,4 +158,14 @@
158
158
  */
159
159
  .navigation-link-control__error-text {
160
160
  color: #cc1818;
161
+ }
162
+
163
+ .navigation-link-to__action-button {
164
+ grid-column: auto;
165
+ }
166
+ .navigation-link-to__action-button:nth-last-child(1 of .navigation-link-to__action-button):nth-child(odd of .navigation-link-to__action-button) {
167
+ grid-column: 1/-1;
168
+ }
169
+ .navigation-link-to__action-button.navigation-link-to__action-button.navigation-link-to__action-button {
170
+ justify-content: center;
161
171
  }
@@ -4580,8 +4580,7 @@ ul.wp-block-rss.is-grid li {
4580
4580
  appearance: none;
4581
4581
  -webkit-appearance: none;
4582
4582
  margin: 0;
4583
- padding-block: var(--tab-padding-block, var(--wp--preset--spacing--20, 0.5em));
4584
- padding-inline: var(--tab-padding-inline, var(--wp--preset--spacing--30, 1em));
4583
+ padding: var(--wp--preset--spacing--20, 0.5em) var(--wp--preset--spacing--30, 1em);
4585
4584
  font-size: inherit;
4586
4585
  font-family: inherit;
4587
4586
  font-weight: inherit;
@@ -4590,20 +4589,12 @@ ul.wp-block-rss.is-grid li {
4590
4589
  text-transform: inherit;
4591
4590
  text-align: inherit;
4592
4591
  }
4593
- .wp-block-tabs-menu-item:focus {
4594
- outline: none;
4595
- }
4596
4592
  .wp-block-tabs-menu-item:focus-visible {
4597
- outline: 2px solid var(--tab-border-color-active, #000);
4598
4593
  outline-offset: 2px;
4599
4594
  }
4600
- .wp-block-tabs-menu-item:hover {
4601
- background-color: var(--custom-tab-hover-color, #eaeaea) !important;
4602
- color: var(--custom-tab-hover-text-color, #000) !important;
4603
- }
4604
4595
  .wp-block-tabs-menu-item[aria-selected=true], .wp-block-tabs-menu-item.is-active {
4605
- background-color: var(--custom-tab-active-color, #000) !important;
4606
- color: var(--custom-tab-active-text-color, #fff) !important;
4596
+ background-color: #000;
4597
+ color: #fff;
4607
4598
  }
4608
4599
 
4609
4600
  .wp-block-term-count {
@@ -4613,8 +4613,7 @@ ul.wp-block-rss.is-grid li {
4613
4613
  appearance: none;
4614
4614
  -webkit-appearance: none;
4615
4615
  margin: 0;
4616
- padding-block: var(--tab-padding-block, var(--wp--preset--spacing--20, 0.5em));
4617
- padding-inline: var(--tab-padding-inline, var(--wp--preset--spacing--30, 1em));
4616
+ padding: var(--wp--preset--spacing--20, 0.5em) var(--wp--preset--spacing--30, 1em);
4618
4617
  font-size: inherit;
4619
4618
  font-family: inherit;
4620
4619
  font-weight: inherit;
@@ -4623,20 +4622,12 @@ ul.wp-block-rss.is-grid li {
4623
4622
  text-transform: inherit;
4624
4623
  text-align: inherit;
4625
4624
  }
4626
- .wp-block-tabs-menu-item:focus {
4627
- outline: none;
4628
- }
4629
4625
  .wp-block-tabs-menu-item:focus-visible {
4630
- outline: 2px solid var(--tab-border-color-active, #000);
4631
4626
  outline-offset: 2px;
4632
4627
  }
4633
- .wp-block-tabs-menu-item:hover {
4634
- background-color: var(--custom-tab-hover-color, #eaeaea) !important;
4635
- color: var(--custom-tab-hover-text-color, #000) !important;
4636
- }
4637
4628
  .wp-block-tabs-menu-item[aria-selected=true], .wp-block-tabs-menu-item.is-active {
4638
- background-color: var(--custom-tab-active-color, #000) !important;
4639
- color: var(--custom-tab-active-text-color, #fff) !important;
4629
+ background-color: #000;
4630
+ color: #fff;
4640
4631
  }
4641
4632
 
4642
4633
  .wp-block-term-count {
@@ -1,5 +1,4 @@
1
1
  .wp-block-tabs-menu-item.is-selected {
2
- outline: 2px solid var(--wp-admin-theme-color, #007cba);
3
2
  outline-offset: 2px;
4
3
  }
5
4
 
@@ -9,8 +8,4 @@
9
8
  }
10
9
  .block-editor-block-preview__live-content:has(.wp-block-tabs-menu-item) .wp-block-tabs-menu-item {
11
10
  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
11
  }
@@ -1,5 +1,4 @@
1
1
  .wp-block-tabs-menu-item.is-selected {
2
- outline: 2px solid var(--wp-admin-theme-color, #007cba);
3
2
  outline-offset: 2px;
4
3
  }
5
4
 
@@ -9,8 +8,4 @@
9
8
  }
10
9
  .block-editor-block-preview__live-content:has(.wp-block-tabs-menu-item) .wp-block-tabs-menu-item {
11
10
  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
11
  }
@@ -12,8 +12,7 @@
12
12
  appearance: none;
13
13
  -webkit-appearance: none;
14
14
  margin: 0;
15
- padding-block: var(--tab-padding-block, var(--wp--preset--spacing--20, 0.5em));
16
- padding-inline: var(--tab-padding-inline, var(--wp--preset--spacing--30, 1em));
15
+ padding: var(--wp--preset--spacing--20, 0.5em) var(--wp--preset--spacing--30, 1em);
17
16
  font-size: inherit;
18
17
  font-family: inherit;
19
18
  font-weight: inherit;
@@ -22,18 +21,10 @@
22
21
  text-transform: inherit;
23
22
  text-align: inherit;
24
23
  }
25
- .wp-block-tabs-menu-item:focus {
26
- outline: none;
27
- }
28
24
  .wp-block-tabs-menu-item:focus-visible {
29
- outline: 2px solid var(--tab-border-color-active, #000);
30
25
  outline-offset: 2px;
31
26
  }
32
- .wp-block-tabs-menu-item:hover {
33
- background-color: var(--custom-tab-hover-color, #eaeaea) !important;
34
- color: var(--custom-tab-hover-text-color, #000) !important;
35
- }
36
27
  .wp-block-tabs-menu-item[aria-selected=true], .wp-block-tabs-menu-item.is-active {
37
- background-color: var(--custom-tab-active-color, #000) !important;
38
- color: var(--custom-tab-active-text-color, #fff) !important;
28
+ background-color: #000;
29
+ color: #fff;
39
30
  }
@@ -12,8 +12,7 @@
12
12
  appearance: none;
13
13
  -webkit-appearance: none;
14
14
  margin: 0;
15
- padding-block: var(--tab-padding-block, var(--wp--preset--spacing--20, 0.5em));
16
- padding-inline: var(--tab-padding-inline, var(--wp--preset--spacing--30, 1em));
15
+ padding: var(--wp--preset--spacing--20, 0.5em) var(--wp--preset--spacing--30, 1em);
17
16
  font-size: inherit;
18
17
  font-family: inherit;
19
18
  font-weight: inherit;
@@ -22,18 +21,10 @@
22
21
  text-transform: inherit;
23
22
  text-align: inherit;
24
23
  }
25
- .wp-block-tabs-menu-item:focus {
26
- outline: none;
27
- }
28
24
  .wp-block-tabs-menu-item:focus-visible {
29
- outline: 2px solid var(--tab-border-color-active, #000);
30
25
  outline-offset: 2px;
31
26
  }
32
- .wp-block-tabs-menu-item:hover {
33
- background-color: var(--custom-tab-hover-color, #eaeaea) !important;
34
- color: var(--custom-tab-hover-text-color, #000) !important;
35
- }
36
27
  .wp-block-tabs-menu-item[aria-selected=true], .wp-block-tabs-menu-item.is-active {
37
- background-color: var(--custom-tab-active-color, #000) !important;
38
- color: var(--custom-tab-active-text-color, #fff) !important;
28
+ background-color: #000;
29
+ color: #fff;
39
30
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/block-library",
3
- "version": "9.40.1",
3
+ "version": "9.40.2-next.v.202602271551.0+464abe399",
4
4
  "description": "Block library for the WordPress editor.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -94,42 +94,42 @@
94
94
  "build-module/*/init.mjs"
95
95
  ],
96
96
  "dependencies": {
97
- "@wordpress/a11y": "^4.40.0",
98
- "@wordpress/api-fetch": "^7.40.0",
99
- "@wordpress/autop": "^4.40.0",
100
- "@wordpress/base-styles": "^6.16.0",
101
- "@wordpress/blob": "^4.40.0",
102
- "@wordpress/block-editor": "^15.13.1",
103
- "@wordpress/blocks": "^15.13.0",
104
- "@wordpress/components": "^32.2.0",
105
- "@wordpress/compose": "^7.40.0",
106
- "@wordpress/core-data": "^7.40.1",
107
- "@wordpress/data": "^10.40.0",
108
- "@wordpress/date": "^5.40.0",
109
- "@wordpress/deprecated": "^4.40.0",
110
- "@wordpress/dom": "^4.40.0",
111
- "@wordpress/element": "^6.40.0",
112
- "@wordpress/escape-html": "^3.40.0",
113
- "@wordpress/hooks": "^4.40.0",
114
- "@wordpress/html-entities": "^4.40.0",
115
- "@wordpress/i18n": "^6.13.0",
116
- "@wordpress/icons": "^11.7.0",
117
- "@wordpress/interactivity": "^6.40.0",
118
- "@wordpress/interactivity-router": "^2.40.0",
119
- "@wordpress/keyboard-shortcuts": "^5.40.0",
120
- "@wordpress/keycodes": "^4.40.0",
121
- "@wordpress/latex-to-mathml": "^1.8.0",
122
- "@wordpress/notices": "^5.40.0",
123
- "@wordpress/patterns": "^2.40.1",
124
- "@wordpress/primitives": "^4.40.0",
125
- "@wordpress/private-apis": "^1.40.0",
126
- "@wordpress/reusable-blocks": "^5.40.1",
127
- "@wordpress/rich-text": "^7.40.0",
128
- "@wordpress/server-side-render": "^6.16.0",
129
- "@wordpress/upload-media": "^0.25.1",
130
- "@wordpress/url": "^4.40.0",
131
- "@wordpress/viewport": "^6.40.0",
132
- "@wordpress/wordcount": "^4.40.0",
97
+ "@wordpress/a11y": "^4.40.1-next.v.202602271551.0+464abe399",
98
+ "@wordpress/api-fetch": "^7.40.1-next.v.202602271551.0+464abe399",
99
+ "@wordpress/autop": "^4.40.1-next.v.202602271551.0+464abe399",
100
+ "@wordpress/base-styles": "^6.16.1-next.v.202602271551.0+464abe399",
101
+ "@wordpress/blob": "^4.40.1-next.v.202602271551.0+464abe399",
102
+ "@wordpress/block-editor": "^15.13.2-next.v.202602271551.0+464abe399",
103
+ "@wordpress/blocks": "^15.13.1-next.v.202602271551.0+464abe399",
104
+ "@wordpress/components": "^32.3.1-next.v.202602271551.0+464abe399",
105
+ "@wordpress/compose": "^7.40.1-next.v.202602271551.0+464abe399",
106
+ "@wordpress/core-data": "^7.40.2-next.v.202602271551.0+464abe399",
107
+ "@wordpress/data": "^10.40.1-next.v.202602271551.0+464abe399",
108
+ "@wordpress/date": "^5.40.1-next.v.202602271551.0+464abe399",
109
+ "@wordpress/deprecated": "^4.40.1-next.v.202602271551.0+464abe399",
110
+ "@wordpress/dom": "^4.40.1-next.v.202602271551.0+464abe399",
111
+ "@wordpress/element": "^6.40.1-next.v.202602271551.0+464abe399",
112
+ "@wordpress/escape-html": "^3.40.1-next.v.202602271551.0+464abe399",
113
+ "@wordpress/hooks": "^4.40.1-next.v.202602271551.0+464abe399",
114
+ "@wordpress/html-entities": "^4.40.1-next.v.202602271551.0+464abe399",
115
+ "@wordpress/i18n": "^6.13.1-next.v.202602271551.0+464abe399",
116
+ "@wordpress/icons": "^11.7.1-next.v.202602271551.0+464abe399",
117
+ "@wordpress/interactivity": "^6.40.1-next.v.202602271551.0+464abe399",
118
+ "@wordpress/interactivity-router": "^2.40.1-next.v.202602271551.0+464abe399",
119
+ "@wordpress/keyboard-shortcuts": "^5.40.1-next.v.202602271551.0+464abe399",
120
+ "@wordpress/keycodes": "^4.40.1-next.v.202602271551.0+464abe399",
121
+ "@wordpress/latex-to-mathml": "^1.8.1-next.v.202602271551.0+464abe399",
122
+ "@wordpress/notices": "^5.40.1-next.v.202602271551.0+464abe399",
123
+ "@wordpress/patterns": "^2.40.2-next.v.202602271551.0+464abe399",
124
+ "@wordpress/primitives": "^4.40.1-next.v.202602271551.0+464abe399",
125
+ "@wordpress/private-apis": "^1.40.1-next.v.202602271551.0+464abe399",
126
+ "@wordpress/reusable-blocks": "^5.40.2-next.v.202602271551.0+464abe399",
127
+ "@wordpress/rich-text": "^7.40.1-next.v.202602271551.0+464abe399",
128
+ "@wordpress/server-side-render": "^6.16.1-next.v.202602271551.0+464abe399",
129
+ "@wordpress/upload-media": "^0.25.2-next.v.202602271551.0+464abe399",
130
+ "@wordpress/url": "^4.40.1-next.v.202602271551.0+464abe399",
131
+ "@wordpress/viewport": "^6.40.1-next.v.202602271551.0+464abe399",
132
+ "@wordpress/wordcount": "^4.40.1-next.v.202602271551.0+464abe399",
133
133
  "change-case": "^4.1.2",
134
134
  "clsx": "^2.1.1",
135
135
  "colord": "^2.7.0",
@@ -150,5 +150,5 @@
150
150
  "publishConfig": {
151
151
  "access": "public"
152
152
  },
153
- "gitHead": "398c509dbbdcdb525d17e968edd83da33a0a7bde"
153
+ "gitHead": "95aa7055a5757219e2d96a91efc69f7dd1b2d4c3"
154
154
  }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { store, getContext, withSyncEvent } from '@wordpress/interactivity';
4
+ import { store, getContext } from '@wordpress/interactivity';
5
5
 
6
6
  // Whether the hash has been handled for the current page load.
7
7
  // This is used to prevent the hash from being handled multiple times.
@@ -36,49 +36,6 @@ const { actions } = store(
36
36
  accordionItem.isOpen = ! accordionItem.isOpen;
37
37
  }
38
38
  },
39
- handleKeyDown: withSyncEvent( ( event ) => {
40
- if (
41
- event.key !== 'ArrowUp' &&
42
- event.key !== 'ArrowDown' &&
43
- event.key !== 'Home' &&
44
- event.key !== 'End'
45
- ) {
46
- return;
47
- }
48
-
49
- event.preventDefault();
50
- const context = getContext();
51
- const { id, accordionItems } = context;
52
- const currentIndex = accordionItems.findIndex(
53
- ( item ) => item.id === id
54
- );
55
-
56
- let nextIndex;
57
-
58
- switch ( event.key ) {
59
- case 'ArrowUp':
60
- nextIndex = Math.max( 0, currentIndex - 1 );
61
- break;
62
- case 'ArrowDown':
63
- nextIndex = Math.min(
64
- currentIndex + 1,
65
- accordionItems.length - 1
66
- );
67
- break;
68
- case 'Home':
69
- nextIndex = 0;
70
- break;
71
- case 'End':
72
- nextIndex = accordionItems.length - 1;
73
- break;
74
- }
75
-
76
- const nextId = accordionItems[ nextIndex ].id;
77
- const nextButton = document.getElementById( nextId );
78
- if ( nextButton ) {
79
- nextButton.focus();
80
- }
81
- } ),
82
39
  openPanelByHash: () => {
83
40
  if ( hashHandled || ! window.location?.hash?.length ) {
84
41
  return;
@@ -40,7 +40,6 @@ function block_core_accordion_item_render( $attributes, $content ) {
40
40
 
41
41
  if ( $p->next_tag( array( 'class_name' => 'wp-block-accordion-heading__toggle' ) ) ) {
42
42
  $p->set_attribute( 'data-wp-on--click', 'actions.toggle' );
43
- $p->set_attribute( 'data-wp-on--keydown', 'actions.handleKeyDown' );
44
43
  $p->set_attribute( 'id', $unique_id );
45
44
  $p->set_attribute( 'aria-controls', $unique_id . '-panel' );
46
45
  $p->set_attribute( 'data-wp-bind--aria-expanded', 'state.isOpen' );
@@ -39,13 +39,13 @@ function render_block_core_cover( $attributes, $content ) {
39
39
  $lower_src = strtolower( $iframe_src );
40
40
  $provider = null;
41
41
 
42
- if ( strpos( $lower_src, 'youtube.com' ) !== false || strpos( $lower_src, 'youtu.be' ) !== false ) {
42
+ if ( str_contains( $lower_src, 'youtube.com' ) || str_contains( $lower_src, 'youtu.be' ) ) {
43
43
  $provider = 'youtube';
44
- } elseif ( strpos( $lower_src, 'vimeo.com' ) !== false ) {
44
+ } elseif ( str_contains( $lower_src, 'vimeo.com' ) ) {
45
45
  $provider = 'vimeo';
46
- } elseif ( strpos( $lower_src, 'videopress.com' ) !== false ) {
46
+ } elseif ( str_contains( $lower_src, 'videopress.com' ) ) {
47
47
  $provider = 'videopress';
48
- } elseif ( strpos( $lower_src, 'wordpress.tv' ) !== false ) {
48
+ } elseif ( str_contains( $lower_src, 'wordpress.tv' ) ) {
49
49
  $provider = 'wordpress-tv';
50
50
  }
51
51
 
@@ -3,7 +3,6 @@
3
3
  "$schema": "https://schemas.wp.org/trunk/block.json",
4
4
  "name": "core/icon",
5
5
  "title": "Icon",
6
- "__experimental": true,
7
6
  "category": "media",
8
7
  "description": "Insert an SVG icon.",
9
8
  "keywords": [ "icon", "svg" ],
@@ -61,6 +60,15 @@
61
60
  },
62
61
  "selectors": {
63
62
  "root": ".wp-block-icon",
63
+ "color": {
64
+ "root": ".wp-block-icon svg"
65
+ },
66
+ "border": {
67
+ "root": ".wp-block-icon svg"
68
+ },
69
+ "spacing": {
70
+ "padding": ".wp-block-icon svg"
71
+ },
64
72
  "dimensions": {
65
73
  "root": ".wp-block-icon svg",
66
74
  "width": ".wp-block-icon svg"
@@ -12,7 +12,7 @@ import HtmlRenderer from '../../../utils/html-renderer';
12
12
  export default function IconGrid( { icons, onChange, attributes } ) {
13
13
  return (
14
14
  <div className="wp-block-icon__inserter-grid">
15
- { icons.length === 0 ? (
15
+ { ! icons?.length ? (
16
16
  <div className="wp-block-icon__inserter-grid-no-results">
17
17
  <p>{ __( 'No results found.' ) }</p>
18
18
  </div>
@@ -13,7 +13,7 @@ import IconGrid from './icon-grid';
13
13
  import { normalizeSearchInput } from '../../../utils/search-patterns';
14
14
 
15
15
  export default function CustomInserterModal( {
16
- icons,
16
+ icons = [],
17
17
  setInserterOpen,
18
18
  attributes,
19
19
  setAttributes,
package/src/icon/edit.js CHANGED
@@ -25,10 +25,10 @@ import {
25
25
  __experimentalGetSpacingClassesAndStyles as useSpacingProps,
26
26
  getDimensionsClassesAndStyles as useDimensionsProps,
27
27
  } from '@wordpress/block-editor';
28
- import { useSelect } from '@wordpress/data';
29
- import { store as coreDataStore } from '@wordpress/core-data';
30
28
  import { useState } from '@wordpress/element';
31
29
  import { SVG, Rect, Path } from '@wordpress/primitives';
30
+ import { useSelect } from '@wordpress/data';
31
+ import { store as coreDataStore } from '@wordpress/core-data';
32
32
 
33
33
  /**
34
34
  * Internal dependencies
@@ -36,7 +36,6 @@ import { SVG, Rect, Path } from '@wordpress/primitives';
36
36
  import { useToolsPanelDropdownMenuProps } from '../utils/hooks';
37
37
  import HtmlRenderer from '../utils/html-renderer';
38
38
  import { CustomInserterModal } from './components';
39
- import { unlock } from '../lock-unlock';
40
39
 
41
40
  const IconPlaceholder = ( { className, style } ) => (
42
41
  <SVG
@@ -70,14 +69,25 @@ export function Edit( { attributes, setAttributes } ) {
70
69
  const borderProps = useBorderProps( attributes );
71
70
  const dimensionsProps = useDimensionsProps( attributes );
72
71
 
73
- const allIcons = useSelect( ( select ) => {
74
- return unlock( select( coreDataStore ) ).getIcons();
75
- }, [] );
72
+ const { selectedIcon, allIcons = [] } = useSelect(
73
+ ( select ) => {
74
+ const { getEntityRecord, getEntityRecords } =
75
+ select( coreDataStore );
76
+ return {
77
+ selectedIcon: icon
78
+ ? getEntityRecord( 'root', 'icon', icon )
79
+ : null,
80
+ allIcons: isInserterOpen
81
+ ? getEntityRecords( 'root', 'icon', {
82
+ per_page: -1,
83
+ } )
84
+ : undefined,
85
+ };
86
+ },
87
+ [ isInserterOpen, icon ]
88
+ );
76
89
 
77
- const iconToDisplay =
78
- allIcons?.length > 0
79
- ? allIcons?.find( ( { name } ) => name === icon )?.content
80
- : '';
90
+ const iconToDisplay = selectedIcon?.content || '';
81
91
 
82
92
  const blockControls = (
83
93
  <>
@@ -10,9 +10,7 @@
10
10
  *
11
11
  * @since 7.0.0
12
12
  *
13
- * @param array $attributes The block attributes.
14
- * @param string $content The block content.
15
- * @param WP_Block $block The block instance.
13
+ * @param array $attributes The block attributes.
16
14
  *
17
15
  * @return string Returns the Icon.
18
16
  */
package/src/image/edit.js CHANGED
@@ -348,7 +348,7 @@ export function ImageEdit( {
348
348
 
349
349
  const isSideloading = useSelect(
350
350
  ( select ) => {
351
- if ( ! window.__experimentalMediaProcessing || ! id ) {
351
+ if ( ! window.__clientSideMediaProcessing || ! id ) {
352
352
  return false;
353
353
  }
354
354
  return select( uploadStore ).isUploadingById( id );
@@ -310,10 +310,7 @@ function block_core_image_render_lightbox( $block_content, $block, $block_instan
310
310
 
311
311
  $body_content = preg_replace( '/<img[^>]+>/', $button, $body_content );
312
312
 
313
- $overlay_callback = function () {
314
- block_core_image_print_lightbox_overlay();
315
- };
316
- add_action( 'wp_footer', $overlay_callback );
313
+ add_action( 'wp_footer', 'block_core_image_print_lightbox_overlay' );
317
314
 
318
315
  return $body_content;
319
316
  }
@@ -55,7 +55,6 @@ import { useInstanceId } from '@wordpress/compose';
55
55
  * Internal dependencies
56
56
  */
57
57
  import useNavigationMenu from '../use-navigation-menu';
58
- import useNavigationEntities from '../use-navigation-entities';
59
58
  import Placeholder from './placeholder';
60
59
  import ResponsiveWrapper from './responsive-wrapper';
61
60
  import NavigationInnerBlocks from './inner-blocks';
@@ -339,7 +338,10 @@ function Navigation( {
339
338
 
340
339
  // Preload classic menus, so that they don't suddenly pop-in when viewing
341
340
  // the Select Menu dropdown.
342
- const { menus: classicMenus } = useNavigationEntities();
341
+ const { records: classicMenus } = useEntityRecords( 'root', 'menu', {
342
+ per_page: -1,
343
+ context: 'view',
344
+ } );
343
345
 
344
346
  const [ showNavigationMenuStatusNotice, hideNavigationMenuStatusNotice ] =
345
347
  useNavigationNotice( {
@@ -1,7 +1,11 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { createBlock } from '@wordpress/blocks';
4
+ import {
5
+ createBlock,
6
+ hasBlockSupport,
7
+ store as blocksStore,
8
+ } from '@wordpress/blocks';
5
9
  import {
6
10
  addSubmenu,
7
11
  chevronUp,
@@ -103,8 +107,14 @@ export default function LeafMoreMenu( props ) {
103
107
  const { block } = props;
104
108
  const { clientId } = block;
105
109
 
106
- const { moveBlocksDown, moveBlocksUp, removeBlocks } =
107
- useDispatch( blockEditorStore );
110
+ const {
111
+ moveBlocksDown,
112
+ moveBlocksUp,
113
+ removeBlocks,
114
+ duplicateBlocks,
115
+ insertBeforeBlock,
116
+ insertAfterBlock,
117
+ } = useDispatch( blockEditorStore );
108
118
 
109
119
  const removeLabel = sprintf(
110
120
  /* translators: %s: block name */
@@ -112,14 +122,45 @@ export default function LeafMoreMenu( props ) {
112
122
  BlockTitle( { clientId, maximumLength: 25 } )
113
123
  );
114
124
 
115
- const rootClientId = useSelect(
116
- ( select ) => {
117
- const { getBlockRootClientId } = select( blockEditorStore );
118
-
119
- return getBlockRootClientId( clientId );
120
- },
121
- [ clientId ]
122
- );
125
+ const { rootClientId, canDuplicate, canInsertBlock, isFirst, isLast } =
126
+ useSelect(
127
+ ( select ) => {
128
+ const {
129
+ getBlockRootClientId,
130
+ canInsertBlockType,
131
+ getDirectInsertBlock,
132
+ getBlockIndex,
133
+ getBlockCount,
134
+ } = select( blockEditorStore );
135
+ const { getDefaultBlockName } = select( blocksStore );
136
+
137
+ const _rootClientId = getBlockRootClientId( clientId );
138
+ const canInsertDefaultBlock = canInsertBlockType(
139
+ getDefaultBlockName(),
140
+ _rootClientId
141
+ );
142
+ const directInsertBlock = _rootClientId
143
+ ? getDirectInsertBlock( _rootClientId )
144
+ : null;
145
+
146
+ return {
147
+ rootClientId: _rootClientId,
148
+ canDuplicate:
149
+ !! block &&
150
+ hasBlockSupport( block.name, 'multiple', true ) &&
151
+ canInsertBlockType( block.name, _rootClientId ),
152
+ canInsertBlock:
153
+ ( canInsertDefaultBlock || !! directInsertBlock ) &&
154
+ !! block &&
155
+ canInsertBlockType( block.name, _rootClientId ),
156
+ isFirst: getBlockIndex( clientId ) === 0,
157
+ isLast:
158
+ getBlockIndex( clientId ) ===
159
+ getBlockCount( _rootClientId ) - 1,
160
+ };
161
+ },
162
+ [ clientId, block ]
163
+ );
123
164
 
124
165
  return (
125
166
  <DropdownMenu
@@ -135,6 +176,8 @@ export default function LeafMoreMenu( props ) {
135
176
  <MenuGroup>
136
177
  <MenuItem
137
178
  icon={ chevronUp }
179
+ disabled={ isFirst }
180
+ accessibleWhenDisabled
138
181
  onClick={ () => {
139
182
  moveBlocksUp( [ clientId ], rootClientId );
140
183
  onClose();
@@ -144,6 +187,8 @@ export default function LeafMoreMenu( props ) {
144
187
  </MenuItem>
145
188
  <MenuItem
146
189
  icon={ chevronDown }
190
+ disabled={ isLast }
191
+ accessibleWhenDisabled
147
192
  onClick={ () => {
148
193
  moveBlocksDown( [ clientId ], rootClientId );
149
194
  onClose();
@@ -158,6 +203,36 @@ export default function LeafMoreMenu( props ) {
158
203
  expand={ props.expand }
159
204
  setInsertedBlock={ props.setInsertedBlock }
160
205
  />
206
+ { canDuplicate && (
207
+ <MenuItem
208
+ onClick={ () => {
209
+ duplicateBlocks( [ clientId ] );
210
+ onClose();
211
+ } }
212
+ >
213
+ { __( 'Duplicate' ) }
214
+ </MenuItem>
215
+ ) }
216
+ { canInsertBlock && (
217
+ <>
218
+ <MenuItem
219
+ onClick={ () => {
220
+ insertBeforeBlock( clientId );
221
+ onClose();
222
+ } }
223
+ >
224
+ { __( 'Add before' ) }
225
+ </MenuItem>
226
+ <MenuItem
227
+ onClick={ () => {
228
+ insertAfterBlock( clientId );
229
+ onClose();
230
+ } }
231
+ >
232
+ { __( 'Add after' ) }
233
+ </MenuItem>
234
+ </>
235
+ ) }
161
236
  </MenuGroup>
162
237
  <MenuGroup>
163
238
  <MenuItem