@wordpress/block-editor 15.6.1 → 15.7.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 (158) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/background-image-control/index.js +2 -2
  3. package/build/components/background-image-control/index.js.map +2 -2
  4. package/build/components/block-quick-navigation/index.js +1 -0
  5. package/build/components/block-quick-navigation/index.js.map +2 -2
  6. package/build/components/block-toolbar/switch-section-style.js +2 -5
  7. package/build/components/block-toolbar/switch-section-style.js.map +2 -2
  8. package/build/components/global-styles/border-panel.js +2 -1
  9. package/build/components/global-styles/border-panel.js.map +2 -2
  10. package/build/components/global-styles/color-panel.js +2 -1
  11. package/build/components/global-styles/color-panel.js.map +2 -2
  12. package/build/components/global-styles/dimensions-panel.js +3 -2
  13. package/build/components/global-styles/dimensions-panel.js.map +2 -2
  14. package/build/components/global-styles/filters-panel.js +2 -1
  15. package/build/components/global-styles/filters-panel.js.map +2 -2
  16. package/build/components/global-styles/hooks.js +0 -179
  17. package/build/components/global-styles/hooks.js.map +3 -3
  18. package/build/components/global-styles/index.js +0 -29
  19. package/build/components/global-styles/index.js.map +2 -2
  20. package/build/components/global-styles/typography-panel.js +2 -1
  21. package/build/components/global-styles/typography-panel.js.map +2 -2
  22. package/build/components/global-styles/typography-utils.js +2 -49
  23. package/build/components/global-styles/typography-utils.js.map +2 -2
  24. package/build/components/global-styles/utils.js +0 -396
  25. package/build/components/global-styles/utils.js.map +3 -3
  26. package/build/components/inserter/media-tab/media-tab.js +33 -1
  27. package/build/components/inserter/media-tab/media-tab.js.map +3 -3
  28. package/build/components/inserter/tips.js +0 -2
  29. package/build/components/inserter/tips.js.map +2 -2
  30. package/build/components/media-placeholder/index.js +31 -1
  31. package/build/components/media-placeholder/index.js.map +3 -3
  32. package/build/components/media-replace-flow/index.js +29 -1
  33. package/build/components/media-replace-flow/index.js.map +3 -3
  34. package/build/components/{global-styles/context.js → media-upload-modal/index.js} +8 -23
  35. package/build/components/media-upload-modal/index.js.map +7 -0
  36. package/build/hooks/allowed-blocks.js +3 -8
  37. package/build/hooks/allowed-blocks.js.map +3 -3
  38. package/build/hooks/block-style-variation.js +10 -23
  39. package/build/hooks/block-style-variation.js.map +2 -2
  40. package/build/hooks/duotone.js +3 -3
  41. package/build/hooks/duotone.js.map +2 -2
  42. package/build/hooks/fit-text.js +2 -2
  43. package/build/hooks/fit-text.js.map +2 -2
  44. package/build/hooks/font-size.js +2 -2
  45. package/build/hooks/font-size.js.map +2 -2
  46. package/build/hooks/use-typography-props.js +2 -2
  47. package/build/hooks/use-typography-props.js.map +2 -2
  48. package/build/private-apis.js +3 -1
  49. package/build/private-apis.js.map +3 -3
  50. package/build-module/components/background-image-control/index.js +1 -1
  51. package/build-module/components/background-image-control/index.js.map +2 -2
  52. package/build-module/components/block-quick-navigation/index.js +1 -0
  53. package/build-module/components/block-quick-navigation/index.js.map +2 -2
  54. package/build-module/components/block-toolbar/switch-section-style.js +2 -5
  55. package/build-module/components/block-toolbar/switch-section-style.js.map +2 -2
  56. package/build-module/components/global-styles/border-panel.js +2 -1
  57. package/build-module/components/global-styles/border-panel.js.map +2 -2
  58. package/build-module/components/global-styles/color-panel.js +2 -1
  59. package/build-module/components/global-styles/color-panel.js.map +2 -2
  60. package/build-module/components/global-styles/dimensions-panel.js +2 -1
  61. package/build-module/components/global-styles/dimensions-panel.js.map +2 -2
  62. package/build-module/components/global-styles/filters-panel.js +2 -1
  63. package/build-module/components/global-styles/filters-panel.js.map +2 -2
  64. package/build-module/components/global-styles/hooks.js +1 -167
  65. package/build-module/components/global-styles/hooks.js.map +2 -2
  66. package/build-module/components/global-styles/index.js +1 -29
  67. package/build-module/components/global-styles/index.js.map +2 -2
  68. package/build-module/components/global-styles/typography-panel.js +2 -1
  69. package/build-module/components/global-styles/typography-panel.js.map +2 -2
  70. package/build-module/components/global-styles/typography-utils.js +1 -49
  71. package/build-module/components/global-styles/typography-utils.js.map +2 -2
  72. package/build-module/components/global-styles/utils.js +0 -372
  73. package/build-module/components/global-styles/utils.js.map +2 -2
  74. package/build-module/components/inserter/media-tab/media-tab.js +34 -2
  75. package/build-module/components/inserter/media-tab/media-tab.js.map +2 -2
  76. package/build-module/components/inserter/tips.js +0 -2
  77. package/build-module/components/inserter/tips.js.map +2 -2
  78. package/build-module/components/media-placeholder/index.js +31 -1
  79. package/build-module/components/media-placeholder/index.js.map +2 -2
  80. package/build-module/components/media-replace-flow/index.js +29 -1
  81. package/build-module/components/media-replace-flow/index.js.map +2 -2
  82. package/build-module/components/media-upload-modal/index.js +7 -0
  83. package/build-module/components/media-upload-modal/index.js.map +7 -0
  84. package/build-module/hooks/allowed-blocks.js +3 -8
  85. package/build-module/hooks/allowed-blocks.js.map +2 -2
  86. package/build-module/hooks/block-style-variation.js +8 -25
  87. package/build-module/hooks/block-style-variation.js.map +2 -2
  88. package/build-module/hooks/duotone.js +3 -3
  89. package/build-module/hooks/duotone.js.map +2 -2
  90. package/build-module/hooks/fit-text.js +2 -2
  91. package/build-module/hooks/fit-text.js.map +2 -2
  92. package/build-module/hooks/font-size.js +1 -1
  93. package/build-module/hooks/font-size.js.map +2 -2
  94. package/build-module/hooks/use-typography-props.js +1 -1
  95. package/build-module/hooks/use-typography-props.js.map +2 -2
  96. package/build-module/private-apis.js +3 -1
  97. package/build-module/private-apis.js.map +2 -2
  98. package/build-style/style-rtl.css +10 -6
  99. package/build-style/style.css +10 -6
  100. package/package.json +36 -35
  101. package/src/components/background-image-control/index.js +1 -1
  102. package/src/components/block-card/style.scss +1 -1
  103. package/src/components/block-navigation/style.scss +1 -1
  104. package/src/components/block-quick-navigation/index.js +1 -0
  105. package/src/components/block-quick-navigation/style.scss +5 -0
  106. package/src/components/block-switcher/style.scss +1 -1
  107. package/src/components/block-toolbar/switch-section-style.js +2 -5
  108. package/src/components/color-palette/test/__snapshots__/control.js.snap +1 -1
  109. package/src/components/global-styles/border-panel.js +2 -1
  110. package/src/components/global-styles/color-panel.js +2 -1
  111. package/src/components/global-styles/color-panel.native.js +1 -1
  112. package/src/components/global-styles/dimensions-panel.js +2 -1
  113. package/src/components/global-styles/filters-panel.js +2 -1
  114. package/src/components/global-styles/hooks.js +1 -200
  115. package/src/components/global-styles/index.js +1 -17
  116. package/src/components/global-styles/test/typography-utils.js +0 -806
  117. package/src/components/global-styles/typography-panel.js +2 -1
  118. package/src/components/global-styles/typography-utils.js +0 -133
  119. package/src/components/global-styles/utils.js +0 -568
  120. package/src/components/inserter/media-tab/media-tab.js +44 -2
  121. package/src/components/inserter/style.scss +2 -2
  122. package/src/components/inserter/tips.js +0 -2
  123. package/src/components/media-placeholder/index.js +41 -1
  124. package/src/components/media-replace-flow/index.js +39 -1
  125. package/src/components/media-upload-modal/index.js +18 -0
  126. package/src/components/multi-selection-inspector/style.scss +1 -1
  127. package/src/hooks/allowed-blocks.js +3 -11
  128. package/src/hooks/block-style-variation.js +8 -28
  129. package/src/hooks/duotone.js +3 -3
  130. package/src/hooks/fit-text.js +2 -2
  131. package/src/hooks/font-size.js +1 -1
  132. package/src/hooks/use-typography-props.js +1 -1
  133. package/src/private-apis.js +2 -0
  134. package/src/style.scss +1 -0
  135. package/tsconfig.json +2 -0
  136. package/build/components/global-styles/context.js.map +0 -7
  137. package/build/components/global-styles/get-block-css-selector.js +0 -78
  138. package/build/components/global-styles/get-block-css-selector.js.map +0 -7
  139. package/build/components/global-styles/get-global-styles-changes.js +0 -216
  140. package/build/components/global-styles/get-global-styles-changes.js.map +0 -7
  141. package/build/components/global-styles/use-global-styles-output.js +0 -998
  142. package/build/components/global-styles/use-global-styles-output.js.map +0 -7
  143. package/build-module/components/global-styles/context.js +0 -17
  144. package/build-module/components/global-styles/context.js.map +0 -7
  145. package/build-module/components/global-styles/get-block-css-selector.js +0 -54
  146. package/build-module/components/global-styles/get-block-css-selector.js.map +0 -7
  147. package/build-module/components/global-styles/get-global-styles-changes.js +0 -182
  148. package/build-module/components/global-styles/get-global-styles-changes.js.map +0 -7
  149. package/build-module/components/global-styles/use-global-styles-output.js +0 -979
  150. package/build-module/components/global-styles/use-global-styles-output.js.map +0 -7
  151. package/src/components/global-styles/README.md +0 -190
  152. package/src/components/global-styles/context.js +0 -16
  153. package/src/components/global-styles/get-block-css-selector.js +0 -114
  154. package/src/components/global-styles/get-global-styles-changes.js +0 -252
  155. package/src/components/global-styles/test/get-global-styles-changes.js +0 -290
  156. package/src/components/global-styles/test/use-global-styles-output.js +0 -1131
  157. package/src/components/global-styles/test/utils.js +0 -499
  158. package/src/components/global-styles/use-global-styles-output.js +0 -1487
@@ -9,6 +9,7 @@ import {
9
9
  } from '@wordpress/components';
10
10
  import { __ } from '@wordpress/i18n';
11
11
  import { useCallback, useMemo, useEffect } from '@wordpress/element';
12
+ import { getValueFromVariable } from '@wordpress/global-styles-engine';
12
13
 
13
14
  /**
14
15
  * Internal dependencies
@@ -21,7 +22,7 @@ import TextAlignmentControl from '../text-alignment-control';
21
22
  import TextTransformControl from '../text-transform-control';
22
23
  import TextDecorationControl from '../text-decoration-control';
23
24
  import WritingModeControl from '../writing-mode-control';
24
- import { getValueFromVariable, useToolsPanelDropdownMenuProps } from './utils';
25
+ import { useToolsPanelDropdownMenuProps } from './utils';
25
26
  import { setImmutably } from '../../utils/object';
26
27
  import {
27
28
  getMergedFontFamiliesAndFontFamilyFaces,
@@ -1,141 +1,8 @@
1
- /**
2
- * The fluid utilities must match the backend equivalent.
3
- * See: gutenberg_get_typography_font_size_value() in lib/block-supports/typography.php
4
- * ---------------------------------------------------------------
5
- */
6
-
7
1
  /**
8
2
  * Internal dependencies
9
3
  */
10
- import {
11
- getComputedFluidTypographyValue,
12
- getTypographyValueAndUnit,
13
- } from '../font-sizes/fluid-utils';
14
4
  import { getFontStylesAndWeights } from '../../utils/get-font-styles-and-weights';
15
5
 
16
- /**
17
- * @typedef {Object} FluidPreset
18
- * @property {string|undefined} max A maximum font size value.
19
- * @property {?string|undefined} min A minimum font size value.
20
- */
21
-
22
- /**
23
- * @typedef {Object} Preset
24
- * @property {?string|?number} size A default font size.
25
- * @property {string} name A font size name, displayed in the UI.
26
- * @property {string} slug A font size slug
27
- * @property {boolean|FluidPreset|undefined} fluid Specifies the minimum and maximum font size value of a fluid font size.
28
- */
29
-
30
- /**
31
- * @typedef {Object} TypographySettings
32
- * @property {?string} minViewportWidth Minimum viewport size from which type will have fluidity. Optional if size is specified.
33
- * @property {?string} maxViewportWidth Maximum size up to which type will have fluidity. Optional if size is specified.
34
- * @property {?number} scaleFactor A scale factor to determine how fast a font scales within boundaries. Optional.
35
- * @property {?number} minFontSizeFactor How much to scale defaultFontSize by to derive minimumFontSize. Optional.
36
- * @property {?string} minFontSize The smallest a calculated font size may be. Optional.
37
- */
38
-
39
- /**
40
- * Returns a font-size value based on a given font-size preset.
41
- * Takes into account fluid typography parameters and attempts to return a css formula depending on available, valid values.
42
- *
43
- * The Core PHP equivalent is wp_get_typography_font_size_value().
44
- *
45
- * @param {Preset} preset
46
- * @param {Object} settings
47
- * @param {boolean|TypographySettings} settings.typography.fluid Whether fluid typography is enabled, and, optionally, fluid font size options.
48
- * @param {?Object} settings.typography.layout Layout options.
49
- *
50
- * @return {string|*} A font-size value or the value of preset.size.
51
- */
52
- export function getTypographyFontSizeValue( preset, settings ) {
53
- const { size: defaultSize } = preset;
54
-
55
- /*
56
- * Catch falsy values and 0/'0'. Fluid calculations cannot be performed on `0`.
57
- * Also return early when a preset font size explicitly disables fluid typography with `false`.
58
- */
59
- if ( ! defaultSize || '0' === defaultSize || false === preset?.fluid ) {
60
- return defaultSize;
61
- }
62
-
63
- /*
64
- * Return early when fluid typography is disabled in the settings, and there
65
- * are no local settings to enable it for the individual preset.
66
- *
67
- * If this condition isn't met, either the settings or individual preset settings
68
- * have enabled fluid typography.
69
- */
70
- if (
71
- ! isFluidTypographyEnabled( settings?.typography ) &&
72
- ! isFluidTypographyEnabled( preset )
73
- ) {
74
- return defaultSize;
75
- }
76
-
77
- let fluidTypographySettings =
78
- getFluidTypographyOptionsFromSettings( settings );
79
- fluidTypographySettings =
80
- typeof fluidTypographySettings?.fluid === 'object'
81
- ? fluidTypographySettings?.fluid
82
- : {};
83
-
84
- const fluidFontSizeValue = getComputedFluidTypographyValue( {
85
- minimumFontSize: preset?.fluid?.min,
86
- maximumFontSize: preset?.fluid?.max,
87
- fontSize: defaultSize,
88
- minimumFontSizeLimit: fluidTypographySettings?.minFontSize,
89
- maximumViewportWidth: fluidTypographySettings?.maxViewportWidth,
90
- minimumViewportWidth: fluidTypographySettings?.minViewportWidth,
91
- } );
92
-
93
- if ( !! fluidFontSizeValue ) {
94
- return fluidFontSizeValue;
95
- }
96
-
97
- return defaultSize;
98
- }
99
-
100
- function isFluidTypographyEnabled( typographySettings ) {
101
- const fluidSettings = typographySettings?.fluid;
102
- return (
103
- true === fluidSettings ||
104
- ( fluidSettings &&
105
- typeof fluidSettings === 'object' &&
106
- Object.keys( fluidSettings ).length > 0 )
107
- );
108
- }
109
-
110
- /**
111
- * Returns fluid typography settings from theme.json setting object.
112
- *
113
- * @param {Object} settings Theme.json settings
114
- * @param {Object} settings.typography Theme.json typography settings
115
- * @param {Object} settings.layout Theme.json layout settings
116
- * @return {TypographySettings} Fluid typography settings
117
- */
118
- export function getFluidTypographyOptionsFromSettings( settings ) {
119
- const typographySettings = settings?.typography;
120
- const layoutSettings = settings?.layout;
121
- const defaultMaxViewportWidth = getTypographyValueAndUnit(
122
- layoutSettings?.wideSize
123
- )
124
- ? layoutSettings?.wideSize
125
- : null;
126
- return isFluidTypographyEnabled( typographySettings ) &&
127
- defaultMaxViewportWidth
128
- ? {
129
- fluid: {
130
- maxViewportWidth: defaultMaxViewportWidth,
131
- ...typographySettings.fluid,
132
- },
133
- }
134
- : {
135
- fluid: typographySettings?.fluid,
136
- };
137
- }
138
-
139
6
  /**
140
7
  * Returns an object of merged font families and the font faces from the selected font family
141
8
  * based on the theme.json settings object and the currently selected font family.