@wordpress/block-library 6.0.12 → 6.0.16

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 (139) hide show
  1. package/build/group/edit.native.js +1 -1
  2. package/build/group/edit.native.js.map +1 -1
  3. package/build/group/index.js +3 -1
  4. package/build/group/index.js.map +1 -1
  5. package/build/image/image.js +30 -6
  6. package/build/image/image.js.map +1 -1
  7. package/build/navigation/deprecated.js +1 -3
  8. package/build/navigation/deprecated.js.map +1 -1
  9. package/build/navigation/edit/index.js +109 -43
  10. package/build/navigation/edit/index.js.map +1 -1
  11. package/build/navigation/edit/navigation-menu-selector.js +10 -3
  12. package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
  13. package/build/navigation/edit/placeholder/index.js +15 -7
  14. package/build/navigation/edit/placeholder/index.js.map +1 -1
  15. package/build/navigation/edit/responsive-wrapper.js +9 -7
  16. package/build/navigation/edit/responsive-wrapper.js.map +1 -1
  17. package/build/navigation/edit/unsaved-inner-blocks.js +3 -11
  18. package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  19. package/build/navigation/edit/use-navigation-notice.js +54 -0
  20. package/build/navigation/edit/use-navigation-notice.js.map +1 -0
  21. package/build/navigation/index.js +1 -2
  22. package/build/navigation/index.js.map +1 -1
  23. package/build/navigation/menu-items-to-blocks.js +4 -1
  24. package/build/navigation/menu-items-to-blocks.js.map +1 -1
  25. package/build/navigation/use-navigation-menu.js +9 -2
  26. package/build/navigation/use-navigation-menu.js.map +1 -1
  27. package/build/navigation/view.js +14 -9
  28. package/build/navigation/view.js.map +1 -1
  29. package/build/navigation-submenu/edit.js +1 -1
  30. package/build/navigation-submenu/edit.js.map +1 -1
  31. package/build/post-comments/index.js +1 -1
  32. package/build/post-template/edit.js +54 -13
  33. package/build/post-template/edit.js.map +1 -1
  34. package/build/site-logo/edit.js +9 -6
  35. package/build/site-logo/edit.js.map +1 -1
  36. package/build/site-logo/index.js +0 -3
  37. package/build/site-logo/index.js.map +1 -1
  38. package/build/template-part/edit/index.js +7 -1
  39. package/build/template-part/edit/index.js.map +1 -1
  40. package/build-module/group/edit.native.js +1 -1
  41. package/build-module/group/edit.native.js.map +1 -1
  42. package/build-module/group/index.js +3 -1
  43. package/build-module/group/index.js.map +1 -1
  44. package/build-module/image/image.js +31 -7
  45. package/build-module/image/image.js.map +1 -1
  46. package/build-module/navigation/deprecated.js +1 -3
  47. package/build-module/navigation/deprecated.js.map +1 -1
  48. package/build-module/navigation/edit/index.js +107 -44
  49. package/build-module/navigation/edit/index.js.map +1 -1
  50. package/build-module/navigation/edit/navigation-menu-selector.js +9 -3
  51. package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
  52. package/build-module/navigation/edit/placeholder/index.js +15 -7
  53. package/build-module/navigation/edit/placeholder/index.js.map +1 -1
  54. package/build-module/navigation/edit/responsive-wrapper.js +9 -7
  55. package/build-module/navigation/edit/responsive-wrapper.js.map +1 -1
  56. package/build-module/navigation/edit/unsaved-inner-blocks.js +4 -13
  57. package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
  58. package/build-module/navigation/edit/use-navigation-notice.js +44 -0
  59. package/build-module/navigation/edit/use-navigation-notice.js.map +1 -0
  60. package/build-module/navigation/index.js +1 -2
  61. package/build-module/navigation/index.js.map +1 -1
  62. package/build-module/navigation/menu-items-to-blocks.js +3 -1
  63. package/build-module/navigation/menu-items-to-blocks.js.map +1 -1
  64. package/build-module/navigation/use-navigation-menu.js +9 -2
  65. package/build-module/navigation/use-navigation-menu.js.map +1 -1
  66. package/build-module/navigation/view.js +14 -9
  67. package/build-module/navigation/view.js.map +1 -1
  68. package/build-module/navigation-submenu/edit.js +1 -1
  69. package/build-module/navigation-submenu/edit.js.map +1 -1
  70. package/build-module/post-comments/index.js +1 -1
  71. package/build-module/post-template/edit.js +54 -15
  72. package/build-module/post-template/edit.js.map +1 -1
  73. package/build-module/site-logo/edit.js +9 -6
  74. package/build-module/site-logo/edit.js.map +1 -1
  75. package/build-module/site-logo/index.js +0 -3
  76. package/build-module/site-logo/index.js.map +1 -1
  77. package/build-module/template-part/edit/index.js +6 -1
  78. package/build-module/template-part/edit/index.js.map +1 -1
  79. package/build-style/common-rtl.css +10 -0
  80. package/build-style/common.css +10 -0
  81. package/build-style/editor-rtl.css +38 -11
  82. package/build-style/editor.css +38 -11
  83. package/build-style/image/editor-rtl.css +16 -0
  84. package/build-style/image/editor.css +16 -0
  85. package/build-style/navigation/editor-rtl.css +11 -0
  86. package/build-style/navigation/editor.css +11 -0
  87. package/build-style/navigation/style-rtl.css +56 -24
  88. package/build-style/navigation/style.css +56 -24
  89. package/build-style/post-comments/style-rtl.css +3 -1
  90. package/build-style/post-comments/style.css +3 -1
  91. package/build-style/post-comments-form/style-rtl.css +2 -2
  92. package/build-style/post-comments-form/style.css +2 -2
  93. package/build-style/site-logo/editor-rtl.css +1 -11
  94. package/build-style/site-logo/editor.css +1 -11
  95. package/build-style/site-logo/style-rtl.css +3 -1
  96. package/build-style/site-logo/style.css +3 -1
  97. package/build-style/style-rtl.css +74 -28
  98. package/build-style/style.css +74 -28
  99. package/package.json +14 -14
  100. package/src/common.scss +12 -0
  101. package/src/editor.scss +12 -0
  102. package/src/gallery/index.php +7 -8
  103. package/src/group/block.json +3 -1
  104. package/src/group/edit.native.js +1 -1
  105. package/src/home-link/index.php +1 -1
  106. package/src/image/editor.scss +18 -0
  107. package/src/image/image.js +32 -8
  108. package/src/image/index.php +1 -1
  109. package/src/navigation/block.json +1 -2
  110. package/src/navigation/deprecated.js +0 -2
  111. package/src/navigation/edit/index.js +166 -60
  112. package/src/navigation/edit/navigation-menu-selector.js +20 -6
  113. package/src/navigation/edit/placeholder/index.js +40 -24
  114. package/src/navigation/edit/responsive-wrapper.js +10 -7
  115. package/src/navigation/edit/unsaved-inner-blocks.js +13 -25
  116. package/src/navigation/edit/use-navigation-notice.js +37 -0
  117. package/src/navigation/editor.scss +14 -0
  118. package/src/navigation/index.php +19 -8
  119. package/src/navigation/menu-items-to-blocks.js +7 -1
  120. package/src/navigation/style.scss +82 -32
  121. package/src/navigation/use-navigation-menu.js +20 -0
  122. package/src/navigation/view.js +15 -9
  123. package/src/navigation-link/index.php +1 -1
  124. package/src/navigation-submenu/edit.js +1 -1
  125. package/src/navigation-submenu/index.php +9 -3
  126. package/src/page-list/index.php +9 -4
  127. package/src/post-comments/block.json +5 -1
  128. package/src/post-comments/index.php +17 -0
  129. package/src/post-comments/style.scss +7 -3
  130. package/src/post-comments-form/index.php +6 -4
  131. package/src/post-comments-form/style.scss +7 -5
  132. package/src/post-template/edit.js +54 -17
  133. package/src/site-logo/block.json +0 -3
  134. package/src/site-logo/edit.js +6 -5
  135. package/src/site-logo/editor.scss +1 -15
  136. package/src/site-logo/index.php +0 -4
  137. package/src/site-logo/style.scss +3 -1
  138. package/src/template-part/edit/index.js +6 -1
  139. package/src/template-part/index.php +5 -2
@@ -1510,6 +1510,11 @@ ul.has-background {
1510
1510
  }
1511
1511
  .wp-block-navigation {
1512
1512
  position: relative;
1513
+ --navigation-layout-justification-setting: flex-start;
1514
+ --navigation-layout-direction: row;
1515
+ --navigation-layout-wrap: wrap;
1516
+ --navigation-layout-justify: flex-start;
1517
+ --navigation-layout-align: center;
1513
1518
  }
1514
1519
  .wp-block-navigation ul {
1515
1520
  margin-top: 0;
@@ -1571,6 +1576,31 @@ ul.has-background {
1571
1576
  width: inherit;
1572
1577
  height: inherit;
1573
1578
  }
1579
+ .wp-block-navigation.is-vertical {
1580
+ --navigation-layout-direction: column;
1581
+ --navigation-layout-justify: initial;
1582
+ }
1583
+ .wp-block-navigation.no-wrap {
1584
+ --navigation-layout-wrap: nowrap;
1585
+ }
1586
+ .wp-block-navigation.items-justified-center {
1587
+ --navigation-layout-justification-setting: center;
1588
+ --navigation-layout-justify: center;
1589
+ }
1590
+ .wp-block-navigation.items-justified-center.is-vertical {
1591
+ --navigation-layout-align: center;
1592
+ }
1593
+ .wp-block-navigation.items-justified-right {
1594
+ --navigation-layout-justification-setting: flex-end;
1595
+ --navigation-layout-justify: flex-end;
1596
+ }
1597
+ .wp-block-navigation.items-justified-right.is-vertical {
1598
+ --navigation-layout-align: flex-end;
1599
+ }
1600
+ .wp-block-navigation.items-justified-space-between {
1601
+ --navigation-layout-justification-setting: space-between;
1602
+ --navigation-layout-justify: space-between;
1603
+ }
1574
1604
 
1575
1605
  .wp-block-navigation .has-child :where(.wp-block-navigation__submenu-container) {
1576
1606
  background-color: inherit;
@@ -1738,10 +1768,10 @@ button.wp-block-navigation-item__content {
1738
1768
 
1739
1769
  .wp-block-navigation__container {
1740
1770
  display: flex;
1741
- flex-wrap: var(--layout-wrap, wrap);
1742
- flex-direction: var(--layout-direction, initial);
1743
- justify-content: var(--layout-justify, initial);
1744
- align-items: var(--layout-align, initial);
1771
+ flex-wrap: var(--navigation-layout-wrap, wrap);
1772
+ flex-direction: var(--navigation-layout-direction, initial);
1773
+ justify-content: var(--navigation-layout-justify, initial);
1774
+ align-items: var(--navigation-layout-align, initial);
1745
1775
  list-style: none;
1746
1776
  margin: 0;
1747
1777
  padding-left: 0;
@@ -1768,10 +1798,10 @@ button.wp-block-navigation-item__content {
1768
1798
  }
1769
1799
  .wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content {
1770
1800
  display: flex;
1771
- flex-wrap: var(--layout-wrap, wrap);
1772
- flex-direction: var(--layout-direction, initial);
1773
- justify-content: var(--layout-justify, initial);
1774
- align-items: var(--layout-align, initial);
1801
+ flex-wrap: var(--navigation-layout-wrap, wrap);
1802
+ flex-direction: var(--navigation-layout-direction, initial);
1803
+ justify-content: var(--navigation-layout-justify, initial);
1804
+ align-items: var(--navigation-layout-align, initial);
1775
1805
  }
1776
1806
  .wp-block-navigation__responsive-container:not(.is-menu-open.is-menu-open) {
1777
1807
  color: inherit !important;
@@ -1780,19 +1810,21 @@ button.wp-block-navigation-item__content {
1780
1810
  .wp-block-navigation__responsive-container.is-menu-open {
1781
1811
  display: flex;
1782
1812
  flex-direction: column;
1813
+ background-color: inherit;
1814
+ padding: 2em;
1783
1815
  overflow: auto;
1784
1816
  z-index: 100000;
1785
- padding: 72px 24px 24px 24px;
1786
- background-color: inherit;
1787
1817
  }
1788
1818
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
1819
+ padding-top: calc(2em + 24px);
1820
+ overflow: visible;
1789
1821
  display: flex;
1790
1822
  flex-direction: column;
1791
- align-items: var(--layout-justification-setting, inherit);
1792
- overflow: auto;
1793
- padding: 0;
1823
+ flex-wrap: nowrap;
1824
+ align-items: var(--navigation-layout-justification-setting, inherit);
1794
1825
  }
1795
1826
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
1827
+ .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-page-list,
1796
1828
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container {
1797
1829
  justify-content: flex-start;
1798
1830
  }
@@ -1809,17 +1841,14 @@ button.wp-block-navigation-item__content {
1809
1841
  min-width: 200px;
1810
1842
  position: static;
1811
1843
  border: none;
1812
- padding-left: 32px;
1813
- padding-right: 32px;
1844
+ padding-left: 2em;
1845
+ padding-right: 2em;
1814
1846
  }
1815
1847
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container,
1816
1848
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container {
1817
1849
  gap: var(--wp--style--block-gap, 2em);
1818
1850
  }
1819
- .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,
1820
- .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container .wp-block-navigation__container,
1821
- .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container .wp-block-navigation__submenu-container,
1822
- .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container .wp-block-navigation__container {
1851
+ .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container {
1823
1852
  padding-top: var(--wp--style--block-gap, 2em);
1824
1853
  }
1825
1854
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content {
@@ -1830,7 +1859,7 @@ button.wp-block-navigation-item__content {
1830
1859
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-page-list {
1831
1860
  display: flex;
1832
1861
  flex-direction: column;
1833
- align-items: var(--layout-justification-setting, initial);
1862
+ align-items: var(--navigation-layout-justification-setting, initial);
1834
1863
  }
1835
1864
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item .wp-block-navigation__submenu-container,
1836
1865
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,
@@ -1893,8 +1922,8 @@ button.wp-block-navigation-item__content {
1893
1922
 
1894
1923
  .wp-block-navigation__responsive-container-close {
1895
1924
  position: absolute;
1896
- top: 24px;
1897
- right: 24px;
1925
+ top: 0;
1926
+ right: 0;
1898
1927
  z-index: 2;
1899
1928
  }
1900
1929
 
@@ -1905,8 +1934,11 @@ button.wp-block-navigation-item__content {
1905
1934
  .is-menu-open .wp-block-navigation__responsive-close,
1906
1935
  .is-menu-open .wp-block-navigation__responsive-dialog,
1907
1936
  .is-menu-open .wp-block-navigation__responsive-container-content {
1908
- width: 100%;
1909
- height: 100%;
1937
+ box-sizing: border-box;
1938
+ }
1939
+
1940
+ .wp-block-navigation__responsive-dialog {
1941
+ position: relative;
1910
1942
  }
1911
1943
 
1912
1944
  html.has-modal-open {
@@ -2077,7 +2109,9 @@ p.has-background {
2077
2109
  display: block;
2078
2110
  margin-bottom: 0.25em;
2079
2111
  }
2080
- .wp-block-post-comments .comment-form-comment textarea {
2112
+ .wp-block-post-comments .comment-form textarea,
2113
+ .wp-block-post-comments .comment-form input:not([type=submit]):not([type=checkbox]) {
2114
+ display: block;
2081
2115
  box-sizing: border-box;
2082
2116
  width: 100%;
2083
2117
  }
@@ -2142,12 +2176,12 @@ p.has-background {
2142
2176
  .wp-block-post-comments-form input:not([type=submit]):not([type=checkbox]) {
2143
2177
  padding: calc(0.667em + 2px);
2144
2178
  }
2145
- .wp-block-post-comments-form .comment-form-comment textarea {
2179
+ .wp-block-post-comments-form .comment-form textarea,
2180
+ .wp-block-post-comments-form .comment-form input:not([type=submit]):not([type=checkbox]) {
2146
2181
  display: block;
2147
2182
  box-sizing: border-box;
2148
2183
  width: 100%;
2149
2184
  }
2150
- .wp-block-post-comments-form .comment-form-comment label,
2151
2185
  .wp-block-post-comments-form .comment-form-author label,
2152
2186
  .wp-block-post-comments-form .comment-form-email label,
2153
2187
  .wp-block-post-comments-form .comment-form-url label {
@@ -2518,7 +2552,9 @@ ul.wp-block-rss.is-grid li {
2518
2552
  border-radius: inherit;
2519
2553
  }
2520
2554
  .wp-block-site-logo.aligncenter {
2521
- display: table;
2555
+ margin-left: auto;
2556
+ margin-right: auto;
2557
+ text-align: center;
2522
2558
  }
2523
2559
  .wp-block-site-logo.is-style-rounded {
2524
2560
  border-radius: 9999px;
@@ -3068,6 +3104,8 @@ pre.wp-block-verse {
3068
3104
  */
3069
3105
  /* stylelint-disable function-comma-space-after */
3070
3106
  /* stylelint-enable function-comma-space-after */
3107
+ --wp--preset--font-size--normal: 16px;
3108
+ --wp--preset--font-size--huge: 42px;
3071
3109
  }
3072
3110
  :root .has-very-light-gray-background-color {
3073
3111
  background-color: #eee;
@@ -3111,6 +3149,14 @@ pre.wp-block-verse {
3111
3149
  font-size: 2.625em;
3112
3150
  }
3113
3151
 
3152
+ .has-normal-font-size {
3153
+ font-size: var(--wp--preset--font-size--normal) !important;
3154
+ }
3155
+
3156
+ .has-huge-font-size {
3157
+ font-size: var(--wp--preset--font-size--huge) !important;
3158
+ }
3159
+
3114
3160
  .has-text-align-center {
3115
3161
  text-align: center;
3116
3162
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/block-library",
3
- "version": "6.0.12",
3
+ "version": "6.0.16",
4
4
  "description": "Block library for the WordPress editor.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -37,12 +37,12 @@
37
37
  "@wordpress/api-fetch": "^5.2.6",
38
38
  "@wordpress/autop": "^3.2.3",
39
39
  "@wordpress/blob": "^3.2.2",
40
- "@wordpress/block-editor": "^8.0.8",
41
- "@wordpress/blocks": "^11.1.4",
42
- "@wordpress/components": "^19.1.2",
43
- "@wordpress/compose": "^5.0.6",
44
- "@wordpress/core-data": "^4.0.8",
45
- "@wordpress/data": "^6.1.4",
40
+ "@wordpress/block-editor": "^8.0.12",
41
+ "@wordpress/blocks": "^11.1.5",
42
+ "@wordpress/components": "^19.1.6",
43
+ "@wordpress/compose": "^5.0.7",
44
+ "@wordpress/core-data": "^4.0.9",
45
+ "@wordpress/data": "^6.1.5",
46
46
  "@wordpress/date": "^4.2.3",
47
47
  "@wordpress/deprecated": "^3.2.3",
48
48
  "@wordpress/dom": "^3.2.7",
@@ -52,16 +52,16 @@
52
52
  "@wordpress/html-entities": "^3.2.3",
53
53
  "@wordpress/i18n": "^4.2.4",
54
54
  "@wordpress/icons": "^6.1.1",
55
- "@wordpress/interface": "^4.1.10",
55
+ "@wordpress/interface": "^4.1.14",
56
56
  "@wordpress/is-shallow-equal": "^4.2.1",
57
57
  "@wordpress/keycodes": "^3.2.4",
58
- "@wordpress/notices": "^3.2.7",
58
+ "@wordpress/notices": "^3.2.8",
59
59
  "@wordpress/primitives": "^3.0.4",
60
- "@wordpress/reusable-blocks": "^3.0.14",
61
- "@wordpress/rich-text": "^5.0.6",
62
- "@wordpress/server-side-render": "^3.0.12",
60
+ "@wordpress/reusable-blocks": "^3.0.18",
61
+ "@wordpress/rich-text": "^5.0.7",
62
+ "@wordpress/server-side-render": "^3.0.16",
63
63
  "@wordpress/url": "^3.3.1",
64
- "@wordpress/viewport": "^4.0.6",
64
+ "@wordpress/viewport": "^4.0.7",
65
65
  "classnames": "^2.3.1",
66
66
  "colord": "^2.7.0",
67
67
  "fast-average-color": "4.3.0",
@@ -73,5 +73,5 @@
73
73
  "publishConfig": {
74
74
  "access": "public"
75
75
  },
76
- "gitHead": "34b76b2f9397215e5afb8443f5b3073c83913102"
76
+ "gitHead": "1081a28b2368fcebd9a14554fbd0e25eb33fbcb6"
77
77
  }
package/src/common.scss CHANGED
@@ -6,6 +6,10 @@
6
6
  @include background-colors-deprecated();
7
7
  @include foreground-colors-deprecated();
8
8
  @include gradient-colors-deprecated();
9
+ // This CSS Custom Properties aren't used anymore as defaults,
10
+ // but we still need to keep them for backward compatibility.
11
+ --wp--preset--font-size--normal: 16px;
12
+ --wp--preset--font-size--huge: 42px;
9
13
  }
10
14
 
11
15
  // Font sizes (not used now, kept because of backward compatibility).
@@ -17,6 +21,14 @@
17
21
  font-size: 2.625em;
18
22
  }
19
23
 
24
+ .has-normal-font-size {
25
+ font-size: var(--wp--preset--font-size--normal) !important;
26
+ }
27
+
28
+ .has-huge-font-size {
29
+ font-size: var(--wp--preset--font-size--huge) !important;
30
+ }
31
+
20
32
  // Text alignments.
21
33
  .has-text-align-center {
22
34
  text-align: center;
package/src/editor.scss CHANGED
@@ -48,6 +48,10 @@
48
48
  @include background-colors-deprecated();
49
49
  @include foreground-colors-deprecated();
50
50
  @include gradient-colors-deprecated();
51
+ // This CSS Custom Properties aren't used anymore as defaults,
52
+ // but we still need to keep them for backward compatibility.
53
+ --wp--preset--font-size--normal: 16px;
54
+ --wp--preset--font-size--huge: 42px;
51
55
  }
52
56
 
53
57
  // Font sizes (not used now, kept because of backward compatibility).
@@ -62,6 +66,14 @@
62
66
  font-size: 42px;
63
67
  }
64
68
 
69
+ .editor-styles-wrapper .has-normal-font-size {
70
+ font-size: var(--wp--preset--font-size--normal) !important;
71
+ }
72
+
73
+ .editor-styles-wrapper .has-huge-font-size {
74
+ font-size: var(--wp--preset--font-size--huge) !important;
75
+ }
76
+
65
77
  /**
66
78
  * Editor Normalization Styles
67
79
  *
@@ -1,6 +1,6 @@
1
1
  <?php
2
2
  /**
3
- * Server-side rendering of the `core/image` block.
3
+ * Server-side rendering of the `core/gallery` block.
4
4
  *
5
5
  * @package WordPress
6
6
  */
@@ -13,11 +13,10 @@
13
13
  * we add a custom `data-id` attribute before rendering the gallery
14
14
  * so that the Image Block can pick it up in its render_callback.
15
15
  *
16
- * @param array $parsed_block A single parsed block object.
17
- *
18
- * @return array The migrated block object.
16
+ * @param array $parsed_block The block being rendered.
17
+ * @return array The migrated block object.
19
18
  */
20
- function render_block_core_gallery_data( $parsed_block ) {
19
+ function block_core_gallery_data_id_backcompatibility( $parsed_block ) {
21
20
  if ( 'core/gallery' === $parsed_block['blockName'] ) {
22
21
  foreach ( $parsed_block['innerBlocks'] as $key => $inner_block ) {
23
22
  if ( 'core/image' === $inner_block['blockName'] ) {
@@ -31,14 +30,14 @@ function render_block_core_gallery_data( $parsed_block ) {
31
30
  return $parsed_block;
32
31
  }
33
32
 
34
- add_filter( 'render_block_data', 'render_block_core_gallery_data' );
33
+ add_filter( 'render_block_data', 'block_core_gallery_data_id_backcompatibility' );
35
34
 
36
35
  /**
37
36
  * Registers the `core/gallery` block on server.
38
37
  * This render callback needs to be here
39
38
  * so that the gallery styles are loaded in block-based themes.
40
39
  */
41
- function gutenberg_register_block_core_gallery() {
40
+ function register_block_core_gallery() {
42
41
  register_block_type_from_metadata(
43
42
  __DIR__ . '/gallery',
44
43
  array(
@@ -49,4 +48,4 @@ function gutenberg_register_block_core_gallery() {
49
48
  );
50
49
  }
51
50
 
52
- add_action( 'init', 'gutenberg_register_block_core_gallery', 20 );
51
+ add_action( 'init', 'register_block_core_gallery' );
@@ -26,8 +26,10 @@
26
26
  },
27
27
  "spacing": {
28
28
  "padding": true,
29
+ "blockGap": true,
29
30
  "__experimentalDefaultControls": {
30
- "padding": true
31
+ "padding": true,
32
+ "blockGap": true
31
33
  }
32
34
  },
33
35
  "__experimentalBorder": {
@@ -120,7 +120,7 @@ export default compose( [
120
120
  const { innerBlocks } = block;
121
121
  const selectedBlockClientId = getSelectedBlockClientId();
122
122
  const totalInnerBlocks = innerBlocks.length - 1;
123
- const blockIndex = getBlockIndex( selectedBlockClientId, clientId );
123
+ const blockIndex = getBlockIndex( selectedBlockClientId );
124
124
  isLastInnerBlockSelected = totalInnerBlocks === blockIndex;
125
125
  }
126
126
 
@@ -79,7 +79,7 @@ function block_core_home_link_build_css_font_sizes( $context ) {
79
79
  $font_sizes['css_classes'][] = sprintf( 'has-%s-font-size', $context['fontSize'] );
80
80
  } elseif ( $has_custom_font_size ) {
81
81
  // Add the custom font size inline style.
82
- $font_sizes['inline_styles'] = sprintf( 'font-size: %spx;', $context['style']['typography']['fontSize'] );
82
+ $font_sizes['inline_styles'] = sprintf( 'font-size: %s;', $context['style']['typography']['fontSize'] );
83
83
  }
84
84
 
85
85
  return $font_sizes;
@@ -70,6 +70,24 @@ figure.wp-block-image:not(.wp-block) {
70
70
  }
71
71
  }
72
72
 
73
+ *:not([data-align]) {
74
+ > .wp-block-image {
75
+ display: grid;
76
+ grid-template-columns: [image] minmax(0, max-content) [placeholder] auto;
77
+ .components-placeholder {
78
+ grid-column: placeholder;
79
+ }
80
+ > div:not(.components-placeholder) {
81
+ grid-column: image;
82
+ }
83
+ > figcaption {
84
+ grid-column: image;
85
+ display: table-caption;
86
+ caption-side: bottom;
87
+ }
88
+ }
89
+ }
90
+
73
91
  .wp-block[data-align="left"] > .wp-block-image {
74
92
  margin-right: 1em;
75
93
  margin-left: 0;
@@ -30,7 +30,7 @@ import {
30
30
  __experimentalImageEditor as ImageEditor,
31
31
  __experimentalImageEditingProvider as ImageEditingProvider,
32
32
  } from '@wordpress/block-editor';
33
- import { useEffect, useState, useRef } from '@wordpress/element';
33
+ import { useEffect, useMemo, useState, useRef } from '@wordpress/element';
34
34
  import { __, sprintf, isRTL } from '@wordpress/i18n';
35
35
  import { getFilename } from '@wordpress/url';
36
36
  import { createBlock, switchToBlockType } from '@wordpress/blocks';
@@ -79,6 +79,7 @@ export default function Image( {
79
79
  context,
80
80
  clientId,
81
81
  } ) {
82
+ const imageRef = useRef();
82
83
  const captionRef = useRef();
83
84
  const prevUrl = usePrevious( url );
84
85
  const { allowResize = true } = context;
@@ -141,7 +142,10 @@ export default function Image( {
141
142
  );
142
143
  const isLargeViewport = useViewportMatch( 'medium' );
143
144
  const isWideAligned = includes( [ 'wide', 'full' ], align );
144
- const [ { naturalWidth, naturalHeight }, setNaturalSize ] = useState( {} );
145
+ const [
146
+ { loadedNaturalWidth, loadedNaturalHeight },
147
+ setLoadedNaturalSize,
148
+ ] = useState( {} );
145
149
  const [ isEditingImage, setIsEditingImage ] = useState( false );
146
150
  const [ externalBlob, setExternalBlob ] = useState();
147
151
  const clientWidth = useClientWidth( containerRef, [ align ] );
@@ -179,6 +183,27 @@ export default function Image( {
179
183
  }
180
184
  }, [ url, prevUrl ] );
181
185
 
186
+ // Get naturalWidth and naturalHeight from image ref, and fall back to loaded natural
187
+ // width and height. This resolves an issue in Safari where the loaded natural
188
+ // witdth and height is otherwise lost when switching between alignments.
189
+ // See: https://github.com/WordPress/gutenberg/pull/37210.
190
+ const { naturalWidth, naturalHeight } = useMemo( () => {
191
+ return {
192
+ naturalWidth:
193
+ imageRef.current?.naturalWidth ||
194
+ loadedNaturalWidth ||
195
+ undefined,
196
+ naturalHeight:
197
+ imageRef.current?.naturalHeight ||
198
+ loadedNaturalHeight ||
199
+ undefined,
200
+ };
201
+ }, [
202
+ loadedNaturalWidth,
203
+ loadedNaturalHeight,
204
+ imageRef.current?.complete,
205
+ ] );
206
+
182
207
  function onResizeStart() {
183
208
  toggleSelection( false );
184
209
  }
@@ -411,13 +436,12 @@ export default function Image( {
411
436
  alt={ defaultedAlt }
412
437
  onError={ () => onImageError() }
413
438
  onLoad={ ( event ) => {
414
- setNaturalSize(
415
- pick( event.target, [
416
- 'naturalWidth',
417
- 'naturalHeight',
418
- ] )
419
- );
439
+ setLoadedNaturalSize( {
440
+ loadedNaturalWidth: event.target?.naturalWidth,
441
+ loadedNaturalHeight: event.target?.naturalHeight,
442
+ } );
420
443
  } }
444
+ ref={ imageRef }
421
445
  />
422
446
  { temporaryURL && <Spinner /> }
423
447
  </>
@@ -11,7 +11,7 @@
11
11
  *
12
12
  * @param array $attributes The block attributes.
13
13
  * @param array $content The block content.
14
- * @return string Returns the block content with the data-id attribute added.
14
+ * @return string Returns the block content with the data-id attribute added.
15
15
  */
16
16
  function render_block_core_image( $attributes, $content ) {
17
17
  if ( isset( $attributes['data-id'] ) ) {
@@ -114,8 +114,7 @@
114
114
  "allowSwitching": false,
115
115
  "allowInheriting": false,
116
116
  "default": {
117
- "type": "flex",
118
- "setCascadingProperties": true
117
+ "type": "flex"
119
118
  }
120
119
  }
121
120
  },
@@ -43,7 +43,6 @@ const migrateWithLayout = ( attributes ) => {
43
43
  Object.assign( updatedAttributes, {
44
44
  layout: {
45
45
  type: 'flex',
46
- setCascadingProperties: 'true',
47
46
  ...( itemsJustification && {
48
47
  justifyContent: itemsJustification,
49
48
  } ),
@@ -135,7 +134,6 @@ const v6 = {
135
134
  allowInheriting: false,
136
135
  default: {
137
136
  type: 'flex',
138
- setCascadingProperties: true,
139
137
  },
140
138
  },
141
139
  },