@wordpress/edit-site 4.16.0 → 4.17.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 (231) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/block-editor/block-inspector-button.js +1 -1
  3. package/build/components/block-editor/block-inspector-button.js.map +1 -1
  4. package/build/components/block-editor/index.js +17 -11
  5. package/build/components/block-editor/index.js.map +1 -1
  6. package/build/components/editor/index.js +5 -7
  7. package/build/components/editor/index.js.map +1 -1
  8. package/build/components/global-styles/preview.js +84 -49
  9. package/build/components/global-styles/preview.js.map +1 -1
  10. package/build/components/global-styles/screen-style-variations.js +35 -4
  11. package/build/components/global-styles/screen-style-variations.js.map +1 -1
  12. package/build/components/global-styles/typography-panel.js +15 -2
  13. package/build/components/global-styles/typography-panel.js.map +1 -1
  14. package/build/components/global-styles/typography-utils.js +39 -176
  15. package/build/components/global-styles/typography-utils.js.map +1 -1
  16. package/build/components/global-styles/use-global-styles-output.js +27 -9
  17. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  18. package/build/components/{header → header-edit-mode}/document-actions/index.js +58 -24
  19. package/build/components/header-edit-mode/document-actions/index.js.map +1 -0
  20. package/build/components/{header → header-edit-mode}/index.js +13 -49
  21. package/build/components/header-edit-mode/index.js.map +1 -0
  22. package/build/components/{header → header-edit-mode}/mode-switcher/index.js +0 -0
  23. package/build/components/header-edit-mode/mode-switcher/index.js.map +1 -0
  24. package/build/components/{header → header-edit-mode}/more-menu/copy-content-menu-item.js +0 -0
  25. package/build/components/header-edit-mode/more-menu/copy-content-menu-item.js.map +1 -0
  26. package/build/components/{header → header-edit-mode}/more-menu/index.js +0 -0
  27. package/build/components/header-edit-mode/more-menu/index.js.map +1 -0
  28. package/build/components/{header → header-edit-mode}/more-menu/site-export.js +0 -0
  29. package/build/components/header-edit-mode/more-menu/site-export.js.map +1 -0
  30. package/build/components/{header → header-edit-mode}/more-menu/welcome-guide-menu-item.js +0 -0
  31. package/build/components/header-edit-mode/more-menu/welcome-guide-menu-item.js.map +1 -0
  32. package/build/components/{header → header-edit-mode}/plugin-more-menu-item/index.js +0 -0
  33. package/build/components/header-edit-mode/plugin-more-menu-item/index.js.map +1 -0
  34. package/build/components/{header → header-edit-mode}/plugin-sidebar-more-menu-item/index.js +0 -0
  35. package/build/components/header-edit-mode/plugin-sidebar-more-menu-item/index.js.map +1 -0
  36. package/build/components/{header → header-edit-mode}/tools-more-menu-group/index.js +0 -0
  37. package/build/components/header-edit-mode/tools-more-menu-group/index.js.map +1 -0
  38. package/build/components/{header → header-edit-mode}/undo-redo/redo.js +0 -0
  39. package/build/components/header-edit-mode/undo-redo/redo.js.map +1 -0
  40. package/build/components/{header → header-edit-mode}/undo-redo/undo.js +0 -0
  41. package/build/components/header-edit-mode/undo-redo/undo.js.map +1 -0
  42. package/build/components/keyboard-shortcuts/index.js +1 -1
  43. package/build/components/keyboard-shortcuts/index.js.map +1 -1
  44. package/build/components/{sidebar → sidebar-edit-mode}/constants.js +0 -0
  45. package/build/components/sidebar-edit-mode/constants.js.map +1 -0
  46. package/build/components/{sidebar → sidebar-edit-mode}/default-sidebar.js +0 -0
  47. package/build/components/sidebar-edit-mode/default-sidebar.js.map +1 -0
  48. package/build/components/{sidebar → sidebar-edit-mode}/global-styles-sidebar.js +0 -0
  49. package/build/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -0
  50. package/build/components/{sidebar → sidebar-edit-mode}/index.js +1 -1
  51. package/build/components/sidebar-edit-mode/index.js.map +1 -0
  52. package/build/components/{sidebar → sidebar-edit-mode}/navigation-menu-sidebar/index.js +0 -0
  53. package/build/components/sidebar-edit-mode/navigation-menu-sidebar/index.js.map +1 -0
  54. package/build/components/{sidebar → sidebar-edit-mode}/navigation-menu-sidebar/navigation-inspector.js +0 -0
  55. package/build/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-inspector.js.map +1 -0
  56. package/build/components/{sidebar → sidebar-edit-mode}/navigation-menu-sidebar/navigation-menu.js +0 -0
  57. package/build/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-menu.js.map +1 -0
  58. package/build/components/{sidebar → sidebar-edit-mode}/plugin-sidebar/index.js +1 -1
  59. package/build/components/sidebar-edit-mode/plugin-sidebar/index.js.map +1 -0
  60. package/build/components/{sidebar → sidebar-edit-mode}/settings-header/index.js +2 -2
  61. package/build/components/sidebar-edit-mode/settings-header/index.js.map +1 -0
  62. package/build/components/{sidebar → sidebar-edit-mode}/template-card/index.js +0 -0
  63. package/build/components/sidebar-edit-mode/template-card/index.js.map +1 -0
  64. package/build/components/{sidebar → sidebar-edit-mode}/template-card/template-actions.js +0 -0
  65. package/build/components/sidebar-edit-mode/template-card/template-actions.js.map +1 -0
  66. package/build/components/{sidebar → sidebar-edit-mode}/template-card/template-areas.js +0 -0
  67. package/build/components/sidebar-edit-mode/template-card/template-areas.js.map +1 -0
  68. package/build/index.js +3 -3
  69. package/build/index.js.map +1 -1
  70. package/build-module/components/block-editor/block-inspector-button.js +1 -1
  71. package/build-module/components/block-editor/block-inspector-button.js.map +1 -1
  72. package/build-module/components/block-editor/index.js +16 -10
  73. package/build-module/components/block-editor/index.js.map +1 -1
  74. package/build-module/components/editor/index.js +4 -6
  75. package/build-module/components/editor/index.js.map +1 -1
  76. package/build-module/components/global-styles/preview.js +84 -49
  77. package/build-module/components/global-styles/preview.js.map +1 -1
  78. package/build-module/components/global-styles/screen-style-variations.js +36 -6
  79. package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
  80. package/build-module/components/global-styles/typography-panel.js +14 -2
  81. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  82. package/build-module/components/global-styles/typography-utils.js +37 -169
  83. package/build-module/components/global-styles/typography-utils.js.map +1 -1
  84. package/build-module/components/global-styles/use-global-styles-output.js +26 -9
  85. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  86. package/build-module/components/{header → header-edit-mode}/document-actions/index.js +53 -24
  87. package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -0
  88. package/build-module/components/{header → header-edit-mode}/index.js +13 -46
  89. package/build-module/components/header-edit-mode/index.js.map +1 -0
  90. package/build-module/components/{header → header-edit-mode}/mode-switcher/index.js +0 -0
  91. package/build-module/components/header-edit-mode/mode-switcher/index.js.map +1 -0
  92. package/build-module/components/{header → header-edit-mode}/more-menu/copy-content-menu-item.js +0 -0
  93. package/build-module/components/header-edit-mode/more-menu/copy-content-menu-item.js.map +1 -0
  94. package/build-module/components/{header → header-edit-mode}/more-menu/index.js +0 -0
  95. package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -0
  96. package/build-module/components/{header → header-edit-mode}/more-menu/site-export.js +0 -0
  97. package/build-module/components/header-edit-mode/more-menu/site-export.js.map +1 -0
  98. package/build-module/components/{header → header-edit-mode}/more-menu/welcome-guide-menu-item.js +0 -0
  99. package/build-module/components/header-edit-mode/more-menu/welcome-guide-menu-item.js.map +1 -0
  100. package/build-module/components/{header → header-edit-mode}/plugin-more-menu-item/index.js +0 -0
  101. package/build-module/components/header-edit-mode/plugin-more-menu-item/index.js.map +1 -0
  102. package/build-module/components/{header → header-edit-mode}/plugin-sidebar-more-menu-item/index.js +0 -0
  103. package/build-module/components/header-edit-mode/plugin-sidebar-more-menu-item/index.js.map +1 -0
  104. package/build-module/components/{header → header-edit-mode}/tools-more-menu-group/index.js +0 -0
  105. package/build-module/components/header-edit-mode/tools-more-menu-group/index.js.map +1 -0
  106. package/build-module/components/{header → header-edit-mode}/undo-redo/redo.js +0 -0
  107. package/build-module/components/header-edit-mode/undo-redo/redo.js.map +1 -0
  108. package/build-module/components/{header → header-edit-mode}/undo-redo/undo.js +0 -0
  109. package/build-module/components/header-edit-mode/undo-redo/undo.js.map +1 -0
  110. package/build-module/components/keyboard-shortcuts/index.js +1 -1
  111. package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
  112. package/build-module/components/{sidebar → sidebar-edit-mode}/constants.js +0 -0
  113. package/build-module/components/sidebar-edit-mode/constants.js.map +1 -0
  114. package/build-module/components/{sidebar → sidebar-edit-mode}/default-sidebar.js +0 -0
  115. package/build-module/components/sidebar-edit-mode/default-sidebar.js.map +1 -0
  116. package/build-module/components/{sidebar → sidebar-edit-mode}/global-styles-sidebar.js +0 -0
  117. package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -0
  118. package/build-module/components/{sidebar → sidebar-edit-mode}/index.js +1 -1
  119. package/build-module/components/sidebar-edit-mode/index.js.map +1 -0
  120. package/build-module/components/{sidebar → sidebar-edit-mode}/navigation-menu-sidebar/index.js +0 -0
  121. package/build-module/components/sidebar-edit-mode/navigation-menu-sidebar/index.js.map +1 -0
  122. package/build-module/components/{sidebar → sidebar-edit-mode}/navigation-menu-sidebar/navigation-inspector.js +0 -0
  123. package/build-module/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-inspector.js.map +1 -0
  124. package/build-module/components/{sidebar → sidebar-edit-mode}/navigation-menu-sidebar/navigation-menu.js +0 -0
  125. package/build-module/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-menu.js.map +1 -0
  126. package/build-module/components/{sidebar → sidebar-edit-mode}/plugin-sidebar/index.js +1 -1
  127. package/build-module/components/sidebar-edit-mode/plugin-sidebar/index.js.map +1 -0
  128. package/build-module/components/{sidebar → sidebar-edit-mode}/settings-header/index.js +2 -2
  129. package/build-module/components/sidebar-edit-mode/settings-header/index.js.map +1 -0
  130. package/build-module/components/{sidebar → sidebar-edit-mode}/template-card/index.js +0 -0
  131. package/build-module/components/sidebar-edit-mode/template-card/index.js.map +1 -0
  132. package/build-module/components/{sidebar → sidebar-edit-mode}/template-card/template-actions.js +0 -0
  133. package/build-module/components/sidebar-edit-mode/template-card/template-actions.js.map +1 -0
  134. package/build-module/components/{sidebar → sidebar-edit-mode}/template-card/template-areas.js +0 -0
  135. package/build-module/components/sidebar-edit-mode/template-card/template-areas.js.map +1 -0
  136. package/build-module/index.js +3 -3
  137. package/build-module/index.js.map +1 -1
  138. package/build-style/style-rtl.css +61 -86
  139. package/build-style/style.css +61 -86
  140. package/package.json +29 -29
  141. package/src/components/block-editor/block-inspector-button.js +1 -1
  142. package/src/components/block-editor/index.js +29 -11
  143. package/src/components/editor/index.js +2 -4
  144. package/src/components/global-styles/preview.js +80 -59
  145. package/src/components/global-styles/screen-style-variations.js +39 -4
  146. package/src/components/global-styles/test/typography-utils.js +333 -103
  147. package/src/components/global-styles/test/use-global-styles-output.js +57 -3
  148. package/src/components/global-styles/typography-panel.js +14 -1
  149. package/src/components/global-styles/typography-utils.js +34 -195
  150. package/src/components/global-styles/use-global-styles-output.js +16 -0
  151. package/src/components/{header → header-edit-mode}/document-actions/index.js +67 -46
  152. package/src/components/{header → header-edit-mode}/document-actions/style.scss +0 -0
  153. package/src/components/{header → header-edit-mode}/index.js +12 -44
  154. package/src/components/{header → header-edit-mode}/mode-switcher/index.js +0 -0
  155. package/src/components/{header → header-edit-mode}/more-menu/copy-content-menu-item.js +0 -0
  156. package/src/components/{header → header-edit-mode}/more-menu/index.js +0 -0
  157. package/src/components/{header → header-edit-mode}/more-menu/site-export.js +0 -0
  158. package/src/components/{header → header-edit-mode}/more-menu/welcome-guide-menu-item.js +0 -0
  159. package/src/components/{header → header-edit-mode}/plugin-more-menu-item/index.js +0 -0
  160. package/src/components/{header → header-edit-mode}/plugin-sidebar-more-menu-item/index.js +0 -0
  161. package/src/components/{header → header-edit-mode}/style.scss +20 -50
  162. package/src/components/{header → header-edit-mode}/tools-more-menu-group/index.js +0 -0
  163. package/src/components/{header → header-edit-mode}/undo-redo/redo.js +0 -0
  164. package/src/components/{header → header-edit-mode}/undo-redo/undo.js +0 -0
  165. package/src/components/keyboard-shortcuts/index.js +1 -1
  166. package/src/components/{sidebar → sidebar-edit-mode}/constants.js +0 -0
  167. package/src/components/{sidebar → sidebar-edit-mode}/default-sidebar.js +0 -0
  168. package/src/components/{sidebar → sidebar-edit-mode}/global-styles-sidebar.js +0 -0
  169. package/src/components/{sidebar → sidebar-edit-mode}/index.js +1 -1
  170. package/src/components/{sidebar → sidebar-edit-mode}/navigation-menu-sidebar/index.js +0 -0
  171. package/src/components/{sidebar → sidebar-edit-mode}/navigation-menu-sidebar/navigation-inspector.js +0 -0
  172. package/src/components/{sidebar → sidebar-edit-mode}/navigation-menu-sidebar/navigation-menu.js +0 -0
  173. package/src/components/{sidebar → sidebar-edit-mode}/navigation-menu-sidebar/style.scss +0 -0
  174. package/src/components/{sidebar → sidebar-edit-mode}/plugin-sidebar/index.js +1 -1
  175. package/src/components/{sidebar → sidebar-edit-mode}/settings-header/index.js +2 -2
  176. package/src/components/{sidebar → sidebar-edit-mode}/settings-header/style.scss +2 -2
  177. package/src/components/{sidebar → sidebar-edit-mode}/style.scss +1 -1
  178. package/src/components/{sidebar → sidebar-edit-mode}/template-card/index.js +0 -0
  179. package/src/components/{sidebar → sidebar-edit-mode}/template-card/style.scss +0 -0
  180. package/src/components/{sidebar → sidebar-edit-mode}/template-card/template-actions.js +0 -0
  181. package/src/components/{sidebar → sidebar-edit-mode}/template-card/template-areas.js +0 -0
  182. package/src/index.js +3 -3
  183. package/src/style.scss +6 -6
  184. package/build/components/header/document-actions/index.js.map +0 -1
  185. package/build/components/header/index.js.map +0 -1
  186. package/build/components/header/mode-switcher/index.js.map +0 -1
  187. package/build/components/header/more-menu/copy-content-menu-item.js.map +0 -1
  188. package/build/components/header/more-menu/index.js.map +0 -1
  189. package/build/components/header/more-menu/site-export.js.map +0 -1
  190. package/build/components/header/more-menu/welcome-guide-menu-item.js.map +0 -1
  191. package/build/components/header/plugin-more-menu-item/index.js.map +0 -1
  192. package/build/components/header/plugin-sidebar-more-menu-item/index.js.map +0 -1
  193. package/build/components/header/tools-more-menu-group/index.js.map +0 -1
  194. package/build/components/header/undo-redo/redo.js.map +0 -1
  195. package/build/components/header/undo-redo/undo.js.map +0 -1
  196. package/build/components/sidebar/constants.js.map +0 -1
  197. package/build/components/sidebar/default-sidebar.js.map +0 -1
  198. package/build/components/sidebar/global-styles-sidebar.js.map +0 -1
  199. package/build/components/sidebar/index.js.map +0 -1
  200. package/build/components/sidebar/navigation-menu-sidebar/index.js.map +0 -1
  201. package/build/components/sidebar/navigation-menu-sidebar/navigation-inspector.js.map +0 -1
  202. package/build/components/sidebar/navigation-menu-sidebar/navigation-menu.js.map +0 -1
  203. package/build/components/sidebar/plugin-sidebar/index.js.map +0 -1
  204. package/build/components/sidebar/settings-header/index.js.map +0 -1
  205. package/build/components/sidebar/template-card/index.js.map +0 -1
  206. package/build/components/sidebar/template-card/template-actions.js.map +0 -1
  207. package/build/components/sidebar/template-card/template-areas.js.map +0 -1
  208. package/build-module/components/header/document-actions/index.js.map +0 -1
  209. package/build-module/components/header/index.js.map +0 -1
  210. package/build-module/components/header/mode-switcher/index.js.map +0 -1
  211. package/build-module/components/header/more-menu/copy-content-menu-item.js.map +0 -1
  212. package/build-module/components/header/more-menu/index.js.map +0 -1
  213. package/build-module/components/header/more-menu/site-export.js.map +0 -1
  214. package/build-module/components/header/more-menu/welcome-guide-menu-item.js.map +0 -1
  215. package/build-module/components/header/plugin-more-menu-item/index.js.map +0 -1
  216. package/build-module/components/header/plugin-sidebar-more-menu-item/index.js.map +0 -1
  217. package/build-module/components/header/tools-more-menu-group/index.js.map +0 -1
  218. package/build-module/components/header/undo-redo/redo.js.map +0 -1
  219. package/build-module/components/header/undo-redo/undo.js.map +0 -1
  220. package/build-module/components/sidebar/constants.js.map +0 -1
  221. package/build-module/components/sidebar/default-sidebar.js.map +0 -1
  222. package/build-module/components/sidebar/global-styles-sidebar.js.map +0 -1
  223. package/build-module/components/sidebar/index.js.map +0 -1
  224. package/build-module/components/sidebar/navigation-menu-sidebar/index.js.map +0 -1
  225. package/build-module/components/sidebar/navigation-menu-sidebar/navigation-inspector.js.map +0 -1
  226. package/build-module/components/sidebar/navigation-menu-sidebar/navigation-menu.js.map +0 -1
  227. package/build-module/components/sidebar/plugin-sidebar/index.js.map +0 -1
  228. package/build-module/components/sidebar/settings-header/index.js.map +0 -1
  229. package/build-module/components/sidebar/template-card/index.js.map +0 -1
  230. package/build-module/components/sidebar/template-card/template-actions.js.map +0 -1
  231. package/build-module/components/sidebar/template-card/template-areas.js.map +0 -1
@@ -5,122 +5,352 @@ import { getTypographyFontSizeValue } from '../typography-utils';
5
5
 
6
6
  describe( 'typography utils', () => {
7
7
  describe( 'getTypographyFontSizeValue', () => {
8
- it( 'should return the expected values', () => {
9
- [
10
- // Default return non-fluid value.
11
- {
12
- preset: {
13
- size: '28px',
14
- },
15
- typographySettings: undefined,
16
- expected: '28px',
17
- },
18
- // Should return non-fluid value when fluid is `false`.
19
- {
20
- preset: {
21
- size: '28px',
22
- fluid: false,
23
- },
24
- typographySettings: {
25
- fluid: true,
26
- },
27
- expected: '28px',
8
+ [
9
+ {
10
+ message: 'Default return non-fluid value.',
11
+ preset: {
12
+ size: '28px',
28
13
  },
29
- // Should return fluid value.
30
- {
31
- preset: {
32
- size: '1.75rem',
33
- },
34
- typographySettings: {
35
- fluid: true,
36
- },
37
- expected:
38
- 'clamp(1.3125rem, 1.3125rem + ((1vw - 0.48rem) * 2.524), 2.625rem)',
39
- },
40
- // Should return default fluid values with empty fluid array.
41
- {
42
- preset: {
43
- size: '28px',
44
- fluid: [],
45
- },
46
- typographySettings: {
47
- fluid: true,
48
- },
49
- expected:
50
- 'clamp(21px, 1.3125rem + ((1vw - 7.68px) * 2.524), 42px)',
14
+ typographySettings: undefined,
15
+ expected: '28px',
16
+ },
17
+
18
+ {
19
+ message: 'Default return value where font size is 0.',
20
+ preset: {
21
+ size: 0,
51
22
  },
23
+ typographySettings: undefined,
24
+ expected: 0,
25
+ },
52
26
 
53
- // Should return default fluid values with null values.
54
- {
55
- preset: {
56
- size: '28px',
57
- fluid: null,
58
- },
59
- typographySettings: {
60
- fluid: true,
27
+ {
28
+ message: "Default return value where font size is '0'.",
29
+ preset: {
30
+ size: '0',
31
+ },
32
+ typographySettings: undefined,
33
+ expected: '0',
34
+ },
35
+
36
+ {
37
+ message:
38
+ 'Default return non-fluid value where `size` is undefined.',
39
+ preset: {
40
+ size: undefined,
41
+ },
42
+ typographySettings: undefined,
43
+ expected: undefined,
44
+ },
45
+
46
+ {
47
+ message: 'return non-fluid value when fluid is `false`.',
48
+ preset: {
49
+ size: '28px',
50
+ fluid: false,
51
+ },
52
+ typographySettings: {
53
+ fluid: true,
54
+ },
55
+ expected: '28px',
56
+ },
57
+
58
+ {
59
+ message:
60
+ 'Should coerce integer to `px` and return fluid value.',
61
+ preset: {
62
+ size: 33,
63
+ fluid: true,
64
+ },
65
+ typographySettings: {
66
+ fluid: true,
67
+ },
68
+ expected:
69
+ 'clamp(24.75px, 1.547rem + ((1vw - 7.68px) * 2.975), 49.5px)',
70
+ },
71
+
72
+ {
73
+ message: 'coerce float to `px` and return fluid value.',
74
+ preset: {
75
+ size: 100.23,
76
+ fluid: true,
77
+ },
78
+ typographySettings: {
79
+ fluid: true,
80
+ },
81
+ expected:
82
+ 'clamp(75.173px, 4.698rem + ((1vw - 7.68px) * 9.035), 150.345px)',
83
+ },
84
+
85
+ {
86
+ message: 'return incoming value when already clamped.',
87
+ preset: {
88
+ size: 'clamp(21px, 1.313rem + ((1vw - 7.68px) * 2.524), 42px)',
89
+ fluid: false,
90
+ },
91
+ typographySettings: {
92
+ fluid: true,
93
+ },
94
+ expected:
95
+ 'clamp(21px, 1.313rem + ((1vw - 7.68px) * 2.524), 42px)',
96
+ },
97
+
98
+ {
99
+ message: 'return incoming value with unsupported unit.',
100
+ preset: {
101
+ size: '1000%',
102
+ fluid: false,
103
+ },
104
+ typographySettings: {
105
+ fluid: true,
106
+ },
107
+ expected: '1000%',
108
+ },
109
+
110
+ {
111
+ message: 'return fluid value.',
112
+ preset: {
113
+ size: '1.75rem',
114
+ },
115
+ typographySettings: {
116
+ fluid: true,
117
+ },
118
+ expected:
119
+ 'clamp(1.313rem, 1.313rem + ((1vw - 0.48rem) * 2.523), 2.625rem)',
120
+ },
121
+
122
+ {
123
+ message: 'return fluid value for floats with units.',
124
+ preset: {
125
+ size: '100.175px',
126
+ },
127
+ typographySettings: {
128
+ fluid: true,
129
+ },
130
+ expected:
131
+ 'clamp(75.131px, 4.696rem + ((1vw - 7.68px) * 9.03), 150.263px)',
132
+ },
133
+
134
+ {
135
+ message:
136
+ 'Should return default fluid values with empty fluid array.',
137
+ preset: {
138
+ size: '28px',
139
+ fluid: [],
140
+ },
141
+ typographySettings: {
142
+ fluid: true,
143
+ },
144
+ expected:
145
+ 'clamp(21px, 1.313rem + ((1vw - 7.68px) * 2.524), 42px)',
146
+ },
147
+
148
+ {
149
+ message: 'return default fluid values with null value.',
150
+ preset: {
151
+ size: '28px',
152
+ fluid: null,
153
+ },
154
+ typographySettings: {
155
+ fluid: true,
156
+ },
157
+ expected:
158
+ 'clamp(21px, 1.313rem + ((1vw - 7.68px) * 2.524), 42px)',
159
+ },
160
+
161
+ {
162
+ message:
163
+ 'return clamped value if min font size is greater than max.',
164
+ preset: {
165
+ size: '3rem',
166
+ fluid: {
167
+ min: '5rem',
168
+ max: '32px',
61
169
  },
62
- expected:
63
- 'clamp(21px, 1.3125rem + ((1vw - 7.68px) * 2.524), 42px)',
64
- },
65
-
66
- // Should return size with invalid fluid units.
67
- {
68
- preset: {
69
- size: '10em',
70
- fluid: {
71
- min: '20vw',
72
- max: '50%',
73
- },
170
+ },
171
+ typographySettings: {
172
+ fluid: true,
173
+ },
174
+ expected:
175
+ 'clamp(5rem, 5rem + ((1vw - 0.48rem) * -5.769), 32px)',
176
+ },
177
+
178
+ {
179
+ message: 'return size with invalid fluid units.',
180
+ preset: {
181
+ size: '10em',
182
+ fluid: {
183
+ min: '20vw',
184
+ max: '50%',
74
185
  },
75
- typographySettings: {
76
- fluid: true,
186
+ },
187
+ typographySettings: {
188
+ fluid: true,
189
+ },
190
+ expected: '10em',
191
+ },
192
+
193
+ {
194
+ message:
195
+ 'return clamped using font size where no min is given and size is less than default min size.',
196
+ preset: {
197
+ size: '3px',
198
+ },
199
+ typographySettings: {
200
+ fluid: true,
201
+ },
202
+ expected:
203
+ 'clamp(3px, 0.188rem + ((1vw - 7.68px) * 0.18), 4.5px)',
204
+ },
205
+
206
+ {
207
+ message:
208
+ 'return fluid clamp value with different min max units.',
209
+ preset: {
210
+ size: '28px',
211
+ fluid: {
212
+ min: '20px',
213
+ max: '50rem',
77
214
  },
78
- expected: '10em',
79
- },
80
- // Should return fluid clamp value.
81
- {
82
- preset: {
83
- size: '28px',
84
- fluid: {
85
- min: '20px',
86
- max: '50rem',
87
- },
215
+ },
216
+ typographySettings: {
217
+ fluid: true,
218
+ },
219
+ expected:
220
+ 'clamp(20px, 1.25rem + ((1vw - 7.68px) * 93.75), 50rem)',
221
+ },
222
+ //
223
+ {
224
+ message:
225
+ ' Should return clamp value with default fluid max value.',
226
+ preset: {
227
+ size: '28px',
228
+ fluid: {
229
+ min: '2.6rem',
88
230
  },
89
- typographySettings: {
90
- fluid: true,
231
+ },
232
+ typographySettings: {
233
+ fluid: true,
234
+ },
235
+ expected:
236
+ 'clamp(2.6rem, 2.6rem + ((1vw - 0.48rem) * 0.048), 42px)',
237
+ },
238
+
239
+ {
240
+ message:
241
+ 'Should return clamp value with default fluid min value.',
242
+ preset: {
243
+ size: '28px',
244
+ fluid: {
245
+ max: '80px',
91
246
  },
92
- expected:
93
- 'clamp(20px, 1.25rem + ((1vw - 7.68px) * 93.75), 50rem)',
94
- },
95
- // Should return clamp value with default fluid max value.
96
- {
97
- preset: {
98
- size: '28px',
99
- fluid: {
100
- min: '2.6rem',
101
- },
247
+ },
248
+ typographySettings: {
249
+ fluid: true,
250
+ },
251
+ expected:
252
+ 'clamp(21px, 1.313rem + ((1vw - 7.68px) * 7.091), 80px)',
253
+ },
254
+
255
+ {
256
+ message: 'adjust computed min in px to min limit.',
257
+ preset: {
258
+ size: '14px',
259
+ },
260
+ typographySettings: {
261
+ fluid: true,
262
+ },
263
+ expected:
264
+ 'clamp(14px, 0.875rem + ((1vw - 7.68px) * 0.841), 21px)',
265
+ },
266
+
267
+ {
268
+ message: 'adjust computed min in rem to min limit.',
269
+ preset: {
270
+ size: '1.1rem',
271
+ },
272
+ typographySettings: {
273
+ fluid: true,
274
+ },
275
+ expected:
276
+ 'clamp(0.875rem, 0.875rem + ((1vw - 0.48rem) * 1.49), 1.65rem)',
277
+ },
278
+
279
+ {
280
+ message: 'adjust computed min in em to min limit.',
281
+ preset: {
282
+ size: '1.1em',
283
+ },
284
+ typographySettings: {
285
+ fluid: true,
286
+ },
287
+ expected:
288
+ 'clamp(0.875em, 0.875rem + ((1vw - 0.48em) * 1.49), 1.65em)',
289
+ },
290
+
291
+ {
292
+ message: 'adjust fluid min value in px to min limit',
293
+ preset: {
294
+ size: '20px',
295
+ fluid: {
296
+ min: '12px',
102
297
  },
103
- typographySettings: {
104
- fluid: true,
298
+ },
299
+ typographySettings: {
300
+ fluid: true,
301
+ },
302
+ expected:
303
+ 'clamp(14px, 0.875rem + ((1vw - 7.68px) * 1.923), 30px)',
304
+ },
305
+
306
+ {
307
+ message: 'adjust fluid min value in rem to min limit.',
308
+ preset: {
309
+ size: '1.5rem',
310
+ fluid: {
311
+ min: '0.5rem',
105
312
  },
106
- expected:
107
- 'clamp(2.6rem, 2.6rem + ((1vw - 0.48rem) * 0.048), 42px)',
108
- },
109
- // Should return clamp value with default fluid min value.
110
- {
111
- preset: {
112
- size: '28px',
113
- fluid: {
114
- max: '80px',
115
- },
313
+ },
314
+ typographySettings: {
315
+ fluid: true,
316
+ },
317
+ expected:
318
+ 'clamp(0.875rem, 0.875rem + ((1vw - 0.48rem) * 2.644), 2.25rem)',
319
+ },
320
+
321
+ {
322
+ message: 'adjust fluid min value but honor max value.',
323
+ preset: {
324
+ size: '1.5rem',
325
+ fluid: {
326
+ min: '0.5rem',
327
+ max: '5rem',
116
328
  },
117
- typographySettings: {
118
- fluid: true,
329
+ },
330
+ typographySettings: {
331
+ fluid: true,
332
+ },
333
+ expected:
334
+ 'clamp(0.875rem, 0.875rem + ((1vw - 0.48rem) * 7.933), 5rem)',
335
+ },
336
+
337
+ {
338
+ message:
339
+ 'return a fluid font size a min and max font sizes are equal.',
340
+ preset: {
341
+ size: '4rem',
342
+ fluid: {
343
+ min: '30px',
344
+ max: '30px',
119
345
  },
120
- expected:
121
- 'clamp(21px, 1.3125rem + ((1vw - 7.68px) * 7.091), 80px)',
122
346
  },
123
- ].forEach( ( { preset, typographySettings, expected } ) => {
347
+ typographySettings: {
348
+ fluid: true,
349
+ },
350
+ expected: 'clamp(30px, 1.875rem + ((1vw - 7.68px) * 1), 30px)',
351
+ },
352
+ ].forEach( ( { message, preset, typographySettings, expected } ) => {
353
+ it( `should ${ message }`, () => {
124
354
  expect(
125
355
  getTypographyFontSizeValue( preset, typographySettings )
126
356
  ).toBe( expected );
@@ -711,10 +711,11 @@ describe( 'global styles renderer', () => {
711
711
  },
712
712
  typography: {
713
713
  fontFamily: 'sans-serif',
714
+ fontSize: '14px',
714
715
  },
715
716
  };
716
717
 
717
- it( 'Should output padding variables and other properties if useRootPaddingAwareAlignments is enabled', () => {
718
+ it( 'should output padding variables and other properties if useRootPaddingAwareAlignments is enabled', () => {
718
719
  expect(
719
720
  getStylesDeclarations( blockStyles, 'body', true )
720
721
  ).toEqual( [
@@ -724,10 +725,11 @@ describe( 'global styles renderer', () => {
724
725
  '--wp--style--root--padding-left: 33px',
725
726
  'background-color: var(--wp--preset--color--light-green-cyan)',
726
727
  'font-family: sans-serif',
728
+ 'font-size: 14px',
727
729
  ] );
728
730
  } );
729
731
 
730
- it( 'Should output padding and other properties if useRootPaddingAwareAlignments is disabled', () => {
732
+ it( 'should output padding and other properties if useRootPaddingAwareAlignments is disabled', () => {
731
733
  expect(
732
734
  getStylesDeclarations( blockStyles, 'body', false )
733
735
  ).toEqual( [
@@ -737,10 +739,11 @@ describe( 'global styles renderer', () => {
737
739
  'padding-bottom: 33px',
738
740
  'padding-left: 33px',
739
741
  'font-family: sans-serif',
742
+ 'font-size: 14px',
740
743
  ] );
741
744
  } );
742
745
 
743
- it( 'Should not output padding variables if selector is not root', () => {
746
+ it( 'should not output padding variables if selector is not root', () => {
744
747
  expect(
745
748
  getStylesDeclarations(
746
749
  blockStyles,
@@ -754,6 +757,57 @@ describe( 'global styles renderer', () => {
754
757
  'padding-bottom: 33px',
755
758
  'padding-left: 33px',
756
759
  'font-family: sans-serif',
760
+ 'font-size: 14px',
761
+ ] );
762
+ } );
763
+
764
+ it( 'should output clamp values for font-size when fluid typography is enabled', () => {
765
+ expect(
766
+ getStylesDeclarations(
767
+ blockStyles,
768
+ '.wp-block-site-title',
769
+ true,
770
+ {
771
+ settings: {
772
+ typography: {
773
+ fluid: true,
774
+ },
775
+ },
776
+ }
777
+ )
778
+ ).toEqual( [
779
+ 'background-color: var(--wp--preset--color--light-green-cyan)',
780
+ 'padding-top: 33px',
781
+ 'padding-right: 33px',
782
+ 'padding-bottom: 33px',
783
+ 'padding-left: 33px',
784
+ 'font-family: sans-serif',
785
+ 'font-size: clamp(14px, 0.875rem + ((1vw - 7.68px) * 0.841), 21px)',
786
+ ] );
787
+ } );
788
+
789
+ it( 'should output direct values for font-size when fluid typography is disabled', () => {
790
+ expect(
791
+ getStylesDeclarations(
792
+ blockStyles,
793
+ '.wp-block-site-title',
794
+ true,
795
+ {
796
+ settings: {
797
+ typography: {
798
+ fluid: false,
799
+ },
800
+ },
801
+ }
802
+ )
803
+ ).toEqual( [
804
+ 'background-color: var(--wp--preset--color--light-green-cyan)',
805
+ 'padding-top: 33px',
806
+ 'padding-right: 33px',
807
+ 'padding-bottom: 33px',
808
+ 'padding-left: 33px',
809
+ 'font-family: sans-serif',
810
+ 'font-size: 14px',
757
811
  ] );
758
812
  } );
759
813
  } );
@@ -19,6 +19,7 @@ import { __ } from '@wordpress/i18n';
19
19
  * Internal dependencies
20
20
  */
21
21
  import { getSupportedGlobalStylesPanels, useSetting, useStyle } from './hooks';
22
+ import { getTypographyFontSizeValue } from './typography-utils';
22
23
 
23
24
  export function useHasTypographyPanel( name ) {
24
25
  const hasFontFamily = useHasFontFamilyControl( name );
@@ -151,7 +152,19 @@ export default function TypographyPanel( { name, element, headingLevel } ) {
151
152
  } else if ( element && element !== 'text' ) {
152
153
  prefix = `elements.${ element }.`;
153
154
  }
155
+ const [ fluidTypography ] = useSetting( 'typography.fluid', name );
154
156
  const [ fontSizes ] = useSetting( 'typography.fontSizes', name );
157
+
158
+ // Convert static font size values to fluid font sizes if fluidTypography is activated.
159
+ const fontSizesWithFluidValues = fontSizes.map( ( font ) => {
160
+ if ( !! fluidTypography ) {
161
+ font.size = getTypographyFontSizeValue( font, {
162
+ fluid: fluidTypography,
163
+ } );
164
+ }
165
+ return font;
166
+ } );
167
+
155
168
  const disableCustomFontSizes = ! useSetting(
156
169
  'typography.customFontSize',
157
170
  name
@@ -240,7 +253,7 @@ export default function TypographyPanel( { name, element, headingLevel } ) {
240
253
  <FontSizePicker
241
254
  value={ fontSize }
242
255
  onChange={ setFontSize }
243
- fontSizes={ fontSizes }
256
+ fontSizes={ fontSizesWithFluidValues }
244
257
  disableCustomFontSizes={ disableCustomFontSizes }
245
258
  withReset={ false }
246
259
  size="__unstable-large"