@wordpress/block-editor 12.12.0 → 12.13.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 (287) hide show
  1. package/CHANGELOG.md +12 -10
  2. package/README.md +35 -3
  3. package/build/components/block-alignment-control/use-available-alignments.js +30 -28
  4. package/build/components/block-alignment-control/use-available-alignments.js.map +1 -1
  5. package/build/components/block-list/block.native.js +4 -4
  6. package/build/components/block-list/block.native.js.map +1 -1
  7. package/build/components/block-list/layout.js +2 -3
  8. package/build/components/block-list/layout.js.map +1 -1
  9. package/build/components/border-radius-control/index.js +3 -2
  10. package/build/components/border-radius-control/index.js.map +1 -1
  11. package/build/components/color-palette/with-color-context.js +6 -6
  12. package/build/components/color-palette/with-color-context.js.map +1 -1
  13. package/build/components/colors/with-colors.js +2 -8
  14. package/build/components/colors/with-colors.js.map +1 -1
  15. package/build/components/colors-gradients/control.js +6 -7
  16. package/build/components/colors-gradients/control.js.map +1 -1
  17. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +5 -13
  18. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  19. package/build/components/font-family/index.js +2 -3
  20. package/build/components/font-family/index.js.map +1 -1
  21. package/build/components/font-sizes/font-size-picker.js +3 -5
  22. package/build/components/font-sizes/font-size-picker.js.map +1 -1
  23. package/build/components/font-sizes/with-font-sizes.js +3 -4
  24. package/build/components/font-sizes/with-font-sizes.js.map +1 -1
  25. package/build/components/global-styles/filters-panel.js +7 -8
  26. package/build/components/global-styles/filters-panel.js.map +1 -1
  27. package/build/components/global-styles/image-settings-panel.js +2 -2
  28. package/build/components/global-styles/image-settings-panel.js.map +1 -1
  29. package/build/components/global-styles/typography-panel.js +1 -1
  30. package/build/components/global-styles/typography-panel.js.map +1 -1
  31. package/build/components/gradients/use-gradient.js +2 -5
  32. package/build/components/gradients/use-gradient.js.map +1 -1
  33. package/build/components/height-control/index.js +3 -3
  34. package/build/components/height-control/index.js.map +1 -1
  35. package/build/components/index.js +9 -2
  36. package/build/components/index.js.map +1 -1
  37. package/build/components/index.native.js +9 -2
  38. package/build/components/index.native.js.map +1 -1
  39. package/build/components/inner-blocks/index.js +2 -2
  40. package/build/components/inner-blocks/index.js.map +1 -1
  41. package/build/components/letter-spacing-control/index.js +3 -3
  42. package/build/components/letter-spacing-control/index.js.map +1 -1
  43. package/build/components/link-control/search-item.js +11 -0
  44. package/build/components/link-control/search-item.js.map +1 -1
  45. package/build/components/link-control/search-results.js +2 -1
  46. package/build/components/link-control/search-results.js.map +1 -1
  47. package/build/components/link-control/use-search-handler.js +10 -5
  48. package/build/components/link-control/use-search-handler.js.map +1 -1
  49. package/build/components/resizable-box-popover/index.js +1 -1
  50. package/build/components/resizable-box-popover/index.js.map +1 -1
  51. package/build/components/rich-text/index.js +1 -1
  52. package/build/components/rich-text/index.js.map +1 -1
  53. package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js +6 -3
  54. package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
  55. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +3 -3
  56. package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  57. package/build/components/unit-control/index.js +3 -3
  58. package/build/components/unit-control/index.js.map +1 -1
  59. package/build/components/use-block-commands/index.js +6 -1
  60. package/build/components/use-block-commands/index.js.map +1 -1
  61. package/build/components/use-settings/index.js +212 -0
  62. package/build/components/use-settings/index.js.map +1 -0
  63. package/build/hooks/align.js +51 -35
  64. package/build/hooks/align.js.map +1 -1
  65. package/build/hooks/anchor.js +37 -32
  66. package/build/hooks/anchor.js.map +1 -1
  67. package/build/hooks/background.js +4 -4
  68. package/build/hooks/background.js.map +1 -1
  69. package/build/hooks/color.js +2 -4
  70. package/build/hooks/color.js.map +1 -1
  71. package/build/hooks/duotone.js +10 -9
  72. package/build/hooks/duotone.js.map +1 -1
  73. package/build/hooks/font-size.js +4 -4
  74. package/build/hooks/font-size.js.map +1 -1
  75. package/build/hooks/layout.js +10 -11
  76. package/build/hooks/layout.js.map +1 -1
  77. package/build/hooks/line-height.js +3 -3
  78. package/build/hooks/line-height.js.map +1 -1
  79. package/build/hooks/position.js +2 -3
  80. package/build/hooks/position.js.map +1 -1
  81. package/build/hooks/use-color-props.js +3 -11
  82. package/build/hooks/use-color-props.js.map +1 -1
  83. package/build/hooks/utils.js +1 -42
  84. package/build/hooks/utils.js.map +1 -1
  85. package/build/layouts/constrained.js +3 -3
  86. package/build/layouts/constrained.js.map +1 -1
  87. package/build/utils/object.js +4 -1
  88. package/build/utils/object.js.map +1 -1
  89. package/build/utils/transform-styles/index.js +19 -24
  90. package/build/utils/transform-styles/index.js.map +1 -1
  91. package/build-module/components/block-alignment-control/use-available-alignments.js +30 -28
  92. package/build-module/components/block-alignment-control/use-available-alignments.js.map +1 -1
  93. package/build-module/components/block-list/block.native.js +4 -4
  94. package/build-module/components/block-list/block.native.js.map +1 -1
  95. package/build-module/components/block-list/layout.js +2 -2
  96. package/build-module/components/block-list/layout.js.map +1 -1
  97. package/build-module/components/border-radius-control/index.js +3 -2
  98. package/build-module/components/border-radius-control/index.js.map +1 -1
  99. package/build-module/components/color-palette/with-color-context.js +6 -5
  100. package/build-module/components/color-palette/with-color-context.js.map +1 -1
  101. package/build-module/components/colors/with-colors.js +2 -7
  102. package/build-module/components/colors/with-colors.js.map +1 -1
  103. package/build-module/components/colors-gradients/control.js +6 -7
  104. package/build-module/components/colors-gradients/control.js.map +1 -1
  105. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +5 -12
  106. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
  107. package/build-module/components/font-family/index.js +2 -2
  108. package/build-module/components/font-family/index.js.map +1 -1
  109. package/build-module/components/font-sizes/font-size-picker.js +3 -4
  110. package/build-module/components/font-sizes/font-size-picker.js.map +1 -1
  111. package/build-module/components/font-sizes/with-font-sizes.js +3 -3
  112. package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
  113. package/build-module/components/global-styles/filters-panel.js +7 -8
  114. package/build-module/components/global-styles/filters-panel.js.map +1 -1
  115. package/build-module/components/global-styles/image-settings-panel.js +2 -2
  116. package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
  117. package/build-module/components/global-styles/typography-panel.js +1 -1
  118. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  119. package/build-module/components/gradients/use-gradient.js +2 -4
  120. package/build-module/components/gradients/use-gradient.js.map +1 -1
  121. package/build-module/components/height-control/index.js +3 -2
  122. package/build-module/components/height-control/index.js.map +1 -1
  123. package/build-module/components/index.js +1 -1
  124. package/build-module/components/index.js.map +1 -1
  125. package/build-module/components/index.native.js +1 -1
  126. package/build-module/components/index.native.js.map +1 -1
  127. package/build-module/components/inner-blocks/index.js +2 -2
  128. package/build-module/components/inner-blocks/index.js.map +1 -1
  129. package/build-module/components/letter-spacing-control/index.js +3 -2
  130. package/build-module/components/letter-spacing-control/index.js.map +1 -1
  131. package/build-module/components/link-control/search-item.js +12 -1
  132. package/build-module/components/link-control/search-item.js.map +1 -1
  133. package/build-module/components/link-control/search-results.js +2 -1
  134. package/build-module/components/link-control/search-results.js.map +1 -1
  135. package/build-module/components/link-control/use-search-handler.js +10 -5
  136. package/build-module/components/link-control/use-search-handler.js.map +1 -1
  137. package/build-module/components/resizable-box-popover/index.js +1 -1
  138. package/build-module/components/resizable-box-popover/index.js.map +1 -1
  139. package/build-module/components/rich-text/index.js +1 -1
  140. package/build-module/components/rich-text/index.js.map +1 -1
  141. package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js +6 -2
  142. package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
  143. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +3 -2
  144. package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
  145. package/build-module/components/unit-control/index.js +3 -2
  146. package/build-module/components/unit-control/index.js.map +1 -1
  147. package/build-module/components/use-block-commands/index.js +5 -1
  148. package/build-module/components/use-block-commands/index.js.map +1 -1
  149. package/build-module/components/use-settings/index.js +203 -0
  150. package/build-module/components/use-settings/index.js.map +1 -0
  151. package/build-module/hooks/align.js +51 -35
  152. package/build-module/hooks/align.js.map +1 -1
  153. package/build-module/hooks/anchor.js +37 -32
  154. package/build-module/hooks/anchor.js.map +1 -1
  155. package/build-module/hooks/background.js +4 -4
  156. package/build-module/hooks/background.js.map +1 -1
  157. package/build-module/hooks/color.js +2 -4
  158. package/build-module/hooks/color.js.map +1 -1
  159. package/build-module/hooks/duotone.js +11 -10
  160. package/build-module/hooks/duotone.js.map +1 -1
  161. package/build-module/hooks/font-size.js +4 -4
  162. package/build-module/hooks/font-size.js.map +1 -1
  163. package/build-module/hooks/layout.js +10 -11
  164. package/build-module/hooks/layout.js.map +1 -1
  165. package/build-module/hooks/line-height.js +3 -3
  166. package/build-module/hooks/line-height.js.map +1 -1
  167. package/build-module/hooks/position.js +2 -3
  168. package/build-module/hooks/position.js.map +1 -1
  169. package/build-module/hooks/use-color-props.js +3 -11
  170. package/build-module/hooks/use-color-props.js.map +1 -1
  171. package/build-module/hooks/utils.js +2 -43
  172. package/build-module/hooks/utils.js.map +1 -1
  173. package/build-module/layouts/constrained.js +3 -2
  174. package/build-module/layouts/constrained.js.map +1 -1
  175. package/build-module/utils/object.js +3 -1
  176. package/build-module/utils/object.js.map +1 -1
  177. package/build-module/utils/transform-styles/index.js +20 -24
  178. package/build-module/utils/transform-styles/index.js.map +1 -1
  179. package/build-style/style-rtl.css +13 -6
  180. package/build-style/style.css +13 -6
  181. package/package.json +36 -34
  182. package/src/components/block-alignment-control/use-available-alignments.js +49 -34
  183. package/src/components/block-list/block.native.js +4 -4
  184. package/src/components/block-list/layout.js +2 -2
  185. package/src/components/block-styles/style.scss +1 -1
  186. package/src/components/border-radius-control/index.js +3 -2
  187. package/src/components/color-palette/with-color-context.js +9 -9
  188. package/src/components/colors/with-colors.js +6 -7
  189. package/src/components/colors-gradients/control.js +10 -7
  190. package/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +29 -15
  191. package/src/components/font-family/index.js +2 -2
  192. package/src/components/font-sizes/font-size-picker.js +6 -4
  193. package/src/components/font-sizes/with-font-sizes.js +3 -5
  194. package/src/components/global-styles/filters-panel.js +9 -15
  195. package/src/components/global-styles/image-settings-panel.js +2 -2
  196. package/src/components/global-styles/typography-panel.js +1 -1
  197. package/src/components/gradients/use-gradient.js +10 -4
  198. package/src/components/height-control/index.js +3 -2
  199. package/src/components/index.js +1 -1
  200. package/src/components/index.native.js +1 -1
  201. package/src/components/inner-blocks/index.js +2 -2
  202. package/src/components/inserter/style.scss +9 -1
  203. package/src/components/letter-spacing-control/index.js +3 -2
  204. package/src/components/link-control/search-item.js +14 -0
  205. package/src/components/link-control/search-results.js +1 -0
  206. package/src/components/link-control/use-search-handler.js +22 -15
  207. package/src/components/resizable-box-popover/index.js +1 -1
  208. package/src/components/rich-text/index.js +1 -1
  209. package/src/components/spacing-sizes-control/hooks/use-spacing-sizes.js +7 -5
  210. package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +3 -2
  211. package/src/components/unit-control/index.js +3 -8
  212. package/src/components/use-block-commands/index.js +2 -1
  213. package/src/components/{use-setting → use-settings}/README.md +9 -10
  214. package/src/components/use-settings/index.js +272 -0
  215. package/src/components/{use-setting → use-settings}/test/index.js +47 -5
  216. package/src/hooks/align.js +79 -54
  217. package/src/hooks/anchor.js +75 -65
  218. package/src/hooks/background.js +7 -9
  219. package/src/hooks/color.js +7 -4
  220. package/src/hooks/duotone.js +24 -19
  221. package/src/hooks/font-size.js +4 -4
  222. package/src/hooks/layout.js +11 -11
  223. package/src/hooks/line-height.js +3 -3
  224. package/src/hooks/position.js +5 -3
  225. package/src/hooks/use-color-props.js +21 -14
  226. package/src/hooks/utils.js +88 -43
  227. package/src/layouts/constrained.js +3 -8
  228. package/src/utils/object.js +4 -1
  229. package/src/utils/test/__snapshots__/transform-styles.js.snap +103 -0
  230. package/src/utils/test/transform-styles.js +217 -0
  231. package/src/utils/transform-styles/index.js +25 -25
  232. package/build/components/use-setting/index.js +0 -161
  233. package/build/components/use-setting/index.js.map +0 -1
  234. package/build/utils/transform-styles/ast/index.js +0 -21
  235. package/build/utils/transform-styles/ast/index.js.map +0 -1
  236. package/build/utils/transform-styles/ast/parse.js +0 -660
  237. package/build/utils/transform-styles/ast/parse.js.map +0 -1
  238. package/build/utils/transform-styles/ast/stringify/compiler.js +0 -52
  239. package/build/utils/transform-styles/ast/stringify/compiler.js.map +0 -1
  240. package/build/utils/transform-styles/ast/stringify/compress.js +0 -178
  241. package/build/utils/transform-styles/ast/stringify/compress.js.map +0 -1
  242. package/build/utils/transform-styles/ast/stringify/identity.js +0 -207
  243. package/build/utils/transform-styles/ast/stringify/identity.js.map +0 -1
  244. package/build/utils/transform-styles/ast/stringify/index.js +0 -36
  245. package/build/utils/transform-styles/ast/stringify/index.js.map +0 -1
  246. package/build/utils/transform-styles/transforms/url-rewrite.js +0 -130
  247. package/build/utils/transform-styles/transforms/url-rewrite.js.map +0 -1
  248. package/build/utils/transform-styles/transforms/wrap.js +0 -59
  249. package/build/utils/transform-styles/transforms/wrap.js.map +0 -1
  250. package/build/utils/transform-styles/traverse.js +0 -37
  251. package/build/utils/transform-styles/traverse.js.map +0 -1
  252. package/build-module/components/use-setting/index.js +0 -154
  253. package/build-module/components/use-setting/index.js.map +0 -1
  254. package/build-module/utils/transform-styles/ast/index.js +0 -6
  255. package/build-module/utils/transform-styles/ast/index.js.map +0 -1
  256. package/build-module/utils/transform-styles/ast/parse.js +0 -654
  257. package/build-module/utils/transform-styles/ast/parse.js.map +0 -1
  258. package/build-module/utils/transform-styles/ast/stringify/compiler.js +0 -49
  259. package/build-module/utils/transform-styles/ast/stringify/compiler.js.map +0 -1
  260. package/build-module/utils/transform-styles/ast/stringify/compress.js +0 -176
  261. package/build-module/utils/transform-styles/ast/stringify/compress.js.map +0 -1
  262. package/build-module/utils/transform-styles/ast/stringify/identity.js +0 -206
  263. package/build-module/utils/transform-styles/ast/stringify/identity.js.map +0 -1
  264. package/build-module/utils/transform-styles/ast/stringify/index.js +0 -29
  265. package/build-module/utils/transform-styles/ast/stringify/index.js.map +0 -1
  266. package/build-module/utils/transform-styles/transforms/url-rewrite.js +0 -123
  267. package/build-module/utils/transform-styles/transforms/url-rewrite.js.map +0 -1
  268. package/build-module/utils/transform-styles/transforms/wrap.js +0 -52
  269. package/build-module/utils/transform-styles/transforms/wrap.js.map +0 -1
  270. package/build-module/utils/transform-styles/traverse.js +0 -28
  271. package/build-module/utils/transform-styles/traverse.js.map +0 -1
  272. package/src/components/use-setting/index.js +0 -218
  273. package/src/utils/transform-styles/ast/index.js +0 -5
  274. package/src/utils/transform-styles/ast/parse.js +0 -732
  275. package/src/utils/transform-styles/ast/stringify/compiler.js +0 -50
  276. package/src/utils/transform-styles/ast/stringify/compress.js +0 -238
  277. package/src/utils/transform-styles/ast/stringify/identity.js +0 -286
  278. package/src/utils/transform-styles/ast/stringify/index.js +0 -32
  279. package/src/utils/transform-styles/test/__snapshots__/traverse.js.snap +0 -7
  280. package/src/utils/transform-styles/test/traverse.js +0 -24
  281. package/src/utils/transform-styles/transforms/test/__snapshots__/url-rewrite.js.snap +0 -25
  282. package/src/utils/transform-styles/transforms/test/__snapshots__/wrap.js.snap +0 -64
  283. package/src/utils/transform-styles/transforms/test/url-rewrite.js +0 -39
  284. package/src/utils/transform-styles/transforms/test/wrap.js +0 -95
  285. package/src/utils/transform-styles/transforms/url-rewrite.js +0 -139
  286. package/src/utils/transform-styles/transforms/wrap.js +0 -56
  287. package/src/utils/transform-styles/traverse.js +0 -32
@@ -827,7 +827,7 @@
827
827
  outline: none;
828
828
  }
829
829
  .components-button.block-editor-block-mover-button:focus-visible::before {
830
- box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color), inset 0 0 0 4px #fff;
830
+ box-shadow: inset 0 0 0 1px var(--wp-components-color-background, #fff), 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9));
831
831
  outline: 2px solid transparent;
832
832
  }
833
833
 
@@ -1062,6 +1062,7 @@
1062
1062
  }
1063
1063
  .block-editor-block-styles__variants button.components-button.block-editor-block-styles__item:focus, .block-editor-block-styles__variants button.components-button.block-editor-block-styles__item.is-active:focus {
1064
1064
  box-shadow: inset 0 0 0 1px var(--wp-components-color-background, #fff), 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9));
1065
+ outline: 2px solid transparent;
1065
1066
  }
1066
1067
  .block-editor-block-styles__variants .block-editor-block-styles__item-text {
1067
1068
  word-break: break-all;
@@ -3144,7 +3145,7 @@
3144
3145
  box-shadow: none;
3145
3146
  }
3146
3147
  .block-editor-url-popover .components-button.has-icon:not(:disabled):focus > svg {
3147
- box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color), inset 0 0 0 4px #fff;
3148
+ box-shadow: inset 0 0 0 1px var(--wp-components-color-background, #fff), 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9));
3148
3149
  outline: 2px solid transparent;
3149
3150
  }
3150
3151
 
@@ -3849,6 +3850,9 @@
3849
3850
  .block-editor-inserter__block-patterns-tabs div[role=listitem]:last-child {
3850
3851
  margin-top: auto;
3851
3852
  }
3853
+ .block-editor-inserter__block-patterns-tabs .block-editor-inserter__patterns-category {
3854
+ padding-left: 4px;
3855
+ }
3852
3856
 
3853
3857
  .block-editor-inserter__patterns-category-dialog {
3854
3858
  background: #f0f0f0;
@@ -4066,17 +4070,20 @@
4066
4070
  .block-editor-inserter__media-tabs div[role=listitem]:last-child {
4067
4071
  margin-top: auto;
4068
4072
  }
4069
- .block-editor-inserter__media-tabs__media-category.is-selected {
4073
+ .block-editor-inserter__media-tabs .block-editor-inserter__media-tabs__media-category {
4074
+ padding-left: 4px;
4075
+ }
4076
+ .block-editor-inserter__media-tabs .block-editor-inserter__media-tabs__media-category.is-selected {
4070
4077
  color: var(--wp-admin-theme-color);
4071
4078
  position: relative;
4072
4079
  }
4073
- .block-editor-inserter__media-tabs__media-category.is-selected .components-flex-item {
4080
+ .block-editor-inserter__media-tabs .block-editor-inserter__media-tabs__media-category.is-selected .components-flex-item {
4074
4081
  filter: brightness(0.95);
4075
4082
  }
4076
- .block-editor-inserter__media-tabs__media-category.is-selected svg {
4083
+ .block-editor-inserter__media-tabs .block-editor-inserter__media-tabs__media-category.is-selected svg {
4077
4084
  fill: var(--wp-admin-theme-color);
4078
4085
  }
4079
- .block-editor-inserter__media-tabs__media-category.is-selected::after {
4086
+ .block-editor-inserter__media-tabs .block-editor-inserter__media-tabs__media-category.is-selected::after {
4080
4087
  content: "";
4081
4088
  position: absolute;
4082
4089
  top: 0;
@@ -827,7 +827,7 @@
827
827
  outline: none;
828
828
  }
829
829
  .components-button.block-editor-block-mover-button:focus-visible::before {
830
- box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color), inset 0 0 0 4px #fff;
830
+ box-shadow: inset 0 0 0 1px var(--wp-components-color-background, #fff), 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9));
831
831
  outline: 2px solid transparent;
832
832
  }
833
833
 
@@ -1062,6 +1062,7 @@
1062
1062
  }
1063
1063
  .block-editor-block-styles__variants button.components-button.block-editor-block-styles__item:focus, .block-editor-block-styles__variants button.components-button.block-editor-block-styles__item.is-active:focus {
1064
1064
  box-shadow: inset 0 0 0 1px var(--wp-components-color-background, #fff), 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9));
1065
+ outline: 2px solid transparent;
1065
1066
  }
1066
1067
  .block-editor-block-styles__variants .block-editor-block-styles__item-text {
1067
1068
  word-break: break-all;
@@ -3145,7 +3146,7 @@
3145
3146
  box-shadow: none;
3146
3147
  }
3147
3148
  .block-editor-url-popover .components-button.has-icon:not(:disabled):focus > svg {
3148
- box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color), inset 0 0 0 4px #fff;
3149
+ box-shadow: inset 0 0 0 1px var(--wp-components-color-background, #fff), 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9));
3149
3150
  outline: 2px solid transparent;
3150
3151
  }
3151
3152
 
@@ -3850,6 +3851,9 @@
3850
3851
  .block-editor-inserter__block-patterns-tabs div[role=listitem]:last-child {
3851
3852
  margin-top: auto;
3852
3853
  }
3854
+ .block-editor-inserter__block-patterns-tabs .block-editor-inserter__patterns-category {
3855
+ padding-right: 4px;
3856
+ }
3853
3857
 
3854
3858
  .block-editor-inserter__patterns-category-dialog {
3855
3859
  background: #f0f0f0;
@@ -4067,17 +4071,20 @@
4067
4071
  .block-editor-inserter__media-tabs div[role=listitem]:last-child {
4068
4072
  margin-top: auto;
4069
4073
  }
4070
- .block-editor-inserter__media-tabs__media-category.is-selected {
4074
+ .block-editor-inserter__media-tabs .block-editor-inserter__media-tabs__media-category {
4075
+ padding-right: 4px;
4076
+ }
4077
+ .block-editor-inserter__media-tabs .block-editor-inserter__media-tabs__media-category.is-selected {
4071
4078
  color: var(--wp-admin-theme-color);
4072
4079
  position: relative;
4073
4080
  }
4074
- .block-editor-inserter__media-tabs__media-category.is-selected .components-flex-item {
4081
+ .block-editor-inserter__media-tabs .block-editor-inserter__media-tabs__media-category.is-selected .components-flex-item {
4075
4082
  filter: brightness(0.95);
4076
4083
  }
4077
- .block-editor-inserter__media-tabs__media-category.is-selected svg {
4084
+ .block-editor-inserter__media-tabs .block-editor-inserter__media-tabs__media-category.is-selected svg {
4078
4085
  fill: var(--wp-admin-theme-color);
4079
4086
  }
4080
- .block-editor-inserter__media-tabs__media-category.is-selected::after {
4087
+ .block-editor-inserter__media-tabs .block-editor-inserter__media-tabs__media-category.is-selected::after {
4081
4088
  content: "";
4082
4089
  position: absolute;
4083
4090
  top: 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/block-editor",
3
- "version": "12.12.0",
3
+ "version": "12.13.0",
4
4
  "description": "Generic block editor.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -35,35 +35,35 @@
35
35
  "@emotion/react": "^11.7.1",
36
36
  "@emotion/styled": "^11.6.0",
37
37
  "@react-spring/web": "^9.4.5",
38
- "@wordpress/a11y": "^3.44.0",
39
- "@wordpress/api-fetch": "^6.41.0",
40
- "@wordpress/blob": "^3.44.0",
41
- "@wordpress/blocks": "^12.21.0",
42
- "@wordpress/commands": "^0.15.0",
43
- "@wordpress/components": "^25.10.0",
44
- "@wordpress/compose": "^6.21.0",
45
- "@wordpress/data": "^9.14.0",
46
- "@wordpress/date": "^4.44.0",
47
- "@wordpress/deprecated": "^3.44.0",
48
- "@wordpress/dom": "^3.44.0",
49
- "@wordpress/element": "^5.21.0",
50
- "@wordpress/escape-html": "^2.44.0",
51
- "@wordpress/hooks": "^3.44.0",
52
- "@wordpress/html-entities": "^3.44.0",
53
- "@wordpress/i18n": "^4.44.0",
54
- "@wordpress/icons": "^9.35.0",
55
- "@wordpress/is-shallow-equal": "^4.44.0",
56
- "@wordpress/keyboard-shortcuts": "^4.21.0",
57
- "@wordpress/keycodes": "^3.44.0",
58
- "@wordpress/notices": "^4.12.0",
59
- "@wordpress/preferences": "^3.21.0",
60
- "@wordpress/private-apis": "^0.26.0",
61
- "@wordpress/rich-text": "^6.21.0",
62
- "@wordpress/style-engine": "^1.27.0",
63
- "@wordpress/token-list": "^2.44.0",
64
- "@wordpress/url": "^3.45.0",
65
- "@wordpress/warning": "^2.44.0",
66
- "@wordpress/wordcount": "^3.44.0",
38
+ "@wordpress/a11y": "^3.45.0",
39
+ "@wordpress/api-fetch": "^6.42.0",
40
+ "@wordpress/blob": "^3.45.0",
41
+ "@wordpress/blocks": "^12.22.0",
42
+ "@wordpress/commands": "^0.16.0",
43
+ "@wordpress/components": "^25.11.0",
44
+ "@wordpress/compose": "^6.22.0",
45
+ "@wordpress/data": "^9.15.0",
46
+ "@wordpress/date": "^4.45.0",
47
+ "@wordpress/deprecated": "^3.45.0",
48
+ "@wordpress/dom": "^3.45.0",
49
+ "@wordpress/element": "^5.22.0",
50
+ "@wordpress/escape-html": "^2.45.0",
51
+ "@wordpress/hooks": "^3.45.0",
52
+ "@wordpress/html-entities": "^3.45.0",
53
+ "@wordpress/i18n": "^4.45.0",
54
+ "@wordpress/icons": "^9.36.0",
55
+ "@wordpress/is-shallow-equal": "^4.45.0",
56
+ "@wordpress/keyboard-shortcuts": "^4.22.0",
57
+ "@wordpress/keycodes": "^3.45.0",
58
+ "@wordpress/notices": "^4.13.0",
59
+ "@wordpress/preferences": "^3.22.0",
60
+ "@wordpress/private-apis": "^0.27.0",
61
+ "@wordpress/rich-text": "^6.22.0",
62
+ "@wordpress/style-engine": "^1.28.0",
63
+ "@wordpress/token-list": "^2.45.0",
64
+ "@wordpress/url": "^3.46.0",
65
+ "@wordpress/warning": "^2.45.0",
66
+ "@wordpress/wordcount": "^3.45.0",
67
67
  "change-case": "^4.1.2",
68
68
  "classnames": "^2.3.1",
69
69
  "colord": "^2.7.0",
@@ -71,12 +71,14 @@
71
71
  "diff": "^4.0.2",
72
72
  "dom-scroll-into-view": "^1.2.1",
73
73
  "fast-deep-equal": "^3.1.3",
74
- "inherits": "^2.0.3",
74
+ "memize": "^2.1.0",
75
+ "postcss": "^8.4.21",
76
+ "postcss-prefixwrap": "^1.41.0",
77
+ "postcss-urlrebase": "^1.0.0",
75
78
  "react-autosize-textarea": "^7.1.0",
76
79
  "react-easy-crop": "^4.5.1",
77
80
  "rememo": "^4.0.2",
78
- "remove-accents": "^0.5.0",
79
- "traverse": "^0.6.6"
81
+ "remove-accents": "^0.5.0"
80
82
  },
81
83
  "peerDependencies": {
82
84
  "react": "^18.0.0",
@@ -85,5 +87,5 @@
85
87
  "publishConfig": {
86
88
  "access": "public"
87
89
  },
88
- "gitHead": "f83bb1a71e8fa416131b81a9f282a72a1dc6c694"
90
+ "gitHead": "2a00e87b57b9c27ed2b9b0fd8d423ef3cada72c1"
89
91
  }
@@ -19,29 +19,43 @@ export default function useAvailableAlignments( controls = DEFAULT_CONTROLS ) {
19
19
  if ( ! controls.includes( 'none' ) ) {
20
20
  controls = [ 'none', ...controls ];
21
21
  }
22
- const {
23
- wideControlsEnabled = false,
24
- themeSupportsLayout,
25
- isBlockBasedTheme,
26
- } = useSelect( ( select ) => {
27
- const { getSettings } = select( blockEditorStore );
28
- const settings = getSettings();
29
- return {
30
- wideControlsEnabled: settings.alignWide,
31
- themeSupportsLayout: settings.supportsLayout,
32
- isBlockBasedTheme: settings.__unstableIsBlockBasedTheme,
33
- };
34
- }, [] );
22
+ const isNoneOnly = controls.length === 1 && controls[ 0 ] === 'none';
23
+
24
+ const [ wideControlsEnabled, themeSupportsLayout, isBlockBasedTheme ] =
25
+ useSelect(
26
+ ( select ) => {
27
+ // If `isNoneOnly` is true, we'll be returning early because there is
28
+ // nothing to filter on an empty array. We won't need the info from
29
+ // the `useSelect` but we must call it anyway because Rules of Hooks.
30
+ // So the callback returns early to avoid block editor subscription.
31
+ if ( isNoneOnly ) {
32
+ return [ false, false, false ];
33
+ }
34
+
35
+ const settings = select( blockEditorStore ).getSettings();
36
+ return [
37
+ settings.alignWide ?? false,
38
+ settings.supportsLayout,
39
+ settings.__unstableIsBlockBasedTheme,
40
+ ];
41
+ },
42
+ [ isNoneOnly ]
43
+ );
35
44
  const layout = useLayout();
45
+
46
+ if ( isNoneOnly ) {
47
+ return EMPTY_ARRAY;
48
+ }
49
+
36
50
  const layoutType = getLayoutType( layout?.type );
37
- const layoutAlignments = layoutType.getAlignments(
38
- layout,
39
- isBlockBasedTheme
40
- );
41
51
 
42
52
  if ( themeSupportsLayout ) {
43
- const alignments = layoutAlignments.filter(
44
- ( { name: alignmentName } ) => controls.includes( alignmentName )
53
+ const layoutAlignments = layoutType.getAlignments(
54
+ layout,
55
+ isBlockBasedTheme
56
+ );
57
+ const alignments = layoutAlignments.filter( ( alignment ) =>
58
+ controls.includes( alignment.name )
45
59
  );
46
60
  // While we treat `none` as an alignment, we shouldn't return it if no
47
61
  // other alignments exist.
@@ -55,25 +69,26 @@ export default function useAvailableAlignments( controls = DEFAULT_CONTROLS ) {
55
69
  if ( layoutType.name !== 'default' && layoutType.name !== 'constrained' ) {
56
70
  return EMPTY_ARRAY;
57
71
  }
58
- const { alignments: availableAlignments = DEFAULT_CONTROLS } = layout;
59
- const enabledControls = controls
60
- .filter(
61
- ( control ) =>
62
- ( layout.alignments || // Ignore the global wideAlignment check if the layout explicitely defines alignments.
63
- wideControlsEnabled ||
64
- ! WIDE_CONTROLS.includes( control ) ) &&
65
- availableAlignments.includes( control )
66
- )
67
- .map( ( enabledControl ) => ( { name: enabledControl } ) );
72
+
73
+ const alignments = controls
74
+ .filter( ( control ) => {
75
+ if ( layout.alignments ) {
76
+ return layout.alignments.includes( control );
77
+ }
78
+
79
+ if ( ! wideControlsEnabled && WIDE_CONTROLS.includes( control ) ) {
80
+ return false;
81
+ }
82
+
83
+ return DEFAULT_CONTROLS.includes( control );
84
+ } )
85
+ .map( ( name ) => ( { name } ) );
68
86
 
69
87
  // While we treat `none` as an alignment, we shouldn't return it if no
70
88
  // other alignments exist.
71
- if (
72
- enabledControls.length === 1 &&
73
- enabledControls[ 0 ].name === 'none'
74
- ) {
89
+ if ( alignments.length === 1 && alignments[ 0 ].name === 'none' ) {
75
90
  return EMPTY_ARRAY;
76
91
  }
77
92
 
78
- return enabledControls;
93
+ return alignments;
79
94
  }
@@ -38,9 +38,9 @@ import BlockInvalidWarning from './block-invalid-warning';
38
38
  import BlockOutline from './block-outline';
39
39
  import { store as blockEditorStore } from '../../store';
40
40
  import { useLayout } from './layout';
41
- import useSetting from '../use-setting';
41
+ import { useSettings } from '../use-settings';
42
42
 
43
- const emptyArray = [];
43
+ const EMPTY_ARRAY = [];
44
44
 
45
45
  // Helper function to memoize the wrapperProps since getEditWrapperProps always returns a new reference.
46
46
  const wrapperPropsCache = new WeakMap();
@@ -215,7 +215,7 @@ function BlockListBlock( {
215
215
  const parentLayout = useLayout() || {};
216
216
  const defaultColors = useMobileGlobalStylesColors();
217
217
  const globalStyle = useGlobalStyles();
218
- const fontSizes = useSetting( 'typography.fontSizes' ) || emptyArray;
218
+ const [ fontSizes ] = useSettings( 'typography.fontSizes' );
219
219
 
220
220
  const onRemove = useCallback(
221
221
  () => removeBlock( clientId ),
@@ -257,7 +257,7 @@ function BlockListBlock( {
257
257
  attributes,
258
258
  defaultColors,
259
259
  name,
260
- fontSizes
260
+ fontSizes || EMPTY_ARRAY
261
261
  );
262
262
  // eslint-disable-next-line react-hooks/exhaustive-deps
263
263
  }, [
@@ -7,7 +7,7 @@ import { createContext, useContext } from '@wordpress/element';
7
7
  * Internal dependencies
8
8
  */
9
9
  import { getLayoutType } from '../../layouts';
10
- import useSetting from '../use-setting';
10
+ import { useSettings } from '../use-settings';
11
11
 
12
12
  export const defaultLayout = { type: 'default' };
13
13
 
@@ -27,7 +27,7 @@ export function useLayout() {
27
27
 
28
28
  export function LayoutStyle( { layout = {}, css, ...props } ) {
29
29
  const layoutType = getLayoutType( layout.type );
30
- const blockGapSupport = useSetting( 'spacing.blockGap' );
30
+ const [ blockGapSupport ] = useSettings( 'spacing.blockGap' );
31
31
  const hasBlockGapSupport = blockGapSupport !== null;
32
32
 
33
33
  if ( layoutType ) {
@@ -58,7 +58,7 @@
58
58
 
59
59
  &:focus,
60
60
  &.is-active:focus {
61
- box-shadow: inset 0 0 0 $border-width var(--wp-components-color-background, #fff), 0 0 0 var(--wp-admin-border-width-focus) var(--wp-components-color-accent, var(--wp-admin-theme-color, #3858e9));
61
+ @include block-toolbar-button-style__focus();
62
62
  }
63
63
  }
64
64
 
@@ -16,7 +16,7 @@ import { __ } from '@wordpress/i18n';
16
16
  import AllInputControl from './all-input-control';
17
17
  import InputControls from './input-controls';
18
18
  import LinkedButton from './linked-button';
19
- import useSetting from '../use-setting';
19
+ import { useSettings } from '../use-settings';
20
20
  import {
21
21
  getAllValue,
22
22
  getAllUnit,
@@ -67,8 +67,9 @@ export default function BorderRadiusControl( { onChange, values } ) {
67
67
  )[ 1 ],
68
68
  } );
69
69
 
70
+ const [ availableUnits ] = useSettings( 'spacing.units' );
70
71
  const units = useCustomUnits( {
71
- availableUnits: useSetting( 'spacing.units' ) || [ 'px', 'em', 'rem' ],
72
+ availableUnits: availableUnits || [ 'px', 'em', 'rem' ],
72
73
  } );
73
74
 
74
75
  const unit = getAllUnit( selectedUnits );
@@ -6,18 +6,18 @@ import { createHigherOrderComponent } from '@wordpress/compose';
6
6
  /**
7
7
  * Internal dependencies
8
8
  */
9
- import useSetting from '../use-setting';
9
+ import { useSettings } from '../use-settings';
10
10
 
11
11
  export default createHigherOrderComponent( ( WrappedComponent ) => {
12
12
  return ( props ) => {
13
- const colorsFeature = useSetting( 'color.palette' );
14
- const disableCustomColorsFeature = ! useSetting( 'color.custom' );
15
- const colors =
16
- props.colors === undefined ? colorsFeature : props.colors;
17
- const disableCustomColors =
18
- props.disableCustomColors === undefined
19
- ? disableCustomColorsFeature
20
- : props.disableCustomColors;
13
+ const [ colorsFeature, enableCustomColors ] = useSettings(
14
+ 'color.palette',
15
+ 'color.custom'
16
+ );
17
+ const {
18
+ colors = colorsFeature,
19
+ disableCustomColors = ! enableCustomColors,
20
+ } = props;
21
21
  const hasColorsToChoose =
22
22
  ( colors && colors.length > 0 ) || ! disableCustomColors;
23
23
  return (
@@ -13,7 +13,7 @@ import {
13
13
  getColorObjectByAttributeValues,
14
14
  getMostReadableColor,
15
15
  } from './utils';
16
- import useSetting from '../use-setting';
16
+ import { useSettings } from '../use-settings';
17
17
  import { kebabCase } from '../../utils/object';
18
18
 
19
19
  /**
@@ -51,12 +51,11 @@ const withCustomColorPalette = ( colorsArray ) =>
51
51
  const withEditorColorPalette = () =>
52
52
  createHigherOrderComponent(
53
53
  ( WrappedComponent ) => ( props ) => {
54
- // Some color settings have a special handling for deprecated flags in `useSetting`,
55
- // so we can't unwrap them by doing const { ... } = useSetting('color')
56
- // until https://github.com/WordPress/gutenberg/issues/37094 is fixed.
57
- const userPalette = useSetting( 'color.palette.custom' );
58
- const themePalette = useSetting( 'color.palette.theme' );
59
- const defaultPalette = useSetting( 'color.palette.default' );
54
+ const [ userPalette, themePalette, defaultPalette ] = useSettings(
55
+ 'color.palette.custom',
56
+ 'color.palette.theme',
57
+ 'color.palette.default'
58
+ );
60
59
  const allColors = useMemo(
61
60
  () => [
62
61
  ...( userPalette || [] ),
@@ -18,7 +18,7 @@ import {
18
18
  /**
19
19
  * Internal dependencies
20
20
  */
21
- import useSetting from '../use-setting';
21
+ import { useSettings } from '../use-settings';
22
22
 
23
23
  const colorsAndGradientKeys = [
24
24
  'colors',
@@ -160,17 +160,20 @@ function ColorGradientControlInner( {
160
160
  }
161
161
 
162
162
  function ColorGradientControlSelect( props ) {
163
- const colorGradientSettings = {};
164
- colorGradientSettings.colors = useSetting( 'color.palette' );
165
- colorGradientSettings.gradients = useSetting( 'color.gradients' );
166
- colorGradientSettings.disableCustomColors = ! useSetting( 'color.custom' );
167
- colorGradientSettings.disableCustomGradients = ! useSetting(
163
+ const [ colors, gradients, customColors, customGradients ] = useSettings(
164
+ 'color.palette',
165
+ 'color.gradients',
166
+ 'color.custom',
168
167
  'color.customGradient'
169
168
  );
170
169
 
171
170
  return (
172
171
  <ColorGradientControlInner
173
- { ...{ ...colorGradientSettings, ...props } }
172
+ colors={ colors }
173
+ gradients={ gradients }
174
+ disableCustomColors={ ! customColors }
175
+ disableCustomGradients={ ! customGradients }
176
+ { ...props }
174
177
  />
175
178
  );
176
179
  }
@@ -7,7 +7,7 @@ import { _x } from '@wordpress/i18n';
7
7
  /**
8
8
  * Internal dependencies
9
9
  */
10
- import useSetting from '../use-setting';
10
+ import { useSettings } from '../use-settings';
11
11
 
12
12
  /**
13
13
  * Retrieves color and gradient related settings.
@@ -18,14 +18,34 @@ import useSetting from '../use-setting';
18
18
  * @return {Object} Color and gradient related settings.
19
19
  */
20
20
  export default function useMultipleOriginColorsAndGradients() {
21
+ const [
22
+ enableCustomColors,
23
+ customColors,
24
+ themeColors,
25
+ defaultColors,
26
+ shouldDisplayDefaultColors,
27
+ enableCustomGradients,
28
+ customGradients,
29
+ themeGradients,
30
+ defaultGradients,
31
+ shouldDisplayDefaultGradients,
32
+ ] = useSettings(
33
+ 'color.custom',
34
+ 'color.palette.custom',
35
+ 'color.palette.theme',
36
+ 'color.palette.default',
37
+ 'color.defaultPalette',
38
+ 'color.customGradient',
39
+ 'color.gradients.custom',
40
+ 'color.gradients.theme',
41
+ 'color.gradients.default',
42
+ 'color.defaultGradients'
43
+ );
44
+
21
45
  const colorGradientSettings = {
22
- disableCustomColors: ! useSetting( 'color.custom' ),
23
- disableCustomGradients: ! useSetting( 'color.customGradient' ),
46
+ disableCustomColors: ! enableCustomColors,
47
+ disableCustomGradients: ! enableCustomGradients,
24
48
  };
25
- const customColors = useSetting( 'color.palette.custom' );
26
- const themeColors = useSetting( 'color.palette.theme' );
27
- const defaultColors = useSetting( 'color.palette.default' );
28
- const shouldDisplayDefaultColors = useSetting( 'color.defaultPalette' );
29
49
 
30
50
  colorGradientSettings.colors = useMemo( () => {
31
51
  const result = [];
@@ -62,18 +82,12 @@ export default function useMultipleOriginColorsAndGradients() {
62
82
  }
63
83
  return result;
64
84
  }, [
65
- defaultColors,
66
- themeColors,
67
85
  customColors,
86
+ themeColors,
87
+ defaultColors,
68
88
  shouldDisplayDefaultColors,
69
89
  ] );
70
90
 
71
- const customGradients = useSetting( 'color.gradients.custom' );
72
- const themeGradients = useSetting( 'color.gradients.theme' );
73
- const defaultGradients = useSetting( 'color.gradients.default' );
74
- const shouldDisplayDefaultGradients = useSetting(
75
- 'color.defaultGradients'
76
- );
77
91
  colorGradientSettings.gradients = useMemo( () => {
78
92
  const result = [];
79
93
  if ( themeGradients && themeGradients.length ) {
@@ -7,7 +7,7 @@ import { __ } from '@wordpress/i18n';
7
7
  /**
8
8
  * Internal dependencies
9
9
  */
10
- import useSetting from '../use-setting';
10
+ import { useSettings } from '../use-settings';
11
11
 
12
12
  export default function FontFamilyControl( {
13
13
  value = '',
@@ -15,7 +15,7 @@ export default function FontFamilyControl( {
15
15
  fontFamilies,
16
16
  ...props
17
17
  } ) {
18
- const blockLevelFontFamilies = useSetting( 'typography.fontFamilies' );
18
+ const [ blockLevelFontFamilies ] = useSettings( 'typography.fontFamilies' );
19
19
  if ( ! fontFamilies ) {
20
20
  fontFamilies = blockLevelFontFamilies;
21
21
  }
@@ -6,17 +6,19 @@ import { FontSizePicker as BaseFontSizePicker } from '@wordpress/components';
6
6
  /**
7
7
  * Internal dependencies
8
8
  */
9
- import useSetting from '../use-setting';
9
+ import { useSettings } from '../use-settings';
10
10
 
11
11
  function FontSizePicker( props ) {
12
- const fontSizes = useSetting( 'typography.fontSizes' );
13
- const disableCustomFontSizes = ! useSetting( 'typography.customFontSize' );
12
+ const [ fontSizes, customFontSize ] = useSettings(
13
+ 'typography.fontSizes',
14
+ 'typography.customFontSize'
15
+ );
14
16
 
15
17
  return (
16
18
  <BaseFontSizePicker
17
19
  { ...props }
18
20
  fontSizes={ fontSizes }
19
- disableCustomFontSizes={ disableCustomFontSizes }
21
+ disableCustomFontSizes={ ! customFontSize }
20
22
  />
21
23
  );
22
24
  }
@@ -8,7 +8,7 @@ import { Component } from '@wordpress/element';
8
8
  * Internal dependencies
9
9
  */
10
10
  import { getFontSize, getFontSizeClass } from './utils';
11
- import useSetting from '../use-setting';
11
+ import { useSettings } from '../use-settings';
12
12
 
13
13
  const DEFAULT_FONT_SIZES = [];
14
14
 
@@ -52,13 +52,11 @@ export default ( ...fontSizeNames ) => {
52
52
  compose( [
53
53
  createHigherOrderComponent(
54
54
  ( WrappedComponent ) => ( props ) => {
55
- const fontSizes =
56
- useSetting( 'typography.fontSizes' ) ||
57
- DEFAULT_FONT_SIZES;
55
+ const [ fontSizes ] = useSettings( 'typography.fontSizes' );
58
56
  return (
59
57
  <WrappedComponent
60
58
  { ...props }
61
- fontSizes={ fontSizes }
59
+ fontSizes={ fontSizes || DEFAULT_FONT_SIZES }
62
60
  />
63
61
  );
64
62
  },