@wordpress/edit-site 4.9.0 → 4.12.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 (199) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/build/components/add-new-template/add-custom-generic-template-modal.js +84 -0
  3. package/build/components/add-new-template/add-custom-generic-template-modal.js.map +1 -0
  4. package/build/components/add-new-template/add-custom-template-modal.js +82 -61
  5. package/build/components/add-new-template/add-custom-template-modal.js.map +1 -1
  6. package/build/components/add-new-template/new-template.js +94 -81
  7. package/build/components/add-new-template/new-template.js.map +1 -1
  8. package/build/components/add-new-template/utils.js +574 -57
  9. package/build/components/add-new-template/utils.js.map +1 -1
  10. package/build/components/block-editor/index.js +1 -3
  11. package/build/components/block-editor/index.js.map +1 -1
  12. package/build/components/code-editor/index.js +17 -4
  13. package/build/components/code-editor/index.js.map +1 -1
  14. package/build/components/editor/index.js +16 -0
  15. package/build/components/editor/index.js.map +1 -1
  16. package/build/components/error-boundary/index.js +6 -0
  17. package/build/components/error-boundary/index.js.map +1 -1
  18. package/build/components/global-styles/dimensions-panel.js +191 -21
  19. package/build/components/global-styles/dimensions-panel.js.map +1 -1
  20. package/build/components/global-styles/global-styles-provider.js +4 -2
  21. package/build/components/global-styles/global-styles-provider.js.map +1 -1
  22. package/build/components/global-styles/hooks.js +11 -2
  23. package/build/components/global-styles/hooks.js.map +1 -1
  24. package/build/components/global-styles/screen-color-palette.js +13 -17
  25. package/build/components/global-styles/screen-color-palette.js.map +1 -1
  26. package/build/components/global-styles/screen-colors.js +59 -7
  27. package/build/components/global-styles/screen-colors.js.map +1 -1
  28. package/build/components/global-styles/screen-heading-color.js +157 -0
  29. package/build/components/global-styles/screen-heading-color.js.map +1 -0
  30. package/build/components/global-styles/screen-link-color.js +48 -14
  31. package/build/components/global-styles/screen-link-color.js.map +1 -1
  32. package/build/components/global-styles/screen-typography-element.js +4 -0
  33. package/build/components/global-styles/screen-typography-element.js.map +1 -1
  34. package/build/components/global-styles/screen-typography.js +5 -0
  35. package/build/components/global-styles/screen-typography.js.map +1 -1
  36. package/build/components/global-styles/typography-panel.js +73 -12
  37. package/build/components/global-styles/typography-panel.js.map +1 -1
  38. package/build/components/global-styles/typography-utils.js +217 -0
  39. package/build/components/global-styles/typography-utils.js.map +1 -0
  40. package/build/components/global-styles/ui.js +11 -0
  41. package/build/components/global-styles/ui.js.map +1 -1
  42. package/build/components/global-styles/use-global-styles-output.js +298 -61
  43. package/build/components/global-styles/use-global-styles-output.js.map +1 -1
  44. package/build/components/global-styles/utils.js +49 -3
  45. package/build/components/global-styles/utils.js.map +1 -1
  46. package/build/components/header/index.js +22 -10
  47. package/build/components/header/index.js.map +1 -1
  48. package/build/components/header/undo-redo/redo.js +2 -1
  49. package/build/components/header/undo-redo/redo.js.map +1 -1
  50. package/build/components/keyboard-shortcut-help-modal/index.js +1 -3
  51. package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  52. package/build/components/list/actions/index.js +1 -1
  53. package/build/components/list/actions/index.js.map +1 -1
  54. package/build/components/save-button/index.js +2 -3
  55. package/build/components/save-button/index.js.map +1 -1
  56. package/build/components/sidebar/navigation-menu-sidebar/navigation-menu.js +2 -2
  57. package/build/components/sidebar/navigation-menu-sidebar/navigation-menu.js.map +1 -1
  58. package/build/components/sidebar/template-card/template-actions.js +1 -1
  59. package/build/components/sidebar/template-card/template-actions.js.map +1 -1
  60. package/build/components/template-details/edit-template-title.js +11 -3
  61. package/build/components/template-details/edit-template-title.js.map +1 -1
  62. package/build/components/template-details/index.js +2 -21
  63. package/build/components/template-details/index.js.map +1 -1
  64. package/build/components/template-details/template-areas.js +1 -1
  65. package/build/components/template-details/template-areas.js.map +1 -1
  66. package/build/components/template-part-converter/convert-to-template-part.js +4 -1
  67. package/build/components/template-part-converter/convert-to-template-part.js.map +1 -1
  68. package/build/hooks/index.js +2 -0
  69. package/build/hooks/index.js.map +1 -1
  70. package/build/hooks/template-part-edit.js +86 -0
  71. package/build/hooks/template-part-edit.js.map +1 -0
  72. package/build/store/selectors.js +4 -1
  73. package/build/store/selectors.js.map +1 -1
  74. package/build-module/components/add-new-template/add-custom-generic-template-modal.js +77 -0
  75. package/build-module/components/add-new-template/add-custom-generic-template-modal.js.map +1 -0
  76. package/build-module/components/add-new-template/add-custom-template-modal.js +82 -61
  77. package/build-module/components/add-new-template/add-custom-template-modal.js.map +1 -1
  78. package/build-module/components/add-new-template/new-template.js +96 -84
  79. package/build-module/components/add-new-template/new-template.js.map +1 -1
  80. package/build-module/components/add-new-template/utils.js +555 -50
  81. package/build-module/components/add-new-template/utils.js.map +1 -1
  82. package/build-module/components/block-editor/index.js +1 -2
  83. package/build-module/components/block-editor/index.js.map +1 -1
  84. package/build-module/components/code-editor/index.js +18 -5
  85. package/build-module/components/code-editor/index.js.map +1 -1
  86. package/build-module/components/editor/index.js +16 -0
  87. package/build-module/components/editor/index.js.map +1 -1
  88. package/build-module/components/error-boundary/index.js +5 -0
  89. package/build-module/components/error-boundary/index.js.map +1 -1
  90. package/build-module/components/global-styles/dimensions-panel.js +191 -22
  91. package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
  92. package/build-module/components/global-styles/global-styles-provider.js +4 -2
  93. package/build-module/components/global-styles/global-styles-provider.js.map +1 -1
  94. package/build-module/components/global-styles/hooks.js +11 -2
  95. package/build-module/components/global-styles/hooks.js.map +1 -1
  96. package/build-module/components/global-styles/screen-color-palette.js +14 -19
  97. package/build-module/components/global-styles/screen-color-palette.js.map +1 -1
  98. package/build-module/components/global-styles/screen-colors.js +59 -7
  99. package/build-module/components/global-styles/screen-colors.js.map +1 -1
  100. package/build-module/components/global-styles/screen-heading-color.js +143 -0
  101. package/build-module/components/global-styles/screen-heading-color.js.map +1 -0
  102. package/build-module/components/global-styles/screen-link-color.js +47 -14
  103. package/build-module/components/global-styles/screen-link-color.js.map +1 -1
  104. package/build-module/components/global-styles/screen-typography-element.js +4 -0
  105. package/build-module/components/global-styles/screen-typography-element.js.map +1 -1
  106. package/build-module/components/global-styles/screen-typography.js +5 -0
  107. package/build-module/components/global-styles/screen-typography.js.map +1 -1
  108. package/build-module/components/global-styles/typography-panel.js +74 -13
  109. package/build-module/components/global-styles/typography-panel.js.map +1 -1
  110. package/build-module/components/global-styles/typography-utils.js +204 -0
  111. package/build-module/components/global-styles/typography-utils.js.map +1 -0
  112. package/build-module/components/global-styles/ui.js +10 -0
  113. package/build-module/components/global-styles/ui.js.map +1 -1
  114. package/build-module/components/global-styles/use-global-styles-output.js +294 -69
  115. package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
  116. package/build-module/components/global-styles/utils.js +47 -4
  117. package/build-module/components/global-styles/utils.js.map +1 -1
  118. package/build-module/components/header/index.js +25 -12
  119. package/build-module/components/header/index.js.map +1 -1
  120. package/build-module/components/header/undo-redo/redo.js +3 -2
  121. package/build-module/components/header/undo-redo/redo.js.map +1 -1
  122. package/build-module/components/keyboard-shortcut-help-modal/index.js +1 -2
  123. package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -1
  124. package/build-module/components/list/actions/index.js +1 -1
  125. package/build-module/components/list/actions/index.js.map +1 -1
  126. package/build-module/components/save-button/index.js +3 -4
  127. package/build-module/components/save-button/index.js.map +1 -1
  128. package/build-module/components/sidebar/navigation-menu-sidebar/navigation-menu.js +3 -3
  129. package/build-module/components/sidebar/navigation-menu-sidebar/navigation-menu.js.map +1 -1
  130. package/build-module/components/sidebar/template-card/template-actions.js +1 -1
  131. package/build-module/components/sidebar/template-card/template-actions.js.map +1 -1
  132. package/build-module/components/template-details/edit-template-title.js +12 -3
  133. package/build-module/components/template-details/edit-template-title.js.map +1 -1
  134. package/build-module/components/template-details/index.js +3 -22
  135. package/build-module/components/template-details/index.js.map +1 -1
  136. package/build-module/components/template-details/template-areas.js +1 -1
  137. package/build-module/components/template-details/template-areas.js.map +1 -1
  138. package/build-module/components/template-part-converter/convert-to-template-part.js +3 -1
  139. package/build-module/components/template-part-converter/convert-to-template-part.js.map +1 -1
  140. package/build-module/hooks/index.js +1 -0
  141. package/build-module/hooks/index.js.map +1 -1
  142. package/build-module/hooks/template-part-edit.js +67 -0
  143. package/build-module/hooks/template-part-edit.js.map +1 -0
  144. package/build-module/store/selectors.js +5 -2
  145. package/build-module/store/selectors.js.map +1 -1
  146. package/build-style/style-rtl.css +55 -48
  147. package/build-style/style.css +55 -48
  148. package/package.json +29 -29
  149. package/src/components/add-new-template/add-custom-generic-template-modal.js +97 -0
  150. package/src/components/add-new-template/add-custom-template-modal.js +93 -68
  151. package/src/components/add-new-template/new-template.js +126 -95
  152. package/src/components/add-new-template/style.scss +41 -8
  153. package/src/components/add-new-template/utils.js +622 -80
  154. package/src/components/block-editor/index.js +0 -2
  155. package/src/components/code-editor/index.js +15 -5
  156. package/src/components/editor/index.js +11 -0
  157. package/src/components/error-boundary/index.js +5 -0
  158. package/src/components/global-styles/dimensions-panel.js +214 -24
  159. package/src/components/global-styles/global-styles-provider.js +8 -9
  160. package/src/components/global-styles/hooks.js +18 -0
  161. package/src/components/global-styles/screen-color-palette.js +25 -27
  162. package/src/components/global-styles/screen-colors.js +55 -7
  163. package/src/components/global-styles/screen-heading-color.js +201 -0
  164. package/src/components/global-styles/screen-link-color.js +65 -23
  165. package/src/components/global-styles/screen-typography-element.js +4 -0
  166. package/src/components/global-styles/screen-typography.js +6 -0
  167. package/src/components/global-styles/style.scss +14 -11
  168. package/src/components/global-styles/test/typography-utils.js +130 -0
  169. package/src/components/global-styles/test/use-global-styles-output.js +296 -2
  170. package/src/components/global-styles/typography-panel.js +85 -16
  171. package/src/components/global-styles/typography-utils.js +228 -0
  172. package/src/components/global-styles/ui.js +13 -0
  173. package/src/components/global-styles/use-global-styles-output.js +387 -89
  174. package/src/components/global-styles/utils.js +43 -2
  175. package/src/components/header/index.js +37 -13
  176. package/src/components/header/style.scss +5 -3
  177. package/src/components/header/undo-redo/redo.js +6 -2
  178. package/src/components/keyboard-shortcut-help-modal/index.js +1 -2
  179. package/src/components/keyboard-shortcut-help-modal/style.scss +0 -5
  180. package/src/components/list/actions/index.js +3 -1
  181. package/src/components/list/style.scss +0 -8
  182. package/src/components/save-button/index.js +10 -13
  183. package/src/components/sidebar/navigation-menu-sidebar/navigation-menu.js +1 -5
  184. package/src/components/sidebar/style.scss +4 -0
  185. package/src/components/sidebar/template-card/template-actions.js +3 -1
  186. package/src/components/template-details/edit-template-title.js +10 -2
  187. package/src/components/template-details/index.js +7 -22
  188. package/src/components/template-details/template-areas.js +3 -1
  189. package/src/components/template-part-converter/convert-to-template-part.js +3 -1
  190. package/src/components/test/error-boundary.js +38 -0
  191. package/src/hooks/index.js +1 -0
  192. package/src/hooks/template-part-edit.js +82 -0
  193. package/src/store/selectors.js +11 -5
  194. package/src/style.scss +0 -1
  195. package/build/components/edit-template-part-menu-button/index.js +0 -90
  196. package/build/components/edit-template-part-menu-button/index.js.map +0 -1
  197. package/build-module/components/edit-template-part-menu-button/index.js +0 -72
  198. package/build-module/components/edit-template-part-menu-button/index.js.map +0 -1
  199. package/src/components/edit-template-part-menu-button/index.js +0 -82
@@ -14,6 +14,8 @@ var _components = require("@wordpress/components");
14
14
 
15
15
  var _blockEditor = require("@wordpress/block-editor");
16
16
 
17
+ var _icons = require("@wordpress/icons");
18
+
17
19
  var _hooks = require("./hooks");
18
20
 
19
21
  /**
@@ -26,10 +28,24 @@ var _hooks = require("./hooks");
26
28
  const AXIAL_SIDES = ['horizontal', 'vertical'];
27
29
 
28
30
  function useHasDimensionsPanel(name) {
31
+ const hasContentSize = useHasContentSize(name);
32
+ const hasWideSize = useHasWideSize(name);
29
33
  const hasPadding = useHasPadding(name);
30
34
  const hasMargin = useHasMargin(name);
31
35
  const hasGap = useHasGap(name);
32
- return hasPadding || hasMargin || hasGap;
36
+ return hasContentSize || hasWideSize || hasPadding || hasMargin || hasGap;
37
+ }
38
+
39
+ function useHasContentSize(name) {
40
+ const supports = (0, _hooks.getSupportedGlobalStylesPanels)(name);
41
+ const [settings] = (0, _hooks.useSetting)('layout.contentSize', name);
42
+ return settings && supports.includes('contentSize');
43
+ }
44
+
45
+ function useHasWideSize(name) {
46
+ const supports = (0, _hooks.getSupportedGlobalStylesPanels)(name);
47
+ const [settings] = (0, _hooks.useSetting)('layout.wideSize', name);
48
+ return settings && supports.includes('wideSize');
33
49
  }
34
50
 
35
51
  function useHasPadding(name) {
@@ -46,12 +62,8 @@ function useHasMargin(name) {
46
62
 
47
63
  function useHasGap(name) {
48
64
  const supports = (0, _hooks.getSupportedGlobalStylesPanels)(name);
49
- const [settings] = (0, _hooks.useSetting)('spacing.blockGap', name); // Do not show the gap control panel for block-level global styles
50
- // as they do not work on the frontend.
51
- // See: https://github.com/WordPress/gutenberg/pull/39845.
52
- // We can revert this condition when they're working again.
53
-
54
- return !!name ? false : settings && supports.includes('--wp--style--block-gap');
65
+ const [settings] = (0, _hooks.useSetting)('spacing.blockGap', name);
66
+ return settings && supports.includes('blockGap');
55
67
  }
56
68
 
57
69
  function filterValuesBySides(values, sides) {
@@ -91,18 +103,44 @@ function splitStyleValue(value) {
91
103
  }
92
104
 
93
105
  return value;
94
- }
106
+ } // Props for managing `layout.contentSize`.
95
107
 
96
- function DimensionsPanel(_ref) {
97
- let {
98
- name
99
- } = _ref;
100
- const showPaddingControl = useHasPadding(name);
101
- const showMarginControl = useHasMargin(name);
102
- const showGapControl = useHasGap(name);
103
- const units = (0, _components.__experimentalUseCustomUnits)({
104
- availableUnits: (0, _hooks.useSetting)('spacing.units', name)[0] || ['%', 'px', 'em', 'rem', 'vw']
105
- });
108
+
109
+ function useContentSizeProps(name) {
110
+ const [contentSizeValue, setContentSizeValue] = (0, _hooks.useSetting)('layout.contentSize', name);
111
+ const [userSetContentSizeValue] = (0, _hooks.useSetting)('layout.contentSize', name, 'user');
112
+
113
+ const hasUserSetContentSizeValue = () => !!userSetContentSizeValue;
114
+
115
+ const resetContentSizeValue = () => setContentSizeValue('');
116
+
117
+ return {
118
+ contentSizeValue,
119
+ setContentSizeValue,
120
+ hasUserSetContentSizeValue,
121
+ resetContentSizeValue
122
+ };
123
+ } // Props for managing `layout.wideSize`.
124
+
125
+
126
+ function useWideSizeProps(name) {
127
+ const [wideSizeValue, setWideSizeValue] = (0, _hooks.useSetting)('layout.wideSize', name);
128
+ const [userSetWideSizeValue] = (0, _hooks.useSetting)('layout.wideSize', name, 'user');
129
+
130
+ const hasUserSetWideSizeValue = () => !!userSetWideSizeValue;
131
+
132
+ const resetWideSizeValue = () => setWideSizeValue('');
133
+
134
+ return {
135
+ wideSizeValue,
136
+ setWideSizeValue,
137
+ hasUserSetWideSizeValue,
138
+ resetWideSizeValue
139
+ };
140
+ } // Props for managing `spacing.padding`.
141
+
142
+
143
+ function usePaddingProps(name) {
106
144
  const [rawPadding, setRawPadding] = (0, _hooks.useStyle)('spacing.padding', name);
107
145
  const paddingValues = splitStyleValue(rawPadding);
108
146
  const paddingSides = (0, _blockEditor.__experimentalUseCustomSides)(name, 'padding');
@@ -115,8 +153,22 @@ function DimensionsPanel(_ref) {
115
153
 
116
154
  const resetPaddingValue = () => setPaddingValues({});
117
155
 
118
- const hasPaddingValue = () => !!paddingValues && Object.keys(paddingValues).length;
156
+ const [userSetPaddingValue] = (0, _hooks.useStyle)('spacing.padding', name, 'user'); // The `hasPaddingValue` check does not need a parsed value, as `userSetPaddingValue` will be `undefined` if not set.
157
+
158
+ const hasPaddingValue = () => !!userSetPaddingValue;
159
+
160
+ return {
161
+ paddingValues,
162
+ paddingSides,
163
+ isAxialPadding,
164
+ setPaddingValues,
165
+ resetPaddingValue,
166
+ hasPaddingValue
167
+ };
168
+ } // Props for managing `spacing.margin`.
169
+
119
170
 
171
+ function useMarginProps(name) {
120
172
  const [rawMargin, setRawMargin] = (0, _hooks.useStyle)('spacing.margin', name);
121
173
  const marginValues = splitStyleValue(rawMargin);
122
174
  const marginSides = (0, _blockEditor.__experimentalUseCustomSides)(name, 'margin');
@@ -131,22 +183,140 @@ function DimensionsPanel(_ref) {
131
183
 
132
184
  const hasMarginValue = () => !!marginValues && Object.keys(marginValues).length;
133
185
 
186
+ return {
187
+ marginValues,
188
+ marginSides,
189
+ isAxialMargin,
190
+ setMarginValues,
191
+ resetMarginValue,
192
+ hasMarginValue
193
+ };
194
+ } // Props for managing `spacing.blockGap`.
195
+
196
+
197
+ function useBlockGapProps(name) {
134
198
  const [gapValue, setGapValue] = (0, _hooks.useStyle)('spacing.blockGap', name);
135
199
 
136
200
  const resetGapValue = () => setGapValue(undefined);
137
201
 
138
- const hasGapValue = () => !!gapValue;
202
+ const [userSetGapValue] = (0, _hooks.useStyle)('spacing.blockGap', name, 'user');
203
+
204
+ const hasGapValue = () => !!userSetGapValue;
205
+
206
+ return {
207
+ gapValue,
208
+ setGapValue,
209
+ resetGapValue,
210
+ hasGapValue
211
+ };
212
+ }
213
+
214
+ function DimensionsPanel(_ref) {
215
+ let {
216
+ name
217
+ } = _ref;
218
+ const showContentSizeControl = useHasContentSize(name);
219
+ const showWideSizeControl = useHasWideSize(name);
220
+ const showPaddingControl = useHasPadding(name);
221
+ const showMarginControl = useHasMargin(name);
222
+ const showGapControl = useHasGap(name);
223
+ const units = (0, _components.__experimentalUseCustomUnits)({
224
+ availableUnits: (0, _hooks.useSetting)('spacing.units', name)[0] || ['%', 'px', 'em', 'rem', 'vw']
225
+ }); // Props for managing `layout.contentSize`.
226
+
227
+ const {
228
+ contentSizeValue,
229
+ setContentSizeValue,
230
+ hasUserSetContentSizeValue,
231
+ resetContentSizeValue
232
+ } = useContentSizeProps(name); // Props for managing `layout.wideSize`.
233
+
234
+ const {
235
+ wideSizeValue,
236
+ setWideSizeValue,
237
+ hasUserSetWideSizeValue,
238
+ resetWideSizeValue
239
+ } = useWideSizeProps(name); // Props for managing `spacing.padding`.
240
+
241
+ const {
242
+ paddingValues,
243
+ paddingSides,
244
+ isAxialPadding,
245
+ setPaddingValues,
246
+ resetPaddingValue,
247
+ hasPaddingValue
248
+ } = usePaddingProps(name); // Props for managing `spacing.margin`.
249
+
250
+ const {
251
+ marginValues,
252
+ marginSides,
253
+ isAxialMargin,
254
+ setMarginValues,
255
+ resetMarginValue,
256
+ hasMarginValue
257
+ } = useMarginProps(name); // Props for managing `spacing.blockGap`.
258
+
259
+ const {
260
+ gapValue,
261
+ setGapValue,
262
+ resetGapValue,
263
+ hasGapValue
264
+ } = useBlockGapProps(name);
139
265
 
140
266
  const resetAll = () => {
141
267
  resetPaddingValue();
142
268
  resetMarginValue();
143
269
  resetGapValue();
270
+ resetContentSizeValue();
271
+ resetWideSizeValue();
144
272
  };
145
273
 
146
274
  return (0, _element.createElement)(_components.__experimentalToolsPanel, {
147
275
  label: (0, _i18n.__)('Dimensions'),
148
276
  resetAll: resetAll
149
- }, showPaddingControl && (0, _element.createElement)(_components.__experimentalToolsPanelItem, {
277
+ }, (showContentSizeControl || showWideSizeControl) && (0, _element.createElement)("span", {
278
+ className: "span-columns"
279
+ }, (0, _i18n.__)('Set the width of the main content area.')), showContentSizeControl && (0, _element.createElement)(_components.__experimentalToolsPanelItem, {
280
+ className: "single-column",
281
+ label: (0, _i18n.__)('Content size'),
282
+ hasValue: hasUserSetContentSizeValue,
283
+ onDeselect: resetContentSizeValue,
284
+ isShownByDefault: true
285
+ }, (0, _element.createElement)(_components.__experimentalHStack, {
286
+ alignment: "flex-end",
287
+ justify: "flex-start"
288
+ }, (0, _element.createElement)(_components.__experimentalUnitControl, {
289
+ label: (0, _i18n.__)('Content'),
290
+ labelPosition: "top",
291
+ __unstableInputWidth: "80px",
292
+ value: contentSizeValue || '',
293
+ onChange: nextContentSize => {
294
+ setContentSizeValue(nextContentSize);
295
+ },
296
+ units: units
297
+ }), (0, _element.createElement)(_components.__experimentalView, null, (0, _element.createElement)(_icons.Icon, {
298
+ icon: _icons.positionCenter
299
+ })))), showWideSizeControl && (0, _element.createElement)(_components.__experimentalToolsPanelItem, {
300
+ className: "single-column",
301
+ label: (0, _i18n.__)('Wide size'),
302
+ hasValue: hasUserSetWideSizeValue,
303
+ onDeselect: resetWideSizeValue,
304
+ isShownByDefault: true
305
+ }, (0, _element.createElement)(_components.__experimentalHStack, {
306
+ alignment: "flex-end",
307
+ justify: "flex-start"
308
+ }, (0, _element.createElement)(_components.__experimentalUnitControl, {
309
+ label: (0, _i18n.__)('Wide'),
310
+ labelPosition: "top",
311
+ __unstableInputWidth: "80px",
312
+ value: wideSizeValue || '',
313
+ onChange: nextWideSize => {
314
+ setWideSizeValue(nextWideSize);
315
+ },
316
+ units: units
317
+ }), (0, _element.createElement)(_components.__experimentalView, null, (0, _element.createElement)(_icons.Icon, {
318
+ icon: _icons.stretchWide
319
+ })))), showPaddingControl && (0, _element.createElement)(_components.__experimentalToolsPanelItem, {
150
320
  hasValue: hasPaddingValue,
151
321
  label: (0, _i18n.__)('Padding'),
152
322
  onDeselect: resetPaddingValue,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/dimensions-panel.js"],"names":["AXIAL_SIDES","useHasDimensionsPanel","name","hasPadding","useHasPadding","hasMargin","useHasMargin","hasGap","useHasGap","supports","settings","includes","filterValuesBySides","values","sides","filteredValues","forEach","side","top","bottom","left","right","splitStyleValue","value","DimensionsPanel","showPaddingControl","showMarginControl","showGapControl","units","availableUnits","rawPadding","setRawPadding","paddingValues","paddingSides","isAxialPadding","some","setPaddingValues","newPaddingValues","padding","resetPaddingValue","hasPaddingValue","Object","keys","length","rawMargin","setRawMargin","marginValues","marginSides","isAxialMargin","setMarginValues","newMarginValues","margin","resetMarginValue","hasMarginValue","gapValue","setGapValue","resetGapValue","undefined","hasGapValue","resetAll"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalBoxControl as BoxControl,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { __experimentalUseCustomSides as useCustomSides } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { getSupportedGlobalStylesPanels, useSetting, useStyle } from './hooks';\n\nconst AXIAL_SIDES = [ 'horizontal', 'vertical' ];\n\nexport function useHasDimensionsPanel( name ) {\n\tconst hasPadding = useHasPadding( name );\n\tconst hasMargin = useHasMargin( name );\n\tconst hasGap = useHasGap( name );\n\n\treturn hasPadding || hasMargin || hasGap;\n}\n\nfunction useHasPadding( name ) {\n\tconst supports = getSupportedGlobalStylesPanels( name );\n\tconst [ settings ] = useSetting( 'spacing.padding', name );\n\n\treturn settings && supports.includes( 'padding' );\n}\n\nfunction useHasMargin( name ) {\n\tconst supports = getSupportedGlobalStylesPanels( name );\n\tconst [ settings ] = useSetting( 'spacing.margin', name );\n\n\treturn settings && supports.includes( 'margin' );\n}\n\nfunction useHasGap( name ) {\n\tconst supports = getSupportedGlobalStylesPanels( name );\n\tconst [ settings ] = useSetting( 'spacing.blockGap', name );\n\t// Do not show the gap control panel for block-level global styles\n\t// as they do not work on the frontend.\n\t// See: https://github.com/WordPress/gutenberg/pull/39845.\n\t// We can revert this condition when they're working again.\n\treturn !! name\n\t\t? false\n\t\t: settings && supports.includes( '--wp--style--block-gap' );\n}\n\nfunction filterValuesBySides( values, sides ) {\n\tif ( ! sides ) {\n\t\t// If no custom side configuration all sides are opted into by default.\n\t\treturn values;\n\t}\n\n\t// Only include sides opted into within filtered values.\n\tconst filteredValues = {};\n\tsides.forEach( ( side ) => {\n\t\tif ( side === 'vertical' ) {\n\t\t\tfilteredValues.top = values.top;\n\t\t\tfilteredValues.bottom = values.bottom;\n\t\t}\n\t\tif ( side === 'horizontal' ) {\n\t\t\tfilteredValues.left = values.left;\n\t\t\tfilteredValues.right = values.right;\n\t\t}\n\t\tfilteredValues[ side ] = values[ side ];\n\t} );\n\n\treturn filteredValues;\n}\n\nfunction splitStyleValue( value ) {\n\t// Check for shorthand value ( a string value ).\n\tif ( value && typeof value === 'string' ) {\n\t\t// Convert to value for individual sides for BoxControl.\n\t\treturn {\n\t\t\ttop: value,\n\t\t\tright: value,\n\t\t\tbottom: value,\n\t\t\tleft: value,\n\t\t};\n\t}\n\n\treturn value;\n}\n\nexport default function DimensionsPanel( { name } ) {\n\tconst showPaddingControl = useHasPadding( name );\n\tconst showMarginControl = useHasMargin( name );\n\tconst showGapControl = useHasGap( name );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units', name )[ 0 ] || [\n\t\t\t'%',\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t\t'vw',\n\t\t],\n\t} );\n\n\tconst [ rawPadding, setRawPadding ] = useStyle( 'spacing.padding', name );\n\tconst paddingValues = splitStyleValue( rawPadding );\n\tconst paddingSides = useCustomSides( name, 'padding' );\n\tconst isAxialPadding =\n\t\tpaddingSides &&\n\t\tpaddingSides.some( ( side ) => AXIAL_SIDES.includes( side ) );\n\n\tconst setPaddingValues = ( newPaddingValues ) => {\n\t\tconst padding = filterValuesBySides( newPaddingValues, paddingSides );\n\t\tsetRawPadding( padding );\n\t};\n\tconst resetPaddingValue = () => setPaddingValues( {} );\n\tconst hasPaddingValue = () =>\n\t\t!! paddingValues && Object.keys( paddingValues ).length;\n\n\tconst [ rawMargin, setRawMargin ] = useStyle( 'spacing.margin', name );\n\tconst marginValues = splitStyleValue( rawMargin );\n\tconst marginSides = useCustomSides( name, 'margin' );\n\tconst isAxialMargin =\n\t\tmarginSides &&\n\t\tmarginSides.some( ( side ) => AXIAL_SIDES.includes( side ) );\n\n\tconst setMarginValues = ( newMarginValues ) => {\n\t\tconst margin = filterValuesBySides( newMarginValues, marginSides );\n\t\tsetRawMargin( margin );\n\t};\n\tconst resetMarginValue = () => setMarginValues( {} );\n\tconst hasMarginValue = () =>\n\t\t!! marginValues && Object.keys( marginValues ).length;\n\n\tconst [ gapValue, setGapValue ] = useStyle( 'spacing.blockGap', name );\n\tconst resetGapValue = () => setGapValue( undefined );\n\tconst hasGapValue = () => !! gapValue;\n\n\tconst resetAll = () => {\n\t\tresetPaddingValue();\n\t\tresetMarginValue();\n\t\tresetGapValue();\n\t};\n\n\treturn (\n\t\t<ToolsPanel label={ __( 'Dimensions' ) } resetAll={ resetAll }>\n\t\t\t{ showPaddingControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasPaddingValue }\n\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\tonDeselect={ resetPaddingValue }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t>\n\t\t\t\t\t<BoxControl\n\t\t\t\t\t\tvalues={ paddingValues }\n\t\t\t\t\t\tonChange={ setPaddingValues }\n\t\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\t\tsides={ paddingSides }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\tsplitOnAxis={ isAxialPadding }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showMarginControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasMarginValue }\n\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\tonDeselect={ resetMarginValue }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t>\n\t\t\t\t\t<BoxControl\n\t\t\t\t\t\tvalues={ marginValues }\n\t\t\t\t\t\tonChange={ setMarginValues }\n\t\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\t\tsides={ marginSides }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\tsplitOnAxis={ isAxialMargin }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showGapControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasGapValue }\n\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\tonDeselect={ resetGapValue }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t>\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tonChange={ setGapValue }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tvalue={ gapValue }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</ToolsPanel>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/dimensions-panel.js"],"names":["AXIAL_SIDES","useHasDimensionsPanel","name","hasContentSize","useHasContentSize","hasWideSize","useHasWideSize","hasPadding","useHasPadding","hasMargin","useHasMargin","hasGap","useHasGap","supports","settings","includes","filterValuesBySides","values","sides","filteredValues","forEach","side","top","bottom","left","right","splitStyleValue","value","useContentSizeProps","contentSizeValue","setContentSizeValue","userSetContentSizeValue","hasUserSetContentSizeValue","resetContentSizeValue","useWideSizeProps","wideSizeValue","setWideSizeValue","userSetWideSizeValue","hasUserSetWideSizeValue","resetWideSizeValue","usePaddingProps","rawPadding","setRawPadding","paddingValues","paddingSides","isAxialPadding","some","setPaddingValues","newPaddingValues","padding","resetPaddingValue","userSetPaddingValue","hasPaddingValue","useMarginProps","rawMargin","setRawMargin","marginValues","marginSides","isAxialMargin","setMarginValues","newMarginValues","margin","resetMarginValue","hasMarginValue","Object","keys","length","useBlockGapProps","gapValue","setGapValue","resetGapValue","undefined","userSetGapValue","hasGapValue","DimensionsPanel","showContentSizeControl","showWideSizeControl","showPaddingControl","showMarginControl","showGapControl","units","availableUnits","resetAll","nextContentSize","positionCenter","nextWideSize","stretchWide"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\t__experimentalBoxControl as BoxControl,\n\t__experimentalHStack as HStack,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalView as View,\n} from '@wordpress/components';\nimport { __experimentalUseCustomSides as useCustomSides } from '@wordpress/block-editor';\nimport { Icon, positionCenter, stretchWide } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { getSupportedGlobalStylesPanels, useSetting, useStyle } from './hooks';\n\nconst AXIAL_SIDES = [ 'horizontal', 'vertical' ];\n\nexport function useHasDimensionsPanel( name ) {\n\tconst hasContentSize = useHasContentSize( name );\n\tconst hasWideSize = useHasWideSize( name );\n\tconst hasPadding = useHasPadding( name );\n\tconst hasMargin = useHasMargin( name );\n\tconst hasGap = useHasGap( name );\n\n\treturn hasContentSize || hasWideSize || hasPadding || hasMargin || hasGap;\n}\n\nfunction useHasContentSize( name ) {\n\tconst supports = getSupportedGlobalStylesPanels( name );\n\tconst [ settings ] = useSetting( 'layout.contentSize', name );\n\n\treturn settings && supports.includes( 'contentSize' );\n}\n\nfunction useHasWideSize( name ) {\n\tconst supports = getSupportedGlobalStylesPanels( name );\n\tconst [ settings ] = useSetting( 'layout.wideSize', name );\n\n\treturn settings && supports.includes( 'wideSize' );\n}\n\nfunction useHasPadding( name ) {\n\tconst supports = getSupportedGlobalStylesPanels( name );\n\tconst [ settings ] = useSetting( 'spacing.padding', name );\n\n\treturn settings && supports.includes( 'padding' );\n}\n\nfunction useHasMargin( name ) {\n\tconst supports = getSupportedGlobalStylesPanels( name );\n\tconst [ settings ] = useSetting( 'spacing.margin', name );\n\n\treturn settings && supports.includes( 'margin' );\n}\n\nfunction useHasGap( name ) {\n\tconst supports = getSupportedGlobalStylesPanels( name );\n\tconst [ settings ] = useSetting( 'spacing.blockGap', name );\n\n\treturn settings && supports.includes( 'blockGap' );\n}\n\nfunction filterValuesBySides( values, sides ) {\n\tif ( ! sides ) {\n\t\t// If no custom side configuration all sides are opted into by default.\n\t\treturn values;\n\t}\n\n\t// Only include sides opted into within filtered values.\n\tconst filteredValues = {};\n\tsides.forEach( ( side ) => {\n\t\tif ( side === 'vertical' ) {\n\t\t\tfilteredValues.top = values.top;\n\t\t\tfilteredValues.bottom = values.bottom;\n\t\t}\n\t\tif ( side === 'horizontal' ) {\n\t\t\tfilteredValues.left = values.left;\n\t\t\tfilteredValues.right = values.right;\n\t\t}\n\t\tfilteredValues[ side ] = values[ side ];\n\t} );\n\n\treturn filteredValues;\n}\n\nfunction splitStyleValue( value ) {\n\t// Check for shorthand value ( a string value ).\n\tif ( value && typeof value === 'string' ) {\n\t\t// Convert to value for individual sides for BoxControl.\n\t\treturn {\n\t\t\ttop: value,\n\t\t\tright: value,\n\t\t\tbottom: value,\n\t\t\tleft: value,\n\t\t};\n\t}\n\n\treturn value;\n}\n\n// Props for managing `layout.contentSize`.\nfunction useContentSizeProps( name ) {\n\tconst [ contentSizeValue, setContentSizeValue ] = useSetting(\n\t\t'layout.contentSize',\n\t\tname\n\t);\n\tconst [ userSetContentSizeValue ] = useSetting(\n\t\t'layout.contentSize',\n\t\tname,\n\t\t'user'\n\t);\n\tconst hasUserSetContentSizeValue = () => !! userSetContentSizeValue;\n\tconst resetContentSizeValue = () => setContentSizeValue( '' );\n\treturn {\n\t\tcontentSizeValue,\n\t\tsetContentSizeValue,\n\t\thasUserSetContentSizeValue,\n\t\tresetContentSizeValue,\n\t};\n}\n\n// Props for managing `layout.wideSize`.\nfunction useWideSizeProps( name ) {\n\tconst [ wideSizeValue, setWideSizeValue ] = useSetting(\n\t\t'layout.wideSize',\n\t\tname\n\t);\n\tconst [ userSetWideSizeValue ] = useSetting(\n\t\t'layout.wideSize',\n\t\tname,\n\t\t'user'\n\t);\n\tconst hasUserSetWideSizeValue = () => !! userSetWideSizeValue;\n\tconst resetWideSizeValue = () => setWideSizeValue( '' );\n\treturn {\n\t\twideSizeValue,\n\t\tsetWideSizeValue,\n\t\thasUserSetWideSizeValue,\n\t\tresetWideSizeValue,\n\t};\n}\n\n// Props for managing `spacing.padding`.\nfunction usePaddingProps( name ) {\n\tconst [ rawPadding, setRawPadding ] = useStyle( 'spacing.padding', name );\n\tconst paddingValues = splitStyleValue( rawPadding );\n\tconst paddingSides = useCustomSides( name, 'padding' );\n\tconst isAxialPadding =\n\t\tpaddingSides &&\n\t\tpaddingSides.some( ( side ) => AXIAL_SIDES.includes( side ) );\n\n\tconst setPaddingValues = ( newPaddingValues ) => {\n\t\tconst padding = filterValuesBySides( newPaddingValues, paddingSides );\n\t\tsetRawPadding( padding );\n\t};\n\tconst resetPaddingValue = () => setPaddingValues( {} );\n\tconst [ userSetPaddingValue ] = useStyle( 'spacing.padding', name, 'user' );\n\t// The `hasPaddingValue` check does not need a parsed value, as `userSetPaddingValue` will be `undefined` if not set.\n\tconst hasPaddingValue = () => !! userSetPaddingValue;\n\n\treturn {\n\t\tpaddingValues,\n\t\tpaddingSides,\n\t\tisAxialPadding,\n\t\tsetPaddingValues,\n\t\tresetPaddingValue,\n\t\thasPaddingValue,\n\t};\n}\n\n// Props for managing `spacing.margin`.\nfunction useMarginProps( name ) {\n\tconst [ rawMargin, setRawMargin ] = useStyle( 'spacing.margin', name );\n\tconst marginValues = splitStyleValue( rawMargin );\n\tconst marginSides = useCustomSides( name, 'margin' );\n\tconst isAxialMargin =\n\t\tmarginSides &&\n\t\tmarginSides.some( ( side ) => AXIAL_SIDES.includes( side ) );\n\n\tconst setMarginValues = ( newMarginValues ) => {\n\t\tconst margin = filterValuesBySides( newMarginValues, marginSides );\n\t\tsetRawMargin( margin );\n\t};\n\tconst resetMarginValue = () => setMarginValues( {} );\n\tconst hasMarginValue = () =>\n\t\t!! marginValues && Object.keys( marginValues ).length;\n\n\treturn {\n\t\tmarginValues,\n\t\tmarginSides,\n\t\tisAxialMargin,\n\t\tsetMarginValues,\n\t\tresetMarginValue,\n\t\thasMarginValue,\n\t};\n}\n\n// Props for managing `spacing.blockGap`.\nfunction useBlockGapProps( name ) {\n\tconst [ gapValue, setGapValue ] = useStyle( 'spacing.blockGap', name );\n\tconst resetGapValue = () => setGapValue( undefined );\n\tconst [ userSetGapValue ] = useStyle( 'spacing.blockGap', name, 'user' );\n\tconst hasGapValue = () => !! userSetGapValue;\n\treturn {\n\t\tgapValue,\n\t\tsetGapValue,\n\t\tresetGapValue,\n\t\thasGapValue,\n\t};\n}\n\nexport default function DimensionsPanel( { name } ) {\n\tconst showContentSizeControl = useHasContentSize( name );\n\tconst showWideSizeControl = useHasWideSize( name );\n\tconst showPaddingControl = useHasPadding( name );\n\tconst showMarginControl = useHasMargin( name );\n\tconst showGapControl = useHasGap( name );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units', name )[ 0 ] || [\n\t\t\t'%',\n\t\t\t'px',\n\t\t\t'em',\n\t\t\t'rem',\n\t\t\t'vw',\n\t\t],\n\t} );\n\n\t// Props for managing `layout.contentSize`.\n\tconst {\n\t\tcontentSizeValue,\n\t\tsetContentSizeValue,\n\t\thasUserSetContentSizeValue,\n\t\tresetContentSizeValue,\n\t} = useContentSizeProps( name );\n\n\t// Props for managing `layout.wideSize`.\n\tconst {\n\t\twideSizeValue,\n\t\tsetWideSizeValue,\n\t\thasUserSetWideSizeValue,\n\t\tresetWideSizeValue,\n\t} = useWideSizeProps( name );\n\n\t// Props for managing `spacing.padding`.\n\tconst {\n\t\tpaddingValues,\n\t\tpaddingSides,\n\t\tisAxialPadding,\n\t\tsetPaddingValues,\n\t\tresetPaddingValue,\n\t\thasPaddingValue,\n\t} = usePaddingProps( name );\n\n\t// Props for managing `spacing.margin`.\n\tconst {\n\t\tmarginValues,\n\t\tmarginSides,\n\t\tisAxialMargin,\n\t\tsetMarginValues,\n\t\tresetMarginValue,\n\t\thasMarginValue,\n\t} = useMarginProps( name );\n\n\t// Props for managing `spacing.blockGap`.\n\tconst { gapValue, setGapValue, resetGapValue, hasGapValue } =\n\t\tuseBlockGapProps( name );\n\n\tconst resetAll = () => {\n\t\tresetPaddingValue();\n\t\tresetMarginValue();\n\t\tresetGapValue();\n\t\tresetContentSizeValue();\n\t\tresetWideSizeValue();\n\t};\n\n\treturn (\n\t\t<ToolsPanel label={ __( 'Dimensions' ) } resetAll={ resetAll }>\n\t\t\t{ ( showContentSizeControl || showWideSizeControl ) && (\n\t\t\t\t<span className=\"span-columns\">\n\t\t\t\t\t{ __( 'Set the width of the main content area.' ) }\n\t\t\t\t</span>\n\t\t\t) }\n\t\t\t{ showContentSizeControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Content size' ) }\n\t\t\t\t\thasValue={ hasUserSetContentSizeValue }\n\t\t\t\t\tonDeselect={ resetContentSizeValue }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t>\n\t\t\t\t\t<HStack alignment=\"flex-end\" justify=\"flex-start\">\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tlabel={ __( 'Content' ) }\n\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\tvalue={ contentSizeValue || '' }\n\t\t\t\t\t\t\tonChange={ ( nextContentSize ) => {\n\t\t\t\t\t\t\t\tsetContentSizeValue( nextContentSize );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View>\n\t\t\t\t\t\t\t<Icon icon={ positionCenter } />\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</HStack>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showWideSizeControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\tclassName=\"single-column\"\n\t\t\t\t\tlabel={ __( 'Wide size' ) }\n\t\t\t\t\thasValue={ hasUserSetWideSizeValue }\n\t\t\t\t\tonDeselect={ resetWideSizeValue }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t>\n\t\t\t\t\t<HStack alignment=\"flex-end\" justify=\"flex-start\">\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tlabel={ __( 'Wide' ) }\n\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\tvalue={ wideSizeValue || '' }\n\t\t\t\t\t\t\tonChange={ ( nextWideSize ) => {\n\t\t\t\t\t\t\t\tsetWideSizeValue( nextWideSize );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View>\n\t\t\t\t\t\t\t<Icon icon={ stretchWide } />\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</HStack>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showPaddingControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasPaddingValue }\n\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\tonDeselect={ resetPaddingValue }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t>\n\t\t\t\t\t<BoxControl\n\t\t\t\t\t\tvalues={ paddingValues }\n\t\t\t\t\t\tonChange={ setPaddingValues }\n\t\t\t\t\t\tlabel={ __( 'Padding' ) }\n\t\t\t\t\t\tsides={ paddingSides }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\tsplitOnAxis={ isAxialPadding }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showMarginControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasMarginValue }\n\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\tonDeselect={ resetMarginValue }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t>\n\t\t\t\t\t<BoxControl\n\t\t\t\t\t\tvalues={ marginValues }\n\t\t\t\t\t\tonChange={ setMarginValues }\n\t\t\t\t\t\tlabel={ __( 'Margin' ) }\n\t\t\t\t\t\tsides={ marginSides }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tallowReset={ false }\n\t\t\t\t\t\tsplitOnAxis={ isAxialMargin }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t\t{ showGapControl && (\n\t\t\t\t<ToolsPanelItem\n\t\t\t\t\thasValue={ hasGapValue }\n\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\tonDeselect={ resetGapValue }\n\t\t\t\t\tisShownByDefault={ true }\n\t\t\t\t>\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\tlabel={ __( 'Block spacing' ) }\n\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tonChange={ setGapValue }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tvalue={ gapValue }\n\t\t\t\t\t/>\n\t\t\t\t</ToolsPanelItem>\n\t\t\t) }\n\t\t</ToolsPanel>\n\t);\n}\n"]}
@@ -27,6 +27,8 @@ var _context = require("./context");
27
27
  /**
28
28
  * Internal dependencies
29
29
  */
30
+ const identity = x => x;
31
+
30
32
  function mergeTreesCustomizer(_, srcValue) {
31
33
  // We only pass as arrays the presets,
32
34
  // in which case we want the new array of values
@@ -41,11 +43,11 @@ function mergeBaseAndUserConfigs(base, user) {
41
43
  }
42
44
 
43
45
  const cleanEmptyObject = object => {
44
- if (!(0, _lodash.isObject)(object) || Array.isArray(object)) {
46
+ if (object === null || typeof object !== 'object' || Array.isArray(object)) {
45
47
  return object;
46
48
  }
47
49
 
48
- const cleanedNestedObjects = (0, _lodash.pickBy)((0, _lodash.mapValues)(object, cleanEmptyObject), _lodash.identity);
50
+ const cleanedNestedObjects = (0, _lodash.pickBy)((0, _lodash.mapValues)(object, cleanEmptyObject), identity);
49
51
  return (0, _lodash.isEmpty)(cleanedNestedObjects) ? undefined : cleanedNestedObjects;
50
52
  };
51
53
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/global-styles-provider.js"],"names":["mergeTreesCustomizer","_","srcValue","Array","isArray","mergeBaseAndUserConfigs","base","user","cleanEmptyObject","object","cleanedNestedObjects","identity","undefined","useGlobalStylesUserConfig","globalStylesId","settings","styles","select","_globalStylesId","coreStore","__experimentalGetCurrentGlobalStylesId","record","getEditedEntityRecord","editEntityRecord","config","setConfig","callback","currentConfig","updatedConfig","useGlobalStylesBaseConfig","baseConfig","__experimentalGetCurrentThemeBaseGlobalStyles","useGlobalStylesContext","isUserConfigReady","userConfig","setUserConfig","isBaseConfigReady","mergedConfig","context","isReady","merged","GlobalStylesProvider","children"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tmergeWith,\n\tpickBy,\n\tisEmpty,\n\tisObject,\n\tidentity,\n\tmapValues,\n} from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo, useCallback } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { GlobalStylesContext } from './context';\n\nfunction mergeTreesCustomizer( _, srcValue ) {\n\t// We only pass as arrays the presets,\n\t// in which case we want the new array of values\n\t// to override the old array (no merging).\n\tif ( Array.isArray( srcValue ) ) {\n\t\treturn srcValue;\n\t}\n}\n\nexport function mergeBaseAndUserConfigs( base, user ) {\n\treturn mergeWith( {}, base, user, mergeTreesCustomizer );\n}\n\nconst cleanEmptyObject = ( object ) => {\n\tif ( ! isObject( object ) || Array.isArray( object ) ) {\n\t\treturn object;\n\t}\n\tconst cleanedNestedObjects = pickBy(\n\t\tmapValues( object, cleanEmptyObject ),\n\t\tidentity\n\t);\n\treturn isEmpty( cleanedNestedObjects ) ? undefined : cleanedNestedObjects;\n};\n\nfunction useGlobalStylesUserConfig() {\n\tconst { globalStylesId, settings, styles } = useSelect( ( select ) => {\n\t\tconst _globalStylesId =\n\t\t\tselect( coreStore ).__experimentalGetCurrentGlobalStylesId();\n\t\tconst record = _globalStylesId\n\t\t\t? select( coreStore ).getEditedEntityRecord(\n\t\t\t\t\t'root',\n\t\t\t\t\t'globalStyles',\n\t\t\t\t\t_globalStylesId\n\t\t\t )\n\t\t\t: undefined;\n\t\treturn {\n\t\t\tglobalStylesId: _globalStylesId,\n\t\t\tsettings: record?.settings,\n\t\t\tstyles: record?.styles,\n\t\t};\n\t}, [] );\n\n\tconst { getEditedEntityRecord } = useSelect( coreStore );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst config = useMemo( () => {\n\t\treturn {\n\t\t\tsettings: settings ?? {},\n\t\t\tstyles: styles ?? {},\n\t\t};\n\t}, [ settings, styles ] );\n\n\tconst setConfig = useCallback(\n\t\t( callback ) => {\n\t\t\tconst record = getEditedEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId\n\t\t\t);\n\t\t\tconst currentConfig = {\n\t\t\t\tstyles: record?.styles ?? {},\n\t\t\t\tsettings: record?.settings ?? {},\n\t\t\t};\n\t\t\tconst updatedConfig = callback( currentConfig );\n\t\t\teditEntityRecord( 'root', 'globalStyles', globalStylesId, {\n\t\t\t\tstyles: cleanEmptyObject( updatedConfig.styles ) || {},\n\t\t\t\tsettings: cleanEmptyObject( updatedConfig.settings ) || {},\n\t\t\t} );\n\t\t},\n\t\t[ globalStylesId ]\n\t);\n\n\treturn [ !! settings || !! styles, config, setConfig ];\n}\n\nfunction useGlobalStylesBaseConfig() {\n\tconst baseConfig = useSelect( ( select ) => {\n\t\treturn select(\n\t\t\tcoreStore\n\t\t).__experimentalGetCurrentThemeBaseGlobalStyles();\n\t}, [] );\n\n\treturn [ !! baseConfig, baseConfig ];\n}\n\nfunction useGlobalStylesContext() {\n\tconst [ isUserConfigReady, userConfig, setUserConfig ] =\n\t\tuseGlobalStylesUserConfig();\n\tconst [ isBaseConfigReady, baseConfig ] = useGlobalStylesBaseConfig();\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! baseConfig || ! userConfig ) {\n\t\t\treturn {};\n\t\t}\n\t\treturn mergeBaseAndUserConfigs( baseConfig, userConfig );\n\t}, [ userConfig, baseConfig ] );\n\tconst context = useMemo( () => {\n\t\treturn {\n\t\t\tisReady: isUserConfigReady && isBaseConfigReady,\n\t\t\tuser: userConfig,\n\t\t\tbase: baseConfig,\n\t\t\tmerged: mergedConfig,\n\t\t\tsetUserConfig,\n\t\t};\n\t}, [\n\t\tmergedConfig,\n\t\tuserConfig,\n\t\tbaseConfig,\n\t\tsetUserConfig,\n\t\tisUserConfigReady,\n\t\tisBaseConfigReady,\n\t] );\n\n\treturn context;\n}\n\nexport function GlobalStylesProvider( { children } ) {\n\tconst context = useGlobalStylesContext();\n\tif ( ! context.isReady ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<GlobalStylesContext.Provider value={ context }>\n\t\t\t{ children }\n\t\t</GlobalStylesContext.Provider>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/global-styles-provider.js"],"names":["identity","x","mergeTreesCustomizer","_","srcValue","Array","isArray","mergeBaseAndUserConfigs","base","user","cleanEmptyObject","object","cleanedNestedObjects","undefined","useGlobalStylesUserConfig","globalStylesId","settings","styles","select","_globalStylesId","coreStore","__experimentalGetCurrentGlobalStylesId","record","getEditedEntityRecord","editEntityRecord","config","setConfig","callback","currentConfig","updatedConfig","useGlobalStylesBaseConfig","baseConfig","__experimentalGetCurrentThemeBaseGlobalStyles","useGlobalStylesContext","isUserConfigReady","userConfig","setUserConfig","isBaseConfigReady","mergedConfig","context","isReady","merged","GlobalStylesProvider","children"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { mergeWith, pickBy, isEmpty, mapValues } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo, useCallback } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { GlobalStylesContext } from './context';\n\nconst identity = ( x ) => x;\n\nfunction mergeTreesCustomizer( _, srcValue ) {\n\t// We only pass as arrays the presets,\n\t// in which case we want the new array of values\n\t// to override the old array (no merging).\n\tif ( Array.isArray( srcValue ) ) {\n\t\treturn srcValue;\n\t}\n}\n\nexport function mergeBaseAndUserConfigs( base, user ) {\n\treturn mergeWith( {}, base, user, mergeTreesCustomizer );\n}\n\nconst cleanEmptyObject = ( object ) => {\n\tif (\n\t\tobject === null ||\n\t\ttypeof object !== 'object' ||\n\t\tArray.isArray( object )\n\t) {\n\t\treturn object;\n\t}\n\tconst cleanedNestedObjects = pickBy(\n\t\tmapValues( object, cleanEmptyObject ),\n\t\tidentity\n\t);\n\treturn isEmpty( cleanedNestedObjects ) ? undefined : cleanedNestedObjects;\n};\n\nfunction useGlobalStylesUserConfig() {\n\tconst { globalStylesId, settings, styles } = useSelect( ( select ) => {\n\t\tconst _globalStylesId =\n\t\t\tselect( coreStore ).__experimentalGetCurrentGlobalStylesId();\n\t\tconst record = _globalStylesId\n\t\t\t? select( coreStore ).getEditedEntityRecord(\n\t\t\t\t\t'root',\n\t\t\t\t\t'globalStyles',\n\t\t\t\t\t_globalStylesId\n\t\t\t )\n\t\t\t: undefined;\n\t\treturn {\n\t\t\tglobalStylesId: _globalStylesId,\n\t\t\tsettings: record?.settings,\n\t\t\tstyles: record?.styles,\n\t\t};\n\t}, [] );\n\n\tconst { getEditedEntityRecord } = useSelect( coreStore );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst config = useMemo( () => {\n\t\treturn {\n\t\t\tsettings: settings ?? {},\n\t\t\tstyles: styles ?? {},\n\t\t};\n\t}, [ settings, styles ] );\n\n\tconst setConfig = useCallback(\n\t\t( callback ) => {\n\t\t\tconst record = getEditedEntityRecord(\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId\n\t\t\t);\n\t\t\tconst currentConfig = {\n\t\t\t\tstyles: record?.styles ?? {},\n\t\t\t\tsettings: record?.settings ?? {},\n\t\t\t};\n\t\t\tconst updatedConfig = callback( currentConfig );\n\t\t\teditEntityRecord( 'root', 'globalStyles', globalStylesId, {\n\t\t\t\tstyles: cleanEmptyObject( updatedConfig.styles ) || {},\n\t\t\t\tsettings: cleanEmptyObject( updatedConfig.settings ) || {},\n\t\t\t} );\n\t\t},\n\t\t[ globalStylesId ]\n\t);\n\n\treturn [ !! settings || !! styles, config, setConfig ];\n}\n\nfunction useGlobalStylesBaseConfig() {\n\tconst baseConfig = useSelect( ( select ) => {\n\t\treturn select(\n\t\t\tcoreStore\n\t\t).__experimentalGetCurrentThemeBaseGlobalStyles();\n\t}, [] );\n\n\treturn [ !! baseConfig, baseConfig ];\n}\n\nfunction useGlobalStylesContext() {\n\tconst [ isUserConfigReady, userConfig, setUserConfig ] =\n\t\tuseGlobalStylesUserConfig();\n\tconst [ isBaseConfigReady, baseConfig ] = useGlobalStylesBaseConfig();\n\tconst mergedConfig = useMemo( () => {\n\t\tif ( ! baseConfig || ! userConfig ) {\n\t\t\treturn {};\n\t\t}\n\t\treturn mergeBaseAndUserConfigs( baseConfig, userConfig );\n\t}, [ userConfig, baseConfig ] );\n\tconst context = useMemo( () => {\n\t\treturn {\n\t\t\tisReady: isUserConfigReady && isBaseConfigReady,\n\t\t\tuser: userConfig,\n\t\t\tbase: baseConfig,\n\t\t\tmerged: mergedConfig,\n\t\t\tsetUserConfig,\n\t\t};\n\t}, [\n\t\tmergedConfig,\n\t\tuserConfig,\n\t\tbaseConfig,\n\t\tsetUserConfig,\n\t\tisUserConfigReady,\n\t\tisBaseConfigReady,\n\t] );\n\n\treturn context;\n}\n\nexport function GlobalStylesProvider( { children } ) {\n\tconst context = useGlobalStylesContext();\n\tif ( ! context.isReady ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<GlobalStylesContext.Provider value={ context }>\n\t\t\t{ children }\n\t\t</GlobalStylesContext.Provider>\n\t);\n}\n"]}
@@ -154,9 +154,11 @@ function useStyle(path, blockName) {
154
154
  return [result, setStyle];
155
155
  }
156
156
 
157
- const ROOT_BLOCK_SUPPORTS = ['background', 'backgroundColor', 'color', 'linkColor', 'buttonColor', 'fontFamily', 'fontSize', 'fontStyle', 'fontWeight', 'lineHeight', 'textDecoration', 'textTransform', 'padding'];
157
+ const ROOT_BLOCK_SUPPORTS = ['background', 'backgroundColor', 'color', 'linkColor', 'buttonColor', 'fontFamily', 'fontSize', 'fontStyle', 'fontWeight', 'lineHeight', 'textDecoration', 'textTransform', 'padding', 'contentSize', 'wideSize', 'blockGap'];
158
158
 
159
159
  function getSupportedGlobalStylesPanels(name) {
160
+ var _blockType$supports, _blockType$supports$s, _blockType$supports2, _blockType$supports2$, _blockType$supports3, _blockType$supports3$, _blockType$supports3$2, _blockType$supports3$3;
161
+
160
162
  if (!name) {
161
163
  return ROOT_BLOCK_SUPPORTS;
162
164
  }
@@ -167,7 +169,14 @@ function getSupportedGlobalStylesPanels(name) {
167
169
  return [];
168
170
  }
169
171
 
170
- const supportKeys = [];
172
+ const supportKeys = []; // Check for blockGap support.
173
+ // Block spacing support doesn't map directly to a single style property, so needs to be handled separately.
174
+ // Also, only allow `blockGap` support if serialization has not been skipped, to be sure global spacing can be applied.
175
+
176
+ if (blockType !== null && blockType !== void 0 && (_blockType$supports = blockType.supports) !== null && _blockType$supports !== void 0 && (_blockType$supports$s = _blockType$supports.spacing) !== null && _blockType$supports$s !== void 0 && _blockType$supports$s.blockGap && (blockType === null || blockType === void 0 ? void 0 : (_blockType$supports2 = blockType.supports) === null || _blockType$supports2 === void 0 ? void 0 : (_blockType$supports2$ = _blockType$supports2.spacing) === null || _blockType$supports2$ === void 0 ? void 0 : _blockType$supports2$.__experimentalSkipSerialization) !== true && !(blockType !== null && blockType !== void 0 && (_blockType$supports3 = blockType.supports) !== null && _blockType$supports3 !== void 0 && (_blockType$supports3$ = _blockType$supports3.spacing) !== null && _blockType$supports3$ !== void 0 && (_blockType$supports3$2 = _blockType$supports3$.__experimentalSkipSerialization) !== null && _blockType$supports3$2 !== void 0 && (_blockType$supports3$3 = _blockType$supports3$2.some) !== null && _blockType$supports3$3 !== void 0 && _blockType$supports3$3.call(_blockType$supports3$2, spacingType => spacingType === 'blockGap'))) {
177
+ supportKeys.push('blockGap');
178
+ }
179
+
171
180
  Object.keys(_blocks.__EXPERIMENTAL_STYLE_PROPERTY).forEach(styleName => {
172
181
  if (!_blocks.__EXPERIMENTAL_STYLE_PROPERTY[styleName].support) {
173
182
  return;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/hooks.js"],"names":["EMPTY_CONFIG","settings","styles","useGlobalStylesReset","user","config","setUserConfig","GlobalStylesContext","canReset","useSetting","path","blockName","source","merged","mergedConfig","base","baseConfig","userConfig","fullPath","setSetting","newValue","currentConfig","newUserConfig","pathToSet","PATHS_WITH_MERGE","getSettingValueForContext","name","currentPath","getSettingValue","configToUse","result","custom","theme","default","resultWithFallback","useStyle","finalPath","setStyle","ROOT_BLOCK_SUPPORTS","getSupportedGlobalStylesPanels","blockType","supportKeys","Object","keys","STYLE_PROPERTY","forEach","styleName","support","requiresOptOut","supports","push","useColorsPerOrigin","customColors","themeColors","defaultColors","shouldDisplayDefaultColors","length","colors","useGradientsPerOrigin","customGradients","themeGradients","defaultGradients","shouldDisplayDefaultGradients","gradients"],"mappings":";;;;;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AASA;;AACA;;AApBA;AACA;AACA;;AAGA;AACA;AACA;;AASA;AACA;AACA;AAIA,MAAMA,YAAY,GAAG;AAAEC,EAAAA,QAAQ,EAAE,EAAZ;AAAgBC,EAAAA,MAAM,EAAE;AAAxB,CAArB;;AAEO,MAAMC,oBAAoB,GAAG,MAAM;AACzC,QAAM;AAAEC,IAAAA,IAAI,EAAEC,MAAR;AAAgBC,IAAAA;AAAhB,MAAkC,yBAAYC,4BAAZ,CAAxC;AACA,QAAMC,QAAQ,GAAG,CAAC,CAAEH,MAAH,IAAa,CAAE,qBAASA,MAAT,EAAiBL,YAAjB,CAAhC;AACA,SAAO,CACNQ,QADM,EAEN,0BACC,MAAMF,aAAa,CAAE,MAAMN,YAAR,CADpB,EAEC,CAAEM,aAAF,CAFD,CAFM,CAAP;AAOA,CAVM;;;;AAYA,SAASG,UAAT,CAAqBC,IAArB,EAA2BC,SAA3B,EAAuD;AAAA;;AAAA,MAAjBC,MAAiB,uEAAR,KAAQ;AAC7D,QAAM;AACLC,IAAAA,MAAM,EAAEC,YADH;AAELC,IAAAA,IAAI,EAAEC,UAFD;AAGLZ,IAAAA,IAAI,EAAEa,UAHD;AAILX,IAAAA;AAJK,MAKF,yBAAYC,4BAAZ,CALJ;AAOA,QAAMW,QAAQ,GAAG,CAAEP,SAAF,GACb,YAAYD,IAAM,EADL,GAEb,mBAAmBC,SAAW,IAAID,IAAM,EAF5C;;AAIA,QAAMS,UAAU,GAAKC,QAAF,IAAgB;AAClCd,IAAAA,aAAa,CAAIe,aAAF,IAAqB;AACnC,YAAMC,aAAa,GAAG,uBAAWD,aAAX,CAAtB;AACA,YAAME,SAAS,GAAGC,wCAAkBd,IAAlB,IACfQ,QAAQ,GAAG,SADI,GAEfA,QAFH;AAGA,uBAAKI,aAAL,EAAoBC,SAApB,EAA+BH,QAA/B;AAEA,aAAOE,aAAP;AACA,KARY,CAAb;AASA,GAVD;;AAYA,QAAMG,yBAAyB,GAAKC,IAAF,IAAY;AAC7C,UAAMC,WAAW,GAAG,CAAED,IAAF,GAChB,YAAYhB,IAAM,EADF,GAEhB,mBAAmBgB,IAAM,IAAIhB,IAAM,EAFvC;;AAIA,UAAMkB,eAAe,GAAKC,WAAF,IAAmB;AAC1C,YAAMC,MAAM,GAAG,iBAAKD,WAAL,EAAkBF,WAAlB,CAAf;;AACA,UAAKH,wCAAkBd,IAAlB,CAAL,EAAgC;AAAA;;AAC/B,yCAAOoB,MAAP,aAAOA,MAAP,uBAAOA,MAAM,CAAEC,MAAf,2DAAyBD,MAAzB,aAAyBA,MAAzB,uBAAyBA,MAAM,CAAEE,KAAjC,uCAA0CF,MAA1C,aAA0CA,MAA1C,uBAA0CA,MAAM,CAAEG,OAAlD;AACA;;AACD,aAAOH,MAAP;AACA,KAND;;AAQA,QAAIA,MAAJ;;AACA,YAASlB,MAAT;AACC,WAAK,KAAL;AACCkB,QAAAA,MAAM,GAAGF,eAAe,CAAEd,YAAF,CAAxB;AACA;;AACD,WAAK,MAAL;AACCgB,QAAAA,MAAM,GAAGF,eAAe,CAAEX,UAAF,CAAxB;AACA;;AACD,WAAK,MAAL;AACCa,QAAAA,MAAM,GAAGF,eAAe,CAAEZ,UAAF,CAAxB;AACA;;AACD;AACC,cAAM,oBAAN;AAXF;;AAcA,WAAOc,MAAP;AACA,GA7BD,CAxB6D,CAuD7D;;;AACA,QAAMI,kBAAkB,4BACvBT,yBAAyB,CAAEd,SAAF,CADF,yEACmBc,yBAAyB,EADpE;AAGA,SAAO,CAAES,kBAAF,EAAsBf,UAAtB,CAAP;AACA;;AAEM,SAASgB,QAAT,CAAmBzB,IAAnB,EAAyBC,SAAzB,EAAqD;AAAA;;AAAA,MAAjBC,MAAiB,uEAAR,KAAQ;AAC3D,QAAM;AACLC,IAAAA,MAAM,EAAEC,YADH;AAELC,IAAAA,IAAI,EAAEC,UAFD;AAGLZ,IAAAA,IAAI,EAAEa,UAHD;AAILX,IAAAA;AAJK,MAKF,yBAAYC,4BAAZ,CALJ;AAMA,QAAM6B,SAAS,GAAG,CAAEzB,SAAF,GACd,UAAUD,IAAM,EADF,GAEd,iBAAiBC,SAAW,IAAID,IAAM,EAF1C;;AAIA,QAAM2B,QAAQ,GAAKjB,QAAF,IAAgB;AAChCd,IAAAA,aAAa,CAAIe,aAAF,IAAqB;AACnC,YAAMC,aAAa,GAAG,uBAAWD,aAAX,CAAtB;AACA,uBACCC,aADD,EAECc,SAFD,EAGC,uCACCtB,YAAY,CAACb,QADd,EAECU,SAFD,EAGCD,IAHD,EAICU,QAJD,CAHD;AAUA,aAAOE,aAAP;AACA,KAbY,CAAb;AAcA,GAfD;;AAiBA,MAAIQ,MAAJ;;AACA,UAASlB,MAAT;AACC,SAAK,KAAL;AACCkB,MAAAA,MAAM,GAAG,iCACRhB,YAAY,CAACb,QADL,EAERU,SAFQ,UAGR,iBAAKM,UAAL,EAAiBmB,SAAjB,CAHQ,uCAGwB,iBAAKpB,UAAL,EAAiBoB,SAAjB,CAHxB,CAAT;AAKA;;AACD,SAAK,MAAL;AACCN,MAAAA,MAAM,GAAG,iCACRhB,YAAY,CAACb,QADL,EAERU,SAFQ,EAGR,iBAAKM,UAAL,EAAiBmB,SAAjB,CAHQ,CAAT;AAKA;;AACD,SAAK,MAAL;AACCN,MAAAA,MAAM,GAAG,iCACRd,UAAU,CAACf,QADH,EAERU,SAFQ,EAGR,iBAAKK,UAAL,EAAiBoB,SAAjB,CAHQ,CAAT;AAKA;;AACD;AACC,YAAM,oBAAN;AAvBF;;AA0BA,SAAO,CAAEN,MAAF,EAAUO,QAAV,CAAP;AACA;;AAED,MAAMC,mBAAmB,GAAG,CAC3B,YAD2B,EAE3B,iBAF2B,EAG3B,OAH2B,EAI3B,WAJ2B,EAK3B,aAL2B,EAM3B,YAN2B,EAO3B,UAP2B,EAQ3B,WAR2B,EAS3B,YAT2B,EAU3B,YAV2B,EAW3B,gBAX2B,EAY3B,eAZ2B,EAa3B,SAb2B,CAA5B;;AAgBO,SAASC,8BAAT,CAAyCb,IAAzC,EAAgD;AACtD,MAAK,CAAEA,IAAP,EAAc;AACb,WAAOY,mBAAP;AACA;;AAED,QAAME,SAAS,GAAG,0BAAcd,IAAd,CAAlB;;AAEA,MAAK,CAAEc,SAAP,EAAmB;AAClB,WAAO,EAAP;AACA;;AAED,QAAMC,WAAW,GAAG,EAApB;AACAC,EAAAA,MAAM,CAACC,IAAP,CAAaC,qCAAb,EAA8BC,OAA9B,CAAyCC,SAAF,IAAiB;AACvD,QAAK,CAAEF,sCAAgBE,SAAhB,EAA4BC,OAAnC,EAA6C;AAC5C;AACA,KAHsD,CAKvD;AACA;AACA;;;AACA,QAAKH,sCAAgBE,SAAhB,EAA4BE,cAAjC,EAAkD;AACjD,UACC,iBACCR,SAAS,CAACS,QADX,EAECL,sCAAgBE,SAAhB,EAA4BC,OAA5B,CAAqC,CAArC,CAFD,KAIA,iBACCP,SAAS,CAACS,QADX,EAECL,sCAAgBE,SAAhB,EAA4BC,OAF7B,MAGM,KARP,EASE;AACD,eAAON,WAAW,CAACS,IAAZ,CAAkBJ,SAAlB,CAAP;AACA;AACD;;AAED,QACC,iBACCN,SAAS,CAACS,QADX,EAECL,sCAAgBE,SAAhB,EAA4BC,OAF7B,EAGC,KAHD,CADD,EAME;AACD,aAAON,WAAW,CAACS,IAAZ,CAAkBJ,SAAlB,CAAP;AACA;AACD,GAhCD;AAkCA,SAAOL,WAAP;AACA;;AAEM,SAASU,kBAAT,CAA6BzB,IAA7B,EAAoC;AAC1C,QAAM,CAAE0B,YAAF,IAAmB3C,UAAU,CAAE,sBAAF,EAA0BiB,IAA1B,CAAnC;AACA,QAAM,CAAE2B,WAAF,IAAkB5C,UAAU,CAAE,qBAAF,EAAyBiB,IAAzB,CAAlC;AACA,QAAM,CAAE4B,aAAF,IAAoB7C,UAAU,CAAE,uBAAF,EAA2BiB,IAA3B,CAApC;AACA,QAAM,CAAE6B,0BAAF,IAAiC9C,UAAU,CAAE,sBAAF,CAAjD;AAEA,SAAO,sBAAS,MAAM;AACrB,UAAMqB,MAAM,GAAG,EAAf;;AACA,QAAKuB,WAAW,IAAIA,WAAW,CAACG,MAAhC,EAAyC;AACxC1B,MAAAA,MAAM,CAACoB,IAAP,CAAa;AACZxB,QAAAA,IAAI,EAAE,cACL,OADK,EAEL,8CAFK,CADM;AAKZ+B,QAAAA,MAAM,EAAEJ;AALI,OAAb;AAOA;;AACD,QACCE,0BAA0B,IAC1BD,aADA,IAEAA,aAAa,CAACE,MAHf,EAIE;AACD1B,MAAAA,MAAM,CAACoB,IAAP,CAAa;AACZxB,QAAAA,IAAI,EAAE,cACL,SADK,EAEL,8CAFK,CADM;AAKZ+B,QAAAA,MAAM,EAAEH;AALI,OAAb;AAOA;;AACD,QAAKF,YAAY,IAAIA,YAAY,CAACI,MAAlC,EAA2C;AAC1C1B,MAAAA,MAAM,CAACoB,IAAP,CAAa;AACZxB,QAAAA,IAAI,EAAE,cACL,QADK,EAEL,gDAFK,CADM;AAKZ+B,QAAAA,MAAM,EAAEL;AALI,OAAb;AAOA;;AACD,WAAOtB,MAAP;AACA,GAlCM,EAkCJ,CAAEsB,YAAF,EAAgBC,WAAhB,EAA6BC,aAA7B,CAlCI,CAAP;AAmCA;;AAEM,SAASI,qBAAT,CAAgChC,IAAhC,EAAuC;AAC7C,QAAM,CAAEiC,eAAF,IAAsBlD,UAAU,CAAE,wBAAF,EAA4BiB,IAA5B,CAAtC;AACA,QAAM,CAAEkC,cAAF,IAAqBnD,UAAU,CAAE,uBAAF,EAA2BiB,IAA3B,CAArC;AACA,QAAM,CAAEmC,gBAAF,IAAuBpD,UAAU,CAAE,yBAAF,EAA6BiB,IAA7B,CAAvC;AACA,QAAM,CAAEoC,6BAAF,IAAoCrD,UAAU,CACnD,wBADmD,CAApD;AAIA,SAAO,sBAAS,MAAM;AACrB,UAAMqB,MAAM,GAAG,EAAf;;AACA,QAAK8B,cAAc,IAAIA,cAAc,CAACJ,MAAtC,EAA+C;AAC9C1B,MAAAA,MAAM,CAACoB,IAAP,CAAa;AACZxB,QAAAA,IAAI,EAAE,cACL,OADK,EAEL,8CAFK,CADM;AAKZqC,QAAAA,SAAS,EAAEH;AALC,OAAb;AAOA;;AACD,QACCE,6BAA6B,IAC7BD,gBADA,IAEAA,gBAAgB,CAACL,MAHlB,EAIE;AACD1B,MAAAA,MAAM,CAACoB,IAAP,CAAa;AACZxB,QAAAA,IAAI,EAAE,cACL,SADK,EAEL,8CAFK,CADM;AAKZqC,QAAAA,SAAS,EAAEF;AALC,OAAb;AAOA;;AACD,QAAKF,eAAe,IAAIA,eAAe,CAACH,MAAxC,EAAiD;AAChD1B,MAAAA,MAAM,CAACoB,IAAP,CAAa;AACZxB,QAAAA,IAAI,EAAE,cACL,QADK,EAEL,gDAFK,CADM;AAKZqC,QAAAA,SAAS,EAAEJ;AALC,OAAb;AAOA;;AACD,WAAO7B,MAAP;AACA,GAlCM,EAkCJ,CAAE6B,eAAF,EAAmBC,cAAnB,EAAmCC,gBAAnC,CAlCI,CAAP;AAmCA","sourcesContent":["/**\n * External dependencies\n */\nimport { get, cloneDeep, set, isEqual, has } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { _x } from '@wordpress/i18n';\nimport { useContext, useCallback, useMemo } from '@wordpress/element';\nimport {\n\tgetBlockType,\n\t__EXPERIMENTAL_PATHS_WITH_MERGE as PATHS_WITH_MERGE,\n\t__EXPERIMENTAL_STYLE_PROPERTY as STYLE_PROPERTY,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { getValueFromVariable, getPresetVariableFromValue } from './utils';\nimport { GlobalStylesContext } from './context';\n\nconst EMPTY_CONFIG = { settings: {}, styles: {} };\n\nexport const useGlobalStylesReset = () => {\n\tconst { user: config, setUserConfig } = useContext( GlobalStylesContext );\n\tconst canReset = !! config && ! isEqual( config, EMPTY_CONFIG );\n\treturn [\n\t\tcanReset,\n\t\tuseCallback(\n\t\t\t() => setUserConfig( () => EMPTY_CONFIG ),\n\t\t\t[ setUserConfig ]\n\t\t),\n\t];\n};\n\nexport function useSetting( path, blockName, source = 'all' ) {\n\tconst {\n\t\tmerged: mergedConfig,\n\t\tbase: baseConfig,\n\t\tuser: userConfig,\n\t\tsetUserConfig,\n\t} = useContext( GlobalStylesContext );\n\n\tconst fullPath = ! blockName\n\t\t? `settings.${ path }`\n\t\t: `settings.blocks.${ blockName }.${ path }`;\n\n\tconst setSetting = ( newValue ) => {\n\t\tsetUserConfig( ( currentConfig ) => {\n\t\t\tconst newUserConfig = cloneDeep( currentConfig );\n\t\t\tconst pathToSet = PATHS_WITH_MERGE[ path ]\n\t\t\t\t? fullPath + '.custom'\n\t\t\t\t: fullPath;\n\t\t\tset( newUserConfig, pathToSet, newValue );\n\n\t\t\treturn newUserConfig;\n\t\t} );\n\t};\n\n\tconst getSettingValueForContext = ( name ) => {\n\t\tconst currentPath = ! name\n\t\t\t? `settings.${ path }`\n\t\t\t: `settings.blocks.${ name }.${ path }`;\n\n\t\tconst getSettingValue = ( configToUse ) => {\n\t\t\tconst result = get( configToUse, currentPath );\n\t\t\tif ( PATHS_WITH_MERGE[ path ] ) {\n\t\t\t\treturn result?.custom ?? result?.theme ?? result?.default;\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\n\t\tlet result;\n\t\tswitch ( source ) {\n\t\t\tcase 'all':\n\t\t\t\tresult = getSettingValue( mergedConfig );\n\t\t\t\tbreak;\n\t\t\tcase 'user':\n\t\t\t\tresult = getSettingValue( userConfig );\n\t\t\t\tbreak;\n\t\t\tcase 'base':\n\t\t\t\tresult = getSettingValue( baseConfig );\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow 'Unsupported source';\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Unlike styles settings get inherited from top level settings.\n\tconst resultWithFallback =\n\t\tgetSettingValueForContext( blockName ) ?? getSettingValueForContext();\n\n\treturn [ resultWithFallback, setSetting ];\n}\n\nexport function useStyle( path, blockName, source = 'all' ) {\n\tconst {\n\t\tmerged: mergedConfig,\n\t\tbase: baseConfig,\n\t\tuser: userConfig,\n\t\tsetUserConfig,\n\t} = useContext( GlobalStylesContext );\n\tconst finalPath = ! blockName\n\t\t? `styles.${ path }`\n\t\t: `styles.blocks.${ blockName }.${ path }`;\n\n\tconst setStyle = ( newValue ) => {\n\t\tsetUserConfig( ( currentConfig ) => {\n\t\t\tconst newUserConfig = cloneDeep( currentConfig );\n\t\t\tset(\n\t\t\t\tnewUserConfig,\n\t\t\t\tfinalPath,\n\t\t\t\tgetPresetVariableFromValue(\n\t\t\t\t\tmergedConfig.settings,\n\t\t\t\t\tblockName,\n\t\t\t\t\tpath,\n\t\t\t\t\tnewValue\n\t\t\t\t)\n\t\t\t);\n\t\t\treturn newUserConfig;\n\t\t} );\n\t};\n\n\tlet result;\n\tswitch ( source ) {\n\t\tcase 'all':\n\t\t\tresult = getValueFromVariable(\n\t\t\t\tmergedConfig.settings,\n\t\t\t\tblockName,\n\t\t\t\tget( userConfig, finalPath ) ?? get( baseConfig, finalPath )\n\t\t\t);\n\t\t\tbreak;\n\t\tcase 'user':\n\t\t\tresult = getValueFromVariable(\n\t\t\t\tmergedConfig.settings,\n\t\t\t\tblockName,\n\t\t\t\tget( userConfig, finalPath )\n\t\t\t);\n\t\t\tbreak;\n\t\tcase 'base':\n\t\t\tresult = getValueFromVariable(\n\t\t\t\tbaseConfig.settings,\n\t\t\t\tblockName,\n\t\t\t\tget( baseConfig, finalPath )\n\t\t\t);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthrow 'Unsupported source';\n\t}\n\n\treturn [ result, setStyle ];\n}\n\nconst ROOT_BLOCK_SUPPORTS = [\n\t'background',\n\t'backgroundColor',\n\t'color',\n\t'linkColor',\n\t'buttonColor',\n\t'fontFamily',\n\t'fontSize',\n\t'fontStyle',\n\t'fontWeight',\n\t'lineHeight',\n\t'textDecoration',\n\t'textTransform',\n\t'padding',\n];\n\nexport function getSupportedGlobalStylesPanels( name ) {\n\tif ( ! name ) {\n\t\treturn ROOT_BLOCK_SUPPORTS;\n\t}\n\n\tconst blockType = getBlockType( name );\n\n\tif ( ! blockType ) {\n\t\treturn [];\n\t}\n\n\tconst supportKeys = [];\n\tObject.keys( STYLE_PROPERTY ).forEach( ( styleName ) => {\n\t\tif ( ! STYLE_PROPERTY[ styleName ].support ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Opting out means that, for certain support keys like background color,\n\t\t// blocks have to explicitly set the support value false. If the key is\n\t\t// unset, we still enable it.\n\t\tif ( STYLE_PROPERTY[ styleName ].requiresOptOut ) {\n\t\t\tif (\n\t\t\t\thas(\n\t\t\t\t\tblockType.supports,\n\t\t\t\t\tSTYLE_PROPERTY[ styleName ].support[ 0 ]\n\t\t\t\t) &&\n\t\t\t\tget(\n\t\t\t\t\tblockType.supports,\n\t\t\t\t\tSTYLE_PROPERTY[ styleName ].support\n\t\t\t\t) !== false\n\t\t\t) {\n\t\t\t\treturn supportKeys.push( styleName );\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\tget(\n\t\t\t\tblockType.supports,\n\t\t\t\tSTYLE_PROPERTY[ styleName ].support,\n\t\t\t\tfalse\n\t\t\t)\n\t\t) {\n\t\t\treturn supportKeys.push( styleName );\n\t\t}\n\t} );\n\n\treturn supportKeys;\n}\n\nexport function useColorsPerOrigin( name ) {\n\tconst [ customColors ] = useSetting( 'color.palette.custom', name );\n\tconst [ themeColors ] = useSetting( 'color.palette.theme', name );\n\tconst [ defaultColors ] = useSetting( 'color.palette.default', name );\n\tconst [ shouldDisplayDefaultColors ] = useSetting( 'color.defaultPalette' );\n\n\treturn useMemo( () => {\n\t\tconst result = [];\n\t\tif ( themeColors && themeColors.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Theme',\n\t\t\t\t\t'Indicates this palette comes from the theme.'\n\t\t\t\t),\n\t\t\t\tcolors: themeColors,\n\t\t\t} );\n\t\t}\n\t\tif (\n\t\t\tshouldDisplayDefaultColors &&\n\t\t\tdefaultColors &&\n\t\t\tdefaultColors.length\n\t\t) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Default',\n\t\t\t\t\t'Indicates this palette comes from WordPress.'\n\t\t\t\t),\n\t\t\t\tcolors: defaultColors,\n\t\t\t} );\n\t\t}\n\t\tif ( customColors && customColors.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Custom',\n\t\t\t\t\t'Indicates this palette is created by the user.'\n\t\t\t\t),\n\t\t\t\tcolors: customColors,\n\t\t\t} );\n\t\t}\n\t\treturn result;\n\t}, [ customColors, themeColors, defaultColors ] );\n}\n\nexport function useGradientsPerOrigin( name ) {\n\tconst [ customGradients ] = useSetting( 'color.gradients.custom', name );\n\tconst [ themeGradients ] = useSetting( 'color.gradients.theme', name );\n\tconst [ defaultGradients ] = useSetting( 'color.gradients.default', name );\n\tconst [ shouldDisplayDefaultGradients ] = useSetting(\n\t\t'color.defaultGradients'\n\t);\n\n\treturn useMemo( () => {\n\t\tconst result = [];\n\t\tif ( themeGradients && themeGradients.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Theme',\n\t\t\t\t\t'Indicates this palette comes from the theme.'\n\t\t\t\t),\n\t\t\t\tgradients: themeGradients,\n\t\t\t} );\n\t\t}\n\t\tif (\n\t\t\tshouldDisplayDefaultGradients &&\n\t\t\tdefaultGradients &&\n\t\t\tdefaultGradients.length\n\t\t) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Default',\n\t\t\t\t\t'Indicates this palette comes from WordPress.'\n\t\t\t\t),\n\t\t\t\tgradients: defaultGradients,\n\t\t\t} );\n\t\t}\n\t\tif ( customGradients && customGradients.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Custom',\n\t\t\t\t\t'Indicates this palette is created by the user.'\n\t\t\t\t),\n\t\t\t\tgradients: customGradients,\n\t\t\t} );\n\t\t}\n\t\treturn result;\n\t}, [ customGradients, themeGradients, defaultGradients ] );\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/hooks.js"],"names":["EMPTY_CONFIG","settings","styles","useGlobalStylesReset","user","config","setUserConfig","GlobalStylesContext","canReset","useSetting","path","blockName","source","merged","mergedConfig","base","baseConfig","userConfig","fullPath","setSetting","newValue","currentConfig","newUserConfig","pathToSet","PATHS_WITH_MERGE","getSettingValueForContext","name","currentPath","getSettingValue","configToUse","result","custom","theme","default","resultWithFallback","useStyle","finalPath","setStyle","ROOT_BLOCK_SUPPORTS","getSupportedGlobalStylesPanels","blockType","supportKeys","supports","spacing","blockGap","__experimentalSkipSerialization","some","spacingType","push","Object","keys","STYLE_PROPERTY","forEach","styleName","support","requiresOptOut","useColorsPerOrigin","customColors","themeColors","defaultColors","shouldDisplayDefaultColors","length","colors","useGradientsPerOrigin","customGradients","themeGradients","defaultGradients","shouldDisplayDefaultGradients","gradients"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get, cloneDeep, set, isEqual, has } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { _x } from '@wordpress/i18n';\nimport { useContext, useCallback, useMemo } from '@wordpress/element';\nimport {\n\tgetBlockType,\n\t__EXPERIMENTAL_PATHS_WITH_MERGE as PATHS_WITH_MERGE,\n\t__EXPERIMENTAL_STYLE_PROPERTY as STYLE_PROPERTY,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { getValueFromVariable, getPresetVariableFromValue } from './utils';\nimport { GlobalStylesContext } from './context';\n\nconst EMPTY_CONFIG = { settings: {}, styles: {} };\n\nexport const useGlobalStylesReset = () => {\n\tconst { user: config, setUserConfig } = useContext( GlobalStylesContext );\n\tconst canReset = !! config && ! isEqual( config, EMPTY_CONFIG );\n\treturn [\n\t\tcanReset,\n\t\tuseCallback(\n\t\t\t() => setUserConfig( () => EMPTY_CONFIG ),\n\t\t\t[ setUserConfig ]\n\t\t),\n\t];\n};\n\nexport function useSetting( path, blockName, source = 'all' ) {\n\tconst {\n\t\tmerged: mergedConfig,\n\t\tbase: baseConfig,\n\t\tuser: userConfig,\n\t\tsetUserConfig,\n\t} = useContext( GlobalStylesContext );\n\n\tconst fullPath = ! blockName\n\t\t? `settings.${ path }`\n\t\t: `settings.blocks.${ blockName }.${ path }`;\n\n\tconst setSetting = ( newValue ) => {\n\t\tsetUserConfig( ( currentConfig ) => {\n\t\t\tconst newUserConfig = cloneDeep( currentConfig );\n\t\t\tconst pathToSet = PATHS_WITH_MERGE[ path ]\n\t\t\t\t? fullPath + '.custom'\n\t\t\t\t: fullPath;\n\t\t\tset( newUserConfig, pathToSet, newValue );\n\n\t\t\treturn newUserConfig;\n\t\t} );\n\t};\n\n\tconst getSettingValueForContext = ( name ) => {\n\t\tconst currentPath = ! name\n\t\t\t? `settings.${ path }`\n\t\t\t: `settings.blocks.${ name }.${ path }`;\n\n\t\tconst getSettingValue = ( configToUse ) => {\n\t\t\tconst result = get( configToUse, currentPath );\n\t\t\tif ( PATHS_WITH_MERGE[ path ] ) {\n\t\t\t\treturn result?.custom ?? result?.theme ?? result?.default;\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\n\t\tlet result;\n\t\tswitch ( source ) {\n\t\t\tcase 'all':\n\t\t\t\tresult = getSettingValue( mergedConfig );\n\t\t\t\tbreak;\n\t\t\tcase 'user':\n\t\t\t\tresult = getSettingValue( userConfig );\n\t\t\t\tbreak;\n\t\t\tcase 'base':\n\t\t\t\tresult = getSettingValue( baseConfig );\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow 'Unsupported source';\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Unlike styles settings get inherited from top level settings.\n\tconst resultWithFallback =\n\t\tgetSettingValueForContext( blockName ) ?? getSettingValueForContext();\n\n\treturn [ resultWithFallback, setSetting ];\n}\n\nexport function useStyle( path, blockName, source = 'all' ) {\n\tconst {\n\t\tmerged: mergedConfig,\n\t\tbase: baseConfig,\n\t\tuser: userConfig,\n\t\tsetUserConfig,\n\t} = useContext( GlobalStylesContext );\n\tconst finalPath = ! blockName\n\t\t? `styles.${ path }`\n\t\t: `styles.blocks.${ blockName }.${ path }`;\n\n\tconst setStyle = ( newValue ) => {\n\t\tsetUserConfig( ( currentConfig ) => {\n\t\t\tconst newUserConfig = cloneDeep( currentConfig );\n\t\t\tset(\n\t\t\t\tnewUserConfig,\n\t\t\t\tfinalPath,\n\t\t\t\tgetPresetVariableFromValue(\n\t\t\t\t\tmergedConfig.settings,\n\t\t\t\t\tblockName,\n\t\t\t\t\tpath,\n\t\t\t\t\tnewValue\n\t\t\t\t)\n\t\t\t);\n\t\t\treturn newUserConfig;\n\t\t} );\n\t};\n\n\tlet result;\n\tswitch ( source ) {\n\t\tcase 'all':\n\t\t\tresult = getValueFromVariable(\n\t\t\t\tmergedConfig.settings,\n\t\t\t\tblockName,\n\t\t\t\tget( userConfig, finalPath ) ?? get( baseConfig, finalPath )\n\t\t\t);\n\t\t\tbreak;\n\t\tcase 'user':\n\t\t\tresult = getValueFromVariable(\n\t\t\t\tmergedConfig.settings,\n\t\t\t\tblockName,\n\t\t\t\tget( userConfig, finalPath )\n\t\t\t);\n\t\t\tbreak;\n\t\tcase 'base':\n\t\t\tresult = getValueFromVariable(\n\t\t\t\tbaseConfig.settings,\n\t\t\t\tblockName,\n\t\t\t\tget( baseConfig, finalPath )\n\t\t\t);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tthrow 'Unsupported source';\n\t}\n\n\treturn [ result, setStyle ];\n}\n\nconst ROOT_BLOCK_SUPPORTS = [\n\t'background',\n\t'backgroundColor',\n\t'color',\n\t'linkColor',\n\t'buttonColor',\n\t'fontFamily',\n\t'fontSize',\n\t'fontStyle',\n\t'fontWeight',\n\t'lineHeight',\n\t'textDecoration',\n\t'textTransform',\n\t'padding',\n\t'contentSize',\n\t'wideSize',\n\t'blockGap',\n];\n\nexport function getSupportedGlobalStylesPanels( name ) {\n\tif ( ! name ) {\n\t\treturn ROOT_BLOCK_SUPPORTS;\n\t}\n\n\tconst blockType = getBlockType( name );\n\n\tif ( ! blockType ) {\n\t\treturn [];\n\t}\n\n\tconst supportKeys = [];\n\n\t// Check for blockGap support.\n\t// Block spacing support doesn't map directly to a single style property, so needs to be handled separately.\n\t// Also, only allow `blockGap` support if serialization has not been skipped, to be sure global spacing can be applied.\n\tif (\n\t\tblockType?.supports?.spacing?.blockGap &&\n\t\tblockType?.supports?.spacing?.__experimentalSkipSerialization !==\n\t\t\ttrue &&\n\t\t! blockType?.supports?.spacing?.__experimentalSkipSerialization?.some?.(\n\t\t\t( spacingType ) => spacingType === 'blockGap'\n\t\t)\n\t) {\n\t\tsupportKeys.push( 'blockGap' );\n\t}\n\n\tObject.keys( STYLE_PROPERTY ).forEach( ( styleName ) => {\n\t\tif ( ! STYLE_PROPERTY[ styleName ].support ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Opting out means that, for certain support keys like background color,\n\t\t// blocks have to explicitly set the support value false. If the key is\n\t\t// unset, we still enable it.\n\t\tif ( STYLE_PROPERTY[ styleName ].requiresOptOut ) {\n\t\t\tif (\n\t\t\t\thas(\n\t\t\t\t\tblockType.supports,\n\t\t\t\t\tSTYLE_PROPERTY[ styleName ].support[ 0 ]\n\t\t\t\t) &&\n\t\t\t\tget(\n\t\t\t\t\tblockType.supports,\n\t\t\t\t\tSTYLE_PROPERTY[ styleName ].support\n\t\t\t\t) !== false\n\t\t\t) {\n\t\t\t\treturn supportKeys.push( styleName );\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\tget(\n\t\t\t\tblockType.supports,\n\t\t\t\tSTYLE_PROPERTY[ styleName ].support,\n\t\t\t\tfalse\n\t\t\t)\n\t\t) {\n\t\t\treturn supportKeys.push( styleName );\n\t\t}\n\t} );\n\n\treturn supportKeys;\n}\n\nexport function useColorsPerOrigin( name ) {\n\tconst [ customColors ] = useSetting( 'color.palette.custom', name );\n\tconst [ themeColors ] = useSetting( 'color.palette.theme', name );\n\tconst [ defaultColors ] = useSetting( 'color.palette.default', name );\n\tconst [ shouldDisplayDefaultColors ] = useSetting( 'color.defaultPalette' );\n\n\treturn useMemo( () => {\n\t\tconst result = [];\n\t\tif ( themeColors && themeColors.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Theme',\n\t\t\t\t\t'Indicates this palette comes from the theme.'\n\t\t\t\t),\n\t\t\t\tcolors: themeColors,\n\t\t\t} );\n\t\t}\n\t\tif (\n\t\t\tshouldDisplayDefaultColors &&\n\t\t\tdefaultColors &&\n\t\t\tdefaultColors.length\n\t\t) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Default',\n\t\t\t\t\t'Indicates this palette comes from WordPress.'\n\t\t\t\t),\n\t\t\t\tcolors: defaultColors,\n\t\t\t} );\n\t\t}\n\t\tif ( customColors && customColors.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Custom',\n\t\t\t\t\t'Indicates this palette is created by the user.'\n\t\t\t\t),\n\t\t\t\tcolors: customColors,\n\t\t\t} );\n\t\t}\n\t\treturn result;\n\t}, [ customColors, themeColors, defaultColors ] );\n}\n\nexport function useGradientsPerOrigin( name ) {\n\tconst [ customGradients ] = useSetting( 'color.gradients.custom', name );\n\tconst [ themeGradients ] = useSetting( 'color.gradients.theme', name );\n\tconst [ defaultGradients ] = useSetting( 'color.gradients.default', name );\n\tconst [ shouldDisplayDefaultGradients ] = useSetting(\n\t\t'color.defaultGradients'\n\t);\n\n\treturn useMemo( () => {\n\t\tconst result = [];\n\t\tif ( themeGradients && themeGradients.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Theme',\n\t\t\t\t\t'Indicates this palette comes from the theme.'\n\t\t\t\t),\n\t\t\t\tgradients: themeGradients,\n\t\t\t} );\n\t\t}\n\t\tif (\n\t\t\tshouldDisplayDefaultGradients &&\n\t\t\tdefaultGradients &&\n\t\t\tdefaultGradients.length\n\t\t) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Default',\n\t\t\t\t\t'Indicates this palette comes from WordPress.'\n\t\t\t\t),\n\t\t\t\tgradients: defaultGradients,\n\t\t\t} );\n\t\t}\n\t\tif ( customGradients && customGradients.length ) {\n\t\t\tresult.push( {\n\t\t\t\tname: _x(\n\t\t\t\t\t'Custom',\n\t\t\t\t\t'Indicates this palette is created by the user.'\n\t\t\t\t),\n\t\t\t\tgradients: customGradients,\n\t\t\t} );\n\t\t}\n\t\treturn result;\n\t}, [ customGradients, themeGradients, defaultGradients ] );\n}\n"]}
@@ -30,28 +30,24 @@ function ScreenColorPalette(_ref) {
30
30
  let {
31
31
  name
32
32
  } = _ref;
33
- const [currentTab, setCurrentTab] = (0, _element.useState)('solid');
34
33
  return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_header.default, {
35
34
  title: (0, _i18n.__)('Palette'),
36
35
  description: (0, _i18n.__)('Palettes are used to provide default color options for blocks and various design tools. Here you can edit the colors with their labels.')
37
- }), (0, _element.createElement)(_components.__experimentalToggleGroupControl, {
38
- className: "edit-site-screen-color-palette-toggle",
39
- value: currentTab,
40
- onChange: setCurrentTab,
41
- label: (0, _i18n.__)('Select palette type'),
42
- hideLabelFromVision: true,
43
- isBlock: true
44
- }, (0, _element.createElement)(_components.__experimentalToggleGroupControlOption, {
45
- value: "solid",
46
- label: (0, _i18n.__)('Solid')
47
- }), (0, _element.createElement)(_components.__experimentalToggleGroupControlOption, {
48
- value: "gradient",
49
- label: (0, _i18n.__)('Gradient')
50
- })), currentTab === 'solid' && (0, _element.createElement)(_colorPalettePanel.default, {
36
+ }), (0, _element.createElement)(_components.TabPanel, {
37
+ tabs: [{
38
+ name: 'solid',
39
+ title: 'Solid',
40
+ value: 'solid'
41
+ }, {
42
+ name: 'gradient',
43
+ title: 'Gradient',
44
+ value: 'gradient'
45
+ }]
46
+ }, tab => (0, _element.createElement)(_element.Fragment, null, tab.value === 'solid' && (0, _element.createElement)(_colorPalettePanel.default, {
51
47
  name: name
52
- }), currentTab === 'gradient' && (0, _element.createElement)(_gradientsPalettePanel.default, {
48
+ }), tab.value === 'gradient' && (0, _element.createElement)(_gradientsPalettePanel.default, {
53
49
  name: name
54
- }));
50
+ }))));
55
51
  }
56
52
 
57
53
  var _default = ScreenColorPalette;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/screen-color-palette.js"],"names":["ScreenColorPalette","name","currentTab","setCurrentTab"],"mappings":";;;;;;;;;AAQA;;AALA;;AACA;;AASA;;AACA;;AACA;;AAfA;AACA;AACA;;AAQA;AACA;AACA;AAKA,SAASA,kBAAT,OAAwC;AAAA,MAAX;AAAEC,IAAAA;AAAF,GAAW;AACvC,QAAM,CAAEC,UAAF,EAAcC,aAAd,IAAgC,uBAAU,OAAV,CAAtC;AAEA,SACC,qDACC,4BAAC,eAAD;AACC,IAAA,KAAK,EAAG,cAAI,SAAJ,CADT;AAEC,IAAA,WAAW,EAAG,cACb,yIADa;AAFf,IADD,EAOC,4BAAC,4CAAD;AACC,IAAA,SAAS,EAAC,uCADX;AAEC,IAAA,KAAK,EAAGD,UAFT;AAGC,IAAA,QAAQ,EAAGC,aAHZ;AAIC,IAAA,KAAK,EAAG,cAAI,qBAAJ,CAJT;AAKC,IAAA,mBAAmB,MALpB;AAMC,IAAA,OAAO;AANR,KAQC,4BAAC,kDAAD;AACC,IAAA,KAAK,EAAC,OADP;AAEC,IAAA,KAAK,EAAG,cAAI,OAAJ;AAFT,IARD,EAYC,4BAAC,kDAAD;AACC,IAAA,KAAK,EAAC,UADP;AAEC,IAAA,KAAK,EAAG,cAAI,UAAJ;AAFT,IAZD,CAPD,EAwBGD,UAAU,KAAK,OAAf,IAA0B,4BAAC,0BAAD;AAAmB,IAAA,IAAI,EAAGD;AAA1B,IAxB7B,EAyBGC,UAAU,KAAK,UAAf,IACD,4BAAC,8BAAD;AAAsB,IAAA,IAAI,EAAGD;AAA7B,IA1BF,CADD;AA+BA;;eAEcD,kB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n} from '@wordpress/components';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport ColorPalettePanel from './color-palette-panel';\nimport GradientPalettePanel from './gradients-palette-panel';\nimport ScreenHeader from './header';\n\nfunction ScreenColorPalette( { name } ) {\n\tconst [ currentTab, setCurrentTab ] = useState( 'solid' );\n\n\treturn (\n\t\t<>\n\t\t\t<ScreenHeader\n\t\t\t\ttitle={ __( 'Palette' ) }\n\t\t\t\tdescription={ __(\n\t\t\t\t\t'Palettes are used to provide default color options for blocks and various design tools. Here you can edit the colors with their labels.'\n\t\t\t\t) }\n\t\t\t/>\n\t\t\t<ToggleGroupControl\n\t\t\t\tclassName=\"edit-site-screen-color-palette-toggle\"\n\t\t\t\tvalue={ currentTab }\n\t\t\t\tonChange={ setCurrentTab }\n\t\t\t\tlabel={ __( 'Select palette type' ) }\n\t\t\t\thideLabelFromVision\n\t\t\t\tisBlock\n\t\t\t>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tvalue=\"solid\"\n\t\t\t\t\tlabel={ __( 'Solid' ) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tvalue=\"gradient\"\n\t\t\t\t\tlabel={ __( 'Gradient' ) }\n\t\t\t\t/>\n\t\t\t</ToggleGroupControl>\n\t\t\t{ currentTab === 'solid' && <ColorPalettePanel name={ name } /> }\n\t\t\t{ currentTab === 'gradient' && (\n\t\t\t\t<GradientPalettePanel name={ name } />\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default ScreenColorPalette;\n"]}
1
+ {"version":3,"sources":["@wordpress/edit-site/src/components/global-styles/screen-color-palette.js"],"names":["ScreenColorPalette","name","title","value","tab"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AAKA;;AACA;;AACA;;AAXA;AACA;AACA;;AAIA;AACA;AACA;AAKA,SAASA,kBAAT,OAAwC;AAAA,MAAX;AAAEC,IAAAA;AAAF,GAAW;AACvC,SACC,qDACC,4BAAC,eAAD;AACC,IAAA,KAAK,EAAG,cAAI,SAAJ,CADT;AAEC,IAAA,WAAW,EAAG,cACb,yIADa;AAFf,IADD,EAOC,4BAAC,oBAAD;AACC,IAAA,IAAI,EAAG,CACN;AACCA,MAAAA,IAAI,EAAE,OADP;AAECC,MAAAA,KAAK,EAAE,OAFR;AAGCC,MAAAA,KAAK,EAAE;AAHR,KADM,EAMN;AACCF,MAAAA,IAAI,EAAE,UADP;AAECC,MAAAA,KAAK,EAAE,UAFR;AAGCC,MAAAA,KAAK,EAAE;AAHR,KANM;AADR,KAcKC,GAAF,IACD,qDACGA,GAAG,CAACD,KAAJ,KAAc,OAAd,IACD,4BAAC,0BAAD;AAAmB,IAAA,IAAI,EAAGF;AAA1B,IAFF,EAIGG,GAAG,CAACD,KAAJ,KAAc,UAAd,IACD,4BAAC,8BAAD;AAAsB,IAAA,IAAI,EAAGF;AAA7B,IALF,CAfF,CAPD,CADD;AAmCA;;eAEcD,kB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { TabPanel } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport ColorPalettePanel from './color-palette-panel';\nimport GradientPalettePanel from './gradients-palette-panel';\nimport ScreenHeader from './header';\n\nfunction ScreenColorPalette( { name } ) {\n\treturn (\n\t\t<>\n\t\t\t<ScreenHeader\n\t\t\t\ttitle={ __( 'Palette' ) }\n\t\t\t\tdescription={ __(\n\t\t\t\t\t'Palettes are used to provide default color options for blocks and various design tools. Here you can edit the colors with their labels.'\n\t\t\t\t) }\n\t\t\t/>\n\t\t\t<TabPanel\n\t\t\t\ttabs={ [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'solid',\n\t\t\t\t\t\ttitle: 'Solid',\n\t\t\t\t\t\tvalue: 'solid',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'gradient',\n\t\t\t\t\t\ttitle: 'Gradient',\n\t\t\t\t\t\tvalue: 'gradient',\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t>\n\t\t\t\t{ ( tab ) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ tab.value === 'solid' && (\n\t\t\t\t\t\t\t<ColorPalettePanel name={ name } />\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ tab.value === 'gradient' && (\n\t\t\t\t\t\t\t<GradientPalettePanel name={ name } />\n\t\t\t\t\t\t) }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</TabPanel>\n\t\t</>\n\t);\n}\n\nexport default ScreenColorPalette;\n"]}