@wordpress/block-editor 8.1.0 → 8.1.1

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 (145) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +7 -5
  3. package/build/components/block-inspector/index.js +7 -0
  4. package/build/components/block-inspector/index.js.map +1 -1
  5. package/build/components/block-preview/auto.js +3 -1
  6. package/build/components/block-preview/auto.js.map +1 -1
  7. package/build/components/colors-gradients/tools-panel-color-dropdown.js +89 -0
  8. package/build/components/colors-gradients/tools-panel-color-dropdown.js.map +1 -0
  9. package/build/components/contrast-checker/index.js +75 -64
  10. package/build/components/contrast-checker/index.js.map +1 -1
  11. package/build/components/index.js +9 -9
  12. package/build/components/index.js.map +1 -1
  13. package/build/components/index.native.js +9 -0
  14. package/build/components/index.native.js.map +1 -1
  15. package/build/components/inserter/search-items.js +3 -1
  16. package/build/components/inserter/search-items.js.map +1 -1
  17. package/build/components/inspector-controls/block-support-tools-panel.js +3 -1
  18. package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  19. package/build/components/inspector-controls/groups.js +2 -0
  20. package/build/components/inspector-controls/groups.js.map +1 -1
  21. package/build/components/line-height-control/index.native.js +3 -2
  22. package/build/components/line-height-control/index.native.js.map +1 -1
  23. package/build/components/link-control/link-preview.js +5 -2
  24. package/build/components/link-control/link-preview.js.map +1 -1
  25. package/build/components/list-view/block-contents.js +3 -1
  26. package/build/components/list-view/block-contents.js.map +1 -1
  27. package/build/components/list-view/block-select-button.js +4 -2
  28. package/build/components/list-view/block-select-button.js.map +1 -1
  29. package/build/components/list-view/block.js +2 -1
  30. package/build/components/list-view/block.js.map +1 -1
  31. package/build/components/media-placeholder/index.js +1 -11
  32. package/build/components/media-placeholder/index.js.map +1 -1
  33. package/build/components/media-replace-flow/index.native.js +13 -0
  34. package/build/components/media-replace-flow/index.native.js.map +1 -0
  35. package/build/components/rich-text/index.js +2 -1
  36. package/build/components/rich-text/index.js.map +1 -1
  37. package/build/components/rich-text/index.native.js +2 -1
  38. package/build/components/rich-text/index.native.js.map +1 -1
  39. package/build/components/rich-text/use-paste-handler.js +14 -5
  40. package/build/components/rich-text/use-paste-handler.js.map +1 -1
  41. package/build/components/rich-text/utils.js +2 -1
  42. package/build/components/rich-text/utils.js.map +1 -1
  43. package/build/hooks/border-color.js +1 -1
  44. package/build/hooks/border-color.js.map +1 -1
  45. package/build/hooks/color-panel.js +23 -17
  46. package/build/hooks/color-panel.js.map +1 -1
  47. package/build/hooks/color.js +176 -10
  48. package/build/hooks/color.js.map +1 -1
  49. package/build/hooks/font-size.js +14 -0
  50. package/build/hooks/font-size.js.map +1 -1
  51. package/build/hooks/typography.native.js +2 -4
  52. package/build/hooks/typography.native.js.map +1 -1
  53. package/build/hooks/utils.js +55 -0
  54. package/build/hooks/utils.js.map +1 -1
  55. package/build-module/components/block-inspector/index.js +7 -0
  56. package/build-module/components/block-inspector/index.js.map +1 -1
  57. package/build-module/components/block-preview/auto.js +3 -1
  58. package/build-module/components/block-preview/auto.js.map +1 -1
  59. package/build-module/components/colors-gradients/tools-panel-color-dropdown.js +75 -0
  60. package/build-module/components/colors-gradients/tools-panel-color-dropdown.js.map +1 -0
  61. package/build-module/components/contrast-checker/index.js +75 -65
  62. package/build-module/components/contrast-checker/index.js.map +1 -1
  63. package/build-module/components/index.js +1 -1
  64. package/build-module/components/index.js.map +1 -1
  65. package/build-module/components/index.native.js +1 -0
  66. package/build-module/components/index.native.js.map +1 -1
  67. package/build-module/components/inserter/search-items.js +3 -1
  68. package/build-module/components/inserter/search-items.js.map +1 -1
  69. package/build-module/components/inspector-controls/block-support-tools-panel.js +3 -1
  70. package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
  71. package/build-module/components/inspector-controls/groups.js +2 -0
  72. package/build-module/components/inspector-controls/groups.js.map +1 -1
  73. package/build-module/components/line-height-control/index.native.js +3 -2
  74. package/build-module/components/line-height-control/index.native.js.map +1 -1
  75. package/build-module/components/link-control/link-preview.js +5 -2
  76. package/build-module/components/link-control/link-preview.js.map +1 -1
  77. package/build-module/components/list-view/block-contents.js +3 -1
  78. package/build-module/components/list-view/block-contents.js.map +1 -1
  79. package/build-module/components/list-view/block-select-button.js +4 -2
  80. package/build-module/components/list-view/block-select-button.js.map +1 -1
  81. package/build-module/components/list-view/block.js +2 -1
  82. package/build-module/components/list-view/block.js.map +1 -1
  83. package/build-module/components/media-placeholder/index.js +1 -10
  84. package/build-module/components/media-placeholder/index.js.map +1 -1
  85. package/build-module/components/media-replace-flow/index.native.js +4 -0
  86. package/build-module/components/media-replace-flow/index.native.js.map +1 -0
  87. package/build-module/components/rich-text/index.js +2 -1
  88. package/build-module/components/rich-text/index.js.map +1 -1
  89. package/build-module/components/rich-text/index.native.js +2 -1
  90. package/build-module/components/rich-text/index.native.js.map +1 -1
  91. package/build-module/components/rich-text/use-paste-handler.js +14 -5
  92. package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
  93. package/build-module/components/rich-text/utils.js +2 -1
  94. package/build-module/components/rich-text/utils.js.map +1 -1
  95. package/build-module/hooks/border-color.js +1 -1
  96. package/build-module/hooks/border-color.js.map +1 -1
  97. package/build-module/hooks/color-panel.js +22 -15
  98. package/build-module/hooks/color-panel.js.map +1 -1
  99. package/build-module/hooks/color.js +174 -11
  100. package/build-module/hooks/color.js.map +1 -1
  101. package/build-module/hooks/font-size.js +12 -1
  102. package/build-module/hooks/font-size.js.map +1 -1
  103. package/build-module/hooks/typography.native.js +2 -4
  104. package/build-module/hooks/typography.native.js.map +1 -1
  105. package/build-module/hooks/utils.js +52 -1
  106. package/build-module/hooks/utils.js.map +1 -1
  107. package/build-style/style-rtl.css +71 -9
  108. package/build-style/style.css +71 -9
  109. package/package.json +26 -30
  110. package/src/components/block-inspector/index.js +9 -0
  111. package/src/components/block-preview/auto.js +3 -0
  112. package/src/components/color-palette/test/__snapshots__/control.js.snap +0 -1
  113. package/src/components/colors-gradients/tools-panel-color-dropdown.js +85 -0
  114. package/src/components/contrast-checker/index.js +102 -87
  115. package/src/components/contrast-checker/test/index.js +176 -7
  116. package/src/components/index.js +1 -1
  117. package/src/components/index.native.js +1 -0
  118. package/src/components/inserter/search-items.js +3 -1
  119. package/src/components/inspector-controls/block-support-tools-panel.js +2 -0
  120. package/src/components/inspector-controls/groups.js +2 -0
  121. package/src/components/line-height-control/index.native.js +2 -1
  122. package/src/components/link-control/link-preview.js +2 -1
  123. package/src/components/link-control/style.scss +3 -9
  124. package/src/components/list-view/block-contents.js +2 -0
  125. package/src/components/list-view/block-select-button.js +2 -0
  126. package/src/components/list-view/block.js +1 -0
  127. package/src/components/media-placeholder/index.js +1 -10
  128. package/src/components/media-replace-flow/index.native.js +3 -0
  129. package/src/components/rich-text/index.js +1 -0
  130. package/src/components/rich-text/index.native.js +1 -0
  131. package/src/components/rich-text/use-paste-handler.js +16 -3
  132. package/src/components/rich-text/utils.js +1 -0
  133. package/src/hooks/border-color.js +1 -1
  134. package/src/hooks/color-panel.js +24 -21
  135. package/src/hooks/color.js +177 -8
  136. package/src/hooks/color.scss +85 -0
  137. package/src/hooks/font-size.js +29 -1
  138. package/src/hooks/typography.native.js +1 -3
  139. package/src/hooks/utils.js +69 -1
  140. package/src/style.scss +1 -0
  141. package/build/components/preserve-scroll-in-reorder/index.js +0 -22
  142. package/build/components/preserve-scroll-in-reorder/index.js.map +0 -1
  143. package/build-module/components/preserve-scroll-in-reorder/index.js +0 -12
  144. package/build-module/components/preserve-scroll-in-reorder/index.js.map +0 -1
  145. package/src/components/preserve-scroll-in-reorder/index.js +0 -12
@@ -5,7 +5,7 @@ import { createElement } from "@wordpress/element";
5
5
  * External dependencies
6
6
  */
7
7
  import classnames from 'classnames';
8
- import { isObject, setWith, clone } from 'lodash';
8
+ import { isObject } from 'lodash';
9
9
  /**
10
10
  * WordPress dependencies
11
11
  */
@@ -21,7 +21,7 @@ import { createHigherOrderComponent } from '@wordpress/compose';
21
21
 
22
22
  import { getColorClassName, getColorObjectByColorValue, getColorObjectByAttributeValues } from '../components/colors';
23
23
  import { __experimentalGetGradientClass, getGradientValueBySlug, getGradientSlugByValue } from '../components/gradients';
24
- import { cleanEmptyObject } from './utils';
24
+ import { cleanEmptyObject, transformStyles, immutableSet } from './utils';
25
25
  import ColorPanel from './color-panel';
26
26
  import useSetting from '../components/use-setting';
27
27
  export const COLOR_SUPPORT_KEY = 'color';
@@ -59,6 +59,143 @@ const hasTextColorSupport = blockType => {
59
59
  const colorSupport = getBlockSupport(blockType, COLOR_SUPPORT_KEY);
60
60
  return colorSupport && colorSupport.text !== false;
61
61
  };
62
+ /**
63
+ * Checks whether a color has been set either with a named preset color in
64
+ * a top level block attribute or as a custom value within the style attribute
65
+ * object.
66
+ *
67
+ * @param {string} name Name of the color to check.
68
+ * @return {boolean} Whether or not a color has a value.
69
+ */
70
+
71
+
72
+ const hasColor = name => props => {
73
+ var _props$attributes$sty9, _props$attributes$sty10;
74
+
75
+ if (name === 'background') {
76
+ var _props$attributes$sty, _props$attributes$sty2, _props$attributes$sty3, _props$attributes$sty4;
77
+
78
+ return !!props.attributes.backgroundColor || !!((_props$attributes$sty = props.attributes.style) !== null && _props$attributes$sty !== void 0 && (_props$attributes$sty2 = _props$attributes$sty.color) !== null && _props$attributes$sty2 !== void 0 && _props$attributes$sty2.background) || !!props.attributes.gradient || !!((_props$attributes$sty3 = props.attributes.style) !== null && _props$attributes$sty3 !== void 0 && (_props$attributes$sty4 = _props$attributes$sty3.color) !== null && _props$attributes$sty4 !== void 0 && _props$attributes$sty4.gradient);
79
+ }
80
+
81
+ if (name === 'link') {
82
+ var _props$attributes$sty5, _props$attributes$sty6, _props$attributes$sty7, _props$attributes$sty8;
83
+
84
+ return !!((_props$attributes$sty5 = props.attributes.style) !== null && _props$attributes$sty5 !== void 0 && (_props$attributes$sty6 = _props$attributes$sty5.elements) !== null && _props$attributes$sty6 !== void 0 && (_props$attributes$sty7 = _props$attributes$sty6.link) !== null && _props$attributes$sty7 !== void 0 && (_props$attributes$sty8 = _props$attributes$sty7.color) !== null && _props$attributes$sty8 !== void 0 && _props$attributes$sty8.text);
85
+ }
86
+
87
+ return !!props.attributes[`${name}Color`] || !!((_props$attributes$sty9 = props.attributes.style) !== null && _props$attributes$sty9 !== void 0 && (_props$attributes$sty10 = _props$attributes$sty9.color) !== null && _props$attributes$sty10 !== void 0 && _props$attributes$sty10[name]);
88
+ };
89
+ /**
90
+ * Clears a single color property from a style object.
91
+ *
92
+ * @param {Array} path Path to color property to clear within styles object.
93
+ * @param {Object} style Block attributes style object.
94
+ * @return {Object} Styles with the color property omitted.
95
+ */
96
+
97
+
98
+ const clearColorFromStyles = (path, style) => cleanEmptyObject(immutableSet(style, path, undefined));
99
+ /**
100
+ * Resets the block attributes for text color.
101
+ *
102
+ * @param {Object} props Current block props.
103
+ * @param {Object} props.attributes Block attributes.
104
+ * @param {Function} props.setAttributes Block's setAttributes prop used to apply reset.
105
+ */
106
+
107
+
108
+ const resetTextColor = _ref => {
109
+ let {
110
+ attributes,
111
+ setAttributes
112
+ } = _ref;
113
+ setAttributes({
114
+ textColor: undefined,
115
+ style: clearColorFromStyles(['color', 'text'], attributes.style)
116
+ });
117
+ };
118
+ /**
119
+ * Clears text color related properties from supplied attributes.
120
+ *
121
+ * @param {Object} attributes Block attributes.
122
+ * @return {Object} Update block attributes with text color properties omitted.
123
+ */
124
+
125
+
126
+ const resetAllTextFilter = attributes => ({
127
+ textColor: undefined,
128
+ style: clearColorFromStyles(['color', 'text'], attributes.style)
129
+ });
130
+ /**
131
+ * Resets the block attributes for link color.
132
+ *
133
+ * @param {Object} props Current block props.
134
+ * @param {Object} props.attributes Block attributes.
135
+ * @param {Function} props.setAttributes Block's setAttributes prop used to apply reset.
136
+ */
137
+
138
+
139
+ const resetLinkColor = _ref2 => {
140
+ let {
141
+ attributes,
142
+ setAttributes
143
+ } = _ref2;
144
+ const path = ['elements', 'link', 'color', 'text'];
145
+ setAttributes({
146
+ style: clearColorFromStyles(path, attributes.style)
147
+ });
148
+ };
149
+ /**
150
+ * Clears link color related properties from supplied attributes.
151
+ *
152
+ * @param {Object} attributes Block attributes.
153
+ * @return {Object} Update block attributes with link color properties omitted.
154
+ */
155
+
156
+
157
+ const resetAllLinkFilter = attributes => ({
158
+ style: clearColorFromStyles(['elements', 'link', 'color', 'text'], attributes.style)
159
+ });
160
+ /**
161
+ * Clears all background color related properties including gradients from
162
+ * supplied block attributes.
163
+ *
164
+ * @param {Object} attributes Block attributes.
165
+ * @return {Object} Block attributes with background and gradient omitted.
166
+ */
167
+
168
+
169
+ const clearBackgroundAndGradient = attributes => {
170
+ var _attributes$style;
171
+
172
+ return {
173
+ backgroundColor: undefined,
174
+ gradient: undefined,
175
+ style: { ...attributes.style,
176
+ color: { ...((_attributes$style = attributes.style) === null || _attributes$style === void 0 ? void 0 : _attributes$style.color),
177
+ background: undefined,
178
+ gradient: undefined
179
+ }
180
+ }
181
+ };
182
+ };
183
+ /**
184
+ * Resets the block attributes for both background color and gradient.
185
+ *
186
+ * @param {Object} props Current block props.
187
+ * @param {Object} props.attributes Block attributes.
188
+ * @param {Function} props.setAttributes Block's setAttributes prop used to apply reset.
189
+ */
190
+
191
+
192
+ const resetBackgroundAndGradient = _ref3 => {
193
+ let {
194
+ attributes,
195
+ setAttributes
196
+ } = _ref3;
197
+ setAttributes(clearBackgroundAndGradient(attributes));
198
+ };
62
199
  /**
63
200
  * Filters registered block settings, extending attributes to include
64
201
  * `backgroundColor` and `textColor` attribute.
@@ -119,7 +256,7 @@ export function addSaveProps(props, blockType, attributes) {
119
256
  return props;
120
257
  }
121
258
 
122
- const hasGradient = hasGradientSupport(blockType); // I'd have prefered to avoid the "style" attribute usage here
259
+ const hasGradient = hasGradientSupport(blockType); // I'd have preferred to avoid the "style" attribute usage here
123
260
 
124
261
  const {
125
262
  backgroundColor,
@@ -143,7 +280,7 @@ export function addSaveProps(props, blockType, attributes) {
143
280
  return props;
144
281
  }
145
282
  /**
146
- * Filters registered block settings to extand the block edit wrapper
283
+ * Filters registered block settings to extend the block edit wrapper
147
284
  * to apply the desired styles and classnames properly.
148
285
  *
149
286
  * @param {Object} settings Original block settings.
@@ -180,10 +317,6 @@ const getLinkColorFromAttributeValue = (colors, value) => {
180
317
 
181
318
  return value;
182
319
  };
183
-
184
- function immutableSet(object, path, value) {
185
- return setWith(object ? clone(object) : {}, path, value, clone);
186
- }
187
320
  /**
188
321
  * Inspector control panel containing the color related configuration
189
322
  *
@@ -323,6 +456,7 @@ export function ColorEdit(props) {
323
456
  };
324
457
 
325
458
  const enableContrastChecking = Platform.OS === 'web' && !gradient && !(style !== null && style !== void 0 && (_style$color6 = style.color) !== null && _style$color6 !== void 0 && _style$color6.gradient);
459
+ const defaultColorControls = getBlockSupport(props.name, [COLOR_SUPPORT_KEY, '__experimentalDefaultControls']);
326
460
  return createElement(ColorPanel, {
327
461
  enableContrastChecking: enableContrastChecking,
328
462
  clientId: props.clientId,
@@ -330,18 +464,30 @@ export function ColorEdit(props) {
330
464
  settings: [...(hasTextColor ? [{
331
465
  label: __('Text'),
332
466
  onColorChange: onChangeColor('text'),
333
- colorValue: getColorObjectByAttributeValues(allSolids, textColor, style === null || style === void 0 ? void 0 : (_style$color7 = style.color) === null || _style$color7 === void 0 ? void 0 : _style$color7.text).color
467
+ colorValue: getColorObjectByAttributeValues(allSolids, textColor, style === null || style === void 0 ? void 0 : (_style$color7 = style.color) === null || _style$color7 === void 0 ? void 0 : _style$color7.text).color,
468
+ isShownByDefault: defaultColorControls === null || defaultColorControls === void 0 ? void 0 : defaultColorControls.text,
469
+ hasValue: () => hasColor('text')(props),
470
+ onDeselect: () => resetTextColor(props),
471
+ resetAllFilter: resetAllTextFilter
334
472
  }] : []), ...(hasBackgroundColor || hasGradientColor ? [{
335
473
  label: __('Background'),
336
474
  onColorChange: hasBackgroundColor ? onChangeColor('background') : undefined,
337
475
  colorValue: getColorObjectByAttributeValues(allSolids, backgroundColor, style === null || style === void 0 ? void 0 : (_style$color8 = style.color) === null || _style$color8 === void 0 ? void 0 : _style$color8.background).color,
338
476
  gradientValue,
339
- onGradientChange: hasGradientColor ? onChangeGradient : undefined
477
+ onGradientChange: hasGradientColor ? onChangeGradient : undefined,
478
+ isShownByDefault: defaultColorControls === null || defaultColorControls === void 0 ? void 0 : defaultColorControls.background,
479
+ hasValue: () => hasColor('background')(props),
480
+ onDeselect: () => resetBackgroundAndGradient(props),
481
+ resetAllFilter: clearBackgroundAndGradient
340
482
  }] : []), ...(hasLinkColor ? [{
341
483
  label: __('Link'),
342
484
  onColorChange: onChangeLinkColor,
343
485
  colorValue: getLinkColorFromAttributeValue(allSolids, style === null || style === void 0 ? void 0 : (_style$elements2 = style.elements) === null || _style$elements2 === void 0 ? void 0 : (_style$elements2$link = _style$elements2.link) === null || _style$elements2$link === void 0 ? void 0 : (_style$elements2$link2 = _style$elements2$link.color) === null || _style$elements2$link2 === void 0 ? void 0 : _style$elements2$link2.text),
344
- clearable: !!(style !== null && style !== void 0 && (_style$elements3 = style.elements) !== null && _style$elements3 !== void 0 && (_style$elements3$link = _style$elements3.link) !== null && _style$elements3$link !== void 0 && (_style$elements3$link2 = _style$elements3$link.color) !== null && _style$elements3$link2 !== void 0 && _style$elements3$link2.text)
486
+ clearable: !!(style !== null && style !== void 0 && (_style$elements3 = style.elements) !== null && _style$elements3 !== void 0 && (_style$elements3$link = _style$elements3.link) !== null && _style$elements3$link !== void 0 && (_style$elements3$link2 = _style$elements3$link.color) !== null && _style$elements3$link2 !== void 0 && _style$elements3$link2.text),
487
+ isShownByDefault: defaultColorControls === null || defaultColorControls === void 0 ? void 0 : defaultColorControls.link,
488
+ hasValue: () => hasColor('link')(props),
489
+ onDeselect: () => resetLinkColor(props),
490
+ resetAllFilter: resetAllLinkFilter
345
491
  }] : [])]
346
492
  });
347
493
  }
@@ -398,8 +544,25 @@ export const withColorPaletteStyles = createHigherOrderComponent(BlockListBlock
398
544
  wrapperProps: wrapperProps
399
545
  }));
400
546
  });
547
+ const MIGRATION_PATHS = {
548
+ linkColor: [['style', 'elements', 'link', 'color', 'text']],
549
+ textColor: [['textColor'], ['style', 'color', 'text']],
550
+ backgroundColor: [['backgroundColor'], ['style', 'color', 'background']],
551
+ gradient: [['gradient'], ['style', 'color', 'gradient']]
552
+ };
553
+ export function addTransforms(result, source, index, results) {
554
+ const destinationBlockType = result.name;
555
+ const activeSupports = {
556
+ linkColor: hasLinkColorSupport(destinationBlockType),
557
+ textColor: hasTextColorSupport(destinationBlockType),
558
+ backgroundColor: hasBackgroundColorSupport(destinationBlockType),
559
+ gradient: hasGradientSupport(destinationBlockType)
560
+ };
561
+ return transformStyles(activeSupports, MIGRATION_PATHS, result, source, index, results);
562
+ }
401
563
  addFilter('blocks.registerBlockType', 'core/color/addAttribute', addAttributes);
402
564
  addFilter('blocks.getSaveContent.extraProps', 'core/color/addSaveProps', addSaveProps);
403
565
  addFilter('blocks.registerBlockType', 'core/color/addEditProps', addEditProps);
404
566
  addFilter('editor.BlockListBlock', 'core/color/with-color-palette-styles', withColorPaletteStyles);
567
+ addFilter('blocks.switchToBlockType.transformedBlock', 'core/color/addTransforms', addTransforms);
405
568
  //# sourceMappingURL=color.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/hooks/color.js"],"names":["classnames","isObject","setWith","clone","addFilter","getBlockSupport","__","useRef","useEffect","useMemo","Platform","createHigherOrderComponent","getColorClassName","getColorObjectByColorValue","getColorObjectByAttributeValues","__experimentalGetGradientClass","getGradientValueBySlug","getGradientSlugByValue","cleanEmptyObject","ColorPanel","useSetting","COLOR_SUPPORT_KEY","hasColorSupport","blockType","colorSupport","link","gradient","background","text","shouldSkipSerialization","__experimentalSkipSerialization","hasLinkColorSupport","OS","hasGradientSupport","gradients","hasBackgroundColorSupport","hasTextColorSupport","addAttributes","settings","attributes","backgroundColor","Object","assign","type","textColor","addSaveProps","props","hasGradient","style","backgroundClass","gradientClass","textClass","newClassName","className","color","elements","undefined","addEditProps","existingGetEditWrapperProps","getEditWrapperProps","getLinkColorFromAttributeValue","colors","value","attributeParsed","exec","immutableSet","object","path","ColorEdit","name","blockName","userPalette","themePalette","defaultPalette","allSolids","userGradientPalette","themeGradientPalette","defaultGradientPalette","allGradients","areCustomSolidsEnabled","areCustomGradientsEnabled","isBackgroundEnabled","isLinkEnabled","isTextEnabled","solidsEnabled","length","gradientsEnabled","localAttributes","current","hasLinkColor","hasTextColor","hasBackgroundColor","hasGradientColor","gradientValue","onChangeColor","colorObject","attributeName","newStyle","slug","newNamedColor","newAttributes","setAttributes","onChangeGradient","onChangeLinkColor","newLinkColorValue","enableContrastChecking","clientId","label","onColorChange","colorValue","onGradientChange","clearable","withColorPaletteStyles","BlockListBlock","extraStyles","wrapperProps"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AACA,SAASC,QAAT,EAAmBC,OAAnB,EAA4BC,KAA5B,QAAyC,QAAzC;AAEA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,kBAA1B;AACA,SAASC,eAAT,QAAgC,mBAAhC;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,MAAT,EAAiBC,SAAjB,EAA4BC,OAA5B,EAAqCC,QAArC,QAAqD,oBAArD;AACA,SAASC,0BAAT,QAA2C,oBAA3C;AAEA;AACA;AACA;;AACA,SACCC,iBADD,EAECC,0BAFD,EAGCC,+BAHD,QAIO,sBAJP;AAKA,SACCC,8BADD,EAECC,sBAFD,EAGCC,sBAHD,QAIO,yBAJP;AAKA,SAASC,gBAAT,QAAiC,SAAjC;AACA,OAAOC,UAAP,MAAuB,eAAvB;AACA,OAAOC,UAAP,MAAuB,2BAAvB;AAEA,OAAO,MAAMC,iBAAiB,GAAG,OAA1B;;AAEP,MAAMC,eAAe,GAAKC,SAAF,IAAiB;AACxC,QAAMC,YAAY,GAAGnB,eAAe,CAAEkB,SAAF,EAAaF,iBAAb,CAApC;AACA,SACCG,YAAY,KACVA,YAAY,CAACC,IAAb,KAAsB,IAAtB,IACDD,YAAY,CAACE,QAAb,KAA0B,IADzB,IAEDF,YAAY,CAACG,UAAb,KAA4B,KAF3B,IAGDH,YAAY,CAACI,IAAb,KAAsB,KAJX,CADb;AAOA,CATD;;AAWA,MAAMC,uBAAuB,GAAKN,SAAF,IAAiB;AAChD,QAAMC,YAAY,GAAGnB,eAAe,CAAEkB,SAAF,EAAaF,iBAAb,CAApC;AAEA,SAAOG,YAAP,aAAOA,YAAP,uBAAOA,YAAY,CAAEM,+BAArB;AACA,CAJD;;AAMA,MAAMC,mBAAmB,GAAKR,SAAF,IAAiB;AAC5C,MAAKb,QAAQ,CAACsB,EAAT,KAAgB,KAArB,EAA6B;AAC5B,WAAO,KAAP;AACA;;AAED,QAAMR,YAAY,GAAGnB,eAAe,CAAEkB,SAAF,EAAaF,iBAAb,CAApC;AAEA,SAAOpB,QAAQ,CAAEuB,YAAF,CAAR,IAA4B,CAAC,CAAEA,YAAY,CAACC,IAAnD;AACA,CARD;;AAUA,MAAMQ,kBAAkB,GAAKV,SAAF,IAAiB;AAC3C,QAAMC,YAAY,GAAGnB,eAAe,CAAEkB,SAAF,EAAaF,iBAAb,CAApC;AAEA,SAAOpB,QAAQ,CAAEuB,YAAF,CAAR,IAA4B,CAAC,CAAEA,YAAY,CAACU,SAAnD;AACA,CAJD;;AAMA,MAAMC,yBAAyB,GAAKZ,SAAF,IAAiB;AAClD,QAAMC,YAAY,GAAGnB,eAAe,CAAEkB,SAAF,EAAaF,iBAAb,CAApC;AAEA,SAAOG,YAAY,IAAIA,YAAY,CAACG,UAAb,KAA4B,KAAnD;AACA,CAJD;;AAMA,MAAMS,mBAAmB,GAAKb,SAAF,IAAiB;AAC5C,QAAMC,YAAY,GAAGnB,eAAe,CAAEkB,SAAF,EAAaF,iBAAb,CAApC;AAEA,SAAOG,YAAY,IAAIA,YAAY,CAACI,IAAb,KAAsB,KAA7C;AACA,CAJD;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASS,aAAT,CAAwBC,QAAxB,EAAmC;AAClC,MAAK,CAAEhB,eAAe,CAAEgB,QAAF,CAAtB,EAAqC;AACpC,WAAOA,QAAP;AACA,GAHiC,CAKlC;;;AACA,MAAK,CAAEA,QAAQ,CAACC,UAAT,CAAoBC,eAA3B,EAA6C;AAC5CC,IAAAA,MAAM,CAACC,MAAP,CAAeJ,QAAQ,CAACC,UAAxB,EAAoC;AACnCC,MAAAA,eAAe,EAAE;AAChBG,QAAAA,IAAI,EAAE;AADU;AADkB,KAApC;AAKA;;AACD,MAAK,CAAEL,QAAQ,CAACC,UAAT,CAAoBK,SAA3B,EAAuC;AACtCH,IAAAA,MAAM,CAACC,MAAP,CAAeJ,QAAQ,CAACC,UAAxB,EAAoC;AACnCK,MAAAA,SAAS,EAAE;AACVD,QAAAA,IAAI,EAAE;AADI;AADwB,KAApC;AAKA;;AAED,MAAKV,kBAAkB,CAAEK,QAAF,CAAlB,IAAkC,CAAEA,QAAQ,CAACC,UAAT,CAAoBb,QAA7D,EAAwE;AACvEe,IAAAA,MAAM,CAACC,MAAP,CAAeJ,QAAQ,CAACC,UAAxB,EAAoC;AACnCb,MAAAA,QAAQ,EAAE;AACTiB,QAAAA,IAAI,EAAE;AADG;AADyB,KAApC;AAKA;;AAED,SAAOL,QAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,OAAO,SAASO,YAAT,CAAuBC,KAAvB,EAA8BvB,SAA9B,EAAyCgB,UAAzC,EAAsD;AAAA;;AAC5D,MACC,CAAEjB,eAAe,CAAEC,SAAF,CAAjB,IACAM,uBAAuB,CAAEN,SAAF,CAFxB,EAGE;AACD,WAAOuB,KAAP;AACA;;AAED,QAAMC,WAAW,GAAGd,kBAAkB,CAAEV,SAAF,CAAtC,CAR4D,CAU5D;;AACA,QAAM;AAAEiB,IAAAA,eAAF;AAAmBI,IAAAA,SAAnB;AAA8BlB,IAAAA,QAA9B;AAAwCsB,IAAAA;AAAxC,MAAkDT,UAAxD;AAEA,QAAMU,eAAe,GAAGrC,iBAAiB,CACxC,kBADwC,EAExC4B,eAFwC,CAAzC;;AAIA,QAAMU,aAAa,GAAGnC,8BAA8B,CAAEW,QAAF,CAApD;;AACA,QAAMyB,SAAS,GAAGvC,iBAAiB,CAAE,OAAF,EAAWgC,SAAX,CAAnC;AACA,QAAMQ,YAAY,GAAGpD,UAAU,CAC9B8C,KAAK,CAACO,SADwB,EAE9BF,SAF8B,EAG9BD,aAH8B,EAI9B;AACC;AACA,KAAED,eAAF,GACC,CAAE,CAAEF,WAAF,IAAiB,EAAEC,KAAF,aAAEA,KAAF,+BAAEA,KAAK,CAAEM,KAAT,yCAAE,aAAc5B,QAAhB,CAAnB,KACA,CAAC,CAAEuB,eAJL;AAKC,sBAAkBL,SAAS,KAAII,KAAJ,aAAIA,KAAJ,wCAAIA,KAAK,CAAEM,KAAX,kDAAI,cAAc1B,IAAlB,CAL5B;AAMC,sBACCY,eAAe,KACfQ,KADe,aACfA,KADe,wCACfA,KAAK,CAAEM,KADQ,kDACf,cAAc3B,UADC,CAAf,IAEEoB,WAAW,KAAMrB,QAAQ,KAAIsB,KAAJ,aAAIA,KAAJ,wCAAIA,KAAK,CAAEM,KAAX,kDAAI,cAAc5B,QAAlB,CAAd,CATf;AAUC,sBAAkBsB,KAAlB,aAAkBA,KAAlB,0CAAkBA,KAAK,CAAEO,QAAzB,4EAAkB,gBAAiB9B,IAAnC,yDAAkB,qBAAuB6B;AAV1C,GAJ8B,CAA/B;AAiBAR,EAAAA,KAAK,CAACO,SAAN,GAAkBD,YAAY,GAAGA,YAAH,GAAkBI,SAAhD;AAEA,SAAOV,KAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASW,YAAT,CAAuBnB,QAAvB,EAAkC;AACxC,MACC,CAAEhB,eAAe,CAAEgB,QAAF,CAAjB,IACAT,uBAAuB,CAAES,QAAF,CAFxB,EAGE;AACD,WAAOA,QAAP;AACA;;AACD,QAAMoB,2BAA2B,GAAGpB,QAAQ,CAACqB,mBAA7C;;AACArB,EAAAA,QAAQ,CAACqB,mBAAT,GAAiCpB,UAAF,IAAkB;AAChD,QAAIO,KAAK,GAAG,EAAZ;;AACA,QAAKY,2BAAL,EAAmC;AAClCZ,MAAAA,KAAK,GAAGY,2BAA2B,CAAEnB,UAAF,CAAnC;AACA;;AACD,WAAOM,YAAY,CAAEC,KAAF,EAASR,QAAT,EAAmBC,UAAnB,CAAnB;AACA,GAND;;AAQA,SAAOD,QAAP;AACA;;AAED,MAAMsB,8BAA8B,GAAG,CAAEC,MAAF,EAAUC,KAAV,KAAqB;AAC3D,QAAMC,eAAe,GAAG,0BAA0BC,IAA1B,CAAgCF,KAAhC,CAAxB;;AACA,MAAKC,eAAe,IAAIA,eAAe,CAAE,CAAF,CAAvC,EAA+C;AAC9C,WAAOjD,+BAA+B,CAAE+C,MAAF,EAAUE,eAAe,CAAE,CAAF,CAAzB,CAA/B,CACLT,KADF;AAEA;;AACD,SAAOQ,KAAP;AACA,CAPD;;AASA,SAASG,YAAT,CAAuBC,MAAvB,EAA+BC,IAA/B,EAAqCL,KAArC,EAA6C;AAC5C,SAAO5D,OAAO,CAAEgE,MAAM,GAAG/D,KAAK,CAAE+D,MAAF,CAAR,GAAqB,EAA7B,EAAiCC,IAAjC,EAAuCL,KAAvC,EAA8C3D,KAA9C,CAAd;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,OAAO,SAASiE,SAAT,CAAoBtB,KAApB,EAA4B;AAAA;;AAClC,QAAM;AAAEuB,IAAAA,IAAI,EAAEC,SAAR;AAAmB/B,IAAAA;AAAnB,MAAkCO,KAAxC,CADkC,CAElC;AACA;AACA;;AACA,QAAMyB,WAAW,GAAGnD,UAAU,CAAE,sBAAF,CAA9B;AACA,QAAMoD,YAAY,GAAGpD,UAAU,CAAE,qBAAF,CAA/B;AACA,QAAMqD,cAAc,GAAGrD,UAAU,CAAE,uBAAF,CAAjC;AACA,QAAMsD,SAAS,GAAGjE,OAAO,CACxB,MAAM,CACL,IAAK8D,WAAW,IAAI,EAApB,CADK,EAEL,IAAKC,YAAY,IAAI,EAArB,CAFK,EAGL,IAAKC,cAAc,IAAI,EAAvB,CAHK,CADkB,EAMxB,CAAEF,WAAF,EAAeC,YAAf,EAA6BC,cAA7B,CANwB,CAAzB;AAQA,QAAME,mBAAmB,GAAGvD,UAAU,CAAE,wBAAF,CAAtC;AACA,QAAMwD,oBAAoB,GAAGxD,UAAU,CAAE,uBAAF,CAAvC;AACA,QAAMyD,sBAAsB,GAAGzD,UAAU,CAAE,yBAAF,CAAzC;AACA,QAAM0D,YAAY,GAAGrE,OAAO,CAC3B,MAAM,CACL,IAAKkE,mBAAmB,IAAI,EAA5B,CADK,EAEL,IAAKC,oBAAoB,IAAI,EAA7B,CAFK,EAGL,IAAKC,sBAAsB,IAAI,EAA/B,CAHK,CADqB,EAM3B,CAAEF,mBAAF,EAAuBC,oBAAvB,EAA6CC,sBAA7C,CAN2B,CAA5B;AAQA,QAAME,sBAAsB,GAAG3D,UAAU,CAAE,cAAF,CAAzC;AACA,QAAM4D,yBAAyB,GAAG5D,UAAU,CAAE,sBAAF,CAA5C;AACA,QAAM6D,mBAAmB,GAAG7D,UAAU,CAAE,kBAAF,CAAtC;AACA,QAAM8D,aAAa,GAAG9D,UAAU,CAAE,YAAF,CAAhC;AACA,QAAM+D,aAAa,GAAG/D,UAAU,CAAE,YAAF,CAAhC;AAEA,QAAMgE,aAAa,GAClBL,sBAAsB,IAAI,CAAEP,YAA5B,IAA4C,CAAAA,YAAY,SAAZ,IAAAA,YAAY,WAAZ,YAAAA,YAAY,CAAEa,MAAd,IAAuB,CADpE;AAGA,QAAMC,gBAAgB,GACrBN,yBAAyB,IACzB,CAAEJ,oBADF,IAEA,CAAAA,oBAAoB,SAApB,IAAAA,oBAAoB,WAApB,YAAAA,oBAAoB,CAAES,MAAtB,IAA+B,CAHhC,CApCkC,CAyClC;AACA;AACA;AACA;;AACA,QAAME,eAAe,GAAGhF,MAAM,CAAEgC,UAAF,CAA9B;AACA/B,EAAAA,SAAS,CAAE,MAAM;AAChB+E,IAAAA,eAAe,CAACC,OAAhB,GAA0BjD,UAA1B;AACA,GAFQ,EAEN,CAAEA,UAAF,CAFM,CAAT;;AAIA,MAAK,CAAEjB,eAAe,CAAEgD,SAAF,CAAtB,EAAsC;AACrC,WAAO,IAAP;AACA;;AAED,QAAMmB,YAAY,GACjB1D,mBAAmB,CAAEuC,SAAF,CAAnB,IAAoCY,aAApC,IAAqDE,aADtD;AAEA,QAAMM,YAAY,GACjBtD,mBAAmB,CAAEkC,SAAF,CAAnB,IAAoCa,aAApC,IAAqDC,aADtD;AAEA,QAAMO,kBAAkB,GACvBxD,yBAAyB,CAAEmC,SAAF,CAAzB,IACAW,mBADA,IAEAG,aAHD;AAIA,QAAMQ,gBAAgB,GACrB3D,kBAAkB,CAAEqC,SAAF,CAAlB,IAAmCgB,gBADpC;;AAGA,MACC,CAAEG,YAAF,IACA,CAAEC,YADF,IAEA,CAAEC,kBAFF,IAGA,CAAEC,gBAJH,EAKE;AACD,WAAO,IAAP;AACA;;AAED,QAAM;AAAE5C,IAAAA,KAAF;AAASJ,IAAAA,SAAT;AAAoBJ,IAAAA,eAApB;AAAqCd,IAAAA;AAArC,MAAkDa,UAAxD;AACA,MAAIsD,aAAJ;;AACA,MAAKD,gBAAgB,IAAIlE,QAAzB,EAAoC;AACnCmE,IAAAA,aAAa,GAAG7E,sBAAsB,CAAE8D,YAAF,EAAgBpD,QAAhB,CAAtC;AACA,GAFD,MAEO,IAAKkE,gBAAL,EAAwB;AAAA;;AAC9BC,IAAAA,aAAa,GAAG7C,KAAH,aAAGA,KAAH,wCAAGA,KAAK,CAAEM,KAAV,kDAAG,cAAc5B,QAA9B;AACA;;AAED,QAAMoE,aAAa,GAAKzB,IAAF,IAAcP,KAAF,IAAa;AAAA;;AAC9C,UAAMiC,WAAW,GAAGlF,0BAA0B,CAAE6D,SAAF,EAAaZ,KAAb,CAA9C;AACA,UAAMkC,aAAa,GAAG3B,IAAI,GAAG,OAA7B;AACA,UAAM4B,QAAQ,GAAG,EAChB,GAAGV,eAAe,CAACC,OAAhB,CAAwBxC,KADX;AAEhBM,MAAAA,KAAK,EAAE,EACN,6BAAGiC,eAAe,CAACC,OAAnB,oFAAG,sBAAyBxC,KAA5B,2DAAG,uBAAgCM,KAAnC,CADM;AAEN,SAAEe,IAAF,GAAU0B,WAAW,SAAX,IAAAA,WAAW,WAAX,IAAAA,WAAW,CAAEG,IAAb,GAAoB1C,SAApB,GAAgCM;AAFpC;AAFS,KAAjB;AAQA,UAAMqC,aAAa,GAAGJ,WAAW,SAAX,IAAAA,WAAW,WAAX,IAAAA,WAAW,CAAEG,IAAb,GAAoBH,WAAW,CAACG,IAAhC,GAAuC1C,SAA7D;AACA,UAAM4C,aAAa,GAAG;AACrBpD,MAAAA,KAAK,EAAE9B,gBAAgB,CAAE+E,QAAF,CADF;AAErB,OAAED,aAAF,GAAmBG;AAFE,KAAtB;AAKArD,IAAAA,KAAK,CAACuD,aAAN,CAAqBD,aAArB;AACAb,IAAAA,eAAe,CAACC,OAAhB,GAA0B,EACzB,GAAGD,eAAe,CAACC,OADM;AAEzB,SAAGY;AAFsB,KAA1B;AAIA,GAtBD;;AAwBA,QAAME,gBAAgB,GAAKxC,KAAF,IAAa;AACrC,UAAMoC,IAAI,GAAGjF,sBAAsB,CAAE6D,YAAF,EAAgBhB,KAAhB,CAAnC;AACA,QAAIsC,aAAJ;;AACA,QAAKF,IAAL,EAAY;AAAA;;AACX,YAAMD,QAAQ,GAAG,EAChB,8BAAGV,eAAe,CAACC,OAAnB,2DAAG,uBAAyBxC,KAA5B,CADgB;AAEhBM,QAAAA,KAAK,EAAE,EACN,8BAAGiC,eAAe,CAACC,OAAnB,qFAAG,uBAAyBxC,KAA5B,2DAAG,uBAAgCM,KAAnC,CADM;AAEN5B,UAAAA,QAAQ,EAAE8B;AAFJ;AAFS,OAAjB;AAOA4C,MAAAA,aAAa,GAAG;AACfpD,QAAAA,KAAK,EAAE9B,gBAAgB,CAAE+E,QAAF,CADR;AAEfvE,QAAAA,QAAQ,EAAEwE;AAFK,OAAhB;AAIA,KAZD,MAYO;AAAA;;AACN,YAAMD,QAAQ,GAAG,EAChB,8BAAGV,eAAe,CAACC,OAAnB,2DAAG,uBAAyBxC,KAA5B,CADgB;AAEhBM,QAAAA,KAAK,EAAE,EACN,8BAAGiC,eAAe,CAACC,OAAnB,qFAAG,uBAAyBxC,KAA5B,2DAAG,uBAAgCM,KAAnC,CADM;AAEN5B,UAAAA,QAAQ,EAAEoC;AAFJ;AAFS,OAAjB;AAOAsC,MAAAA,aAAa,GAAG;AACfpD,QAAAA,KAAK,EAAE9B,gBAAgB,CAAE+E,QAAF,CADR;AAEfvE,QAAAA,QAAQ,EAAE8B;AAFK,OAAhB;AAIA;;AACDV,IAAAA,KAAK,CAACuD,aAAN,CAAqBD,aAArB;AACAb,IAAAA,eAAe,CAACC,OAAhB,GAA0B,EACzB,GAAGD,eAAe,CAACC,OADM;AAEzB,SAAGY;AAFsB,KAA1B;AAIA,GAjCD;;AAmCA,QAAMG,iBAAiB,GAAKzC,KAAF,IAAa;AACtC,UAAMiC,WAAW,GAAGlF,0BAA0B,CAAE6D,SAAF,EAAaZ,KAAb,CAA9C;AACA,UAAM0C,iBAAiB,GAAGT,WAAW,SAAX,IAAAA,WAAW,WAAX,IAAAA,WAAW,CAAEG,IAAb,GACtB,oBAAoBH,WAAW,CAACG,IAAM,EADhB,GAEvBpC,KAFH;AAIA,UAAMmC,QAAQ,GAAG/E,gBAAgB,CAChC+C,YAAY,CACXjB,KADW,EAEX,CAAE,UAAF,EAAc,MAAd,EAAsB,OAAtB,EAA+B,MAA/B,CAFW,EAGXwD,iBAHW,CADoB,CAAjC;AAOA1D,IAAAA,KAAK,CAACuD,aAAN,CAAqB;AAAErD,MAAAA,KAAK,EAAEiD;AAAT,KAArB;AACA,GAdD;;AAgBA,QAAMQ,sBAAsB,GAC3B/F,QAAQ,CAACsB,EAAT,KAAgB,KAAhB,IAAyB,CAAEN,QAA3B,IAAuC,EAAEsB,KAAF,aAAEA,KAAF,gCAAEA,KAAK,CAAEM,KAAT,0CAAE,cAAc5B,QAAhB,CADxC;AAGA,SACC,cAAC,UAAD;AACC,IAAA,sBAAsB,EAAG+E,sBAD1B;AAEC,IAAA,QAAQ,EAAG3D,KAAK,CAAC4D,QAFlB;AAGC,IAAA,WAAW,EAAG,IAHf;AAIC,IAAA,QAAQ,EAAG,CACV,IAAKhB,YAAY,GACd,CACA;AACCiB,MAAAA,KAAK,EAAErG,EAAE,CAAE,MAAF,CADV;AAECsG,MAAAA,aAAa,EAAEd,aAAa,CAAE,MAAF,CAF7B;AAGCe,MAAAA,UAAU,EAAE/F,+BAA+B,CAC1C4D,SAD0C,EAE1C9B,SAF0C,EAG1CI,KAH0C,aAG1CA,KAH0C,wCAG1CA,KAAK,CAAEM,KAHmC,kDAG1C,cAAc1B,IAH4B,CAA/B,CAIV0B;AAPH,KADA,CADc,GAYd,EAZH,CADU,EAcV,IAAKqC,kBAAkB,IAAIC,gBAAtB,GACF,CACA;AACCe,MAAAA,KAAK,EAAErG,EAAE,CAAE,YAAF,CADV;AAECsG,MAAAA,aAAa,EAAEjB,kBAAkB,GAC9BG,aAAa,CAAE,YAAF,CADiB,GAE9BtC,SAJJ;AAKCqD,MAAAA,UAAU,EAAE/F,+BAA+B,CAC1C4D,SAD0C,EAE1ClC,eAF0C,EAG1CQ,KAH0C,aAG1CA,KAH0C,wCAG1CA,KAAK,CAAEM,KAHmC,kDAG1C,cAAc3B,UAH4B,CAA/B,CAIV2B,KATH;AAUCuC,MAAAA,aAVD;AAWCiB,MAAAA,gBAAgB,EAAElB,gBAAgB,GAC/BU,gBAD+B,GAE/B9C;AAbJ,KADA,CADE,GAkBF,EAlBH,CAdU,EAiCV,IAAKiC,YAAY,GACd,CACA;AACCkB,MAAAA,KAAK,EAAErG,EAAE,CAAE,MAAF,CADV;AAECsG,MAAAA,aAAa,EAAEL,iBAFhB;AAGCM,MAAAA,UAAU,EAAEjD,8BAA8B,CACzCc,SADyC,EAEzC1B,KAFyC,aAEzCA,KAFyC,2CAEzCA,KAAK,CAAEO,QAFkC,8EAEzC,iBAAiB9B,IAFwB,oFAEzC,sBAAuB6B,KAFkB,2DAEzC,uBAA8B1B,IAFW,CAH3C;AAOCmF,MAAAA,SAAS,EAAE,CAAC,EAAE/D,KAAF,aAAEA,KAAF,mCAAEA,KAAK,CAAEO,QAAT,sEAAE,iBAAiB9B,IAAnB,4EAAE,sBAAuB6B,KAAzB,mDAAE,uBACX1B,IADS;AAPb,KADA,CADc,GAad,EAbH,CAjCU;AAJZ,IADD;AAuDA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,MAAMoF,sBAAsB,GAAGrG,0BAA0B,CAC7DsG,cAAF,IAAwBnE,KAAF,IAAa;AAAA;;AAClC,QAAM;AAAEuB,IAAAA,IAAF;AAAQ9B,IAAAA;AAAR,MAAuBO,KAA7B;AACA,QAAM;AAAEN,IAAAA,eAAF;AAAmBI,IAAAA;AAAnB,MAAiCL,UAAvC;AACA,QAAMgC,WAAW,GAAGnD,UAAU,CAAE,sBAAF,CAAV,IAAwC,EAA5D;AACA,QAAMoD,YAAY,GAAGpD,UAAU,CAAE,qBAAF,CAAV,IAAuC,EAA5D;AACA,QAAMqD,cAAc,GAAGrD,UAAU,CAAE,uBAAF,CAAV,IAAyC,EAAhE;AACA,QAAMyC,MAAM,GAAGpD,OAAO,CACrB,MAAM,CACL,IAAK8D,WAAW,IAAI,EAApB,CADK,EAEL,IAAKC,YAAY,IAAI,EAArB,CAFK,EAGL,IAAKC,cAAc,IAAI,EAAvB,CAHK,CADe,EAMrB,CAAEF,WAAF,EAAeC,YAAf,EAA6BC,cAA7B,CANqB,CAAtB;;AAQA,MAAK,CAAEnD,eAAe,CAAE+C,IAAF,CAAjB,IAA6BxC,uBAAuB,CAAEwC,IAAF,CAAzD,EAAoE;AACnE,WAAO,cAAC,cAAD,EAAqBvB,KAArB,CAAP;AACA;;AACD,QAAMoE,WAAW,GAAG,EAApB;;AAEA,MAAKtE,SAAL,EAAiB;AAAA;;AAChBsE,IAAAA,WAAW,CAAC5D,KAAZ,4BAAoBxC,+BAA+B,CAClD+C,MADkD,EAElDjB,SAFkD,CAAnD,0DAAoB,sBAGjBU,KAHH;AAIA;;AACD,MAAKd,eAAL,EAAuB;AAAA;;AACtB0E,IAAAA,WAAW,CAAC1E,eAAZ,6BAA8B1B,+BAA+B,CAC5D+C,MAD4D,EAE5DrB,eAF4D,CAA7D,2DAA8B,uBAG3Bc,KAHH;AAIA;;AAED,MAAI6D,YAAY,GAAGrE,KAAK,CAACqE,YAAzB;AACAA,EAAAA,YAAY,GAAG,EACd,GAAGrE,KAAK,CAACqE,YADK;AAEdnE,IAAAA,KAAK,EAAE,EACN,GAAGkE,WADG;AAEN,iCAAGpE,KAAK,CAACqE,YAAT,wDAAG,oBAAoBnE,KAAvB;AAFM;AAFO,GAAf;AAQA,SAAO,cAAC,cAAD,eAAqBF,KAArB;AAA6B,IAAA,YAAY,EAAGqE;AAA5C,KAAP;AACA,CA3C8D,CAAzD;AA8CP/G,SAAS,CACR,0BADQ,EAER,yBAFQ,EAGRiC,aAHQ,CAAT;AAMAjC,SAAS,CACR,kCADQ,EAER,yBAFQ,EAGRyC,YAHQ,CAAT;AAMAzC,SAAS,CACR,0BADQ,EAER,yBAFQ,EAGRqD,YAHQ,CAAT;AAMArD,SAAS,CACR,uBADQ,EAER,sCAFQ,EAGR4G,sBAHQ,CAAT","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { isObject, setWith, clone } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { getBlockSupport } from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\nimport { useRef, useEffect, useMemo, Platform } from '@wordpress/element';\nimport { createHigherOrderComponent } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetColorClassName,\n\tgetColorObjectByColorValue,\n\tgetColorObjectByAttributeValues,\n} from '../components/colors';\nimport {\n\t__experimentalGetGradientClass,\n\tgetGradientValueBySlug,\n\tgetGradientSlugByValue,\n} from '../components/gradients';\nimport { cleanEmptyObject } from './utils';\nimport ColorPanel from './color-panel';\nimport useSetting from '../components/use-setting';\n\nexport const COLOR_SUPPORT_KEY = 'color';\n\nconst hasColorSupport = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\treturn (\n\t\tcolorSupport &&\n\t\t( colorSupport.link === true ||\n\t\t\tcolorSupport.gradient === true ||\n\t\t\tcolorSupport.background !== false ||\n\t\t\tcolorSupport.text !== false )\n\t);\n};\n\nconst shouldSkipSerialization = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn colorSupport?.__experimentalSkipSerialization;\n};\n\nconst hasLinkColorSupport = ( blockType ) => {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn isObject( colorSupport ) && !! colorSupport.link;\n};\n\nconst hasGradientSupport = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn isObject( colorSupport ) && !! colorSupport.gradients;\n};\n\nconst hasBackgroundColorSupport = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn colorSupport && colorSupport.background !== false;\n};\n\nconst hasTextColorSupport = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn colorSupport && colorSupport.text !== false;\n};\n\n/**\n * Filters registered block settings, extending attributes to include\n * `backgroundColor` and `textColor` attribute.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nfunction addAttributes( settings ) {\n\tif ( ! hasColorSupport( settings ) ) {\n\t\treturn settings;\n\t}\n\n\t// allow blocks to specify their own attribute definition with default values if needed.\n\tif ( ! settings.attributes.backgroundColor ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\tbackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\tif ( ! settings.attributes.textColor ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\ttextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\n\tif ( hasGradientSupport( settings ) && ! settings.attributes.gradient ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\tgradient: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n}\n\n/**\n * Override props assigned to save component to inject colors classnames.\n *\n * @param {Object} props Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addSaveProps( props, blockType, attributes ) {\n\tif (\n\t\t! hasColorSupport( blockType ) ||\n\t\tshouldSkipSerialization( blockType )\n\t) {\n\t\treturn props;\n\t}\n\n\tconst hasGradient = hasGradientSupport( blockType );\n\n\t// I'd have prefered to avoid the \"style\" attribute usage here\n\tconst { backgroundColor, textColor, gradient, style } = attributes;\n\n\tconst backgroundClass = getColorClassName(\n\t\t'background-color',\n\t\tbackgroundColor\n\t);\n\tconst gradientClass = __experimentalGetGradientClass( gradient );\n\tconst textClass = getColorClassName( 'color', textColor );\n\tconst newClassName = classnames(\n\t\tprops.className,\n\t\ttextClass,\n\t\tgradientClass,\n\t\t{\n\t\t\t// Don't apply the background class if there's a custom gradient\n\t\t\t[ backgroundClass ]:\n\t\t\t\t( ! hasGradient || ! style?.color?.gradient ) &&\n\t\t\t\t!! backgroundClass,\n\t\t\t'has-text-color': textColor || style?.color?.text,\n\t\t\t'has-background':\n\t\t\t\tbackgroundColor ||\n\t\t\t\tstyle?.color?.background ||\n\t\t\t\t( hasGradient && ( gradient || style?.color?.gradient ) ),\n\t\t\t'has-link-color': style?.elements?.link?.color,\n\t\t}\n\t);\n\tprops.className = newClassName ? newClassName : undefined;\n\n\treturn props;\n}\n\n/**\n * Filters registered block settings to extand the block edit wrapper\n * to apply the desired styles and classnames properly.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addEditProps( settings ) {\n\tif (\n\t\t! hasColorSupport( settings ) ||\n\t\tshouldSkipSerialization( settings )\n\t) {\n\t\treturn settings;\n\t}\n\tconst existingGetEditWrapperProps = settings.getEditWrapperProps;\n\tsettings.getEditWrapperProps = ( attributes ) => {\n\t\tlet props = {};\n\t\tif ( existingGetEditWrapperProps ) {\n\t\t\tprops = existingGetEditWrapperProps( attributes );\n\t\t}\n\t\treturn addSaveProps( props, settings, attributes );\n\t};\n\n\treturn settings;\n}\n\nconst getLinkColorFromAttributeValue = ( colors, value ) => {\n\tconst attributeParsed = /var:preset\\|color\\|(.+)/.exec( value );\n\tif ( attributeParsed && attributeParsed[ 1 ] ) {\n\t\treturn getColorObjectByAttributeValues( colors, attributeParsed[ 1 ] )\n\t\t\t.color;\n\t}\n\treturn value;\n};\n\nfunction immutableSet( object, path, value ) {\n\treturn setWith( object ? clone( object ) : {}, path, value, clone );\n}\n\n/**\n * Inspector control panel containing the color related configuration\n *\n * @param {Object} props\n *\n * @return {WPElement} Color edit element.\n */\nexport function ColorEdit( props ) {\n\tconst { name: blockName, attributes } = props;\n\t// Some color settings have a special handling for deprecated flags in `useSetting`,\n\t// so we can't unwrap them by doing const { ... } = useSetting('color')\n\t// until https://github.com/WordPress/gutenberg/issues/37094 is fixed.\n\tconst userPalette = useSetting( 'color.palette.custom' );\n\tconst themePalette = useSetting( 'color.palette.theme' );\n\tconst defaultPalette = useSetting( 'color.palette.default' );\n\tconst allSolids = useMemo(\n\t\t() => [\n\t\t\t...( userPalette || [] ),\n\t\t\t...( themePalette || [] ),\n\t\t\t...( defaultPalette || [] ),\n\t\t],\n\t\t[ userPalette, themePalette, defaultPalette ]\n\t);\n\tconst userGradientPalette = useSetting( 'color.gradients.custom' );\n\tconst themeGradientPalette = useSetting( 'color.gradients.theme' );\n\tconst defaultGradientPalette = useSetting( 'color.gradients.default' );\n\tconst allGradients = useMemo(\n\t\t() => [\n\t\t\t...( userGradientPalette || [] ),\n\t\t\t...( themeGradientPalette || [] ),\n\t\t\t...( defaultGradientPalette || [] ),\n\t\t],\n\t\t[ userGradientPalette, themeGradientPalette, defaultGradientPalette ]\n\t);\n\tconst areCustomSolidsEnabled = useSetting( 'color.custom' );\n\tconst areCustomGradientsEnabled = useSetting( 'color.customGradient' );\n\tconst isBackgroundEnabled = useSetting( 'color.background' );\n\tconst isLinkEnabled = useSetting( 'color.link' );\n\tconst isTextEnabled = useSetting( 'color.text' );\n\n\tconst solidsEnabled =\n\t\tareCustomSolidsEnabled || ! themePalette || themePalette?.length > 0;\n\n\tconst gradientsEnabled =\n\t\tareCustomGradientsEnabled ||\n\t\t! themeGradientPalette ||\n\t\tthemeGradientPalette?.length > 0;\n\n\t// Shouldn't be needed but right now the ColorGradientsPanel\n\t// can trigger both onChangeColor and onChangeBackground\n\t// synchronously causing our two callbacks to override changes\n\t// from each other.\n\tconst localAttributes = useRef( attributes );\n\tuseEffect( () => {\n\t\tlocalAttributes.current = attributes;\n\t}, [ attributes ] );\n\n\tif ( ! hasColorSupport( blockName ) ) {\n\t\treturn null;\n\t}\n\n\tconst hasLinkColor =\n\t\thasLinkColorSupport( blockName ) && isLinkEnabled && solidsEnabled;\n\tconst hasTextColor =\n\t\thasTextColorSupport( blockName ) && isTextEnabled && solidsEnabled;\n\tconst hasBackgroundColor =\n\t\thasBackgroundColorSupport( blockName ) &&\n\t\tisBackgroundEnabled &&\n\t\tsolidsEnabled;\n\tconst hasGradientColor =\n\t\thasGradientSupport( blockName ) && gradientsEnabled;\n\n\tif (\n\t\t! hasLinkColor &&\n\t\t! hasTextColor &&\n\t\t! hasBackgroundColor &&\n\t\t! hasGradientColor\n\t) {\n\t\treturn null;\n\t}\n\n\tconst { style, textColor, backgroundColor, gradient } = attributes;\n\tlet gradientValue;\n\tif ( hasGradientColor && gradient ) {\n\t\tgradientValue = getGradientValueBySlug( allGradients, gradient );\n\t} else if ( hasGradientColor ) {\n\t\tgradientValue = style?.color?.gradient;\n\t}\n\n\tconst onChangeColor = ( name ) => ( value ) => {\n\t\tconst colorObject = getColorObjectByColorValue( allSolids, value );\n\t\tconst attributeName = name + 'Color';\n\t\tconst newStyle = {\n\t\t\t...localAttributes.current.style,\n\t\t\tcolor: {\n\t\t\t\t...localAttributes.current?.style?.color,\n\t\t\t\t[ name ]: colorObject?.slug ? undefined : value,\n\t\t\t},\n\t\t};\n\n\t\tconst newNamedColor = colorObject?.slug ? colorObject.slug : undefined;\n\t\tconst newAttributes = {\n\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t\t[ attributeName ]: newNamedColor,\n\t\t};\n\n\t\tprops.setAttributes( newAttributes );\n\t\tlocalAttributes.current = {\n\t\t\t...localAttributes.current,\n\t\t\t...newAttributes,\n\t\t};\n\t};\n\n\tconst onChangeGradient = ( value ) => {\n\t\tconst slug = getGradientSlugByValue( allGradients, value );\n\t\tlet newAttributes;\n\t\tif ( slug ) {\n\t\t\tconst newStyle = {\n\t\t\t\t...localAttributes.current?.style,\n\t\t\t\tcolor: {\n\t\t\t\t\t...localAttributes.current?.style?.color,\n\t\t\t\t\tgradient: undefined,\n\t\t\t\t},\n\t\t\t};\n\t\t\tnewAttributes = {\n\t\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t\t\tgradient: slug,\n\t\t\t};\n\t\t} else {\n\t\t\tconst newStyle = {\n\t\t\t\t...localAttributes.current?.style,\n\t\t\t\tcolor: {\n\t\t\t\t\t...localAttributes.current?.style?.color,\n\t\t\t\t\tgradient: value,\n\t\t\t\t},\n\t\t\t};\n\t\t\tnewAttributes = {\n\t\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t\t\tgradient: undefined,\n\t\t\t};\n\t\t}\n\t\tprops.setAttributes( newAttributes );\n\t\tlocalAttributes.current = {\n\t\t\t...localAttributes.current,\n\t\t\t...newAttributes,\n\t\t};\n\t};\n\n\tconst onChangeLinkColor = ( value ) => {\n\t\tconst colorObject = getColorObjectByColorValue( allSolids, value );\n\t\tconst newLinkColorValue = colorObject?.slug\n\t\t\t? `var:preset|color|${ colorObject.slug }`\n\t\t\t: value;\n\n\t\tconst newStyle = cleanEmptyObject(\n\t\t\timmutableSet(\n\t\t\t\tstyle,\n\t\t\t\t[ 'elements', 'link', 'color', 'text' ],\n\t\t\t\tnewLinkColorValue\n\t\t\t)\n\t\t);\n\t\tprops.setAttributes( { style: newStyle } );\n\t};\n\n\tconst enableContrastChecking =\n\t\tPlatform.OS === 'web' && ! gradient && ! style?.color?.gradient;\n\n\treturn (\n\t\t<ColorPanel\n\t\t\tenableContrastChecking={ enableContrastChecking }\n\t\t\tclientId={ props.clientId }\n\t\t\tenableAlpha={ true }\n\t\t\tsettings={ [\n\t\t\t\t...( hasTextColor\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\t\t\t\tonColorChange: onChangeColor( 'text' ),\n\t\t\t\t\t\t\t\tcolorValue: getColorObjectByAttributeValues(\n\t\t\t\t\t\t\t\t\tallSolids,\n\t\t\t\t\t\t\t\t\ttextColor,\n\t\t\t\t\t\t\t\t\tstyle?.color?.text\n\t\t\t\t\t\t\t\t).color,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [] ),\n\t\t\t\t...( hasBackgroundColor || hasGradientColor\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'Background' ),\n\t\t\t\t\t\t\t\tonColorChange: hasBackgroundColor\n\t\t\t\t\t\t\t\t\t? onChangeColor( 'background' )\n\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\tcolorValue: getColorObjectByAttributeValues(\n\t\t\t\t\t\t\t\t\tallSolids,\n\t\t\t\t\t\t\t\t\tbackgroundColor,\n\t\t\t\t\t\t\t\t\tstyle?.color?.background\n\t\t\t\t\t\t\t\t).color,\n\t\t\t\t\t\t\t\tgradientValue,\n\t\t\t\t\t\t\t\tonGradientChange: hasGradientColor\n\t\t\t\t\t\t\t\t\t? onChangeGradient\n\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [] ),\n\t\t\t\t...( hasLinkColor\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'Link' ),\n\t\t\t\t\t\t\t\tonColorChange: onChangeLinkColor,\n\t\t\t\t\t\t\t\tcolorValue: getLinkColorFromAttributeValue(\n\t\t\t\t\t\t\t\t\tallSolids,\n\t\t\t\t\t\t\t\t\tstyle?.elements?.link?.color?.text\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tclearable: !! style?.elements?.link?.color\n\t\t\t\t\t\t\t\t\t?.text,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [] ),\n\t\t\t] }\n\t\t/>\n\t);\n}\n\n/**\n * This adds inline styles for color palette colors.\n * Ideally, this is not needed and themes should load their palettes on the editor.\n *\n * @param {Function} BlockListBlock Original component.\n *\n * @return {Function} Wrapped component.\n */\nexport const withColorPaletteStyles = createHigherOrderComponent(\n\t( BlockListBlock ) => ( props ) => {\n\t\tconst { name, attributes } = props;\n\t\tconst { backgroundColor, textColor } = attributes;\n\t\tconst userPalette = useSetting( 'color.palette.custom' ) || [];\n\t\tconst themePalette = useSetting( 'color.palette.theme' ) || [];\n\t\tconst defaultPalette = useSetting( 'color.palette.default' ) || [];\n\t\tconst colors = useMemo(\n\t\t\t() => [\n\t\t\t\t...( userPalette || [] ),\n\t\t\t\t...( themePalette || [] ),\n\t\t\t\t...( defaultPalette || [] ),\n\t\t\t],\n\t\t\t[ userPalette, themePalette, defaultPalette ]\n\t\t);\n\t\tif ( ! hasColorSupport( name ) || shouldSkipSerialization( name ) ) {\n\t\t\treturn <BlockListBlock { ...props } />;\n\t\t}\n\t\tconst extraStyles = {};\n\n\t\tif ( textColor ) {\n\t\t\textraStyles.color = getColorObjectByAttributeValues(\n\t\t\t\tcolors,\n\t\t\t\ttextColor\n\t\t\t)?.color;\n\t\t}\n\t\tif ( backgroundColor ) {\n\t\t\textraStyles.backgroundColor = getColorObjectByAttributeValues(\n\t\t\t\tcolors,\n\t\t\t\tbackgroundColor\n\t\t\t)?.color;\n\t\t}\n\n\t\tlet wrapperProps = props.wrapperProps;\n\t\twrapperProps = {\n\t\t\t...props.wrapperProps,\n\t\t\tstyle: {\n\t\t\t\t...extraStyles,\n\t\t\t\t...props.wrapperProps?.style,\n\t\t\t},\n\t\t};\n\n\t\treturn <BlockListBlock { ...props } wrapperProps={ wrapperProps } />;\n\t}\n);\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/color/addAttribute',\n\taddAttributes\n);\n\naddFilter(\n\t'blocks.getSaveContent.extraProps',\n\t'core/color/addSaveProps',\n\taddSaveProps\n);\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/color/addEditProps',\n\taddEditProps\n);\n\naddFilter(\n\t'editor.BlockListBlock',\n\t'core/color/with-color-palette-styles',\n\twithColorPaletteStyles\n);\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/hooks/color.js"],"names":["classnames","isObject","addFilter","getBlockSupport","__","useRef","useEffect","useMemo","Platform","createHigherOrderComponent","getColorClassName","getColorObjectByColorValue","getColorObjectByAttributeValues","__experimentalGetGradientClass","getGradientValueBySlug","getGradientSlugByValue","cleanEmptyObject","transformStyles","immutableSet","ColorPanel","useSetting","COLOR_SUPPORT_KEY","hasColorSupport","blockType","colorSupport","link","gradient","background","text","shouldSkipSerialization","__experimentalSkipSerialization","hasLinkColorSupport","OS","hasGradientSupport","gradients","hasBackgroundColorSupport","hasTextColorSupport","hasColor","name","props","attributes","backgroundColor","style","color","elements","clearColorFromStyles","path","undefined","resetTextColor","setAttributes","textColor","resetAllTextFilter","resetLinkColor","resetAllLinkFilter","clearBackgroundAndGradient","resetBackgroundAndGradient","addAttributes","settings","Object","assign","type","addSaveProps","hasGradient","backgroundClass","gradientClass","textClass","newClassName","className","addEditProps","existingGetEditWrapperProps","getEditWrapperProps","getLinkColorFromAttributeValue","colors","value","attributeParsed","exec","ColorEdit","blockName","userPalette","themePalette","defaultPalette","allSolids","userGradientPalette","themeGradientPalette","defaultGradientPalette","allGradients","areCustomSolidsEnabled","areCustomGradientsEnabled","isBackgroundEnabled","isLinkEnabled","isTextEnabled","solidsEnabled","length","gradientsEnabled","localAttributes","current","hasLinkColor","hasTextColor","hasBackgroundColor","hasGradientColor","gradientValue","onChangeColor","colorObject","attributeName","newStyle","slug","newNamedColor","newAttributes","onChangeGradient","onChangeLinkColor","newLinkColorValue","enableContrastChecking","defaultColorControls","clientId","label","onColorChange","colorValue","isShownByDefault","hasValue","onDeselect","resetAllFilter","onGradientChange","clearable","withColorPaletteStyles","BlockListBlock","extraStyles","wrapperProps","MIGRATION_PATHS","linkColor","addTransforms","result","source","index","results","destinationBlockType","activeSupports"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { isObject } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { getBlockSupport } from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\nimport { useRef, useEffect, useMemo, Platform } from '@wordpress/element';\nimport { createHigherOrderComponent } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetColorClassName,\n\tgetColorObjectByColorValue,\n\tgetColorObjectByAttributeValues,\n} from '../components/colors';\nimport {\n\t__experimentalGetGradientClass,\n\tgetGradientValueBySlug,\n\tgetGradientSlugByValue,\n} from '../components/gradients';\nimport { cleanEmptyObject, transformStyles, immutableSet } from './utils';\nimport ColorPanel from './color-panel';\nimport useSetting from '../components/use-setting';\n\nexport const COLOR_SUPPORT_KEY = 'color';\n\nconst hasColorSupport = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\treturn (\n\t\tcolorSupport &&\n\t\t( colorSupport.link === true ||\n\t\t\tcolorSupport.gradient === true ||\n\t\t\tcolorSupport.background !== false ||\n\t\t\tcolorSupport.text !== false )\n\t);\n};\n\nconst shouldSkipSerialization = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn colorSupport?.__experimentalSkipSerialization;\n};\n\nconst hasLinkColorSupport = ( blockType ) => {\n\tif ( Platform.OS !== 'web' ) {\n\t\treturn false;\n\t}\n\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn isObject( colorSupport ) && !! colorSupport.link;\n};\n\nconst hasGradientSupport = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn isObject( colorSupport ) && !! colorSupport.gradients;\n};\n\nconst hasBackgroundColorSupport = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn colorSupport && colorSupport.background !== false;\n};\n\nconst hasTextColorSupport = ( blockType ) => {\n\tconst colorSupport = getBlockSupport( blockType, COLOR_SUPPORT_KEY );\n\n\treturn colorSupport && colorSupport.text !== false;\n};\n\n/**\n * Checks whether a color has been set either with a named preset color in\n * a top level block attribute or as a custom value within the style attribute\n * object.\n *\n * @param {string} name Name of the color to check.\n * @return {boolean} Whether or not a color has a value.\n */\nconst hasColor = ( name ) => ( props ) => {\n\tif ( name === 'background' ) {\n\t\treturn (\n\t\t\t!! props.attributes.backgroundColor ||\n\t\t\t!! props.attributes.style?.color?.background ||\n\t\t\t!! props.attributes.gradient ||\n\t\t\t!! props.attributes.style?.color?.gradient\n\t\t);\n\t}\n\n\tif ( name === 'link' ) {\n\t\treturn !! props.attributes.style?.elements?.link?.color?.text;\n\t}\n\n\treturn (\n\t\t!! props.attributes[ `${ name }Color` ] ||\n\t\t!! props.attributes.style?.color?.[ name ]\n\t);\n};\n\n/**\n * Clears a single color property from a style object.\n *\n * @param {Array} path Path to color property to clear within styles object.\n * @param {Object} style Block attributes style object.\n * @return {Object} Styles with the color property omitted.\n */\nconst clearColorFromStyles = ( path, style ) =>\n\tcleanEmptyObject( immutableSet( style, path, undefined ) );\n\n/**\n * Resets the block attributes for text color.\n *\n * @param {Object} props Current block props.\n * @param {Object} props.attributes Block attributes.\n * @param {Function} props.setAttributes Block's setAttributes prop used to apply reset.\n */\nconst resetTextColor = ( { attributes, setAttributes } ) => {\n\tsetAttributes( {\n\t\ttextColor: undefined,\n\t\tstyle: clearColorFromStyles( [ 'color', 'text' ], attributes.style ),\n\t} );\n};\n\n/**\n * Clears text color related properties from supplied attributes.\n *\n * @param {Object} attributes Block attributes.\n * @return {Object} Update block attributes with text color properties omitted.\n */\nconst resetAllTextFilter = ( attributes ) => ( {\n\ttextColor: undefined,\n\tstyle: clearColorFromStyles( [ 'color', 'text' ], attributes.style ),\n} );\n\n/**\n * Resets the block attributes for link color.\n *\n * @param {Object} props Current block props.\n * @param {Object} props.attributes Block attributes.\n * @param {Function} props.setAttributes Block's setAttributes prop used to apply reset.\n */\nconst resetLinkColor = ( { attributes, setAttributes } ) => {\n\tconst path = [ 'elements', 'link', 'color', 'text' ];\n\tsetAttributes( { style: clearColorFromStyles( path, attributes.style ) } );\n};\n\n/**\n * Clears link color related properties from supplied attributes.\n *\n * @param {Object} attributes Block attributes.\n * @return {Object} Update block attributes with link color properties omitted.\n */\nconst resetAllLinkFilter = ( attributes ) => ( {\n\tstyle: clearColorFromStyles(\n\t\t[ 'elements', 'link', 'color', 'text' ],\n\t\tattributes.style\n\t),\n} );\n\n/**\n * Clears all background color related properties including gradients from\n * supplied block attributes.\n *\n * @param {Object} attributes Block attributes.\n * @return {Object} Block attributes with background and gradient omitted.\n */\nconst clearBackgroundAndGradient = ( attributes ) => ( {\n\tbackgroundColor: undefined,\n\tgradient: undefined,\n\tstyle: {\n\t\t...attributes.style,\n\t\tcolor: {\n\t\t\t...attributes.style?.color,\n\t\t\tbackground: undefined,\n\t\t\tgradient: undefined,\n\t\t},\n\t},\n} );\n\n/**\n * Resets the block attributes for both background color and gradient.\n *\n * @param {Object} props Current block props.\n * @param {Object} props.attributes Block attributes.\n * @param {Function} props.setAttributes Block's setAttributes prop used to apply reset.\n */\nconst resetBackgroundAndGradient = ( { attributes, setAttributes } ) => {\n\tsetAttributes( clearBackgroundAndGradient( attributes ) );\n};\n\n/**\n * Filters registered block settings, extending attributes to include\n * `backgroundColor` and `textColor` attribute.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nfunction addAttributes( settings ) {\n\tif ( ! hasColorSupport( settings ) ) {\n\t\treturn settings;\n\t}\n\n\t// allow blocks to specify their own attribute definition with default values if needed.\n\tif ( ! settings.attributes.backgroundColor ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\tbackgroundColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\tif ( ! settings.attributes.textColor ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\ttextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\n\tif ( hasGradientSupport( settings ) && ! settings.attributes.gradient ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\tgradient: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n}\n\n/**\n * Override props assigned to save component to inject colors classnames.\n *\n * @param {Object} props Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nexport function addSaveProps( props, blockType, attributes ) {\n\tif (\n\t\t! hasColorSupport( blockType ) ||\n\t\tshouldSkipSerialization( blockType )\n\t) {\n\t\treturn props;\n\t}\n\n\tconst hasGradient = hasGradientSupport( blockType );\n\n\t// I'd have preferred to avoid the \"style\" attribute usage here\n\tconst { backgroundColor, textColor, gradient, style } = attributes;\n\n\tconst backgroundClass = getColorClassName(\n\t\t'background-color',\n\t\tbackgroundColor\n\t);\n\tconst gradientClass = __experimentalGetGradientClass( gradient );\n\tconst textClass = getColorClassName( 'color', textColor );\n\tconst newClassName = classnames(\n\t\tprops.className,\n\t\ttextClass,\n\t\tgradientClass,\n\t\t{\n\t\t\t// Don't apply the background class if there's a custom gradient\n\t\t\t[ backgroundClass ]:\n\t\t\t\t( ! hasGradient || ! style?.color?.gradient ) &&\n\t\t\t\t!! backgroundClass,\n\t\t\t'has-text-color': textColor || style?.color?.text,\n\t\t\t'has-background':\n\t\t\t\tbackgroundColor ||\n\t\t\t\tstyle?.color?.background ||\n\t\t\t\t( hasGradient && ( gradient || style?.color?.gradient ) ),\n\t\t\t'has-link-color': style?.elements?.link?.color,\n\t\t}\n\t);\n\tprops.className = newClassName ? newClassName : undefined;\n\n\treturn props;\n}\n\n/**\n * Filters registered block settings to extend the block edit wrapper\n * to apply the desired styles and classnames properly.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nexport function addEditProps( settings ) {\n\tif (\n\t\t! hasColorSupport( settings ) ||\n\t\tshouldSkipSerialization( settings )\n\t) {\n\t\treturn settings;\n\t}\n\tconst existingGetEditWrapperProps = settings.getEditWrapperProps;\n\tsettings.getEditWrapperProps = ( attributes ) => {\n\t\tlet props = {};\n\t\tif ( existingGetEditWrapperProps ) {\n\t\t\tprops = existingGetEditWrapperProps( attributes );\n\t\t}\n\t\treturn addSaveProps( props, settings, attributes );\n\t};\n\n\treturn settings;\n}\n\nconst getLinkColorFromAttributeValue = ( colors, value ) => {\n\tconst attributeParsed = /var:preset\\|color\\|(.+)/.exec( value );\n\tif ( attributeParsed && attributeParsed[ 1 ] ) {\n\t\treturn getColorObjectByAttributeValues( colors, attributeParsed[ 1 ] )\n\t\t\t.color;\n\t}\n\treturn value;\n};\n\n/**\n * Inspector control panel containing the color related configuration\n *\n * @param {Object} props\n *\n * @return {WPElement} Color edit element.\n */\nexport function ColorEdit( props ) {\n\tconst { name: blockName, attributes } = props;\n\t// Some color settings have a special handling for deprecated flags in `useSetting`,\n\t// so we can't unwrap them by doing const { ... } = useSetting('color')\n\t// until https://github.com/WordPress/gutenberg/issues/37094 is fixed.\n\tconst userPalette = useSetting( 'color.palette.custom' );\n\tconst themePalette = useSetting( 'color.palette.theme' );\n\tconst defaultPalette = useSetting( 'color.palette.default' );\n\tconst allSolids = useMemo(\n\t\t() => [\n\t\t\t...( userPalette || [] ),\n\t\t\t...( themePalette || [] ),\n\t\t\t...( defaultPalette || [] ),\n\t\t],\n\t\t[ userPalette, themePalette, defaultPalette ]\n\t);\n\tconst userGradientPalette = useSetting( 'color.gradients.custom' );\n\tconst themeGradientPalette = useSetting( 'color.gradients.theme' );\n\tconst defaultGradientPalette = useSetting( 'color.gradients.default' );\n\tconst allGradients = useMemo(\n\t\t() => [\n\t\t\t...( userGradientPalette || [] ),\n\t\t\t...( themeGradientPalette || [] ),\n\t\t\t...( defaultGradientPalette || [] ),\n\t\t],\n\t\t[ userGradientPalette, themeGradientPalette, defaultGradientPalette ]\n\t);\n\tconst areCustomSolidsEnabled = useSetting( 'color.custom' );\n\tconst areCustomGradientsEnabled = useSetting( 'color.customGradient' );\n\tconst isBackgroundEnabled = useSetting( 'color.background' );\n\tconst isLinkEnabled = useSetting( 'color.link' );\n\tconst isTextEnabled = useSetting( 'color.text' );\n\n\tconst solidsEnabled =\n\t\tareCustomSolidsEnabled || ! themePalette || themePalette?.length > 0;\n\n\tconst gradientsEnabled =\n\t\tareCustomGradientsEnabled ||\n\t\t! themeGradientPalette ||\n\t\tthemeGradientPalette?.length > 0;\n\n\t// Shouldn't be needed but right now the ColorGradientsPanel\n\t// can trigger both onChangeColor and onChangeBackground\n\t// synchronously causing our two callbacks to override changes\n\t// from each other.\n\tconst localAttributes = useRef( attributes );\n\tuseEffect( () => {\n\t\tlocalAttributes.current = attributes;\n\t}, [ attributes ] );\n\n\tif ( ! hasColorSupport( blockName ) ) {\n\t\treturn null;\n\t}\n\n\tconst hasLinkColor =\n\t\thasLinkColorSupport( blockName ) && isLinkEnabled && solidsEnabled;\n\tconst hasTextColor =\n\t\thasTextColorSupport( blockName ) && isTextEnabled && solidsEnabled;\n\tconst hasBackgroundColor =\n\t\thasBackgroundColorSupport( blockName ) &&\n\t\tisBackgroundEnabled &&\n\t\tsolidsEnabled;\n\tconst hasGradientColor =\n\t\thasGradientSupport( blockName ) && gradientsEnabled;\n\n\tif (\n\t\t! hasLinkColor &&\n\t\t! hasTextColor &&\n\t\t! hasBackgroundColor &&\n\t\t! hasGradientColor\n\t) {\n\t\treturn null;\n\t}\n\n\tconst { style, textColor, backgroundColor, gradient } = attributes;\n\tlet gradientValue;\n\tif ( hasGradientColor && gradient ) {\n\t\tgradientValue = getGradientValueBySlug( allGradients, gradient );\n\t} else if ( hasGradientColor ) {\n\t\tgradientValue = style?.color?.gradient;\n\t}\n\n\tconst onChangeColor = ( name ) => ( value ) => {\n\t\tconst colorObject = getColorObjectByColorValue( allSolids, value );\n\t\tconst attributeName = name + 'Color';\n\t\tconst newStyle = {\n\t\t\t...localAttributes.current.style,\n\t\t\tcolor: {\n\t\t\t\t...localAttributes.current?.style?.color,\n\t\t\t\t[ name ]: colorObject?.slug ? undefined : value,\n\t\t\t},\n\t\t};\n\n\t\tconst newNamedColor = colorObject?.slug ? colorObject.slug : undefined;\n\t\tconst newAttributes = {\n\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t\t[ attributeName ]: newNamedColor,\n\t\t};\n\n\t\tprops.setAttributes( newAttributes );\n\t\tlocalAttributes.current = {\n\t\t\t...localAttributes.current,\n\t\t\t...newAttributes,\n\t\t};\n\t};\n\n\tconst onChangeGradient = ( value ) => {\n\t\tconst slug = getGradientSlugByValue( allGradients, value );\n\t\tlet newAttributes;\n\t\tif ( slug ) {\n\t\t\tconst newStyle = {\n\t\t\t\t...localAttributes.current?.style,\n\t\t\t\tcolor: {\n\t\t\t\t\t...localAttributes.current?.style?.color,\n\t\t\t\t\tgradient: undefined,\n\t\t\t\t},\n\t\t\t};\n\t\t\tnewAttributes = {\n\t\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t\t\tgradient: slug,\n\t\t\t};\n\t\t} else {\n\t\t\tconst newStyle = {\n\t\t\t\t...localAttributes.current?.style,\n\t\t\t\tcolor: {\n\t\t\t\t\t...localAttributes.current?.style?.color,\n\t\t\t\t\tgradient: value,\n\t\t\t\t},\n\t\t\t};\n\t\t\tnewAttributes = {\n\t\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t\t\tgradient: undefined,\n\t\t\t};\n\t\t}\n\t\tprops.setAttributes( newAttributes );\n\t\tlocalAttributes.current = {\n\t\t\t...localAttributes.current,\n\t\t\t...newAttributes,\n\t\t};\n\t};\n\n\tconst onChangeLinkColor = ( value ) => {\n\t\tconst colorObject = getColorObjectByColorValue( allSolids, value );\n\t\tconst newLinkColorValue = colorObject?.slug\n\t\t\t? `var:preset|color|${ colorObject.slug }`\n\t\t\t: value;\n\n\t\tconst newStyle = cleanEmptyObject(\n\t\t\timmutableSet(\n\t\t\t\tstyle,\n\t\t\t\t[ 'elements', 'link', 'color', 'text' ],\n\t\t\t\tnewLinkColorValue\n\t\t\t)\n\t\t);\n\t\tprops.setAttributes( { style: newStyle } );\n\t};\n\n\tconst enableContrastChecking =\n\t\tPlatform.OS === 'web' && ! gradient && ! style?.color?.gradient;\n\n\tconst defaultColorControls = getBlockSupport( props.name, [\n\t\tCOLOR_SUPPORT_KEY,\n\t\t'__experimentalDefaultControls',\n\t] );\n\n\treturn (\n\t\t<ColorPanel\n\t\t\tenableContrastChecking={ enableContrastChecking }\n\t\t\tclientId={ props.clientId }\n\t\t\tenableAlpha={ true }\n\t\t\tsettings={ [\n\t\t\t\t...( hasTextColor\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'Text' ),\n\t\t\t\t\t\t\t\tonColorChange: onChangeColor( 'text' ),\n\t\t\t\t\t\t\t\tcolorValue: getColorObjectByAttributeValues(\n\t\t\t\t\t\t\t\t\tallSolids,\n\t\t\t\t\t\t\t\t\ttextColor,\n\t\t\t\t\t\t\t\t\tstyle?.color?.text\n\t\t\t\t\t\t\t\t).color,\n\t\t\t\t\t\t\t\tisShownByDefault: defaultColorControls?.text,\n\t\t\t\t\t\t\t\thasValue: () => hasColor( 'text' )( props ),\n\t\t\t\t\t\t\t\tonDeselect: () => resetTextColor( props ),\n\t\t\t\t\t\t\t\tresetAllFilter: resetAllTextFilter,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [] ),\n\t\t\t\t...( hasBackgroundColor || hasGradientColor\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'Background' ),\n\t\t\t\t\t\t\t\tonColorChange: hasBackgroundColor\n\t\t\t\t\t\t\t\t\t? onChangeColor( 'background' )\n\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\tcolorValue: getColorObjectByAttributeValues(\n\t\t\t\t\t\t\t\t\tallSolids,\n\t\t\t\t\t\t\t\t\tbackgroundColor,\n\t\t\t\t\t\t\t\t\tstyle?.color?.background\n\t\t\t\t\t\t\t\t).color,\n\t\t\t\t\t\t\t\tgradientValue,\n\t\t\t\t\t\t\t\tonGradientChange: hasGradientColor\n\t\t\t\t\t\t\t\t\t? onChangeGradient\n\t\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t\tisShownByDefault:\n\t\t\t\t\t\t\t\t\tdefaultColorControls?.background,\n\t\t\t\t\t\t\t\thasValue: () =>\n\t\t\t\t\t\t\t\t\thasColor( 'background' )( props ),\n\t\t\t\t\t\t\t\tonDeselect: () =>\n\t\t\t\t\t\t\t\t\tresetBackgroundAndGradient( props ),\n\t\t\t\t\t\t\t\tresetAllFilter: clearBackgroundAndGradient,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [] ),\n\t\t\t\t...( hasLinkColor\n\t\t\t\t\t? [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'Link' ),\n\t\t\t\t\t\t\t\tonColorChange: onChangeLinkColor,\n\t\t\t\t\t\t\t\tcolorValue: getLinkColorFromAttributeValue(\n\t\t\t\t\t\t\t\t\tallSolids,\n\t\t\t\t\t\t\t\t\tstyle?.elements?.link?.color?.text\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tclearable: !! style?.elements?.link?.color\n\t\t\t\t\t\t\t\t\t?.text,\n\t\t\t\t\t\t\t\tisShownByDefault: defaultColorControls?.link,\n\t\t\t\t\t\t\t\thasValue: () => hasColor( 'link' )( props ),\n\t\t\t\t\t\t\t\tonDeselect: () => resetLinkColor( props ),\n\t\t\t\t\t\t\t\tresetAllFilter: resetAllLinkFilter,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t ]\n\t\t\t\t\t: [] ),\n\t\t\t] }\n\t\t/>\n\t);\n}\n\n/**\n * This adds inline styles for color palette colors.\n * Ideally, this is not needed and themes should load their palettes on the editor.\n *\n * @param {Function} BlockListBlock Original component.\n *\n * @return {Function} Wrapped component.\n */\nexport const withColorPaletteStyles = createHigherOrderComponent(\n\t( BlockListBlock ) => ( props ) => {\n\t\tconst { name, attributes } = props;\n\t\tconst { backgroundColor, textColor } = attributes;\n\t\tconst userPalette = useSetting( 'color.palette.custom' ) || [];\n\t\tconst themePalette = useSetting( 'color.palette.theme' ) || [];\n\t\tconst defaultPalette = useSetting( 'color.palette.default' ) || [];\n\t\tconst colors = useMemo(\n\t\t\t() => [\n\t\t\t\t...( userPalette || [] ),\n\t\t\t\t...( themePalette || [] ),\n\t\t\t\t...( defaultPalette || [] ),\n\t\t\t],\n\t\t\t[ userPalette, themePalette, defaultPalette ]\n\t\t);\n\t\tif ( ! hasColorSupport( name ) || shouldSkipSerialization( name ) ) {\n\t\t\treturn <BlockListBlock { ...props } />;\n\t\t}\n\t\tconst extraStyles = {};\n\n\t\tif ( textColor ) {\n\t\t\textraStyles.color = getColorObjectByAttributeValues(\n\t\t\t\tcolors,\n\t\t\t\ttextColor\n\t\t\t)?.color;\n\t\t}\n\t\tif ( backgroundColor ) {\n\t\t\textraStyles.backgroundColor = getColorObjectByAttributeValues(\n\t\t\t\tcolors,\n\t\t\t\tbackgroundColor\n\t\t\t)?.color;\n\t\t}\n\n\t\tlet wrapperProps = props.wrapperProps;\n\t\twrapperProps = {\n\t\t\t...props.wrapperProps,\n\t\t\tstyle: {\n\t\t\t\t...extraStyles,\n\t\t\t\t...props.wrapperProps?.style,\n\t\t\t},\n\t\t};\n\n\t\treturn <BlockListBlock { ...props } wrapperProps={ wrapperProps } />;\n\t}\n);\n\nconst MIGRATION_PATHS = {\n\tlinkColor: [ [ 'style', 'elements', 'link', 'color', 'text' ] ],\n\ttextColor: [ [ 'textColor' ], [ 'style', 'color', 'text' ] ],\n\tbackgroundColor: [\n\t\t[ 'backgroundColor' ],\n\t\t[ 'style', 'color', 'background' ],\n\t],\n\tgradient: [ [ 'gradient' ], [ 'style', 'color', 'gradient' ] ],\n};\n\nexport function addTransforms( result, source, index, results ) {\n\tconst destinationBlockType = result.name;\n\tconst activeSupports = {\n\t\tlinkColor: hasLinkColorSupport( destinationBlockType ),\n\t\ttextColor: hasTextColorSupport( destinationBlockType ),\n\t\tbackgroundColor: hasBackgroundColorSupport( destinationBlockType ),\n\t\tgradient: hasGradientSupport( destinationBlockType ),\n\t};\n\treturn transformStyles(\n\t\tactiveSupports,\n\t\tMIGRATION_PATHS,\n\t\tresult,\n\t\tsource,\n\t\tindex,\n\t\tresults\n\t);\n}\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/color/addAttribute',\n\taddAttributes\n);\n\naddFilter(\n\t'blocks.getSaveContent.extraProps',\n\t'core/color/addSaveProps',\n\taddSaveProps\n);\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/color/addEditProps',\n\taddEditProps\n);\n\naddFilter(\n\t'editor.BlockListBlock',\n\t'core/color/with-color-palette-styles',\n\twithColorPaletteStyles\n);\n\naddFilter(\n\t'blocks.switchToBlockType.transformedBlock',\n\t'core/color/addTransforms',\n\taddTransforms\n);\n"]}
@@ -12,7 +12,7 @@ import { createHigherOrderComponent } from '@wordpress/compose';
12
12
  */
13
13
 
14
14
  import { getFontSize, getFontSizeClass, getFontSizeObjectByValue, FontSizePicker } from '../components/font-sizes';
15
- import { cleanEmptyObject } from './utils';
15
+ import { cleanEmptyObject, transformStyles } from './utils';
16
16
  import useSetting from '../components/use-setting';
17
17
  export const FONT_SIZE_SUPPORT_KEY = 'typography.fontSize';
18
18
  /**
@@ -236,8 +236,19 @@ const withFontSizeInlineStyles = createHigherOrderComponent(BlockListBlock => pr
236
236
  };
237
237
  return createElement(BlockListBlock, newProps);
238
238
  }, 'withFontSizeInlineStyles');
239
+ const MIGRATION_PATHS = {
240
+ fontSize: [['fontSize'], ['style', 'typography', 'fontSize']]
241
+ };
242
+ export function addTransforms(result, source, index, results) {
243
+ const destinationBlockType = result.name;
244
+ const activeSupports = {
245
+ fontSize: hasBlockSupport(destinationBlockType, FONT_SIZE_SUPPORT_KEY)
246
+ };
247
+ return transformStyles(activeSupports, MIGRATION_PATHS, result, source, index, results);
248
+ }
239
249
  addFilter('blocks.registerBlockType', 'core/font/addAttribute', addAttributes);
240
250
  addFilter('blocks.getSaveContent.extraProps', 'core/font/addSaveProps', addSaveProps);
241
251
  addFilter('blocks.registerBlockType', 'core/font/addEditProps', addEditProps);
242
252
  addFilter('editor.BlockListBlock', 'core/font-size/with-font-size-inline-styles', withFontSizeInlineStyles);
253
+ addFilter('blocks.switchToBlockType.transformedBlock', 'core/font-size/addTransforms', addTransforms);
243
254
  //# sourceMappingURL=font-size.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/hooks/font-size.js"],"names":["addFilter","hasBlockSupport","TokenList","createHigherOrderComponent","getFontSize","getFontSizeClass","getFontSizeObjectByValue","FontSizePicker","cleanEmptyObject","useSetting","FONT_SIZE_SUPPORT_KEY","addAttributes","settings","attributes","fontSize","Object","assign","type","addSaveProps","props","blockType","classes","className","add","newClassName","value","undefined","addEditProps","existingGetEditWrapperProps","getEditWrapperProps","FontSizeEdit","style","setAttributes","fontSizes","onChange","fontSizeSlug","slug","typography","fontSizeObject","fontSizeValue","size","hasFontSizeValue","resetFontSize","useIsFontSizeDisabled","name","blockName","hasFontSizes","length","withFontSizeInlineStyles","BlockListBlock","wrapperProps","newProps"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { hasBlockSupport } from '@wordpress/blocks';\nimport TokenList from '@wordpress/token-list';\nimport { createHigherOrderComponent } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetFontSize,\n\tgetFontSizeClass,\n\tgetFontSizeObjectByValue,\n\tFontSizePicker,\n} from '../components/font-sizes';\nimport { cleanEmptyObject } from './utils';\nimport useSetting from '../components/use-setting';\n\nexport const FONT_SIZE_SUPPORT_KEY = 'typography.fontSize';\n\n/**\n * Filters registered block settings, extending attributes to include\n * `fontSize` and `fontWeight` attributes.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nfunction addAttributes( settings ) {\n\tif ( ! hasBlockSupport( settings, FONT_SIZE_SUPPORT_KEY ) ) {\n\t\treturn settings;\n\t}\n\n\t// Allow blocks to specify a default value if needed.\n\tif ( ! settings.attributes.fontSize ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\tfontSize: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n}\n\n/**\n * Override props assigned to save component to inject font size.\n *\n * @param {Object} props Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nfunction addSaveProps( props, blockType, attributes ) {\n\tif ( ! hasBlockSupport( blockType, FONT_SIZE_SUPPORT_KEY ) ) {\n\t\treturn props;\n\t}\n\n\tif (\n\t\thasBlockSupport(\n\t\t\tblockType,\n\t\t\t'typography.__experimentalSkipSerialization'\n\t\t)\n\t) {\n\t\treturn props;\n\t}\n\n\t// Use TokenList to dedupe classes.\n\tconst classes = new TokenList( props.className );\n\tclasses.add( getFontSizeClass( attributes.fontSize ) );\n\tconst newClassName = classes.value;\n\tprops.className = newClassName ? newClassName : undefined;\n\n\treturn props;\n}\n\n/**\n * Filters registered block settings to expand the block edit wrapper\n * by applying the desired styles and classnames.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nfunction addEditProps( settings ) {\n\tif ( ! hasBlockSupport( settings, FONT_SIZE_SUPPORT_KEY ) ) {\n\t\treturn settings;\n\t}\n\n\tconst existingGetEditWrapperProps = settings.getEditWrapperProps;\n\tsettings.getEditWrapperProps = ( attributes ) => {\n\t\tlet props = {};\n\t\tif ( existingGetEditWrapperProps ) {\n\t\t\tprops = existingGetEditWrapperProps( attributes );\n\t\t}\n\t\treturn addSaveProps( props, settings, attributes );\n\t};\n\n\treturn settings;\n}\n\n/**\n * Inspector control panel containing the font size related configuration\n *\n * @param {Object} props\n *\n * @return {WPElement} Font size edit element.\n */\nexport function FontSizeEdit( props ) {\n\tconst {\n\t\tattributes: { fontSize, style },\n\t\tsetAttributes,\n\t} = props;\n\tconst fontSizes = useSetting( 'typography.fontSizes' );\n\n\tconst onChange = ( value ) => {\n\t\tconst fontSizeSlug = getFontSizeObjectByValue( fontSizes, value ).slug;\n\n\t\tsetAttributes( {\n\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\t...style,\n\t\t\t\ttypography: {\n\t\t\t\t\t...style?.typography,\n\t\t\t\t\tfontSize: fontSizeSlug ? undefined : value,\n\t\t\t\t},\n\t\t\t} ),\n\t\t\tfontSize: fontSizeSlug,\n\t\t} );\n\t};\n\n\tconst fontSizeObject = getFontSize(\n\t\tfontSizes,\n\t\tfontSize,\n\t\tstyle?.typography?.fontSize\n\t);\n\n\tconst fontSizeValue =\n\t\tfontSizeObject?.size || style?.typography?.fontSize || fontSize;\n\n\treturn (\n\t\t<FontSizePicker\n\t\t\tonChange={ onChange }\n\t\t\tvalue={ fontSizeValue }\n\t\t\twithReset={ false }\n\t\t/>\n\t);\n}\n\n/**\n * Checks if there is a current value set for the font size block support.\n *\n * @param {Object} props Block props.\n * @return {boolean} Whether or not the block has a font size value set.\n */\nexport function hasFontSizeValue( props ) {\n\tconst { fontSize, style } = props.attributes;\n\treturn !! fontSize || !! style?.typography?.fontSize;\n}\n\n/**\n * Resets the font size block support attribute. This can be used when\n * disabling the font size support controls for a block via a progressive\n * discovery panel.\n *\n * @param {Object} props Block props.\n * @param {Object} props.attributes Block's attributes.\n * @param {Object} props.setAttributes Function to set block's attributes.\n */\nexport function resetFontSize( { attributes = {}, setAttributes } ) {\n\tconst { style } = attributes;\n\n\tsetAttributes( {\n\t\tfontSize: undefined,\n\t\tstyle: cleanEmptyObject( {\n\t\t\t...style,\n\t\t\ttypography: {\n\t\t\t\t...style?.typography,\n\t\t\t\tfontSize: undefined,\n\t\t\t},\n\t\t} ),\n\t} );\n}\n\n/**\n * Custom hook that checks if font-size settings have been disabled.\n *\n * @param {string} name The name of the block.\n * @return {boolean} Whether setting is disabled.\n */\nexport function useIsFontSizeDisabled( { name: blockName } = {} ) {\n\tconst fontSizes = useSetting( 'typography.fontSizes' );\n\tconst hasFontSizes = !! fontSizes?.length;\n\n\treturn (\n\t\t! hasBlockSupport( blockName, FONT_SIZE_SUPPORT_KEY ) || ! hasFontSizes\n\t);\n}\n\n/**\n * Add inline styles for font sizes.\n * Ideally, this is not needed and themes load the font-size classes on the\n * editor.\n *\n * @param {Function} BlockListBlock Original component.\n *\n * @return {Function} Wrapped component.\n */\nconst withFontSizeInlineStyles = createHigherOrderComponent(\n\t( BlockListBlock ) => ( props ) => {\n\t\tconst fontSizes = useSetting( 'typography.fontSizes' );\n\t\tconst {\n\t\t\tname: blockName,\n\t\t\tattributes: { fontSize, style },\n\t\t\twrapperProps,\n\t\t} = props;\n\n\t\t// Only add inline styles if the block supports font sizes,\n\t\t// doesn't skip serialization of font sizes,\n\t\t// doesn't already have an inline font size,\n\t\t// and does have a class to extract the font size from.\n\t\tif (\n\t\t\t! hasBlockSupport( blockName, FONT_SIZE_SUPPORT_KEY ) ||\n\t\t\thasBlockSupport(\n\t\t\t\tblockName,\n\t\t\t\t'typography.__experimentalSkipSerialization'\n\t\t\t) ||\n\t\t\t! fontSize ||\n\t\t\tstyle?.typography?.fontSize\n\t\t) {\n\t\t\treturn <BlockListBlock { ...props } />;\n\t\t}\n\n\t\tconst fontSizeValue = getFontSize(\n\t\t\tfontSizes,\n\t\t\tfontSize,\n\t\t\tstyle?.typography?.fontSize\n\t\t).size;\n\n\t\tconst newProps = {\n\t\t\t...props,\n\t\t\twrapperProps: {\n\t\t\t\t...wrapperProps,\n\t\t\t\tstyle: {\n\t\t\t\t\tfontSize: fontSizeValue,\n\t\t\t\t\t...wrapperProps?.style,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\n\t\treturn <BlockListBlock { ...newProps } />;\n\t},\n\t'withFontSizeInlineStyles'\n);\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/font/addAttribute',\n\taddAttributes\n);\n\naddFilter(\n\t'blocks.getSaveContent.extraProps',\n\t'core/font/addSaveProps',\n\taddSaveProps\n);\n\naddFilter( 'blocks.registerBlockType', 'core/font/addEditProps', addEditProps );\n\naddFilter(\n\t'editor.BlockListBlock',\n\t'core/font-size/with-font-size-inline-styles',\n\twithFontSizeInlineStyles\n);\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/hooks/font-size.js"],"names":["addFilter","hasBlockSupport","TokenList","createHigherOrderComponent","getFontSize","getFontSizeClass","getFontSizeObjectByValue","FontSizePicker","cleanEmptyObject","transformStyles","useSetting","FONT_SIZE_SUPPORT_KEY","addAttributes","settings","attributes","fontSize","Object","assign","type","addSaveProps","props","blockType","classes","className","add","newClassName","value","undefined","addEditProps","existingGetEditWrapperProps","getEditWrapperProps","FontSizeEdit","style","setAttributes","fontSizes","onChange","fontSizeSlug","slug","typography","fontSizeObject","fontSizeValue","size","hasFontSizeValue","resetFontSize","useIsFontSizeDisabled","name","blockName","hasFontSizes","length","withFontSizeInlineStyles","BlockListBlock","wrapperProps","newProps","MIGRATION_PATHS","addTransforms","result","source","index","results","destinationBlockType","activeSupports"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,kBAA1B;AACA,SAASC,eAAT,QAAgC,mBAAhC;AACA,OAAOC,SAAP,MAAsB,uBAAtB;AACA,SAASC,0BAAT,QAA2C,oBAA3C;AAEA;AACA;AACA;;AACA,SACCC,WADD,EAECC,gBAFD,EAGCC,wBAHD,EAICC,cAJD,QAKO,0BALP;AAMA,SAASC,gBAAT,EAA2BC,eAA3B,QAAkD,SAAlD;AACA,OAAOC,UAAP,MAAuB,2BAAvB;AAEA,OAAO,MAAMC,qBAAqB,GAAG,qBAA9B;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,aAAT,CAAwBC,QAAxB,EAAmC;AAClC,MAAK,CAAEZ,eAAe,CAAEY,QAAF,EAAYF,qBAAZ,CAAtB,EAA4D;AAC3D,WAAOE,QAAP;AACA,GAHiC,CAKlC;;;AACA,MAAK,CAAEA,QAAQ,CAACC,UAAT,CAAoBC,QAA3B,EAAsC;AACrCC,IAAAA,MAAM,CAACC,MAAP,CAAeJ,QAAQ,CAACC,UAAxB,EAAoC;AACnCC,MAAAA,QAAQ,EAAE;AACTG,QAAAA,IAAI,EAAE;AADG;AADyB,KAApC;AAKA;;AAED,SAAOL,QAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASM,YAAT,CAAuBC,KAAvB,EAA8BC,SAA9B,EAAyCP,UAAzC,EAAsD;AACrD,MAAK,CAAEb,eAAe,CAAEoB,SAAF,EAAaV,qBAAb,CAAtB,EAA6D;AAC5D,WAAOS,KAAP;AACA;;AAED,MACCnB,eAAe,CACdoB,SADc,EAEd,4CAFc,CADhB,EAKE;AACD,WAAOD,KAAP;AACA,GAZoD,CAcrD;;;AACA,QAAME,OAAO,GAAG,IAAIpB,SAAJ,CAAekB,KAAK,CAACG,SAArB,CAAhB;AACAD,EAAAA,OAAO,CAACE,GAAR,CAAanB,gBAAgB,CAAES,UAAU,CAACC,QAAb,CAA7B;AACA,QAAMU,YAAY,GAAGH,OAAO,CAACI,KAA7B;AACAN,EAAAA,KAAK,CAACG,SAAN,GAAkBE,YAAY,GAAGA,YAAH,GAAkBE,SAAhD;AAEA,SAAOP,KAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASQ,YAAT,CAAuBf,QAAvB,EAAkC;AACjC,MAAK,CAAEZ,eAAe,CAAEY,QAAF,EAAYF,qBAAZ,CAAtB,EAA4D;AAC3D,WAAOE,QAAP;AACA;;AAED,QAAMgB,2BAA2B,GAAGhB,QAAQ,CAACiB,mBAA7C;;AACAjB,EAAAA,QAAQ,CAACiB,mBAAT,GAAiChB,UAAF,IAAkB;AAChD,QAAIM,KAAK,GAAG,EAAZ;;AACA,QAAKS,2BAAL,EAAmC;AAClCT,MAAAA,KAAK,GAAGS,2BAA2B,CAAEf,UAAF,CAAnC;AACA;;AACD,WAAOK,YAAY,CAAEC,KAAF,EAASP,QAAT,EAAmBC,UAAnB,CAAnB;AACA,GAND;;AAQA,SAAOD,QAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,OAAO,SAASkB,YAAT,CAAuBX,KAAvB,EAA+B;AAAA;;AACrC,QAAM;AACLN,IAAAA,UAAU,EAAE;AAAEC,MAAAA,QAAF;AAAYiB,MAAAA;AAAZ,KADP;AAELC,IAAAA;AAFK,MAGFb,KAHJ;AAIA,QAAMc,SAAS,GAAGxB,UAAU,CAAE,sBAAF,CAA5B;;AAEA,QAAMyB,QAAQ,GAAKT,KAAF,IAAa;AAC7B,UAAMU,YAAY,GAAG9B,wBAAwB,CAAE4B,SAAF,EAAaR,KAAb,CAAxB,CAA6CW,IAAlE;AAEAJ,IAAAA,aAAa,CAAE;AACdD,MAAAA,KAAK,EAAExB,gBAAgB,CAAE,EACxB,GAAGwB,KADqB;AAExBM,QAAAA,UAAU,EAAE,EACX,IAAGN,KAAH,aAAGA,KAAH,uBAAGA,KAAK,CAAEM,UAAV,CADW;AAEXvB,UAAAA,QAAQ,EAAEqB,YAAY,GAAGT,SAAH,GAAeD;AAF1B;AAFY,OAAF,CADT;AAQdX,MAAAA,QAAQ,EAAEqB;AARI,KAAF,CAAb;AAUA,GAbD;;AAeA,QAAMG,cAAc,GAAGnC,WAAW,CACjC8B,SADiC,EAEjCnB,QAFiC,EAGjCiB,KAHiC,aAGjCA,KAHiC,4CAGjCA,KAAK,CAAEM,UAH0B,sDAGjC,kBAAmBvB,QAHc,CAAlC;AAMA,QAAMyB,aAAa,GAClB,CAAAD,cAAc,SAAd,IAAAA,cAAc,WAAd,YAAAA,cAAc,CAAEE,IAAhB,MAAwBT,KAAxB,aAAwBA,KAAxB,6CAAwBA,KAAK,CAAEM,UAA/B,uDAAwB,mBAAmBvB,QAA3C,KAAuDA,QADxD;AAGA,SACC,cAAC,cAAD;AACC,IAAA,QAAQ,EAAGoB,QADZ;AAEC,IAAA,KAAK,EAAGK,aAFT;AAGC,IAAA,SAAS,EAAG;AAHb,IADD;AAOA;AAED;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASE,gBAAT,CAA2BtB,KAA3B,EAAmC;AAAA;;AACzC,QAAM;AAAEL,IAAAA,QAAF;AAAYiB,IAAAA;AAAZ,MAAsBZ,KAAK,CAACN,UAAlC;AACA,SAAO,CAAC,CAAEC,QAAH,IAAe,CAAC,EAAEiB,KAAF,aAAEA,KAAF,qCAAEA,KAAK,CAAEM,UAAT,+CAAE,mBAAmBvB,QAArB,CAAvB;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAAS4B,aAAT,OAA6D;AAAA,MAArC;AAAE7B,IAAAA,UAAU,GAAG,EAAf;AAAmBmB,IAAAA;AAAnB,GAAqC;AACnE,QAAM;AAAED,IAAAA;AAAF,MAAYlB,UAAlB;AAEAmB,EAAAA,aAAa,CAAE;AACdlB,IAAAA,QAAQ,EAAEY,SADI;AAEdK,IAAAA,KAAK,EAAExB,gBAAgB,CAAE,EACxB,GAAGwB,KADqB;AAExBM,MAAAA,UAAU,EAAE,EACX,IAAGN,KAAH,aAAGA,KAAH,uBAAGA,KAAK,CAAEM,UAAV,CADW;AAEXvB,QAAAA,QAAQ,EAAEY;AAFC;AAFY,KAAF;AAFT,GAAF,CAAb;AAUA;AAED;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASiB,qBAAT,GAA2D;AAAA,MAA3B;AAAEC,IAAAA,IAAI,EAAEC;AAAR,GAA2B,uEAAL,EAAK;AACjE,QAAMZ,SAAS,GAAGxB,UAAU,CAAE,sBAAF,CAA5B;AACA,QAAMqC,YAAY,GAAG,CAAC,EAAEb,SAAF,aAAEA,SAAF,eAAEA,SAAS,CAAEc,MAAb,CAAtB;AAEA,SACC,CAAE/C,eAAe,CAAE6C,SAAF,EAAanC,qBAAb,CAAjB,IAAyD,CAAEoC,YAD5D;AAGA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAME,wBAAwB,GAAG9C,0BAA0B,CACxD+C,cAAF,IAAwB9B,KAAF,IAAa;AAAA;;AAClC,QAAMc,SAAS,GAAGxB,UAAU,CAAE,sBAAF,CAA5B;AACA,QAAM;AACLmC,IAAAA,IAAI,EAAEC,SADD;AAELhC,IAAAA,UAAU,EAAE;AAAEC,MAAAA,QAAF;AAAYiB,MAAAA;AAAZ,KAFP;AAGLmB,IAAAA;AAHK,MAIF/B,KAJJ,CAFkC,CAQlC;AACA;AACA;AACA;;AACA,MACC,CAAEnB,eAAe,CAAE6C,SAAF,EAAanC,qBAAb,CAAjB,IACAV,eAAe,CACd6C,SADc,EAEd,4CAFc,CADf,IAKA,CAAE/B,QALF,IAMAiB,KANA,aAMAA,KANA,qCAMAA,KAAK,CAAEM,UANP,+CAMA,mBAAmBvB,QAPpB,EAQE;AACD,WAAO,cAAC,cAAD,EAAqBK,KAArB,CAAP;AACA;;AAED,QAAMoB,aAAa,GAAGpC,WAAW,CAChC8B,SADgC,EAEhCnB,QAFgC,EAGhCiB,KAHgC,aAGhCA,KAHgC,6CAGhCA,KAAK,CAAEM,UAHyB,uDAGhC,mBAAmBvB,QAHa,CAAX,CAIpB0B,IAJF;AAMA,QAAMW,QAAQ,GAAG,EAChB,GAAGhC,KADa;AAEhB+B,IAAAA,YAAY,EAAE,EACb,GAAGA,YADU;AAEbnB,MAAAA,KAAK,EAAE;AACNjB,QAAAA,QAAQ,EAAEyB,aADJ;AAEN,YAAGW,YAAH,aAAGA,YAAH,uBAAGA,YAAY,CAAEnB,KAAjB;AAFM;AAFM;AAFE,GAAjB;AAWA,SAAO,cAAC,cAAD,EAAqBoB,QAArB,CAAP;AACA,CA3CyD,EA4C1D,0BA5C0D,CAA3D;AA+CA,MAAMC,eAAe,GAAG;AACvBtC,EAAAA,QAAQ,EAAE,CAAE,CAAE,UAAF,CAAF,EAAkB,CAAE,OAAF,EAAW,YAAX,EAAyB,UAAzB,CAAlB;AADa,CAAxB;AAIA,OAAO,SAASuC,aAAT,CAAwBC,MAAxB,EAAgCC,MAAhC,EAAwCC,KAAxC,EAA+CC,OAA/C,EAAyD;AAC/D,QAAMC,oBAAoB,GAAGJ,MAAM,CAACV,IAApC;AACA,QAAMe,cAAc,GAAG;AACtB7C,IAAAA,QAAQ,EAAEd,eAAe,CACxB0D,oBADwB,EAExBhD,qBAFwB;AADH,GAAvB;AAMA,SAAOF,eAAe,CACrBmD,cADqB,EAErBP,eAFqB,EAGrBE,MAHqB,EAIrBC,MAJqB,EAKrBC,KALqB,EAMrBC,OANqB,CAAtB;AAQA;AAED1D,SAAS,CACR,0BADQ,EAER,wBAFQ,EAGRY,aAHQ,CAAT;AAMAZ,SAAS,CACR,kCADQ,EAER,wBAFQ,EAGRmB,YAHQ,CAAT;AAMAnB,SAAS,CAAE,0BAAF,EAA8B,wBAA9B,EAAwD4B,YAAxD,CAAT;AAEA5B,SAAS,CACR,uBADQ,EAER,6CAFQ,EAGRiD,wBAHQ,CAAT;AAMAjD,SAAS,CACR,2CADQ,EAER,8BAFQ,EAGRsD,aAHQ,CAAT","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { hasBlockSupport } from '@wordpress/blocks';\nimport TokenList from '@wordpress/token-list';\nimport { createHigherOrderComponent } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport {\n\tgetFontSize,\n\tgetFontSizeClass,\n\tgetFontSizeObjectByValue,\n\tFontSizePicker,\n} from '../components/font-sizes';\nimport { cleanEmptyObject, transformStyles } from './utils';\nimport useSetting from '../components/use-setting';\n\nexport const FONT_SIZE_SUPPORT_KEY = 'typography.fontSize';\n\n/**\n * Filters registered block settings, extending attributes to include\n * `fontSize` and `fontWeight` attributes.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nfunction addAttributes( settings ) {\n\tif ( ! hasBlockSupport( settings, FONT_SIZE_SUPPORT_KEY ) ) {\n\t\treturn settings;\n\t}\n\n\t// Allow blocks to specify a default value if needed.\n\tif ( ! settings.attributes.fontSize ) {\n\t\tObject.assign( settings.attributes, {\n\t\t\tfontSize: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn settings;\n}\n\n/**\n * Override props assigned to save component to inject font size.\n *\n * @param {Object} props Additional props applied to save element.\n * @param {Object} blockType Block type.\n * @param {Object} attributes Block attributes.\n *\n * @return {Object} Filtered props applied to save element.\n */\nfunction addSaveProps( props, blockType, attributes ) {\n\tif ( ! hasBlockSupport( blockType, FONT_SIZE_SUPPORT_KEY ) ) {\n\t\treturn props;\n\t}\n\n\tif (\n\t\thasBlockSupport(\n\t\t\tblockType,\n\t\t\t'typography.__experimentalSkipSerialization'\n\t\t)\n\t) {\n\t\treturn props;\n\t}\n\n\t// Use TokenList to dedupe classes.\n\tconst classes = new TokenList( props.className );\n\tclasses.add( getFontSizeClass( attributes.fontSize ) );\n\tconst newClassName = classes.value;\n\tprops.className = newClassName ? newClassName : undefined;\n\n\treturn props;\n}\n\n/**\n * Filters registered block settings to expand the block edit wrapper\n * by applying the desired styles and classnames.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nfunction addEditProps( settings ) {\n\tif ( ! hasBlockSupport( settings, FONT_SIZE_SUPPORT_KEY ) ) {\n\t\treturn settings;\n\t}\n\n\tconst existingGetEditWrapperProps = settings.getEditWrapperProps;\n\tsettings.getEditWrapperProps = ( attributes ) => {\n\t\tlet props = {};\n\t\tif ( existingGetEditWrapperProps ) {\n\t\t\tprops = existingGetEditWrapperProps( attributes );\n\t\t}\n\t\treturn addSaveProps( props, settings, attributes );\n\t};\n\n\treturn settings;\n}\n\n/**\n * Inspector control panel containing the font size related configuration\n *\n * @param {Object} props\n *\n * @return {WPElement} Font size edit element.\n */\nexport function FontSizeEdit( props ) {\n\tconst {\n\t\tattributes: { fontSize, style },\n\t\tsetAttributes,\n\t} = props;\n\tconst fontSizes = useSetting( 'typography.fontSizes' );\n\n\tconst onChange = ( value ) => {\n\t\tconst fontSizeSlug = getFontSizeObjectByValue( fontSizes, value ).slug;\n\n\t\tsetAttributes( {\n\t\t\tstyle: cleanEmptyObject( {\n\t\t\t\t...style,\n\t\t\t\ttypography: {\n\t\t\t\t\t...style?.typography,\n\t\t\t\t\tfontSize: fontSizeSlug ? undefined : value,\n\t\t\t\t},\n\t\t\t} ),\n\t\t\tfontSize: fontSizeSlug,\n\t\t} );\n\t};\n\n\tconst fontSizeObject = getFontSize(\n\t\tfontSizes,\n\t\tfontSize,\n\t\tstyle?.typography?.fontSize\n\t);\n\n\tconst fontSizeValue =\n\t\tfontSizeObject?.size || style?.typography?.fontSize || fontSize;\n\n\treturn (\n\t\t<FontSizePicker\n\t\t\tonChange={ onChange }\n\t\t\tvalue={ fontSizeValue }\n\t\t\twithReset={ false }\n\t\t/>\n\t);\n}\n\n/**\n * Checks if there is a current value set for the font size block support.\n *\n * @param {Object} props Block props.\n * @return {boolean} Whether or not the block has a font size value set.\n */\nexport function hasFontSizeValue( props ) {\n\tconst { fontSize, style } = props.attributes;\n\treturn !! fontSize || !! style?.typography?.fontSize;\n}\n\n/**\n * Resets the font size block support attribute. This can be used when\n * disabling the font size support controls for a block via a progressive\n * discovery panel.\n *\n * @param {Object} props Block props.\n * @param {Object} props.attributes Block's attributes.\n * @param {Object} props.setAttributes Function to set block's attributes.\n */\nexport function resetFontSize( { attributes = {}, setAttributes } ) {\n\tconst { style } = attributes;\n\n\tsetAttributes( {\n\t\tfontSize: undefined,\n\t\tstyle: cleanEmptyObject( {\n\t\t\t...style,\n\t\t\ttypography: {\n\t\t\t\t...style?.typography,\n\t\t\t\tfontSize: undefined,\n\t\t\t},\n\t\t} ),\n\t} );\n}\n\n/**\n * Custom hook that checks if font-size settings have been disabled.\n *\n * @param {string} name The name of the block.\n * @return {boolean} Whether setting is disabled.\n */\nexport function useIsFontSizeDisabled( { name: blockName } = {} ) {\n\tconst fontSizes = useSetting( 'typography.fontSizes' );\n\tconst hasFontSizes = !! fontSizes?.length;\n\n\treturn (\n\t\t! hasBlockSupport( blockName, FONT_SIZE_SUPPORT_KEY ) || ! hasFontSizes\n\t);\n}\n\n/**\n * Add inline styles for font sizes.\n * Ideally, this is not needed and themes load the font-size classes on the\n * editor.\n *\n * @param {Function} BlockListBlock Original component.\n *\n * @return {Function} Wrapped component.\n */\nconst withFontSizeInlineStyles = createHigherOrderComponent(\n\t( BlockListBlock ) => ( props ) => {\n\t\tconst fontSizes = useSetting( 'typography.fontSizes' );\n\t\tconst {\n\t\t\tname: blockName,\n\t\t\tattributes: { fontSize, style },\n\t\t\twrapperProps,\n\t\t} = props;\n\n\t\t// Only add inline styles if the block supports font sizes,\n\t\t// doesn't skip serialization of font sizes,\n\t\t// doesn't already have an inline font size,\n\t\t// and does have a class to extract the font size from.\n\t\tif (\n\t\t\t! hasBlockSupport( blockName, FONT_SIZE_SUPPORT_KEY ) ||\n\t\t\thasBlockSupport(\n\t\t\t\tblockName,\n\t\t\t\t'typography.__experimentalSkipSerialization'\n\t\t\t) ||\n\t\t\t! fontSize ||\n\t\t\tstyle?.typography?.fontSize\n\t\t) {\n\t\t\treturn <BlockListBlock { ...props } />;\n\t\t}\n\n\t\tconst fontSizeValue = getFontSize(\n\t\t\tfontSizes,\n\t\t\tfontSize,\n\t\t\tstyle?.typography?.fontSize\n\t\t).size;\n\n\t\tconst newProps = {\n\t\t\t...props,\n\t\t\twrapperProps: {\n\t\t\t\t...wrapperProps,\n\t\t\t\tstyle: {\n\t\t\t\t\tfontSize: fontSizeValue,\n\t\t\t\t\t...wrapperProps?.style,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\n\t\treturn <BlockListBlock { ...newProps } />;\n\t},\n\t'withFontSizeInlineStyles'\n);\n\nconst MIGRATION_PATHS = {\n\tfontSize: [ [ 'fontSize' ], [ 'style', 'typography', 'fontSize' ] ],\n};\n\nexport function addTransforms( result, source, index, results ) {\n\tconst destinationBlockType = result.name;\n\tconst activeSupports = {\n\t\tfontSize: hasBlockSupport(\n\t\t\tdestinationBlockType,\n\t\t\tFONT_SIZE_SUPPORT_KEY\n\t\t),\n\t};\n\treturn transformStyles(\n\t\tactiveSupports,\n\t\tMIGRATION_PATHS,\n\t\tresult,\n\t\tsource,\n\t\tindex,\n\t\tresults\n\t);\n}\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/font/addAttribute',\n\taddAttributes\n);\n\naddFilter(\n\t'blocks.getSaveContent.extraProps',\n\t'core/font/addSaveProps',\n\taddSaveProps\n);\n\naddFilter( 'blocks.registerBlockType', 'core/font/addEditProps', addEditProps );\n\naddFilter(\n\t'editor.BlockListBlock',\n\t'core/font-size/with-font-size-inline-styles',\n\twithFontSizeInlineStyles\n);\n\naddFilter(\n\t'blocks.switchToBlockType.transformedBlock',\n\t'core/font-size/addTransforms',\n\taddTransforms\n);\n"]}
@@ -21,10 +21,8 @@ export const TYPOGRAPHY_SUPPORT_KEY = 'typography';
21
21
  export const TYPOGRAPHY_SUPPORT_KEYS = [LINE_HEIGHT_SUPPORT_KEY, FONT_SIZE_SUPPORT_KEY];
22
22
  export function TypographyPanel(props) {
23
23
  const isDisabled = useIsTypographyDisabled(props);
24
- const isSupported = hasTypographySupport(props.name); // only enable TypographyPanel for development
25
- // eslint-disable-next-line no-undef
26
-
27
- if (isDisabled || !isSupported || !__DEV__) return null;
24
+ const isSupported = hasTypographySupport(props.name);
25
+ if (isDisabled || !isSupported) return null;
28
26
  return createElement(InspectorControls, null, createElement(PanelBody, {
29
27
  title: __('Typography')
30
28
  }, createElement(FontSizeEdit, props), createElement(LineHeightEdit, props)));
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/hooks/typography.native.js"],"names":["hasBlockSupport","PanelBody","__","InspectorControls","LINE_HEIGHT_SUPPORT_KEY","LineHeightEdit","useIsLineHeightDisabled","FONT_SIZE_SUPPORT_KEY","FontSizeEdit","useIsFontSizeDisabled","TYPOGRAPHY_SUPPORT_KEY","TYPOGRAPHY_SUPPORT_KEYS","TypographyPanel","props","isDisabled","useIsTypographyDisabled","isSupported","hasTypographySupport","name","__DEV__","blockName","some","key","configs","filter","Boolean","length"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,eAAT,QAAgC,mBAAhC;AACA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,uBAA1B;AACA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;;AACA,OAAOC,iBAAP,MAA8B,kCAA9B;AAEA,SACCC,uBADD,EAECC,cAFD,EAGCC,uBAHD,QAIO,eAJP;AAKA,SACCC,qBADD,EAECC,YAFD,EAGCC,qBAHD,QAIO,aAJP;AAMA,OAAO,MAAMC,sBAAsB,GAAG,YAA/B;AACP,OAAO,MAAMC,uBAAuB,GAAG,CACtCP,uBADsC,EAEtCG,qBAFsC,CAAhC;AAKP,OAAO,SAASK,eAAT,CAA0BC,KAA1B,EAAkC;AACxC,QAAMC,UAAU,GAAGC,uBAAuB,CAAEF,KAAF,CAA1C;AACA,QAAMG,WAAW,GAAGC,oBAAoB,CAAEJ,KAAK,CAACK,IAAR,CAAxC,CAFwC,CAIxC;AACA;;AACA,MAAKJ,UAAU,IAAI,CAAEE,WAAhB,IAA+B,CAAEG,OAAtC,EAAgD,OAAO,IAAP;AAEhD,SACC,cAAC,iBAAD,QACC,cAAC,SAAD;AAAW,IAAA,KAAK,EAAGjB,EAAE,CAAE,YAAF;AAArB,KACC,cAAC,YAAD,EAAmBW,KAAnB,CADD,EAEC,cAAC,cAAD,EAAqBA,KAArB,CAFD,CADD,CADD;AAQA;;AAED,MAAMI,oBAAoB,GAAKG,SAAF,IAAiB;AAC7C,SAAOT,uBAAuB,CAACU,IAAxB,CAAgCC,GAAF,IACpCtB,eAAe,CAAEoB,SAAF,EAAaE,GAAb,CADT,CAAP;AAGA,CAJD;;AAMA,SAASP,uBAAT,GAA+C;AAAA,MAAbF,KAAa,uEAAL,EAAK;AAC9C,QAAMU,OAAO,GAAG,CACfd,qBAAqB,CAAEI,KAAF,CADN,EAEfP,uBAAuB,CAAEO,KAAF,CAFR,CAAhB;AAKA,SAAOU,OAAO,CAACC,MAAR,CAAgBC,OAAhB,EAA0BC,MAA1B,KAAqCH,OAAO,CAACG,MAApD;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { hasBlockSupport } from '@wordpress/blocks';\n/**\n * External dependencies\n */\nimport { PanelBody } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport InspectorControls from '../components/inspector-controls';\n\nimport {\n\tLINE_HEIGHT_SUPPORT_KEY,\n\tLineHeightEdit,\n\tuseIsLineHeightDisabled,\n} from './line-height';\nimport {\n\tFONT_SIZE_SUPPORT_KEY,\n\tFontSizeEdit,\n\tuseIsFontSizeDisabled,\n} from './font-size';\n\nexport const TYPOGRAPHY_SUPPORT_KEY = 'typography';\nexport const TYPOGRAPHY_SUPPORT_KEYS = [\n\tLINE_HEIGHT_SUPPORT_KEY,\n\tFONT_SIZE_SUPPORT_KEY,\n];\n\nexport function TypographyPanel( props ) {\n\tconst isDisabled = useIsTypographyDisabled( props );\n\tconst isSupported = hasTypographySupport( props.name );\n\n\t// only enable TypographyPanel for development\n\t// eslint-disable-next-line no-undef\n\tif ( isDisabled || ! isSupported || ! __DEV__ ) return null;\n\n\treturn (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Typography' ) }>\n\t\t\t\t<FontSizeEdit { ...props } />\n\t\t\t\t<LineHeightEdit { ...props } />\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n}\n\nconst hasTypographySupport = ( blockName ) => {\n\treturn TYPOGRAPHY_SUPPORT_KEYS.some( ( key ) =>\n\t\thasBlockSupport( blockName, key )\n\t);\n};\n\nfunction useIsTypographyDisabled( props = {} ) {\n\tconst configs = [\n\t\tuseIsFontSizeDisabled( props ),\n\t\tuseIsLineHeightDisabled( props ),\n\t];\n\n\treturn configs.filter( Boolean ).length === configs.length;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/hooks/typography.native.js"],"names":["hasBlockSupport","PanelBody","__","InspectorControls","LINE_HEIGHT_SUPPORT_KEY","LineHeightEdit","useIsLineHeightDisabled","FONT_SIZE_SUPPORT_KEY","FontSizeEdit","useIsFontSizeDisabled","TYPOGRAPHY_SUPPORT_KEY","TYPOGRAPHY_SUPPORT_KEYS","TypographyPanel","props","isDisabled","useIsTypographyDisabled","isSupported","hasTypographySupport","name","blockName","some","key","configs","filter","Boolean","length"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,eAAT,QAAgC,mBAAhC;AACA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,uBAA1B;AACA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;;AACA,OAAOC,iBAAP,MAA8B,kCAA9B;AAEA,SACCC,uBADD,EAECC,cAFD,EAGCC,uBAHD,QAIO,eAJP;AAKA,SACCC,qBADD,EAECC,YAFD,EAGCC,qBAHD,QAIO,aAJP;AAMA,OAAO,MAAMC,sBAAsB,GAAG,YAA/B;AACP,OAAO,MAAMC,uBAAuB,GAAG,CACtCP,uBADsC,EAEtCG,qBAFsC,CAAhC;AAKP,OAAO,SAASK,eAAT,CAA0BC,KAA1B,EAAkC;AACxC,QAAMC,UAAU,GAAGC,uBAAuB,CAAEF,KAAF,CAA1C;AACA,QAAMG,WAAW,GAAGC,oBAAoB,CAAEJ,KAAK,CAACK,IAAR,CAAxC;AAEA,MAAKJ,UAAU,IAAI,CAAEE,WAArB,EAAmC,OAAO,IAAP;AAEnC,SACC,cAAC,iBAAD,QACC,cAAC,SAAD;AAAW,IAAA,KAAK,EAAGd,EAAE,CAAE,YAAF;AAArB,KACC,cAAC,YAAD,EAAmBW,KAAnB,CADD,EAEC,cAAC,cAAD,EAAqBA,KAArB,CAFD,CADD,CADD;AAQA;;AAED,MAAMI,oBAAoB,GAAKE,SAAF,IAAiB;AAC7C,SAAOR,uBAAuB,CAACS,IAAxB,CAAgCC,GAAF,IACpCrB,eAAe,CAAEmB,SAAF,EAAaE,GAAb,CADT,CAAP;AAGA,CAJD;;AAMA,SAASN,uBAAT,GAA+C;AAAA,MAAbF,KAAa,uEAAL,EAAK;AAC9C,QAAMS,OAAO,GAAG,CACfb,qBAAqB,CAAEI,KAAF,CADN,EAEfP,uBAAuB,CAAEO,KAAF,CAFR,CAAhB;AAKA,SAAOS,OAAO,CAACC,MAAR,CAAgBC,OAAhB,EAA0BC,MAA1B,KAAqCH,OAAO,CAACG,MAApD;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { hasBlockSupport } from '@wordpress/blocks';\n/**\n * External dependencies\n */\nimport { PanelBody } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport InspectorControls from '../components/inspector-controls';\n\nimport {\n\tLINE_HEIGHT_SUPPORT_KEY,\n\tLineHeightEdit,\n\tuseIsLineHeightDisabled,\n} from './line-height';\nimport {\n\tFONT_SIZE_SUPPORT_KEY,\n\tFontSizeEdit,\n\tuseIsFontSizeDisabled,\n} from './font-size';\n\nexport const TYPOGRAPHY_SUPPORT_KEY = 'typography';\nexport const TYPOGRAPHY_SUPPORT_KEYS = [\n\tLINE_HEIGHT_SUPPORT_KEY,\n\tFONT_SIZE_SUPPORT_KEY,\n];\n\nexport function TypographyPanel( props ) {\n\tconst isDisabled = useIsTypographyDisabled( props );\n\tconst isSupported = hasTypographySupport( props.name );\n\n\tif ( isDisabled || ! isSupported ) return null;\n\n\treturn (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Typography' ) }>\n\t\t\t\t<FontSizeEdit { ...props } />\n\t\t\t\t<LineHeightEdit { ...props } />\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n}\n\nconst hasTypographySupport = ( blockName ) => {\n\treturn TYPOGRAPHY_SUPPORT_KEYS.some( ( key ) =>\n\t\thasBlockSupport( blockName, key )\n\t);\n};\n\nfunction useIsTypographyDisabled( props = {} ) {\n\tconst configs = [\n\t\tuseIsFontSizeDisabled( props ),\n\t\tuseIsLineHeightDisabled( props ),\n\t];\n\n\treturn configs.filter( Boolean ).length === configs.length;\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * External dependencies
3
3
  */
4
- import { pickBy, isEmpty, isObject, identity, mapValues } from 'lodash';
4
+ import { pickBy, isEmpty, isObject, identity, mapValues, forEach, get, setWith, clone, every } from 'lodash';
5
5
  /**
6
6
  * Removed falsy values from nested object.
7
7
  *
@@ -17,4 +17,55 @@ export const cleanEmptyObject = object => {
17
17
  const cleanedNestedObjects = pickBy(mapValues(object, cleanEmptyObject), identity);
18
18
  return isEmpty(cleanedNestedObjects) ? undefined : cleanedNestedObjects;
19
19
  };
20
+ export function immutableSet(object, path, value) {
21
+ return setWith(object ? clone(object) : {}, path, value, clone);
22
+ }
23
+ export function transformStyles(activeSupports, migrationPaths, result, source, index, results) {
24
+ var _source$;
25
+
26
+ // If there are no active supports return early.
27
+ if (every(activeSupports, isActive => !isActive)) {
28
+ return result;
29
+ } // If the condition verifies we are probably in the presence of a wrapping transform
30
+ // e.g: nesting paragraphs in a group or columns and in that case the styles should not be transformed.
31
+
32
+
33
+ if (results.length === 1 && result.innerBlocks.length === source.length) {
34
+ return result;
35
+ } // For cases where we have a transform from one block to multiple blocks
36
+ // or multiple blocks to one block we apply the styles of the first source block
37
+ // to the result(s).
38
+
39
+
40
+ let referenceBlockAttributes = (_source$ = source[0]) === null || _source$ === void 0 ? void 0 : _source$.attributes; // If we are in presence of transform between more than one block in the source
41
+ // that has more than one block in the result
42
+ // we apply the styles on source N to the result N,
43
+ // if source N does not exists we do nothing.
44
+
45
+ if (results.length > 1 && source.length > 1) {
46
+ if (source[index]) {
47
+ var _source$index;
48
+
49
+ referenceBlockAttributes = (_source$index = source[index]) === null || _source$index === void 0 ? void 0 : _source$index.attributes;
50
+ } else {
51
+ return result;
52
+ }
53
+ }
54
+
55
+ let returnBlock = result;
56
+ forEach(activeSupports, (isActive, support) => {
57
+ if (isActive) {
58
+ migrationPaths[support].forEach(path => {
59
+ const styleValue = get(referenceBlockAttributes, path);
60
+
61
+ if (styleValue) {
62
+ returnBlock = { ...returnBlock,
63
+ attributes: immutableSet(returnBlock.attributes, path, styleValue)
64
+ };
65
+ }
66
+ });
67
+ }
68
+ });
69
+ return returnBlock;
70
+ }
20
71
  //# sourceMappingURL=utils.js.map