@wordpress/block-editor 15.6.1-next.36001005c.0 → 15.6.2

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 (169) hide show
  1. package/build/components/background-image-control/index.js +2 -2
  2. package/build/components/background-image-control/index.js.map +2 -2
  3. package/build/components/block-list/block.js +3 -3
  4. package/build/components/block-list/block.js.map +2 -2
  5. package/build/components/block-list/index.js +2 -2
  6. package/build/components/block-list/index.js.map +1 -1
  7. package/build/components/block-quick-navigation/index.js +0 -1
  8. package/build/components/block-quick-navigation/index.js.map +2 -2
  9. package/build/components/global-styles/border-panel.js +1 -2
  10. package/build/components/global-styles/border-panel.js.map +2 -2
  11. package/build/components/global-styles/color-panel.js +1 -2
  12. package/build/components/global-styles/color-panel.js.map +2 -2
  13. package/build/components/global-styles/dimensions-panel.js +2 -3
  14. package/build/components/global-styles/dimensions-panel.js.map +2 -2
  15. package/build/components/global-styles/filters-panel.js +1 -2
  16. package/build/components/global-styles/filters-panel.js.map +2 -2
  17. package/build/components/global-styles/get-block-css-selector.js +78 -0
  18. package/build/components/global-styles/get-block-css-selector.js.map +7 -0
  19. package/build/components/global-styles/hooks.js +95 -23
  20. package/build/components/global-styles/hooks.js.map +2 -2
  21. package/build/components/global-styles/index.js +14 -0
  22. package/build/components/global-styles/index.js.map +2 -2
  23. package/build/components/global-styles/typography-panel.js +19 -3
  24. package/build/components/global-styles/typography-panel.js.map +2 -2
  25. package/build/components/global-styles/typography-utils.js +49 -2
  26. package/build/components/global-styles/typography-utils.js.map +2 -2
  27. package/build/components/global-styles/use-global-styles-output.js +998 -0
  28. package/build/components/global-styles/use-global-styles-output.js.map +7 -0
  29. package/build/components/global-styles/utils.js +377 -0
  30. package/build/components/global-styles/utils.js.map +2 -2
  31. package/build/components/rich-text/index.js +8 -7
  32. package/build/components/rich-text/index.js.map +2 -2
  33. package/build/hooks/allowed-blocks.js +50 -1
  34. package/build/hooks/allowed-blocks.js.map +2 -2
  35. package/build/hooks/block-bindings.js +111 -170
  36. package/build/hooks/block-bindings.js.map +2 -2
  37. package/build/hooks/block-style-variation.js +10 -6
  38. package/build/hooks/block-style-variation.js.map +2 -2
  39. package/build/hooks/custom-class-name.js +1 -1
  40. package/build/hooks/custom-class-name.js.map +1 -1
  41. package/build/hooks/duotone.js +3 -3
  42. package/build/hooks/duotone.js.map +2 -2
  43. package/build/hooks/fit-text.js +33 -20
  44. package/build/hooks/fit-text.js.map +2 -2
  45. package/build/hooks/font-size.js +6 -5
  46. package/build/hooks/font-size.js.map +2 -2
  47. package/build/hooks/metadata.js +48 -2
  48. package/build/hooks/metadata.js.map +2 -2
  49. package/build/hooks/typography.js +11 -4
  50. package/build/hooks/typography.js.map +3 -3
  51. package/build/hooks/use-typography-props.js +2 -2
  52. package/build/hooks/use-typography-props.js.map +2 -2
  53. package/build/store/private-selectors.js +3 -3
  54. package/build/store/private-selectors.js.map +2 -2
  55. package/build/store/selectors.js +38 -13
  56. package/build/store/selectors.js.map +2 -2
  57. package/build/store/utils.js +2 -1
  58. package/build/store/utils.js.map +2 -2
  59. package/build/utils/fit-text-utils.js +4 -4
  60. package/build/utils/fit-text-utils.js.map +2 -2
  61. package/build-module/components/background-image-control/index.js +1 -1
  62. package/build-module/components/background-image-control/index.js.map +2 -2
  63. package/build-module/components/block-list/block.js +3 -3
  64. package/build-module/components/block-list/block.js.map +2 -2
  65. package/build-module/components/block-list/index.js +2 -2
  66. package/build-module/components/block-list/index.js.map +1 -1
  67. package/build-module/components/block-quick-navigation/index.js +0 -1
  68. package/build-module/components/block-quick-navigation/index.js.map +2 -2
  69. package/build-module/components/global-styles/border-panel.js +1 -2
  70. package/build-module/components/global-styles/border-panel.js.map +2 -2
  71. package/build-module/components/global-styles/color-panel.js +1 -2
  72. package/build-module/components/global-styles/color-panel.js.map +2 -2
  73. package/build-module/components/global-styles/dimensions-panel.js +1 -2
  74. package/build-module/components/global-styles/dimensions-panel.js.map +2 -2
  75. package/build-module/components/global-styles/filters-panel.js +1 -2
  76. package/build-module/components/global-styles/filters-panel.js.map +2 -2
  77. package/build-module/components/global-styles/get-block-css-selector.js +54 -0
  78. package/build-module/components/global-styles/get-block-css-selector.js.map +7 -0
  79. package/build-module/components/global-styles/hooks.js +95 -27
  80. package/build-module/components/global-styles/hooks.js.map +2 -2
  81. package/build-module/components/global-styles/index.js +14 -0
  82. package/build-module/components/global-styles/index.js.map +2 -2
  83. package/build-module/components/global-styles/typography-panel.js +19 -3
  84. package/build-module/components/global-styles/typography-panel.js.map +2 -2
  85. package/build-module/components/global-styles/typography-utils.js +49 -1
  86. package/build-module/components/global-styles/typography-utils.js.map +2 -2
  87. package/build-module/components/global-styles/use-global-styles-output.js +979 -0
  88. package/build-module/components/global-styles/use-global-styles-output.js.map +7 -0
  89. package/build-module/components/global-styles/utils.js +364 -0
  90. package/build-module/components/global-styles/utils.js.map +2 -2
  91. package/build-module/components/rich-text/index.js +8 -7
  92. package/build-module/components/rich-text/index.js.map +2 -2
  93. package/build-module/hooks/allowed-blocks.js +49 -1
  94. package/build-module/hooks/allowed-blocks.js.map +2 -2
  95. package/build-module/hooks/block-bindings.js +112 -172
  96. package/build-module/hooks/block-bindings.js.map +2 -2
  97. package/build-module/hooks/block-style-variation.js +12 -4
  98. package/build-module/hooks/block-style-variation.js.map +2 -2
  99. package/build-module/hooks/custom-class-name.js +1 -1
  100. package/build-module/hooks/custom-class-name.js.map +1 -1
  101. package/build-module/hooks/duotone.js +3 -3
  102. package/build-module/hooks/duotone.js.map +2 -2
  103. package/build-module/hooks/fit-text.js +34 -21
  104. package/build-module/hooks/fit-text.js.map +2 -2
  105. package/build-module/hooks/font-size.js +5 -4
  106. package/build-module/hooks/font-size.js.map +2 -2
  107. package/build-module/hooks/metadata.js +46 -1
  108. package/build-module/hooks/metadata.js.map +2 -2
  109. package/build-module/hooks/typography.js +11 -4
  110. package/build-module/hooks/typography.js.map +3 -3
  111. package/build-module/hooks/use-typography-props.js +1 -1
  112. package/build-module/hooks/use-typography-props.js.map +2 -2
  113. package/build-module/store/private-selectors.js +2 -2
  114. package/build-module/store/private-selectors.js.map +2 -2
  115. package/build-module/store/selectors.js +39 -14
  116. package/build-module/store/selectors.js.map +2 -2
  117. package/build-module/store/utils.js +3 -2
  118. package/build-module/store/utils.js.map +2 -2
  119. package/build-module/utils/fit-text-utils.js +4 -4
  120. package/build-module/utils/fit-text-utils.js.map +2 -2
  121. package/build-style/style-rtl.css +6 -10
  122. package/build-style/style.css +6 -10
  123. package/package.json +35 -36
  124. package/src/components/background-image-control/index.js +1 -1
  125. package/src/components/block-card/style.scss +1 -1
  126. package/src/components/block-list/block.js +1 -1
  127. package/src/components/block-list/index.js +2 -2
  128. package/src/components/block-navigation/style.scss +1 -1
  129. package/src/components/block-quick-navigation/index.js +0 -1
  130. package/src/components/block-switcher/style.scss +1 -1
  131. package/src/components/color-palette/test/__snapshots__/control.js.snap +1 -1
  132. package/src/components/global-styles/border-panel.js +1 -2
  133. package/src/components/global-styles/color-panel.js +1 -2
  134. package/src/components/global-styles/color-panel.native.js +1 -1
  135. package/src/components/global-styles/dimensions-panel.js +1 -2
  136. package/src/components/global-styles/filters-panel.js +1 -2
  137. package/src/components/global-styles/get-block-css-selector.js +114 -0
  138. package/src/components/global-styles/hooks.js +108 -29
  139. package/src/components/global-styles/index.js +8 -0
  140. package/src/components/global-styles/test/typography-utils.js +806 -0
  141. package/src/components/global-styles/test/use-global-styles-output.js +1131 -0
  142. package/src/components/global-styles/test/utils.js +442 -1
  143. package/src/components/global-styles/typography-panel.js +27 -3
  144. package/src/components/global-styles/typography-utils.js +133 -0
  145. package/src/components/global-styles/use-global-styles-output.js +1487 -0
  146. package/src/components/global-styles/utils.js +537 -0
  147. package/src/components/inserter/style.scss +2 -2
  148. package/src/components/multi-selection-inspector/style.scss +1 -1
  149. package/src/components/rich-text/index.js +8 -14
  150. package/src/hooks/allowed-blocks.js +89 -1
  151. package/src/hooks/block-bindings.js +79 -153
  152. package/src/hooks/block-style-variation.js +12 -4
  153. package/src/hooks/custom-class-name.js +1 -1
  154. package/src/hooks/duotone.js +3 -3
  155. package/src/hooks/fit-text.js +39 -30
  156. package/src/hooks/font-size.js +8 -4
  157. package/src/hooks/metadata.js +89 -0
  158. package/src/hooks/test/allowed-blocks.js +278 -0
  159. package/src/hooks/test/metadata.js +316 -0
  160. package/src/hooks/typography.js +15 -4
  161. package/src/hooks/use-typography-props.js +1 -1
  162. package/src/store/private-selectors.js +2 -2
  163. package/src/store/selectors.js +59 -21
  164. package/src/store/test/selectors.js +1 -1
  165. package/src/store/utils.js +2 -1
  166. package/src/style.scss +0 -1
  167. package/src/utils/fit-text-utils.js +4 -16
  168. package/tsconfig.json +0 -1
  169. package/src/components/block-quick-navigation/style.scss +0 -5
@@ -10,21 +10,81 @@ import { useContext, useCallback, useMemo } from '@wordpress/element';
10
10
  import { useSelect } from '@wordpress/data';
11
11
  import { store as blocksStore } from '@wordpress/blocks';
12
12
  import { _x } from '@wordpress/i18n';
13
- import {
14
- getSetting,
15
- getStyle,
16
- getPresetVariableFromValue,
17
- } from '@wordpress/global-styles-engine';
18
13
 
19
14
  /**
20
15
  * Internal dependencies
21
16
  */
22
- import { setImmutably } from '../../utils/object';
17
+ import { getValueFromVariable, getPresetVariableFromValue } from './utils';
18
+ import { getValueFromObjectPath, setImmutably } from '../../utils/object';
23
19
  import { GlobalStylesContext } from './context';
24
20
  import { unlock } from '../../lock-unlock';
25
21
 
26
22
  const EMPTY_CONFIG = { settings: {}, styles: {} };
27
23
 
24
+ const VALID_SETTINGS = [
25
+ 'appearanceTools',
26
+ 'useRootPaddingAwareAlignments',
27
+ 'background.backgroundImage',
28
+ 'background.backgroundRepeat',
29
+ 'background.backgroundSize',
30
+ 'background.backgroundPosition',
31
+ 'border.color',
32
+ 'border.radius',
33
+ 'border.style',
34
+ 'border.width',
35
+ 'border.radiusSizes',
36
+ 'shadow.presets',
37
+ 'shadow.defaultPresets',
38
+ 'color.background',
39
+ 'color.button',
40
+ 'color.caption',
41
+ 'color.custom',
42
+ 'color.customDuotone',
43
+ 'color.customGradient',
44
+ 'color.defaultDuotone',
45
+ 'color.defaultGradients',
46
+ 'color.defaultPalette',
47
+ 'color.duotone',
48
+ 'color.gradients',
49
+ 'color.heading',
50
+ 'color.link',
51
+ 'color.palette',
52
+ 'color.text',
53
+ 'custom',
54
+ 'dimensions.aspectRatio',
55
+ 'dimensions.minHeight',
56
+ 'layout.contentSize',
57
+ 'layout.definitions',
58
+ 'layout.wideSize',
59
+ 'lightbox.enabled',
60
+ 'lightbox.allowEditing',
61
+ 'position.fixed',
62
+ 'position.sticky',
63
+ 'spacing.customSpacingSize',
64
+ 'spacing.defaultSpacingSizes',
65
+ 'spacing.spacingSizes',
66
+ 'spacing.spacingScale',
67
+ 'spacing.blockGap',
68
+ 'spacing.margin',
69
+ 'spacing.padding',
70
+ 'spacing.units',
71
+ 'typography.fluid',
72
+ 'typography.customFontSize',
73
+ 'typography.defaultFontSizes',
74
+ 'typography.dropCap',
75
+ 'typography.fontFamilies',
76
+ 'typography.fontSizes',
77
+ 'typography.fontStyle',
78
+ 'typography.fontWeight',
79
+ 'typography.letterSpacing',
80
+ 'typography.lineHeight',
81
+ 'typography.textAlign',
82
+ 'typography.textColumns',
83
+ 'typography.textDecoration',
84
+ 'typography.textTransform',
85
+ 'typography.writingMode',
86
+ ];
87
+
28
88
  export const useGlobalStylesReset = () => {
29
89
  const { user, setUserConfig } = useContext( GlobalStylesContext );
30
90
  const config = {
@@ -43,6 +103,7 @@ export function useGlobalSetting( propertyPath, blockName, source = 'all' ) {
43
103
  const appendedBlockPath = blockName ? '.blocks.' + blockName : '';
44
104
  const appendedPropertyPath = propertyPath ? '.' + propertyPath : '';
45
105
  const contextualPath = `settings${ appendedBlockPath }${ appendedPropertyPath }`;
106
+ const globalPath = `settings${ appendedPropertyPath }`;
46
107
  const sourceKey = source === 'all' ? 'merged' : source;
47
108
 
48
109
  const settingValue = useMemo( () => {
@@ -51,9 +112,34 @@ export function useGlobalSetting( propertyPath, blockName, source = 'all' ) {
51
112
  throw 'Unsupported source';
52
113
  }
53
114
 
54
- // Use engine's getSetting instead of duplicating logic
55
- return getSetting( configToUse, propertyPath, blockName );
56
- }, [ configs, sourceKey, propertyPath, blockName ] );
115
+ if ( propertyPath ) {
116
+ return (
117
+ getValueFromObjectPath( configToUse, contextualPath ) ??
118
+ getValueFromObjectPath( configToUse, globalPath )
119
+ );
120
+ }
121
+
122
+ let result = {};
123
+ VALID_SETTINGS.forEach( ( setting ) => {
124
+ const value =
125
+ getValueFromObjectPath(
126
+ configToUse,
127
+ `settings${ appendedBlockPath }.${ setting }`
128
+ ) ??
129
+ getValueFromObjectPath( configToUse, `settings.${ setting }` );
130
+ if ( value !== undefined ) {
131
+ result = setImmutably( result, setting.split( '.' ), value );
132
+ }
133
+ } );
134
+ return result;
135
+ }, [
136
+ configs,
137
+ sourceKey,
138
+ propertyPath,
139
+ contextualPath,
140
+ globalPath,
141
+ appendedBlockPath,
142
+ ] );
57
143
 
58
144
  const setSetting = ( newValue ) => {
59
145
  setUserConfig( ( currentConfig ) =>
@@ -97,32 +183,25 @@ export function useGlobalStyle(
97
183
  );
98
184
  };
99
185
 
100
- let result;
101
- // Use engine's getStyle instead of duplicating logic
186
+ let rawResult, result;
102
187
  switch ( source ) {
103
188
  case 'all':
104
- result = getStyle(
105
- mergedConfig,
106
- path,
107
- blockName,
108
- shouldDecodeEncode
109
- );
189
+ rawResult = getValueFromObjectPath( mergedConfig, finalPath );
190
+ result = shouldDecodeEncode
191
+ ? getValueFromVariable( mergedConfig, blockName, rawResult )
192
+ : rawResult;
110
193
  break;
111
194
  case 'user':
112
- result = getStyle(
113
- userConfig,
114
- path,
115
- blockName,
116
- shouldDecodeEncode
117
- );
195
+ rawResult = getValueFromObjectPath( userConfig, finalPath );
196
+ result = shouldDecodeEncode
197
+ ? getValueFromVariable( mergedConfig, blockName, rawResult )
198
+ : rawResult;
118
199
  break;
119
200
  case 'base':
120
- result = getStyle(
121
- baseConfig,
122
- path,
123
- blockName,
124
- shouldDecodeEncode
125
- );
201
+ rawResult = getValueFromObjectPath( baseConfig, finalPath );
202
+ result = shouldDecodeEncode
203
+ ? getValueFromVariable( baseConfig, blockName, rawResult )
204
+ : rawResult;
126
205
  break;
127
206
  default:
128
207
  throw 'Unsupported source';
@@ -4,6 +4,14 @@ export {
4
4
  useGlobalStyle,
5
5
  useSettingsForBlockElement,
6
6
  } from './hooks';
7
+ export { getBlockCSSSelector } from './get-block-css-selector';
8
+ export {
9
+ getLayoutStyles,
10
+ getBlockSelectors,
11
+ toStyles,
12
+ useGlobalStylesOutput,
13
+ useGlobalStylesOutputWithConfig,
14
+ } from './use-global-styles-output';
7
15
  export { GlobalStylesContext } from './context';
8
16
  export {
9
17
  default as TypographyPanel,