@wordpress/block-editor 8.0.6 → 8.0.10

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 (67) hide show
  1. package/build/components/block-tools/block-selection-button.js +7 -1
  2. package/build/components/block-tools/block-selection-button.js.map +1 -1
  3. package/build/components/colors/with-colors.js +7 -4
  4. package/build/components/colors/with-colors.js.map +1 -1
  5. package/build/components/colors-gradients/control.js +3 -0
  6. package/build/components/colors-gradients/control.js.map +1 -1
  7. package/build/components/colors-gradients/panel-color-gradient-settings.js +8 -69
  8. package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  9. package/build/components/colors-gradients/use-common-single-multiple-selects.js +21 -0
  10. package/build/components/colors-gradients/use-common-single-multiple-selects.js.map +1 -0
  11. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +98 -0
  12. package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -0
  13. package/build/components/gradients/use-gradient.js +3 -3
  14. package/build/components/gradients/use-gradient.js.map +1 -1
  15. package/build/hooks/border-color.js +12 -12
  16. package/build/hooks/border-color.js.map +1 -1
  17. package/build/hooks/color-panel.js +2 -1
  18. package/build/hooks/color-panel.js.map +1 -1
  19. package/build/hooks/color.js +36 -22
  20. package/build/hooks/color.js.map +1 -1
  21. package/build/hooks/use-color-props.js +11 -7
  22. package/build/hooks/use-color-props.js.map +1 -1
  23. package/build/utils/transform-styles/index.js +2 -3
  24. package/build/utils/transform-styles/index.js.map +1 -1
  25. package/build-module/components/block-tools/block-selection-button.js +7 -1
  26. package/build-module/components/block-tools/block-selection-button.js.map +1 -1
  27. package/build-module/components/colors/with-colors.js +7 -4
  28. package/build-module/components/colors/with-colors.js.map +1 -1
  29. package/build-module/components/colors-gradients/control.js +3 -0
  30. package/build-module/components/colors-gradients/control.js.map +1 -1
  31. package/build-module/components/colors-gradients/panel-color-gradient-settings.js +7 -71
  32. package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
  33. package/build-module/components/colors-gradients/use-common-single-multiple-selects.js +11 -0
  34. package/build-module/components/colors-gradients/use-common-single-multiple-selects.js.map +1 -0
  35. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +85 -0
  36. package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -0
  37. package/build-module/components/gradients/use-gradient.js +2 -3
  38. package/build-module/components/gradients/use-gradient.js.map +1 -1
  39. package/build-module/hooks/border-color.js +11 -12
  40. package/build-module/hooks/border-color.js.map +1 -1
  41. package/build-module/hooks/color-panel.js +2 -1
  42. package/build-module/hooks/color-panel.js.map +1 -1
  43. package/build-module/hooks/color.js +36 -22
  44. package/build-module/hooks/color.js.map +1 -1
  45. package/build-module/hooks/use-color-props.js +10 -6
  46. package/build-module/hooks/use-color-props.js.map +1 -1
  47. package/build-module/utils/transform-styles/index.js +2 -3
  48. package/build-module/utils/transform-styles/index.js.map +1 -1
  49. package/build-style/style-rtl.css +7 -3
  50. package/build-style/style.css +7 -3
  51. package/package.json +3 -3
  52. package/src/components/block-tools/block-selection-button.js +5 -1
  53. package/src/components/border-style-control/style.scss +3 -2
  54. package/src/components/color-palette/test/__snapshots__/control.js.snap +1 -0
  55. package/src/components/colors/with-colors.js +10 -5
  56. package/src/components/colors-gradients/control.js +7 -0
  57. package/src/components/colors-gradients/panel-color-gradient-settings.js +6 -92
  58. package/src/components/colors-gradients/use-common-single-multiple-selects.js +11 -0
  59. package/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +107 -0
  60. package/src/components/gradients/use-gradient.js +3 -1
  61. package/src/components/link-control/style.scss +6 -2
  62. package/src/hooks/border-color.js +15 -9
  63. package/src/hooks/color-panel.js +1 -0
  64. package/src/hooks/color.js +43 -35
  65. package/src/hooks/test/color.js +109 -0
  66. package/src/hooks/use-color-props.js +13 -6
  67. package/src/utils/transform-styles/index.js +13 -16
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/components/gradients/use-gradient.js"],"names":["__experimentalGetGradientClass","gradientSlug","undefined","getGradientValueBySlug","gradients","slug","gradient","__experimentalGetGradientObjectByGradientValue","value","getGradientSlugByValue","__experimentalUseGradient","gradientAttribute","customGradientAttribute","clientId","gradientsPerOrigin","allGradients","custom","theme","default","customGradient","select","getBlockAttributes","blockEditorStore","attributes","updateBlockAttributes","setGradient","newGradientValue","gradientClass","gradientValue"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { find } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useBlockEditContext } from '../block-edit';\nimport useSetting from '../use-setting';\nimport { store as blockEditorStore } from '../../store';\n\nexport function __experimentalGetGradientClass( gradientSlug ) {\n\tif ( ! gradientSlug ) {\n\t\treturn undefined;\n\t}\n\treturn `has-${ gradientSlug }-gradient-background`;\n}\n\n/**\n * Retrieves the gradient value per slug.\n *\n * @param {Array} gradients Gradient Palette\n * @param {string} slug Gradient slug\n *\n * @return {string} Gradient value.\n */\nexport function getGradientValueBySlug( gradients, slug ) {\n\tconst gradient = find( gradients, [ 'slug', slug ] );\n\treturn gradient && gradient.gradient;\n}\n\nexport function __experimentalGetGradientObjectByGradientValue(\n\tgradients,\n\tvalue\n) {\n\tconst gradient = find( gradients, [ 'gradient', value ] );\n\treturn gradient;\n}\n\n/**\n * Retrieves the gradient slug per slug.\n *\n * @param {Array} gradients Gradient Palette\n * @param {string} value Gradient value\n * @return {string} Gradient slug.\n */\nexport function getGradientSlugByValue( gradients, value ) {\n\tconst gradient = __experimentalGetGradientObjectByGradientValue(\n\t\tgradients,\n\t\tvalue\n\t);\n\treturn gradient && gradient.slug;\n}\n\nexport function __experimentalUseGradient( {\n\tgradientAttribute = 'gradient',\n\tcustomGradientAttribute = 'customGradient',\n} = {} ) {\n\tconst { clientId } = useBlockEditContext();\n\n\tconst { gradients: gradientsPerOrigin } = useSetting( 'color' ) || {};\n\tconst allGradients = useMemo(\n\t\t() => [\n\t\t\t...( gradientsPerOrigin?.custom || [] ),\n\t\t\t...( gradientsPerOrigin?.theme || [] ),\n\t\t\t...( gradientsPerOrigin?.default || [] ),\n\t\t],\n\t\t[ gradientsPerOrigin ]\n\t);\n\tconst { gradient, customGradient } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockAttributes } = select( blockEditorStore );\n\t\t\tconst attributes = getBlockAttributes( clientId ) || {};\n\t\t\treturn {\n\t\t\t\tcustomGradient: attributes[ customGradientAttribute ],\n\t\t\t\tgradient: attributes[ gradientAttribute ],\n\t\t\t};\n\t\t},\n\t\t[ clientId, gradientAttribute, customGradientAttribute ]\n\t);\n\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst setGradient = useCallback(\n\t\t( newGradientValue ) => {\n\t\t\tconst slug = getGradientSlugByValue(\n\t\t\t\tallGradients,\n\t\t\t\tnewGradientValue\n\t\t\t);\n\t\t\tif ( slug ) {\n\t\t\t\tupdateBlockAttributes( clientId, {\n\t\t\t\t\t[ gradientAttribute ]: slug,\n\t\t\t\t\t[ customGradientAttribute ]: undefined,\n\t\t\t\t} );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tupdateBlockAttributes( clientId, {\n\t\t\t\t[ gradientAttribute ]: undefined,\n\t\t\t\t[ customGradientAttribute ]: newGradientValue,\n\t\t\t} );\n\t\t},\n\t\t[ allGradients, clientId, updateBlockAttributes ]\n\t);\n\n\tconst gradientClass = __experimentalGetGradientClass( gradient );\n\tlet gradientValue;\n\tif ( gradient ) {\n\t\tgradientValue = getGradientValueBySlug( allGradients, gradient );\n\t} else {\n\t\tgradientValue = customGradient;\n\t}\n\treturn { gradientClass, gradientValue, setGradient };\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/components/gradients/use-gradient.js"],"names":["__experimentalGetGradientClass","gradientSlug","undefined","getGradientValueBySlug","gradients","slug","gradient","__experimentalGetGradientObjectByGradientValue","value","getGradientSlugByValue","EMPTY_OBJECT","__experimentalUseGradient","gradientAttribute","customGradientAttribute","clientId","gradientsPerOrigin","allGradients","custom","theme","default","customGradient","select","getBlockAttributes","blockEditorStore","attributes","updateBlockAttributes","setGradient","newGradientValue","gradientClass","gradientValue"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { find } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useBlockEditContext } from '../block-edit';\nimport useSetting from '../use-setting';\nimport { store as blockEditorStore } from '../../store';\n\nexport function __experimentalGetGradientClass( gradientSlug ) {\n\tif ( ! gradientSlug ) {\n\t\treturn undefined;\n\t}\n\treturn `has-${ gradientSlug }-gradient-background`;\n}\n\n/**\n * Retrieves the gradient value per slug.\n *\n * @param {Array} gradients Gradient Palette\n * @param {string} slug Gradient slug\n *\n * @return {string} Gradient value.\n */\nexport function getGradientValueBySlug( gradients, slug ) {\n\tconst gradient = find( gradients, [ 'slug', slug ] );\n\treturn gradient && gradient.gradient;\n}\n\nexport function __experimentalGetGradientObjectByGradientValue(\n\tgradients,\n\tvalue\n) {\n\tconst gradient = find( gradients, [ 'gradient', value ] );\n\treturn gradient;\n}\n\n/**\n * Retrieves the gradient slug per slug.\n *\n * @param {Array} gradients Gradient Palette\n * @param {string} value Gradient value\n * @return {string} Gradient slug.\n */\nexport function getGradientSlugByValue( gradients, value ) {\n\tconst gradient = __experimentalGetGradientObjectByGradientValue(\n\t\tgradients,\n\t\tvalue\n\t);\n\treturn gradient && gradient.slug;\n}\n\nconst EMPTY_OBJECT = {};\n\nexport function __experimentalUseGradient( {\n\tgradientAttribute = 'gradient',\n\tcustomGradientAttribute = 'customGradient',\n} = {} ) {\n\tconst { clientId } = useBlockEditContext();\n\n\tconst gradientsPerOrigin = useSetting( 'color.gradients' ) || EMPTY_OBJECT;\n\tconst allGradients = useMemo(\n\t\t() => [\n\t\t\t...( gradientsPerOrigin?.custom || [] ),\n\t\t\t...( gradientsPerOrigin?.theme || [] ),\n\t\t\t...( gradientsPerOrigin?.default || [] ),\n\t\t],\n\t\t[ gradientsPerOrigin ]\n\t);\n\tconst { gradient, customGradient } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockAttributes } = select( blockEditorStore );\n\t\t\tconst attributes = getBlockAttributes( clientId ) || {};\n\t\t\treturn {\n\t\t\t\tcustomGradient: attributes[ customGradientAttribute ],\n\t\t\t\tgradient: attributes[ gradientAttribute ],\n\t\t\t};\n\t\t},\n\t\t[ clientId, gradientAttribute, customGradientAttribute ]\n\t);\n\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst setGradient = useCallback(\n\t\t( newGradientValue ) => {\n\t\t\tconst slug = getGradientSlugByValue(\n\t\t\t\tallGradients,\n\t\t\t\tnewGradientValue\n\t\t\t);\n\t\t\tif ( slug ) {\n\t\t\t\tupdateBlockAttributes( clientId, {\n\t\t\t\t\t[ gradientAttribute ]: slug,\n\t\t\t\t\t[ customGradientAttribute ]: undefined,\n\t\t\t\t} );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tupdateBlockAttributes( clientId, {\n\t\t\t\t[ gradientAttribute ]: undefined,\n\t\t\t\t[ customGradientAttribute ]: newGradientValue,\n\t\t\t} );\n\t\t},\n\t\t[ allGradients, clientId, updateBlockAttributes ]\n\t);\n\n\tconst gradientClass = __experimentalGetGradientClass( gradient );\n\tlet gradientValue;\n\tif ( gradient ) {\n\t\tgradientValue = getGradientValueBySlug( allGradients, gradient );\n\t} else {\n\t\tgradientValue = customGradient;\n\t}\n\treturn { gradientClass, gradientValue, setGradient };\n}\n"]}
@@ -22,6 +22,8 @@ var _compose = require("@wordpress/compose");
22
22
 
23
23
  var _control = _interopRequireDefault(require("../components/colors-gradients/control"));
24
24
 
25
+ var _useMultipleOriginColorsAndGradients = _interopRequireDefault(require("../components/colors-gradients/use-multiple-origin-colors-and-gradients"));
26
+
25
27
  var _colors = require("../components/colors");
26
28
 
27
29
  var _useSetting = _interopRequireDefault(require("../components/use-setting"));
@@ -66,18 +68,17 @@ function BorderColorEdit(props) {
66
68
  },
67
69
  setAttributes
68
70
  } = props;
69
- const colors = (0, _useSetting.default)('color.palette') || EMPTY_ARRAY;
70
- const disableCustomColors = !(0, _useSetting.default)('color.custom');
71
- const disableCustomGradients = !(0, _useSetting.default)('color.customGradient');
71
+ const colorGradientSettings = (0, _useMultipleOriginColorsAndGradients.default)();
72
+ const availableColors = colorGradientSettings.colors.reduce((colors, origin) => colors.concat(origin.colors), []);
72
73
  const [colorValue, setColorValue] = (0, _element.useState)(() => {
73
74
  var _getColorObjectByAttr, _style$border;
74
75
 
75
- return (_getColorObjectByAttr = (0, _colors.getColorObjectByAttributeValues)(colors, borderColor, style === null || style === void 0 ? void 0 : (_style$border = style.border) === null || _style$border === void 0 ? void 0 : _style$border.color)) === null || _getColorObjectByAttr === void 0 ? void 0 : _getColorObjectByAttr.color;
76
+ return (_getColorObjectByAttr = (0, _colors.getColorObjectByAttributeValues)(availableColors, borderColor, style === null || style === void 0 ? void 0 : (_style$border = style.border) === null || _style$border === void 0 ? void 0 : _style$border.color)) === null || _getColorObjectByAttr === void 0 ? void 0 : _getColorObjectByAttr.color;
76
77
  });
77
78
 
78
79
  const onChangeColor = value => {
79
80
  setColorValue(value);
80
- const colorObject = (0, _colors.getColorObjectByColorValue)(colors, value);
81
+ const colorObject = (0, _colors.getColorObjectByColorValue)(availableColors, value);
81
82
  const newStyle = { ...style,
82
83
  border: { ...(style === null || style === void 0 ? void 0 : style.border),
83
84
  color: colorObject !== null && colorObject !== void 0 && colorObject.slug ? undefined : value
@@ -91,15 +92,14 @@ function BorderColorEdit(props) {
91
92
  });
92
93
  };
93
94
 
94
- return (0, _element.createElement)(_control.default, {
95
+ return (0, _element.createElement)(_control.default, (0, _extends2.default)({
95
96
  label: (0, _i18n.__)('Color'),
96
97
  colorValue: colorValue,
97
- colors: colors,
98
- gradients: undefined,
99
- disableCustomColors: disableCustomColors,
100
- disableCustomGradients: disableCustomGradients,
101
- onColorChange: onChangeColor
102
- });
98
+ onColorChange: onChangeColor,
99
+ clearable: false,
100
+ __experimentalHasMultipleOrigins: true,
101
+ __experimentalIsRenderedInSidebar: true
102
+ }, colorGradientSettings));
103
103
  }
104
104
  /**
105
105
  * Filters registered block settings, extending attributes to include
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/hooks/border-color.js"],"names":["EMPTY_ARRAY","BorderColorEdit","props","attributes","borderColor","style","setAttributes","colors","disableCustomColors","disableCustomGradients","colorValue","setColorValue","border","color","onChangeColor","value","colorObject","newStyle","slug","undefined","newNamedColor","addAttributes","settings","type","addSaveProps","blockType","borderColorClass","newClassName","className","addEditProps","existingGetEditWrapperProps","getEditWrapperProps","withBorderColorPaletteStyles","BlockListBlock","name","extraStyles","wrapperProps"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { __ } from '@wordpress/i18n';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport ColorGradientControl from '../components/colors-gradients/control';\nimport {\n\tgetColorClassName,\n\tgetColorObjectByColorValue,\n\tgetColorObjectByAttributeValues,\n} from '../components/colors';\nimport useSetting from '../components/use-setting';\nimport { hasBorderSupport, shouldSkipSerialization } from './border';\nimport { cleanEmptyObject } from './utils';\n\n// Defining empty array here instead of inline avoids unnecessary re-renders of\n// color control.\nconst EMPTY_ARRAY = [];\n\n/**\n * Inspector control panel containing the border color related configuration.\n *\n * There is deliberate overlap between the colors and borders block supports\n * relating to border color. It can be argued the border color controls could\n * be included within either, or both, the colors and borders panels in the\n * inspector controls. If they share the same block attributes it should not\n * matter.\n *\n * @param {Object} props Block properties.\n *\n * @return {WPElement} Border color edit element.\n */\nexport function BorderColorEdit( props ) {\n\tconst {\n\t\tattributes: { borderColor, style },\n\t\tsetAttributes,\n\t} = props;\n\tconst colors = useSetting( 'color.palette' ) || EMPTY_ARRAY;\n\tconst disableCustomColors = ! useSetting( 'color.custom' );\n\tconst disableCustomGradients = ! useSetting( 'color.customGradient' );\n\tconst [ colorValue, setColorValue ] = useState(\n\t\t() =>\n\t\t\tgetColorObjectByAttributeValues(\n\t\t\t\tcolors,\n\t\t\t\tborderColor,\n\t\t\t\tstyle?.border?.color\n\t\t\t)?.color\n\t);\n\n\tconst onChangeColor = ( value ) => {\n\t\tsetColorValue( value );\n\n\t\tconst colorObject = getColorObjectByColorValue( colors, value );\n\t\tconst newStyle = {\n\t\t\t...style,\n\t\t\tborder: {\n\t\t\t\t...style?.border,\n\t\t\t\tcolor: colorObject?.slug ? undefined : value,\n\t\t\t},\n\t\t};\n\n\t\t// If empty slug, ensure undefined to remove attribute.\n\t\tconst newNamedColor = colorObject?.slug ? colorObject.slug : undefined;\n\n\t\tsetAttributes( {\n\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t\tborderColor: newNamedColor,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<ColorGradientControl\n\t\t\tlabel={ __( 'Color' ) }\n\t\t\tcolorValue={ colorValue }\n\t\t\tcolors={ colors }\n\t\t\tgradients={ undefined }\n\t\t\tdisableCustomColors={ disableCustomColors }\n\t\t\tdisableCustomGradients={ disableCustomGradients }\n\t\t\tonColorChange={ onChangeColor }\n\t\t/>\n\t);\n}\n\n/**\n * Filters registered block settings, extending attributes to include\n * `borderColor` if needed.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Updated block settings.\n */\nfunction addAttributes( settings ) {\n\tif ( ! hasBorderSupport( settings, 'color' ) ) {\n\t\treturn settings;\n\t}\n\n\t// Allow blocks to specify default value if needed.\n\tif ( settings.attributes.borderColor ) {\n\t\treturn settings;\n\t}\n\n\t// Add new borderColor attribute to block settings.\n\treturn {\n\t\t...settings,\n\t\tattributes: {\n\t\t\t...settings.attributes,\n\t\t\tborderColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t},\n\t};\n}\n\n/**\n * Override props assigned to save component to inject border color.\n *\n * @param {Object} props Additional props applied to save element.\n * @param {Object} blockType Block type definition.\n * @param {Object} attributes Block's attributes.\n *\n * @return {Object} Filtered props to apply to save element.\n */\nfunction addSaveProps( props, blockType, attributes ) {\n\tif (\n\t\t! hasBorderSupport( blockType, 'color' ) ||\n\t\tshouldSkipSerialization( blockType )\n\t) {\n\t\treturn props;\n\t}\n\n\tconst { borderColor, style } = attributes;\n\tconst borderColorClass = getColorClassName( 'border-color', borderColor );\n\n\tconst newClassName = classnames( props.className, {\n\t\t'has-border-color': borderColor || style?.border?.color,\n\t\t[ borderColorClass ]: !! borderColorClass,\n\t} );\n\n\t// If we are clearing the last of the previous classes in `className`\n\t// set it to `undefined` to avoid rendering empty DOM attributes.\n\tprops.className = newClassName ? newClassName : undefined;\n\n\treturn props;\n}\n\n/**\n * Filters the registered block settings to apply border color styles and\n * classnames to the block edit wrapper.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nfunction addEditProps( settings ) {\n\tif (\n\t\t! hasBorderSupport( settings, 'color' ) ||\n\t\tshouldSkipSerialization( settings )\n\t) {\n\t\treturn settings;\n\t}\n\n\tconst existingGetEditWrapperProps = settings.getEditWrapperProps;\n\tsettings.getEditWrapperProps = ( attributes ) => {\n\t\tlet props = {};\n\n\t\tif ( existingGetEditWrapperProps ) {\n\t\t\tprops = existingGetEditWrapperProps( attributes );\n\t\t}\n\n\t\treturn addSaveProps( props, settings, attributes );\n\t};\n\n\treturn settings;\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 withBorderColorPaletteStyles = createHigherOrderComponent(\n\t( BlockListBlock ) => ( props ) => {\n\t\tconst { name, attributes } = props;\n\t\tconst { borderColor } = attributes;\n\t\tconst colors = useSetting( 'color.palette' ) || EMPTY_ARRAY;\n\n\t\tif (\n\t\t\t! hasBorderSupport( name, 'color' ) ||\n\t\t\tshouldSkipSerialization( name )\n\t\t) {\n\t\t\treturn <BlockListBlock { ...props } />;\n\t\t}\n\n\t\tconst extraStyles = {\n\t\t\tborderColor: borderColor\n\t\t\t\t? getColorObjectByAttributeValues( colors, borderColor )?.color\n\t\t\t\t: undefined,\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/border/addAttributes',\n\taddAttributes\n);\n\naddFilter(\n\t'blocks.getSaveContent.extraProps',\n\t'core/border/addSaveProps',\n\taddSaveProps\n);\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/border/addEditProps',\n\taddEditProps\n);\n\naddFilter(\n\t'editor.BlockListBlock',\n\t'core/border/with-border-color-palette-styles',\n\twithBorderColorPaletteStyles\n);\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/hooks/border-color.js"],"names":["EMPTY_ARRAY","BorderColorEdit","props","attributes","borderColor","style","setAttributes","colorGradientSettings","availableColors","colors","reduce","origin","concat","colorValue","setColorValue","border","color","onChangeColor","value","colorObject","newStyle","slug","undefined","newNamedColor","addAttributes","settings","type","addSaveProps","blockType","borderColorClass","newClassName","className","addEditProps","existingGetEditWrapperProps","getEditWrapperProps","withBorderColorPaletteStyles","BlockListBlock","name","extraStyles","wrapperProps"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\nimport { __ } from '@wordpress/i18n';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport ColorGradientControl from '../components/colors-gradients/control';\nimport useMultipleOriginColorsAndGradients from '../components/colors-gradients/use-multiple-origin-colors-and-gradients';\nimport {\n\tgetColorClassName,\n\tgetColorObjectByColorValue,\n\tgetColorObjectByAttributeValues,\n} from '../components/colors';\nimport useSetting from '../components/use-setting';\nimport { hasBorderSupport, shouldSkipSerialization } from './border';\nimport { cleanEmptyObject } from './utils';\n\n// Defining empty array here instead of inline avoids unnecessary re-renders of\n// color control.\nconst EMPTY_ARRAY = [];\n\n/**\n * Inspector control panel containing the border color related configuration.\n *\n * There is deliberate overlap between the colors and borders block supports\n * relating to border color. It can be argued the border color controls could\n * be included within either, or both, the colors and borders panels in the\n * inspector controls. If they share the same block attributes it should not\n * matter.\n *\n * @param {Object} props Block properties.\n *\n * @return {WPElement} Border color edit element.\n */\nexport function BorderColorEdit( props ) {\n\tconst {\n\t\tattributes: { borderColor, style },\n\t\tsetAttributes,\n\t} = props;\n\tconst colorGradientSettings = useMultipleOriginColorsAndGradients();\n\tconst availableColors = colorGradientSettings.colors.reduce(\n\t\t( colors, origin ) => colors.concat( origin.colors ),\n\t\t[]\n\t);\n\tconst [ colorValue, setColorValue ] = useState(\n\t\t() =>\n\t\t\tgetColorObjectByAttributeValues(\n\t\t\t\tavailableColors,\n\t\t\t\tborderColor,\n\t\t\t\tstyle?.border?.color\n\t\t\t)?.color\n\t);\n\n\tconst onChangeColor = ( value ) => {\n\t\tsetColorValue( value );\n\n\t\tconst colorObject = getColorObjectByColorValue(\n\t\t\tavailableColors,\n\t\t\tvalue\n\t\t);\n\t\tconst newStyle = {\n\t\t\t...style,\n\t\t\tborder: {\n\t\t\t\t...style?.border,\n\t\t\t\tcolor: colorObject?.slug ? undefined : value,\n\t\t\t},\n\t\t};\n\n\t\t// If empty slug, ensure undefined to remove attribute.\n\t\tconst newNamedColor = colorObject?.slug ? colorObject.slug : undefined;\n\n\t\tsetAttributes( {\n\t\t\tstyle: cleanEmptyObject( newStyle ),\n\t\t\tborderColor: newNamedColor,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<ColorGradientControl\n\t\t\tlabel={ __( 'Color' ) }\n\t\t\tcolorValue={ colorValue }\n\t\t\tonColorChange={ onChangeColor }\n\t\t\tclearable={ false }\n\t\t\t__experimentalHasMultipleOrigins\n\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t{ ...colorGradientSettings }\n\t\t/>\n\t);\n}\n\n/**\n * Filters registered block settings, extending attributes to include\n * `borderColor` if needed.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Updated block settings.\n */\nfunction addAttributes( settings ) {\n\tif ( ! hasBorderSupport( settings, 'color' ) ) {\n\t\treturn settings;\n\t}\n\n\t// Allow blocks to specify default value if needed.\n\tif ( settings.attributes.borderColor ) {\n\t\treturn settings;\n\t}\n\n\t// Add new borderColor attribute to block settings.\n\treturn {\n\t\t...settings,\n\t\tattributes: {\n\t\t\t...settings.attributes,\n\t\t\tborderColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t},\n\t};\n}\n\n/**\n * Override props assigned to save component to inject border color.\n *\n * @param {Object} props Additional props applied to save element.\n * @param {Object} blockType Block type definition.\n * @param {Object} attributes Block's attributes.\n *\n * @return {Object} Filtered props to apply to save element.\n */\nfunction addSaveProps( props, blockType, attributes ) {\n\tif (\n\t\t! hasBorderSupport( blockType, 'color' ) ||\n\t\tshouldSkipSerialization( blockType )\n\t) {\n\t\treturn props;\n\t}\n\n\tconst { borderColor, style } = attributes;\n\tconst borderColorClass = getColorClassName( 'border-color', borderColor );\n\n\tconst newClassName = classnames( props.className, {\n\t\t'has-border-color': borderColor || style?.border?.color,\n\t\t[ borderColorClass ]: !! borderColorClass,\n\t} );\n\n\t// If we are clearing the last of the previous classes in `className`\n\t// set it to `undefined` to avoid rendering empty DOM attributes.\n\tprops.className = newClassName ? newClassName : undefined;\n\n\treturn props;\n}\n\n/**\n * Filters the registered block settings to apply border color styles and\n * classnames to the block edit wrapper.\n *\n * @param {Object} settings Original block settings.\n *\n * @return {Object} Filtered block settings.\n */\nfunction addEditProps( settings ) {\n\tif (\n\t\t! hasBorderSupport( settings, 'color' ) ||\n\t\tshouldSkipSerialization( settings )\n\t) {\n\t\treturn settings;\n\t}\n\n\tconst existingGetEditWrapperProps = settings.getEditWrapperProps;\n\tsettings.getEditWrapperProps = ( attributes ) => {\n\t\tlet props = {};\n\n\t\tif ( existingGetEditWrapperProps ) {\n\t\t\tprops = existingGetEditWrapperProps( attributes );\n\t\t}\n\n\t\treturn addSaveProps( props, settings, attributes );\n\t};\n\n\treturn settings;\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 withBorderColorPaletteStyles = createHigherOrderComponent(\n\t( BlockListBlock ) => ( props ) => {\n\t\tconst { name, attributes } = props;\n\t\tconst { borderColor } = attributes;\n\t\tconst colors = useSetting( 'color.palette' ) || EMPTY_ARRAY;\n\n\t\tif (\n\t\t\t! hasBorderSupport( name, 'color' ) ||\n\t\t\tshouldSkipSerialization( name )\n\t\t) {\n\t\t\treturn <BlockListBlock { ...props } />;\n\t\t}\n\n\t\tconst extraStyles = {\n\t\t\tborderColor: borderColor\n\t\t\t\t? getColorObjectByAttributeValues( colors, borderColor )?.color\n\t\t\t\t: undefined,\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/border/addAttributes',\n\taddAttributes\n);\n\naddFilter(\n\t'blocks.getSaveContent.extraProps',\n\t'core/border/addSaveProps',\n\taddSaveProps\n);\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/border/addEditProps',\n\taddEditProps\n);\n\naddFilter(\n\t'editor.BlockListBlock',\n\t'core/border/with-border-color-palette-styles',\n\twithBorderColorPaletteStyles\n);\n"]}
@@ -65,7 +65,8 @@ function ColorPanel(_ref) {
65
65
  initialOpen: false,
66
66
  settings: settings,
67
67
  showTitle: showTitle,
68
- __experimentalHasMultipleOrigins: true
68
+ __experimentalHasMultipleOrigins: true,
69
+ __experimentalIsRenderedInSidebar: true
69
70
  }, enableContrastChecking && (0, _element.createElement)(_contrastChecker.default, {
70
71
  backgroundColor: detectedBackgroundColor,
71
72
  textColor: detectedColor
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/hooks/color-panel.js"],"names":["getComputedStyle","node","ownerDocument","defaultView","ColorPanel","settings","clientId","enableContrastChecking","showTitle","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","ref","current","color","backgroundColorNode","backgroundColor","parentNode","nodeType","ELEMENT_NODE"],"mappings":";;;;;;;;;AAGA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AAZA;AACA;AACA;;AAIA;AACA;AACA;AAMA,SAASA,gBAAT,CAA2BC,IAA3B,EAAkC;AACjC,SAAOA,IAAI,CAACC,aAAL,CAAmBC,WAAnB,CAA+BH,gBAA/B,CAAiDC,IAAjD,CAAP;AACA;;AAEc,SAASG,UAAT,OAKX;AAAA,MALgC;AACnCC,IAAAA,QADmC;AAEnCC,IAAAA,QAFmC;AAGnCC,IAAAA,sBAAsB,GAAG,IAHU;AAInCC,IAAAA,SAAS,GAAG;AAJuB,GAKhC;AACH,QAAM,CAAEC,uBAAF,EAA2BC,0BAA3B,IAA0D,wBAAhE;AACA,QAAM,CAAEC,aAAF,EAAiBC,gBAAjB,IAAsC,wBAA5C;AACA,QAAMC,GAAG,GAAG,yCAAaP,QAAb,CAAZ;AAEA,0BAAW,MAAM;AAChB,QAAK,CAAEC,sBAAP,EAAgC;AAC/B;AACA;;AAED,QAAK,CAAEM,GAAG,CAACC,OAAX,EAAqB;AACpB;AACA;;AACDF,IAAAA,gBAAgB,CAAEZ,gBAAgB,CAAEa,GAAG,CAACC,OAAN,CAAhB,CAAgCC,KAAlC,CAAhB;AAEA,QAAIC,mBAAmB,GAAGH,GAAG,CAACC,OAA9B;AACA,QAAIG,eAAe,GAAGjB,gBAAgB,CAAEgB,mBAAF,CAAhB,CACpBC,eADF;;AAEA,WACCA,eAAe,KAAK,kBAApB,IACAD,mBAAmB,CAACE,UADpB,IAEAF,mBAAmB,CAACE,UAApB,CAA+BC,QAA/B,KACCH,mBAAmB,CAACE,UAApB,CAA+BE,YAJjC,EAKE;AACDJ,MAAAA,mBAAmB,GAAGA,mBAAmB,CAACE,UAA1C;AACAD,MAAAA,eAAe,GAAGjB,gBAAgB,CAAEgB,mBAAF,CAAhB,CAChBC,eADF;AAEA;;AAEDP,IAAAA,0BAA0B,CAAEO,eAAF,CAA1B;AACA,GAzBD;AA2BA,SACC,4BAAC,0BAAD,QACC,4BAAC,mCAAD;AACC,IAAA,KAAK,EAAG,cAAI,OAAJ,CADT;AAEC,IAAA,WAAW,EAAG,KAFf;AAGC,IAAA,QAAQ,EAAGZ,QAHZ;AAIC,IAAA,SAAS,EAAGG,SAJb;AAKC,IAAA,gCAAgC;AALjC,KAOGD,sBAAsB,IACvB,4BAAC,wBAAD;AACC,IAAA,eAAe,EAAGE,uBADnB;AAEC,IAAA,SAAS,EAAGE;AAFb,IARF,CADD,CADD;AAkBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport PanelColorGradientSettings from '../components/colors-gradients/panel-color-gradient-settings';\nimport ContrastChecker from '../components/contrast-checker';\nimport InspectorControls from '../components/inspector-controls';\nimport { __unstableUseBlockRef as useBlockRef } from '../components/block-list/use-block-props/use-block-refs';\n\nfunction getComputedStyle( node ) {\n\treturn node.ownerDocument.defaultView.getComputedStyle( node );\n}\n\nexport default function ColorPanel( {\n\tsettings,\n\tclientId,\n\tenableContrastChecking = true,\n\tshowTitle = true,\n} ) {\n\tconst [ detectedBackgroundColor, setDetectedBackgroundColor ] = useState();\n\tconst [ detectedColor, setDetectedColor ] = useState();\n\tconst ref = useBlockRef( clientId );\n\n\tuseEffect( () => {\n\t\tif ( ! enableContrastChecking ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! ref.current ) {\n\t\t\treturn;\n\t\t}\n\t\tsetDetectedColor( getComputedStyle( ref.current ).color );\n\n\t\tlet backgroundColorNode = ref.current;\n\t\tlet backgroundColor = getComputedStyle( backgroundColorNode )\n\t\t\t.backgroundColor;\n\t\twhile (\n\t\t\tbackgroundColor === 'rgba(0, 0, 0, 0)' &&\n\t\t\tbackgroundColorNode.parentNode &&\n\t\t\tbackgroundColorNode.parentNode.nodeType ===\n\t\t\t\tbackgroundColorNode.parentNode.ELEMENT_NODE\n\t\t) {\n\t\t\tbackgroundColorNode = backgroundColorNode.parentNode;\n\t\t\tbackgroundColor = getComputedStyle( backgroundColorNode )\n\t\t\t\t.backgroundColor;\n\t\t}\n\n\t\tsetDetectedBackgroundColor( backgroundColor );\n\t} );\n\n\treturn (\n\t\t<InspectorControls>\n\t\t\t<PanelColorGradientSettings\n\t\t\t\ttitle={ __( 'Color' ) }\n\t\t\t\tinitialOpen={ false }\n\t\t\t\tsettings={ settings }\n\t\t\t\tshowTitle={ showTitle }\n\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t>\n\t\t\t\t{ enableContrastChecking && (\n\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\tbackgroundColor={ detectedBackgroundColor }\n\t\t\t\t\t\ttextColor={ detectedColor }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</PanelColorGradientSettings>\n\t\t</InspectorControls>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/hooks/color-panel.js"],"names":["getComputedStyle","node","ownerDocument","defaultView","ColorPanel","settings","clientId","enableContrastChecking","showTitle","detectedBackgroundColor","setDetectedBackgroundColor","detectedColor","setDetectedColor","ref","current","color","backgroundColorNode","backgroundColor","parentNode","nodeType","ELEMENT_NODE"],"mappings":";;;;;;;;;AAGA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AAZA;AACA;AACA;;AAIA;AACA;AACA;AAMA,SAASA,gBAAT,CAA2BC,IAA3B,EAAkC;AACjC,SAAOA,IAAI,CAACC,aAAL,CAAmBC,WAAnB,CAA+BH,gBAA/B,CAAiDC,IAAjD,CAAP;AACA;;AAEc,SAASG,UAAT,OAKX;AAAA,MALgC;AACnCC,IAAAA,QADmC;AAEnCC,IAAAA,QAFmC;AAGnCC,IAAAA,sBAAsB,GAAG,IAHU;AAInCC,IAAAA,SAAS,GAAG;AAJuB,GAKhC;AACH,QAAM,CAAEC,uBAAF,EAA2BC,0BAA3B,IAA0D,wBAAhE;AACA,QAAM,CAAEC,aAAF,EAAiBC,gBAAjB,IAAsC,wBAA5C;AACA,QAAMC,GAAG,GAAG,yCAAaP,QAAb,CAAZ;AAEA,0BAAW,MAAM;AAChB,QAAK,CAAEC,sBAAP,EAAgC;AAC/B;AACA;;AAED,QAAK,CAAEM,GAAG,CAACC,OAAX,EAAqB;AACpB;AACA;;AACDF,IAAAA,gBAAgB,CAAEZ,gBAAgB,CAAEa,GAAG,CAACC,OAAN,CAAhB,CAAgCC,KAAlC,CAAhB;AAEA,QAAIC,mBAAmB,GAAGH,GAAG,CAACC,OAA9B;AACA,QAAIG,eAAe,GAAGjB,gBAAgB,CAAEgB,mBAAF,CAAhB,CACpBC,eADF;;AAEA,WACCA,eAAe,KAAK,kBAApB,IACAD,mBAAmB,CAACE,UADpB,IAEAF,mBAAmB,CAACE,UAApB,CAA+BC,QAA/B,KACCH,mBAAmB,CAACE,UAApB,CAA+BE,YAJjC,EAKE;AACDJ,MAAAA,mBAAmB,GAAGA,mBAAmB,CAACE,UAA1C;AACAD,MAAAA,eAAe,GAAGjB,gBAAgB,CAAEgB,mBAAF,CAAhB,CAChBC,eADF;AAEA;;AAEDP,IAAAA,0BAA0B,CAAEO,eAAF,CAA1B;AACA,GAzBD;AA2BA,SACC,4BAAC,0BAAD,QACC,4BAAC,mCAAD;AACC,IAAA,KAAK,EAAG,cAAI,OAAJ,CADT;AAEC,IAAA,WAAW,EAAG,KAFf;AAGC,IAAA,QAAQ,EAAGZ,QAHZ;AAIC,IAAA,SAAS,EAAGG,SAJb;AAKC,IAAA,gCAAgC,MALjC;AAMC,IAAA,iCAAiC;AANlC,KAQGD,sBAAsB,IACvB,4BAAC,wBAAD;AACC,IAAA,eAAe,EAAGE,uBADnB;AAEC,IAAA,SAAS,EAAGE;AAFb,IATF,CADD,CADD;AAmBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport PanelColorGradientSettings from '../components/colors-gradients/panel-color-gradient-settings';\nimport ContrastChecker from '../components/contrast-checker';\nimport InspectorControls from '../components/inspector-controls';\nimport { __unstableUseBlockRef as useBlockRef } from '../components/block-list/use-block-props/use-block-refs';\n\nfunction getComputedStyle( node ) {\n\treturn node.ownerDocument.defaultView.getComputedStyle( node );\n}\n\nexport default function ColorPanel( {\n\tsettings,\n\tclientId,\n\tenableContrastChecking = true,\n\tshowTitle = true,\n} ) {\n\tconst [ detectedBackgroundColor, setDetectedBackgroundColor ] = useState();\n\tconst [ detectedColor, setDetectedColor ] = useState();\n\tconst ref = useBlockRef( clientId );\n\n\tuseEffect( () => {\n\t\tif ( ! enableContrastChecking ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! ref.current ) {\n\t\t\treturn;\n\t\t}\n\t\tsetDetectedColor( getComputedStyle( ref.current ).color );\n\n\t\tlet backgroundColorNode = ref.current;\n\t\tlet backgroundColor = getComputedStyle( backgroundColorNode )\n\t\t\t.backgroundColor;\n\t\twhile (\n\t\t\tbackgroundColor === 'rgba(0, 0, 0, 0)' &&\n\t\t\tbackgroundColorNode.parentNode &&\n\t\t\tbackgroundColorNode.parentNode.nodeType ===\n\t\t\t\tbackgroundColorNode.parentNode.ELEMENT_NODE\n\t\t) {\n\t\t\tbackgroundColorNode = backgroundColorNode.parentNode;\n\t\t\tbackgroundColor = getComputedStyle( backgroundColorNode )\n\t\t\t\t.backgroundColor;\n\t\t}\n\n\t\tsetDetectedBackgroundColor( backgroundColor );\n\t} );\n\n\treturn (\n\t\t<InspectorControls>\n\t\t\t<PanelColorGradientSettings\n\t\t\t\ttitle={ __( 'Color' ) }\n\t\t\t\tinitialOpen={ false }\n\t\t\t\tsettings={ settings }\n\t\t\t\tshowTitle={ showTitle }\n\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t>\n\t\t\t\t{ enableContrastChecking && (\n\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\tbackgroundColor={ detectedBackgroundColor }\n\t\t\t\t\t\ttextColor={ detectedColor }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</PanelColorGradientSettings>\n\t\t</InspectorControls>\n\t);\n}\n"]}
@@ -50,6 +50,7 @@ var _useSetting = _interopRequireDefault(require("../components/use-setting"));
50
50
  */
51
51
  const COLOR_SUPPORT_KEY = 'color';
52
52
  exports.COLOR_SUPPORT_KEY = COLOR_SUPPORT_KEY;
53
+ const EMPTY_OBJECT = {};
53
54
 
54
55
  const hasColorSupport = blockType => {
55
56
  const colorSupport = (0, _blocks.getBlockSupport)(blockType, COLOR_SUPPORT_KEY);
@@ -218,24 +219,27 @@ function immutableSet(object, path, value) {
218
219
 
219
220
 
220
221
  function ColorEdit(props) {
221
- var _solidsPerOrigin$them, _gradientsPerOrigin$t, _style$color6, _style$color7, _style$color8, _style$elements2, _style$elements2$link, _style$elements2$link2, _style$elements3, _style$elements3$link, _style$elements3$link2;
222
+ var _gradientsPerOrigin$t, _style$color6, _style$color7, _style$color8, _style$elements2, _style$elements2$link, _style$elements2$link2, _style$elements3, _style$elements3$link, _style$elements3$link2;
222
223
 
223
224
  const {
224
225
  name: blockName,
225
226
  attributes
226
- } = props;
227
- const {
228
- palette: solidsPerOrigin,
229
- gradients: gradientsPerOrigin,
230
- customGradient: areCustomGradientsEnabled,
231
- custom: areCustomSolidsEnabled,
232
- text: isTextEnabled,
233
- background: isBackgroundEnabled,
234
- link: isLinkEnabled
235
- } = (0, _useSetting.default)('color') || {};
236
- const solidsEnabled = areCustomSolidsEnabled || !(solidsPerOrigin !== null && solidsPerOrigin !== void 0 && solidsPerOrigin.theme) || (solidsPerOrigin === null || solidsPerOrigin === void 0 ? void 0 : (_solidsPerOrigin$them = solidsPerOrigin.theme) === null || _solidsPerOrigin$them === void 0 ? void 0 : _solidsPerOrigin$them.length) > 0;
227
+ } = props; // Some color settings have a special handling for deprecated flags in `useSetting`,
228
+ // so we can't unwrap them by doing const { ... } = useSetting('color')
229
+ // until https://github.com/WordPress/gutenberg/issues/37094 is fixed.
230
+
231
+ const userPalette = (0, _useSetting.default)('color.palette.custom');
232
+ const themePalette = (0, _useSetting.default)('color.palette.theme');
233
+ const defaultPalette = (0, _useSetting.default)('color.palette.default');
234
+ const allSolids = (0, _element.useMemo)(() => [...(userPalette || []), ...(themePalette || []), ...(defaultPalette || [])], [userPalette, themePalette, defaultPalette]);
235
+ const gradientsPerOrigin = (0, _useSetting.default)('color.gradients') || EMPTY_OBJECT;
236
+ const areCustomSolidsEnabled = (0, _useSetting.default)('color.custom');
237
+ const areCustomGradientsEnabled = (0, _useSetting.default)('color.customGradient');
238
+ const isBackgroundEnabled = (0, _useSetting.default)('color.background');
239
+ const isLinkEnabled = (0, _useSetting.default)('color.link');
240
+ const isTextEnabled = (0, _useSetting.default)('color.text');
241
+ const solidsEnabled = areCustomSolidsEnabled || !themePalette || (themePalette === null || themePalette === void 0 ? void 0 : themePalette.length) > 0;
237
242
  const gradientsEnabled = areCustomGradientsEnabled || !(gradientsPerOrigin !== null && gradientsPerOrigin !== void 0 && gradientsPerOrigin.theme) || (gradientsPerOrigin === null || gradientsPerOrigin === void 0 ? void 0 : (_gradientsPerOrigin$t = gradientsPerOrigin.theme) === null || _gradientsPerOrigin$t === void 0 ? void 0 : _gradientsPerOrigin$t.length) > 0;
238
- const allSolids = (0, _element.useMemo)(() => [...((solidsPerOrigin === null || solidsPerOrigin === void 0 ? void 0 : solidsPerOrigin.custom) || []), ...((solidsPerOrigin === null || solidsPerOrigin === void 0 ? void 0 : solidsPerOrigin.theme) || []), ...((solidsPerOrigin === null || solidsPerOrigin === void 0 ? void 0 : solidsPerOrigin.default) || [])], [solidsPerOrigin]);
239
243
  const allGradients = (0, _element.useMemo)(() => [...((gradientsPerOrigin === null || gradientsPerOrigin === void 0 ? void 0 : gradientsPerOrigin.custom) || []), ...((gradientsPerOrigin === null || gradientsPerOrigin === void 0 ? void 0 : gradientsPerOrigin.theme) || []), ...((gradientsPerOrigin === null || gradientsPerOrigin === void 0 ? void 0 : gradientsPerOrigin.default) || [])], [gradientsPerOrigin]); // Shouldn't be needed but right now the ColorGradientsPanel
240
244
  // can trigger both onChangeColor and onChangeBackground
241
245
  // synchronously causing our two callbacks to override changes
@@ -374,7 +378,7 @@ function ColorEdit(props) {
374
378
 
375
379
 
376
380
  const withColorPaletteStyles = (0, _compose.createHigherOrderComponent)(BlockListBlock => props => {
377
- var _getColorObjectByAttr, _getColorObjectByAttr2, _props$wrapperProps;
381
+ var _props$wrapperProps;
378
382
 
379
383
  const {
380
384
  name,
@@ -384,19 +388,29 @@ const withColorPaletteStyles = (0, _compose.createHigherOrderComponent)(BlockLis
384
388
  backgroundColor,
385
389
  textColor
386
390
  } = attributes;
387
- const {
388
- palette: solidsPerOrigin
389
- } = (0, _useSetting.default)('color') || {};
390
- const colors = (0, _element.useMemo)(() => [...((solidsPerOrigin === null || solidsPerOrigin === void 0 ? void 0 : solidsPerOrigin.custom) || []), ...((solidsPerOrigin === null || solidsPerOrigin === void 0 ? void 0 : solidsPerOrigin.theme) || []), ...((solidsPerOrigin === null || solidsPerOrigin === void 0 ? void 0 : solidsPerOrigin.default) || [])], [solidsPerOrigin]);
391
+ const userPalette = (0, _useSetting.default)('color.palette.custom') || [];
392
+ const themePalette = (0, _useSetting.default)('color.palette.theme') || [];
393
+ const defaultPalette = (0, _useSetting.default)('color.palette.default') || [];
394
+ const colors = (0, _element.useMemo)(() => [...(userPalette || []), ...(themePalette || []), ...(defaultPalette || [])], [userPalette, themePalette, defaultPalette]);
391
395
 
392
396
  if (!hasColorSupport(name) || shouldSkipSerialization(name)) {
393
397
  return (0, _element.createElement)(BlockListBlock, props);
394
398
  }
395
399
 
396
- const extraStyles = {
397
- color: textColor ? (_getColorObjectByAttr = (0, _colors.getColorObjectByAttributeValues)(colors, textColor)) === null || _getColorObjectByAttr === void 0 ? void 0 : _getColorObjectByAttr.color : undefined,
398
- backgroundColor: backgroundColor ? (_getColorObjectByAttr2 = (0, _colors.getColorObjectByAttributeValues)(colors, backgroundColor)) === null || _getColorObjectByAttr2 === void 0 ? void 0 : _getColorObjectByAttr2.color : undefined
399
- };
400
+ const extraStyles = {};
401
+
402
+ if (textColor) {
403
+ var _getColorObjectByAttr;
404
+
405
+ extraStyles.color = (_getColorObjectByAttr = (0, _colors.getColorObjectByAttributeValues)(colors, textColor)) === null || _getColorObjectByAttr === void 0 ? void 0 : _getColorObjectByAttr.color;
406
+ }
407
+
408
+ if (backgroundColor) {
409
+ var _getColorObjectByAttr2;
410
+
411
+ extraStyles.backgroundColor = (_getColorObjectByAttr2 = (0, _colors.getColorObjectByAttributeValues)(colors, backgroundColor)) === null || _getColorObjectByAttr2 === void 0 ? void 0 : _getColorObjectByAttr2.color;
412
+ }
413
+
400
414
  let wrapperProps = props.wrapperProps;
401
415
  wrapperProps = { ...props.wrapperProps,
402
416
  style: { ...extraStyles,
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/hooks/color.js"],"names":["COLOR_SUPPORT_KEY","hasColorSupport","blockType","colorSupport","link","gradient","background","text","shouldSkipSerialization","__experimentalSkipSerialization","hasLinkColorSupport","Platform","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","clone","ColorEdit","name","blockName","palette","solidsPerOrigin","gradientsPerOrigin","customGradient","areCustomGradientsEnabled","custom","areCustomSolidsEnabled","isTextEnabled","isBackgroundEnabled","isLinkEnabled","solidsEnabled","theme","length","gradientsEnabled","allSolids","default","allGradients","localAttributes","current","hasLinkColor","hasTextColor","hasBackgroundColor","hasGradientColor","gradientValue","onChangeColor","colorObject","attributeName","newStyle","slug","newNamedColor","newAttributes","setAttributes","onChangeGradient","onChangeLinkColor","newLinkColorValue","clientId","label","onColorChange","colorValue","onGradientChange","clearable","withColorPaletteStyles","BlockListBlock","extraStyles","wrapperProps"],"mappings":"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","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\tconst {\n\t\tpalette: solidsPerOrigin,\n\t\tgradients: gradientsPerOrigin,\n\t\tcustomGradient: areCustomGradientsEnabled,\n\t\tcustom: areCustomSolidsEnabled,\n\t\ttext: isTextEnabled,\n\t\tbackground: isBackgroundEnabled,\n\t\tlink: isLinkEnabled,\n\t} = useSetting( 'color' ) || {};\n\n\tconst solidsEnabled =\n\t\tareCustomSolidsEnabled ||\n\t\t! solidsPerOrigin?.theme ||\n\t\tsolidsPerOrigin?.theme?.length > 0;\n\n\tconst gradientsEnabled =\n\t\tareCustomGradientsEnabled ||\n\t\t! gradientsPerOrigin?.theme ||\n\t\tgradientsPerOrigin?.theme?.length > 0;\n\n\tconst allSolids = useMemo(\n\t\t() => [\n\t\t\t...( solidsPerOrigin?.custom || [] ),\n\t\t\t...( solidsPerOrigin?.theme || [] ),\n\t\t\t...( solidsPerOrigin?.default || [] ),\n\t\t],\n\t\t[ solidsPerOrigin ]\n\t);\n\n\tconst allGradients = useMemo(\n\t\t() => [\n\t\t\t...( gradientsPerOrigin?.custom || [] ),\n\t\t\t...( gradientsPerOrigin?.theme || [] ),\n\t\t\t...( gradientsPerOrigin?.default || [] ),\n\t\t],\n\t\t[ gradientsPerOrigin ]\n\t);\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\treturn (\n\t\t<ColorPanel\n\t\t\tenableContrastChecking={\n\t\t\t\t// Turn on contrast checker for web only since it's not supported on mobile yet.\n\t\t\t\tPlatform.OS === 'web' && ! gradient && ! style?.color?.gradient\n\t\t\t}\n\t\t\tclientId={ props.clientId }\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 color' ),\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 color' ),\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 Color' ),\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 { palette: solidsPerOrigin } = useSetting( 'color' ) || {};\n\t\tconst colors = useMemo(\n\t\t\t() => [\n\t\t\t\t...( solidsPerOrigin?.custom || [] ),\n\t\t\t\t...( solidsPerOrigin?.theme || [] ),\n\t\t\t\t...( solidsPerOrigin?.default || [] ),\n\t\t\t],\n\t\t\t[ solidsPerOrigin ]\n\t\t);\n\t\tif ( ! hasColorSupport( name ) || shouldSkipSerialization( name ) ) {\n\t\t\treturn <BlockListBlock { ...props } />;\n\t\t}\n\n\t\tconst extraStyles = {\n\t\t\tcolor: textColor\n\t\t\t\t? getColorObjectByAttributeValues( colors, textColor )?.color\n\t\t\t\t: undefined,\n\t\t\tbackgroundColor: backgroundColor\n\t\t\t\t? getColorObjectByAttributeValues( colors, backgroundColor )\n\t\t\t\t\t\t?.color\n\t\t\t\t: undefined,\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":["COLOR_SUPPORT_KEY","EMPTY_OBJECT","hasColorSupport","blockType","colorSupport","link","gradient","background","text","shouldSkipSerialization","__experimentalSkipSerialization","hasLinkColorSupport","Platform","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","clone","ColorEdit","name","blockName","userPalette","themePalette","defaultPalette","allSolids","gradientsPerOrigin","areCustomSolidsEnabled","areCustomGradientsEnabled","isBackgroundEnabled","isLinkEnabled","isTextEnabled","solidsEnabled","length","gradientsEnabled","theme","allGradients","custom","default","localAttributes","current","hasLinkColor","hasTextColor","hasBackgroundColor","hasGradientColor","gradientValue","onChangeColor","colorObject","attributeName","newStyle","slug","newNamedColor","newAttributes","setAttributes","onChangeGradient","onChangeLinkColor","newLinkColorValue","clientId","label","onColorChange","colorValue","onGradientChange","clearable","withColorPaletteStyles","BlockListBlock","extraStyles","wrapperProps"],"mappings":"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","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 EMPTY_OBJECT = {};\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 gradientsPerOrigin = useSetting( 'color.gradients' ) || EMPTY_OBJECT;\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! gradientsPerOrigin?.theme ||\n\t\tgradientsPerOrigin?.theme?.length > 0;\n\n\tconst allGradients = useMemo(\n\t\t() => [\n\t\t\t...( gradientsPerOrigin?.custom || [] ),\n\t\t\t...( gradientsPerOrigin?.theme || [] ),\n\t\t\t...( gradientsPerOrigin?.default || [] ),\n\t\t],\n\t\t[ gradientsPerOrigin ]\n\t);\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\treturn (\n\t\t<ColorPanel\n\t\t\tenableContrastChecking={\n\t\t\t\t// Turn on contrast checker for web only since it's not supported on mobile yet.\n\t\t\t\tPlatform.OS === 'web' && ! gradient && ! style?.color?.gradient\n\t\t\t}\n\t\t\tclientId={ props.clientId }\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 color' ),\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 color' ),\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 Color' ),\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"]}
@@ -78,6 +78,8 @@ function getColorClassesAndStyles(attributes) {
78
78
  style: styleProp
79
79
  };
80
80
  }
81
+
82
+ const EMPTY_OBJECT = {};
81
83
  /**
82
84
  * Determines the color related props for a block derived from its color block
83
85
  * support attributes.
@@ -90,18 +92,20 @@ function getColorClassesAndStyles(attributes) {
90
92
  * @return {Object} ClassName & style props from colors block support.
91
93
  */
92
94
 
93
-
94
95
  function useColorProps(attributes) {
95
96
  const {
96
97
  backgroundColor,
97
98
  textColor,
98
99
  gradient
99
- } = attributes;
100
- const {
101
- palette: solidsPerOrigin,
102
- gradients: gradientsPerOrigin
103
- } = (0, _useSetting.default)('color') || {};
104
- const colors = (0, _element.useMemo)(() => [...((solidsPerOrigin === null || solidsPerOrigin === void 0 ? void 0 : solidsPerOrigin.custom) || []), ...((solidsPerOrigin === null || solidsPerOrigin === void 0 ? void 0 : solidsPerOrigin.theme) || []), ...((solidsPerOrigin === null || solidsPerOrigin === void 0 ? void 0 : solidsPerOrigin.default) || [])], [solidsPerOrigin]);
100
+ } = attributes; // Some color settings have a special handling for deprecated flags in `useSetting`,
101
+ // so we can't unwrap them by doing const { ... } = useSetting('color')
102
+ // until https://github.com/WordPress/gutenberg/issues/37094 is fixed.
103
+
104
+ const userPalette = (0, _useSetting.default)('color.palette.custom') || [];
105
+ const themePalette = (0, _useSetting.default)('color.palette.theme') || [];
106
+ const defaultPalette = (0, _useSetting.default)('color.palette.default') || [];
107
+ const gradientsPerOrigin = (0, _useSetting.default)('color.gradients') || EMPTY_OBJECT;
108
+ const colors = (0, _element.useMemo)(() => [...(userPalette || []), ...(themePalette || []), ...(defaultPalette || [])], [userPalette, themePalette, defaultPalette]);
105
109
  const gradients = (0, _element.useMemo)(() => [...((gradientsPerOrigin === null || gradientsPerOrigin === void 0 ? void 0 : gradientsPerOrigin.custom) || []), ...((gradientsPerOrigin === null || gradientsPerOrigin === void 0 ? void 0 : gradientsPerOrigin.theme) || []), ...((gradientsPerOrigin === null || gradientsPerOrigin === void 0 ? void 0 : gradientsPerOrigin.default) || [])], [gradientsPerOrigin]);
106
110
  const colorProps = getColorClassesAndStyles(attributes); // Force inline styles to apply colors when themes do not load their color
107
111
  // stylesheets in the editor.
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/hooks/use-color-props.js"],"names":["getColorClassesAndStyles","attributes","backgroundColor","textColor","gradient","style","backgroundClass","textClass","gradientClass","hasGradient","color","className","text","background","elements","link","colorStyles","styleProp","undefined","useColorProps","palette","solidsPerOrigin","gradients","gradientsPerOrigin","colors","custom","theme","default","colorProps","backgroundColorObject","textColorObject"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getInlineStyles } from './style';\nimport {\n\tgetColorClassName,\n\tgetColorObjectByAttributeValues,\n} from '../components/colors';\nimport {\n\t__experimentalGetGradientClass,\n\tgetGradientValueBySlug,\n} from '../components/gradients';\nimport useSetting from '../components/use-setting';\n\n// The code in this file has largely been lifted from the color block support\n// hook.\n//\n// This utility is intended to assist where the serialization of the colors\n// block support is being skipped for a block but the color related CSS classes\n// & styles still need to be generated so they can be applied to inner elements.\n\n/**\n * Provides the CSS class names and inline styles for a block's color support\n * attributes.\n *\n * @param {Object} attributes Block attributes.\n *\n * @return {Object} Color block support derived CSS classes & styles.\n */\nexport function getColorClassesAndStyles( attributes ) {\n\tconst { backgroundColor, textColor, gradient, style } = attributes;\n\n\t// Collect color CSS classes.\n\tconst backgroundClass = getColorClassName(\n\t\t'background-color',\n\t\tbackgroundColor\n\t);\n\tconst textClass = getColorClassName( 'color', textColor );\n\n\tconst gradientClass = __experimentalGetGradientClass( gradient );\n\tconst hasGradient = gradientClass || style?.color?.gradient;\n\n\t// Determine color CSS class name list.\n\tconst className = classnames( textClass, gradientClass, {\n\t\t// Don't apply the background class if there's a gradient.\n\t\t[ backgroundClass ]: ! hasGradient && !! backgroundClass,\n\t\t'has-text-color': textColor || style?.color?.text,\n\t\t'has-background':\n\t\t\tbackgroundColor ||\n\t\t\tstyle?.color?.background ||\n\t\t\tgradient ||\n\t\t\tstyle?.color?.gradient,\n\t\t'has-link-color': style?.elements?.link?.color,\n\t} );\n\n\t// Collect inline styles for colors.\n\tconst colorStyles = style?.color || {};\n\tconst styleProp = getInlineStyles( { color: colorStyles } );\n\n\treturn {\n\t\tclassName: className || undefined,\n\t\tstyle: styleProp,\n\t};\n}\n\n/**\n * Determines the color related props for a block derived from its color block\n * support attributes.\n *\n * Inline styles are forced for named colors to ensure these selections are\n * reflected when themes do not load their color stylesheets in the editor.\n *\n * @param {Object} attributes Block attributes.\n *\n * @return {Object} ClassName & style props from colors block support.\n */\nexport function useColorProps( attributes ) {\n\tconst { backgroundColor, textColor, gradient } = attributes;\n\n\tconst { palette: solidsPerOrigin, gradients: gradientsPerOrigin } =\n\t\tuseSetting( 'color' ) || {};\n\tconst colors = useMemo(\n\t\t() => [\n\t\t\t...( solidsPerOrigin?.custom || [] ),\n\t\t\t...( solidsPerOrigin?.theme || [] ),\n\t\t\t...( solidsPerOrigin?.default || [] ),\n\t\t],\n\t\t[ solidsPerOrigin ]\n\t);\n\tconst gradients = useMemo(\n\t\t() => [\n\t\t\t...( gradientsPerOrigin?.custom || [] ),\n\t\t\t...( gradientsPerOrigin?.theme || [] ),\n\t\t\t...( gradientsPerOrigin?.default || [] ),\n\t\t],\n\t\t[ gradientsPerOrigin ]\n\t);\n\n\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\t// Force inline styles to apply colors when themes do not load their color\n\t// stylesheets in the editor.\n\tif ( backgroundColor ) {\n\t\tconst backgroundColorObject = getColorObjectByAttributeValues(\n\t\t\tcolors,\n\t\t\tbackgroundColor\n\t\t);\n\n\t\tcolorProps.style.backgroundColor = backgroundColorObject.color;\n\t}\n\n\tif ( gradient ) {\n\t\tcolorProps.style.background = getGradientValueBySlug(\n\t\t\tgradients,\n\t\t\tgradient\n\t\t);\n\t}\n\n\tif ( textColor ) {\n\t\tconst textColorObject = getColorObjectByAttributeValues(\n\t\t\tcolors,\n\t\t\ttextColor\n\t\t);\n\n\t\tcolorProps.style.color = textColorObject.color;\n\t}\n\n\treturn colorProps;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/hooks/use-color-props.js"],"names":["getColorClassesAndStyles","attributes","backgroundColor","textColor","gradient","style","backgroundClass","textClass","gradientClass","hasGradient","color","className","text","background","elements","link","colorStyles","styleProp","undefined","EMPTY_OBJECT","useColorProps","userPalette","themePalette","defaultPalette","gradientsPerOrigin","colors","gradients","custom","theme","default","colorProps","backgroundColorObject","textColorObject"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getInlineStyles } from './style';\nimport {\n\tgetColorClassName,\n\tgetColorObjectByAttributeValues,\n} from '../components/colors';\nimport {\n\t__experimentalGetGradientClass,\n\tgetGradientValueBySlug,\n} from '../components/gradients';\nimport useSetting from '../components/use-setting';\n\n// The code in this file has largely been lifted from the color block support\n// hook.\n//\n// This utility is intended to assist where the serialization of the colors\n// block support is being skipped for a block but the color related CSS classes\n// & styles still need to be generated so they can be applied to inner elements.\n\n/**\n * Provides the CSS class names and inline styles for a block's color support\n * attributes.\n *\n * @param {Object} attributes Block attributes.\n *\n * @return {Object} Color block support derived CSS classes & styles.\n */\nexport function getColorClassesAndStyles( attributes ) {\n\tconst { backgroundColor, textColor, gradient, style } = attributes;\n\n\t// Collect color CSS classes.\n\tconst backgroundClass = getColorClassName(\n\t\t'background-color',\n\t\tbackgroundColor\n\t);\n\tconst textClass = getColorClassName( 'color', textColor );\n\n\tconst gradientClass = __experimentalGetGradientClass( gradient );\n\tconst hasGradient = gradientClass || style?.color?.gradient;\n\n\t// Determine color CSS class name list.\n\tconst className = classnames( textClass, gradientClass, {\n\t\t// Don't apply the background class if there's a gradient.\n\t\t[ backgroundClass ]: ! hasGradient && !! backgroundClass,\n\t\t'has-text-color': textColor || style?.color?.text,\n\t\t'has-background':\n\t\t\tbackgroundColor ||\n\t\t\tstyle?.color?.background ||\n\t\t\tgradient ||\n\t\t\tstyle?.color?.gradient,\n\t\t'has-link-color': style?.elements?.link?.color,\n\t} );\n\n\t// Collect inline styles for colors.\n\tconst colorStyles = style?.color || {};\n\tconst styleProp = getInlineStyles( { color: colorStyles } );\n\n\treturn {\n\t\tclassName: className || undefined,\n\t\tstyle: styleProp,\n\t};\n}\n\nconst EMPTY_OBJECT = {};\n\n/**\n * Determines the color related props for a block derived from its color block\n * support attributes.\n *\n * Inline styles are forced for named colors to ensure these selections are\n * reflected when themes do not load their color stylesheets in the editor.\n *\n * @param {Object} attributes Block attributes.\n *\n * @return {Object} ClassName & style props from colors block support.\n */\nexport function useColorProps( attributes ) {\n\tconst { backgroundColor, textColor, gradient } = attributes;\n\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 gradientsPerOrigin = useSetting( 'color.gradients' ) || EMPTY_OBJECT;\n\tconst colors = 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 gradients = useMemo(\n\t\t() => [\n\t\t\t...( gradientsPerOrigin?.custom || [] ),\n\t\t\t...( gradientsPerOrigin?.theme || [] ),\n\t\t\t...( gradientsPerOrigin?.default || [] ),\n\t\t],\n\t\t[ gradientsPerOrigin ]\n\t);\n\n\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\t// Force inline styles to apply colors when themes do not load their color\n\t// stylesheets in the editor.\n\tif ( backgroundColor ) {\n\t\tconst backgroundColorObject = getColorObjectByAttributeValues(\n\t\t\tcolors,\n\t\t\tbackgroundColor\n\t\t);\n\n\t\tcolorProps.style.backgroundColor = backgroundColorObject.color;\n\t}\n\n\tif ( gradient ) {\n\t\tcolorProps.style.background = getGradientValueBySlug(\n\t\t\tgradients,\n\t\t\tgradient\n\t\t);\n\t}\n\n\tif ( textColor ) {\n\t\tconst textColorObject = getColorObjectByAttributeValues(\n\t\t\tcolors,\n\t\t\ttextColor\n\t\t);\n\n\t\tcolorProps.style.color = textColorObject.color;\n\t}\n\n\treturn colorProps;\n}\n"]}
@@ -41,12 +41,11 @@ const transformStyles = function (styles) {
41
41
  return (0, _lodash.map)(styles, _ref => {
42
42
  let {
43
43
  css,
44
- baseURL,
45
- __experimentalNoWrapper = false
44
+ baseURL
46
45
  } = _ref;
47
46
  const transforms = [];
48
47
 
49
- if (wrapperClassName && !__experimentalNoWrapper) {
48
+ if (wrapperClassName) {
50
49
  transforms.push((0, _wrap.default)(wrapperClassName));
51
50
  }
52
51
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/block-editor/src/utils/transform-styles/index.js"],"names":["transformStyles","styles","wrapperClassName","css","baseURL","__experimentalNoWrapper","transforms","push","length"],"mappings":";;;;;;;;;AAGA;;AAKA;;AAKA;;AACA;;AACA;;AAfA;AACA;AACA;;AAGA;AACA;AACA;;AAGA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,eAAe,GAAG,UAAEC,MAAF,EAAqC;AAAA,MAA3BC,gBAA2B,uEAAR,EAAQ;AAC5D,SAAO,iBACND,MADM,EAEN,QAAyD;AAAA,QAAvD;AAAEE,MAAAA,GAAF;AAAOC,MAAAA,OAAP;AAAgBC,MAAAA,uBAAuB,GAAG;AAA1C,KAAuD;AACxD,UAAMC,UAAU,GAAG,EAAnB;;AACA,QAAKJ,gBAAgB,IAAI,CAAEG,uBAA3B,EAAqD;AACpDC,MAAAA,UAAU,CAACC,IAAX,CAAiB,mBAAML,gBAAN,CAAjB;AACA;;AACD,QAAKE,OAAL,EAAe;AACdE,MAAAA,UAAU,CAACC,IAAX,CAAiB,yBAAYH,OAAZ,CAAjB;AACA;;AACD,QAAKE,UAAU,CAACE,MAAhB,EAAyB;AACxB,aAAO,uBAAUL,GAAV,EAAe,sBAASG,UAAT,CAAf,CAAP;AACA;;AAED,WAAOH,GAAP;AACA,GAfK,CAAP;AAiBA,CAlBD;;eAoBeH,e","sourcesContent":["/**\n * External dependencies\n */\nimport { map } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport traverse from './traverse';\nimport urlRewrite from './transforms/url-rewrite';\nimport wrap from './transforms/wrap';\n\n/**\n * Applies a series of CSS rule transforms to wrap selectors inside a given class and/or rewrite URLs depending on the parameters passed.\n *\n * @param {Array} styles CSS rules.\n * @param {string} wrapperClassName Wrapper Class Name.\n * @return {Array} converted rules.\n */\nconst transformStyles = ( styles, wrapperClassName = '' ) => {\n\treturn map(\n\t\tstyles,\n\t\t( { css, baseURL, __experimentalNoWrapper = false } ) => {\n\t\t\tconst transforms = [];\n\t\t\tif ( wrapperClassName && ! __experimentalNoWrapper ) {\n\t\t\t\ttransforms.push( wrap( wrapperClassName ) );\n\t\t\t}\n\t\t\tif ( baseURL ) {\n\t\t\t\ttransforms.push( urlRewrite( baseURL ) );\n\t\t\t}\n\t\t\tif ( transforms.length ) {\n\t\t\t\treturn traverse( css, compose( transforms ) );\n\t\t\t}\n\n\t\t\treturn css;\n\t\t}\n\t);\n};\n\nexport default transformStyles;\n"]}
1
+ {"version":3,"sources":["@wordpress/block-editor/src/utils/transform-styles/index.js"],"names":["transformStyles","styles","wrapperClassName","css","baseURL","transforms","push","length"],"mappings":";;;;;;;;;AAGA;;AAKA;;AAKA;;AACA;;AACA;;AAfA;AACA;AACA;;AAGA;AACA;AACA;;AAGA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMA,eAAe,GAAG,UAAEC,MAAF,EAAqC;AAAA,MAA3BC,gBAA2B,uEAAR,EAAQ;AAC5D,SAAO,iBAAKD,MAAL,EAAa,QAAwB;AAAA,QAAtB;AAAEE,MAAAA,GAAF;AAAOC,MAAAA;AAAP,KAAsB;AAC3C,UAAMC,UAAU,GAAG,EAAnB;;AACA,QAAKH,gBAAL,EAAwB;AACvBG,MAAAA,UAAU,CAACC,IAAX,CAAiB,mBAAMJ,gBAAN,CAAjB;AACA;;AACD,QAAKE,OAAL,EAAe;AACdC,MAAAA,UAAU,CAACC,IAAX,CAAiB,yBAAYF,OAAZ,CAAjB;AACA;;AACD,QAAKC,UAAU,CAACE,MAAhB,EAAyB;AACxB,aAAO,uBAAUJ,GAAV,EAAe,sBAASE,UAAT,CAAf,CAAP;AACA;;AAED,WAAOF,GAAP;AACA,GAbM,CAAP;AAcA,CAfD;;eAiBeH,e","sourcesContent":["/**\n * External dependencies\n */\nimport { map } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport traverse from './traverse';\nimport urlRewrite from './transforms/url-rewrite';\nimport wrap from './transforms/wrap';\n\n/**\n * Applies a series of CSS rule transforms to wrap selectors inside a given class and/or rewrite URLs depending on the parameters passed.\n *\n * @param {Array} styles CSS rules.\n * @param {string} wrapperClassName Wrapper Class Name.\n * @return {Array} converted rules.\n */\nconst transformStyles = ( styles, wrapperClassName = '' ) => {\n\treturn map( styles, ( { css, baseURL } ) => {\n\t\tconst transforms = [];\n\t\tif ( wrapperClassName ) {\n\t\t\ttransforms.push( wrap( wrapperClassName ) );\n\t\t}\n\t\tif ( baseURL ) {\n\t\t\ttransforms.push( urlRewrite( baseURL ) );\n\t\t}\n\t\tif ( transforms.length ) {\n\t\t\treturn traverse( css, compose( transforms ) );\n\t\t}\n\n\t\treturn css;\n\t} );\n};\n\nexport default transformStyles;\n"]}
@@ -95,7 +95,8 @@ function BlockSelectionButton(_ref) {
95
95
  getSelectedBlockClientId,
96
96
  getMultiSelectedBlocksEndClientId,
97
97
  getPreviousBlockClientId,
98
- getNextBlockClientId
98
+ getNextBlockClientId,
99
+ isNavigationMode
99
100
  } = useSelect(blockEditorStore);
100
101
  const {
101
102
  selectBlock,
@@ -152,6 +153,11 @@ function BlockSelectionButton(_ref) {
152
153
 
153
154
  const startingBlockClientId = hasBlockMovingClientId();
154
155
 
156
+ if (isEscape && isNavigationMode()) {
157
+ clearSelectedBlock();
158
+ event.preventDefault();
159
+ }
160
+
155
161
  if (isEscape && startingBlockClientId && !event.defaultPrevented) {
156
162
  setBlockMovingClientId(null);
157
163
  event.preventDefault();